From 0a6eaf7db0ae5cb37816eb1a1590ab28eed7c2e2 Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Mon, 17 Jun 2024 11:20:28 -0400 Subject: [PATCH 0001/1514] Bulk (#48485) * [ci skip] remove build failure record for recipe recipes/cooltools/0.3.2 * round of bulk fixes * bulk fixes and skips * [ci run] trigger bulk run * [ci skip] add build failure record for recipe recipes/pywgsim * [ci skip] add build failure record for recipe recipes/biobloomtools * [ci skip] add build failure record for recipe recipes/bwapy * [ci skip] add build failure record for recipe recipes/whatshap * [ci skip] add build failure record for recipe recipes/gimmemotifs * [ci skip] add build failure record for recipe recipes/umi_tools * [ci skip] add build failure record for recipe recipes/pyprophet * [ci skip] add build failure record for recipe recipes/libsbml * [ci skip] add build failure record for recipe recipes/rnablueprint * [ci skip] add build failure record for recipe recipes/pyprophet * [ci skip] remove build failure record for recipe recipes/ont_vbz_hdf_plugin * [ci skip] remove build failure record for recipe recipes/macs2 * [ci skip] add build failure record for recipe recipes/bwapy * [ci skip] add build failure record for recipe recipes/pasta * [ci skip] add build failure record for recipe recipes/yahmm * [ci skip] add build failure record for recipe recipes/sorted_nearest * [ci skip] remove build failure record for recipe recipes/macs2 * [ci skip] add build failure record for recipe recipes/moabs * [ci skip] add build failure record for recipe recipes/glimmerhmm * [ci skip] add build failure record for recipe recipes/delly * [ci skip] remove build failure record for recipe recipes/ms2rescore-rs * [ci skip] add build failure record for recipe recipes/intarna/2.x * [ci skip] add build failure record for recipe recipes/genometools-genometools * [ci skip] add build failure record for recipe recipes/pasta * [ci skip] remove build failure record for recipe recipes/gap2seq * [ci skip] add build failure record for recipe recipes/python-hppy * [ci skip] add build failure record for recipe recipes/rpbp * [ci skip] add build failure record for recipe recipes/nextpolish * [ci skip] add build failure record for recipe recipes/augustus/3.3.3 * [ci skip] add build failure record for recipe recipes/moabs * [ci skip] add build failure record for recipe recipes/lofreq * [ci skip] add build failure record for recipe recipes/yahmm * [ci skip] add build failure record for recipe recipes/maxentpy * [ci skip] add build failure record for recipe recipes/mauvealigner * [ci skip] add build failure record for recipe recipes/medaka * [ci skip] add build failure record for recipe recipes/umi_tools * [ci skip] add build failure record for recipe recipes/rpbp * [ci skip] add build failure record for recipe recipes/umi_tools * [ci skip] add build failure record for recipe recipes/simlord * [ci skip] remove build failure record for recipe recipes/cooltools/0.3.2 * [ci skip] add build failure record for recipe recipes/medaka * python-libsbml was moved to conda-forge * skip python 3.12 * skip python 3.12 * skiplist with category * skiplist with category * use python var * remove unnecessary constraint * bump divergent build * skip python 3.12 * [ci run] trigger bulk run * indent log * [ci run] trigger bulk run * [ci skip] add build failure record for recipe recipes/gimmemotifs * [ci skip] add build failure record for recipe recipes/pywgsim * [ci skip] add build failure record for recipe recipes/yahmm * [ci skip] add build failure record for recipe recipes/moabs * [ci skip] add build failure record for recipe recipes/libsbml * [ci skip] add build failure record for recipe recipes/sorted_nearest * [ci skip] add build failure record for recipe recipes/maxentpy * [ci skip] add build failure record for recipe recipes/medaka * [ci skip] add build failure record for recipe recipes/yahmm * [ci skip] add build failure record for recipe recipes/rnablueprint * [ci skip] add build failure record for recipe recipes/glimmerhmm * [ci skip] add build failure record for recipe recipes/mauvealigner * [ci skip] remove build failure record for recipe recipes/nanopolish * [ci skip] add build failure record for recipe recipes/delly * [ci skip] add build failure record for recipe recipes/pasta * [ci skip] add build failure record for recipe recipes/genometools-genometools * [ci skip] add build failure record for recipe recipes/python-hppy * [ci skip] add build failure record for recipe recipes/intarna/2.x * [ci skip] add build failure record for recipe recipes/htstream * [ci skip] add build failure record for recipe recipes/whatshap * [ci skip] add build failure record for recipe recipes/pasta * [ci skip] add build failure record for recipe recipes/rpbp * [ci skip] add build failure record for recipe recipes/nextpolish * [ci skip] add build failure record for recipe recipes/augustus/3.3.3 * [ci skip] add build failure record for recipe recipes/lofreq * [ci skip] add build failure record for recipe recipes/pydnase * [ci skip] add build failure record for recipe recipes/ntsynt * [ci skip] add build failure record for recipe recipes/cgat-apps * [ci skip] remove build failure record for recipe recipes/unicycler/0.4.4 * [ci skip] add build failure record for recipe recipes/goldrush * remove subdag-depth * skiplist and categorize build failures * bump build number * add run_exports * try limiting py version more * build failure * build failure category and skiplist * skiplist and categorize build failure * [ci run] trigger bulk run * [ci skip] add build failure record for recipe recipes/rapsearch * [ci skip] add build failure record for recipe recipes/rnablueprint * [ci skip] add build failure record for recipe recipes/pywgsim * [ci skip] add build failure record for recipe recipes/libsbml * [ci skip] add build failure record for recipe recipes/mauvealigner * [ci skip] add build failure record for recipe recipes/cgat-apps * [ci skip] add build failure record for recipe recipes/glimmerhmm * [ci skip] add build failure record for recipe recipes/cytocad * [ci skip] add build failure record for recipe recipes/delly * [ci skip] add build failure record for recipe recipes/nextpolish * [ci skip] remove build failure record for recipe recipes/rpbp * [ci skip] add build failure record for recipe recipes/cgat-apps * skiplist build failures * bump divergent * skiplist * update build failure sha * moved to conda-forge * skip build failure * bump for divergent build strings * [ci run] trigger bulk run * [ci skip] add build failure record for recipe recipes/gemini * [ci skip] remove build failure record for recipe recipes/perl-bio-db-hts * [ci skip] add build failure record for recipe recipes/albatradis * [ci skip] add build failure record for recipe recipes/glimmerhmm * [ci skip] add build failure record for recipe recipes/genometools-genometools * [ci skip] add build failure record for recipe recipes/gemini * [ci skip] add build failure record for recipe recipes/cgat-apps * [ci skip] add build failure record for recipe recipes/nextpolish * [ci skip] add build failure record for recipe recipes/delly * [ci skip] add build failure record for recipe recipes/gemini * [ci skip] add build failure record for recipe recipes/chorus2 * [ci skip] add build failure record for recipe recipes/cgat-apps * bulk fixes and failures * [ci run] trigger bulk run * [ci skip] add build failure record for recipe recipes/cgat-apps * [ci skip] fix pcaone openmp dependency * [ci skip] remove build failure record for recipe recipes/genometools-genometools * [ci skip] add build failure record for recipe recipes/cgat-apps * [ci skip] add build failure record for recipe recipes/tobias * remove caching as it causes problems and doesn't save much time * move run_exports to correct location * add run_exports * rebuild failure * skiplist build failures * [ci run] trigger bulk run * [ci skip] add build failure record for recipe recipes/maxentpy * [ci skip] remove build failure record for recipe recipes/pcaone * [ci skip] add build failure record for recipe recipes/maxentpy * [ci skip] remove build failure record for recipe recipes/pcaone * [ci skip] add build failure record for recipe recipes/pydnase * [ci skip] add build failure record for recipe recipes/ntsynt * [ci skip] add build failure record for recipe recipes/nanovar * [ci skip] add build failure record for recipe recipes/chorus2 * [ci skip] remove build failure record for recipe recipes/rpbp * bulk fixes and failures * [ci run] trigger bulk run * remove bad character * [ci skip] add build failure record for recipe recipes/chorus2 * [ci skip] add build failure record for recipe recipes/whatshap * bulk fixes and failures * [ci run] trigger bulk run * exclude bioconda-repodata-patches * the other one is not the same * only run linux but add extra runners * [ci run] trigger bulk run * rebuild osx failures * revert runner changes * add run_exports * remove build failure * skiplist * [ci run] trigger bulk run * [ci skip] remove build failure record for recipe recipes/gsalign * [ci skip] remove build failure record for recipe recipes/bustools * [ci skip] remove build failure record for recipe recipes/metabuli * [ci skip] remove build failure record for recipe recipes/nonpareil * [ci skip] remove build failure record for recipe recipes/f5c * [ci skip] remove build failure record for recipe recipes/sankoff * [ci skip] remove build failure record for recipe recipes/humid * [ci skip] add build failure record for recipe recipes/pepsirf * [ci skip] remove build failure record for recipe recipes/flexiplex * [ci skip] remove build failure record for recipe recipes/gatb * [ci skip] remove build failure record for recipe recipes/stare-abc * [ci skip] remove build failure record for recipe recipes/encode-blacklist * [ci skip] add build failure record for recipe recipes/phyloacc * [ci skip] remove build failure record for recipe recipes/parascopy * [ci skip] remove build failure record for recipe recipes/metagraph * [ci skip] remove build failure record for recipe recipes/msisensor-pro * [ci skip] add build failure record for recipe recipes/verifybamid2 * [ci skip] remove build failure record for recipe recipes/ksnp * [ci skip] add build failure record for recipe recipes/ataqv * [ci skip] remove build failure record for recipe recipes/arriba * add run_exports * skip build failures * [ci run] trigger bulk run * [ci skip] remove build failure record for recipe recipes/scelestial * [ci skip] remove build failure record for recipe recipes/fastsimbac * [ci run] trigger bulk run * [ci skip] remove build failure record for recipe recipes/mgems * [ci skip] add build failure record for recipe recipes/mykrobe * [ci skip] add build failure record for recipe recipes/pegasuspy * [ci skip] add build failure record for recipe recipes/spades * [ci skip] remove build failure record for recipe recipes/jcvi * [ci skip] remove build failure record for recipe recipes/rpbp * [ci skip] add build failure record for recipe recipes/dicey * [ci skip] add build failure record for recipe recipes/zol * revert temporary CI changes * bump divergent build strings * skiplist build failures * [ci run] trigger bulk run * [ci skip] add build failure record for recipe recipes/dinopy * [ci skip] add build failure record for recipe recipes/dinopy * [ci skip] add build failure record for recipe recipes/dicey * [ci skip] remove build failure record for recipe recipes/tiddit * [ci skip] add build failure record for recipe recipes/dinopy * [ci skip] add build failure record for recipe recipes/phispy * [ci skip] add build failure record for recipe recipes/pyopal * [ci skip] add build failure record for recipe recipes/dicey * [ci skip] add build failure record for recipe recipes/zol * [ci skip] add build failure record for recipe recipes/pegasuspy * [ci skip] add build failure record for recipe recipes/bamread * skiplist build failures * bump build number * [ci run] trigger bulk run * [ci skip] add build failure record for recipe recipes/dinopy * [ci skip] add build failure record for recipe recipes/pegasuspy * [ci skip] add build failure record for recipe recipes/dinopy * [ci skip] add build failure record for recipe recipes/pegasuspy * bump updated recipes * centrifuge: add linux-aarch64 build (#48450) * centrifuge: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Add a patch for fixing the build on linux aarch64 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov * Update matchms to 0.26.4 (#48478) * r-spp: add linux-aarch64 build (#48467) * r-spp: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Add run_exports. Use DESCRIPTION as a license file, although it is just mentioning it Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov * callerpp: add linux-aarch64 build (#48442) * callerpp: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Allow signed char for Linux aarch64 Signed-off-by: Martin Tzvetanov Grigorov * Bump the version to 0.1.5 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov * genepop: add linux-aarch64 build (#48468) * genepop: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Remove from the blacklist Signed-off-by: Martin Tzvetanov Grigorov * Fix the source url to an existing one, pointing to R-genepop 1.2.2 Signed-off-by: Martin Tzvetanov Grigorov * Reset the build number to 0 Signed-off-by: Martin Tzvetanov Grigorov * Require C++ for the build Signed-off-by: Martin Tzvetanov Grigorov * Use Github tag for v1.2.2. Fix the build Signed-off-by: Martin Tzvetanov Grigorov * Improve the test to deal with the new interactive behavior of the program Signed-off-by: Martin Tzvetanov Grigorov * Simplify the test. It seems `echo -e` does not work well at the CI systems Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov * velvet: add linux-aarch64 build (#48469) Signed-off-by: Martin Tzvetanov Grigorov * Update earlgrey to 4.3.0 (#48477) * bump build number * skiplist failures * Update pybiolib to 1.1.2141 (#48479) * [ci run] trigger bulk run * [ci skip] add build failure record for recipe recipes/curves * bump build number for pinnings * [ci run] trigger bulk run * [ci skip] add build failure record for recipe recipes/curves * skiplist * add run exports * bump build number * [ci run] trigger bulk run * [ci run] trigger bulk run --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: BiocondaBot Co-authored-by: Ryan Dale Co-authored-by: Johannes Koester Co-authored-by: Martin Grigorov Co-authored-by: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> --- .circleci/config.yml | 20 +- .github/workflows/Bulk.yml | 40 +--- .github/workflows/build-failures.yml | 33 ++- recipes/abyss/meta.yaml | 4 +- .../ac-diamond/build_failure.linux-64.yaml | 104 +++++++++ recipes/ac-diamond/meta.yaml | 2 +- recipes/aeon/build_failure.linux-64.yaml | 104 +++++++++ recipes/aeon/build_failure.osx-64.yaml | 104 +++++++++ recipes/aeon/meta.yaml | 2 +- recipes/agc/meta.yaml | 2 +- .../albatradis/build_failure.linux-64.yaml | 104 +++++++++ recipes/albatradis/meta.yaml | 2 +- recipes/alcor/meta.yaml | 2 +- recipes/aletsch/meta.yaml | 2 +- recipes/alfred/build_failure.osx-64.yaml | 104 +++++++++ recipes/alfred/meta.yaml | 4 +- .../alignlib-lite/build_failure.linux-64.yaml | 106 ++++++++++ .../alignlib-lite/build_failure.osx-64.yaml | 106 ++++++++++ recipes/alignlib-lite/meta.yaml | 2 +- recipes/amplisim/meta.yaml | 2 +- recipes/andi/meta.yaml | 2 +- recipes/anise_basil/build_failure.osx-64.yaml | 104 +++++++++ recipes/anise_basil/meta.yaml | 2 +- recipes/aragorn/meta.yaml | 2 +- recipes/arcs/meta.yaml | 2 +- recipes/ariba/meta.yaml | 2 +- recipes/arriba/meta.yaml | 2 +- recipes/artic-porechop/meta.yaml | 2 +- recipes/artic-tools/meta.yaml | 2 +- recipes/atac/meta.yaml | 2 +- recipes/ataqv/build_failure.linux-64.yaml | 105 +++++++++ recipes/ataqv/build_failure.osx-64.yaml | 105 +++++++++ recipes/ataqv/meta.yaml | 2 +- recipes/atropos/meta.yaml | 4 +- .../augustus/3.3.3/build_failure.osx-64.yaml | 105 +++++++++ recipes/augustus/3.3.3/meta.yaml | 2 +- recipes/augustus/meta.yaml | 2 +- recipes/auspice/meta.yaml | 2 +- recipes/bamread/build_failure.osx-64.yaml | 105 +++++++++ recipes/bamread/meta.yaml | 2 +- recipes/bamscale/meta.yaml | 2 +- recipes/bandage_ng/meta.yaml | 2 +- recipes/bbknn/meta.yaml | 2 +- recipes/bcov/build_failure.osx-64.yaml | 104 +++++++++ recipes/bcov/meta.yaml | 2 +- recipes/bellmans-gapc/meta.yaml | 2 +- .../biobloomtools/build_failure.linux-64.yaml | 105 +++++++++ recipes/biobloomtools/meta.yaml | 4 +- .../build_failure.osx-64.yaml | 104 +++++++++ recipes/bioconductor-cytoml/meta.yaml | 2 +- recipes/bioconductor-ebseq/meta.yaml | 2 +- recipes/bioconductor-flowdensity/meta.yaml | 2 +- recipes/bioconductor-garfield/meta.yaml | 2 +- recipes/bioconductor-hilbertvis/meta.yaml | 2 +- recipes/bioconductor-hyperdraw/meta.yaml | 2 +- recipes/bioconductor-iclusterplus/meta.yaml | 2 +- recipes/bioconductor-metapod/meta.yaml | 2 +- .../build_failure.linux-64.yaml | 101 --------- .../build_failure.osx-64.yaml | 104 +++++++++ recipes/bioconductor-netpathminer/meta.yaml | 2 +- .../blockclust/build_failure.linux-64.yaml | 4 + recipes/blockclust/meta.yaml | 2 +- recipes/boms/meta.yaml | 2 +- recipes/bowtie/meta.yaml | 2 +- recipes/bracken/meta.yaml | 2 +- recipes/bte/build_failure.linux-64.yaml | 104 +++++++++ recipes/bte/build_failure.osx-64.yaml | 104 +++++++++ recipes/bte/meta.yaml | 2 +- recipes/btllib/meta.yaml | 2 +- recipes/bustools/meta.yaml | 2 +- recipes/bwapy/meta.yaml | 7 +- recipes/bwread/build_failure.osx-64.yaml | 104 +++++++++ recipes/bwread/meta.yaml | 2 +- recipes/bx-python/meta.yaml | 3 +- recipes/cage/meta.yaml | 2 +- recipes/cancerit-allelecount/meta.yaml | 2 +- recipes/cansam/build_failure.osx-64.yaml | 104 +++++++++ recipes/cansam/meta.yaml | 2 +- recipes/cassiopee/build_failure.osx-64.yaml | 104 +++++++++ recipes/cassiopee/meta.yaml | 2 +- .../cellprofiler/build_failure.linux-64.yaml | 104 +++++++++ .../cellprofiler/build_failure.osx-64.yaml | 104 +++++++++ recipes/cellprofiler/meta.yaml | 2 +- .../cellsnp-lite/build_failure.osx-64.yaml | 104 +++++++++ recipes/cellsnp-lite/meta.yaml | 2 +- recipes/centrosome/build_failure.osx-64.yaml | 104 --------- recipes/centrosome/meta.yaml | 2 +- recipes/cgat-apps/build_failure.linux-64.yaml | 105 +++++++++ recipes/cgat-apps/build_failure.osx-64.yaml | 105 +++++++++ recipes/cgat-apps/meta.yaml | 3 +- recipes/cgpbigwig/meta.yaml | 2 +- recipes/cgranges/meta.yaml | 2 +- recipes/chia-rep/build_failure.linux-64.yaml | 104 +++++++++ recipes/chia-rep/build_failure.osx-64.yaml | 104 +++++++++ recipes/chia-rep/meta.yaml | 2 +- recipes/chips/build_failure.osx-64.yaml | 104 +++++++++ recipes/chips/meta.yaml | 2 +- recipes/chorus2/build_failure.linux-64.yaml | 105 +++++++++ recipes/chorus2/build_failure.osx-64.yaml | 105 +++++++++ recipes/chorus2/meta.yaml | 5 +- recipes/clair3-illumina/meta.yaml | 2 +- recipes/clair3-trio/meta.yaml | 2 +- recipes/clair3/meta.yaml | 2 +- recipes/cmappy/meta.yaml | 4 +- recipes/cnvnator/meta.yaml | 2 +- recipes/codingquarry/meta.yaml | 2 +- recipes/coinfinder/build_failure.osx-64.yaml | 104 +++++++++ recipes/coinfinder/meta.yaml | 6 +- recipes/commet/build_failure.osx-64.yaml | 104 +++++++++ recipes/commet/meta.yaml | 2 +- recipes/contammix/meta.yaml | 2 +- recipes/contatester/meta.yaml | 2 +- .../cooltools/0.3.2/build_failure.osx-64.yaml | 104 --------- recipes/cooltools/0.3.2/meta.yaml | 2 +- recipes/cooltools/meta.yaml | 2 +- recipes/cortexpy/meta.yaml | 2 +- recipes/coverageanomalyscanner/meta.yaml | 2 +- recipes/covtobed/meta.yaml | 2 +- recipes/cpat/meta.yaml | 2 +- recipes/cpgeneprofiler/meta.yaml | 2 +- recipes/crispresso2/meta.yaml | 3 +- recipes/crispritz/meta.yaml | 2 +- recipes/crumble/meta.yaml | 2 +- recipes/crussmap/build_failure.osx-64.yaml | 104 +++++++++ recipes/crussmap/meta.yaml | 4 +- recipes/curves/build_failure.osx-64.yaml | 105 +++++++++ recipes/curves/meta.yaml | 2 +- recipes/cutadapt/meta.yaml | 2 +- recipes/cvlr/meta.yaml | 2 +- recipes/cytocad/build_failure.linux-64.yaml | 104 +++++++++ recipes/cytocad/meta.yaml | 2 +- recipes/cyushuffle/meta.yaml | 2 +- recipes/cyvcf2/meta.yaml | 3 +- recipes/dart/build_failure.osx-64.yaml | 104 +++++++++ recipes/dart/meta.yaml | 2 +- recipes/dawg/build_failure.linux-64.yaml | 6 + recipes/dawg/meta.yaml | 8 +- recipes/dechat/meta.yaml | 2 +- recipes/decifer/meta.yaml | 3 +- recipes/deeptoolsintervals/meta.yaml | 4 +- recipes/delly/build_failure.osx-64.yaml | 105 +++++++++ recipes/delly/meta.yaml | 2 +- recipes/deltapd/meta.yaml | 5 +- recipes/desman/build_failure.linux-64.yaml | 104 +++++++++ recipes/desman/meta.yaml | 8 +- recipes/dextractor/meta.yaml | 2 +- recipes/dicey/build_failure.linux-64.yaml | 104 +++++++++ .../dicey/build_failure.linux-aarch64.yaml | 104 +++++++++ recipes/dicey/build_failure.osx-64.yaml | 104 +++++++++ recipes/dicey/meta.yaml | 2 +- recipes/dinamo/meta.yaml | 2 +- recipes/dinopy/build_failure.linux-64.yaml | 105 +++++++++ .../dinopy/build_failure.linux-aarch64.yaml | 105 +++++++++ recipes/dinopy/build_failure.osx-64.yaml | 105 +++++++++ recipes/dinopy/meta.yaml | 2 +- recipes/dnaio/meta.yaml | 3 +- recipes/dragmap/build_failure.linux-64.yaml | 106 ++++++++++ recipes/dragmap/meta.yaml | 2 +- recipes/dropest/build_failure.linux-64.yaml | 104 +++++++++ recipes/dropest/meta.yaml | 2 +- recipes/dropkick/build_failure.linux-64.yaml | 104 +++++++++ recipes/dropkick/meta.yaml | 2 +- recipes/dsrc/meta.yaml | 2 +- recipes/dupsifter/meta.yaml | 2 +- recipes/egglib/meta.yaml | 2 +- recipes/elector/meta.yaml | 2 +- recipes/emboss/5.0.0/meta.yaml | 2 +- recipes/emboss/meta.yaml | 4 +- recipes/emu-pca/build_failure.osx-64.yaml | 104 +++++++++ recipes/emu-pca/meta.yaml | 2 +- recipes/encode-blacklist/meta.yaml | 2 +- recipes/epic2/meta.yaml | 2 +- recipes/epicseg/build_failure.linux-64.yaml | 104 +++++++++ recipes/epicseg/build_failure.osx-64.yaml | 104 +++++++++ recipes/epicseg/meta.yaml | 2 +- recipes/expam/meta.yaml | 2 +- .../expansionhunter/build_failure.osx-64.yaml | 104 +++++++++ recipes/expansionhunter/meta.yaml | 2 +- recipes/expansionhunterdenovo/meta.yaml | 2 +- recipes/extract-sv-reads/meta.yaml | 2 +- recipes/f5c/0.6/build_failure.osx-64.yaml | 104 +++++++++ recipes/f5c/0.6/meta.yaml | 2 +- recipes/f5c/1.2/build_failure.osx-64.yaml | 104 +++++++++ recipes/f5c/1.2/meta.yaml | 2 +- recipes/f5c/meta.yaml | 2 +- recipes/faqcs/build_failure.osx-64.yaml | 104 +++++++++ recipes/faqcs/meta.yaml | 2 +- recipes/fast-edit-distance/meta.yaml | 2 +- recipes/fastobo/meta.yaml | 2 +- recipes/fastp/meta.yaml | 2 +- recipes/fastphylo/build_failure.linux-64.yaml | 104 +++++++++ recipes/fastphylo/build_failure.osx-64.yaml | 200 +++++++++--------- recipes/fastphylo/meta.yaml | 2 +- recipes/fastq-and-furious/meta.yaml | 2 +- recipes/fastq-filter/meta.yaml | 2 +- recipes/fastqpuri/meta.yaml | 2 +- .../fastqsplitter/build_failure.osx-64.yaml | 104 --------- recipes/fastqsplitter/meta.yaml | 2 +- recipes/fastsimbac/meta.yaml | 4 +- recipes/fcsparser/meta.yaml | 40 ---- recipes/fegenie/meta.yaml | 2 +- recipes/ffgc/meta.yaml | 8 +- recipes/fgwas/build_failure.osx-64.yaml | 104 +++++++++ recipes/fgwas/meta.yaml | 2 +- recipes/flexiplex/meta.yaml | 2 +- recipes/flye/build_failure.linux-64.yaml | 104 +++++++++ recipes/flye/build_failure.linux-aarch64.yaml | 104 +++++++++ recipes/flye/build_failure.osx-64.yaml | 104 +++++++++ recipes/flye/meta.yaml | 2 +- recipes/forgi/meta.yaml | 2 +- recipes/fqtools/meta.yaml | 2 +- recipes/fwdpy11/build_failure.osx-64.yaml | 104 +++++++++ recipes/fwdpy11/meta.yaml | 2 +- recipes/gadem/build_failure.linux-64.yaml | 104 --------- recipes/gadem/build_failure.osx-64.yaml | 104 --------- recipes/gadem/meta.yaml | 2 +- recipes/galaxy-ml/meta.yaml | 2 +- recipes/gambit/build_failure.linux-64.yaml | 104 --------- recipes/gambit/build_failure.osx-64.yaml | 104 --------- recipes/gambit/meta.yaml | 3 +- recipes/gametes/meta.yaml | 2 +- recipes/gangstr/build_failure.linux-64.yaml | 104 +++++++++ recipes/gangstr/build_failure.osx-64.yaml | 104 +++++++++ recipes/gangstr/meta.yaml | 2 +- recipes/ganon/meta.yaml | 2 +- recipes/gap2seq/meta.yaml | 3 +- .../gargammel-slim/build_failure.osx-64.yaml | 104 +++++++++ recipes/gargammel-slim/meta.yaml | 2 +- recipes/gargammel/build_failure.linux-64.yaml | 104 +++++++++ recipes/gargammel/build_failure.osx-64.yaml | 104 +++++++++ recipes/gargammel/meta.yaml | 2 +- recipes/gatb/meta.yaml | 2 +- recipes/gb-io/build_failure.osx-64.yaml | 104 +++++++++ recipes/gb-io/meta.yaml | 2 +- recipes/gembs/build_failure.linux-64.yaml | 104 --------- recipes/gembs/meta.yaml | 2 +- recipes/gemini/build_failure.linux-64.yaml | 105 +++++++++ .../gemini/build_failure.linux-aarch64.yaml | 105 +++++++++ recipes/gemini/build_failure.osx-64.yaml | 105 +++++++++ recipes/gemini/meta.yaml | 6 +- recipes/genbank/meta.yaml | 2 +- recipes/genomeconstellation/meta.yaml | 2 +- recipes/genomedata/meta.yaml | 2 +- recipes/genomelake/meta.yaml | 2 +- recipes/genomescope2/meta.yaml | 2 +- recipes/genometools-genometools/meta.yaml | 5 +- recipes/ggcaller/build_failure.linux-64.yaml | 106 ++++++++++ .../gimmemotifs/build_failure.linux-64.yaml | 104 +++++++++ recipes/gimmemotifs/meta.yaml | 2 +- recipes/ginpiper/meta.yaml | 2 +- .../glimmerhmm/build_failure.linux-64.yaml | 104 --------- recipes/glimmerhmm/build_failure.osx-64.yaml | 187 ++++++++-------- recipes/glimmerhmm/meta.yaml | 2 +- recipes/glimpse-bio/meta.yaml | 2 +- recipes/gmtk/meta.yaml | 2 +- recipes/goldrush/build_failure.osx-64.yaml | 104 +++++++++ recipes/goldrush/meta.yaml | 2 +- recipes/graphaligner/meta.yaml | 2 +- recipes/groot/meta.yaml | 2 +- recipes/gsalign/meta.yaml | 2 +- recipes/gseapy/meta.yaml | 2 +- recipes/gvcf2coverage/meta.yaml | 2 +- recipes/haddock_biobb/meta.yaml | 4 +- recipes/haploflow/meta.yaml | 2 +- recipes/hapog/build_failure.osx-64.yaml | 104 +++++++++ recipes/hapog/meta.yaml | 2 +- recipes/haproh/meta.yaml | 2 +- recipes/haslr/meta.yaml | 2 +- recipes/hatchet/meta.yaml | 2 +- recipes/hera/build_failure.linux-64.yaml | 6 + recipes/hera/meta.yaml | 2 +- recipes/hhsuite/build_failure.osx-64.yaml | 106 ++++++++++ recipes/hhsuite/meta.yaml | 4 +- recipes/hic-straw/build_failure.osx-64.yaml | 104 +++++++++ recipes/hic-straw/meta.yaml | 2 +- .../hictk/build_failure.linux-aarch64.yaml | 104 +++++++++ recipes/hictk/build_failure.osx-64.yaml | 104 +++++++++ recipes/hictk/meta.yaml | 2 +- recipes/hictkpy/build_failure.osx-64.yaml | 104 +++++++++ recipes/hictkpy/meta.yaml | 2 +- .../hiddendomains/build_failure.linux-64.yaml | 104 +++++++++ recipes/hiddendomains/meta.yaml | 2 +- recipes/hits/meta.yaml | 2 +- .../hla-la/1.0/build_failure.linux-64.yaml | 104 +++++++++ recipes/hla-la/1.0/meta.yaml | 2 +- recipes/hmnrandomread/meta.yaml | 2 +- recipes/htseq/meta.yaml | 2 +- recipes/htslib/meta.yaml | 2 +- recipes/htstream/build_failure.osx-64.yaml | 199 ++++++++--------- recipes/htstream/meta.yaml | 2 +- recipes/humid/meta.yaml | 2 +- recipes/iced/build_failure.linux-64.yaml | 104 +++++++++ recipes/iced/build_failure.osx-64.yaml | 104 +++++++++ recipes/iced/meta.yaml | 2 +- recipes/icescreen/meta.yaml | 2 +- recipes/idba_subasm/meta.yaml | 2 +- .../build_failure.linux-64.yaml | 104 +++++++++ .../igblast-parser/build_failure.osx-64.yaml | 104 +++++++++ recipes/igblast-parser/meta.yaml | 2 +- recipes/immuneml/meta.yaml | 2 +- recipes/infernal/meta.yaml | 2 +- recipes/intarna/2.x/build_failure.osx-64.yaml | 141 ++++-------- recipes/intarna/2.x/meta.yaml | 2 +- recipes/intarna/build_failure.osx-64.yaml | 104 --------- recipes/intarna/meta.yaml | 2 +- recipes/iow/meta.yaml | 3 +- .../iqtree/build_failure.linux-aarch64.yaml | 50 +++++ recipes/iqtree/meta.yaml | 2 +- recipes/isospecpy/build_failure.osx-64.yaml | 104 +++++++++ recipes/isospecpy/meta.yaml | 2 +- recipes/jbrowse2/meta.yaml | 2 +- recipes/jcvi/build_failure.linux-64.yaml | 5 + recipes/jcvi/build_failure.linux-aarch64.yaml | 34 +++ recipes/jcvi/meta.yaml | 2 +- recipes/k8/build_failure.linux-aarch64.yaml | 4 + recipes/k8/build_failure.osx-64.yaml | 106 ++++++++++ recipes/k8/meta.yaml | 2 +- recipes/kallisto/meta.yaml | 4 +- recipes/kart/build_failure.osx-64.yaml | 104 +++++++++ recipes/kart/meta.yaml | 2 +- recipes/kcounter/build_failure.linux-64.yaml | 106 ++++++++++ recipes/kcounter/meta.yaml | 5 +- recipes/kfoots/meta.yaml | 2 +- recipes/kmasker/build_failure.linux-64.yaml | 104 +++++++++ recipes/kmasker/build_failure.osx-64.yaml | 104 +++++++++ recipes/kmasker/meta.yaml | 2 +- recipes/kmergenie/meta.yaml | 2 +- recipes/krbalancing/meta.yaml | 2 +- recipes/ksnp/meta.yaml | 2 +- recipes/ldhelmet/meta.yaml | 2 +- recipes/leehom/build_failure.linux-64.yaml | 104 +++++++++ recipes/leehom/meta.yaml | 2 +- recipes/libcifpp/meta.yaml | 2 +- recipes/libgab/meta.yaml | 2 +- .../libgtextutils/build_failure.osx-64.yaml | 104 +++++++++ recipes/libgtextutils/meta.yaml | 2 +- recipes/libmaus2/meta.yaml | 4 +- recipes/libmems/build_failure.linux-64.yaml | 106 ++++++++++ recipes/libmems/meta.yaml | 2 +- recipes/libsbml/build_failure.linux-64.yaml | 105 +++++++++ recipes/libsbml/meta.yaml | 2 +- recipes/libshorah/build_failure.linux-64.yaml | 104 +++++++++ recipes/libshorah/build_failure.osx-64.yaml | 104 +++++++++ recipes/libshorah/meta.yaml | 2 +- recipes/liftover/meta.yaml | 2 +- recipes/lightstringgraph/meta.yaml | 2 +- recipes/linkstats/build_failure.linux-64.yaml | 104 +++++++++ recipes/linkstats/build_failure.osx-64.yaml | 104 +++++++++ recipes/linkstats/meta.yaml | 2 +- recipes/livekraken/meta.yaml | 2 +- recipes/lofreq/build_failure.osx-64.yaml | 105 +++++++++ recipes/lofreq/meta.yaml | 2 +- recipes/longgf/meta.yaml | 2 +- .../longreadsum/build_failure.linux-64.yaml | 104 +++++++++ recipes/longreadsum/build_failure.osx-64.yaml | 108 +++++----- recipes/longreadsum/meta.yaml | 2 +- recipes/lorax/build_failure.linux-64.yaml | 104 +++++++++ recipes/lorax/build_failure.osx-64.yaml | 104 +++++++++ recipes/lorax/meta.yaml | 2 +- recipes/lra/meta.yaml | 2 +- recipes/lrez/meta.yaml | 2 +- recipes/lumpy-sv-minimal/meta.yaml | 2 +- recipes/maast/meta.yaml | 2 +- recipes/machina/build_failure.linux-64.yaml | 104 +++++++++ recipes/machina/build_failure.osx-64.yaml | 104 +++++++++ recipes/machina/meta.yaml | 2 +- recipes/macs2/meta.yaml | 6 +- recipes/macs3/meta.yaml | 2 +- recipes/mageck/meta.yaml | 4 +- recipes/mantis_pfa/meta.yaml | 2 +- recipes/mapcaller/meta.yaml | 2 +- recipes/mappy/meta.yaml | 2 +- recipes/mash/meta.yaml | 2 +- recipes/masurca/meta.yaml | 2 +- .../mauvealigner/build_failure.linux-64.yaml | 105 +++++++++ recipes/mauvealigner/meta.yaml | 2 +- recipes/mawk/meta.yaml | 2 +- recipes/maxentpy/build_failure.linux-64.yaml | 105 +++++++++ recipes/maxentpy/build_failure.osx-64.yaml | 105 +++++++++ recipes/maxentpy/meta.yaml | 4 +- recipes/medaka/build_failure.linux-64.yaml | 105 +++++++++ recipes/medaka/build_failure.osx-64.yaml | 105 +++++++++ recipes/medaka/meta.yaml | 2 +- recipes/medicc2/build_failure.osx-64.yaml | 104 +++++++++ recipes/medicc2/meta.yaml | 5 +- recipes/megadepth/meta.yaml | 2 +- recipes/megalodon/meta.yaml | 2 +- recipes/megapath/meta.yaml | 2 +- recipes/meme/meta.yaml | 2 +- recipes/meraculous/meta.yaml | 2 +- recipes/metabinkit/meta.yaml | 2 +- recipes/metabuli/meta.yaml | 3 +- recipes/metagraph/meta.yaml | 2 +- recipes/metamaps/build_failure.linux-64.yaml | 104 +++++++++ recipes/metamaps/build_failure.osx-64.yaml | 104 +++++++++ recipes/metamaps/meta.yaml | 2 +- recipes/metanovo/meta.yaml | 2 +- recipes/metasnv/build_failure.linux-64.yaml | 106 ++++++++++ recipes/metasnv/meta.yaml | 4 +- recipes/methpipe/build_failure.osx-64.yaml | 104 +++++++++ recipes/methpipe/meta.yaml | 2 +- recipes/methylpy/build_failure.linux-64.yaml | 104 +++++++++ recipes/methylpy/build_failure.osx-64.yaml | 104 +++++++++ recipes/methylpy/meta.yaml | 2 +- recipes/mgems/meta.yaml | 2 +- recipes/mgikit/build_failure.osx-64.yaml | 104 +++++++++ recipes/mgikit/meta.yaml | 2 +- recipes/mgkit/meta.yaml | 2 +- recipes/mgs-canopy/meta.yaml | 2 +- recipes/micall-lite/meta.yaml | 2 +- recipes/mira-moods/build_failure.osx-64.yaml | 104 +++++++++ recipes/mira-moods/meta.yaml | 2 +- recipes/mnnpy/build_failure.linux-64.yaml | 106 ++++++++++ recipes/mnnpy/build_failure.osx-64.yaml | 106 ++++++++++ recipes/mnnpy/meta.yaml | 6 +- recipes/moabs/build_failure.linux-64.yaml | 105 +++++++++ recipes/moabs/build_failure.osx-64.yaml | 105 +++++++++ recipes/moabs/meta.yaml | 4 +- .../mockinbird/build_failure.linux-64.yaml | 104 +++++++++ recipes/mockinbird/build_failure.osx-64.yaml | 104 +++++++++ recipes/mockinbird/meta.yaml | 2 +- recipes/moments/meta.yaml | 3 +- recipes/moods/meta.yaml | 2 +- .../mosaicatcher/build_failure.linux-64.yaml | 104 +++++++++ .../mosaicatcher/build_failure.osx-64.yaml | 104 +++++++++ recipes/mosaicatcher/meta.yaml | 2 +- recipes/moss/build_failure.linux-64.yaml | 104 +++++++++ recipes/moss/meta.yaml | 2 +- recipes/motifscan/meta.yaml | 2 +- recipes/mp-est/meta.yaml | 2 +- recipes/ms-entropy/meta.yaml | 3 +- recipes/ms2pip/build_failure.linux-64.yaml | 106 ++++++++++ recipes/ms2pip/build_failure.osx-64.yaml | 200 +++++++++--------- recipes/ms2pip/meta.yaml | 3 +- recipes/ms2rescore-rs/meta.yaml | 2 +- .../msisensor-pro/build_failure.linux-64.yaml | 104 +++++++++ recipes/msisensor-pro/meta.yaml | 2 +- recipes/mtgrasp/meta.yaml | 2 +- recipes/mummer/meta.yaml | 2 +- recipes/mupbwt/meta.yaml | 2 +- recipes/mykatlas/meta.yaml | 2 +- .../mykrobe/build_failure.linux-aarch64.yaml | 104 +++++++++ recipes/mykrobe/meta.yaml | 2 +- recipes/mztosqlite/1.2.0/meta.yaml | 2 +- recipes/mztosqlite/meta.yaml | 2 +- recipes/nanocaller/meta.yaml | 2 +- recipes/nanopolish/meta.yaml | 2 +- recipes/nanovar/build_failure.linux-64.yaml | 106 ++++++++++ recipes/nanovar/meta.yaml | 2 +- recipes/narfmap/build_failure.linux-64.yaml | 104 +++++++++ recipes/narfmap/meta.yaml | 2 +- recipes/ncbi-ngs-sdk/meta.yaml | 4 +- recipes/ncls/meta.yaml | 2 +- recipes/nerpa/build_failure.linux-64.yaml | 190 ++++++++--------- recipes/nerpa/build_failure.osx-64.yaml | 104 +++++++++ recipes/nerpa/meta.yaml | 3 +- recipes/newick_utils/meta.yaml | 2 +- recipes/nextdenovo/meta.yaml | 2 +- recipes/nextpolish/build_failure.osx-64.yaml | 105 +++++++++ recipes/nextpolish/meta.yaml | 2 +- recipes/ngs-bits/build_failure.linux-64.yaml | 104 +++++++++ recipes/ngs-bits/meta.yaml | 2 +- recipes/ngs-disambiguate/meta.yaml | 2 +- .../0.1.1/build_failure.linux-64.yaml | 104 +++++++++ .../0.1.1/build_failure.osx-64.yaml | 104 +++++++++ recipes/ngshmmalign/0.1.1/meta.yaml | 2 +- recipes/ngslca/meta.yaml | 2 +- recipes/ngsngs/meta.yaml | 2 +- recipes/nmrglue/meta.yaml | 2 +- recipes/nonpareil/meta.yaml | 2 +- recipes/nordic/build_failure.linux-64.yaml | 104 +++++++++ recipes/nordic/build_failure.osx-64.yaml | 104 +++++++++ recipes/nordic/meta.yaml | 2 +- recipes/npinv/meta.yaml | 2 +- recipes/ntedit/meta.yaml | 2 +- recipes/ntjoin/meta.yaml | 2 +- recipes/ntlink/build_failure.linux-64.yaml | 105 +++++++++ recipes/ntlink/meta.yaml | 2 +- recipes/ntsynt/build_failure.linux-64.yaml | 106 ++++++++++ recipes/ntsynt/build_failure.osx-64.yaml | 106 ++++++++++ recipes/ntsynt/meta.yaml | 2 +- recipes/nwalign3/build_failure.linux-64.yaml | 104 +++++++++ recipes/nwalign3/build_failure.osx-64.yaml | 104 +++++++++ recipes/nwalign3/meta.yaml | 2 +- recipes/ococo/meta.yaml | 2 +- recipes/odgi/meta.yaml | 2 +- recipes/oncocnv/meta.yaml | 2 +- recipes/ont_vbz_hdf_plugin/meta.yaml | 2 +- .../build_failure.linux-64.yaml | 104 +++++++++ recipes/opencontactcli/meta.yaml | 2 +- recipes/orfipy/meta.yaml | 2 +- recipes/orfquant/meta.yaml | 2 +- .../orientagraph/build_failure.osx-64.yaml | 104 +++++++++ recipes/orientagraph/meta.yaml | 2 +- recipes/orna/build_failure.osx-64.yaml | 104 +++++++++ recipes/orna/meta.yaml | 2 +- recipes/pairix/meta.yaml | 4 +- recipes/pairtools/meta.yaml | 4 +- recipes/parasail-python/meta.yaml | 2 +- recipes/parascopy/build_failure.linux-64.yaml | 104 +++++++++ recipes/parascopy/meta.yaml | 2 +- recipes/pasta/build_failure.linux-64.yaml | 105 +++++++++ recipes/pasta/build_failure.osx-64.yaml | 105 +++++++++ recipes/pasta/meta.yaml | 3 +- recipes/pb-falcon/meta.yaml | 4 +- recipes/pbbam/meta.yaml | 2 +- recipes/pbcopper/meta.yaml | 2 +- recipes/pbwt/meta.yaml | 2 +- recipes/pcaone/meta.yaml | 7 +- recipes/pcasuite/meta.yaml | 2 +- recipes/pcst-fast/meta.yaml | 2 +- recipes/peakachu/meta.yaml | 2 +- recipes/peakranger/meta.yaml | 2 +- recipes/pegasusio/meta.yaml | 2 +- recipes/pegasuspy/build_failure.linux-64.yaml | 104 +++++++++ recipes/pegasuspy/build_failure.osx-64.yaml | 104 +++++++++ recipes/pegasuspy/meta.yaml | 3 +- recipes/pepsirf/build_failure.linux-64.yaml | 104 +++++++++ recipes/pepsirf/build_failure.osx-64.yaml | 104 +++++++++ recipes/pepsirf/meta.yaml | 2 +- .../build_failure.linux-64.yaml | 104 +++++++++ .../build_failure.osx-64.yaml | 200 +++++++++--------- recipes/perl-atlas-modules/meta.yaml | 2 +- .../perl-bio-db-hts/build_failure.osx-64.yaml | 104 --------- recipes/perl-bio-db-hts/meta.yaml | 4 +- recipes/perl-dbd-pg/meta.yaml | 2 +- recipes/perl-statistics-r/meta.yaml | 2 +- recipes/pfp/meta.yaml | 2 +- recipes/pftools/meta.yaml | 2 +- recipes/pgenlib/meta.yaml | 2 +- recipes/pgr-tk/meta.yaml | 2 +- recipes/phanotate/meta.yaml | 3 +- recipes/pheniqs/build_failure.linux-64.yaml | 104 +++++++++ recipes/pheniqs/build_failure.osx-64.yaml | 104 +++++++++ recipes/pheniqs/meta.yaml | 2 +- recipes/phispy/build_failure.osx-64.yaml | 104 +++++++++ recipes/phispy/meta.yaml | 2 +- recipes/phyloacc/build_failure.osx-64.yaml | 104 +++++++++ recipes/phyloacc/meta.yaml | 2 +- recipes/phylodm/meta.yaml | 2 +- recipes/phynder/meta.yaml | 4 +- recipes/physlr/meta.yaml | 2 +- recipes/plek/meta.yaml | 2 +- recipes/plinkio/meta.yaml | 2 +- recipes/plncpro/meta.yaml | 2 +- .../popgen-entropy/build_failure.osx-64.yaml | 104 +++++++++ recipes/popgen-entropy/meta.yaml | 2 +- recipes/poppunk/meta.yaml | 2 +- recipes/porechop/meta.yaml | 2 +- .../porechop_abi/build_failure.osx-64.yaml | 192 ++++++++--------- recipes/porechop_abi/meta.yaml | 2 +- .../portcullis/build_failure.linux-64.yaml | 104 +++++++++ recipes/portcullis/meta.yaml | 2 +- recipes/ppanggolin/build_failure.osx-64.yaml | 104 --------- recipes/ppanggolin/meta.yaml | 2 +- recipes/prequal/meta.yaml | 2 +- recipes/primer3-py/meta.yaml | 2 +- .../build_failure.osx-64.yaml | 104 +++++++++ recipes/prinseq-plus-plus/meta.yaml | 2 +- recipes/probeit/meta.yaml | 2 +- recipes/prodigal/meta.yaml | 2 +- recipes/profile_dists/meta.yaml | 3 +- recipes/prophyle/meta.yaml | 4 +- recipes/pxblat/build_failure.linux-64.yaml | 184 ++++++++-------- recipes/pxblat/build_failure.osx-64.yaml | 196 ++++++++--------- recipes/pxblat/meta.yaml | 2 +- recipes/py2bit/meta.yaml | 4 +- recipes/py_fasta_validator/meta.yaml | 2 +- recipes/pyabpoa/meta.yaml | 2 +- recipes/pybbi/meta.yaml | 4 +- recipes/pybedgraph/meta.yaml | 2 +- recipes/pybedlite/meta.yaml | 2 +- recipes/pybedtools/meta.yaml | 2 +- recipes/pybigtools/build_failure.osx-64.yaml | 104 +++++++++ recipes/pybigtools/meta.yaml | 2 +- recipes/pybigwig/meta.yaml | 3 +- recipes/pybmtools/build_failure.linux-64.yaml | 104 +++++++++ recipes/pybmtools/build_failure.osx-64.yaml | 104 +++++++++ recipes/pybmtools/meta.yaml | 3 +- recipes/pycluster/meta.yaml | 2 +- recipes/pydmtools/build_failure.linux-64.yaml | 104 +++++++++ recipes/pydmtools/build_failure.osx-64.yaml | 104 +++++++++ recipes/pydmtools/meta.yaml | 3 +- recipes/pydna_repeatfinder/meta.yaml | 2 +- recipes/pydnase/build_failure.linux-64.yaml | 104 +++++++++ recipes/pydnase/build_failure.osx-64.yaml | 104 +++++++++ recipes/pydnase/meta.yaml | 2 +- recipes/pyfamsa/meta.yaml | 2 +- recipes/pyfastani/meta.yaml | 2 +- recipes/pyfastx/meta.yaml | 4 +- recipes/pyfba/build_failure.linux-64.yaml | 104 +++++++++ recipes/pyfba/build_failure.osx-64.yaml | 104 +++++++++ recipes/pyfba/meta.yaml | 2 +- recipes/pygtftk/meta.yaml | 4 +- recipes/pyhmmer/meta.yaml | 2 +- recipes/pylibseq/meta.yaml | 2 +- recipes/pymvpa/build_failure.linux-64.yaml | 104 +++++++++ recipes/pymvpa/build_failure.osx-64.yaml | 104 +++++++++ recipes/pymvpa/meta.yaml | 2 +- recipes/pyopal/build_failure.osx-64.yaml | 104 +++++++++ recipes/pyopal/meta.yaml | 2 +- recipes/pyprophet/build_failure.linux-64.yaml | 105 +++++++++ recipes/pyprophet/build_failure.osx-64.yaml | 105 +++++++++ recipes/pyprophet/meta.yaml | 5 +- recipes/pyrle/meta.yaml | 2 +- recipes/pyrodigal/meta.yaml | 2 +- recipes/pysais/meta.yaml | 2 +- recipes/pysam/meta.yaml | 2 +- recipes/pysamstats/meta.yaml | 2 +- recipes/pyseq-align/meta.yaml | 2 +- recipes/pyslow5/meta.yaml | 2 +- recipes/pyspoa/meta.yaml | 2 +- recipes/pytabix/meta.yaml | 4 +- .../python-bioext/build_failure.linux-64.yaml | 104 --------- .../python-bioext/build_failure.osx-64.yaml | 104 --------- recipes/python-bioext/meta.yaml | 2 +- recipes/python-edlib/meta.yaml | 2 +- recipes/python-hppy/build_failure.osx-64.yaml | 105 +++++++++ recipes/python-hppy/meta.yaml | 2 +- .../build_failure.osx-64.yaml | 106 ++++++++++ recipes/python-hyphy-python/meta.yaml | 2 +- recipes/python-libsbml/LICENSE.txt | 167 --------------- recipes/python-libsbml/meta.yaml | 40 ---- recipes/python-msgpack/meta.yaml | 2 +- recipes/pytrf/meta.yaml | 2 +- recipes/pytriangle/meta.yaml | 2 +- recipes/pytrimal/build_failure.osx-64.yaml | 200 +++++++++--------- recipes/pytrimal/meta.yaml | 2 +- recipes/pywfa/build_failure.linux-64.yaml | 106 ++++++++++ recipes/pywfa/build_failure.osx-64.yaml | 106 ++++++++++ recipes/pywfa/meta.yaml | 2 +- recipes/pywgsim/build_failure.linux-64.yaml | 81 +++---- recipes/pywgsim/meta.yaml | 3 +- recipes/quast/meta.yaml | 2 +- recipes/quickbam/build_failure.linux-64.yaml | 104 +++++++++ recipes/quickbam/meta.yaml | 2 +- recipes/quicksect/meta.yaml | 2 +- recipes/r-ccube/meta.yaml | 2 +- recipes/r-cssam/meta.yaml | 2 +- recipes/r-leidenbase/meta.yaml | 4 +- recipes/r-saige/meta.yaml | 2 +- recipes/r-scdc/meta.yaml | 2 +- .../r-velocyto.r/build_failure.osx-64.yaml | 104 +++++++++ recipes/r-velocyto.r/meta.yaml | 2 +- recipes/racon/meta.yaml | 4 +- recipes/ragout/build_failure.osx-64.yaml | 104 +++++++++ recipes/ragout/meta.yaml | 2 +- recipes/rapifilt/meta.yaml | 2 +- recipes/rapsearch/build_failure.linux-64.yaml | 105 +++++++++ recipes/rapsearch/meta.yaml | 4 +- recipes/relion/build_failure.osx-64.yaml | 104 +++++++++ recipes/relion/meta.yaml | 2 +- recipes/repdenovo/build_failure.osx-64.yaml | 104 +++++++++ recipes/repdenovo/meta.yaml | 2 +- recipes/rerconverge/meta.yaml | 2 +- recipes/reseq/meta.yaml | 2 +- recipes/resmico/build_failure.linux-64.yaml | 104 +++++++++ recipes/resmico/build_failure.osx-64.yaml | 104 +++++++++ recipes/resmico/meta.yaml | 2 +- recipes/revoluzer/meta.yaml | 2 +- recipes/rgccacmd/meta.yaml | 2 +- recipes/rhocall/meta.yaml | 2 +- recipes/rmath4/meta.yaml | 2 +- recipes/rmats/build_failure.osx-64.yaml | 104 +++++++++ .../build_failure.linux-64.yaml | 104 +++++++++ recipes/rmats2sashimiplot/meta.yaml | 2 +- recipes/rna-seqc/meta.yaml | 2 +- .../rnablueprint/build_failure.linux-64.yaml | 105 +++++++++ .../rnablueprint/build_failure.osx-64.yaml | 106 ++++++++++ recipes/rnablueprint/meta.yaml | 2 +- recipes/rnabridge-align/meta.yaml | 2 +- recipes/rpbp/meta.yaml | 4 +- recipes/rrikindp/build_failure.osx-64.yaml | 104 +++++++++ recipes/rrikindp/meta.yaml | 2 +- recipes/rsem/build_failure.linux-64.yaml | 104 +++++++++ recipes/rsem/build_failure.osx-64.yaml | 104 +++++++++ recipes/rsem/meta.yaml | 2 +- recipes/rseqc/meta.yaml | 2 +- recipes/rustybam/build_failure.osx-64.yaml | 104 +++++++++ recipes/rustybam/meta.yaml | 2 +- recipes/ryuto/build_failure.linux-64.yaml | 104 +++++++++ recipes/ryuto/build_failure.osx-64.yaml | 104 +++++++++ recipes/ryuto/meta.yaml | 2 +- recipes/safesim/meta.yaml | 2 +- recipes/salmon/meta.yaml | 2 +- recipes/sambamba/meta.yaml | 4 +- recipes/samsum/meta.yaml | 3 +- recipes/samwell/build_failure.linux-64.yaml | 104 +++++++++ recipes/samwell/build_failure.osx-64.yaml | 104 +++++++++ recipes/samwell/meta.yaml | 2 +- recipes/sankoff/meta.yaml | 2 +- recipes/sansa/build_failure.osx-64.yaml | 104 +++++++++ recipes/sansa/meta.yaml | 2 +- recipes/scallop-lr/meta.yaml | 2 +- recipes/scallop/meta.yaml | 2 +- recipes/scallop2/meta.yaml | 2 +- recipes/scalpel/meta.yaml | 4 +- recipes/scelestial/meta.yaml | 4 +- recipes/scib/meta.yaml | 2 +- recipes/sciphi/meta.yaml | 2 +- recipes/sciphin/meta.yaml | 2 +- recipes/scoring-matrices/meta.yaml | 2 +- recipes/scrappie/meta.yaml | 2 +- recipes/segemehl/0.3.1/meta.yaml | 2 +- recipes/segemehl/meta.yaml | 2 +- .../selene-sdk/build_failure.linux-64.yaml | 5 + recipes/selene-sdk/meta.yaml | 2 +- recipes/seqfu/build_failure.osx-64.yaml | 39 ++++ recipes/seqfu/meta.yaml | 2 +- recipes/seqhax/meta.yaml | 2 +- recipes/sequali/build_failure.osx-64.yaml | 104 +++++++++ recipes/sequali/meta.yaml | 2 +- .../sequenza-utils/build_failure.osx-64.yaml | 104 +++++++++ recipes/sequenza-utils/meta.yaml | 2 +- recipes/sga/build_failure.osx-64.yaml | 106 ++++++++++ recipes/sga/meta.yaml | 2 +- recipes/shapeit4/meta.yaml | 2 +- recipes/shapeit5/build_failure.linux-64.yaml | 104 +++++++++ recipes/shapeit5/meta.yaml | 2 +- recipes/sherpas/build_failure.osx-64.yaml | 104 +++++++++ recipes/sherpas/meta.yaml | 2 +- .../shorah/1.1.3/build_failure.linux-64.yaml | 104 +++++++++ .../shorah/1.1.3/build_failure.osx-64.yaml | 104 +++++++++ recipes/shorah/1.1.3/meta.yaml | 2 +- .../shorah/1.99.0/build_failure.linux-64.yaml | 104 +++++++++ .../shorah/1.99.0/build_failure.osx-64.yaml | 104 +++++++++ recipes/shorah/1.99.0/meta.yaml | 2 +- .../shorah/1.99.2/build_failure.linux-64.yaml | 104 +++++++++ .../shorah/1.99.2/build_failure.osx-64.yaml | 104 +++++++++ recipes/shorah/1.99.2/meta.yaml | 2 +- recipes/shortseq/build_failure.linux-64.yaml | 104 +++++++++ recipes/shortseq/build_failure.osx-64.yaml | 104 +++++++++ recipes/shortseq/meta.yaml | 2 +- recipes/sicer2/build_failure.linux-64.yaml | 104 +++++++++ recipes/sicer2/build_failure.osx-64.yaml | 104 +++++++++ recipes/sicer2/meta.yaml | 3 +- recipes/simba_pbg/meta.yaml | 2 +- recipes/simlord/build_failure.linux-64.yaml | 104 +++++++++ recipes/simlord/build_failure.osx-64.yaml | 104 +++++++++ recipes/simlord/meta.yaml | 2 +- recipes/ska2/meta.yaml | 2 +- recipes/skder/build_failure.linux-64.yaml | 104 +++++++++ recipes/skder/build_failure.osx-64.yaml | 104 +++++++++ recipes/skder/meta.yaml | 2 +- recipes/slow5tools/0.2.0/meta.yaml | 2 +- recipes/slow5tools/0.7.0/meta.yaml | 2 +- recipes/slow5tools/0.8.0/meta.yaml | 2 +- recipes/slow5tools/0.9.0/meta.yaml | 2 +- recipes/slow5tools/1.0.0/meta.yaml | 2 +- recipes/slow5tools/meta.yaml | 2 +- recipes/smaca/meta.yaml | 6 +- recipes/smhasher/meta.yaml | 2 +- recipes/smncopynumbercaller/meta.yaml | 4 +- recipes/smudgeplot/meta.yaml | 2 +- recipes/smudgeplot_rn/meta.yaml | 2 +- recipes/snapatac2/build_failure.linux-64.yaml | 4 + recipes/snapatac2/build_failure.osx-64.yaml | 104 +++++++++ recipes/snapatac2/meta.yaml | 2 +- recipes/sneep/build_failure.osx-64.yaml | 104 +++++++++ recipes/sneep/meta.yaml | 2 +- recipes/snikt/meta.yaml | 2 +- recipes/snp-pileup/meta.yaml | 2 +- recipes/soapdenovo2-errorcorrection/meta.yaml | 2 +- recipes/solexaqa/meta.yaml | 2 +- recipes/sonicparanoid/meta.yaml | 2 +- recipes/sonlib/build_failure.osx-64.yaml | 106 ++++++++++ recipes/sonlib/meta.yaml | 2 +- .../sorted_nearest/build_failure.osx-64.yaml | 105 +++++++++ recipes/sorted_nearest/meta.yaml | 6 +- .../spades/build_failure.linux-aarch64.yaml | 33 +++ recipes/spades/build_failure.osx-64.yaml | 105 +++++++++ recipes/spades/meta.yaml | 2 +- recipes/sqt/build_failure.linux-64.yaml | 106 ++++++++++ recipes/sqt/build_failure.osx-64.yaml | 106 ++++++++++ recipes/sqt/meta.yaml | 2 +- recipes/squeakr/meta.yaml | 2 +- recipes/squid/meta.yaml | 2 +- recipes/staden_io_lib/meta.yaml | 4 +- recipes/stare-abc/meta.yaml | 2 +- recipes/starseqr/build_failure.linux-64.yaml | 104 +++++++++ recipes/starseqr/build_failure.osx-64.yaml | 104 +++++++++ recipes/starseqr/meta.yaml | 2 +- recipes/strainge/build_failure.linux-64.yaml | 104 +++++++++ recipes/strainge/build_failure.osx-64.yaml | 104 +++++++++ recipes/strainge/meta.yaml | 2 +- recipes/strainr2/meta.yaml | 2 +- recipes/strandphaser/meta.yaml | 2 +- recipes/strawc/meta.yaml | 2 +- recipes/strcount/meta.yaml | 2 +- recipes/stringdecomposer/meta.yaml | 2 +- recipes/strling/build_failure.linux-64.yaml | 104 +++++++++ recipes/strling/meta.yaml | 2 +- recipes/superstr/meta.yaml | 2 +- recipes/svdb/meta.yaml | 2 +- recipes/svdss/build_failure.linux-64.yaml | 104 +++++++++ recipes/svdss/meta.yaml | 2 +- recipes/svtk/meta.yaml | 2 +- recipes/syngap/meta.yaml | 2 +- recipes/taxonomy/build_failure.osx-64.yaml | 104 +++++++++ recipes/taxonomy/meta.yaml | 2 +- recipes/telseq/build_failure.osx-64.yaml | 104 +++++++++ recipes/telseq/meta.yaml | 2 +- recipes/tepeaks/meta.yaml | 2 +- recipes/terrace/build_failure.linux-64.yaml | 104 +++++++++ recipes/terrace/build_failure.osx-64.yaml | 104 +++++++++ recipes/terrace/meta.yaml | 2 +- recipes/tiddit/meta.yaml | 2 +- recipes/tigmint/meta.yaml | 2 +- recipes/tinyalign/meta.yaml | 2 +- recipes/tiptoft/build_failure.linux-64.yaml | 104 +++++++++ recipes/tiptoft/build_failure.osx-64.yaml | 104 +++++++++ recipes/tiptoft/meta.yaml | 2 +- recipes/tksm/meta.yaml | 2 +- recipes/tobias/build_failure.osx-64.yaml | 105 +++++++++ recipes/tobias/meta.yaml | 3 +- .../tpmcalculator/build_failure.osx-64.yaml | 104 +++++++++ recipes/tpmcalculator/meta.yaml | 2 +- recipes/tracy/meta.yaml | 2 +- recipes/treemix/build_failure.osx-64.yaml | 104 +++++++++ recipes/treemix/meta.yaml | 2 +- recipes/trumicount/meta.yaml | 2 +- recipes/tssar/meta.yaml | 2 +- recipes/tssv/meta.yaml | 2 +- recipes/ucsc-blat/meta.yaml | 2 +- recipes/ucsc-pslcdnafilter/meta.yaml | 2 +- recipes/ultraplex/meta.yaml | 2 +- recipes/umi_tools/meta.yaml | 5 +- recipes/umis/build_failure.linux-64.yaml | 104 --------- recipes/umis/build_failure.osx-64.yaml | 196 ++++++++--------- recipes/umis/meta.yaml | 2 +- recipes/unicycler/0.4.4/meta.yaml | 2 +- recipes/unicycler/meta.yaml | 2 +- recipes/unifrac/build_failure.linux-64.yaml | 105 +++++++++ recipes/unifrac/build_failure.osx-64.yaml | 105 +++++++++ recipes/unifrac/meta.yaml | 5 +- recipes/unitig-caller/meta.yaml | 2 +- recipes/usher/build_failure.linux-64.yaml | 106 ++++++++++ .../usher/build_failure.linux-aarch64.yaml | 106 ++++++++++ recipes/usher/build_failure.osx-64.yaml | 118 ++++++----- recipes/usher/meta.yaml | 2 +- recipes/ushuffle/meta.yaml | 2 +- recipes/vamos/meta.yaml | 2 +- recipes/velocyto.py/meta.yaml | 5 +- .../verifybamid2/build_failure.osx-64.yaml | 104 +++++++++ recipes/verifybamid2/meta.yaml | 2 +- recipes/verifyidintensity/meta.yaml | 2 +- recipes/viennarna/meta.yaml | 2 +- recipes/viromeqc/build_failure.linux-64.yaml | 104 +++++++++ recipes/viromeqc/meta.yaml | 4 +- recipes/vphaser2/meta.yaml | 2 +- recipes/vt/meta.yaml | 4 +- recipes/vtools/meta.yaml | 2 +- recipes/w4mclassfilter/meta.yaml | 2 +- recipes/wally/build_failure.linux-64.yaml | 104 +++++++++ recipes/wally/build_failure.osx-64.yaml | 104 +++++++++ recipes/wally/meta.yaml | 2 +- recipes/whatshap/build_failure.linux-64.yaml | 105 +++++++++ .../whatshap/build_failure.linux-aarch64.yaml | 105 +++++++++ recipes/whatshap/meta.yaml | 2 +- recipes/wiggletools/meta.yaml | 2 +- recipes/xatlas/meta.yaml | 2 +- recipes/yahmm/build_failure.linux-64.yaml | 122 +++++++++++ recipes/yahmm/build_failure.osx-64.yaml | 105 +++++++++ recipes/yahmm/meta.yaml | 2 +- recipes/zol/build_failure.linux-64.yaml | 104 +++++++++ recipes/zol/build_failure.osx-64.yaml | 104 +++++++++ recipes/zol/meta.yaml | 2 +- 867 files changed, 28998 insertions(+), 3932 deletions(-) create mode 100644 recipes/ac-diamond/build_failure.linux-64.yaml create mode 100644 recipes/aeon/build_failure.linux-64.yaml create mode 100644 recipes/aeon/build_failure.osx-64.yaml create mode 100644 recipes/albatradis/build_failure.linux-64.yaml create mode 100644 recipes/alfred/build_failure.osx-64.yaml create mode 100644 recipes/alignlib-lite/build_failure.linux-64.yaml create mode 100644 recipes/alignlib-lite/build_failure.osx-64.yaml create mode 100644 recipes/anise_basil/build_failure.osx-64.yaml create mode 100644 recipes/ataqv/build_failure.linux-64.yaml create mode 100644 recipes/ataqv/build_failure.osx-64.yaml create mode 100644 recipes/augustus/3.3.3/build_failure.osx-64.yaml create mode 100644 recipes/bamread/build_failure.osx-64.yaml create mode 100644 recipes/bcov/build_failure.osx-64.yaml create mode 100644 recipes/biobloomtools/build_failure.linux-64.yaml create mode 100644 recipes/bioconductor-cytoml/build_failure.osx-64.yaml delete mode 100644 recipes/bioconductor-musicatk/build_failure.linux-64.yaml create mode 100644 recipes/bioconductor-netpathminer/build_failure.osx-64.yaml create mode 100644 recipes/blockclust/build_failure.linux-64.yaml create mode 100644 recipes/bte/build_failure.linux-64.yaml create mode 100644 recipes/bte/build_failure.osx-64.yaml create mode 100644 recipes/bwread/build_failure.osx-64.yaml create mode 100644 recipes/cansam/build_failure.osx-64.yaml create mode 100644 recipes/cassiopee/build_failure.osx-64.yaml create mode 100644 recipes/cellprofiler/build_failure.linux-64.yaml create mode 100644 recipes/cellprofiler/build_failure.osx-64.yaml create mode 100644 recipes/cellsnp-lite/build_failure.osx-64.yaml delete mode 100644 recipes/centrosome/build_failure.osx-64.yaml create mode 100644 recipes/cgat-apps/build_failure.linux-64.yaml create mode 100644 recipes/cgat-apps/build_failure.osx-64.yaml create mode 100644 recipes/chia-rep/build_failure.linux-64.yaml create mode 100644 recipes/chia-rep/build_failure.osx-64.yaml create mode 100644 recipes/chips/build_failure.osx-64.yaml create mode 100644 recipes/chorus2/build_failure.linux-64.yaml create mode 100644 recipes/chorus2/build_failure.osx-64.yaml create mode 100644 recipes/coinfinder/build_failure.osx-64.yaml create mode 100644 recipes/commet/build_failure.osx-64.yaml delete mode 100644 recipes/cooltools/0.3.2/build_failure.osx-64.yaml create mode 100644 recipes/crussmap/build_failure.osx-64.yaml create mode 100644 recipes/curves/build_failure.osx-64.yaml create mode 100644 recipes/cytocad/build_failure.linux-64.yaml create mode 100644 recipes/dart/build_failure.osx-64.yaml create mode 100644 recipes/dawg/build_failure.linux-64.yaml create mode 100644 recipes/delly/build_failure.osx-64.yaml create mode 100644 recipes/desman/build_failure.linux-64.yaml create mode 100644 recipes/dicey/build_failure.linux-64.yaml create mode 100644 recipes/dicey/build_failure.linux-aarch64.yaml create mode 100644 recipes/dicey/build_failure.osx-64.yaml create mode 100644 recipes/dinopy/build_failure.linux-64.yaml create mode 100644 recipes/dinopy/build_failure.linux-aarch64.yaml create mode 100644 recipes/dinopy/build_failure.osx-64.yaml create mode 100644 recipes/dragmap/build_failure.linux-64.yaml create mode 100644 recipes/dropest/build_failure.linux-64.yaml create mode 100644 recipes/dropkick/build_failure.linux-64.yaml create mode 100644 recipes/emu-pca/build_failure.osx-64.yaml create mode 100644 recipes/epicseg/build_failure.linux-64.yaml create mode 100644 recipes/epicseg/build_failure.osx-64.yaml create mode 100644 recipes/expansionhunter/build_failure.osx-64.yaml create mode 100644 recipes/f5c/0.6/build_failure.osx-64.yaml create mode 100644 recipes/f5c/1.2/build_failure.osx-64.yaml create mode 100644 recipes/faqcs/build_failure.osx-64.yaml create mode 100644 recipes/fastphylo/build_failure.linux-64.yaml delete mode 100644 recipes/fastqsplitter/build_failure.osx-64.yaml delete mode 100644 recipes/fcsparser/meta.yaml create mode 100644 recipes/fgwas/build_failure.osx-64.yaml create mode 100644 recipes/flye/build_failure.linux-64.yaml create mode 100644 recipes/flye/build_failure.linux-aarch64.yaml create mode 100644 recipes/flye/build_failure.osx-64.yaml create mode 100644 recipes/fwdpy11/build_failure.osx-64.yaml delete mode 100644 recipes/gadem/build_failure.linux-64.yaml delete mode 100644 recipes/gadem/build_failure.osx-64.yaml delete mode 100644 recipes/gambit/build_failure.linux-64.yaml delete mode 100644 recipes/gambit/build_failure.osx-64.yaml create mode 100644 recipes/gangstr/build_failure.linux-64.yaml create mode 100644 recipes/gangstr/build_failure.osx-64.yaml create mode 100644 recipes/gargammel-slim/build_failure.osx-64.yaml create mode 100644 recipes/gargammel/build_failure.linux-64.yaml create mode 100644 recipes/gargammel/build_failure.osx-64.yaml create mode 100644 recipes/gb-io/build_failure.osx-64.yaml delete mode 100644 recipes/gembs/build_failure.linux-64.yaml create mode 100644 recipes/gemini/build_failure.linux-64.yaml create mode 100644 recipes/gemini/build_failure.linux-aarch64.yaml create mode 100644 recipes/gemini/build_failure.osx-64.yaml create mode 100644 recipes/ggcaller/build_failure.linux-64.yaml create mode 100644 recipes/gimmemotifs/build_failure.linux-64.yaml delete mode 100644 recipes/glimmerhmm/build_failure.linux-64.yaml create mode 100644 recipes/goldrush/build_failure.osx-64.yaml create mode 100644 recipes/hapog/build_failure.osx-64.yaml create mode 100644 recipes/hera/build_failure.linux-64.yaml create mode 100644 recipes/hhsuite/build_failure.osx-64.yaml create mode 100644 recipes/hic-straw/build_failure.osx-64.yaml create mode 100644 recipes/hictk/build_failure.linux-aarch64.yaml create mode 100644 recipes/hictk/build_failure.osx-64.yaml create mode 100644 recipes/hictkpy/build_failure.osx-64.yaml create mode 100644 recipes/hiddendomains/build_failure.linux-64.yaml create mode 100644 recipes/hla-la/1.0/build_failure.linux-64.yaml create mode 100644 recipes/iced/build_failure.linux-64.yaml create mode 100644 recipes/iced/build_failure.osx-64.yaml create mode 100644 recipes/igblast-parser/build_failure.linux-64.yaml create mode 100644 recipes/igblast-parser/build_failure.osx-64.yaml delete mode 100644 recipes/intarna/build_failure.osx-64.yaml create mode 100644 recipes/iqtree/build_failure.linux-aarch64.yaml create mode 100644 recipes/isospecpy/build_failure.osx-64.yaml create mode 100644 recipes/jcvi/build_failure.linux-64.yaml create mode 100644 recipes/jcvi/build_failure.linux-aarch64.yaml create mode 100644 recipes/k8/build_failure.linux-aarch64.yaml create mode 100644 recipes/k8/build_failure.osx-64.yaml create mode 100644 recipes/kart/build_failure.osx-64.yaml create mode 100644 recipes/kcounter/build_failure.linux-64.yaml create mode 100644 recipes/kmasker/build_failure.linux-64.yaml create mode 100644 recipes/kmasker/build_failure.osx-64.yaml create mode 100644 recipes/leehom/build_failure.linux-64.yaml create mode 100644 recipes/libgtextutils/build_failure.osx-64.yaml create mode 100644 recipes/libmems/build_failure.linux-64.yaml create mode 100644 recipes/libsbml/build_failure.linux-64.yaml create mode 100644 recipes/libshorah/build_failure.linux-64.yaml create mode 100644 recipes/libshorah/build_failure.osx-64.yaml create mode 100644 recipes/linkstats/build_failure.linux-64.yaml create mode 100644 recipes/linkstats/build_failure.osx-64.yaml create mode 100644 recipes/lofreq/build_failure.osx-64.yaml create mode 100644 recipes/longreadsum/build_failure.linux-64.yaml create mode 100644 recipes/lorax/build_failure.linux-64.yaml create mode 100644 recipes/lorax/build_failure.osx-64.yaml create mode 100644 recipes/machina/build_failure.linux-64.yaml create mode 100644 recipes/machina/build_failure.osx-64.yaml create mode 100644 recipes/mauvealigner/build_failure.linux-64.yaml create mode 100644 recipes/maxentpy/build_failure.linux-64.yaml create mode 100644 recipes/maxentpy/build_failure.osx-64.yaml create mode 100644 recipes/medaka/build_failure.linux-64.yaml create mode 100644 recipes/medaka/build_failure.osx-64.yaml create mode 100644 recipes/medicc2/build_failure.osx-64.yaml create mode 100644 recipes/metamaps/build_failure.linux-64.yaml create mode 100644 recipes/metamaps/build_failure.osx-64.yaml create mode 100644 recipes/metasnv/build_failure.linux-64.yaml create mode 100644 recipes/methpipe/build_failure.osx-64.yaml create mode 100644 recipes/methylpy/build_failure.linux-64.yaml create mode 100644 recipes/methylpy/build_failure.osx-64.yaml create mode 100644 recipes/mgikit/build_failure.osx-64.yaml create mode 100644 recipes/mira-moods/build_failure.osx-64.yaml create mode 100644 recipes/mnnpy/build_failure.linux-64.yaml create mode 100644 recipes/mnnpy/build_failure.osx-64.yaml create mode 100644 recipes/moabs/build_failure.linux-64.yaml create mode 100644 recipes/moabs/build_failure.osx-64.yaml create mode 100644 recipes/mockinbird/build_failure.linux-64.yaml create mode 100644 recipes/mockinbird/build_failure.osx-64.yaml create mode 100644 recipes/mosaicatcher/build_failure.linux-64.yaml create mode 100644 recipes/mosaicatcher/build_failure.osx-64.yaml create mode 100644 recipes/moss/build_failure.linux-64.yaml create mode 100644 recipes/ms2pip/build_failure.linux-64.yaml create mode 100644 recipes/msisensor-pro/build_failure.linux-64.yaml create mode 100644 recipes/mykrobe/build_failure.linux-aarch64.yaml create mode 100644 recipes/nanovar/build_failure.linux-64.yaml create mode 100644 recipes/narfmap/build_failure.linux-64.yaml create mode 100644 recipes/nerpa/build_failure.osx-64.yaml create mode 100644 recipes/nextpolish/build_failure.osx-64.yaml create mode 100644 recipes/ngs-bits/build_failure.linux-64.yaml create mode 100644 recipes/ngshmmalign/0.1.1/build_failure.linux-64.yaml create mode 100644 recipes/ngshmmalign/0.1.1/build_failure.osx-64.yaml create mode 100644 recipes/nordic/build_failure.linux-64.yaml create mode 100644 recipes/nordic/build_failure.osx-64.yaml create mode 100644 recipes/ntlink/build_failure.linux-64.yaml create mode 100644 recipes/ntsynt/build_failure.linux-64.yaml create mode 100644 recipes/ntsynt/build_failure.osx-64.yaml create mode 100644 recipes/nwalign3/build_failure.linux-64.yaml create mode 100644 recipes/nwalign3/build_failure.osx-64.yaml create mode 100644 recipes/opencontactcli/build_failure.linux-64.yaml create mode 100644 recipes/orientagraph/build_failure.osx-64.yaml create mode 100644 recipes/orna/build_failure.osx-64.yaml create mode 100644 recipes/parascopy/build_failure.linux-64.yaml create mode 100644 recipes/pasta/build_failure.linux-64.yaml create mode 100644 recipes/pasta/build_failure.osx-64.yaml create mode 100644 recipes/pegasuspy/build_failure.linux-64.yaml create mode 100644 recipes/pegasuspy/build_failure.osx-64.yaml create mode 100644 recipes/pepsirf/build_failure.linux-64.yaml create mode 100644 recipes/pepsirf/build_failure.osx-64.yaml create mode 100644 recipes/perl-atlas-modules/build_failure.linux-64.yaml delete mode 100644 recipes/perl-bio-db-hts/build_failure.osx-64.yaml create mode 100644 recipes/pheniqs/build_failure.linux-64.yaml create mode 100644 recipes/pheniqs/build_failure.osx-64.yaml create mode 100644 recipes/phispy/build_failure.osx-64.yaml create mode 100644 recipes/phyloacc/build_failure.osx-64.yaml create mode 100644 recipes/popgen-entropy/build_failure.osx-64.yaml create mode 100644 recipes/portcullis/build_failure.linux-64.yaml delete mode 100644 recipes/ppanggolin/build_failure.osx-64.yaml create mode 100644 recipes/prinseq-plus-plus/build_failure.osx-64.yaml create mode 100644 recipes/pybigtools/build_failure.osx-64.yaml create mode 100644 recipes/pybmtools/build_failure.linux-64.yaml create mode 100644 recipes/pybmtools/build_failure.osx-64.yaml create mode 100644 recipes/pydmtools/build_failure.linux-64.yaml create mode 100644 recipes/pydmtools/build_failure.osx-64.yaml create mode 100644 recipes/pydnase/build_failure.linux-64.yaml create mode 100644 recipes/pydnase/build_failure.osx-64.yaml create mode 100644 recipes/pyfba/build_failure.linux-64.yaml create mode 100644 recipes/pyfba/build_failure.osx-64.yaml create mode 100644 recipes/pymvpa/build_failure.linux-64.yaml create mode 100644 recipes/pymvpa/build_failure.osx-64.yaml create mode 100644 recipes/pyopal/build_failure.osx-64.yaml create mode 100644 recipes/pyprophet/build_failure.linux-64.yaml create mode 100644 recipes/pyprophet/build_failure.osx-64.yaml delete mode 100644 recipes/python-bioext/build_failure.linux-64.yaml delete mode 100644 recipes/python-bioext/build_failure.osx-64.yaml create mode 100644 recipes/python-hppy/build_failure.osx-64.yaml create mode 100644 recipes/python-hyphy-python/build_failure.osx-64.yaml delete mode 100644 recipes/python-libsbml/LICENSE.txt delete mode 100644 recipes/python-libsbml/meta.yaml create mode 100644 recipes/pywfa/build_failure.linux-64.yaml create mode 100644 recipes/pywfa/build_failure.osx-64.yaml create mode 100644 recipes/quickbam/build_failure.linux-64.yaml create mode 100644 recipes/r-velocyto.r/build_failure.osx-64.yaml create mode 100644 recipes/ragout/build_failure.osx-64.yaml create mode 100644 recipes/rapsearch/build_failure.linux-64.yaml create mode 100644 recipes/relion/build_failure.osx-64.yaml create mode 100644 recipes/repdenovo/build_failure.osx-64.yaml create mode 100644 recipes/resmico/build_failure.linux-64.yaml create mode 100644 recipes/resmico/build_failure.osx-64.yaml create mode 100644 recipes/rmats/build_failure.osx-64.yaml create mode 100644 recipes/rmats2sashimiplot/build_failure.linux-64.yaml create mode 100644 recipes/rnablueprint/build_failure.linux-64.yaml create mode 100644 recipes/rnablueprint/build_failure.osx-64.yaml create mode 100644 recipes/rrikindp/build_failure.osx-64.yaml create mode 100644 recipes/rsem/build_failure.linux-64.yaml create mode 100644 recipes/rsem/build_failure.osx-64.yaml create mode 100644 recipes/rustybam/build_failure.osx-64.yaml create mode 100644 recipes/ryuto/build_failure.linux-64.yaml create mode 100644 recipes/ryuto/build_failure.osx-64.yaml create mode 100644 recipes/samwell/build_failure.linux-64.yaml create mode 100644 recipes/samwell/build_failure.osx-64.yaml create mode 100644 recipes/sansa/build_failure.osx-64.yaml create mode 100644 recipes/selene-sdk/build_failure.linux-64.yaml create mode 100644 recipes/seqfu/build_failure.osx-64.yaml create mode 100644 recipes/sequali/build_failure.osx-64.yaml create mode 100644 recipes/sequenza-utils/build_failure.osx-64.yaml create mode 100644 recipes/sga/build_failure.osx-64.yaml create mode 100644 recipes/shapeit5/build_failure.linux-64.yaml create mode 100644 recipes/sherpas/build_failure.osx-64.yaml create mode 100644 recipes/shorah/1.1.3/build_failure.linux-64.yaml create mode 100644 recipes/shorah/1.1.3/build_failure.osx-64.yaml create mode 100644 recipes/shorah/1.99.0/build_failure.linux-64.yaml create mode 100644 recipes/shorah/1.99.0/build_failure.osx-64.yaml create mode 100644 recipes/shorah/1.99.2/build_failure.linux-64.yaml create mode 100644 recipes/shorah/1.99.2/build_failure.osx-64.yaml create mode 100644 recipes/shortseq/build_failure.linux-64.yaml create mode 100644 recipes/shortseq/build_failure.osx-64.yaml create mode 100644 recipes/sicer2/build_failure.linux-64.yaml create mode 100644 recipes/sicer2/build_failure.osx-64.yaml create mode 100644 recipes/simlord/build_failure.linux-64.yaml create mode 100644 recipes/simlord/build_failure.osx-64.yaml create mode 100644 recipes/skder/build_failure.linux-64.yaml create mode 100644 recipes/skder/build_failure.osx-64.yaml create mode 100644 recipes/snapatac2/build_failure.linux-64.yaml create mode 100644 recipes/snapatac2/build_failure.osx-64.yaml create mode 100644 recipes/sneep/build_failure.osx-64.yaml create mode 100644 recipes/sonlib/build_failure.osx-64.yaml create mode 100644 recipes/sorted_nearest/build_failure.osx-64.yaml create mode 100644 recipes/spades/build_failure.linux-aarch64.yaml create mode 100644 recipes/spades/build_failure.osx-64.yaml create mode 100644 recipes/sqt/build_failure.linux-64.yaml create mode 100644 recipes/sqt/build_failure.osx-64.yaml create mode 100644 recipes/starseqr/build_failure.linux-64.yaml create mode 100644 recipes/starseqr/build_failure.osx-64.yaml create mode 100644 recipes/strainge/build_failure.linux-64.yaml create mode 100644 recipes/strainge/build_failure.osx-64.yaml create mode 100644 recipes/strling/build_failure.linux-64.yaml create mode 100644 recipes/svdss/build_failure.linux-64.yaml create mode 100644 recipes/taxonomy/build_failure.osx-64.yaml create mode 100644 recipes/telseq/build_failure.osx-64.yaml create mode 100644 recipes/terrace/build_failure.linux-64.yaml create mode 100644 recipes/terrace/build_failure.osx-64.yaml create mode 100644 recipes/tiptoft/build_failure.linux-64.yaml create mode 100644 recipes/tiptoft/build_failure.osx-64.yaml create mode 100644 recipes/tobias/build_failure.osx-64.yaml create mode 100644 recipes/tpmcalculator/build_failure.osx-64.yaml create mode 100644 recipes/treemix/build_failure.osx-64.yaml delete mode 100644 recipes/umis/build_failure.linux-64.yaml create mode 100644 recipes/unifrac/build_failure.linux-64.yaml create mode 100644 recipes/unifrac/build_failure.osx-64.yaml create mode 100644 recipes/usher/build_failure.linux-64.yaml create mode 100644 recipes/usher/build_failure.linux-aarch64.yaml create mode 100644 recipes/verifybamid2/build_failure.osx-64.yaml create mode 100644 recipes/viromeqc/build_failure.linux-64.yaml create mode 100644 recipes/wally/build_failure.linux-64.yaml create mode 100644 recipes/wally/build_failure.osx-64.yaml create mode 100644 recipes/whatshap/build_failure.linux-64.yaml create mode 100644 recipes/whatshap/build_failure.linux-aarch64.yaml create mode 100644 recipes/yahmm/build_failure.linux-64.yaml create mode 100644 recipes/yahmm/build_failure.osx-64.yaml create mode 100644 recipes/zol/build_failure.linux-64.yaml create mode 100644 recipes/zol/build_failure.osx-64.yaml diff --git a/.circleci/config.yml b/.circleci/config.yml index 201b46c7dea43..4631c4c8db830 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -40,12 +40,6 @@ jobs: # a basic unit of work in a run command: echo 'export PATH=/opt/mambaforge/bin:"$PATH"' >> "$BASH_ENV" - # We reconfigure conda to use the right channel setup. - # This has to be done after the cache is restored, because - # the channel setup is not cached as it resides in the home directory. - # We could use a system-wide (and therefore cached) channel setup, - # but mamba does not support that at the time of implementation - # (it ignores settings made by --system). - run: name: Configure conda command: bash configure-conda.sh @@ -117,12 +111,6 @@ jobs: # a basic unit of work in a run command: echo 'export PATH=/opt/mambaforge/bin:"$PATH"' >> "$BASH_ENV" - # We reconfigure conda to use the right channel setup. - # This has to be done after the cache is restored, because - # the channel setup is not cached as it resides in the home directory. - # We could use a system-wide (and therefore cached) channel setup, - # but mamba does not support that at the time of implementation - # (it ignores settings made by --system). - run: name: Configure conda command: bash configure-conda.sh @@ -187,12 +175,6 @@ jobs: # a basic unit of work in a run command: echo 'export PATH=/opt/mambaforge/bin:"$PATH"' >> "$BASH_ENV" - # We reconfigure conda to use the right channel setup. - # This has to be done after the cache is restored, because - # the channel setup is not cached as it resides in the home directory. - # We could use a system-wide (and therefore cached) channel setup, - # but mamba does not support that at the time of implementation - # (it ignores settings made by --system). - run: name: Configure conda command: bash configure-conda.sh @@ -215,7 +197,6 @@ jobs: # a basic unit of work in a run --worker-offset << parameters.runner >> --n-workers 6 \ --docker --mulled-test --docker-base-image "quay.io/bioconda/bioconda-utils-build-env-cos7-$(arch):${BIOCONDA_UTILS_TAG#v}" \ --anaconda-upload \ - --mulled-upload-target biocontainers \ --record-build-failures \ --skiplist-leafs conda clean -y --all @@ -248,6 +229,7 @@ workflows: #- osx-arm64 - linux-aarch64 + Bulk branch (ARM): jobs: - bulk_build: diff --git a/.github/workflows/Bulk.yml b/.github/workflows/Bulk.yml index 8a3ec217f3ebb..ec689ce742449 100644 --- a/.github/workflows/Bulk.yml +++ b/.github/workflows/Bulk.yml @@ -14,7 +14,7 @@ jobs: matrix: runner: [0, 1, 2, 3, 4, 5] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: # checkout as BiocondaBot in order to have the permission to push fail logs token: ${{secrets.BIOCONDA_BOT_REPO_TOKEN}} @@ -31,23 +31,9 @@ jobs: run: | wget https://raw.githubusercontent.com/bioconda/bioconda-common/bulk/{common,install-and-set-up-conda,configure-conda}.sh - - name: Restore cache - id: cache - uses: actions/cache@v3 - with: - path: /opt/mambaforge - key: ${{ runner.os }}--bulk--${{ hashFiles('install-and-set-up-conda.sh', 'common.sh', 'configure-conda.sh') }} - - name: Set up bioconda-utils - if: steps.cache.outputs.cache-hit != 'true' run: bash install-and-set-up-conda.sh - # This script can be used to reconfigure conda to use the right channel setup. - # This has to be done after the cache is restored, because - # the channel setup is not cached as it resides in the home directory. - # We could use a system-wide (and therefore cached) channel setup, - # but mamba does not support that at the time of implementation - # (it ignores settings made with --system). - name: Configure conda run: bash configure-conda.sh @@ -71,7 +57,8 @@ jobs: bioconda-utils build recipes config.yml \ --worker-offset ${{ matrix.runner }} --n-workers 6 \ --docker --mulled-test --anaconda-upload --mulled-upload-target biocontainers \ - --lint --record-build-failures --skiplist-leafs + --lint --record-build-failures --skiplist-leafs \ + --exclude bioconda-repodata-patches conda clean -y --all build-osx: @@ -84,7 +71,7 @@ jobs: matrix: runner: [0, 1, 2, 3] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: # checkout as BiocondaBot in order to have the permission to push fail logs token: ${{secrets.BIOCONDA_BOT_REPO_TOKEN}} @@ -101,23 +88,9 @@ jobs: run: | wget https://raw.githubusercontent.com/bioconda/bioconda-common/bulk/{common,install-and-set-up-conda,configure-conda}.sh - - name: Restore cache - id: cache - uses: actions/cache@v3 - with: - path: /opt/mambaforge - key: ${{ runner.os }}--bulk--${{ hashFiles('install-and-set-up-conda.sh', 'common.sh', 'configure-conda.sh') }} - - name: Set up bioconda-utils - if: steps.cache.outputs.cache-hit != 'true' run: bash install-and-set-up-conda.sh - # This script can be used to reconfigure conda to use the right channel setup. - # This has to be done after the cache is restored, because - # the channel setup is not cached as it resides in the home directory. - # We could use a system-wide (and therefore cached) channel setup, - # but mamba does not support that at the time of implementation - # (it ignores settings made with --system). - name: Configure conda run: bash configure-conda.sh @@ -134,7 +107,7 @@ jobs: eval "$(conda shell.bash hook)" conda activate bioconda - # The SDK isn't actually cached, so reinstall it + source common.sh run_conda_forge_build_setup echo '============' @@ -145,5 +118,6 @@ jobs: echo '============' bioconda-utils build recipes config.yml \ --worker-offset ${{ matrix.runner }} --n-workers 4 \ - --lint --anaconda-upload --record-build-failures --skiplist-leafs + --lint --anaconda-upload --record-build-failures --skiplist-leafs \ + --exclude bioconda-repodata-patches conda clean -y --all diff --git a/.github/workflows/build-failures.yml b/.github/workflows/build-failures.yml index 5037e91ec987e..936455ccdc151 100644 --- a/.github/workflows/build-failures.yml +++ b/.github/workflows/build-failures.yml @@ -6,16 +6,20 @@ on: push: branches: - master + - bulk paths: - "**build_failure.*.yaml" jobs: update-build-failure-page: name: Update build failure page - if: github.repository == 'bioconda/bioconda-recipes' + if: ${{ github.repository == 'bioconda/bioconda-recipes' && !contains(github.event.head_commit.message, '[ci skip]') }} runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: set path run: echo "/opt/mambaforge/bin" >> $GITHUB_PATH @@ -25,7 +29,7 @@ jobs: - name: Restore cache id: cache - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: /opt/mambaforge key: ${{ runner.os }}--master--${{ hashFiles('install-and-set-up-conda.sh', 'common.sh', 'configure-conda.sh') }} @@ -48,13 +52,23 @@ jobs: set -e eval "$(conda shell.bash hook)" conda activate bioconda - + branch=${{ github.ref_name }} mkdir build-failures - md=build-failures/build-failures.md - echo "# Build failures" > $md - echo "Automatically updated (nightly) list of build failures that currently block builds from the listed recipes. Please help with fixing them!" >> $md - bioconda-utils list-build-failures recipes --output-format markdown --link-prefix https://github.com/bioconda/bioconda-recipes/blob/master >> $md - + if [[ -z $branch || $branch == "master" ]] ; then + md=build-failures/build-failures.md + echo "# Build failures" > $md + echo "Automatically updated (nightly) list of build failures that currently block builds from the listed recipes. Please help with fixing them!" >> $md + bioconda-utils list-build-failures recipes --output-format markdown --link-prefix https://github.com/bioconda/bioconda-recipes/blob/master >> $md + else + if [ -z "$GITHUB_BASE_REF" ] ; then + export GITHUB_BASE_REF="master" + fi + git fetch origin "$GITHUB_BASE_REF" + md="build-failures/build-failures-${branch}.md" + echo "# Build failures on \`${branch}\`" > $md + echo "Automatically updated list of build failures that currently block builds from the listed recipes on the \`${branch}\` branch." >> $md + bioconda-utils list-build-failures recipes --git-range origin/"$GITHUB_BASE_REF" HEAD --output-format markdown --link-prefix https://github.com/bioconda/bioconda-recipes/blob/$branch >> $md + fi - name: Upload build failure to wiki uses: docker://decathlon/wiki-page-creator-action:latest env: @@ -64,4 +78,3 @@ jobs: OWNER: bioconda REPO_NAME: bioconda-recipes MD_FOLDER: build-failures - \ No newline at end of file diff --git a/recipes/abyss/meta.yaml b/recipes/abyss/meta.yaml index 2e2b18d403d8a..2c43a55296162 100644 --- a/recipes/abyss/meta.yaml +++ b/recipes/abyss/meta.yaml @@ -6,7 +6,9 @@ package: version: {{ version }} build: - number: 1 + number: 3 + run_exports: + - {{ pin_subpackage("abyss", max_pin="x") }} source: url: https://github.com/bcgsc/abyss/releases/download/{{ version }}/abyss-{{ version }}.tar.gz diff --git a/recipes/ac-diamond/build_failure.linux-64.yaml b/recipes/ac-diamond/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..100d5c97f1bf0 --- /dev/null +++ b/recipes/ac-diamond/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 371b0e19e43c01c8d4596a46c5d5b9867e44a82fd2e44b69dba7c0c39af18aaf # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + | ^~~~~~~~ + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/any.hpp:349:22: note: candidate: 'ValueType boost::any_cast(any) [with ValueType = double]' + 349 | inline ValueType any_cast(any&& operand) + | ^~~~~~~~ + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/program_options/detail/value_semantic.hpp: In instantiation of 'void boost::program_options::typed_value::xparse(boost::any&, const std::vector >&) const [with T = double; charT = char]': + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/program_options/detail/value_semantic.hpp:174:5: required from here + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/program_options/detail/value_semantic.hpp:182:25: error: ambiguous overload for 'operator=' (operand types are 'boost::any' and 'const boost::any') + 182 | value_store = m_implicit_value; + | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/any.hpp:135:15: note: candidate: 'boost::any& boost::any::operator=(const boost::any&)' + 135 | any & operator=(const any& rhs) + | ^~~~~~~~ + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/any.hpp:149:15: note: candidate: 'boost::any& boost::any::operator=(boost::any)' + 149 | any & operator=(any&& rhs) noexcept + | ^~~~~~~~ + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/program_options/value_semantic.hpp: In instantiation of 'bool boost::program_options::typed_value::apply_default(boost::any&) const [with T = std::__cxx11::basic_string; charT = char]': + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/program_options/value_semantic.hpp:337:22: required from here + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/program_options/value_semantic.hpp:342:29: error: ambiguous overload for 'operator=' (operand types are 'boost::any' and 'const boost::any') + 342 | value_store = m_default_value; + | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/any.hpp:135:15: note: candidate: 'boost::any& boost::any::operator=(const boost::any&)' + 135 | any & operator=(const any& rhs) + | ^~~~~~~~ + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/any.hpp:149:15: note: candidate: 'boost::any& boost::any::operator=(boost::any)' + 149 | any & operator=(any&& rhs) noexcept + | ^~~~~~~~ + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/program_options/detail/value_semantic.hpp: In instantiation of 'void boost::program_options::typed_value::notify(const boost::any&) const [with T = std::__cxx11::basic_string; charT = char]': + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/program_options/detail/value_semantic.hpp:38:5: required from here + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/program_options/detail/value_semantic.hpp:40:44: error: call of overloaded 'any_cast, std::allocator > >(const boost::any*)' is ambiguous + 40 | const T* value = boost::any_cast(&value_store); + | ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~ + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/any.hpp:339:22: note: candidate: 'ValueType boost::any_cast(const any&) [with ValueType = std::__cxx11::basic_string]' + 339 | inline ValueType any_cast(const any & operand) + | ^~~~~~~~ + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/any.hpp:349:22: note: candidate: 'ValueType boost::any_cast(any) [with ValueType = std::__cxx11::basic_string]' + 349 | inline ValueType any_cast(any&& operand) + | ^~~~~~~~ + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/program_options/detail/value_semantic.hpp: In instantiation of 'void boost::program_options::typed_value::xparse(boost::any&, const std::vector >&) const [with T = std::__cxx11::basic_string; charT = char]': + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/program_options/detail/value_semantic.hpp:174:5: required from here + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/program_options/detail/value_semantic.hpp:182:25: error: ambiguous overload for 'operator=' (operand types are 'boost::any' and 'const boost::any') + 182 | value_store = m_implicit_value; + | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/any.hpp:135:15: note: candidate: 'boost::any& boost::any::operator=(const boost::any&)' + 135 | any & operator=(const any& rhs) + | ^~~~~~~~ + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/any.hpp:149:15: note: candidate: 'boost::any& boost::any::operator=(boost::any)' + 149 | any & operator=(any&& rhs) noexcept + | ^~~~~~~~ + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/program_options/value_semantic.hpp: In instantiation of 'bool boost::program_options::typed_value::apply_default(boost::any&) const [with T = unsigned int; charT = char]': + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/program_options/value_semantic.hpp:337:22: required from here + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/program_options/value_semantic.hpp:342:29: error: ambiguous overload for 'operator=' (operand types are 'boost::any' and 'const boost::any') + 342 | value_store = m_default_value; + | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/any.hpp:135:15: note: candidate: 'boost::any& boost::any::operator=(const boost::any&)' + 135 | any & operator=(const any& rhs) + | ^~~~~~~~ + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/any.hpp:149:15: note: candidate: 'boost::any& boost::any::operator=(boost::any)' + 149 | any & operator=(any&& rhs) noexcept + | ^~~~~~~~ + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/program_options/detail/value_semantic.hpp: In instantiation of 'void boost::program_options::typed_value::notify(const boost::any&) const [with T = unsigned int; charT = char]': + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/program_options/detail/value_semantic.hpp:38:5: required from here + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/program_options/detail/value_semantic.hpp:40:44: error: call of overloaded 'any_cast(const boost::any*)' is ambiguous + 40 | const T* value = boost::any_cast(&value_store); + | ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~ + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/any.hpp:339:22: note: candidate: 'ValueType boost::any_cast(const any&) [with ValueType = unsigned int]' + 339 | inline ValueType any_cast(const any & operand) + | ^~~~~~~~ + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/any.hpp:349:22: note: candidate: 'ValueType boost::any_cast(any) [with ValueType = unsigned int]' + 349 | inline ValueType any_cast(any&& operand) + | ^~~~~~~~ + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/program_options/detail/value_semantic.hpp: In instantiation of 'void boost::program_options::typed_value::xparse(boost::any&, const std::vector >&) const [with T = unsigned int; charT = char]': + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/program_options/detail/value_semantic.hpp:174:5: required from here + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/program_options/detail/value_semantic.hpp:182:25: error: ambiguous overload for 'operator=' (operand types are 'boost::any' and 'const boost::any') + 182 | value_store = m_implicit_value; + | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/any.hpp:135:15: note: candidate: 'boost::any& boost::any::operator=(const boost::any&)' + 135 | any & operator=(const any& rhs) + | ^~~~~~~~ + /opt/conda/conda-bld/ac-diamond_1717556315868/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/boost/any.hpp:149:15: note: candidate: 'boost::any& boost::any::operator=(boost::any)' + 149 | any & operator=(any&& rhs) noexcept + | ^~~~~~~~ + make[2]: *** [CMakeFiles/ac-diamond.dir/build.make:76: CMakeFiles/ac-diamond.dir/src/main.cpp.o] Error 1 + make[1]: *** [CMakeFiles/Makefile2:100: CMakeFiles/ac-diamond.dir/all] Error 2 + make: *** [Makefile:136: all] Error 2 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/ac-diamond_1717556315868/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/ac-diamond/meta.yaml b/recipes/ac-diamond/meta.yaml index c2a63a2ca37c3..1e427a2fdfea9 100644 --- a/recipes/ac-diamond/meta.yaml +++ b/recipes/ac-diamond/meta.yaml @@ -7,7 +7,7 @@ source: sha256: f3ee403390c3de0a2f21f025a45b35c6131f4f39510c834fbe57ade28162c87b build: - number: 6 + number: 7 skip: True # [osx] requirements: diff --git a/recipes/aeon/build_failure.linux-64.yaml b/recipes/aeon/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..830a04e4a8cb9 --- /dev/null +++ b/recipes/aeon/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: dfeed5064ab9748c57253601b824cac73eb1a01b20d412c62beb284c5bd4bd1d # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + Found CPython 3.12 at /opt/conda/conda-bld/aeon_1717533516251/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/bin/python + Compiling libc v0.2.155 + Compiling cfg-if v1.0.0 + Compiling autocfg v1.3.0 + Compiling pyo3-build-config v0.15.2 + Compiling proc-macro2 v1.0.85 + Compiling once_cell v1.19.0 + Compiling getrandom v0.1.16 + Compiling unicode-ident v1.0.12 + Compiling crossbeam-utils v0.8.20 + Compiling syn v1.0.109 + Compiling proc-macro-hack v0.5.20deprecated + Compiling quote v1.0.36 + Compiling rand_core v0.5.1 + Compiling ppv-lite86 v0.2.17 + Compiling memchr v2.7.2 + Compiling rand_chacha v0.2.2 + Compiling crossbeam-epoch v0.9.18 + Compiling aho-corasick v1.1.3 + Compiling lock_api v0.4.12 + Compiling num-traits v0.2.19 + Compiling rayon-core v1.12.1 + Compiling serde v1.0.203 + Compiling parking_lot_core v0.8.6 + Compiling regex-syntax v0.8.3 + Compiling byteorder v1.5.0 + Compiling fxhash v0.2.1 + Compiling crossbeam-deque v0.8.5 + Compiling rand v0.7.3 + Compiling pyo3 v0.15.2 + Compiling regex-automata v0.4.6 + Compiling instant v0.1.13 + Compiling smallvec v1.13.2 + Compiling either v1.12.0 + Compiling xmlparser v0.13.6 + Compiling scopeguard v1.2.0 + Compiling unindent v0.1.11 + Compiling serde_json v1.0.117 + Compiling unicode-width v0.1.13 + Compiling textwrap v0.11.0 + Compiling indoc-impl v0.3.6 + Compiling regex v1.10.4 + Compiling roxmltree v0.14.1 + Compiling biodivine-lib-bdd v0.3.0 + Compiling pyo3-macros-backend v0.15.2 + Compiling paste-impl v0.1.18 + Compiling atty v0.2.14 + Compiling vec_map v0.8.2 + Compiling iana-time-zone v0.1.60 + Compiling strsim v0.8.0 + Compiling lazy_static v1.4.0 + Compiling bitvector v0.1.5 + Compiling ryu v1.0.18 + Compiling bitflags v1.3.2 + Compiling itoa v1.0.11 + Compiling ansi_term v0.12.1 + Compiling clap v2.34.0 + Compiling biodivine-lib-param-bn v0.2.4 + Compiling pyo3-macros v0.15.2 + Compiling chrono v0.4.38 + Compiling paste v0.1.18 + Compiling rayon v1.10.0 + Compiling parking_lot v0.11.2 + Compiling indoc v0.3.6 + Compiling itertools v0.10.5 + Compiling biodivine-aeon-py v0.1.1 (/opt/conda/conda-bld/aeon_1717533516251/work) + error[E0425]: cannot find function, tuple struct or tuple variant PyUnicode_READY in module ffi + --> /opt/conda/conda-bld/aeon_1717533516251/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pyo3-0.15.2/src/types/string.rs:232:30 + | + 232 | let ready = ffi::PyUnicode_READY(ptr); + | ^^^^^^^^^^^^^^^ help: a function with a similar name exists: PyUnicode_IS_READY + | + ::: /opt/conda/conda-bld/aeon_1717533516251/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pyo3-0.15.2/src/ffi/cpython/unicodeobject.rs:224:1 + | + 224 | pub unsafe fn PyUnicode_IS_READY(op: *mut PyObject) -> c_uint { + | ------------------------------------------------------------- similarly named function PyUnicode_IS_READY defined here + + Compiling biodivine-pbn-control v0.1.1 + For more information about this error, try rustc --explain E0425. + error: could not compile pyo3 (lib) due to 1 previous error + warning: build failed, waiting for other jobs to finish... + maturin failed + Caused by: Failed to build a native library through cargo + Caused by: Cargo build finished with "exit status: 101": env -u CARGO PYO3_ENVIRONMENT_SIGNATURE="cpython-3.12-64bit" PYO3_PYTHON="/opt/conda/conda-bld/aeon_1717533516251/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/bin/python" PYTHON_SYS_EXECUTABLE="/opt/conda/conda-bld/aeon_1717533516251/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/bin/python" "cargo" "rustc" "--target" "x86_64-unknown-linux-gnu" "--message-format" "json-render-diagnostics" "--manifest-path" "/opt/conda/conda-bld/aeon_1717533516251/work/Cargo.toml" "--release" "--lib" "--crate-type" "cdylib" + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/aeon_1717533516251/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/aeon/build_failure.osx-64.yaml b/recipes/aeon/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..724ce21420e06 --- /dev/null +++ b/recipes/aeon/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: dfeed5064ab9748c57253601b824cac73eb1a01b20d412c62beb284c5bd4bd1d # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + Found pyo3 bindings + Found CPython 3.9 at /opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/python + Compiling libc v0.2.155 + Compiling cfg-if v1.0.0 + Compiling autocfg v1.3.0 + Compiling proc-macro2 v1.0.85 + Compiling pyo3-build-config v0.15.2 + Compiling getrandom v0.1.16 + Compiling once_cell v1.19.0 + Compiling unicode-ident v1.0.12 + Compiling crossbeam-utils v0.8.20 + error: linking with x86_64-apple-darwin13.4.0-clang failed: exit status: 1 + | + = note: env -u IPHONEOS_DEPLOYMENT_TARGET -u TVOS_DEPLOYMENT_TARGET LC_ALL="C" PATH="/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/bin:/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/.cargo/bin:/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/bin:/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin:/opt/mambaforge/envs/bioconda/condabin:/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/bin:/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin:/opt/mambaforge/envs/bioconda/bin:/opt/mambaforge/condabin:/opt/mambaforge/bin:/usr/local/lib/ruby/gems/3.0.0/bin:/usr/local/opt/ruby@3.0/bin:/usr/local/opt/pipx_bin:/Users/runner/.cargo/bin:/usr/local/opt/curl/bin:/usr/local/bin:/usr/local/sbin:/Users/runner/bin:/Users/runner/.yarn/bin:/Users/runner/Library/Android/sdk/tools:/Users/runner/Library/Android/sdk/platform-tools:/Library/Frameworks/Python.framework/Versions/Current/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/usr/bin:/bin:/usr/sbin:/sbin:/Users/runner/.dotnet/tools" VSLANG="1033" ZERO_AR_DATE="1" "x86_64-apple-darwin13.4.0-clang" "-arch" "x86_64" "-m64" "/tmp/rustc4zgcsk/symbols.o" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/work/target/release/build/pyo3-build-config-979e454305b88f48/build_script_build-979e454305b88f48.build_script_build.95bd73c6bf16db0e-cgu.0.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/work/target/release/build/pyo3-build-config-979e454305b88f48/build_script_build-979e454305b88f48.build_script_build.95bd73c6bf16db0e-cgu.1.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/work/target/release/build/pyo3-build-config-979e454305b88f48/build_script_build-979e454305b88f48.build_script_build.95bd73c6bf16db0e-cgu.2.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/work/target/release/build/pyo3-build-config-979e454305b88f48/build_script_build-979e454305b88f48.build_script_build.95bd73c6bf16db0e-cgu.3.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/work/target/release/build/pyo3-build-config-979e454305b88f48/build_script_build-979e454305b88f48.build_script_build.95bd73c6bf16db0e-cgu.4.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/work/target/release/build/pyo3-build-config-979e454305b88f48/build_script_build-979e454305b88f48.build_script_build.95bd73c6bf16db0e-cgu.5.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/work/target/release/build/pyo3-build-config-979e454305b88f48/build_script_build-979e454305b88f48.build_script_build.95bd73c6bf16db0e-cgu.6.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/work/target/release/build/pyo3-build-config-979e454305b88f48/build_script_build-979e454305b88f48.build_script_build.95bd73c6bf16db0e-cgu.7.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/work/target/release/build/pyo3-build-config-979e454305b88f48/build_script_build-979e454305b88f48.build_script_build.95bd73c6bf16db0e-cgu.8.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/work/target/release/build/pyo3-build-config-979e454305b88f48/build_script_build-979e454305b88f48.59qjv5l2tb2eieks.rcgu.o" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/work/target/release/deps" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libstd-2ad7f97be9e16ca5.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-8ce93eee8bf4c86e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libobject-0e1339b212cc7409.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libmemchr-925e672b3deb429c.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-e92d517a950bccd8.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libgimli-de95e5c2a2ace281.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-37f4c48e230f618e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libstd_detect-dfeb4bb0652b6b8e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-0e3ea0ec18336be2.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_alloc-39dd3003e36d7872.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libminiz_oxide-5ea1513e08ee15e0.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libadler-2967159221f4860d.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libunwind-b70656709e3eca11.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcfg_if-cc5626b2e0399737.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/liblibc-8378684dba6ab463.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/liballoc-0ff05b9b25b786cc.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_core-9a6da74aeab39c54.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcore-1638dc700d175798.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-7f42af62722c8f43.rlib" "-lSystem" "-lc" "-lm" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib" "-o" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/work/target/release/build/pyo3-build-config-979e454305b88f48/build_script_build-979e454305b88f48" "-Wl,-dead_strip" "-nodefaultlibs" + = note: ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libstd-2ad7f97be9e16ca5.rlib(std-2ad7f97be9e16ca5.std.73125d0ae810e61b-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcore-1638dc700d175798.rlib(core-1638dc700d175798.core.b1c2fc210f4dfff9-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/liballoc-0ff05b9b25b786cc.rlib(alloc-0ff05b9b25b786cc.alloc.9242d371e396bc4c-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-0e3ea0ec18336be2.rlib(hashbrown-0e3ea0ec18336be2.hashbrown.febebf65344cb99d-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-37f4c48e230f618e.rlib(rustc_demangle-37f4c48e230f618e.rustc_demangle.9fdffeb2b56169d1-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libgimli-de95e5c2a2ace281.rlib(gimli-de95e5c2a2ace281.gimli.72653df79598dcb2-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libobject-0e1339b212cc7409.rlib(object-0e1339b212cc7409.object.e3756fe3fb577255-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libmemchr-925e672b3deb429c.rlib(memchr-925e672b3deb429c.memchr.4dc4a05d80618598-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-e92d517a950bccd8.rlib(addr2line-e92d517a950bccd8.addr2line.7eb29e6a0a38fefd-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-8ce93eee8bf4c86e.rlib(panic_unwind-8ce93eee8bf4c86e.panic_unwind.a3b8ea81b157ee45-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-7f42af62722c8f43.rlib(compiler_builtins-7f42af62722c8f43.compiler_builtins.19fed66cffb9e9f5-cgu.089.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + Undefined symbols for architecture x86_64: + "_getentropy", referenced from: + std::sys::pal::unix::rand::hashmap_random_keys::hcc27ed0e9fd421d6 in libstd-2ad7f97be9e16ca5.rlib(std-2ad7f97be9e16ca5.std.73125d0ae810e61b-cgu.0.rcgu.o) + ld: symbol(s) not found for architecture x86_64 + clang-16: error: linker command failed with exit code 1 (use -v to see invocation) + + + error: could not compile pyo3-build-config (build script) due to 1 previous error + warning: build failed, waiting for other jobs to finish... + maturin failed + Caused by: Failed to build a native library through cargo + Caused by: Cargo build finished with "exit status: 101": env -u CARGO PYO3_ENVIRONMENT_SIGNATURE="cpython-3.9-64bit" PYO3_PYTHON="/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/python" PYTHON_SYS_EXECUTABLE="/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/python" "cargo" "rustc" "--target" "x86_64-apple-darwin" "--message-format" "json-render-diagnostics" "--manifest-path" "/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/work/Cargo.toml" "--release" "--lib" "--crate-type" "cdylib" "--" "-C" "link-arg=-undefined" "-C" "link-arg=dynamic_lookup" "-C" "link-args=-Wl,-install_name,@rpath/biodivine_aeon.cpython-39-darwin.so" + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/work + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/aeon-0.1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/aeon_1717514422222/work/conda_build.sh']' returned non-zero exit status 1. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/aeon-0.1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 +# Last 100 lines of the build log. diff --git a/recipes/aeon/meta.yaml b/recipes/aeon/meta.yaml index 97cc86b5bd9c5..d0944c4c69bdb 100644 --- a/recipes/aeon/meta.yaml +++ b/recipes/aeon/meta.yaml @@ -11,7 +11,7 @@ source: build: skip: true # [py < 39] - number: 2 + number: 3 requirements: build: diff --git a/recipes/agc/meta.yaml b/recipes/agc/meta.yaml index ea93af4029d36..12d3d1e796fbf 100644 --- a/recipes/agc/meta.yaml +++ b/recipes/agc/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 script: "mkdir -p ${PREFIX}/bin; cp agc ${PREFIX}/bin" run_exports: - {{ pin_subpackage('agc', max_pin="x") }} diff --git a/recipes/albatradis/build_failure.linux-64.yaml b/recipes/albatradis/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..5150cbe3a5d33 --- /dev/null +++ b/recipes/albatradis/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 552f7658d1e7f7363048ca3bc7baa1aef9603b44381ce30fe781352a08dfb035 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/albatradis-1.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + Processing $SRC_DIR + Preparing metadata (setup.py): started + Preparing metadata (setup.py): finished with status 'done' + Building wheels for collected packages: albatradis + Building wheel for albatradis (setup.py): started + Building wheel for albatradis (setup.py): finished with status 'error' + [1;31merror[0m: [1msubprocess-exited-with-error[0m + + [31m[0m [32mpython setup.py bdist_wheel[0m did not run successfully. + [31m[0m exit code: [1;36m1[0m + [31m>[0m [31m[52 lines of output][0m + [31m [0m running bdist_wheel + [31m [0m running build + [31m [0m running build_py + [31m [0m creating build + [31m [0m creating build/lib.linux-x86_64-cpython-311 + [31m [0m creating build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/ScatterPlot.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/AlbaTraDISScatterPlot.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/PrepareEMBLFile.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/PresenceAbsence.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/ArtemisProject.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/EMBLReader.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/AlbaTraDIS.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/__init__.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/Block.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/PlotLog.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/AlbaTraDISPresenceAbsence.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/EMBLGenerator.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/GeneReportSets.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/BlockInsertions.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/PlotGenerator.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/TradisComparison.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/PlotParser.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/ReorderGenes.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/EMBLSequence.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/PlotMasking.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/GeneToFiles.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/Gene.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/TradisGeneInsertSites.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/BlockIdentifier.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/NormalisePlots.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/ExperimentCollection.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/Window.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/TradisEssentiality.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/AlbaTraDISGeneReports.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/HeatMap.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/PrepareInputFiles.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/WindowGenerator.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/ExperimentMetaData.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/GeneAnnotator.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/EMBLExpandGenes.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/AlbaTraDISArtemisProject.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m copying albatradis/GeneReport.py -> build/lib.linux-x86_64-cpython-311/albatradis + [31m [0m running build_ext + [31m [0m building 'file_manipulation' extension + [31m [0m creating build/temp.linux-x86_64-cpython-311 + [31m [0m /opt/conda/conda-bld/albatradis_1718141920385/_build_env/bin/x86_64-conda-linux-gnu-cc -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/conda/conda-bld/albatradis_1718141920385/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include -fPIC -O2 -isystem /opt/conda/conda-bld/albatradis_1718141920385/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /opt/conda/conda-bld/albatradis_1718141920385/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include -fdebug-prefix-map=/opt/conda/conda-bld/albatradis_1718141920385/work=/usr/local/src/conda/albatradis-1.0.4 -fdebug-prefix-map=/opt/conda/conda-bld/albatradis_1718141920385/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl=/usr/local/src/conda-prefix -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/conda-bld/albatradis_1718141920385/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include -fPIC -I/opt/conda/conda-bld/albatradis_1718141920385/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/include/python3.11 -c file_manipulation.c -o build/temp.linux-x86_64-cpython-311/file_manipulation.o + [31m [0m file_manipulation.c:181:12: fatal error: longintrepr.h: No such file or directory + [31m [0m 181 | #include "longintrepr.h" + [31m [0m | ^~~~~~~~~~~~~~~ + [31m [0m compilation terminated. + [31m [0m error: command '/opt/conda/conda-bld/albatradis_1718141920385/_build_env/bin/x86_64-conda-linux-gnu-cc' failed with exit code 1 + [31m [0m [31m[end of output][0m + + [1;35mnote[0m: This error originates from a subprocess, and is likely not a problem with pip. + [31m ERROR: Failed building wheel for albatradis[0m[31m + [0m Running setup.py clean for albatradis + Failed to build albatradis + [31mERROR: Could not build wheels for albatradis, which is required to install pyproject.toml-based projects[0m[31m + [0mTraceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/albatradis_1718141920385/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/albatradis/meta.yaml b/recipes/albatradis/meta.yaml index fc41b02916ca5..6ba372cf8523a 100644 --- a/recipes/albatradis/meta.yaml +++ b/recipes/albatradis/meta.yaml @@ -9,7 +9,7 @@ source: sha256: b637ed73b810e610b9da8eb8a9f7289b2e1b53f297bd4071dac9b8995d097a39 build: - number: 4 + number: 5 skip: True # [py<30 or osx] script: python -m pip install --ignore-installed . diff --git a/recipes/alcor/meta.yaml b/recipes/alcor/meta.yaml index 29a3cfed328af..5a5432b3db1a5 100644 --- a/recipes/alcor/meta.yaml +++ b/recipes/alcor/meta.yaml @@ -10,7 +10,7 @@ package: build: # Passes some invalid flags for clang skip: True # [osx] - number: 3 + number: 4 run_exports: - {{ pin_subpackage("alcor", max_pin="x.x") }} diff --git a/recipes/aletsch/meta.yaml b/recipes/aletsch/meta.yaml index 1abc848d3520a..b29140cf38271 100644 --- a/recipes/aletsch/meta.yaml +++ b/recipes/aletsch/meta.yaml @@ -10,7 +10,7 @@ source: sha256: "3537e90213baa7ea132b1648f4687780537999f3796711cf7398f9168d72f027" build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('aletsch', max_pin="x") }} diff --git a/recipes/alfred/build_failure.osx-64.yaml b/recipes/alfred/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..6087a3ba4fc99 --- /dev/null +++ b/recipes/alfred/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: d46af4deecffe4a1440fa36938c99ce9ef54cdde43c41212907669264297e79e # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + /opt/mambaforge/envs/bioconda/conda-bld/alfred_1717637017535/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/htslib/sam.h:1160:41: note: expanded from macro 'bam_index_build' + #define bam_index_build(fn, min_shift) (sam_index_build((fn), (min_shift))) + ^~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~ + src/split.h:454:12: note: in instantiation of function template specialization 'bamstats::phaseBamRun' requested here + return phaseBamRun(c); + ^ + src/split.h:319:7: warning: ignoring return value of function declared with 'warn_unused_result' attribute [-Wunused-result] + bam_index_build(c.h2bam.string().c_str(), 0); + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + /opt/mambaforge/envs/bioconda/conda-bld/alfred_1717637017535/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/htslib/sam.h:1160:41: note: expanded from macro 'bam_index_build' + #define bam_index_build(fn, min_shift) (sam_index_build((fn), (min_shift))) + ^~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~ + In file included from src/alfred.cpp:28: + In file included from src/bamstats.h:20: + src/json.h:31:24: warning: equality comparison result unused [-Wunused-comparison] + meta["regionFile"] == c.regionFile.string(); + ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ + src/bamstats.h:581:23: note: in instantiation of function template specialization 'bamstats::qcJsonOut>' requested here + if (c.hasJsonOut) qcJsonOut(c, hdr, rgMap, be, rf); + ^ + src/qc.h:269:10: note: in instantiation of function template specialization 'bamstats::bamStatsRun' requested here + return bamStatsRun(c); + ^ + src/json.h:31:24: note: use '=' to turn this equality comparison into an assignment + meta["regionFile"] == c.regionFile.string(); + ^~ + = + 9 warnings and 1 error generated. + make: *** [Makefile:54: src/alfred] Error 1 + Extracting download + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/alfred_1717637017535/work + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/alfred_1717637017535/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/alfred_1717637017535/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/alfred_1717637017535/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/alfred-0.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/alfred_1717637017535/work/conda_build.sh']' returned non-zero exit status 2. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/alfred-0.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/alfred-0.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/alfred-0.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + if [ -r src/htslib/Makefile ]; then cd src/htslib && autoreconf -i && ./configure --disable-s3 --disable-gcs --disable-libcurl --disable-plugins && make && make lib-static && cd ../../ && touch .htslib; fi + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/alfred-0.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D__STDC_FORMAT_MACROS -std=c11 -isystem $SRC_DIR/src/jlib/ -isystem $SRC_DIR/src/htslib/ -pedantic -W -Wall -O3 -fno-tree-vectorize -DNDEBUG src/alfred.cpp src/edlib.cpp -o src/alfred -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$SRC_DIR/src/htslib/ -lboost_iostreams -lboost_filesystem -lboost_system -lboost_program_options -lboost_date_time -lhts -lz -llzma -lbz2 -Wl,-rpath,$SRC_DIR/src/htslib/ +# Last 100 lines of the build log. diff --git a/recipes/alfred/meta.yaml b/recipes/alfred/meta.yaml index 8316353573dbf..5d3625929f77e 100644 --- a/recipes/alfred/meta.yaml +++ b/recipes/alfred/meta.yaml @@ -10,7 +10,7 @@ source: sha256: '{{ sha256 }}' build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('alfred', max_pin="x.x") }} @@ -44,4 +44,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/alignlib-lite/build_failure.linux-64.yaml b/recipes/alignlib-lite/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..c26f5d54f84af --- /dev/null +++ b/recipes/alignlib-lite/build_failure.linux-64.yaml @@ -0,0 +1,106 @@ +recipe_sha: 2ddf24065fcdbf61d820063dc1db8ed110b38b66740e2bedb79abf6f9f9008df # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu + CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu + CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/alignlib-lite-0.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + INFO: activate-gxx_linux-64.sh made the following environmental changes: + CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/alignlib-lite-0.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/alignlib-lite-0.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-g + Processing $SRC_DIR + Preparing metadata (setup.py): started + Preparing metadata (setup.py): finished with status 'done' + Building wheels for collected packages: alignlib-lite + Building wheel for alignlib-lite (setup.py): started + Building wheel for alignlib-lite (setup.py): finished with status 'error' + [1;31merror[0m: [1msubprocess-exited-with-error[0m + + [31m[0m [32mpython setup.py bdist_wheel[0m did not run successfully. + [31m[0m exit code: [1;36m1[0m + [31m>[0m [31m[42 lines of output][0m + [31m [0m /opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.9/site-packages/setuptools/_distutils/extension.py:134: UserWarning: Unknown Extension options: 'cmdclass' + [31m [0m warnings.warn(msg) + [31m [0m Warning: 'classifiers' should be a list, got type 'filter' + [31m [0m running bdist_wheel + [31m [0m running build + [31m [0m running build_ext + [31m [0m Compiling alignlib_lite.pyx because it changed. + [31m [0m [1/1] Cythonizing alignlib_lite.pyx + [31m [0m /opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.9/site-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /opt/conda/conda-bld/alignlib-lite_1717952287919/work/alignlib_lite.pyx + [31m [0m tree = Parsing.p_module(s, pxd, full_module_name) + [31m [0m warning: alignlib_lite.pyx:125:4: 'HAlignment' redeclared + [31m [0m building 'alignlib_lite' extension + [31m [0m creating build + [31m [0m creating build/temp.linux-x86_64-cpython-39 + [31m [0m creating build/temp.linux-x86_64-cpython-39/alignlib_src + [31m [0m /opt/conda/conda-bld/alignlib-lite_1717952287919/_build_env/bin/x86_64-conda-linux-gnu-cc -Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include -fPIC -O2 -isystem /opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include -fdebug-prefix-map=/opt/conda/conda-bld/alignlib-lite_1717952287919/work=/usr/local/src/conda/alignlib-lite-0.3 -fdebug-prefix-map=/opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold=/usr/local/src/conda-prefix -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include -fPIC -Ialignlib_src -I/opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include/python3.9 -c alignlib_lite.cpp -o build/temp.linux-x86_64-cpython-39/alignlib_lite.o + [31m [0m alignlib_lite.cpp:148:26: warning: "/*" within comment [-Wcomment] + [31m [0m 148 | "alignlib_src/*.cpp" + [31m [0m | + [31m [0m In file included from alignlib_src/alignlib_interfaces.h:38, + [31m [0m from alignlib_src/alignlib.h:37, + [31m [0m from alignlib_lite.cpp:1413: + [31m [0m alignlib_src/Iterator2D.h:40:46: warning: 'template struct std::iterator' is deprecated [-Wdeprecated-declarations] + [31m [0m 40 | class const_countable_iterator : public std::iterator< std::random_access_iterator_tag, T> + [31m [0m | ^~~~~~~~ + [31m [0m In file included from /opt/conda/conda-bld/alignlib-lite_1717952287919/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_algobase.h:65, + [31m [0m from /opt/conda/conda-bld/alignlib-lite_1717952287919/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/specfun.h:45, + [31m [0m from /opt/conda/conda-bld/alignlib-lite_1717952287919/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/cmath:1935, + [31m [0m from /opt/conda/conda-bld/alignlib-lite_1717952287919/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/math.h:36, + [31m [0m from /opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include/python3.9/pyport.h:205, + [31m [0m from /opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include/python3.9/Python.h:50, + [31m [0m from alignlib_lite.cpp:168: + [31m [0m /opt/conda/conda-bld/alignlib-lite_1717952287919/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_iterator_base_types.h:127:34: note: declared here + [31m [0m 127 | struct _GLIBCXX17_DEPRECATED iterator + [31m [0m | ^~~~~~~~ + [31m [0m alignlib_lite.cpp:4490:18: warning: 'PyObject* __pyx_f_13alignlib_lite__forceBytes(PyObject*)' defined but not used [-Wunused-function] + [31m [0m 4490 | static PyObject *__pyx_f_13alignlib_lite__forceBytes(PyObject *__pyx_v_s) { + [31m [0m | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + [31m [0m /opt/conda/conda-bld/alignlib-lite_1717952287919/_build_env/bin/x86_64-conda-linux-gnu-cc -Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include -fPIC -O2 -isystem /opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include -fdebug-prefix-map=/opt/conda/conda-bld/alignlib-lite_1717952287919/work=/usr/local/src/conda/alignlib-lite-0.3 -fdebug-prefix-map=/opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold=/usr/local/src/conda-prefix -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include -fPIC -Ialignlib_src -I/opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include/python3.9 -c alignlib_src/*.cpp -o build/temp.linux-x86_64-cpython-39/alignlib_src/*.o + [31m [0m cc1plus: fatal error: alignlib_src/*.cpp: No such file or directory + [31m [0m compilation terminated. + [31m [0m error: command '/opt/conda/conda-bld/alignlib-lite_1717952287919/_build_env/bin/x86_64-conda-linux-gnu-cc' failed with exit code 1 + [31m [0m [31m[end of output][0m + + [1;35mnote[0m: This error originates from a subprocess, and is likely not a problem with pip. + [31m ERROR: Failed building wheel for alignlib-lite[0m[31m + [0m Running setup.py clean for alignlib-lite + Failed to build alignlib-lite + [31mERROR: Could not build wheels for alignlib-lite, which is required to install pyproject.toml-based projects[0m[31m + [0mTraceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/alignlib-lite_1717952287919/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. +category: |- + compiler error diff --git a/recipes/alignlib-lite/build_failure.osx-64.yaml b/recipes/alignlib-lite/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..b99b1d3e60373 --- /dev/null +++ b/recipes/alignlib-lite/build_failure.osx-64.yaml @@ -0,0 +1,106 @@ +recipe_sha: 2ddf24065fcdbf61d820063dc1db8ed110b38b66740e2bedb79abf6f9f9008df # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + /* DISABLES CODE */ ( ) + alignlib_lite.cpp:16616:5: warning: 'tp_print' is deprecated [-Wdeprecated-declarations] + 0, + ^ + /opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here + Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int); + ^ + /opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED' + #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__)) + ^ + alignlib_lite.cpp:4490:18: warning: unused function '__pyx_f_13alignlib_lite__forceBytes' [-Wunused-function] + static PyObject *__pyx_f_13alignlib_lite__forceBytes(PyObject *__pyx_v_s) { + ^ + 11 warnings generated. + x86_64-apple-darwin13.4.0-clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include -fPIC -O2 -isystem /opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem /opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include -fdebug-prefix-map=/opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/work=/usr/local/src/conda/alignlib-lite-0.3 -fdebug-prefix-map=/opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_=/usr/local/src/conda-prefix -D_FORTIFY_SOURCE=2 -isystem /opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include -mmacosx-version-min=10.9 -Ialignlib_src -I/opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/python3.8 -c alignlib_src/*.cpp -o build/temp.macosx-10.9-x86_64-cpython-38/alignlib_src/*.o + clang-16: error: no such file or directory: 'alignlib_src/*.cpp' + clang-16: error: no input files + error: command '/opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/_build_env/bin/x86_64-apple-darwin13.4.0-clang' failed with exit code 1 + [end of output] + + note: This error originates from a subprocess, and is likely not a problem with pip. + ERROR: Failed building wheel for alignlib-lite + ERROR: Could not build wheels for alignlib-lite, which is required to install pyproject.toml-based projects + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/work + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_ + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/alignlib-lite-0.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/work/conda_build.sh']' returned non-zero exit status 1. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/alignlib-lite-0.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/alignlib-lite-0.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/alignlib-lite-0.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + Processing $SRC_DIR + Preparing metadata (setup.py): started + Preparing metadata (setup.py): finished with status 'done' + Building wheels for collected packages: alignlib-lite + Building wheel for alignlib-lite (setup.py): started + Building wheel for alignlib-lite (setup.py): finished with status 'error' + Running setup.py clean for alignlib-lite + Failed to build alignlib-lite +# Last 100 lines of the build log. +category: |- + compiler error diff --git a/recipes/alignlib-lite/meta.yaml b/recipes/alignlib-lite/meta.yaml index d85eb841c9a05..11515ed74523c 100644 --- a/recipes/alignlib-lite/meta.yaml +++ b/recipes/alignlib-lite/meta.yaml @@ -10,7 +10,7 @@ source: sha256: {{ sha256 }} build: - number: 6 + number: 7 skip: True # [py2k] script: python -m pip install --no-deps --ignore-installed . diff --git a/recipes/amplisim/meta.yaml b/recipes/amplisim/meta.yaml index 68aa49bcbceca..328a35a6141e7 100644 --- a/recipes/amplisim/meta.yaml +++ b/recipes/amplisim/meta.yaml @@ -10,7 +10,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 skip: True # [osx] run_exports: - {{ pin_subpackage('amplisim', max_pin="x") }} diff --git a/recipes/andi/meta.yaml b/recipes/andi/meta.yaml index 5ba6dda792069..a2ce906cfcea7 100644 --- a/recipes/andi/meta.yaml +++ b/recipes/andi/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("andi", max_pin="x.x") }} diff --git a/recipes/anise_basil/build_failure.osx-64.yaml b/recipes/anise_basil/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..cf492bee68734 --- /dev/null +++ b/recipes/anise_basil/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: a4f527f34f72188524afb48002a4a66249e87016763e6bfaa429a82684283696 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + CMake Error at ext/seqan/util/cmake/FindSeqAn.cmake:404 (string): + string sub-command REGEX, mode REPLACE needs at least 6 arguments total to + command. + Call Stack (most recent call first): + src/CMakeLists.txt:15 (find_package) + + + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/anise_basil_1717515166943/work + Traceback (most recent call last): + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/anise_basil_1717515166943/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/anise_basil_1717515166943/_build_env + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/anise_basil_1717515166943/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/anise_basil-1.2.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/anise_basil-1.2.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/anise_basil_1717515166943/work/conda_build.sh']' returned non-zero exit status 1. + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/anise_basil-1.2.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/anise_basil-1.2.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + -- The C compiler identification is Clang 16.0.6 + -- The CXX compiler identification is Clang 16.0.6 + -- Detecting C compiler ABI info + -- Detecting C compiler ABI info - done + -- Check for working C compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting C compile features + -- Detecting C compile features - done + -- Detecting CXX compiler ABI info + -- Detecting CXX compiler ABI info - done + -- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting CXX compile features + -- Detecting CXX compile features - done + -- Performing Test CXX11_FOUND + -- Performing Test CXX11_FOUND - Success + -- Looking for include file execinfo.h + -- Looking for include file execinfo.h - found + -- Determined version is .. + -- Found LEMON: $SRC_DIR/ext/lemon + -- Found Boost 1.85.0 at $PREFIX/lib/cmake/Boost-1.85.0 + -- Requested configuration: QUIET REQUIRED + -- BoostConfig: find_package(boost_headers 1.85.0 EXACT CONFIG REQUIRED QUIET HINTS $PREFIX/lib/cmake) + -- Found boost_headers 1.85.0 at $PREFIX/lib/cmake/boost_headers-1.85.0 + -- Found Boost: $PREFIX/lib/cmake/Boost-1.85.0/BoostConfig.cmake + -- Configuring incomplete, errors occurred! +# Last 100 lines of the build log. diff --git a/recipes/anise_basil/meta.yaml b/recipes/anise_basil/meta.yaml index 39ee6a2a7275f..3aa97ab6fb860 100644 --- a/recipes/anise_basil/meta.yaml +++ b/recipes/anise_basil/meta.yaml @@ -18,7 +18,7 @@ source: build: skip: True # [py27] - number: 7 + number: 8 run_exports: - {{ pin_subpackage("anise_basil", max_pin="x.x.x") }} diff --git a/recipes/aragorn/meta.yaml b/recipes/aragorn/meta.yaml index 8292bad9d714a..986a8e82e22af 100644 --- a/recipes/aragorn/meta.yaml +++ b/recipes/aragorn/meta.yaml @@ -7,7 +7,7 @@ source: url: http://www.ansikte.se/ARAGORN/Downloads/aragorn1.2.41.c build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage("aragorn", max_pin="x.x.x") }} diff --git a/recipes/arcs/meta.yaml b/recipes/arcs/meta.yaml index 761927d7f9309..957cdd792cc43 100644 --- a/recipes/arcs/meta.yaml +++ b/recipes/arcs/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('arcs', max_pin="x") }} diff --git a/recipes/ariba/meta.yaml b/recipes/ariba/meta.yaml index 8e9311eef3ca2..483b0162b5ee2 100644 --- a/recipes/ariba/meta.yaml +++ b/recipes/ariba/meta.yaml @@ -14,7 +14,7 @@ source: - ref_genes_getter.patch build: - number: 5 + number: 6 # Skipping py>=36 on osx because the bowtie2 <2.4.0 recipes are currently skipped on osx. skip: True # [py<30 or (py>=36 and osx) or py > 39] script: python -m pip install --no-deps --ignore-installed . diff --git a/recipes/arriba/meta.yaml b/recipes/arriba/meta.yaml index 36b290267c6a6..3e6a58c7b67ee 100644 --- a/recipes/arriba/meta.yaml +++ b/recipes/arriba/meta.yaml @@ -10,7 +10,7 @@ source: sha256: {{ sha256 }} build: - number: 2 + number: 3 requirements: build: diff --git a/recipes/artic-porechop/meta.yaml b/recipes/artic-porechop/meta.yaml index 0ed10f19cf40f..14c8c5cefb6f0 100644 --- a/recipes/artic-porechop/meta.yaml +++ b/recipes/artic-porechop/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 5 + number: 6 skip: True # [py27] entry_points: - porechop = porechop.porechop:main diff --git a/recipes/artic-tools/meta.yaml b/recipes/artic-tools/meta.yaml index 93280645ae17e..6079e50e33411 100644 --- a/recipes/artic-tools/meta.yaml +++ b/recipes/artic-tools/meta.yaml @@ -27,7 +27,7 @@ source: build: skip: True # [osx] - number: 5 + number: 6 requirements: build: diff --git a/recipes/atac/meta.yaml b/recipes/atac/meta.yaml index f0650d89f2dc5..461a57b0f11a1 100644 --- a/recipes/atac/meta.yaml +++ b/recipes/atac/meta.yaml @@ -9,7 +9,7 @@ source: md5: e23ef1d41836b29332b70271b7c9eb74 build: - number: 5 + number: 6 run_exports: - {{ pin_subpackage("atac", max_pin=None) }} diff --git a/recipes/ataqv/build_failure.linux-64.yaml b/recipes/ataqv/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..b60b345fdde29 --- /dev/null +++ b/recipes/ataqv/build_failure.linux-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 934f4350f8c8aa698bf252326779b98d5992f2e629709c8219626a161e504204 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: test failure +log: |2- + + + number of files: 24 + patchelf: section header table out of bounds + WARNING :: patchelf --print-rpath failed for /opt/conda/conda-bld/ataqv_1717788465623/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/bin/ataqv, will proceed with LIEF (was None) + Warning: rpath /opt/conda/conda-bld/ataqv_1717788465623/_build_env/lib is outside prefix /opt/conda/conda-bld/ataqv_1717788465623/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho (removing it) + INFO: sysroot: '/opt/conda/conda-bld/ataqv_1717788465623/_build_env/x86_64-conda-linux-gnu/sysroot/' files: '['usr/share/zoneinfo/zone.tab', 'usr/share/zoneinfo/tzdata.zi', 'usr/share/zoneinfo/right/Zulu', 'usr/share/zoneinfo/right/WET']' + WARNING (ataqv,bin/ataqv): Needed DSO lib/libboost_filesystem.so.1.85.0 found in ['conda-forge/linux-64::libboost==1.85.0=hba137d9_1'] + WARNING (ataqv,bin/ataqv): .. but ['conda-forge/linux-64::libboost==1.85.0=hba137d9_1'] not in reqs/run, (i.e. it is overlinking) (likely) or a missing dependency (less likely) + WARNING (ataqv,bin/ataqv): Needed DSO lib/libboost_iostreams.so.1.85.0 found in ['conda-forge/linux-64::libboost==1.85.0=hba137d9_1'] + WARNING (ataqv,bin/ataqv): .. but ['conda-forge/linux-64::libboost==1.85.0=hba137d9_1'] not in reqs/run, (i.e. it is overlinking) (likely) or a missing dependency (less likely) + WARNING (ataqv,bin/ataqv): Needed DSO lib/libboost_system.so.1.85.0 found in ['conda-forge/linux-64::libboost==1.85.0=hba137d9_1'] + WARNING (ataqv,bin/ataqv): .. but ['conda-forge/linux-64::libboost==1.85.0=hba137d9_1'] not in reqs/run, (i.e. it is overlinking) (likely) or a missing dependency (less likely) + WARNING (ataqv,bin/ataqv): Needed DSO lib/libboost_chrono.so.1.85.0 found in ['conda-forge/linux-64::libboost==1.85.0=hba137d9_1'] + WARNING (ataqv,bin/ataqv): .. but ['conda-forge/linux-64::libboost==1.85.0=hba137d9_1'] not in reqs/run, (i.e. it is overlinking) (likely) or a missing dependency (less likely) + INFO (ataqv,bin/ataqv): Needed DSO lib/libhts.so.3 found in bioconda/linux-64::htslib==1.20=h5efdd21_1 + INFO (ataqv,bin/ataqv): Needed DSO lib/libz.so.1 found in conda-forge/linux-64::libzlib==1.2.13=h4ab18f5_6 + INFO (ataqv,bin/ataqv): Needed DSO lib/libncurses.so.6 found in conda-forge/linux-64::ncurses==6.5=h59595ed_0 + INFO (ataqv,bin/ataqv): Needed DSO lib/libtinfo.so.6 found in conda-forge/linux-64::ncurses==6.5=h59595ed_0 + INFO (ataqv,bin/ataqv): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libpthread.so.0 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 + INFO (ataqv,bin/ataqv): Needed DSO lib/libstdc.so.6 found in conda-forge/linux-64::libstdcxx-ng==13.2.0=hc0a3c3a_7 + INFO (ataqv,bin/ataqv): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libm.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 + INFO (ataqv,bin/ataqv): Needed DSO lib/libgcc_s.so.1 found in conda-forge/linux-64::libgcc-ng==13.2.0=h77fa898_7 + INFO (ataqv,bin/ataqv): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libc.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 + WARNING (ataqv): run-exports library package conda-forge/linux-64::zlib==1.2.13=h4ab18f5_6 in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) + WARNING (ataqv): dso library package conda-forge/linux-64::coreutils==9.5=hd590300_0 in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) + WARNING (ataqv): interpreter (Python) package conda-forge/linux-64::python==3.8.19=hd12c33a_0_cpython in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) + Fixing permissions + Packaged license file/s. + INFO :: Time taken to mark (prefix) + 0 replacements in 0 files was 0.01 seconds + Files containing CONDA_PREFIX + ----------------------------- + bin/ataqv (binary): Patching + TEST START: /opt/conda/conda-bld/linux-64/ataqv-1.3.1-py38h40952c3_3.tar.bz2 + Renaming work directory '/opt/conda/conda-bld/ataqv_1717788465623/work' to '/opt/conda/conda-bld/ataqv_1717788465623/work_moved_ataqv-1.3.1-py38h40952c3_3_linux-64' + shutil.move(work)=/opt/conda/conda-bld/ataqv_1717788465623/work, dest=/opt/conda/conda-bld/ataqv_1717788465623/work_moved_ataqv-1.3.1-py38h40952c3_3_linux-64) + Reloading output folder (local, file:///opt/host-conda-bld): ...working... done + Solving environment (_test_env): ...working... done + + ## Package Plan ## + + environment location: /opt/conda/conda-bld/ataqv_1717788465623/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl + + + The following NEW packages will be INSTALLED: + + _libgcc_mutex: 0.1-conda_forge conda-forge + _openmp_mutex: 4.5-2_gnu conda-forge + ataqv: 1.3.1-py38h40952c3_3 local + boost-cpp: 1.85.0-h44aadfe_1 conda-forge + bzip2: 1.0.8-hd590300_5 conda-forge + c-ares: 1.28.1-hd590300_0 conda-forge + ca-certificates: 2024.6.2-hbcca054_0 conda-forge + coreutils: 9.5-hd590300_0 conda-forge + htslib: 1.20-h5efdd21_1 bioconda + icu: 73.2-h59595ed_0 conda-forge + keyutils: 1.6.1-h166bdaf_0 conda-forge + krb5: 1.21.2-h659d440_0 conda-forge + ld_impl_linux-64: 2.40-hf3520f5_2 conda-forge + libboost: 1.85.0-hba137d9_1 conda-forge + libboost-devel: 1.85.0-h00ab1b0_1 conda-forge + libboost-headers: 1.85.0-ha770c72_1 conda-forge + libcurl: 8.8.0-hca28451_0 conda-forge + libdeflate: 1.20-hd590300_0 conda-forge + libedit: 3.1.20191231-he28a2e2_2 conda-forge + libev: 4.33-hd590300_2 conda-forge + libffi: 3.4.2-h7f98852_5 conda-forge + libgcc-ng: 13.2.0-h77fa898_7 conda-forge + libgomp: 13.2.0-h77fa898_7 conda-forge + libnghttp2: 1.58.0-h47da74e_1 conda-forge + libnsl: 2.0.1-hd590300_0 conda-forge + libsqlite: 3.45.3-h2797004_0 conda-forge + libssh2: 1.11.0-h0841786_0 conda-forge + libstdcxx-ng: 13.2.0-hc0a3c3a_7 conda-forge + libuuid: 2.38.1-h0b41bf4_0 conda-forge + libxcrypt: 4.4.36-hd590300_1 conda-forge + libzlib: 1.3.1-h4ab18f5_1 conda-forge + ncurses: 6.5-h59595ed_0 conda-forge + openssl: 3.3.1-h4ab18f5_0 conda-forge + pip: 24.0-pyhd8ed1ab_0 conda-forge + python: 3.8.19-hd12c33a_0_cpython conda-forge + python_abi: 3.8-4_cp38 conda-forge + readline: 8.2-h8228510_1 conda-forge + setuptools: 70.0.0-pyhd8ed1ab_0 conda-forge + tk: 8.6.13-noxft_h4845f30_101 conda-forge + wheel: 0.43.0-pyhd8ed1ab_1 conda-forge + xz: 5.2.6-h166bdaf_0 conda-forge + zlib: 1.3.1-h4ab18f5_1 conda-forge + zstd: 1.5.6-ha6fb4c9_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + export PREFIX=/opt/conda/conda-bld/ataqv_1717788465623/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl + export SRC_DIR=/opt/conda/conda-bld/ataqv_1717788465623/test_tmp + ataqv --version + grep 1.3.1 + WARNING: Tests failed for ataqv-1.3.1-py38h40952c3_3.tar.bz2 - moving package to /opt/conda/conda-bld/broken + TESTS FAILED: ataqv-1.3.1-py38h40952c3_3.tar.bz2 +# Last 100 lines of the build log. diff --git a/recipes/ataqv/build_failure.osx-64.yaml b/recipes/ataqv/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..ff5345e9a2467 --- /dev/null +++ b/recipes/ataqv/build_failure.osx-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 934f4350f8c8aa698bf252326779b98d5992f2e629709c8219626a161e504204 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: compiler error +log: |2- + make: 4.3-h22f3db7_1 conda-forge + openssl: 3.3.1-h87427d6_0 conda-forge + sigtool: 0.1.3-h88f4db0_0 conda-forge + tapi: 1100.0.11-h9ce4665_0 conda-forge + xz: 5.2.6-h775f41a_0 conda-forge + zstd: 1.5.6-h915ae27_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + /opt/mambaforge/envs/bioconda/conda-bld/ataqv_1718297740259/work/src/cpp/Metrics.cpp:998:57: warning: taking the max of a value and unsigned zero is always equal to the other value [-Wmax-unsigned-zero] + query << tss_region.reference << ":" << std::max(tss_region.start - extension * 2, 0ULL) << "-" << (tss_region.end extension * 2); + ^~~~~~~~ ~~~~ + /opt/mambaforge/envs/bioconda/conda-bld/ataqv_1718297740259/work/src/cpp/Metrics.cpp:998:57: note: remove call to max function and unsigned zero argument + query << tss_region.reference << ":" << std::max(tss_region.start - extension * 2, 0ULL) << "-" << (tss_region.end extension * 2); + ^~~~~~~~ ~~~~~~ + 1 warning generated. + dyld[74759]: Library not loaded: @rpath/libtapi.dylib + Referenced from: <7F8D8CA0-6698-329D-8085-2D0F07C40248> /opt/mambaforge/envs/bioconda/pkgs/ld64_osx-64-711-ha20a434_0/bin/x86_64-apple-darwin13.4.0-ld + Reason: tried: '/opt/mambaforge/envs/bioconda/pkgs/ld64_osx-64-711-ha20a434_0/bin/../lib/libtapi.dylib' (no such file), '/opt/mambaforge/envs/bioconda/pkgs/ld64_osx-64-711-ha20a434_0/bin/../lib/libtapi.dylib' (no such file), '/usr/local/lib/libtapi.dylib' (no such file), '/usr/lib/libtapi.dylib' (no such file, not in dyld cache) + clang-16: error: unable to execute command: Abort trap: 6 + clang-16: error: linker command failed due to signal (use -v to see invocation) + make: *** [Makefile:168: build/ataqv] Error 1 + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/ataqv_1718297740259/work + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/ataqv_1718297740259/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/ataqv_1718297740259/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/ataqv_1718297740259/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ataqv-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + Traceback (most recent call last): + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ataqv-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/ataqv_1718297740259/work/conda_build.sh']' returned non-zero exit status 2. + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ataqv-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ataqv-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + x86_64-apple-darwin13.4.0-clang -std=c11 -pthread -O3 -g -I$PREFIX/include -o build/ataqv.o -c $SRC_DIR/src/cpp/ataqv.cpp + x86_64-apple-darwin13.4.0-clang -std=c11 -pthread -O3 -g -I$PREFIX/include -o build/Features.o -c $SRC_DIR/src/cpp/Features.cpp + x86_64-apple-darwin13.4.0-clang -std=c11 -pthread -O3 -g -I$PREFIX/include -o build/HTS.o -c $SRC_DIR/src/cpp/HTS.cpp + x86_64-apple-darwin13.4.0-clang -std=c11 -pthread -O3 -g -I$PREFIX/include -o build/IO.o -c $SRC_DIR/src/cpp/IO.cpp + x86_64-apple-darwin13.4.0-clang -std=c11 -pthread -O3 -g -I$PREFIX/include -o build/Metrics.o -c $SRC_DIR/src/cpp/Metrics.cpp + x86_64-apple-darwin13.4.0-clang -std=c11 -pthread -O3 -g -I$PREFIX/include -o build/Peaks.o -c $SRC_DIR/src/cpp/Peaks.cpp + x86_64-apple-darwin13.4.0-clang -std=c11 -pthread -O3 -g -I$PREFIX/include -o build/Utils.o -c $SRC_DIR/src/cpp/Utils.cpp + x86_64-apple-darwin13.4.0-clang -o build/ataqv build/ataqv.o build/Features.o build/HTS.o build/IO.o build/Metrics.o build/Peaks.o build/Utils.o -L$PREFIX/lib -lboost_filesystem -lboost_iostreams -lboost_system -lboost_chrono -lhts -lz -lncurses -lpthread +# Last 100 lines of the build log. diff --git a/recipes/ataqv/meta.yaml b/recipes/ataqv/meta.yaml index 9f1838132a0a0..6d2a096b8eb34 100644 --- a/recipes/ataqv/meta.yaml +++ b/recipes/ataqv/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 2 + number: 3 source: url: https://github.com/ParkerLab/ataqv/archive/{{ version }}.tar.gz diff --git a/recipes/atropos/meta.yaml b/recipes/atropos/meta.yaml index 8fd6958fa8d1b..3465bbd568dd6 100644 --- a/recipes/atropos/meta.yaml +++ b/recipes/atropos/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 2 # Ensure Cython is rerun by removing *.c output files and PKG-INFO (checked for by setup.py) script: find . "(" -name "*.c" -o -name PKG-INFO ")" -exec rm {} ";" && {{ PYTHON }} -m pip install --no-deps --no-build-isolation . -vvv run_exports: @@ -42,4 +42,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/augustus/3.3.3/build_failure.osx-64.yaml b/recipes/augustus/3.3.3/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..7d8410da8f38d --- /dev/null +++ b/recipes/augustus/3.3.3/build_failure.osx-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: be13d36eb1c14158ca987c33153650e289a0b64ea14456830f65ae7c8cb58b9b # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: compiler error +log: |- + ../src/Coord_Transform.cpp:77:7: error: use of undeclared identifier 'bind2nd' + bind2nd(finding_intron_greater_s(), i)); + ^ + ../src/Coord_Transform.cpp:81:7: error: use of undeclared identifier 'bind2nd' + bind2nd(finding_intron_greater_e(), i)); + ^ + ../src/Coord_Transform.cpp:89:7: error: use of undeclared identifier 'bind2nd' + bind2nd(finding_intron_lesser_e(), i)); + ^ + ../src/Coord_Transform.cpp:93:7: error: use of undeclared identifier 'bind2nd' + bind2nd(finding_intron_lesser_s(), i)); + ^ + 8 errors generated. + make[2]: *** [src/subdir.mk:41: src/Coord_Transform.o] Error 1 + make[1]: *** [Makefile:13: all] Error 2 + make: *** [Makefile:9: all] Error 2 + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/augustus-3.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/augustus-3.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -DUSE_BOOST -I$PREFIX/include/bamtools -Wall -O2 -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -c bam2hints.cc -o bam2hints.o -I$PREFIX/include/bamtools + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/augustus-3.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -DUSE_BOOST -I$PREFIX/include/bamtools -Wall -O2 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -o bam2hints bam2hints.o -L$PREFIX/lib/ -lbamtools -lz + mkdir -p ../../bin + cp bam2hints ../../bin + make[2]: Leaving directory '$SRC_DIR/auxprogs/bam2hints' + cd compileSpliceCands; make; + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + make[2]: Entering directory '$SRC_DIR/auxprogs/compileSpliceCands' + x86_64-apple-darwin13.4.0-clang -Wall -pedantic -ansi -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -c compileSpliceCands.c + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/augustus-3.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -c -o list.o list.c + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + x86_64-apple-darwin13.4.0-clang -o compileSpliceCands compileSpliceCands.o list.o; + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/augustus_1718124280585/work/conda_build.sh']' returned non-zero exit status 2. + cp compileSpliceCands ../../bin/compileSpliceCands + make[2]: Leaving directory '$SRC_DIR/auxprogs/compileSpliceCands' + cd filterBam; make; + make[2]: Entering directory '$SRC_DIR/auxprogs/filterBam' + (cd src;make) + make[3]: Entering directory '$SRC_DIR/auxprogs/filterBam/src' + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/augustus-3.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -Wall -O2 -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -c filterBam.cc -o filterBam.o -I$PREFIX/include/bamtools -Iheaders -I./bamtools + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/augustus-3.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -Wall -O2 -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -c functions/MatePairs.cc -o MatePairs.o -I$PREFIX/include/bamtools -Iheaders -I./bamtools + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/augustus-3.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -Wall -O2 -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -c functions/getReferenceName.cc -o getReferenceName.o -I$PREFIX/include/bamtools -Iheaders -I./bamtools + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/augustus-3.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -Wall -O2 -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -c functions/initOptions.cc -o initOptions.o -I$PREFIX/include/bamtools -Iheaders -I./bamtools + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/augustus-3.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -Wall -O2 -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -c functions/SingleAlignment.cc -o SingleAlignment.o -I$PREFIX/include/bamtools -Iheaders -I./bamtools + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/augustus-3.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -Wall -O2 -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -c functions/printElapsedTime.cc -o printElapsedTime.o -I$PREFIX/include/bamtools -Iheaders -I./bamtools + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/augustus-3.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -Wall -O2 -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -c functions/sumMandIOperations.cc -o sumMandIOperations.o -I$PREFIX/include/bamtools -Iheaders -I./bamtools + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/augustus-3.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -Wall -O2 -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -c functions/sumDandIOperations.cc -o sumDandIOperations.o -I$PREFIX/include/bamtools -Iheaders -I./bamtools + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/augustus-3.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -Wall -O2 -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -c functions/PairednessCoverage.cc -o PairednessCoverage.o -I$PREFIX/include/bamtools -Iheaders -I./bamtools + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/augustus-3.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -Wall -O2 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib filterBam.o MatePairs.o getReferenceName.o initOptions.o SingleAlignment.o printElapsedTime.o sumMandIOperations.o sumDandIOperations.o PairednessCoverage.o -o filterBam -L$PREFIX/lib/ -lbamtools -lz + filterBam compiled with BAMTOOLS=$PREFIX + mv filterBam ../../../bin/filterBam + make[3]: Leaving directory '$SRC_DIR/auxprogs/filterBam/src' + make[2]: Leaving directory '$SRC_DIR/auxprogs/filterBam' + cd homGeneMapping; make; + make[2]: Entering directory '$SRC_DIR/auxprogs/homGeneMapping' + (cd src; make) + make[3]: Entering directory '$SRC_DIR/auxprogs/homGeneMapping/src' + x86_64-apple-darwin13.4.0-clang -c -Wall -Wno-sign-compare -ansi -pedantic -std=c0x -pthread -O2 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/augustus-3.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/augustus-3.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -DUSE_BOOST -I$PREFIX/include/bamtools -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -o gene.o gene.cc -I../include -I$PREFIX/include + x86_64-apple-darwin13.4.0-clang -c -Wall -Wno-sign-compare -ansi -pedantic -std=c0x -pthread -O2 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/augustus-3.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/augustus-3.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -DUSE_BOOST -I$PREFIX/include/bamtools -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -o genome.o genome.cc -I../include -I$PREFIX/include + x86_64-apple-darwin13.4.0-clang -Wall -Wno-sign-compare -ansi -pedantic -std=c0x -pthread -O2 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/augustus-3.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -o homGeneMapping main.cc gene.o genome.o -I../include -I$PREFIX/include + mkdir -p ../../../bin/ + cp homGeneMapping ../../../bin/homGeneMapping + make[3]: Leaving directory '$SRC_DIR/auxprogs/homGeneMapping/src' + make[2]: Leaving directory '$SRC_DIR/auxprogs/homGeneMapping' + cd joingenes; make; + make[2]: Entering directory '$SRC_DIR/auxprogs/joingenes' + x86_64-apple-darwin13.4.0-clang -c -Wall -std=gnu0x -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/augustus-3.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -DUSE_BOOST -I$PREFIX/include/bamtools -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib joingenes.cpp + x86_64-apple-darwin13.4.0-clang -c -Wall -std=gnu0x -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/augustus-3.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -DUSE_BOOST -I$PREFIX/include/bamtools -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib jg_transcript.cpp + x86_64-apple-darwin13.4.0-clang -c -Wall -std=gnu0x -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/augustus-3.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -DUSE_BOOST -I$PREFIX/include/bamtools -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib jg_ios.cpp + x86_64-apple-darwin13.4.0-clang -Wall -std=gnu0x -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/augustus-3.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -DUSE_BOOST -I$PREFIX/include/bamtools -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib joingenes.o jg_transcript.o jg_ios.o -o joingenes + cp joingenes ../../bin/ + make[2]: Leaving directory '$SRC_DIR/auxprogs/joingenes' + cd bam2wig; make; + make[2]: Entering directory '$SRC_DIR/auxprogs/bam2wig' + x86_64-apple-darwin13.4.0-clang -Wall -O2 -I$PREFIX/include/samtools -I. -I$PREFIX/include/bam -I$PREFIX/include -c bam2wig.c -o bam2wig.o + x86_64-apple-darwin13.4.0-clang -Wall -O2 -I$PREFIX/include/samtools -I. -I$PREFIX/include/bam -I$PREFIX/include bam2wig.o -o bam2wig -lbam -lhts -lncurses -lm -lz -lpthread -lcurl -lbz2 -llzma -L$PREFIX/lib/ + mkdir -p ../../bin + cp bam2wig ../../bin/bam2wig + make[2]: Leaving directory '$SRC_DIR/auxprogs/bam2wig' + cd utrrnaseq/Debug; make all; + make[2]: Entering directory '$SRC_DIR/auxprogs/utrrnaseq/Debug' + Building file: ../src/Compute_UTRs.cpp + Invoking: GCC C Compiler + x86_64-apple-darwin13.4.0-clang -I$PREFIX/include -O0 -g3 -pedantic -Wall -c -fmessage-length=0 -MMD -MP -MF"src/Compute_UTRs.d" -MT"src/Compute_UTRs.o" -o "src/Compute_UTRs.o" "../src/Compute_UTRs.cpp" + Finished building: ../src/Compute_UTRs.cpp + + Building file: ../src/Coord_Transform.cpp + Invoking: GCC C Compiler + x86_64-apple-darwin13.4.0-clang -I$PREFIX/include -O0 -g3 -pedantic -Wall -c -fmessage-length=0 -MMD -MP -MF"src/Coord_Transform.d" -MT"src/Coord_Transform.o" -o "src/Coord_Transform.o" "../src/Coord_Transform.cpp" + make[2]: Leaving directory '$SRC_DIR/auxprogs/utrrnaseq/Debug' + make[1]: Leaving directory '$SRC_DIR/auxprogs' +# Last 100 lines of the build log. diff --git a/recipes/augustus/3.3.3/meta.yaml b/recipes/augustus/3.3.3/meta.yaml index 6da13bf32af1b..b8348d67a24f7 100644 --- a/recipes/augustus/3.3.3/meta.yaml +++ b/recipes/augustus/3.3.3/meta.yaml @@ -22,7 +22,7 @@ source: - patches/src.makefile.patch build: - number: 12 + number: 13 requirements: build: diff --git a/recipes/augustus/meta.yaml b/recipes/augustus/meta.yaml index fe01186ae281b..7faa39e763a44 100644 --- a/recipes/augustus/meta.yaml +++ b/recipes/augustus/meta.yaml @@ -13,7 +13,7 @@ source: - patches/utrrnaseq.patch build: - number: 3 + number: 4 requirements: build: diff --git a/recipes/auspice/meta.yaml b/recipes/auspice/meta.yaml index 5dca8a7536aca..51f2c349d4db4 100644 --- a/recipes/auspice/meta.yaml +++ b/recipes/auspice/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 67533ac3545089f200ef44598ab12d4a937b7018cc8c4c192e0516ab6081731b build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("auspice", max_pin="x.x") }} diff --git a/recipes/bamread/build_failure.osx-64.yaml b/recipes/bamread/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..44897c6af34d3 --- /dev/null +++ b/recipes/bamread/build_failure.osx-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 8f26375d8b5482a572de19471f95b0c74d50dea5df302d8ab63ff1f5fd6927b9 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: compiler error +log: |2- + Reason: tried: '/opt/mambaforge/envs/bioconda/pkgs/ld64_osx-64-711-ha20a434_0/bin/../lib/libtapi.dylib' (no such file), '/opt/mambaforge/envs/bioconda/pkgs/ld64_osx-64-711-ha20a434_0/bin/../lib/libtapi.dylib' (no such file), '/usr/local/lib/libtapi.dylib' (no such file), '/usr/lib/libtapi.dylib' (no such file, not in dyld cache) + clang-16: error: unable to execute command: Abort trap: 6 + clang-16: error: linker command failed due to signal (use -v to see invocation) + error: command '/opt/mambaforge/envs/bioconda/conda-bld/bamread_1718324170755/_build_env/bin/x86_64-apple-darwin13.4.0-clang' failed with exit code 1 + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/bamread_1718324170755/work + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/bamread_1718324170755/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/bamread_1718324170755/_build_env + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/bamread_1718324170755/work/conda_build.sh']' returned non-zero exit status 1. + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/bamread_1718324170755/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bamread-0.0.16 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bamread-0.0.16 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + Compiling bamread/src/bamread.pyx because it changed. + [1/1] Cythonizing bamread/src/bamread.pyx + running install + running build + running build_py + creating build + creating build/lib.macosx-10.9-x86_64-cpython-312 + creating build/lib.macosx-10.9-x86_64-cpython-312/bamread + copying bamread/__init__.py -> build/lib.macosx-10.9-x86_64-cpython-312/bamread + copying bamread/read.py -> build/lib.macosx-10.9-x86_64-cpython-312/bamread + creating build/lib.macosx-10.9-x86_64-cpython-312/bamread/src + copying bamread/src/__init__.py -> build/lib.macosx-10.9-x86_64-cpython-312/bamread/src + running egg_info + writing bamread.egg-info/PKG-INFO + writing dependency_links to bamread.egg-info/dependency_links.txt + writing requirements to bamread.egg-info/requires.txt + writing top-level names to bamread.egg-info/top_level.txt + reading manifest file 'bamread.egg-info/SOURCES.txt' + writing manifest file 'bamread.egg-info/SOURCES.txt' + creating build/lib.macosx-10.9-x86_64-cpython-312/bin + copying bin/bamread -> build/lib.macosx-10.9-x86_64-cpython-312/bin + creating build/lib.macosx-10.9-x86_64-cpython-312/tests + copying tests/control.bam -> build/lib.macosx-10.9-x86_64-cpython-312/tests + copying bamread/src/bamread.c -> build/lib.macosx-10.9-x86_64-cpython-312/bamread/src + copying bamread/src/bamread.pyx -> build/lib.macosx-10.9-x86_64-cpython-312/bamread/src + copying bamread/src/bamwrite.pyx -> build/lib.macosx-10.9-x86_64-cpython-312/bamread/src + running build_ext + building 'bamread.src.bamread' extension + creating build/temp.macosx-10.9-x86_64-cpython-312 + creating build/temp.macosx-10.9-x86_64-cpython-312/bamread + creating build/temp.macosx-10.9-x86_64-cpython-312/bamread/src + x86_64-apple-darwin13.4.0-clang -fno-strict-overflow -DNDEBUG -O2 -Wall -fPIC -O2 -isystem $PREFIX/include -fPIC -O2 -isystem $PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bamread-0.0.16 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include/python3.12 -c bamread/src/bamread.c -o build/temp.macosx-10.9-x86_64-cpython-312/bamread/src/bamread.o + x86_64-apple-darwin13.4.0-clang -bundle -undefined dynamic_lookup -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bamread-0.0.16 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 build/temp.macosx-10.9-x86_64-cpython-312/bamread/src/bamread.o -o build/lib.macosx-10.9-x86_64-cpython-312/bamread/src/bamread.cpython-312-darwin.so +# Last 100 lines of the build log. diff --git a/recipes/bamread/meta.yaml b/recipes/bamread/meta.yaml index 1768dcb503806..db3f3aca49d74 100644 --- a/recipes/bamread/meta.yaml +++ b/recipes/bamread/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 913ae7d433592aa9bfad8699da93e74b5dfe8f567a1ebf4147f0da61baaf2b70 build: - number: 2 + number: 4 script: python setup.py install --single-version-externally-managed --record=record.txt run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} diff --git a/recipes/bamscale/meta.yaml b/recipes/bamscale/meta.yaml index 1f9c26d4667e7..2b2c881bbab70 100644 --- a/recipes/bamscale/meta.yaml +++ b/recipes/bamscale/meta.yaml @@ -10,7 +10,7 @@ source: folder: bamscale build: - number: 8 + number: 9 requirements: build: diff --git a/recipes/bandage_ng/meta.yaml b/recipes/bandage_ng/meta.yaml index 8068c2cda5f82..ca560807e8f66 100644 --- a/recipes/bandage_ng/meta.yaml +++ b/recipes/bandage_ng/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 892c36350ee0eb8a58ec7187cf08b6b5b288915bd74f6d69e68c7aa2fdd704f0 build: - number: 3 + number: 4 skip: True # [osx] run_exports: - {{ pin_subpackage("bandage_ng", max_pin=None) }} diff --git a/recipes/bbknn/meta.yaml b/recipes/bbknn/meta.yaml index 531c1b8a8c74b..1234e90ae2c9f 100644 --- a/recipes/bbknn/meta.yaml +++ b/recipes/bbknn/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 1c01a9d6df2fc52a527de8a403617897a4b672724863299a7026f2132f1b041b build: - number: 2 + number: 3 script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv " run_exports: - {{ pin_subpackage('bbknn', max_pin="x") }} diff --git a/recipes/bcov/build_failure.osx-64.yaml b/recipes/bcov/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..4a52bda41095a --- /dev/null +++ b/recipes/bcov/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 22c66601a735ae21975313b1d7913f6ded1f2e5b4c41bfcda0f832817b9f6f06 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + GFORTRAN=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bcov-1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bcov-1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + checking for a BSD-compatible install... /usr/bin/install -c + checking whether build environment is sane... yes + checking for a race-free mkdir -p... ./install-sh -c -d + checking for gawk... no + checking for mawk... no + checking for nawk... no + checking for awk... awk + checking whether make sets $(MAKE)... yes + checking whether make supports nested variables... yes + checking for x86_64-apple-darwin13.4.0-gcc... x86_64-apple-darwin13.4.0-clang + checking whether the C compiler works... yes + checking for C compiler default output file name... a.out + checking for suffix of executables... + checking whether we are cross compiling... no + checking for suffix of object files... o + checking whether the compiler supports GNU C... yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes + checking for x86_64-apple-darwin13.4.0-clang option to enable C11 features... none needed + checking whether x86_64-apple-darwin13.4.0-clang understands -c and -o together... yes + checking whether make supports the include directive... yes (GNU style) + checking dependency style of x86_64-apple-darwin13.4.0-clang... gcc3 + checking for x86_64-apple-darwin13.4.0-gfortran... $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + checking whether the compiler supports GNU Fortran... yes + checking whether $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran accepts -g... yes + checking for glp_set_prob_name in -lglpk... yes + checking for exp in -lm... yes + checking for stdio.h... yes + checking for stdlib.h... yes + checking for string.h... yes + checking for inttypes.h... yes + checking for stdint.h... yes + checking for strings.h... yes + checking for sys/stat.h... yes + checking for sys/types.h... yes + checking for unistd.h... yes + checking for stdlib.h... (cached) yes + checking for string.h... (cached) yes + checking for unistd.h... (cached) yes + checking build system type... x86_64-apple-darwin13.4.0 + checking host system type... x86_64-apple-darwin13.4.0 + checking for GNU libc compatible malloc... (cached) yes + checking for sqrt... yes + checking for strdup... yes + checking for pow... yes + checking that generated files are newer than configure... done + configure: creating ./config.status + config.status: creating Makefile + config.status: creating src/Makefile + config.status: creating config.h + config.status: executing depfiles commands + make all-recursive + make[1]: Entering directory '$SRC_DIR' + Making all in src + make[2]: Entering directory '$SRC_DIR/src' + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bcov-1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.c + make[2]: Leaving directory '$SRC_DIR/src' + make[1]: Leaving directory '$SRC_DIR' +# Last 100 lines of the build log. diff --git a/recipes/bcov/meta.yaml b/recipes/bcov/meta.yaml index a4d012b14a847..7875a0390f4f8 100644 --- a/recipes/bcov/meta.yaml +++ b/recipes/bcov/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 8 + number: 9 run_exports: - {{ pin_subpackage("bcov", max_pin="x.x.x") }} diff --git a/recipes/bellmans-gapc/meta.yaml b/recipes/bellmans-gapc/meta.yaml index aeeba10b347fc..2bdefca04e26c 100644 --- a/recipes/bellmans-gapc/meta.yaml +++ b/recipes/bellmans-gapc/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 590b62d5fc39b1deb45855b0586d7ca3674ef17c59fc84ef445d2760a480f7ba build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('bellmans-gapc', max_pin=None) }} diff --git a/recipes/biobloomtools/build_failure.linux-64.yaml b/recipes/biobloomtools/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..6278f2355f943 --- /dev/null +++ b/recipes/biobloomtools/build_failure.linux-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 671354106cba831cba3c07e3c3b15b5c3cc1d722f324bf25bb29ebf244791776 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: compiler error +log: |- + checking whether make supports the include directive... yes (GNU style) + checking dependency style of $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c... none + checking for x86_64-conda-linux-gnu-gcc... $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + checking whether we are using the GNU C compiler... yes + checking whether $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc accepts -g... yes + checking for $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc option to accept ISO C89... none needed + checking whether $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc understands -c and -o together... yes + checking dependency style of $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc... none + checking for dlopen in -ldl... yes + checking how to run the C preprocessor... $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + checking for grep that handles long lines and -e... /usr/bin/grep + checking for egrep... /usr/bin/grep -E + checking for ANSI C header files... yes + checking for sys/types.h... yes + checking for sys/stat.h... yes + checking for stdlib.h... yes + checking for string.h... yes + checking for memory.h... yes + checking for strings.h... yes + checking for inttypes.h... yes + checking for stdint.h... yes + checking for unistd.h... yes + checking for size_t... yes + checking how to run the C preprocessor... $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -E + checking boost/property_tree/ptree.hpp usability... yes + checking boost/property_tree/ptree.hpp presence... yes + checking for boost/property_tree/ptree.hpp... yes + checking boost/property_tree/ini_parser.hpp usability... yes + checking boost/property_tree/ini_parser.hpp presence... yes + checking for boost/property_tree/ini_parser.hpp... yes + checking btl_bloomfilter/BloomFilter.hpp usability... yes + checking btl_bloomfilter/BloomFilter.hpp presence... yes + checking for btl_bloomfilter/BloomFilter.hpp... yes + checking zlib.h usability... yes + checking zlib.h presence... yes + checking for zlib.h... yes + checking google/dense_hash_map usability... yes + checking google/dense_hash_map presence... yes + checking for google/dense_hash_map... yes + checking sdsl/bit_vector_il.hpp usability... yes + checking sdsl/bit_vector_il.hpp presence... yes + checking for sdsl/bit_vector_il.hpp... yes + checking for $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c option to support OpenMP... -fopenmp + checking that generated files are newer than configure... done + configure: creating ./config.status + config.status: creating Makefile + config.status: creating Common/Makefile + config.status: creating BioBloomMaker/Makefile + config.status: creating BioBloomCategorizer/Makefile + config.status: creating Tests/Makefile + config.status: creating config.h + config.status: executing depfiles commands + make all-recursive + make[1]: Entering directory '$SRC_DIR' + Making all in Common + make[2]: Entering directory '$SRC_DIR/Common' + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -I$SRC_DIR -I$SRC_DIR -isystem$PREFIX -isystem$PREFIX/include -isystem/$PREFIX/include -Wall -Wextra -Werror -std=c11 -I$PREFIX/include -O3 -c -o libcommon_a-BloomFilterInfo.o test -f 'BloomFilterInfo.cpp' || echo '$SRC_DIR/Common/'BloomFilterInfo.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -I$SRC_DIR -I$SRC_DIR -isystem$PREFIX -isystem$PREFIX/include -isystem/$PREFIX/include -Wall -Wextra -Werror -std=c11 -I$PREFIX/include -O3 -c -o libcommon_a-Dynamicofstream.o test -f 'Dynamicofstream.cpp' || echo '$SRC_DIR/Common/'Dynamicofstream.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -I$SRC_DIR -I$SRC_DIR -isystem$PREFIX -isystem$PREFIX/include -isystem/$PREFIX/include -Wall -Wextra -Werror -std=c11 -I$PREFIX/include -O3 -c -o libcommon_a-gzstream.o test -f 'gzstream.C' || echo '$SRC_DIR/Common/'gzstream.C + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -I$SRC_DIR -I$SRC_DIR -isystem$PREFIX -isystem$PREFIX/include -isystem/$PREFIX/include -Wall -Wextra -Werror -std=c11 -I$PREFIX/include -O3 -c -o libcommon_a-Options.o test -f 'Options.cpp' || echo '$SRC_DIR/Common/'Options.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -DHAVE_CONFIG_H -I. -I.. -I$SRC_DIR -I$SRC_DIR -isystem$PREFIX -isystem$PREFIX/include -isystem/$PREFIX/include -I$PREFIX/include -O3 -c -o libcommon_a-sdust.o test -f 'sdust.c' || echo '$SRC_DIR/Common/'sdust.c + rm -f libcommon.a + ar cru libcommon.a libcommon_a-BloomFilterInfo.o libcommon_a-Dynamicofstream.o libcommon_a-gzstream.o libcommon_a-Options.o libcommon_a-sdust.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib libcommon.a + make[2]: Leaving directory '$SRC_DIR/Common' + Making all in BioBloomMaker + make[2]: Entering directory '$SRC_DIR/BioBloomMaker' + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -I$SRC_DIR/BioBloomMaker -I$SRC_DIR/Common -I$SRC_DIR -I$SRC_DIR -isystem$PREFIX -isystem$PREFIX/include -isystem/$PREFIX/include -Wall -Wextra -Werror -fopenmp -std=c11 -I$PREFIX/include -O3 -c -o biobloommaker-BioBloomMaker.o test -f 'BioBloomMaker.cpp' || echo '$SRC_DIR/BioBloomMaker/'BioBloomMaker.cpp + In file included from /opt/conda/conda-bld/biobloomtools_1718025002732/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include/boost/math/special_functions/detail/round_fwd.hpp:11, + from /opt/conda/conda-bld/biobloomtools_1718025002732/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include/boost/math/special_functions/math_fwd.hpp:29, + from /opt/conda/conda-bld/biobloomtools_1718025002732/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include/boost/math/special_functions/beta.hpp:13, + from /opt/conda/conda-bld/biobloomtools_1718025002732/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include/boost/math/distributions/binomial.hpp:83, + from ../Common/SeqEval.h:21, + from BloomFilterGenerator.h:14, + from BioBloomMaker.cpp:12: + /opt/conda/conda-bld/biobloomtools_1718025002732/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include/boost/math/tools/config.hpp:26:6: error: #warning "Boost.Math requires C14" [-Werror=cpp] + 26 | # warning "Boost.Math requires C14" + | ^~~~~~~ + cc1plus: all warnings being treated as errors + make[2]: *** [Makefile:429: biobloommaker-BioBloomMaker.o] Error 1 + make[2]: Leaving directory '$SRC_DIR/BioBloomMaker' + make[1]: *** [Makefile:430: all-recursive] Error 1 + make[1]: Leaving directory '$SRC_DIR' + make: *** [Makefile:350: all] Error 2 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/biobloomtools_1718025002732/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/biobloomtools/meta.yaml b/recipes/biobloomtools/meta.yaml index 50f11a98e5ead..d4fd45e841e16 100644 --- a/recipes/biobloomtools/meta.yaml +++ b/recipes/biobloomtools/meta.yaml @@ -10,7 +10,9 @@ source: build: skip: true # [osx or win] - number: 2 + number: 3 + run_exports: + - {{ pin_subpackage("biobloomtools", max_pin="x") }} requirements: build: diff --git a/recipes/bioconductor-cytoml/build_failure.osx-64.yaml b/recipes/bioconductor-cytoml/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..1c647ed38192b --- /dev/null +++ b/recipes/bioconductor-cytoml/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 1c91989f56fc78860ff6ec88f6e1816c3dd98bc98659434b3e9a5b02792c0fbb # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + DEBUG_FFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bioconductor-cytoml-2.14.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -Og -g -Wall -Wextra -fcheck=all -fbacktrace -fimplicit-none -fvar-tracking-assignments + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + DEBUG_FORTRANFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bioconductor-cytoml-2.14.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -Og -g -Wall -Wextra -fcheck=all -fbacktrace -fimplicit-none -fvar-tracking-assignments + F77=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + F90=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + F95=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + FC=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + FC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + FFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bioconductor-cytoml-2.14.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + FORTRANFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bioconductor-cytoml-2.14.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GFORTRAN=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bioconductor-cytoml-2.14.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/bioconductor-cytoml_1717700284559/work/conda_build.sh']' returned non-zero exit status 1. + CMAKE_ARGS=-DCMAKE_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bioconductor-cytoml-2.14.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bioconductor-cytoml-2.14.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bioconductor-cytoml-2.14.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + INFO: activate_clang_osx-64.sh made the following environmental changes: + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + -CC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + -CMAKE_ARGS=-DCMAKE_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + -OBJC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + -CXX_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + checking whether the C compiler works... yes + checking for C compiler default output file name... a.out + checking for suffix of executables... + checking whether we are cross compiling... no + checking for suffix of object files... o + checking whether we are using the GNU C compiler... yes + checking whether x86_64-apple-darwin13.4.0-clang -std=gnu11 accepts -g... yes + checking for x86_64-apple-darwin13.4.0-gcc... x86_64-apple-darwin13.4.0-clang + checking whether we are using the GNU C compiler... yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes + checking for x86_64-apple-darwin13.4.0-clang option to accept ISO C89... none needed + configure: setting xml2 flags... + configure: No directory was specified for --with-xml2. Trying to find xml2 using other methods. + checking for xml2-config... $BUILD_PREFIX/bin/xml2-config + configure: setting cytolib-ml commandline tool path... + configure: Using the following compilation and linking flags + configure: PKG_CPPFLAGS=-I$BUILD_PREFIX/include/libxml2 -I$BUILD_PREFIX/include + configure: PKG_LIBS=-L$BUILD_PREFIX/lib -lxml2 -L$BUILD_PREFIX/lib -lz -L$BUILD_PREFIX/lib -llzma -L$BUILD_PREFIX/lib -licui18n -licuuc -licudata -L$BUILD_PREFIX/lib -liconv + configure: CYTOLIBML_BIN=/usr/local/bin + configure: creating ./config.status + config.status: creating src/Makevars + config.status: creating R/cytolibml_bin_path.R + x86_64-apple-darwin13.4.0-clang -std=gnu11 -I"$PREFIX/lib/R/include" -DNDEBUG -DROUT -I../inst/include/ -I$BUILD_PREFIX/include/libxml2 -I$BUILD_PREFIX/include -DBOOST_NO_AUTO_PTR -I'$PREFIX/lib/R/library/cpp11/include' -I'$PREFIX/lib/R/library/BH/include' -I'$PREFIX/lib/R/library/RProtoBufLib/include' -I'$PREFIX/lib/R/library/cytolib/include' -I'$PREFIX/lib/R/library/Rhdf5lib/include' -I'$PREFIX/lib/R/library/flowWorkspace/include' -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I$PREFIX/include -fPIC -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=/Users/runner/miniforge3/conda-bld/r-base-split_1714471796105/work=/usr/local/src/conda/r-base-4.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c cpp11.cpp -o cpp11.o +# Last 100 lines of the build log. diff --git a/recipes/bioconductor-cytoml/meta.yaml b/recipes/bioconductor-cytoml/meta.yaml index ee27b56fde053..61a0d13b69b74 100644 --- a/recipes/bioconductor-cytoml/meta.yaml +++ b/recipes/bioconductor-cytoml/meta.yaml @@ -13,7 +13,7 @@ source: - 'https://depot.galaxyproject.org/software/bioconductor-{{ name|lower }}/bioconductor-{{ name|lower }}_{{ version }}_src_all.tar.gz' md5: 4b0060416cdeef7876cb9aaeb81dbaf7 build: - number: 0 + number: 1 rpaths: - lib/R/lib/ - lib/ diff --git a/recipes/bioconductor-ebseq/meta.yaml b/recipes/bioconductor-ebseq/meta.yaml index f67fc69c13708..d02c515a1c886 100644 --- a/recipes/bioconductor-ebseq/meta.yaml +++ b/recipes/bioconductor-ebseq/meta.yaml @@ -13,7 +13,7 @@ source: - 'https://depot.galaxyproject.org/software/bioconductor-{{ name|lower }}/bioconductor-{{ name|lower }}_{{ version }}_src_all.tar.gz' md5: e64aabb38197aba0ee5985a1558cce60 build: - number: 2 + number: 3 rpaths: - lib/R/lib/ - lib/ diff --git a/recipes/bioconductor-flowdensity/meta.yaml b/recipes/bioconductor-flowdensity/meta.yaml index 7a7978ac58c3d..4e52b04c18b7d 100644 --- a/recipes/bioconductor-flowdensity/meta.yaml +++ b/recipes/bioconductor-flowdensity/meta.yaml @@ -13,7 +13,7 @@ source: - 'https://depot.galaxyproject.org/software/bioconductor-{{ name|lower }}/bioconductor-{{ name|lower }}_{{ version }}_src_all.tar.gz' md5: 30c661d010484bff6c2eb427a7056aa1 build: - number: 0 + number: 1 rpaths: - lib/R/lib/ - lib/ diff --git a/recipes/bioconductor-garfield/meta.yaml b/recipes/bioconductor-garfield/meta.yaml index 14344e5f71ca5..628d30c46a398 100644 --- a/recipes/bioconductor-garfield/meta.yaml +++ b/recipes/bioconductor-garfield/meta.yaml @@ -13,7 +13,7 @@ source: - 'https://depot.galaxyproject.org/software/bioconductor-{{ name }}/bioconductor-{{ name }}_{{ version }}_src_all.tar.gz' md5: bf1974925a6c10b95ada01ff6d46bf15 build: - number: 2 + number: 3 rpaths: - lib/R/lib/ - lib/ diff --git a/recipes/bioconductor-hilbertvis/meta.yaml b/recipes/bioconductor-hilbertvis/meta.yaml index 242e87630060c..9720dd65d60bf 100644 --- a/recipes/bioconductor-hilbertvis/meta.yaml +++ b/recipes/bioconductor-hilbertvis/meta.yaml @@ -13,7 +13,7 @@ source: - 'https://depot.galaxyproject.org/software/bioconductor-{{ name|lower }}/bioconductor-{{ name|lower }}_{{ version }}_src_all.tar.gz' md5: b30abc9c50034b41daf1399031d657e3 build: - number: 2 + number: 3 rpaths: - lib/R/lib/ - lib/ diff --git a/recipes/bioconductor-hyperdraw/meta.yaml b/recipes/bioconductor-hyperdraw/meta.yaml index 10d2f229c833c..85de9545d1190 100644 --- a/recipes/bioconductor-hyperdraw/meta.yaml +++ b/recipes/bioconductor-hyperdraw/meta.yaml @@ -13,7 +13,7 @@ source: - 'https://depot.galaxyproject.org/software/bioconductor-{{ name }}/bioconductor-{{ name }}_{{ version }}_src_all.tar.gz' md5: 2b1ec2cf9ea920a241f821baa08bb393 build: - number: 0 + number: 1 rpaths: - lib/R/lib/ - lib/ diff --git a/recipes/bioconductor-iclusterplus/meta.yaml b/recipes/bioconductor-iclusterplus/meta.yaml index b600ba560fb04..0426fabc27f70 100644 --- a/recipes/bioconductor-iclusterplus/meta.yaml +++ b/recipes/bioconductor-iclusterplus/meta.yaml @@ -15,7 +15,7 @@ source: patches: - 0001-Detect-compiler-with-gfortran-suffix.patch build: - number: 1 + number: 2 rpaths: - lib/R/lib/ - lib/ diff --git a/recipes/bioconductor-metapod/meta.yaml b/recipes/bioconductor-metapod/meta.yaml index 4f389d46291d7..6753ccc9e4516 100644 --- a/recipes/bioconductor-metapod/meta.yaml +++ b/recipes/bioconductor-metapod/meta.yaml @@ -13,7 +13,7 @@ source: - 'https://depot.galaxyproject.org/software/bioconductor-{{ name }}/bioconductor-{{ name }}_{{ version }}_src_all.tar.gz' md5: 49bf3f5df3f99c0d4068224a8f51eacc build: - number: 2 + number: 3 rpaths: - lib/R/lib/ - lib/ diff --git a/recipes/bioconductor-musicatk/build_failure.linux-64.yaml b/recipes/bioconductor-musicatk/build_failure.linux-64.yaml deleted file mode 100644 index 424fa8f85cd80..0000000000000 --- a/recipes/bioconductor-musicatk/build_failure.linux-64.yaml +++ /dev/null @@ -1,101 +0,0 @@ -recipe_sha: add20fc7cb5cb40c6bb4cc7b7f4ec8df2354e950eedc2efb6d70c37d5fb83448 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -reason: |- - ERRO Task processing failed: API error (500): {"message":"write /usr/local/lib/libgoogle_cloud_cpp_dialogflow_cx.so.2.12.0: no space left on device"} -category: |- - compiler error -log: |- - .07:05:52 BIOCONDA INFO (ERR) [Dec 15 07:05:52] SERR [Dec 15 07:05:52] ERRO Task processing failed: API error (500): {"message":"write /usr/local/lib/libgoogle_cloud_cpp_dialogflow_cx.so.2.12.0: no space left on device"} - 07:05:52 BIOCONDA INFO (ERR) [Dec 15 07:05:52] SERR - 07:05:52 BIOCONDA INFO (ERR) [Dec 15 07:05:52] ERRO Task processing failed: Unexpected exit code [1] of container [c84c2e941721 step-698cd8abd9], container preserved - .07:06:42 BIOCONDA INFO (OUT) ........ - 07:06:42 BIOCONDA INFO (ERR) Traceback (most recent call last): - 07:06:42 BIOCONDA INFO (ERR) File "/opt/mambaforge/envs/bioconda/bin/mulled-build", line 10, in - 07:06:42 BIOCONDA INFO (ERR) sys.exit(main()) - 07:06:42 BIOCONDA INFO (ERR) File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/galaxy/tools/deps/mulled/mulled_build.py", line 414, in main - 07:06:42 BIOCONDA INFO (ERR) sys.exit(mull_targets(targets, **args_to_mull_targets_kwds(args))) - 07:06:42 BIOCONDA INFO (ERR) File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/galaxy/tools/deps/mulled/mulled_build.py", line 243, in mull_targets - 07:06:42 BIOCONDA INFO (ERR) ret = involucro_context.exec_command(involucro_args) - 07:06:42 BIOCONDA INFO (ERR) File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/galaxy/tools/deps/mulled/mulled_build.py", line 287, in exec_command - 07:06:42 BIOCONDA INFO (ERR) shutil.rmtree('./build') - 07:06:42 BIOCONDA INFO (ERR) File "/opt/mambaforge/envs/bioconda/lib/python3.8/shutil.py", line 718, in rmtree - 07:06:42 BIOCONDA INFO (ERR) _rmtree_safe_fd(fd, path, onerror) - 07:06:42 BIOCONDA INFO (ERR) File "/opt/mambaforge/envs/bioconda/lib/python3.8/shutil.py", line 655, in _rmtree_safe_fd - 07:06:42 BIOCONDA INFO (ERR) _rmtree_safe_fd(dirfd, fullname, onerror) - 07:06:42 BIOCONDA INFO (ERR) File "/opt/mambaforge/envs/bioconda/lib/python3.8/shutil.py", line 655, in _rmtree_safe_fd - 07:06:42 BIOCONDA INFO (ERR) _rmtree_safe_fd(dirfd, fullname, onerror) - 07:06:42 BIOCONDA INFO (ERR) File "/opt/mambaforge/envs/bioconda/lib/python3.8/shutil.py", line 655, in _rmtree_safe_fd - 07:06:42 BIOCONDA INFO (ERR) _rmtree_safe_fd(dirfd, fullname, onerror) - 07:06:42 BIOCONDA INFO (ERR) File "/opt/mambaforge/envs/bioconda/lib/python3.8/shutil.py", line 675, in _rmtree_safe_fd - 07:06:42 BIOCONDA INFO (ERR) onerror(os.unlink, fullname, sys.exc_info()) - 07:06:42 BIOCONDA INFO (ERR) File "/opt/mambaforge/envs/bioconda/lib/python3.8/shutil.py", line 673, in _rmtree_safe_fd - 07:06:42 BIOCONDA INFO (ERR) os.unlink(entry.name, dir_fd=topfd) - 07:06:42 BIOCONDA INFO (ERR) PermissionError: [Errno 13] Permission denied: 'pcre2_set_callout.3' - 07:06:42 BIOCONDA ERROR COMMAND FAILED (exited with 1): mulled-build build-and-test bioconductor-musicatk=1.12.0--r43hdfd78af_0 -n biocontainers --test bash -c '/usr/local/env-execute true && . /usr/local/env-activate.sh && Rscript -e "library('"'"'musicatk'"'"')"' --channels conda-forge,file:///opt/mambaforge/envs/bioconda/conda-bld,bioconda,defaults --involucro-path /opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/bioconda_utils/involucro - - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/bioconda_utils/pkg_test.py", line 180, in test_package - p = utils.run(cmd, env=env, cwd=d, mask=False, live=live_logs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/bioconda_utils/utils.py", line 697, in run - raise sp.CalledProcessError(returncode, masked_cmds, output=output) - subprocess.CalledProcessError: Command '['mulled-build', 'build-and-test', 'bioconductor-musicatk=1.12.0--r43hdfd78af_0', '-n', 'biocontainers', '--test', 'bash -c \'/usr/local/env-execute true && . /usr/local/env-activate.sh && Rscript -e "library(\'"\'"\'musicatk\'"\'"\')"\'', '--channels', 'conda-forge,file:///opt/mambaforge/envs/bioconda/conda-bld,bioconda,defaults', '--involucro-path', '/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/bioconda_utils/involucro']' returned non-zero exit status 1. - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/lib/python3.8/shutil.py", line 673, in _rmtree_safe_fd - os.unlink(entry.name, dir_fd=topfd) - PermissionError: [Errno 13] Permission denied: 'pcre2_set_callout.3' - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/bioconda-utils", line 8, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/bioconda_utils/cli.py", line 1114, in main - argh.dispatch_commands([ - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/argh/dispatching.py", line 328, in dispatch_commands - dispatch(parser, *args, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/argh/dispatching.py", line 174, in dispatch - for line in lines: - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/argh/dispatching.py", line 277, in _execute_command - for line in result: - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/argh/dispatching.py", line 260, in _call - result = function(*positional, **keywords) - File "", line 2, in build - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/bioconda_utils/cli.py", line 137, in wrapper - func(*args, **kwargs) - File "", line 2, in build - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/bioconda_utils/cli.py", line 66, in wrapper - func(*args, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/bioconda_utils/cli.py", line 492, in build - success = build_recipes(recipe_folder, config, recipes, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/bioconda_utils/build.py", line 421, in build_recipes - res = build(recipe=recipe, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/bioconda_utils/build.py", line 185, in build - pkg_test.test_package(pkg_path, base_image=base_image, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/bioconda_utils/pkg_test.py", line 180, in test_package - p = utils.run(cmd, env=env, cwd=d, mask=False, live=live_logs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/tempfile.py", line 827, in __exit__ - self.cleanup() - File "/opt/mambaforge/envs/bioconda/lib/python3.8/tempfile.py", line 831, in cleanup - self._rmtree(self.name) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/tempfile.py", line 813, in _rmtree - _shutil.rmtree(name, onerror=onerror) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/shutil.py", line 718, in rmtree - _rmtree_safe_fd(fd, path, onerror) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/shutil.py", line 655, in _rmtree_safe_fd - _rmtree_safe_fd(dirfd, fullname, onerror) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/shutil.py", line 655, in _rmtree_safe_fd - _rmtree_safe_fd(dirfd, fullname, onerror) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/shutil.py", line 655, in _rmtree_safe_fd - _rmtree_safe_fd(dirfd, fullname, onerror) - [Previous line repeated 1 more time] - File "/opt/mambaforge/envs/bioconda/lib/python3.8/shutil.py", line 675, in _rmtree_safe_fd - onerror(os.unlink, fullname, sys.exc_info()) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/tempfile.py", line 798, in onerror - resetperms(_os.path.dirname(path)) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/tempfile.py", line 794, in resetperms - _os.chmod(path, 0o700) - PermissionError: [Errno 1] Operation not permitted: '/tmp/tmpeaviicao/build/dist/man/man3' - Error: Process completed with exit code 1. diff --git a/recipes/bioconductor-netpathminer/build_failure.osx-64.yaml b/recipes/bioconductor-netpathminer/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..43131ce3691f9 --- /dev/null +++ b/recipes/bioconductor-netpathminer/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 23cae448d4f716cd6f687090322e2d4d4738a88f5e747b922362e4635aa141fb # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/bioconductor-netpathminer_1717508392210/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/bioconductor-netpathminer_1717508392210/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/bioconductor-netpathminer_1717508392210/work + INFO: activate-gfortran_osx-64.sh made the following environmental changes: + DEBUG_FFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bioconductor-netpathminer-1.38.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -Og -g -Wall -Wextra -fcheck=all -fbacktrace -fimplicit-none -fvar-tracking-assignments + DEBUG_FORTRANFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bioconductor-netpathminer-1.38.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -Og -g -Wall -Wextra -fcheck=all -fbacktrace -fimplicit-none -fvar-tracking-assignments + F77=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + F90=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + F95=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + FC=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + FC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + FFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bioconductor-netpathminer-1.38.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + FORTRANFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bioconductor-netpathminer-1.38.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GFORTRAN=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bioconductor-netpathminer-1.38.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/bioconductor-netpathminer_1717508392210/work/conda_build.sh']' returned non-zero exit status 1. + CMAKE_ARGS=-DCMAKE_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bioconductor-netpathminer-1.38.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bioconductor-netpathminer-1.38.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bioconductor-netpathminer-1.38.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + INFO: activate_clang_osx-64.sh made the following environmental changes: + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + -CC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + -CMAKE_ARGS=-DCMAKE_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + -OBJC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + -CXX_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + checking for x86_64-apple-darwin13.4.0-gcc... x86_64-apple-darwin13.4.0-clang + checking whether the C compiler works... yes + checking for C compiler default output file name... a.out + checking for suffix of executables... + checking whether we are cross compiling... no + checking for suffix of object files... o + checking whether we are using the GNU C compiler... yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes + checking for x86_64-apple-darwin13.4.0-clang option to accept ISO C89... none needed + checking how to run the C preprocessor... x86_64-apple-darwin13.4.0-clang -E + checking for xmlParseFile in -lxml2... yes + checking for readSBML in -lsbml... no + untarring boost include tree... + SBML not found. + libXML2 found + checking for xml2-config... $BUILD_PREFIX/bin/xml2-config + configure: creating ./config.status + config.status: creating src/Makevars + x86_64-apple-darwin13.4.0-clang -std=gnu17 -I"$PREFIX/lib/R/include" -DNDEBUG -I. -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I$PREFIX/include -DHAVE_XML -I$BUILD_PREFIX/include/libxml2 -I$BUILD_PREFIX/include -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I$PREFIX/include -fPIC -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=/Users/runner/miniforge3/conda-bld/r-base-split_1714471796105/work=/usr/local/src/conda/r-base-4.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c PathRanker.cpp -o PathRanker.o +# Last 100 lines of the build log. diff --git a/recipes/bioconductor-netpathminer/meta.yaml b/recipes/bioconductor-netpathminer/meta.yaml index 50aca74364875..32eed2ae8d2b5 100644 --- a/recipes/bioconductor-netpathminer/meta.yaml +++ b/recipes/bioconductor-netpathminer/meta.yaml @@ -13,7 +13,7 @@ source: - 'https://depot.galaxyproject.org/software/bioconductor-{{ name|lower }}/bioconductor-{{ name|lower }}_{{ version }}_src_all.tar.gz' md5: 91cc0601961f682fcf1a2bed61eb6438 build: - number: 1 + number: 2 rpaths: - lib/R/lib/ - lib/ diff --git a/recipes/blockclust/build_failure.linux-64.yaml b/recipes/blockclust/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..35d56373c6ef8 --- /dev/null +++ b/recipes/blockclust/build_failure.linux-64.yaml @@ -0,0 +1,4 @@ +recipe_sha: a83f2429694887a6971d15f772139cb5ce13db02eca2b889b6c2620ed1db56ae # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: disk space +reason: GitHub Actions runs out of space trying to build all python versions. diff --git a/recipes/blockclust/meta.yaml b/recipes/blockclust/meta.yaml index 14c611f30d91b..155fa43879a8b 100644 --- a/recipes/blockclust/meta.yaml +++ b/recipes/blockclust/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 80ee2b32085b93966254083574b2bf3988771ffe28d73775be96a16cfda5579b build: - number: 0 + number: 1 skip: True # [osx or py2k] run_exports: - {{ pin_subpackage('blockclust', max_pin="x") }} diff --git a/recipes/boms/meta.yaml b/recipes/boms/meta.yaml index 4368691e40f3d..bb3cc10f65f7b 100644 --- a/recipes/boms/meta.yaml +++ b/recipes/boms/meta.yaml @@ -14,7 +14,7 @@ build: - {{ pin_subpackage('boms', max_pin="x.x") }} skip: true # [osx or py<39] script: {{ PYTHON }} -m pip install . -vv --no-build-isolation - number: 0 + number: 1 requirements: build: diff --git a/recipes/bowtie/meta.yaml b/recipes/bowtie/meta.yaml index b515beadf19d5..069e9a1bd54ef 100644 --- a/recipes/bowtie/meta.yaml +++ b/recipes/bowtie/meta.yaml @@ -13,7 +13,7 @@ source: build: skip: True # [py<30] - number: 7 + number: 8 run_exports: - {{ pin_subpackage("bowtie", max_pin="x.x") }} diff --git a/recipes/bracken/meta.yaml b/recipes/bracken/meta.yaml index 0e4c62f47a304..aa8518a741cfe 100644 --- a/recipes/bracken/meta.yaml +++ b/recipes/bracken/meta.yaml @@ -14,7 +14,7 @@ source: build: skip: True # [osx] - number: 0 + number: 1 run_exports: - {{ pin_subpackage('bracken', max_pin="x") }} diff --git a/recipes/bte/build_failure.linux-64.yaml b/recipes/bte/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..2822503c9a280 --- /dev/null +++ b/recipes/bte/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 4211007490dc3ef90b86c37ff9ef757664a65c2fd8a7c93e9a5a240fb77d17dd # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + ADDR2LINE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-addr2line + AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar + AS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-as + CXXFILT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cfilt + ELFEDIT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-elfedit + GPROF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gprof + LD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld + LD_GOLD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld.gold + NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-nm + OBJCOPY=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objcopy + OBJDUMP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objdump + RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib + READELF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-readelf + SIZE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-size + STRINGS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strings + STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip + INFO: activate-gcc_linux-64.sh made the following environmental changes: + BUILD=x86_64-conda-linux-gnu + CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bte-0.9.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr + CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot + CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu + CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu + CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bte-0.9.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + INFO: activate-gxx_linux-64.sh made the following environmental changes: + CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bte-0.9.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bte-0.9.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-g + Compiling src/bte.pyx because it changed. + [1/1] Cythonizing src/bte.pyx + running build_ext + building 'bte' extension + creating build + creating build/temp.linux-x86_64-cpython-310 + creating build/temp.linux-x86_64-cpython-310/src + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem $PREFIX/include -fPIC -O2 -isystem $PREFIX/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bte-0.9.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -fPIC -Isrc -I$BUILD_PREFIX/include/google/protobuf -I$BUILD_PREFIX/include/ -I$PREFIX/include/python3.10 -c src/bte.cpp -o build/temp.linux-x86_64-cpython-310/src/bte.o -std=c17 + In file included from src/bte.cpp:1307: + src/usher/src/matUtils/select.cpp: In function 'std::vector > get_short_paths(Mutation_Annotated_Tree::Tree*, std::vector >, int)': + src/usher/src/matUtils/select.cpp:327:75: warning: comparison of integer expressions of different signedness: 'std::unordered_map, long unsigned int>::mapped_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare] + 327 | if (path_lengths[n->parent->identifier] n->mutations.size() <= max_path) { + src/usher/src/matUtils/select.cpp: In function 'std::pair >, long unsigned int> get_closest_samples(Mutation_Annotated_Tree::Tree*, std::string, bool, size_t)': + src/usher/src/matUtils/select.cpp:551:24: warning: unused variable 'child_branch_length' [-Wunused-variable] + 551 | size_t child_branch_length = child_and_dist.second; + | ^~~~~~~~~~~~~~~~~~~ + src/bte.cpp: In function 'float __pyx_f_3bte_entropy(std::vector)': + src/bte.cpp:7680:28: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] + 7680 | __pyx_t_1 = (__pyx_v_i < __pyx_v_frequencies.size()); + | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ + src/bte.cpp: In function 'PyObject* __pyx_pf_3bte_6MATree_14from_newick_and_vcf(__pyx_obj_3bte_MATree*, PyObject*, PyObject*)': + src/bte.cpp:2242:51: error: cannot bind non-const lvalue reference of type 'std::string&' {aka 'std::__cxx11::basic_string&'} to an rvalue of type 'std::remove_reference&>::type' {aka 'std::__cxx11::basic_string'} + 2242 | #define __PYX_STD_MOVE_IF_SUPPORTED(x) std::move(x) + | ~~~~~~~~~^~~ + src/bte.cpp:14850:57: note: in expansion of macro '__PYX_STD_MOVE_IF_SUPPORTED' + 14850 | Mutation_Annotated_Tree::read_vcf((&__pyx_v_self->t), __PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_2), __pyx_v_missing, 1); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ + In file included from src/bte.cpp:1301: + src/usher/src/mutation_annotated_tree.cpp:1916:87: note: initializing argument 2 of 'void Mutation_Annotated_Tree::read_vcf(Tree*, std::string&, std::vector&, bool)' + 1916 | void Mutation_Annotated_Tree::read_vcf(Mutation_Annotated_Tree::Tree* T, std::string &vcf_filename, std::vector& missing_samples, bool create_new_mat) { + | ~~~~~~~~~~~~~^~~~~~~~~~~~ + src/bte.cpp: In function 'PyObject* __pyx_pf_3bte_6MATree_76simple_parsimony(__pyx_obj_3bte_MATree*, PyObject*)': + src/bte.cpp:24148:29: warning: comparison of integer expressions of different signedness: 'Py_ssize_t' {aka 'long int'} and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] + 24148 | __pyx_t_14 = (__pyx_t_5 == __pyx_v_nodes.size()); + | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~ + error: command '/opt/conda/conda-bld/bte_1717510742093/_build_env/bin/x86_64-conda-linux-gnu-cc' failed with exit code 1 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/bte_1717510742093/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/bte/build_failure.osx-64.yaml b/recipes/bte/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..78da5eb6d4d72 --- /dev/null +++ b/recipes/bte/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 4211007490dc3ef90b86c37ff9ef757664a65c2fd8a7c93e9a5a240fb77d17dd # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + /opt/mambaforge/envs/bioconda/conda-bld/bte_1717514888963/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED' + #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__)) + ^ + src/bte.cpp:29194:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations] + 0, /*tp_print*/ + ^ + /opt/mambaforge/envs/bioconda/conda-bld/bte_1717514888963/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here + Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int); + ^ + /opt/mambaforge/envs/bioconda/conda-bld/bte_1717514888963/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED' + #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__)) + ^ + src/bte.cpp:35245:5: warning: 'tp_print' is deprecated [-Wdeprecated-declarations] + 0, + ^ + /opt/mambaforge/envs/bioconda/conda-bld/bte_1717514888963/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here + Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int); + ^ + /opt/mambaforge/envs/bioconda/conda-bld/bte_1717514888963/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED' + #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__)) + ^ + 10 warnings and 1 error generated. + error: command '/opt/mambaforge/envs/bioconda/conda-bld/bte_1717514888963/_build_env/bin/x86_64-apple-darwin13.4.0-clang' failed with exit code 1 + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/bte_1717514888963/work + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/bte_1717514888963/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_ + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/bte_1717514888963/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/bte_1717514888963/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bte-0.9.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bte-0.9.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/bte_1717514888963/work/conda_build.sh']' returned non-zero exit status 1. + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bte-0.9.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bte-0.9.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + Compiling src/bte.pyx because it changed. + [1/1] Cythonizing src/bte.pyx + running build_ext + building 'bte' extension + creating build + creating build/temp.macosx-10.9-x86_64-cpython-38 + creating build/temp.macosx-10.9-x86_64-cpython-38/src + x86_64-apple-darwin13.4.0-clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem $PREFIX/include -fPIC -O2 -isystem $PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/bte-0.9.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Isrc -I$BUILD_PREFIX/include/google/protobuf -I$BUILD_PREFIX/include/ -I$PREFIX/include/python3.8 -c src/bte.cpp -o build/temp.macosx-10.9-x86_64-cpython-38/src/bte.o -std=c17 +# Last 100 lines of the build log. diff --git a/recipes/bte/meta.yaml b/recipes/bte/meta.yaml index 1f7b0ad946e1b..a63eac0201941 100644 --- a/recipes/bte/meta.yaml +++ b/recipes/bte/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 2 + number: 3 skip: true # [py < 38] requirements: diff --git a/recipes/btllib/meta.yaml b/recipes/btllib/meta.yaml index e981478394a87..0551b925a7393 100644 --- a/recipes/btllib/meta.yaml +++ b/recipes/btllib/meta.yaml @@ -11,7 +11,7 @@ source: build: skip: True # [py < 38 or win] - number: 1 + number: 2 run_exports: - {{ pin_subpackage('btllib', max_pin="x") }} diff --git a/recipes/bustools/meta.yaml b/recipes/bustools/meta.yaml index 1e1cf6991bd0f..d2bfdf335da0a 100644 --- a/recipes/bustools/meta.yaml +++ b/recipes/bustools/meta.yaml @@ -9,7 +9,7 @@ source: sha256: ad5816152644ee615316daecf5883183994bd7cc96e6c008439123f4cd750b1f build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('bustools', max_pin="x.x") }} diff --git a/recipes/bwapy/meta.yaml b/recipes/bwapy/meta.yaml index ccede89eab2be..6349f877323dd 100644 --- a/recipes/bwapy/meta.yaml +++ b/recipes/bwapy/meta.yaml @@ -10,8 +10,11 @@ source: folder: bwa build: - number: 7 - skip: True # [py<30] + number: 8 + # imp was removed from python 3.12 + skip: true # [py == 312 ] + run_exports: + - {{ pin_subpackage("bwapy", max_pin="x.x") }} requirements: build: diff --git a/recipes/bwread/build_failure.osx-64.yaml b/recipes/bwread/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..f798559bff6dc --- /dev/null +++ b/recipes/bwread/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: d4a1a31409c2e433d027814944f03df2f929f892fd27f10073f7abfed231289e # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + sorted_nearest [>=0.0.28 |>=0.0.30 ] with the potential options + sorted_nearest [0.0.28|0.0.29|0.0.30|0.0.31] would require + python >=2.7,<2.8.0a0 , which can be installed; + sorted_nearest [0.0.28|0.0.29|0.0.30|0.0.31] would require + python >=3.6,<3.7.0a0 , which can be installed; + sorted_nearest [0.0.28|0.0.29|0.0.30|0.0.31] would require + python >=3.7,<3.8.0a0 , which can be installed; + sorted_nearest [0.0.31|0.0.32|0.0.33|0.0.37] would require + python_abi 2.7.* *_cp27m, which can be installed; + sorted_nearest [0.0.31|0.0.32|0.0.33|0.0.37] would require + python_abi 3.6.* *_cp36m, which can be installed; + sorted_nearest [0.0.31|0.0.32|0.0.33|0.0.37] would require + python_abi 3.7.* *_cp37m, which can be installed; + sorted_nearest [0.0.31|0.0.32|0.0.33|0.0.37|0.0.39] would require + python_abi 3.8.* *_cp38, which can be installed; + sorted_nearest [0.0.32|0.0.33|0.0.37|0.0.39] would require + python_abi 3.9.* *_cp39, which can be installed; + sorted_nearest [0.0.37|0.0.39] would require + python_abi 3.10.* *_cp310, which can be installed; + pyranges [0.0.125|0.0.127|0.0.128|0.0.129] would require + sorted_nearest >=0.0.33 , which can be installed (as previously explained); + python_abi 3.12.* *_cp312 is not installable because it requires + python 3.12.* *_cpython, which conflicts with any installable versions previously reported. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build + create_build_envs(top_level_pkg, notest) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs + raise e + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs + environ.get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("sorted_nearest[version='>=0.0.28']"), MatchSpec("pyranges==0.0.53=py_0")} + Encountered problems while solving: + - package pyranges-0.0.53-py_0 requires sorted_nearest >=0.0.28, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + pyranges is installable with the potential options + pyranges [0.0.39|0.0.40|...|0.0.52] would require + python >=3.7,<3.8.0a0 , which can be installed; + pyranges [0.0.51|0.0.52] would require + python >=3.6,<3.7.0a0 , which can be installed; + pyranges [0.0.100|0.0.101|...|0.0.99] would require + sorted_nearest [>=0.0.28 |>=0.0.30 ] with the potential options + sorted_nearest [0.0.28|0.0.29|0.0.30|0.0.31] would require + python >=2.7,<2.8.0a0 , which can be installed; + sorted_nearest [0.0.28|0.0.29|0.0.30|0.0.31] would require + python >=3.6,<3.7.0a0 , which can be installed; + sorted_nearest [0.0.28|0.0.29|0.0.30|0.0.31] would require + python >=3.7,<3.8.0a0 , which can be installed; + sorted_nearest [0.0.31|0.0.32|0.0.33|0.0.37] would require + python_abi 2.7.* *_cp27m, which can be installed; + sorted_nearest [0.0.31|0.0.32|0.0.33|0.0.37] would require + python_abi 3.6.* *_cp36m, which can be installed; + sorted_nearest [0.0.31|0.0.32|0.0.33|0.0.37] would require + python_abi 3.7.* *_cp37m, which can be installed; + sorted_nearest [0.0.31|0.0.32|0.0.33|0.0.37|0.0.39] would require + python_abi 3.8.* *_cp38, which can be installed; + sorted_nearest [0.0.32|0.0.33|0.0.37|0.0.39] would require + python_abi 3.9.* *_cp39, which can be installed; + sorted_nearest [0.0.37|0.0.39] would require + python_abi 3.10.* *_cp310, which can be installed; + pyranges [0.0.125|0.0.127|0.0.128|0.0.129] would require + sorted_nearest >=0.0.33 , which can be installed (as previously explained); + python_abi 3.12.* *_cp312 is not installable because it requires + python 3.12.* *_cpython, which conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/bwread/meta.yaml b/recipes/bwread/meta.yaml index 501baff770c43..ad36e15aa5884 100644 --- a/recipes/bwread/meta.yaml +++ b/recipes/bwread/meta.yaml @@ -10,7 +10,7 @@ source: sha256: a6f524baf85a8c10c0de8e1d5874467816a32dccaa7b9f2b571c99ed6c449b16 build: - number: 1 + number: 2 skip: True # [py27] script: "{{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv" diff --git a/recipes/bx-python/meta.yaml b/recipes/bx-python/meta.yaml index 61d42af5848fa..372a44a916101 100644 --- a/recipes/bx-python/meta.yaml +++ b/recipes/bx-python/meta.yaml @@ -11,8 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 - skip: True # [py < 38] + number: 2 script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv run_exports: - {{ pin_subpackage(name|lower, max_pin='x.x') }} diff --git a/recipes/cage/meta.yaml b/recipes/cage/meta.yaml index 06adb1647769c..c5ec5e4c7cce3 100644 --- a/recipes/cage/meta.yaml +++ b/recipes/cage/meta.yaml @@ -7,7 +7,7 @@ source: sha256: 135abb4c769f8668e56e1f7c82bf98c68eccc3b387cd3b99baf18d851bd93d96 build: - number: 6 + number: 7 skip: True # [osx] requirements: diff --git a/recipes/cancerit-allelecount/meta.yaml b/recipes/cancerit-allelecount/meta.yaml index 1d6a650149506..3320289ef69da 100644 --- a/recipes/cancerit-allelecount/meta.yaml +++ b/recipes/cancerit-allelecount/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 5363ae12c2385c962728336a4498b1a29c9eaa3d4a24492d0debf897771cfd3c build: - number: 5 + number: 6 skip: True # [osx] requirements: diff --git a/recipes/cansam/build_failure.osx-64.yaml b/recipes/cansam/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..72a925f7a4077 --- /dev/null +++ b/recipes/cansam/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 9663bd7bb07c09fa8cf616bcc76809f94ceefde6ff20978d015ea94cc9e8ba94 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + class iterator : public std::iterator { + ^ + /opt/mambaforge/envs/bioconda/conda-bld/cansam_1717523242044/_build_env/bin/../include/c/v1/__iterator/iterator.h:24:29: note: 'iterator' has been explicitly marked deprecated here + struct _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX17 iterator + ^ + /opt/mambaforge/envs/bioconda/conda-bld/cansam_1717523242044/_build_env/bin/../include/c/v1/__config:1049:41: note: expanded from macro '_LIBCPP_DEPRECATED_IN_CXX17' + # define _LIBCPP_DEPRECATED_IN_CXX17 _LIBCPP_DEPRECATED + ^ + /opt/mambaforge/envs/bioconda/conda-bld/cansam_1717523242044/_build_env/bin/../include/c/v1/__config:1022:49: note: expanded from macro '_LIBCPP_DEPRECATED' + # define _LIBCPP_DEPRECATED __attribute__((__deprecated__)) + ^ + In file included from lib/samstream.cpp:39: + ./cansam/sam/alignment.h:404:17: warning: 'iterator' is deprecated [-Wdeprecated-declarations] + public std::iterator' has been explicitly marked deprecated here + struct _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX17 iterator + ^ + /opt/mambaforge/envs/bioconda/conda-bld/cansam_1717523242044/_build_env/bin/../include/c/v1/__config:1049:41: note: expanded from macro '_LIBCPP_DEPRECATED_IN_CXX17' + # define _LIBCPP_DEPRECATED_IN_CXX17 _LIBCPP_DEPRECATED + ^ + /opt/mambaforge/envs/bioconda/conda-bld/cansam_1717523242044/_build_env/bin/../include/c/v1/__config:1022:49: note: expanded from macro '_LIBCPP_DEPRECATED' + # define _LIBCPP_DEPRECATED __attribute__((__deprecated__)) + ^ + 3 warnings and 1 error generated. + make: *** [: lib/samstream.o] Error 1 + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/cansam_1717523242044/work + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/cansam_1717523242044/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/cansam_1717523242044/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/cansam_1717523242044/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cansam-21d64bb -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cansam-21d64bb -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/cansam_1717523242044/work/conda_build.sh']' returned non-zero exit status 2. + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cansam-21d64bb -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cansam-21d64bb -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cansam-21d64bb -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -c -o lib/alignment.o lib/alignment.cpp + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cansam-21d64bb -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -c -o lib/collection.o lib/collection.cpp + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cansam-21d64bb -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -c -o lib/header.o lib/header.cpp + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cansam-21d64bb -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -c -o lib/sambamio.o lib/sambamio.cpp + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cansam-21d64bb -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -c -o lib/samstream.o lib/samstream.cpp +# Last 100 lines of the build log. diff --git a/recipes/cansam/meta.yaml b/recipes/cansam/meta.yaml index 83f2006a3b6f4..27ce5e3a42cbe 100644 --- a/recipes/cansam/meta.yaml +++ b/recipes/cansam/meta.yaml @@ -7,7 +7,7 @@ source: md5: 017d2ebc7338be995af3b9e6056f5fe0 build: - number: 7 + number: 8 requirements: build: diff --git a/recipes/cassiopee/build_failure.osx-64.yaml b/recipes/cassiopee/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..9914ba234d248 --- /dev/null +++ b/recipes/cassiopee/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 51bbcd4a9b8308a55e32b84f7d357d77b0c8fd587d6903e70c8000a68552e440 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + make: *** [Makefile:146: all] Error 2 + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/cassiopee_1717516351394/work + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/cassiopee_1717516351394/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/cassiopee_1717516351394/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/cassiopee_1717516351394/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cassiopee-1.0.9 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + packages_from_this = build( + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/cassiopee_1717516351394/work/conda_build.sh']' returned non-zero exit status 2. + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cassiopee-1.0.9 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cassiopee-1.0.9 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cassiopee-1.0.9 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + -- The C compiler identification is Clang 16.0.6 + -- The CXX compiler identification is Clang 16.0.6 + -- Detecting C compiler ABI info + -- Detecting C compiler ABI info - done + -- Check for working C compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting C compile features + -- Detecting C compile features - done + -- Detecting CXX compiler ABI info + -- Detecting CXX compiler ABI info - done + -- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting CXX compile features + -- Detecting CXX compile features - done + -- Found Boost: $PREFIX/include (found version "1.85.0") found components: iostreams serialization regex + -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) + -- Found OpenMP_C: -fopenmp=libomp (found version "5.0") + -- Found OpenMP_CXX: -fopenmp=libomp (found version "5.0") + -- Found OpenMP: TRUE (found version "5.0") + -- Configuring done (4.8s) + -- Generating done (0.1s) + -- Build files have been written to: $SRC_DIR + [ 12%] Building CXX object src/CMakeFiles/cassie.dir/cassiopee.cxx.o + [ 25%] Linking CXX shared library ../lib/libcassie.dylib + [ 25%] Built target cassie + [ 37%] Building CXX object src/CMakeFiles/cassiopee.dir/cassie.cxx.o + [ 50%] Linking CXX executable ../bin/cassiopee + [ 50%] Built target cassiopee + [ 62%] Building CXX object src/CMakeFiles/cassiopeeknife.dir/knife.cxx.o + [ 75%] Linking CXX executable ../bin/cassiopeeknife + [ 75%] Built target cassiopeeknife + [ 87%] Building CXX object test/CMakeFiles/test_cassiopee.dir/test.cxx.o +# Last 100 lines of the build log. diff --git a/recipes/cassiopee/meta.yaml b/recipes/cassiopee/meta.yaml index e548787f9f512..4a81a492cb454 100644 --- a/recipes/cassiopee/meta.yaml +++ b/recipes/cassiopee/meta.yaml @@ -3,7 +3,7 @@ package: version: "1.0.9" build: - number: 6 + number: 7 source: url: https://github.com/osallou/cassiopee-c/archive/1.0.9.tar.gz diff --git a/recipes/cellprofiler/build_failure.linux-64.yaml b/recipes/cellprofiler/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..4fc9b5604f1b1 --- /dev/null +++ b/recipes/cellprofiler/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 3c02010a42e840b731d104e29ebd56082cedc1da36c80ba792045e1e2edefd71 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + - package python-javabridge-4.0.0-py36h8c4c3a4_0 requires python_abi 3.6.* *_cp36m, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + [32mpython-javabridge[0m is installable with the potential options + [32mpython-javabridge 4.0.0[0m would require + [32mpypy3.6 >=7.3.3 [0m, which can be installed; + [32mpython_abi 3.6 *_pypy36_pp73[0m, which can be installed; + [32mpython-javabridge 4.0.0[0m would require + [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; + [32mpython-javabridge 4.0.0[0m would require + [32mpython_abi 3.6 *_pypy36_pp73[0m, which can be installed; + [32mpython-javabridge 4.0.0[0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mpython-javabridge 4.0.0[0m would require + [32mpython_abi 3.7 *_pypy37_pp73[0m, which can be installed; + [32mpython-javabridge 4.0.0[0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mpython-javabridge [4.0.0|4.0.3][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mpython-javabridge 4.0.3[0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32mpython 3.11.* *_cpython[0m is requested and can be installed. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2308, in build + output_metas = expand_outputs([(m, need_source_download, need_reparse_in_env)]) + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 916, in expand_outputs + for output_dict, m in deepcopy(_m).get_output_metadata_set( + File "/opt/conda/lib/python3.10/site-packages/conda_build/metadata.py", line 2737, in get_output_metadata_set + conda_packages = finalize_outputs_pass( + File "/opt/conda/lib/python3.10/site-packages/conda_build/metadata.py", line 1095, in finalize_outputs_pass + fm = finalize_metadata( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 650, in finalize_metadata + build_unsat, host_unsat = add_upstream_pins( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 491, in add_upstream_pins + host_deps, host_unsat, extra_run_specs_from_host = _read_upstream_pin_files( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 444, in _read_upstream_pin_files + deps, precs, unsat = get_env_dependencies( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 156, in get_env_dependencies + precs = environ.get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("python-javabridge==4.0.0=py36h8c4c3a4_0"), MatchSpec("python_abi=3.6[build=*_cp36m]")} + Encountered problems while solving: + - package python-javabridge-4.0.0-py36h8c4c3a4_0 requires python_abi 3.6.* *_cp36m, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + [32mpython-javabridge[0m is installable with the potential options + [32mpython-javabridge 4.0.0[0m would require + [32mpypy3.6 >=7.3.3 [0m, which can be installed; + [32mpython_abi 3.6 *_pypy36_pp73[0m, which can be installed; + [32mpython-javabridge 4.0.0[0m would require + [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; + [32mpython-javabridge 4.0.0[0m would require + [32mpython_abi 3.6 *_pypy36_pp73[0m, which can be installed; + [32mpython-javabridge 4.0.0[0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mpython-javabridge 4.0.0[0m would require + [32mpython_abi 3.7 *_pypy37_pp73[0m, which can be installed; + [32mpython-javabridge 4.0.0[0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mpython-javabridge [4.0.0|4.0.3][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mpython-javabridge 4.0.3[0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32mpython 3.11.* *_cpython[0m is requested and can be installed. +# Last 100 lines of the build log. diff --git a/recipes/cellprofiler/build_failure.osx-64.yaml b/recipes/cellprofiler/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..8cc30b4cb724e --- /dev/null +++ b/recipes/cellprofiler/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 3c02010a42e840b731d104e29ebd56082cedc1da36c80ba792045e1e2edefd71 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + Could not solve for environment specs + The following packages are incompatible + python-javabridge is installable with the potential options + python-javabridge 4.0.0 would require + python_abi 3.6.* *_cp36m, which can be installed; + python-javabridge 4.0.0 would require + python_abi 3.6 *_pypy36_pp73, which can be installed; + python-javabridge 4.0.0 would require + python_abi 3.7.* *_cp37m, which can be installed; + python-javabridge 4.0.0 would require + python_abi 3.7 *_pypy37_pp73, which can be installed; + python-javabridge 4.0.0 would require + python_abi 3.8.* *_cp38, which can be installed; + python-javabridge [4.0.0|4.0.3] would require + python_abi 3.9.* *_cp39, which can be installed; + python-javabridge 4.0.3 would require + python_abi 3.10.* *_cp310, which can be installed; + python 3.12.* *_cpython is not installable because there are no viable options + python [3.12.0|3.12.1|3.12.2|3.12.3] would require + python_abi 3.12.* *_cp312, which conflicts with any installable versions previously reported; + python 3.12.0rc3 would require + _python_rc, which does not exist (perhaps a missing channel). + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2308, in build + output_metas = expand_outputs([(m, need_source_download, need_reparse_in_env)]) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 916, in expand_outputs + for output_dict, m in deepcopy(_m).get_output_metadata_set( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 2737, in get_output_metadata_set + conda_packages = finalize_outputs_pass( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 1095, in finalize_outputs_pass + fm = finalize_metadata( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 650, in finalize_metadata + build_unsat, host_unsat = add_upstream_pins( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 491, in add_upstream_pins + host_deps, host_unsat, extra_run_specs_from_host = _read_upstream_pin_files( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 444, in _read_upstream_pin_files + deps, precs, unsat = get_env_dependencies( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 156, in get_env_dependencies + precs = environ.get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("_python_rc"), MatchSpec("python==3.12.0rc3=rc3_h30d4d87_1_cpython")} + Encountered problems while solving: + - nothing provides _python_rc needed by python-3.12.0rc3-rc3_h30d4d87_1_cpython + + Could not solve for environment specs + The following packages are incompatible + python-javabridge is installable with the potential options + python-javabridge 4.0.0 would require + python_abi 3.6.* *_cp36m, which can be installed; + python-javabridge 4.0.0 would require + python_abi 3.6 *_pypy36_pp73, which can be installed; + python-javabridge 4.0.0 would require + python_abi 3.7.* *_cp37m, which can be installed; + python-javabridge 4.0.0 would require + python_abi 3.7 *_pypy37_pp73, which can be installed; + python-javabridge 4.0.0 would require + python_abi 3.8.* *_cp38, which can be installed; + python-javabridge [4.0.0|4.0.3] would require + python_abi 3.9.* *_cp39, which can be installed; + python-javabridge 4.0.3 would require + python_abi 3.10.* *_cp310, which can be installed; + python 3.12.* *_cpython is not installable because there are no viable options + python [3.12.0|3.12.1|3.12.2|3.12.3] would require + python_abi 3.12.* *_cp312, which conflicts with any installable versions previously reported; + python 3.12.0rc3 would require + _python_rc, which does not exist (perhaps a missing channel). +# Last 100 lines of the build log. diff --git a/recipes/cellprofiler/meta.yaml b/recipes/cellprofiler/meta.yaml index ee514fd59176f..e920a91d10b0f 100644 --- a/recipes/cellprofiler/meta.yaml +++ b/recipes/cellprofiler/meta.yaml @@ -10,7 +10,7 @@ source: sha256: "fae14f97efc69f09d9074e53fcebbf50e1eafbf4ebaeb3a3de8699f44c9bccd9" build: - number: 0 + number: 1 skip: True # [ py < 39 ] script: "{{ PYTHON }} -m pip install --no-deps --ignore-installed . -vv" run_exports: diff --git a/recipes/cellsnp-lite/build_failure.osx-64.yaml b/recipes/cellsnp-lite/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..a7e45f3dd22d7 --- /dev/null +++ b/recipes/cellsnp-lite/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: dd6a23ac00183a8e28b55aa29a5ede942ba044cd21b1bfb29d5e7425e0fd6d8c # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + checking for a BSD-compatible install... /usr/bin/install -c + checking whether build environment is sane... yes + checking for a thread-safe mkdir -p... ./install-sh -c -d + checking for gawk... no + checking for mawk... no + checking for nawk... no + checking for awk... awk + checking whether make sets $(MAKE)... yes + checking whether make supports nested variables... yes + checking for gawk... (cached) awk + checking for x86_64-apple-darwin13.4.0-gcc... x86_64-apple-darwin13.4.0-clang + checking whether the C compiler works... yes + checking for C compiler default output file name... a.out + checking for suffix of executables... + checking whether we are cross compiling... no + checking for suffix of object files... o + checking whether we are using the GNU C compiler... yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes + checking for x86_64-apple-darwin13.4.0-clang option to accept ISO C89... none needed + checking for style of include used by make... GNU + checking dependency style of x86_64-apple-darwin13.4.0-clang... gcc3 + checking for math.h... yes + checking for log in -lm... yes + checking for zlib.h... yes + checking for inflate in -lz... yes + checking for bzlib.h... yes + checking for BZ2_bzBuffToBuffCompress in -lbz2... yes + checking for lzma.h... yes + checking for lzma_easy_buffer_encode in -llzma... yes + checking for curl_easy_pause in -lcurl... yes + checking for HMAC in -lcrypto... yes + checking location of HTSlib installation... none found + checking for htslib/sam.h... yes + checking for sam_hdr_init in -lhts... yes + checking how to run the C preprocessor... x86_64-apple-darwin13.4.0-clang -E + checking for grep that handles long lines and -e... /usr/bin/grep + checking for egrep... /usr/bin/grep -E + checking for ANSI C header files... yes + checking for sys/types.h... yes + checking for sys/stat.h... yes + checking for stdlib.h... yes + checking for string.h... yes + checking for memory.h... yes + checking for strings.h... yes + checking for inttypes.h... yes + checking for stdint.h... yes + checking for unistd.h... yes + checking for stdlib.h... (cached) yes + checking for string.h... (cached) yes + checking for unistd.h... (cached) yes + checking for inline... inline + checking for int32_t... yes + checking for int8_t... yes + checking for size_t... yes + checking for ssize_t... yes + checking for uint32_t... yes + checking for uint8_t... yes + checking for stdlib.h... (cached) yes + checking for GNU libc compatible malloc... (cached) yes + checking for stdlib.h... (cached) yes + checking for GNU libc compatible realloc... (cached) yes + checking for memset... yes + checking for mkdir... yes + checking for pow... yes + checking for strdup... yes + checking that generated files are newer than configure... done + configure: creating ./config.status + config.status: creating Makefile + config.status: creating conf.h + config.status: executing depfiles commands + make all-am + make[1]: Entering directory '$SRC_DIR' + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-cellsnp.o -MD -MP -MF src/.deps/cellsnp_lite-cellsnp.Tpo -c -o src/cellsnp_lite-cellsnp.o test -f 'src/cellsnp.c' || echo './'src/cellsnp.c + mv -f src/.deps/cellsnp_lite-cellsnp.Tpo src/.deps/cellsnp_lite-cellsnp.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-csp.o -MD -MP -MF src/.deps/cellsnp_lite-csp.Tpo -c -o src/cellsnp_lite-csp.o test -f 'src/csp.c' || echo './'src/csp.c + mv -f src/.deps/cellsnp_lite-csp.Tpo src/.deps/cellsnp_lite-csp.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-csp_fetch.o -MD -MP -MF src/.deps/cellsnp_lite-csp_fetch.Tpo -c -o src/cellsnp_lite-csp_fetch.o test -f 'src/csp_fetch.c' || echo './'src/csp_fetch.c + mv -f src/.deps/cellsnp_lite-csp_fetch.Tpo src/.deps/cellsnp_lite-csp_fetch.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-csp_pileup.o -MD -MP -MF src/.deps/cellsnp_lite-csp_pileup.Tpo -c -o src/cellsnp_lite-csp_pileup.o test -f 'src/csp_pileup.c' || echo './'src/csp_pileup.c + mv -f src/.deps/cellsnp_lite-csp_pileup.Tpo src/.deps/cellsnp_lite-csp_pileup.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-jfile.o -MD -MP -MF src/.deps/cellsnp_lite-jfile.Tpo -c -o src/cellsnp_lite-jfile.o test -f 'src/jfile.c' || echo './'src/jfile.c + mv -f src/.deps/cellsnp_lite-jfile.Tpo src/.deps/cellsnp_lite-jfile.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-jsam.o -MD -MP -MF src/.deps/cellsnp_lite-jsam.Tpo -c -o src/cellsnp_lite-jsam.o test -f 'src/jsam.c' || echo './'src/jsam.c + mv -f src/.deps/cellsnp_lite-jsam.Tpo src/.deps/cellsnp_lite-jsam.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-jstring.o -MD -MP -MF src/.deps/cellsnp_lite-jstring.Tpo -c -o src/cellsnp_lite-jstring.o test -f 'src/jstring.c' || echo './'src/jstring.c + mv -f src/.deps/cellsnp_lite-jstring.Tpo src/.deps/cellsnp_lite-jstring.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-mplp.o -MD -MP -MF src/.deps/cellsnp_lite-mplp.Tpo -c -o src/cellsnp_lite-mplp.o test -f 'src/mplp.c' || echo './'src/mplp.c + mv -f src/.deps/cellsnp_lite-mplp.Tpo src/.deps/cellsnp_lite-mplp.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-snp.o -MD -MP -MF src/.deps/cellsnp_lite-snp.Tpo -c -o src/cellsnp_lite-snp.o test -f 'src/snp.c' || echo './'src/snp.c + mv -f src/.deps/cellsnp_lite-snp.Tpo src/.deps/cellsnp_lite-snp.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-thpool.o -MD -MP -MF src/.deps/cellsnp_lite-thpool.Tpo -c -o src/cellsnp_lite-thpool.o test -f 'src/thpool.c' || echo './'src/thpool.c + make[1]: Leaving directory '$SRC_DIR' +# Last 100 lines of the build log. diff --git a/recipes/cellsnp-lite/meta.yaml b/recipes/cellsnp-lite/meta.yaml index e1bd45d54ece0..5a2d55ecac7cd 100644 --- a/recipes/cellsnp-lite/meta.yaml +++ b/recipes/cellsnp-lite/meta.yaml @@ -10,7 +10,7 @@ source: sha256: {{ sha256 }} build: - number: 2 + number: 3 #skip: True # [osx] requirements: diff --git a/recipes/centrosome/build_failure.osx-64.yaml b/recipes/centrosome/build_failure.osx-64.yaml deleted file mode 100644 index cce4bed7d922b..0000000000000 --- a/recipes/centrosome/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: a4f5df4eb62cc091249a58e900ae6f4a2840736323d0ff2c71ae5d881fc2eb20 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |- - SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack - SIZE=x86_64-apple-darwin13.4.0-size - STRINGS=x86_64-apple-darwin13.4.0-strings - STRIP=x86_64-apple-darwin13.4.0-strip - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 - ac_cv_func_malloc_0_nonnull=yes - ac_cv_func_realloc_0_nonnull=yes - build_alias=x86_64-apple-darwin13.4.0 - host_alias=x86_64-apple-darwin13.4.0 - INFO: activate_clangxx_osx-64.sh made the following environmental changes: - CLANGXX=x86_64-apple-darwin13.4.0-clang - CXX=x86_64-apple-darwin13.4.0-clang - CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fPIE -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/centrosome-1.2.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fPIE -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/centrosome-1.2.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - Processing $SRC_DIR - Preparing metadata (pyproject.toml): started - Preparing metadata (pyproject.toml): finished with status 'done' - Building wheels for collected packages: centrosome - Building wheel for centrosome (pyproject.toml): started - Building wheel for centrosome (pyproject.toml): finished with status 'error' - error: subprocess-exited-with-error - - Building wheel for centrosome (pyproject.toml) did not run successfully. - exit code: 1 - > [50 lines of output] - running bdist_wheel - running build - running build_py - creating build - creating build/lib.macosx-10.9-x86_64-cpython-310 - creating build/lib.macosx-10.9-x86_64-cpython-310/centrosome - copying centrosome/radial_power_spectrum.py -> build/lib.macosx-10.9-x86_64-cpython-310/centrosome - copying centrosome/princomp.py -> build/lib.macosx-10.9-x86_64-cpython-310/centrosome - copying centrosome/zernike.py -> build/lib.macosx-10.9-x86_64-cpython-310/centrosome - copying centrosome/index.py -> build/lib.macosx-10.9-x86_64-cpython-310/centrosome - copying centrosome/rankorder.py -> build/lib.macosx-10.9-x86_64-cpython-310/centrosome - copying centrosome/bg_compensate.py -> build/lib.macosx-10.9-x86_64-cpython-310/centrosome - copying centrosome/__init__.py -> build/lib.macosx-10.9-x86_64-cpython-310/centrosome - Failed to build centrosome - copying centrosome/cpmorphology.py -> build/lib.macosx-10.9-x86_64-cpython-310/centrosome - copying centrosome/threshold.py -> build/lib.macosx-10.9-x86_64-cpython-310/centrosome - copying centrosome/mode.py -> build/lib.macosx-10.9-x86_64-cpython-310/centrosome - copying centrosome/watershed.py -> build/lib.macosx-10.9-x86_64-cpython-310/centrosome - copying centrosome/outline.py -> build/lib.macosx-10.9-x86_64-cpython-310/centrosome - copying centrosome/kirsch.py -> build/lib.macosx-10.9-x86_64-cpython-310/centrosome - copying centrosome/smooth.py -> build/lib.macosx-10.9-x86_64-cpython-310/centrosome - copying centrosome/filter.py -> build/lib.macosx-10.9-x86_64-cpython-310/centrosome - copying centrosome/haralick.py -> build/lib.macosx-10.9-x86_64-cpython-310/centrosome - copying centrosome/fastemd.py -> build/lib.macosx-10.9-x86_64-cpython-310/centrosome - copying centrosome/otsu.py -> build/lib.macosx-10.9-x86_64-cpython-310/centrosome - copying centrosome/neighmovetrack.py -> build/lib.macosx-10.9-x86_64-cpython-310/centrosome - copying centrosome/propagate.py -> build/lib.macosx-10.9-x86_64-cpython-310/centrosome - copying centrosome/lapjv.py -> build/lib.macosx-10.9-x86_64-cpython-310/centrosome - running build_ext - building 'centrosome._propagate' extension - creating build/temp.macosx-10.9-x86_64-cpython-310 - creating build/temp.macosx-10.9-x86_64-cpython-310/centrosome - x86_64-apple-darwin13.4.0-clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/mambaforge/envs/bioconda/conda-bld/centrosome_1685547212210/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/include -fPIC -O2 -isystem /opt/mambaforge/envs/bioconda/conda-bld/centrosome_1685547212210/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fPIE -fstack-protector-strong -O2 -pipe -isystem /opt/mambaforge/envs/bioconda/conda-bld/centrosome_1685547212210/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/include -fdebug-prefix-map=/opt/mambaforge/envs/bioconda/conda-bld/centrosome_1685547212210/work=/usr/local/src/conda/centrosome-1.2.1 -fdebug-prefix-map=/opt/mambaforge/envs/bioconda/conda-bld/centrosome_1685547212210/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla=/usr/local/src/conda-prefix -D_FORTIFY_SOURCE=2 -isystem /opt/mambaforge/envs/bioconda/conda-bld/centrosome_1685547212210/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/include -mmacosx-version-min=10.9 -I/opt/mambaforge/envs/bioconda/conda-bld/centrosome_1685547212210/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.10/site-packages/numpy/core/include -Icentrosome/include -I/opt/mambaforge/envs/bioconda/conda-bld/centrosome_1685547212210/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/include/python3.10 -c centrosome/_propagate.c -o build/temp.macosx-10.9-x86_64-cpython-310/centrosome/_propagate.o - In file included from centrosome/_propagate.c:761: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/centrosome_1685547212210/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.10/site-packages/numpy/core/include/numpy/arrayobject.h:4: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/centrosome_1685547212210/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.10/site-packages/numpy/core/include/numpy/ndarrayobject.h:12: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/centrosome_1685547212210/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.10/site-packages/numpy/core/include/numpy/ndarraytypes.h:1969: - /opt/mambaforge/envs/bioconda/conda-bld/centrosome_1685547212210/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.10/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-W#warnings] - #warning "Using deprecated NumPy API, disable it with " \ - ^ - centrosome/_propagate.c:6438:3: error: incompatible pointer to integer conversion returning 'void *' from a function with result type 'int' [-Wint-conversion] - import_array(); - ^~~~~~~~~~~~~~ - /opt/mambaforge/envs/bioconda/conda-bld/centrosome_1685547212210/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.10/site-packages/numpy/core/include/numpy/__multiarray_api.h:1532:151: note: expanded from macro 'import_array' - #define import_array() {if (_import_array() < 0) {PyErr_Print(); PyErr_SetString(PyExc_ImportError, "numpy.core.multiarray failed to import"); return NULL; } } - ^~~~ - /opt/mambaforge/envs/bioconda/conda-bld/centrosome_1685547212210/_build_env/lib/clang/15.0.7/include/stddef.h:89:16: note: expanded from macro 'NULL' - # define NULL ((void*)0) - ^~~~~~~~~~ - 1 warning and 1 error generated. - error: command '/opt/mambaforge/envs/bioconda/conda-bld/centrosome_1685547212210/_build_env/bin/x86_64-apple-darwin13.4.0-clang' failed with exit code 1 - [end of output] - - note: This error originates from a subprocess, and is likely not a problem with pip. - ERROR: Failed building wheel for centrosome - ERROR: Could not build wheels for centrosome, which is required to install pyproject.toml-based projects - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/centrosome_1685547212210/work/conda_build.sh']' returned non-zero exit status 1. -# Last 100 lines of the build log. diff --git a/recipes/centrosome/meta.yaml b/recipes/centrosome/meta.yaml index 903b2211dab07..856557b5be116 100644 --- a/recipes/centrosome/meta.yaml +++ b/recipes/centrosome/meta.yaml @@ -10,7 +10,7 @@ source: sha256: bb69cd2d0f9df7976710be72c2269368588da36724537657f7d88b6d827456bf build: - number: 0 + number: 1 skip: True # [py<30] script: CFLAGS="$CFLAGS -Wno-error=int-conversion" python -m pip install --no-deps --ignore-installed . -vv run_exports: diff --git a/recipes/cgat-apps/build_failure.linux-64.yaml b/recipes/cgat-apps/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..e3ce08b25b4e4 --- /dev/null +++ b/recipes/cgat-apps/build_failure.linux-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: cd4db28503c1e8d834aba9be11a1d56ca31801f1fcbbef8169312e7476bc9123 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: dependency issue +log: |2- + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("python[version='>=3.7,<3.8.0a0']"), MatchSpec("alignlib-lite==0.3=py37h3f2a3d2_2")} + Encountered problems while solving: + - package alignlib-lite-0.3-py37h3f2a3d2_2 requires python >=3.7,<3.8.0a0, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + [32malignlib-lite[0m is installable with the potential options + [32malignlib-lite 0.3[0m would require + [32mpython >=3.7,<3.8.0a0 [0m with the potential options + [32mpython [2.7.15|3.5.5|3.6.6|3.7.0][0m would require + [32mopenssl >=1.0.2o,<1.0.3a [0m, which can be installed; + [32mpython [2.7.15|3.6.6|3.6.7|3.7.0|3.7.1][0m would require + [32mopenssl >=1.0.2p,<1.0.3a [0m, which can be installed; + [32mpython [2.7.15|3.6.7|...|3.7.6][0m would require + [32mopenssl >=1.1.1a,<1.1.2a [0m, which can be installed; + [32mpypy3.6 7.3.0.* [0m with the potential options + [32mpypy3.6 7.3.0[0m would require + [32mopenssl >=1.1.1a,<1.1.2a [0m, which can be installed; + [32mpypy3.6 7.3.0[0m would require + [32mopenssl >=1.1.1d,<1.1.2a [0m, which can be installed; + [32mpypy3.6 7.3.0[0m would require + [32mopenssl >=1.1.1e,<1.1.2a [0m, which can be installed; + [32mpython 3.7.10[0m would require + [32mpypy3.7 [7.3.4.* |7.3.5.* ][0m with the potential options + [32mpypy3.7 [7.3.4|7.3.5][0m would require + [32mopenssl >=1.1.1k,<1.1.2a [0m, which can be installed; + [32mpypy3.7 7.3.5[0m would require + [32mopenssl >=1.1.1l,<1.1.2a [0m, which can be installed; + [32mpython [3.6.13|3.6.15|3.7.10|3.7.12][0m would require + [32mopenssl >=1.1.1l,<1.1.2a [0m, which can be installed; + [32mpython [3.7.10|3.7.12][0m, which can be installed; + [32mpython [3.6.13|3.7.10][0m would require + [32mopenssl >=1.1.1j,<1.1.2a [0m, which can be installed; + [32mpython [3.6.12|3.7.5|3.7.9][0m would require + [32mopenssl >=1.1.1i,<1.1.2a [0m, which can be installed; + [32mpypy3.6 7.3.3.* [0m, which requires + [32mopenssl >=1.1.1i,<1.1.2a [0m, which can be installed; + [32mpypy3.7 7.3.3.* [0m, which requires + [32mopenssl >=1.1.1i,<1.1.2a [0m, which can be installed; + [32mpython [3.6.10|3.6.11|3.7.6|3.7.8][0m would require + [32mopenssl >=1.1.1g,<1.1.2a [0m, which can be installed; + [32mpython 3.7.6[0m would require + [32mopenssl >=1.1.1e,<1.1.2a [0m, which can be installed; + [32mpython [3.6.11|3.6.12|3.6.9|3.7.8|3.7.9][0m would require + [32mopenssl >=1.1.1h,<1.1.2a [0m, which can be installed; + [32mpypy3.6 7.3.2.* [0m, which requires + [32mopenssl >=1.1.1h,<1.1.2a [0m, which can be installed; + [32malignlib-lite [0.2.3|0.3][0m would require + [32mpython [2.7* |3.6* |>=2.7,<2.8.0a0 |>=3.6,<3.7.0a0 ][0m with the potential options + [32mpython [2.7.15|3.5.5|3.6.6|3.7.0][0m, which can be installed (as previously explained); + [32mpython [2.7.15|3.6.6|3.6.7|3.7.0|3.7.1][0m, which can be installed (as previously explained); + [32mpython [2.7.15|3.6.7|...|3.7.6][0m, which can be installed (as previously explained); + [32mpython [3.6.13|3.6.15|3.7.10|3.7.12][0m, which can be installed (as previously explained); + [32mpython [3.6.13|3.7.10][0m, which can be installed (as previously explained); + [32mpython [3.6.12|3.7.5|3.7.9][0m, which can be installed (as previously explained); + [32mpython [3.6.10|3.6.11|3.7.6|3.7.8][0m, which can be installed (as previously explained); + [32mpython [3.6.11|3.6.12|3.6.9|3.7.8|3.7.9][0m, which can be installed (as previously explained); + [32mpython [2.7.12|2.7.13|...|3.6.5][0m would require + [32mopenssl [1.0* |1.0.* ][0m, which can be installed; + [32mpython [3.6.10|3.6.9][0m would require + [32mopenssl >=1.1.1f,<1.1.2a [0m, which can be installed; + [32mpypy3.6 7.3.1.* [0m, which requires + [32mopenssl >=1.1.1f,<1.1.2a [0m, which can be installed; + [32mpython [3.6.10|3.6.9][0m would require + [32mopenssl >=1.1.1d,<1.1.2a [0m, which can be installed; + [32malignlib-lite [0.2.3|0.3][0m would require + [32mpython [3.4* |3.5* |>=3.5,<3.6.0a0 ][0m, which can be installed (as previously explained); + [32malignlib-lite 0.3[0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32malignlib-lite 0.3[0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32malignlib-lite 0.3[0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32malignlib-lite 0.3[0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mpysam >=0.22.1,<0.23.0a0 [0m is installable with the potential options + [32mpysam 0.22.1[0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mpysam 0.22.1[0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [31mpysam 0.22.1[0m would require + [31mopenssl >=3.3.1,<4.0a0 [0m, which conflicts with any installable versions previously reported; + [32mpysam 0.22.1[0m would require + [32mpython_abi 3.12.* *_cp312[0m, which can be installed; + [32mpysam 0.22.1[0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [31mpython >=3.11,<3.12.0a0 [0m is not installable because there are no viable options + [31mpython [3.11.0|3.11.1|...|3.11.9][0m would require + [31mpython_abi 3.11.* *_cp311[0m, which conflicts with any installable versions previously reported; + [31mpython 3.11.0[0m would require + [32mopenssl >=1.1.1q,<1.1.2a [0m, which can be installed; + [31mpython_abi 3.11.* *_cp311[0m, which conflicts with any installable versions previously reported; + [31mpython 3.11.0[0m would require + [32mopenssl >=1.1.1s,<1.1.2a [0m, which can be installed; + [31mpython_abi 3.11.* *_cp311[0m, which conflicts with any installable versions previously reported; + [31mpython_abi 3.11.* *_cp311[0m is not installable because it conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/cgat-apps/build_failure.osx-64.yaml b/recipes/cgat-apps/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..63feff1b5e2d5 --- /dev/null +++ b/recipes/cgat-apps/build_failure.osx-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: cd4db28503c1e8d834aba9be11a1d56ca31801f1fcbbef8169312e7476bc9123 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: dependency issue +log: |2- + alignlib-lite 0.3 would require + python_abi 3.7.* *_cp37m, which can be installed; + alignlib-lite 0.3 would require + python >=3.7,<3.8.0a0 , which can be installed; + alignlib-lite 0.3 would require + python_abi 3.8.* *_cp38, which can be installed; + alignlib-lite 0.3 would require + python_abi 3.9.* *_cp39, which can be installed; + pysam >=0.22.1,<0.23.0a0 is installable with the potential options + pysam 0.22.1 would require + xz >=5.2.6,<6.0a0 , which conflicts with any installable versions previously reported; + pysam 0.22.1 would require + python_abi 3.12.* *_cp312, which can be installed; + python >=3.11,<3.12.0a0 is not installable because it requires + python_abi 3.11.* *_cp311, which conflicts with any installable versions previously reported; + python_abi 3.11.* *_cp311 is not installable because it conflicts with any installable versions previously reported. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build + create_build_envs(top_level_pkg, notest) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs + raise e + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs + environ.get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("alignlib-lite==0.2.3=py27_1"), MatchSpec("python=2.7")} + Encountered problems while solving: + - package alignlib-lite-0.2.3-py27_1 requires python 2.7*, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + alignlib-lite is installable with the potential options + alignlib-lite [0.2.3|0.3] would require + python [2.7* |>=2.7,<2.8.0a0 ], which can be installed; + alignlib-lite [0.2.3|0.3] would require + python 3.4* , which can be installed; + alignlib-lite [0.2.3|0.3] would require + python [3.5* |>=3.5,<3.6.0a0 ] with the potential options + python [3.5.1|3.5.2] would require + xz 5.0.* , which can be installed; + python [3.5.2|3.5.3|3.5.4|3.5.5], which can be installed; + alignlib-lite 0.3 would require + python_abi 2.7.* *_cp27m, which can be installed; + alignlib-lite 0.3 would require + python_abi 3.10.* *_cp310, which can be installed; + alignlib-lite 0.3 would require + python 3.6* , which can be installed; + alignlib-lite 0.3 would require + python >=3.6,<3.7.0a0 , which can be installed; + alignlib-lite 0.3 would require + python_abi 3.6.* *_cp36m, which can be installed; + alignlib-lite 0.3 would require + python_abi 3.7.* *_cp37m, which can be installed; + alignlib-lite 0.3 would require + python >=3.7,<3.8.0a0 , which can be installed; + alignlib-lite 0.3 would require + python_abi 3.8.* *_cp38, which can be installed; + alignlib-lite 0.3 would require + python_abi 3.9.* *_cp39, which can be installed; + pysam >=0.22.1,<0.23.0a0 is installable with the potential options + pysam 0.22.1 would require + xz >=5.2.6,<6.0a0 , which conflicts with any installable versions previously reported; + pysam 0.22.1 would require + python_abi 3.12.* *_cp312, which can be installed; + python >=3.11,<3.12.0a0 is not installable because it requires + python_abi 3.11.* *_cp311, which conflicts with any installable versions previously reported; + python_abi 3.11.* *_cp311 is not installable because it conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/cgat-apps/meta.yaml b/recipes/cgat-apps/meta.yaml index fa2fc24eb1ff5..4cf264a7950fe 100644 --- a/recipes/cgat-apps/meta.yaml +++ b/recipes/cgat-apps/meta.yaml @@ -11,7 +11,8 @@ source: build: - number: 1 + number: 2 + skip: true # [py == 312] run_exports: - {{ pin_subpackage('cgat-apps', max_pin="x.x") }} entry_points: diff --git a/recipes/cgpbigwig/meta.yaml b/recipes/cgpbigwig/meta.yaml index 33b1a00eb46dc..635fbbd95bbf2 100644 --- a/recipes/cgpbigwig/meta.yaml +++ b/recipes/cgpbigwig/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 7 + number: 8 skip: True # [osx] source: diff --git a/recipes/cgranges/meta.yaml b/recipes/cgranges/meta.yaml index 6ee6024d92d26..1a43ace782623 100644 --- a/recipes/cgranges/meta.yaml +++ b/recipes/cgranges/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 skip: True # [py27] script: {{ PYTHON }} -m pip install --no-deps --no-build-isolation -vvv . run_exports: diff --git a/recipes/chia-rep/build_failure.linux-64.yaml b/recipes/chia-rep/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..2da8006503a6b --- /dev/null +++ b/recipes/chia-rep/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 8ff458bbc184c34e9233f6597ebad2bc7eb9de8afd151614a49ac3ad0787623f # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + reading manifest file 'ChIA_Rep.egg-info/SOURCES.txt' + reading manifest template 'MANIFEST.in' + adding license file 'LICENSE' + writing manifest file 'ChIA_Rep.egg-info/SOURCES.txt' + copying chia_rep/util.c -> build/lib.linux-x86_64-cpython-312/chia_rep + copying chia_rep/util.pyx -> build/lib.linux-x86_64-cpython-312/chia_rep + running build_ext + building 'chia_rep.util' extension + creating build/temp.linux-x86_64-cpython-312 + creating build/temp.linux-x86_64-cpython-312/chia_rep + /opt/conda/conda-bld/chia-rep_1717892898024/_build_env/bin/x86_64-conda-linux-gnu-cc -fno-strict-overflow -DNDEBUG -O2 -Wall -fPIC -O2 -isystem /opt/conda/conda-bld/chia-rep_1717892898024/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include -fPIC -O2 -isystem /opt/conda/conda-bld/chia-rep_1717892898024/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /opt/conda/conda-bld/chia-rep_1717892898024/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include -fdebug-prefix-map=/opt/conda/conda-bld/chia-rep_1717892898024/work=/usr/local/src/conda/chia-rep-3.1.1 -fdebug-prefix-map=/opt/conda/conda-bld/chia-rep_1717892898024/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac=/usr/local/src/conda-prefix -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/conda-bld/chia-rep_1717892898024/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include -fPIC -I/opt/conda/conda-bld/chia-rep_1717892898024/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/python3.12 -c chia_rep/util.c -o build/temp.linux-x86_64-cpython-312/chia_rep/util.o + chia_rep/util.c:211:12: fatal error: longintrepr.h: No such file or directory + 211 | #include "longintrepr.h" + | ^~~~~~~~~~~~~~~ + compilation terminated. + error: command '/opt/conda/conda-bld/chia-rep_1717892898024/_build_env/bin/x86_64-conda-linux-gnu-cc' failed with exit code 1 + [1;31merror[0m: [1msubprocess-exited-with-error[0m + + [31m[0m [32mpython setup.py bdist_wheel[0m did not run successfully. + [31m[0m exit code: [1;36m1[0m + [31m>[0m See above for output. + + [1;35mnote[0m: This error originates from a subprocess, and is likely not a problem with pip. + [1;35mfull command[0m: [34m/opt/conda/conda-bld/chia-rep_1717892898024/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/bin/python -u -c '[0m + [34m exec(compile('"'"''"'"''"'"'[0m + [34m # This is -- a caller that pip uses to run setup.py[0m + [34m #[0m + [34m # - It imports setuptools before invoking setup.py, to enable projects that directly[0m + [34m # import from distutils.core to work with newer packaging standards.[0m + [34m # - It provides a clear error message when setuptools is not installed.[0m + [34m # - It sets sys.argv[0] to the underlying setup.py, when invoking setup.py so[0m + [34m # setuptools doesn'"'"'t think the script is -c. This avoids the following warning:[0m + [34m # manifest_maker: standard file '"'"'-c'"'"' not found".[0m + [34m # - It generates a shim setup.py, for handling setup.cfg-only projects.[0m + [34m import os, sys, tokenize[0m + [34m [0m + [34m try:[0m + [34m import setuptools[0m + [34m except ImportError as error:[0m + [34m print([0m + [34m "ERROR: Can not execute setup.py since setuptools is not available in "[0m + [34m "the build environment.",[0m + [34m file=sys.stderr,[0m + [34m )[0m + [34m sys.exit(1)[0m + [34m [0m + [34m __file__ = %r[0m + [34m sys.argv[0] = __file__[0m + [34m [0m + [34m if os.path.exists(__file__):[0m + [34m filename = __file__[0m + [34m with tokenize.open(__file__) as f:[0m + [34m setup_py_code = f.read()[0m + [34m else:[0m + [34m filename = ""[0m + [34m setup_py_code = "from setuptools import setup; setup()"[0m + [34m [0m + [34m exec(compile(setup_py_code, filename, "exec"))[0m + [34m '"'"''"'"''"'"' % ('"'"'/opt/conda/conda-bld/chia-rep_1717892898024/work/setup.py'"'"',), "", "exec"))' bdist_wheel -d /tmp/pip-wheel-f89o_ox3[0m + [1;35mcwd[0m: /opt/conda/conda-bld/chia-rep_1717892898024/work/ + Building wheel for ChIA-Rep (setup.py): finished with status 'error' + [31m ERROR: Failed building wheel for ChIA-Rep[0m[31m + [0m Running setup.py clean for ChIA-Rep + Running command python setup.py clean + running clean + removing 'build/temp.linux-x86_64-cpython-312' (and everything under it) + removing 'build/lib.linux-x86_64-cpython-312' (and everything under it) + 'build/bdist.linux-x86_64' does not exist -- can't clean it + 'build/scripts-3.12' does not exist -- can't clean it + removing 'build' + Failed to build ChIA-Rep + [31mERROR: Could not build wheels for ChIA-Rep, which is required to install pyproject.toml-based projects[0m[31m + [0mException information: + Traceback (most recent call last): + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper + status = run_func(*args) + ^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper + return func(self, options, args) + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/commands/install.py", line 429, in run + raise InstallationError( + pip._internal.exceptions.InstallationError: Could not build wheels for ChIA-Rep, which is required to install pyproject.toml-based projects + Removed build tracker: '/tmp/pip-build-tracker-hxy4xhuy' + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/chia-rep_1717892898024/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/chia-rep/build_failure.osx-64.yaml b/recipes/chia-rep/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..943283b5e9828 --- /dev/null +++ b/recipes/chia-rep/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 8ff458bbc184c34e9233f6597ebad2bc7eb9de8afd151614a49ac3ad0787623f # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/chia-rep_1717683959380/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/chia-rep_1717683959380/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/chia-rep_1717683959380/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/chia-rep-3.1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/chia-rep-3.1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/chia-rep_1717683959380/work/conda_build.sh']' returned non-zero exit status 1. + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/chia-rep-3.1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/chia-rep-3.1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + Using pip 24.0 from $PREFIX/lib/python3.11/site-packages/pip (python 3.11) + Non-user install because user site-packages disabled + Ignoring indexes: https://pypi.org/simple + Created temporary directory: /private/tmp/pip-build-tracker-el8qa0rn + Initialized build tracking at /private/tmp/pip-build-tracker-el8qa0rn + Created build tracker: /private/tmp/pip-build-tracker-el8qa0rn + Entered build tracker: /private/tmp/pip-build-tracker-el8qa0rn + Created temporary directory: /private/tmp/pip-install-19ejc1lj + Created temporary directory: /private/tmp/pip-ephem-wheel-cache-h_bxkjw_ + Processing $SRC_DIR + Added file://$SRC_DIR to build tracker '/private/tmp/pip-build-tracker-el8qa0rn' + Running setup.py (path:$SRC_DIR/setup.py) egg_info for package from file://$SRC_DIR + Created temporary directory: /private/tmp/pip-pip-egg-info-wh38j9_a + Preparing metadata (setup.py): started + Preparing metadata (setup.py): finished with status 'done' + Source in $SRC_DIR has version 3.1.1, which satisfies requirement ChIA-Rep==3.1.1 from file://$SRC_DIR + Removed ChIA-Rep==3.1.1 from file://$SRC_DIR from build tracker '/private/tmp/pip-build-tracker-el8qa0rn' + Created temporary directory: /private/tmp/pip-unpack-6k50nkfr + Building wheels for collected packages: ChIA-Rep + Created temporary directory: /private/tmp/pip-wheel-b85llgno + Building wheel for ChIA-Rep (setup.py): started + Destination directory: /private/tmp/pip-wheel-b85llgno + Building wheel for ChIA-Rep (setup.py): finished with status 'error' + Running setup.py clean for ChIA-Rep + Failed to build ChIA-Rep + Exception information: + Traceback (most recent call last): + File "$PREFIX/lib/python3.11/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper + status = run_func(*args) + ^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.11/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper + return func(self, options, args) + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.11/site-packages/pip/_internal/commands/install.py", line 429, in run + raise InstallationError( + pip._internal.exceptions.InstallationError: Could not build wheels for ChIA-Rep, which is required to install pyproject.toml-based projects + Removed build tracker: '/private/tmp/pip-build-tracker-el8qa0rn' +# Last 100 lines of the build log. diff --git a/recipes/chia-rep/meta.yaml b/recipes/chia-rep/meta.yaml index 5a71cc5f032e7..f9c88f62c885b 100644 --- a/recipes/chia-rep/meta.yaml +++ b/recipes/chia-rep/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 65b69c0ee914828544a92a756610c790804b367ea420666ab36641c85e1c2d50 build: - number: 3 + number: 4 skip: True # [py27] script: "{{ PYTHON }} -m pip install . -vv" diff --git a/recipes/chips/build_failure.osx-64.yaml b/recipes/chips/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..1ff5dbf4df999 --- /dev/null +++ b/recipes/chips/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 650459837761454ad8f1f51856ed5a78655cf6ce77f1b0f17bc480c003baa934 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/chips_1717631135898/work/conda_build.sh']' returned non-zero exit status 2. + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/chips-2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/chips-2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/chips-2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + -- The C compiler identification is Clang 16.0.6 + -- The CXX compiler identification is Clang 16.0.6 + -- Detecting C compiler ABI info + -- Detecting C compiler ABI info - done + -- Check for working C compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting C compile features + -- Detecting C compile features - done + -- Detecting CXX compiler ABI info + -- Detecting CXX compiler ABI info - done + -- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting CXX compile features + -- Detecting CXX compile features - done + -- Configuring done (1.4s) + -- Generating done (0.0s) + -- Build files have been written to: $SRC_DIR/build + [ 2%] Creating directories for 'zlib' + [ 5%] Performing download step (git clone) for 'zlib' + -- zlib download command succeeded. See also $SRC_DIR/build/thirdparty/zlib/src/zlib-stamp/zlib-download-*.log + [ 8%] No update step for 'zlib' + [ 11%] No patch step for 'zlib' + [ 13%] Performing configure step for 'zlib' + Building static library libz.a version 1.2.8 with x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/chips-2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I$PREFIX/include -DVERSION=1.2.3 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -lz. + Checking for off64_t... No. + Checking for fseeko... Yes. + Checking for strerror... Yes. + Checking for unistd.h... Yes. + Checking for stdarg.h... Yes. + Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf(). + Checking for vsnprintf() in stdio.h... Yes. + Checking for return value of vsnprintf()... Yes. + Checking for attribute(visibility) support... No. + [ 16%] Performing build step for 'zlib' + [ 19%] Performing install step for 'zlib' + -- zlib install command succeeded. See also $SRC_DIR/build/thirdparty/zlib/src/zlib-stamp/zlib-install-*.log + [ 22%] Completed 'zlib' + [ 22%] Built target zlib + [ 25%] Creating directories for 'htslib' + [ 27%] Performing download step (git clone) for 'htslib' + -- htslib download command succeeded. See also $SRC_DIR/build/thirdparty/htslib/src/htslib-stamp/htslib-download-*.log + [ 30%] No update step for 'htslib' + [ 33%] No patch step for 'htslib' + [ 36%] No configure step for 'htslib' + [ 38%] Performing build step for 'htslib' + [ 41%] Performing install step for 'htslib' + [ 44%] Completed 'htslib' + [ 44%] Built target htslib + [ 47%] Building CXX object lib/CMakeFiles/ChIPs.dir/bam_io.cpp.o +# Last 100 lines of the build log. diff --git a/recipes/chips/meta.yaml b/recipes/chips/meta.yaml index 1e04f51a2bf4f..225760c303b73 100644 --- a/recipes/chips/meta.yaml +++ b/recipes/chips/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 66577a898cb07986aab27124d748e146cb4c79a01694ce2e073ae45f2ff37ce0 build: - number: 6 + number: 7 requirements: build: diff --git a/recipes/chorus2/build_failure.linux-64.yaml b/recipes/chorus2/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..4534e2106446f --- /dev/null +++ b/recipes/chorus2/build_failure.linux-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: dc8bf1940be247d92ef84e2e61509f15a0724bd1316707bffd870b49ee20296a # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: dependency issue +log: |2- + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("python_abi==3.9=1_cp39")} + Encountered problems while solving: + - package pyqt-4.11.4-py27_0 has constraint python_abi * *_cp27mu conflicting with python_abi-3.9-1_cp39 + + Could not solve for environment specs + The following packages are incompatible + [32mpyqt <5.11 [0m is installable with the potential options + [32mpyqt [4.11.4|5.6.0|5.9.2][0m would require + [32mpython_abi * *_cp27mu[0m, which can be installed; + [32mpyqt 4.11.4[0m would require + [32mpython_abi * *_cp34m[0m, which can be installed; + [32mpyqt [4.11.4|5.6.0][0m would require + [32mpython_abi * *_cp35m[0m, which can be installed; + [32mpyqt [4.11.4|5.6.0|5.9.2][0m would require + [32mpython_abi * *_cp36m[0m, which can be installed; + [32mpyqt [5.6.0|5.9.2][0m would require + [32mpython_abi * *_cp37m[0m, which can be installed; + [31mpython_abi 3.9.* *_cp39[0m is not installable because it conflicts with any installable versions previously reported. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build + create_build_envs(top_level_pkg, notest) + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs + raise e + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs + environ.get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("python_abi==3.9=1_cp39")} + Encountered problems while solving: + - package pyqt-4.11.4-py27_0 has constraint python_abi * *_cp27mu conflicting with python_abi-3.9-1_cp39 + + Could not solve for environment specs + The following packages are incompatible + [32mpyqt <5.11 [0m is installable with the potential options + [32mpyqt [4.11.4|5.6.0|5.9.2][0m would require + [32mpython_abi * *_cp27mu[0m, which can be installed; + [32mpyqt 4.11.4[0m would require + [32mpython_abi * *_cp34m[0m, which can be installed; + [32mpyqt [4.11.4|5.6.0][0m would require + [32mpython_abi * *_cp35m[0m, which can be installed; + [32mpyqt [4.11.4|5.6.0|5.9.2][0m would require + [32mpython_abi * *_cp36m[0m, which can be installed; + [32mpyqt [5.6.0|5.9.2][0m would require + [32mpython_abi * *_cp37m[0m, which can be installed; + [31mpython_abi 3.9.* *_cp39[0m is not installable because it conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/chorus2/build_failure.osx-64.yaml b/recipes/chorus2/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..1abe963911993 --- /dev/null +++ b/recipes/chorus2/build_failure.osx-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: dc8bf1940be247d92ef84e2e61509f15a0724bd1316707bffd870b49ee20296a # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: dependency issue +log: |2- + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("4.8.*"), MatchSpec("pyqt==4.11.4=py27_0")} + Encountered problems while solving: + - nothing provides qt 4.8.* needed by pyqt-4.11.4-py27_0 + + Could not solve for environment specs + The following packages are incompatible + pyqt <5.11 is installable with the potential options + pyqt [5.6.0|5.9.2] would require + python_abi * *_cp27m, which can be installed; + pyqt 4.11.4 would require + qt 4.8.* , which does not exist (perhaps a missing channel); + pyqt 5.6.0 would require + python_abi * *_cp35m, which can be installed; + pyqt [5.6.0|5.9.2] would require + python_abi * *_cp36m, which can be installed; + pyqt [5.6.0|5.9.2] would require + python_abi * *_cp37m, which can be installed; + python_abi 3.9.* *_cp39 is not installable because it conflicts with any installable versions previously reported. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build + create_build_envs(top_level_pkg, notest) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs + raise e + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs + environ.get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("4.8.*"), MatchSpec("pyqt==4.11.4=py27_0")} + Encountered problems while solving: + - nothing provides qt 4.8.* needed by pyqt-4.11.4-py27_0 + + Could not solve for environment specs + The following packages are incompatible + pyqt <5.11 is installable with the potential options + pyqt [5.6.0|5.9.2] would require + python_abi * *_cp27m, which can be installed; + pyqt 4.11.4 would require + qt 4.8.* , which does not exist (perhaps a missing channel); + pyqt 5.6.0 would require + python_abi * *_cp35m, which can be installed; + pyqt [5.6.0|5.9.2] would require + python_abi * *_cp36m, which can be installed; + pyqt [5.6.0|5.9.2] would require + python_abi * *_cp37m, which can be installed; + python_abi 3.9.* *_cp39 is not installable because it conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/chorus2/meta.yaml b/recipes/chorus2/meta.yaml index 0eb60319f75f2..316c5aa08971c 100755 --- a/recipes/chorus2/meta.yaml +++ b/recipes/chorus2/meta.yaml @@ -9,7 +9,10 @@ source: sha256: 8e58db0470803c618aab5c283ea3979af4d668a6e4f1b371db0200b6cc0cc207 build: - number: 2 + number: 3 + skip: True # [py > 39] + run_exports: + - {{ pin_subpackage("chorus2", max_pin="x") }} script: {{ PYTHON }} -m pip install . --no-deps -v requirements: diff --git a/recipes/clair3-illumina/meta.yaml b/recipes/clair3-illumina/meta.yaml index 26f7c25b53962..bd27a4dfbce85 100644 --- a/recipes/clair3-illumina/meta.yaml +++ b/recipes/clair3-illumina/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 79a697046c649daeb1df85a9d65c1a40f61816c4f0497d218192ed557b5d79b1 build: - number: 0 + number: 1 skip: True # [osx] run_exports: - {{ pin_subpackage(name, max_pin="x") }} diff --git a/recipes/clair3-trio/meta.yaml b/recipes/clair3-trio/meta.yaml index f0eb01ee32e20..7ac1658755bff 100644 --- a/recipes/clair3-trio/meta.yaml +++ b/recipes/clair3-trio/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 0ce6c0ebd0db1c7fb9e0a0ecd39d7bdf54ec15de2c1c1a77ec54448141057b63 build: - number: 0 + number: 1 skip: True # [osx] requirements: diff --git a/recipes/clair3/meta.yaml b/recipes/clair3/meta.yaml index d16a9e72fa7d1..751c1c12e54fe 100644 --- a/recipes/clair3/meta.yaml +++ b/recipes/clair3/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 3bc493269878af0d06c3fa006656d77ab01ae55d19c217fcf2ba1d68e2350a9d build: - number: 1 + number: 2 skip: True # [osx] run_exports: - {{ pin_subpackage(name, max_pin="x") }} diff --git a/recipes/cmappy/meta.yaml b/recipes/cmappy/meta.yaml index 69d6ac37d40e1..5c54402bd40e8 100644 --- a/recipes/cmappy/meta.yaml +++ b/recipes/cmappy/meta.yaml @@ -15,7 +15,7 @@ build: - gct2gctx=cmapPy.pandasGEXpress.gct2gctx:main - concat=cmapPy.pandasGEXpress.concat:main - subset=cmapPy.pandasGEXpress.subset:main - number: 6 + number: 7 skip: True # [py<30] script: {{ PYTHON }} -m pip install . --no-deps -vv run_exports: @@ -55,4 +55,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/cnvnator/meta.yaml b/recipes/cnvnator/meta.yaml index ed96122dd455a..ee720182c3b7c 100644 --- a/recipes/cnvnator/meta.yaml +++ b/recipes/cnvnator/meta.yaml @@ -15,7 +15,7 @@ source: folder: samtools build: - number: 8 + number: 9 skip: True # [osx] requirements: diff --git a/recipes/codingquarry/meta.yaml b/recipes/codingquarry/meta.yaml index ca2e2fa867e00..c027a2f2b9f6d 100644 --- a/recipes/codingquarry/meta.yaml +++ b/recipes/codingquarry/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 8 + number: 9 skip: True # [osx] requirements: diff --git a/recipes/coinfinder/build_failure.osx-64.yaml b/recipes/coinfinder/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..0011b4999c3bd --- /dev/null +++ b/recipes/coinfinder/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: d0fbf2e0dff1118c517e1a1e01c10fa22029a931c3b5462d0c26754b1f8967f8 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + sys.exit(execute()) + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/coinfinder_1717782355556/work + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/coinfinder_1717782355556/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/coinfinder_1717782355556/_build_env + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/coinfinder_1717782355556/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/coinfinder-1.2.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + CLANG=x86_64-apple-darwin13.4.0-clang + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/coinfinder_1717782355556/work/conda_build.sh']' returned non-zero exit status 2. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/coinfinder-1.2.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/coinfinder-1.2.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/coinfinder-1.2.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + -- The C compiler identification is Clang 16.0.6 + -- The CXX compiler identification is Clang 16.0.6 + -- Detecting C compiler ABI info + -- Detecting C compiler ABI info - done + -- Check for working C compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting C compile features + -- Detecting C compile features - done + -- Detecting CXX compiler ABI info + -- Detecting CXX compiler ABI info - done + -- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting CXX compile features + -- Detecting CXX compile features - done + -- Found PythonInterp: $PREFIX/bin/python3 (found suitable version "3.9.19", minimum required is "3.6") + -- Found PythonLibs: $PREFIX/lib/libpython3.9.dylib (found suitable version "3.9.19", minimum required is "3.6") + -- Found Boost 1.70.0 at $PREFIX/lib/cmake/Boost-1.70.0 + -- Requested configuration: QUIET REQUIRED COMPONENTS filesystem;system + -- Found boost_headers 1.70.0 at $PREFIX/lib/cmake/boost_headers-1.70.0 + -- Found boost_filesystem 1.70.0 at $PREFIX/lib/cmake/boost_filesystem-1.70.0 + -- libboost_filesystem.a + -- Adding boost_filesystem dependencies: headers + -- Found boost_system 1.70.0 at $PREFIX/lib/cmake/boost_system-1.70.0 + -- libboost_system.a + -- Adding boost_system dependencies: headers + -- Found Boost: $PREFIX/lib/cmake/Boost-1.70.0/BoostConfig.cmake (found version "1.70.0") found components: filesystem system + -- Performing Test CMAKE_HAVE_LIBC_PTHREAD + -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success + -- Found Threads: TRUE + -- Found OpenMP_C: -fopenmp=libomp -Wno-unused-command-line-argument (found version "5.0") + -- Found OpenMP_CXX: -fopenmp=libomp -Wno-unused-command-line-argument (found version "5.0") + -- Found OpenMP: TRUE (found version "5.0") + -- Configuring done (4.1s) + -- Generating done (0.0s) + -- Build files have been written to: $SRC_DIR + [ 6%] Building CXX object CMakeFiles/coinfinder.dir/coinfind-code/main.cpp.o +# Last 100 lines of the build log. diff --git a/recipes/coinfinder/meta.yaml b/recipes/coinfinder/meta.yaml index 56baa5ca9bfc4..ceefbebc62a97 100644 --- a/recipes/coinfinder/meta.yaml +++ b/recipes/coinfinder/meta.yaml @@ -10,9 +10,9 @@ source: sha256: 98985910bff4d1845c8d8b11482205b77ef85bbc4f16a2144f5b540945d8548d build: - number: 1 - - skip: True # [py2k] + number: 2 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} rpaths: - lib/R/lib/ - lib/ diff --git a/recipes/commet/build_failure.osx-64.yaml b/recipes/commet/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..174b4991df7af --- /dev/null +++ b/recipes/commet/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: ea5583246a525ede677c830c075aacd8bbf1f95d5c545f7ba2769d3938b2d79b # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + Y :: Build-prefix patch in use M :: Minimal, non-amalgamated + D :: Dry-runnable N :: Patch level (1 is preferred) + L :: Patch level not-ambiguous O :: Patch applies without offsets + V :: Patch applies without fuzz E :: Patch applies without emitting to stderr + + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/commet_1717513473652/work + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/commet_1717513473652/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/commet_1717513473652/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/commet_1717513473652/work + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/commet_1717513473652/work/conda_build.sh']' returned non-zero exit status 2. + INFO: activate-gfortran_osx-64.sh made the following environmental changes: + DEBUG_FFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/commet-24.7.14 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -Og -g -Wall -Wextra -fcheck=all -fbacktrace -fimplicit-none -fvar-tracking-assignments + DEBUG_FORTRANFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/commet-24.7.14 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -Og -g -Wall -Wextra -fcheck=all -fbacktrace -fimplicit-none -fvar-tracking-assignments + F77=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + F90=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + F95=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + FC=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + FC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + FFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/commet-24.7.14 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + FORTRANFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/commet-24.7.14 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GFORTRAN=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/commet-24.7.14 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/commet-24.7.14 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/commet-24.7.14 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/commet-24.7.14 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + INFO: activate-gfortran_osx-64.sh made the following environmental changes: + DEBUG_FFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/commet-24.7.14 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_FORTRANFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/commet-24.7.14 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + FC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + GFORTRAN=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + -DEBUG_FFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/commet-24.7.14 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -Og -g -Wall -Wextra -fcheck=all -fbacktrace -fimplicit-none -fvar-tracking-assignments + -DEBUG_FORTRANFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/commet-24.7.14 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -Og -g -Wall -Wextra -fcheck=all -fbacktrace -fimplicit-none -fvar-tracking-assignments + -FC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + -GFORTRAN=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + INFO: activate_clang_osx-64.sh made the following environmental changes: + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + -CC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + -CMAKE_ARGS=-DCMAKE_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + -OBJC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + -CXX_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + x86_64-apple-darwin13.4.0-clang -o bin/index_and_search src/index_and_search.cpp -lm -lz -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/commet-24.7.14 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Iinclude -L$PREFIX/lib -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + x86_64-apple-darwin13.4.0-clang -o bin/filter_reads src/filter_reads.cpp -lm -lz -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/commet-24.7.14 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Iinclude -L$PREFIX/lib -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib +# Last 100 lines of the build log. diff --git a/recipes/commet/meta.yaml b/recipes/commet/meta.yaml index a1998218e5d65..03969732436f1 100644 --- a/recipes/commet/meta.yaml +++ b/recipes/commet/meta.yaml @@ -9,7 +9,7 @@ source: - commet.patch build: - number: 10 + number: 11 rpaths: - lib/R/lib/ - lib/ diff --git a/recipes/contammix/meta.yaml b/recipes/contammix/meta.yaml index 4571d779de065..568ab70b4d88b 100644 --- a/recipes/contammix/meta.yaml +++ b/recipes/contammix/meta.yaml @@ -8,7 +8,7 @@ source: url: https://github.com/plfjohnson/contamMix/archive/refs/tags/v{{ github_version_str }}.tar.gz sha256: 1bfd53eca5554c957771daa51a2520306e90da17423dded39454ac8f23424a22 build: - number: 2 + number: 3 rpaths: - lib/R/lib/ - lib/ diff --git a/recipes/contatester/meta.yaml b/recipes/contatester/meta.yaml index 18e724150c534..47bb63e01796e 100644 --- a/recipes/contatester/meta.yaml +++ b/recipes/contatester/meta.yaml @@ -12,7 +12,7 @@ source: build: script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed --no-cache-dir -vvv" skip: true # [py2k] - number: 2 + number: 3 entry_points: - contatester = fr.cea.cnrgh.lbi.contatester.__main__:main diff --git a/recipes/cooltools/0.3.2/build_failure.osx-64.yaml b/recipes/cooltools/0.3.2/build_failure.osx-64.yaml deleted file mode 100644 index 9703229be7344..0000000000000 --- a/recipes/cooltools/0.3.2/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: f90ae119093b26fcffe8d50218b574f155c384c45582120bdd5e1909f5109d19 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - creating build/temp.macosx-10.9-x86_64-cpython-39/cooltools/io - x86_64-apple-darwin13.4.0-clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/mambaforge/envs/bioconda/conda-bld/cooltools_1685528562819/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include -fPIC -O2 -isystem /opt/mambaforge/envs/bioconda/conda-bld/cooltools_1685528562819/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fPIE -fstack-protector-strong -O2 -pipe -isystem /opt/mambaforge/envs/bioconda/conda-bld/cooltools_1685528562819/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include -fdebug-prefix-map=/opt/mambaforge/envs/bioconda/conda-bld/cooltools_1685528562819/work=/usr/local/src/conda/cooltools-0.3.2 -fdebug-prefix-map=/opt/mambaforge/envs/bioconda/conda-bld/cooltools_1685528562819/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac=/usr/local/src/conda-prefix -D_FORTIFY_SOURCE=2 -isystem /opt/mambaforge/envs/bioconda/conda-bld/cooltools_1685528562819/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include -mmacosx-version-min=10.9 -I/opt/mambaforge/envs/bioconda/conda-bld/cooltools_1685528562819/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.9/site-packages/numpy/core/include -I/opt/mambaforge/envs/bioconda/conda-bld/cooltools_1685528562819/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.9/site-packages/numpy/core/include -I/opt/mambaforge/envs/bioconda/conda-bld/cooltools_1685528562819/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/python3.9 -c cooltools/io/fastsavetxt.c -o build/temp.macosx-10.9-x86_64-cpython-39/cooltools/io/fastsavetxt.o - dyld[54232]: Library not loaded: '@rpath/libclang-cpp.15.dylib' - Referenced from: '/opt/mambaforge/envs/bioconda/pkgs/clang-15-15.0.7-default_hdb78580_2/bin/clang-15' - Reason: tried: '/opt/mambaforge/envs/bioconda/pkgs/clang-15-15.0.7-default_hdb78580_2/bin/../lib/libclang-cpp.15.dylib' (no such file), '/opt/mambaforge/envs/bioconda/pkgs/clang-15-15.0.7-default_hdb78580_2/bin/../lib/libclang-cpp.15.dylib' (no such file), '/opt/mambaforge/envs/bioconda/pkgs/clang-15-15.0.7-default_hdb78580_2/bin/../lib/libclang-cpp.15.dylib' (no such file), '/opt/mambaforge/envs/bioconda/pkgs/clang-15-15.0.7-default_hdb78580_2/bin/../lib/libclang-cpp.15.dylib' (no such file), '/usr/local/lib/libclang-cpp.15.dylib' (no such file), '/usr/lib/libclang-cpp.15.dylib' (no such file) - error: command '/opt/mambaforge/envs/bioconda/conda-bld/cooltools_1685528562819/_build_env/bin/x86_64-apple-darwin13.4.0-clang' failed with exit code -6 - error: subprocess-exited-with-error - - python setup.py bdist_wheel did not run successfully. - exit code: 1 - > See above for output. - - note: This error originates from a subprocess, and is likely not a problem with pip. - full command: /opt/mambaforge/envs/bioconda/conda-bld/cooltools_1685528562819/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/bin/python -u -c ' - exec(compile('"'"''"'"''"'"' - # This is -- a caller that pip uses to run setup.py - # - # - It imports setuptools before invoking setup.py, to enable projects that directly - # import from distutils.core to work with newer packaging standards. - # - It provides a clear error message when setuptools is not installed. - # - It sets sys.argv[0] to the underlying setup.py, when invoking setup.py so - # setuptools doesn'"'"'t think the script is -c. This avoids the following warning: - # manifest_maker: standard file '"'"'-c'"'"' not found". - # - It generates a shim setup.py, for handling setup.cfg-only projects. - import os, sys, tokenize - - try: - import setuptools - except ImportError as error: - print( - "ERROR: Can not execute setup.py since setuptools is not available in " - "the build environment.", - file=sys.stderr, - ) - sys.exit(1) - - __file__ = %r - sys.argv[0] = __file__ - - if os.path.exists(__file__): - filename = __file__ - with tokenize.open(__file__) as f: - setup_py_code = f.read() - else: - filename = "" - setup_py_code = "from setuptools import setup; setup()" - - exec(compile(setup_py_code, filename, "exec")) - '"'"''"'"''"'"' % ('"'"'/opt/mambaforge/envs/bioconda/conda-bld/cooltools_1685528562819/work/setup.py'"'"',), "", "exec"))' bdist_wheel -d /private/tmp/pip-wheel-imtiav7c - cwd: /opt/mambaforge/envs/bioconda/conda-bld/cooltools_1685528562819/work/ - ERROR: Failed building wheel for cooltools - Running command python setup.py clean - Building wheel for cooltools (setup.py): finished with status 'error' - Running setup.py clean for cooltools - /opt/mambaforge/envs/bioconda/conda-bld/cooltools_1685528562819/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.9/site-packages/setuptools/__init__.py:84: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated. - !! - - ******************************************************************************** - Requirements should be satisfied by a PEP 517 installer. - If you are using pip, you can try pip install --use-pep517. - ******************************************************************************** - - !! - dist.fetch_build_eggs(dist.setup_requires) - running clean - removing 'build/temp.macosx-10.9-x86_64-cpython-39' (and everything under it) - removing 'build/lib.macosx-10.9-x86_64-cpython-39' (and everything under it) - 'build/bdist.macosx-10.9-x86_64' does not exist -- can't clean it - 'build/scripts-3.9' does not exist -- can't clean it - removing 'build' - ERROR: Could not build wheels for cooltools, which is required to install pyproject.toml-based projects - Failed to build cooltools - Exception information: - Traceback (most recent call last): - File "$PREFIX/lib/python3.9/site-packages/pip/_internal/cli/base_command.py", line 169, in exc_logging_wrapper - status = run_func(*args) - File "$PREFIX/lib/python3.9/site-packages/pip/_internal/cli/req_command.py", line 248, in wrapper - return func(self, options, args) - File "$PREFIX/lib/python3.9/site-packages/pip/_internal/commands/install.py", line 426, in run - raise InstallationError( - pip._internal.exceptions.InstallationError: Could not build wheels for cooltools, which is required to install pyproject.toml-based projects - Removed build tracker: '/private/tmp/pip-build-tracker-v0s12a2a' - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/cooltools_1685528562819/work/conda_build.sh']' returned non-zero exit status 1. -# Last 100 lines of the build log. diff --git a/recipes/cooltools/0.3.2/meta.yaml b/recipes/cooltools/0.3.2/meta.yaml index af0a3b2218d26..fc27e32d88250 100644 --- a/recipes/cooltools/0.3.2/meta.yaml +++ b/recipes/cooltools/0.3.2/meta.yaml @@ -10,7 +10,7 @@ source: sha256: fa477e9edee4a4a44e4b0bf051481b95cfc81ca6651744102c7871186ccf72a9 build: - number: 3 + number: 4 skip: True # [py2k or py > 39] entry_points: - cooltools = cooltools.cli:cli diff --git a/recipes/cooltools/meta.yaml b/recipes/cooltools/meta.yaml index b041ba49d764a..334ffd72b4937 100644 --- a/recipes/cooltools/meta.yaml +++ b/recipes/cooltools/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 8b26d4857cc76b2dd3d1097b85f828cf6d5f1cf85b0cfd4b67a310e33e7ece1c build: - number: 1 + number: 2 entry_points: - cooltools = cooltools.cli:cli script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv" diff --git a/recipes/cortexpy/meta.yaml b/recipes/cortexpy/meta.yaml index 279c5960af686..9197d8a120c9d 100644 --- a/recipes/cortexpy/meta.yaml +++ b/recipes/cortexpy/meta.yaml @@ -11,7 +11,7 @@ source: build: skip: True # [py27 or py >= 39] - number: 4 + number: 5 entry_points: - cortexpy=cortexpy.__main__:main script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed --no-cache-dir -vvv " diff --git a/recipes/coverageanomalyscanner/meta.yaml b/recipes/coverageanomalyscanner/meta.yaml index 899cac5536251..b9557aaf2c6b3 100644 --- a/recipes/coverageanomalyscanner/meta.yaml +++ b/recipes/coverageanomalyscanner/meta.yaml @@ -11,7 +11,7 @@ source: build: skip: True # [osx] - number: 2 + number: 3 requirements: build: diff --git a/recipes/covtobed/meta.yaml b/recipes/covtobed/meta.yaml index 59e3b3e72d451..074f1d4d2e749 100644 --- a/recipes/covtobed/meta.yaml +++ b/recipes/covtobed/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 0d826ad5bc32661806cfa75851e3b70a8a2b6b0b65393908ed954a1aee7c5d6c build: - number: 2 + number: 3 requirements: build: diff --git a/recipes/cpat/meta.yaml b/recipes/cpat/meta.yaml index 749a4451c6ab6..6d65b6398e5eb 100644 --- a/recipes/cpat/meta.yaml +++ b/recipes/cpat/meta.yaml @@ -6,7 +6,7 @@ package: version: "{{ version }}" build: - number: 0 + number: 1 skip: True # [py2k or py > 39] run_exports: - {{ pin_subpackage('cpat', max_pin="x") }} diff --git a/recipes/cpgeneprofiler/meta.yaml b/recipes/cpgeneprofiler/meta.yaml index 27f063a7b6b96..561e876d4d0ab 100644 --- a/recipes/cpgeneprofiler/meta.yaml +++ b/recipes/cpgeneprofiler/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 3 + number: 4 noarch: generic script: R CMD INSTALL --build . rpaths: diff --git a/recipes/crispresso2/meta.yaml b/recipes/crispresso2/meta.yaml index c6e2aa61cd9db..daf7204b868ba 100644 --- a/recipes/crispresso2/meta.yaml +++ b/recipes/crispresso2/meta.yaml @@ -5,8 +5,7 @@ package: version: {{ version }} build: - skip: True # [py2k] - number: 0 + number: 1 run_exports: - {{ pin_subpackage('crispresso2', max_pin='x') }} diff --git a/recipes/crispritz/meta.yaml b/recipes/crispritz/meta.yaml index 11ce0125401cc..ffc3006edb60b 100644 --- a/recipes/crispritz/meta.yaml +++ b/recipes/crispritz/meta.yaml @@ -9,7 +9,7 @@ source: sha256: a254321a4bb8724023191c3a71697f6e2994c8a0001bc26bbc302fa036bc0807 build: - number: 1 + number: 2 skip: True # [py2k or osx or py > 39] requirements: diff --git a/recipes/crumble/meta.yaml b/recipes/crumble/meta.yaml index 98ae36600b100..ffae1c4ace4a9 100644 --- a/recipes/crumble/meta.yaml +++ b/recipes/crumble/meta.yaml @@ -6,7 +6,7 @@ package: version: '{{version}}' build: - number: 2 + number: 3 source: url: https://github.com/jkbonfield/crumble/archive/refs/tags/v{{ version }}.tar.gz diff --git a/recipes/crussmap/build_failure.osx-64.yaml b/recipes/crussmap/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..d89ee13de013f --- /dev/null +++ b/recipes/crussmap/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: b743a1ca09f4f5e5e0d026a3f56eb87696ffa528cf106ca19b2c02c73a4f3277 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + = note: env -u IPHONEOS_DEPLOYMENT_TARGET -u TVOS_DEPLOYMENT_TARGET LC_ALL="C" PATH="/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/bin:/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/bin:/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/bin:/opt/mambaforge/envs/bioconda/condabin:/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/bin:/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/bin:/opt/mambaforge/envs/bioconda/bin:/opt/mambaforge/condabin:/opt/mambaforge/bin:/usr/local/lib/ruby/gems/3.0.0/bin:/usr/local/opt/ruby@3.0/bin:/usr/local/opt/pipx_bin:/Users/runner/.cargo/bin:/usr/local/opt/curl/bin:/usr/local/bin:/usr/local/sbin:/Users/runner/bin:/Users/runner/.yarn/bin:/Users/runner/Library/Android/sdk/tools:/Users/runner/Library/Android/sdk/platform-tools:/Library/Frameworks/Python.framework/Versions/Current/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/usr/bin:/bin:/usr/sbin:/sbin:/Users/runner/.dotnet/tools" VSLANG="1033" ZERO_AR_DATE="1" "cc" "-arch" "x86_64" "-m64" "/tmp/rustccHK7kk/symbols.o" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/work/target/release/build/proc-macro2-acbd332dc98100aa/build_script_build-acbd332dc98100aa.build_script_build.b170873ab59dfdfb-cgu.0.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/work/target/release/build/proc-macro2-acbd332dc98100aa/build_script_build-acbd332dc98100aa.build_script_build.b170873ab59dfdfb-cgu.1.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/work/target/release/build/proc-macro2-acbd332dc98100aa/build_script_build-acbd332dc98100aa.1cihp38p4lvyzkkj.rcgu.o" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/work/target/release/deps" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libstd-2ad7f97be9e16ca5.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-8ce93eee8bf4c86e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libobject-0e1339b212cc7409.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libmemchr-925e672b3deb429c.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-e92d517a950bccd8.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libgimli-de95e5c2a2ace281.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-37f4c48e230f618e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libstd_detect-dfeb4bb0652b6b8e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-0e3ea0ec18336be2.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_alloc-39dd3003e36d7872.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libminiz_oxide-5ea1513e08ee15e0.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libadler-2967159221f4860d.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libunwind-b70656709e3eca11.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcfg_if-cc5626b2e0399737.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/liblibc-8378684dba6ab463.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/liballoc-0ff05b9b25b786cc.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_core-9a6da74aeab39c54.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcore-1638dc700d175798.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-7f42af62722c8f43.rlib" "-lSystem" "-lc" "-lm" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib" "-o" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/work/target/release/build/proc-macro2-acbd332dc98100aa/build_script_build-acbd332dc98100aa" "-Wl,-dead_strip" "-nodefaultlibs" + = note: ld: multiple errors: unsupported mach-o filetype (only MH_OBJECT and MH_DYLIB can be linked) in '/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib/libSystem.B.dylib'; unsupported mach-o filetype (only MH_OBJECT and MH_DYLIB can be linked) in '/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib/libSystem.B.dylib'; unsupported mach-o filetype (only MH_OBJECT and MH_DYLIB can be linked) in '/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib/libSystem.B.dylib' + clang: error: linker command failed with exit code 1 (use -v to see invocation) + + + error: linking with cc failed: exit status: 1 + | + = note: env -u IPHONEOS_DEPLOYMENT_TARGET -u TVOS_DEPLOYMENT_TARGET LC_ALL="C" PATH="/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/bin:/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/bin:/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/bin:/opt/mambaforge/envs/bioconda/condabin:/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/bin:/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/bin:/opt/mambaforge/envs/bioconda/bin:/opt/mambaforge/condabin:/opt/mambaforge/bin:/usr/local/lib/ruby/gems/3.0.0/bin:/usr/local/opt/ruby@3.0/bin:/usr/local/opt/pipx_bin:/Users/runner/.cargo/bin:/usr/local/opt/curl/bin:/usr/local/bin:/usr/local/sbin:/Users/runner/bin:/Users/runner/.yarn/bin:/Users/runner/Library/Android/sdk/tools:/Users/runner/Library/Android/sdk/platform-tools:/Library/Frameworks/Python.framework/Versions/Current/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/usr/bin:/bin:/usr/sbin:/sbin:/Users/runner/.dotnet/tools" VSLANG="1033" ZERO_AR_DATE="1" "cc" "-arch" "x86_64" "-m64" "/tmp/rustc98NmYZ/symbols.o" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/work/target/release/build/serde-1e62519906f99e77/build_script_build-1e62519906f99e77.build_script_build.a4f0df5c432a73cf-cgu.0.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/work/target/release/build/serde-1e62519906f99e77/build_script_build-1e62519906f99e77.386t7nrmg305mq0l.rcgu.o" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/work/target/release/deps" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libstd-2ad7f97be9e16ca5.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-8ce93eee8bf4c86e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libobject-0e1339b212cc7409.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libmemchr-925e672b3deb429c.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-e92d517a950bccd8.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libgimli-de95e5c2a2ace281.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-37f4c48e230f618e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libstd_detect-dfeb4bb0652b6b8e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-0e3ea0ec18336be2.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_alloc-39dd3003e36d7872.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libminiz_oxide-5ea1513e08ee15e0.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libadler-2967159221f4860d.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libunwind-b70656709e3eca11.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcfg_if-cc5626b2e0399737.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/liblibc-8378684dba6ab463.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/liballoc-0ff05b9b25b786cc.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_core-9a6da74aeab39c54.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcore-1638dc700d175798.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-7f42af62722c8f43.rlib" "-lSystem" "-lc" "-lm" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/lib/rustlib/x86_64-apple-darwin/lib" "-o" "/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/work/target/release/build/serde-1e62519906f99e77/build_script_build-1e62519906f99e77" "-Wl,-dead_strip" "-nodefaultlibs" + = note: ld: multiple errors: unsupported mach-o filetype (only MH_OBJECT and MH_DYLIB can be linked) in '/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib/libSystem.B.dylib'; unsupported mach-o filetype (only MH_OBJECT and MH_DYLIB can be linked) in '/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib/libSystem.B.dylib'; unsupported mach-o filetype (only MH_OBJECT and MH_DYLIB can be linked) in '/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib/libSystem.B.dylib' + clang: error: linker command failed with exit code 1 (use -v to see invocation) + + + error: could not compile num-traits (build script) due to 1 previous error + + Caused by: + process didn't exit successfully: rustc --crate-name build_script_build --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/num-traits-0.2.19/build.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debug-assertions=off --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=71100027d0b4f7b1 -C extra-filename=-71100027d0b4f7b1 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/work/target/release/build/num-traits-71100027d0b4f7b1 -C strip=debuginfo -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/work/target/release/deps --extern autocfg=/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/work/target/release/deps/libautocfg-c5a6e5900b9987d4.rlib --cap-lints allow (exit status: 1) + warning: build failed, waiting for other jobs to finish... + error: could not compile serde (build script) due to 1 previous error + + Caused by: + process didn't exit successfully: rustc --crate-name build_script_build --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde-1.0.203/build.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debug-assertions=off --cfg 'feature="default"' --cfg 'feature="derive"' --cfg 'feature="serde_derive"' --cfg 'feature="std"' -C metadata=1e62519906f99e77 -C extra-filename=-1e62519906f99e77 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/work/target/release/build/serde-1e62519906f99e77 -C strip=debuginfo -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/work/target/release/deps --cap-lints allow (exit status: 1) + error: could not compile proc-macro2 (build script) due to 1 previous error + + Caused by: + process didn't exit successfully: rustc --crate-name build_script_build --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.85/build.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debug-assertions=off --cfg 'feature="default"' --cfg 'feature="proc-macro"' -C metadata=acbd332dc98100aa -C extra-filename=-acbd332dc98100aa --out-dir /opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/work/target/release/build/proc-macro2-acbd332dc98100aa -C strip=debuginfo -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/work/target/release/deps --cap-lints allow (exit status: 1) + error: could not compile libc (build script) due to 1 previous error + + Caused by: + process didn't exit successfully: rustc --crate-name build_script_build /opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.155/build.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debug-assertions=off --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=312897ad65048e13 -C extra-filename=-312897ad65048e13 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/work/target/release/build/libc-312897ad65048e13 -C strip=debuginfo -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/work/target/release/deps --cap-lints allow (exit status: 1) + error: failed to compile crussmap v1.0.0 (/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/work), intermediate artifacts can be found at /opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/work/target. + To reuse those artifacts with a future compilation, set the environment variable CARGO_TARGET_DIR to that path. + Extracting download + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/work + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/_build_env + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/crussmap-1.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/crussmap_1717511174373/work/conda_build.sh']' returned non-zero exit status 101. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/crussmap-1.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/crussmap-1.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/crussmap-1.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix +# Last 100 lines of the build log. diff --git a/recipes/crussmap/meta.yaml b/recipes/crussmap/meta.yaml index b5f6f435994bd..cfa5b52359e23 100644 --- a/recipes/crussmap/meta.yaml +++ b/recipes/crussmap/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 skip: True # [win] source: @@ -40,4 +40,4 @@ about: crussmap is a faster tool to convert genome coordinates between difference reference assemblies. extra: recipe-maintainers: - - wenjiewei \ No newline at end of file + - wenjiewei diff --git a/recipes/curves/build_failure.osx-64.yaml b/recipes/curves/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..3ec5d235febae --- /dev/null +++ b/recipes/curves/build_failure.osx-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 8ed3ed2a1646f5cf5fa1b3b367f9bc209eb8e2ad2941bb3f9b785ee7baa7b0ad # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: compiler error +log: |- + Downloading http://curvesplus.bsc.es/static/app/canal.f + Extracting download + Warning: Unrecognized source format. Source file will be copied to the SRC_DIR + Downloading source to cache: canion_81b324d4b4.f + Downloading http://curvesplus.bsc.es/static/app/canion.f + getdate.c:6:11: fatal error: time.h: No such file or directory + 6 | # include + | ^~~~~~~~ + compilation terminated. + make: *** [Makefile:79: getdate.o] Error 1 + Extracting download + Warning: Unrecognized source format. Source file will be copied to the SRC_DIR + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/curves_1718386465597/work + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/curves_1718386465597/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/curves_1718386465597/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/curves_1718386465597/work + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + INFO: activate-gfortran_osx-64.sh made the following environmental changes: + DEBUG_FFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/curves-3.0.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -Og -g -Wall -Wextra -fcheck=all -fbacktrace -fimplicit-none -fvar-tracking-assignments + packages_from_this = build( + DEBUG_FORTRANFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/curves-3.0.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -Og -g -Wall -Wextra -fcheck=all -fbacktrace -fimplicit-none -fvar-tracking-assignments + F77=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + F90=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + F95=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + FC=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + FC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + FFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/curves-3.0.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + FORTRANFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/curves-3.0.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GFORTRAN=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + INFO: activate_clang_osx-64.sh made the following environmental changes: + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/curves_1718386465597/work/conda_build.sh']' returned non-zero exit status 2. + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/curves-3.0.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/curves-3.0.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/curves-3.0.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/curves-3.0.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran -cpp -w -O2 -I$PREFIX/include/ -DNETCDF -Wno-argument-mismatch -DXTC -fallow-argument-mismatch -c aacur.f + $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran -cpp -w -O2 -I$PREFIX/include/ -DNETCDF -Wno-argument-mismatch -DXTC -fallow-argument-mismatch -c axis.f + $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran -cpp -w -O2 -I$PREFIX/include/ -DNETCDF -Wno-argument-mismatch -DXTC -fallow-argument-mismatch -c axref.f + $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran -cpp -w -O2 -I$PREFIX/include/ -DNETCDF -Wno-argument-mismatch -DXTC -fallow-argument-mismatch -c backbo.f + $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran -cpp -w -O2 -I$PREFIX/include/ -DNETCDF -Wno-argument-mismatch -DXTC -fallow-argument-mismatch -c bisection.f + $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran -cpp -w -O2 -I$PREFIX/include/ -DNETCDF -Wno-argument-mismatch -DXTC -fallow-argument-mismatch -c dotdelta.f + $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran -cpp -w -O2 -I$PREFIX/include/ -DNETCDF -Wno-argument-mismatch -DXTC -fallow-argument-mismatch -c eigen.f + $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran -cpp -w -O2 -I$PREFIX/include/ -DNETCDF -Wno-argument-mismatch -DXTC -fallow-argument-mismatch -c findaxis.f + $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran -I/Library/Developer/CommandLineTools/SDKs/MacOSX13.1.sdk/usr/include -Iinclude -dM -c getdate.c +# Last 100 lines of the build log. diff --git a/recipes/curves/meta.yaml b/recipes/curves/meta.yaml index 43562306de2fe..9d1499a6c88c0 100644 --- a/recipes/curves/meta.yaml +++ b/recipes/curves/meta.yaml @@ -17,7 +17,7 @@ source: sha256: 81b324d4b4ff835e56f81a3f7d6a408f511e89a42cac8f390516a9fb3f9026f7 build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage(name, max_pin='x') }} diff --git a/recipes/cutadapt/meta.yaml b/recipes/cutadapt/meta.yaml index 5b7e6a9e62d14..53db3e41ea252 100644 --- a/recipes/cutadapt/meta.yaml +++ b/recipes/cutadapt/meta.yaml @@ -9,7 +9,7 @@ source: sha256: ac852f6b5f2d1147d0d34bef2eaa5879776f81c69a35dd328a701aae39ec6034 build: - number: 0 + number: 1 script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv" skip: True # [py < 38] run_exports: diff --git a/recipes/cvlr/meta.yaml b/recipes/cvlr/meta.yaml index cafc31b5c4805..ca135de94ada0 100644 --- a/recipes/cvlr/meta.yaml +++ b/recipes/cvlr/meta.yaml @@ -10,7 +10,7 @@ source: sha256: eaceaa530925cc42aafdda32d9d6dfb73c26cb6eccc06615947545a6126fb46a build: - number: 3 + number: 4 requirements: build: diff --git a/recipes/cytocad/build_failure.linux-64.yaml b/recipes/cytocad/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..06b68a4f31465 --- /dev/null +++ b/recipes/cytocad/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: d6d404e04af0ad052eb3154264f12c2762ccd84b7ac32af08b10bde4f12cc607 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + error: command '/opt/conda/conda-bld/cytocad_1718135928324/_build_env/bin/x86_64-conda-linux-gnu-cc' failed with exit code 1 + [1;31merror[0m: [1msubprocess-exited-with-error[0m + + [31m[0m [32mpython setup.py bdist_wheel[0m did not run successfully. + [31m[0m exit code: [1;36m1[0m + [31m>[0m See above for output. + + [1;35mnote[0m: This error originates from a subprocess, and is likely not a problem with pip. + [1;35mfull command[0m: [34m/opt/conda/conda-bld/cytocad_1718135928324/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/bin/python -u -c '[0m + [34m exec(compile('"'"''"'"''"'"'[0m + [34m # This is -- a caller that pip uses to run setup.py[0m + [34m #[0m + [34m # - It imports setuptools before invoking setup.py, to enable projects that directly[0m + [34m # import from distutils.core to work with newer packaging standards.[0m + [34m # - It provides a clear error message when setuptools is not installed.[0m + [34m # - It sets sys.argv[0] to the underlying setup.py, when invoking setup.py so[0m + [34m # setuptools doesn'"'"'t think the script is -c. This avoids the following warning:[0m + [34m # manifest_maker: standard file '"'"'-c'"'"' not found".[0m + [34m # - It generates a shim setup.py, for handling setup.cfg-only projects.[0m + [34m import os, sys, tokenize[0m + [34m [0m + [34m try:[0m + [34m import setuptools[0m + [34m except ImportError as error:[0m + [34m print([0m + [34m "ERROR: Can not execute setup.py since setuptools is not available in "[0m + [34m "the build environment.",[0m + [34m file=sys.stderr,[0m + [34m )[0m + [34m sys.exit(1)[0m + [34m [0m + [34m __file__ = %r[0m + [34m sys.argv[0] = __file__[0m + [34m [0m + [34m if os.path.exists(__file__):[0m + [34m filename = __file__[0m + [34m with tokenize.open(__file__) as f:[0m + [34m setup_py_code = f.read()[0m + [34m else:[0m + [34m filename = ""[0m + [34m setup_py_code = "from setuptools import setup; setup()"[0m + [34m [0m + [34m exec(compile(setup_py_code, filename, "exec"))[0m + [34m '"'"''"'"''"'"' % ('"'"'/opt/conda/conda-bld/cytocad_1718135928324/work/setup.py'"'"',), "", "exec"))' bdist_wheel -d /tmp/pip-wheel-bqip3nyf[0m + [1;35mcwd[0m: /opt/conda/conda-bld/cytocad_1718135928324/work/ + Building wheel for cytocad (setup.py): finished with status 'error' + [31m ERROR: Failed building wheel for cytocad[0m[31m + [0m Running setup.py clean for cytocad + Running command python setup.py clean + /opt/conda/conda-bld/cytocad_1718135928324/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/lib/python3.11/site-packages/setuptools/dist.py:476: SetuptoolsDeprecationWarning: Invalid dash-separated options + !! + + ******************************************************************************** + Usage of dash-separated 'description-file' will not be supported in future + versions. Please use the underscore name 'description_file' instead. + + By 2024-Sep-26, you need to update your project and remove deprecated calls + or your builds will no longer be supported. + + See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details. + ******************************************************************************** + + !! + opt = self.warn_dash_deprecation(opt, section) + running clean + removing 'build/temp.linux-x86_64-cpython-311' (and everything under it) + removing 'build/lib.linux-x86_64-cpython-311' (and everything under it) + 'build/bdist.linux-x86_64' does not exist -- can't clean it + 'build/scripts-3.11' does not exist -- can't clean it + removing 'build' + Failed to build cytocad + [31mERROR: Could not build wheels for cytocad, which is required to install pyproject.toml-based projects[0m[31m + [0mException information: + Traceback (most recent call last): + File "$PREFIX/lib/python3.11/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper + status = run_func(*args) + ^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.11/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper + return func(self, options, args) + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.11/site-packages/pip/_internal/commands/install.py", line 429, in run + raise InstallationError( + pip._internal.exceptions.InstallationError: Could not build wheels for cytocad, which is required to install pyproject.toml-based projects + Removed build tracker: '/tmp/pip-build-tracker-t02dmdvh' + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/cytocad_1718135928324/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/cytocad/meta.yaml b/recipes/cytocad/meta.yaml index 54fef54aafdf9..bbde6d8c29a45 100644 --- a/recipes/cytocad/meta.yaml +++ b/recipes/cytocad/meta.yaml @@ -11,7 +11,7 @@ source: build: skip: True # [py2k or osx] - number: 2 + number: 3 script: "{{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv" requirements: diff --git a/recipes/cyushuffle/meta.yaml b/recipes/cyushuffle/meta.yaml index 74a055fdea193..501c81c87c1ce 100644 --- a/recipes/cyushuffle/meta.yaml +++ b/recipes/cyushuffle/meta.yaml @@ -9,7 +9,7 @@ source: sha256: "bd2c1d038a6d67d5a0c9f3e0b1761dccd9400bde666c82bb8f44732b72d417b6" build: - number: 5 + number: 6 script: {{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv requirements: diff --git a/recipes/cyvcf2/meta.yaml b/recipes/cyvcf2/meta.yaml index 907bd8a771610..d0e9ab1d3863f 100644 --- a/recipes/cyvcf2/meta.yaml +++ b/recipes/cyvcf2/meta.yaml @@ -14,8 +14,7 @@ source: - patches/setup.py.patch build: - number: 0 - skip: True # [py < 37] + number: 1 script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv entry_points: - cyvcf2 = cyvcf2.__main__:cli diff --git a/recipes/dart/build_failure.osx-64.yaml b/recipes/dart/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..5b5076b89c23e --- /dev/null +++ b/recipes/dart/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: c696aa5e636ef886ff1bcb70bc0fab6e2c5ed7ebb5ab85a6d600d7d890735e02 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + $SRC_DIR/src/BWT_Index $SRC_DIR + x86_64-apple-darwin13.4.0-clang -c -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix utils.c -o utils.o + x86_64-apple-darwin13.4.0-clang -c -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix bwt.c -o bwt.o + x86_64-apple-darwin13.4.0-clang -c -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix bntseq.c -o bntseq.o + x86_64-apple-darwin13.4.0-clang -c -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix QSufSort.c -o QSufSort.o + x86_64-apple-darwin13.4.0-clang -c -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix bwt_gen.c -o bwt_gen.o + x86_64-apple-darwin13.4.0-clang -c -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix bwtindex.c -o bwtindex.o + ar -csru libbwa.a utils.o bwt.o bntseq.o QSufSort.o bwt_gen.o bwtindex.o + x86_64-apple-darwin13.4.0-clang -c -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix main.c -o main.o + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix main.o -o bwt_index -L. -lbwa -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -lm -lz + $SRC_DIR + $SRC_DIR/src/htslib $SRC_DIR + echo '/* Default config.h generated by Makefile */' > config.h + echo '#define HAVE_LIBBZ2 1' >> config.h + echo '#define HAVE_LIBLZMA 1' >> config.h + echo '#define HAVE_FSEEKO 1' >> config.h + echo '#define HAVE_DRAND48 1' >> config.h + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o kfunc.o kfunc.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o knetfile.o knetfile.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o kstring.o kstring.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o bcf_sr_sort.o bcf_sr_sort.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o bgzf.o bgzf.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o errmod.o errmod.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o faidx.o faidx.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o hfile.o hfile.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o hfile_net.o hfile_net.c + echo '#define HTS_VERSION "1.5"' > version.h + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o hts.o hts.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o hts_os.o hts_os.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o md5.o md5.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o multipart.o multipart.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o probaln.o probaln.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o realn.o realn.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o regidx.o regidx.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o sam.o sam.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o synced_bcf_reader.o synced_bcf_reader.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o vcf_sweep.o vcf_sweep.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o tbx.o tbx.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o textutils.o textutils.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o thread_pool.o thread_pool.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o vcf.o vcf.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o vcfutils.o vcfutils.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/cram_codecs.o cram/cram_codecs.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/cram_decode.o cram/cram_decode.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/cram_encode.o cram/cram_encode.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/cram_external.o cram/cram_external.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/cram_index.o cram/cram_index.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/cram_io.o cram/cram_io.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/cram_samtools.o cram/cram_samtools.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/cram_stats.o cram/cram_stats.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/files.o cram/files.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/mFILE.o cram/mFILE.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/open_trace_file.o cram/open_trace_file.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/pooled_alloc.o cram/pooled_alloc.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/rANS_static.o cram/rANS_static.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/sam_header.o cram/sam_header.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/string_alloc.o cram/string_alloc.c + ar -rc libhts.a kfunc.o knetfile.o kstring.o bcf_sr_sort.o bgzf.o errmod.o faidx.o hfile.o hfile_net.o hts.o hts_os.o md5.o multipart.o probaln.o realn.o regidx.o sam.o synced_bcf_reader.o vcf_sweep.o tbx.o textutils.o thread_pool.o vcf.o vcfutils.o cram/cram_codecs.o cram/cram_decode.o cram/cram_encode.o cram/cram_external.o cram/cram_index.o cram/cram_io.o cram/cram_samtools.o cram/cram_stats.o cram/files.o cram/mFILE.o cram/open_trace_file.o cram/pooled_alloc.o cram/rANS_static.o cram/sam_header.o cram/string_alloc.o + ranlib libhts.a + $SRC_DIR + $SRC_DIR/src $SRC_DIR + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dart-1.4.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -D NDEBUG -O3 -m64 -msse4.1 -fPIC -c main.cpp +# Last 100 lines of the build log. diff --git a/recipes/dart/meta.yaml b/recipes/dart/meta.yaml index a6f2aa00531a7..e0adbdd0c75eb 100644 --- a/recipes/dart/meta.yaml +++ b/recipes/dart/meta.yaml @@ -9,7 +9,7 @@ source: sha256: '847d5e0a7e10162583fcf7168d31924d38290b5364e08c4a9cdd6653da73c64f' build: - number: 5 + number: 6 run_exports: - {{ pin_subpackage("dart", max_pin='x.x') }} diff --git a/recipes/dawg/build_failure.linux-64.yaml b/recipes/dawg/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..2f94055c4e56c --- /dev/null +++ b/recipes/dawg/build_failure.linux-64.yaml @@ -0,0 +1,6 @@ +recipe_sha: 5bc9640fcd659a103262141b08ed53db5422569765bc830b95568297205d2917 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +reason: |- + Another package with the same name is in conda-forge +category: |- + dependency issue diff --git a/recipes/dawg/meta.yaml b/recipes/dawg/meta.yaml index 7c83c498f31e5..b6872b4e0ae9e 100644 --- a/recipes/dawg/meta.yaml +++ b/recipes/dawg/meta.yaml @@ -9,7 +9,9 @@ source: - 0001-Convert-tribool-to-bool.patch build: - number: 7 + number: 8 + run_exports: + - {{ pin_subpackage("dawg", max_pin="x") }} requirements: build: @@ -32,3 +34,7 @@ about: home: https://github.com/reedacartwright/dawg summary: "DNA Assembly with Gaps (Dawg) is an application designed to simulate the evolution of recombinant DNA sequences in continuous time based on the robust general time reversible model with gamma and invariant rate heterogeneity and a novel length-dependent model of gap formation." license: GPL-2 + +extra: + skip-lints: + - in_other_channels diff --git a/recipes/dechat/meta.yaml b/recipes/dechat/meta.yaml index c7423c3955a61..0eef8c132438d 100644 --- a/recipes/dechat/meta.yaml +++ b/recipes/dechat/meta.yaml @@ -10,7 +10,7 @@ source: sha256: e637d985eb4fa3bfa276d6433a5ec3c014471eb8eea6da233720dfe78b16fcda build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('dechat', max_pin="x") }} diff --git a/recipes/decifer/meta.yaml b/recipes/decifer/meta.yaml index 8e93978bf57fb..da44494ac7dd5 100644 --- a/recipes/decifer/meta.yaml +++ b/recipes/decifer/meta.yaml @@ -10,8 +10,7 @@ source: sha256: 9b67b66cd9dd5c538204c22994b9c61d97f3691d01146bd76500dbd4ed4d3685 build: - skip: True # [py < 38] - number: 0 + number: 1 entry_points: - decifer = decifer.__main__:main diff --git a/recipes/deeptoolsintervals/meta.yaml b/recipes/deeptoolsintervals/meta.yaml index 6611f446819f6..82731cf3df9cd 100644 --- a/recipes/deeptoolsintervals/meta.yaml +++ b/recipes/deeptoolsintervals/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 7d94c36fd2b6f10d8b99e536d2672e8228971f1fc810497d33527bba2c40d4f6 build: - number: 8 + number: 9 run_exports: - {{ pin_subpackage("deeptoolsintervals", max_pin="x.x") }} @@ -36,4 +36,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/delly/build_failure.osx-64.yaml b/recipes/delly/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..a22062678fa6c --- /dev/null +++ b/recipes/delly/build_failure.osx-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 1cf6f39df59a910ba68de2279b1aafb5d6631cc6eb64ac207bf493c85b144032 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: compiler error +log: |- + In file included from src/coral.h:19: + src/cnv.h:702:2: warning: ignoring return value of function declared with 'warn_unused_result' attribute [-Wunused-result] + bcf_write1(fp, hdr, rec); + ^~~~~~~~~~~~~~~~~~~~~~~~ + /opt/mambaforge/envs/bioconda/conda-bld/delly_1718144538218/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/include/htslib/vcf.h:270:33: note: expanded from macro 'bcf_write1' + #define bcf_write1(fp,h,v) bcf_write((fp),(h),(v)) + ^~~~~~~~~ ~~~~~~~~~~~~ + src/coral.h:436:5: note: in instantiation of function template specialization 'torali::cnvVCF' requested here + cnvVCF(c, cnvs); + ^ + src/coral.h:776:9: note: in instantiation of function template specialization 'torali::bamCount' requested here + if (bamCount(c, li, gcbias, gcbound)) { + ^ + In file included from src/delly.cpp:18: + In file included from src/delly.h:39: + src/modvcf.h:561:7: warning: ignoring return value of function declared with 'warn_unused_result' attribute [-Wunused-result] + bcf_write1(fp, hdr, rec); + ^~~~~~~~~~~~~~~~~~~~~~~~ + /opt/mambaforge/envs/bioconda/conda-bld/delly_1718144538218/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/include/htslib/vcf.h:270:33: note: expanded from macro 'bcf_write1' + #define bcf_write1(fp,h,v) bcf_write((fp),(h),(v)) + ^~~~~~~~~ ~~~~~~~~~~~~ + src/asmode.h:403:4: note: in instantiation of function template specialization 'torali::vcfOutput>, std::vector>, std::vector>>' requested here + vcfOutput(c, svs, jctMap, rcMap, spanMap); + ^ + src/asmode.h:559:11: note: in instantiation of function template specialization 'torali::runAsm' requested here + return runAsm(c); + ^ + 27 warnings and 14 errors generated. + make: *** [Makefile:60: src/delly] Error 1 + Extracting download + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/delly_1718144538218/work + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/delly_1718144538218/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/delly_1718144538218/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/delly_1718144538218/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/delly-1.2.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/delly-1.2.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + raise subprocess.CalledProcessError(proc.returncode, _args) + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/delly_1718144538218/work/conda_build.sh']' returned non-zero exit status 2. + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/delly-1.2.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/delly-1.2.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + if [ -r src/htslib/Makefile ]; then cd src/htslib && autoreconf -i && ./configure --disable-s3 --disable-gcs --disable-libcurl --disable-plugins && make && make lib-static && cd ../../ && touch .htslib; fi + x86_64-apple-darwin13.4.0-clang -I$PREFIX/include -L$PREFIX/lib src/delly.cpp src/edlib.cpp -o src/delly -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$SRC_DIR/src/htslib/ -lboost_iostreams -lboost_filesystem -lboost_system -lboost_program_options -lboost_date_time -lhts -lz -llzma -lbz2 -Wl,-rpath,$SRC_DIR/src/htslib/ +# Last 100 lines of the build log. diff --git a/recipes/delly/meta.yaml b/recipes/delly/meta.yaml index 1be26ed167cf9..44c6abd63de1b 100644 --- a/recipes/delly/meta.yaml +++ b/recipes/delly/meta.yaml @@ -10,7 +10,7 @@ source: sha256: '{{ sha256 }}' build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage("delly", max_pin="x.x") }} diff --git a/recipes/deltapd/meta.yaml b/recipes/deltapd/meta.yaml index 9649ff09797e2..31cd6a697ca78 100644 --- a/recipes/deltapd/meta.yaml +++ b/recipes/deltapd/meta.yaml @@ -13,11 +13,12 @@ source: - pdm.patch build: - number: 4 - skip: True # [py < 37] + number: 5 script: {{ PYTHON }} -m pip install . --ignore-installed --no-deps -vvv entry_points: - deltapd = deltapd.__main__:main + run_exports: + - {{ pin_subpackage("deltapd", max_pin="x.x") }} requirements: build: diff --git a/recipes/desman/build_failure.linux-64.yaml b/recipes/desman/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..81ddfbc76d586 --- /dev/null +++ b/recipes/desman/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 589b78385006fb419a020605d6873bd6e3becaf16714268412de6c7c55bc3630 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + [31mpysam [0.15.1|0.15.2|0.15.3][0m would require + [31mlibdeflate >=1.0,<1.1.0a0 [0m, which conflicts with any installable versions previously reported; + [32mpysam [0.15.3|0.15.4|0.9.1][0m would require + [32mpython >=3.7,<3.8.0a0 [0m, which can be installed; + [32mpysam [0.15.4|0.16.0|...|0.9.1][0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mpysam [0.16.0.1|0.17.0|...|0.9.1][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mpysam [0.16.0.1|0.17.0|...|0.9.1][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mpysam [0.19.1|0.20.0|0.21.0|0.22.0|0.22.1][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [31mpython >=3.11,<3.12.0a0 [0m is not installable because it requires + [31mpython_abi 3.11.* *_cp311[0m, which conflicts with any installable versions previously reported. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build + create_build_envs(top_level_pkg, notest) + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs + raise e + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs + environ.get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("pysam==0.15.0=py27hdfb72b2_0"), MatchSpec("bcftools=1.9")} + Encountered problems while solving: + - package pysam-0.15.0-py27hdfb72b2_0 requires bcftools 1.9.*, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + [32mgsl >=2.7,<2.8.0a0 [0m is requested and can be installed; + [32mpysam[0m is installable with the potential options + [32mpysam 0.7.7[0m would require + [32mpython <3.0.0 [0m, which can be installed; + [32mpysam [0.10.0|0.11.0|...|0.9.1.4][0m would require + [32mpython [2.7* |>=2.7,<2.8.0a0 ][0m, which can be installed; + [32mpysam [0.10.0|0.16.0.1|...|0.9.1][0m would require + [32mpython_abi 2.7.* *_cp27mu[0m, which can be installed; + [32mpysam [0.10.0|0.11.0|...|0.9.1.4][0m would require + [32mpython 3.4* [0m, which can be installed; + [32mpysam [0.10.0|0.11.0|...|0.9.1.4][0m would require + [32mpython [3.5* |>=3.5,<3.6.0a0 ][0m, which can be installed; + [32mpysam [0.10.0|0.11.1|...|0.9.1][0m would require + [32mpython 3.6* [0m, which can be installed; + [32mpysam [0.10.0|0.15.4|...|0.9.1][0m would require + [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; + [32mpysam [0.10.0|0.14.1|...|0.9.1][0m would require + [32mpython >=3.6,<3.7.0a0 [0m, which can be installed; + [31mpysam [0.15.0|0.15.0.1|0.15.2][0m would require + [31mbcftools 1.9.* [0m but there are no viable options + [31mbcftools 1.9[0m would require + [31mlibdeflate >=1.0,<1.1.0a0 [0m, which conflicts with any installable versions previously reported; + [31mbcftools 1.9[0m would require + [31mgsl >=2.5,<2.6.0a0 [0m, which conflicts with any installable versions previously reported; + [31mpysam [0.15.1|0.15.2|0.15.3][0m would require + [31mlibdeflate >=1.0,<1.1.0a0 [0m, which conflicts with any installable versions previously reported; + [32mpysam [0.15.3|0.15.4|0.9.1][0m would require + [32mpython >=3.7,<3.8.0a0 [0m, which can be installed; + [32mpysam [0.15.4|0.16.0|...|0.9.1][0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mpysam [0.16.0.1|0.17.0|...|0.9.1][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mpysam [0.16.0.1|0.17.0|...|0.9.1][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mpysam [0.19.1|0.20.0|0.21.0|0.22.0|0.22.1][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [31mpython >=3.11,<3.12.0a0 [0m is not installable because it requires + [31mpython_abi 3.11.* *_cp311[0m, which conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/desman/meta.yaml b/recipes/desman/meta.yaml index 352b6ca2558f0..ea2e7f98e1839 100644 --- a/recipes/desman/meta.yaml +++ b/recipes/desman/meta.yaml @@ -7,7 +7,9 @@ package: version: {{ version }} build: - number: 8 + number: 9 + run_exports: + - {{ pin_subpackage("desman", max_pin="x") }} script: {{ PYTHON }} -m pip install . --no-deps -vv source: @@ -19,7 +21,7 @@ requirements: - {{ compiler('c') }} host: - pip - - python >=3.5 + - python - setuptools - cython >=0.19.1 - numpy @@ -28,7 +30,7 @@ requirements: - pandas >=0.11.0 - scipy >=0.12.0 run: - - python >=3.5 + - python - setuptools - bcbio-gff - biopython diff --git a/recipes/dextractor/meta.yaml b/recipes/dextractor/meta.yaml index 698339b988a94..51e0ad9f023e3 100644 --- a/recipes/dextractor/meta.yaml +++ b/recipes/dextractor/meta.yaml @@ -3,7 +3,7 @@ package: version: "1.0p2" build: - number: 7 + number: 8 source: sha256: d5bfe730615d76b29d373b6505421db83f7f1075ef6be331c3ac030e40dcf343 diff --git a/recipes/dicey/build_failure.linux-64.yaml b/recipes/dicey/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..7a7c7fc2685d4 --- /dev/null +++ b/recipes/dicey/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: c8389fa92d55fba29aa3e922321084ba770fc8c234a709c8b440b779fa5268d0 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + Sample programs can be found in the examples-directory. + A program 'example.cpp' can be compiled with the command: + g -std=c14 -D__STDC_FORMAT_MACROS -I$SRC_DIR/src/sdslLite/include -L$SRC_DIR/src/sdslLite/lib -I$PREFIX/include -L$PREFIX/lib -Isrc/jlib/ -std=c14 -O3 -DNDEBUG -msse4.2 -Wall -Wextra -pedantic -ffast-math -funroll-loops -D__extern_always_inline="extern __always_inline" \ + -I$SRC_DIR/src/sdslLite/include -L$SRC_DIR/src/sdslLite/lib \ + example.cpp -ldivsufsort -ldivsufsort64 + + Tests in the test-directory + A cheat sheet in the extras/cheatsheet-directory. + Have fun! + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -D__STDC_FORMAT_MACROS -I$SRC_DIR/src/sdslLite/include -L$SRC_DIR/src/sdslLite/lib -I$PREFIX/include -L$PREFIX/lib -Isrc/jlib/ -std=c14 src/dicey.cpp -o src/dicey -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$SRC_DIR/src/htslib/ -L$SRC_DIR/src/htslib//lib -L$SRC_DIR/src/sdslLite//lib -lboost_iostreams -lboost_filesystem -lboost_system -lboost_program_options -lboost_date_time -ldl -lpthread -lhts -lz -llzma -lbz2 -Wl,-rpath,$SRC_DIR/src/htslib/ + In file included from src/bed.h:6, + from src/dicey.cpp:12: + /opt/conda/conda-bld/dicey_1718311588591/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/progress.hpp:23:3: error: #error This header is deprecated and will be removed. (You can define BOOST_TIMER_ENABLE_DEPRECATED to suppress this error.) + 23 | # error This header is deprecated and will be removed. (You can define BOOST_TIMER_ENABLE_DEPRECATED to suppress this error.) + | ^~~~~ + In file included from /opt/conda/conda-bld/dicey_1718311588591/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/progress.hpp:29: + /opt/conda/conda-bld/dicey_1718311588591/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/timer.hpp:21:3: error: #error This header is deprecated and will be removed. (You can define BOOST_TIMER_ENABLE_DEPRECATED to suppress this error.) + 21 | # error This header is deprecated and will be removed. (You can define BOOST_TIMER_ENABLE_DEPRECATED to suppress this error.) + | ^~~~~ + In file included from /opt/conda/conda-bld/dicey_1718311588591/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/smart_ptr/detail/requires_cxx11.hpp:9, + from /opt/conda/conda-bld/dicey_1718311588591/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/smart_ptr/intrusive_ptr.hpp:16, + from /opt/conda/conda-bld/dicey_1718311588591/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/filesystem/exception.hpp:20, + from /opt/conda/conda-bld/dicey_1718311588591/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/filesystem.hpp:17, + from src/bed.h:4: + /opt/conda/conda-bld/dicey_1718311588591/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/config/pragma_message.hpp:24:34: note: '#pragma message: This header is deprecated. Use the facilities in or instead.' + 24 | # define BOOST_PRAGMA_MESSAGE(x) _Pragma(BOOST_STRINGIZE(message(x))) + | ^~~~~~~ + /opt/conda/conda-bld/dicey_1718311588591/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/config/header_deprecated.hpp:23:37: note: in expansion of macro 'BOOST_PRAGMA_MESSAGE' + 23 | # define BOOST_HEADER_DEPRECATED(a) BOOST_PRAGMA_MESSAGE("This header is deprecated. Use " a " instead.") + | ^~~~~~~~~~~~~~~~~~~~ + /opt/conda/conda-bld/dicey_1718311588591/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/progress.hpp:27:1: note: in expansion of macro 'BOOST_HEADER_DEPRECATED' + 27 | BOOST_HEADER_DEPRECATED( "the facilities in or " ) + | ^~~~~~~~~~~~~~~~~~~~~~~ + /opt/conda/conda-bld/dicey_1718311588591/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/config/pragma_message.hpp:24:34: note: '#pragma message: This header is deprecated. Use the facilities in instead.' + 24 | # define BOOST_PRAGMA_MESSAGE(x) _Pragma(BOOST_STRINGIZE(message(x))) + | ^~~~~~~ + /opt/conda/conda-bld/dicey_1718311588591/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/config/header_deprecated.hpp:23:37: note: in expansion of macro 'BOOST_PRAGMA_MESSAGE' + 23 | # define BOOST_HEADER_DEPRECATED(a) BOOST_PRAGMA_MESSAGE("This header is deprecated. Use " a " instead.") + | ^~~~~~~~~~~~~~~~~~~~ + /opt/conda/conda-bld/dicey_1718311588591/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/timer.hpp:25:1: note: in expansion of macro 'BOOST_HEADER_DEPRECATED' + 25 | BOOST_HEADER_DEPRECATED( "the facilities in " ) + | ^~~~~~~~~~~~~~~~~~~~~~~ + In file included from src/dicey.cpp:17: + src/hunter.h:65:35: warning: 'template struct std::binary_function' is deprecated [-Wdeprecated-declarations] + 65 | struct SortDnaHit : public std::binary_function { + | ^~~~~~~~~~~~~~~ + In file included from /opt/conda/conda-bld/dicey_1718311588591/_build_env/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include/c/string:48, + from /opt/conda/conda-bld/dicey_1718311588591/_build_env/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include/c/bits/locale_classes.h:40, + from /opt/conda/conda-bld/dicey_1718311588591/_build_env/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include/c/bits/ios_base.h:41, + from /opt/conda/conda-bld/dicey_1718311588591/_build_env/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include/c/ios:42, + from /opt/conda/conda-bld/dicey_1718311588591/_build_env/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include/c/ostream:38, + from /opt/conda/conda-bld/dicey_1718311588591/_build_env/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include/c/iostream:39, + from src/dicey.cpp:3: + /opt/conda/conda-bld/dicey_1718311588591/_build_env/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include/c/bits/stl_function.h:131:12: note: declared here + 131 | struct binary_function + | ^~~~~~~~~~~~~~~ + In file included from src/dicey.cpp:18: + src/silica.h:80:37: warning: 'template struct std::binary_function' is deprecated [-Wdeprecated-declarations] + 80 | struct SortPrimer : public std::binary_function + | ^~~~~~~~~~~~~~~ + /opt/conda/conda-bld/dicey_1718311588591/_build_env/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include/c/bits/stl_function.h:131:12: note: declared here + 131 | struct binary_function + | ^~~~~~~~~~~~~~~ + src/silica.h:100:39: warning: 'template struct std::binary_function' is deprecated [-Wdeprecated-declarations] + 100 | struct SortProducts : public std::binary_function + | ^~~~~~~~~~~~~~~ + /opt/conda/conda-bld/dicey_1718311588591/_build_env/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include/c/bits/stl_function.h:131:12: note: declared here + 131 | struct binary_function + | ^~~~~~~~~~~~~~~ + In file included from src/padlock.h:34, + from src/dicey.cpp:21: + src/gtf.h:53:42: warning: 'template struct std::binary_function' is deprecated [-Wdeprecated-declarations] + 53 | struct SortIntervalLabel : public std::binary_function { + | ^~~~~~~~~~~~~~~ + /opt/conda/conda-bld/dicey_1718311588591/_build_env/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include/c/bits/stl_function.h:131:12: note: declared here + 131 | struct binary_function + | ^~~~~~~~~~~~~~~ + src/gtf.h:60:42: warning: 'template struct std::binary_function' is deprecated [-Wdeprecated-declarations] + 60 | struct SortIntervalStart : public std::binary_function { + | ^~~~~~~~~~~~~~~ + /opt/conda/conda-bld/dicey_1718311588591/_build_env/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include/c/bits/stl_function.h:131:12: note: declared here + 131 | struct binary_function + | ^~~~~~~~~~~~~~~ + make: *** [Makefile:60: src/dicey] Error 1 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/dicey_1718311588591/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/dicey/build_failure.linux-aarch64.yaml b/recipes/dicey/build_failure.linux-aarch64.yaml new file mode 100644 index 0000000000000..c0c5be81f9cf2 --- /dev/null +++ b/recipes/dicey/build_failure.linux-aarch64.yaml @@ -0,0 +1,104 @@ +recipe_sha: c8389fa92d55fba29aa3e922321084ba770fc8c234a709c8b440b779fa5268d0 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + Sample programs can be found in the examples-directory. + A program 'example.cpp' can be compiled with the command: + g -std=c14 -D__STDC_FORMAT_MACROS -I$SRC_DIR/src/sdslLite/include -L$SRC_DIR/src/sdslLite/lib -I$PREFIX/include -L$PREFIX/lib -Isrc/jlib/ -std=c14 -O3 -DNDEBUG -Wall -Wextra -pedantic -ffast-math -funroll-loops -D__extern_always_inline="extern __always_inline" \ + -I$SRC_DIR/src/sdslLite/include -L$SRC_DIR/src/sdslLite/lib \ + example.cpp -ldivsufsort -ldivsufsort64 + + Tests in the test-directory + A cheat sheet in the extras/cheatsheet-directory. + Have fun! + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-c -D__STDC_FORMAT_MACROS -I$SRC_DIR/src/sdslLite/include -L$SRC_DIR/src/sdslLite/lib -I$PREFIX/include -L$PREFIX/lib -Isrc/jlib/ -std=c14 src/dicey.cpp -o src/dicey -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$SRC_DIR/src/htslib/ -L$SRC_DIR/src/htslib//lib -L$SRC_DIR/src/sdslLite//lib -lboost_iostreams -lboost_filesystem -lboost_system -lboost_program_options -lboost_date_time -ldl -lpthread -lhts -lz -llzma -lbz2 -Wl,-rpath,$SRC_DIR/src/htslib/ + In file included from src/bed.h:6, + from src/dicey.cpp:12: + /opt/conda/conda-bld/dicey_1718314872467/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/progress.hpp:23:3: error: #error This header is deprecated and will be removed. (You can define BOOST_TIMER_ENABLE_DEPRECATED to suppress this error.) + 23 | # error This header is deprecated and will be removed. (You can define BOOST_TIMER_ENABLE_DEPRECATED to suppress this error.) + | ^~~~~ + In file included from /opt/conda/conda-bld/dicey_1718314872467/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/progress.hpp:29: + /opt/conda/conda-bld/dicey_1718314872467/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/timer.hpp:21:3: error: #error This header is deprecated and will be removed. (You can define BOOST_TIMER_ENABLE_DEPRECATED to suppress this error.) + 21 | # error This header is deprecated and will be removed. (You can define BOOST_TIMER_ENABLE_DEPRECATED to suppress this error.) + | ^~~~~ + In file included from /opt/conda/conda-bld/dicey_1718314872467/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/smart_ptr/detail/requires_cxx11.hpp:9, + from /opt/conda/conda-bld/dicey_1718314872467/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/smart_ptr/intrusive_ptr.hpp:16, + from /opt/conda/conda-bld/dicey_1718314872467/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/filesystem/exception.hpp:20, + from /opt/conda/conda-bld/dicey_1718314872467/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/filesystem.hpp:17, + from src/bed.h:4: + /opt/conda/conda-bld/dicey_1718314872467/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/config/pragma_message.hpp:24:34: note: '#pragma message: This header is deprecated. Use the facilities in or instead.' + 24 | # define BOOST_PRAGMA_MESSAGE(x) _Pragma(BOOST_STRINGIZE(message(x))) + | ^~~~~~~ + /opt/conda/conda-bld/dicey_1718314872467/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/config/header_deprecated.hpp:23:37: note: in expansion of macro 'BOOST_PRAGMA_MESSAGE' + 23 | # define BOOST_HEADER_DEPRECATED(a) BOOST_PRAGMA_MESSAGE("This header is deprecated. Use " a " instead.") + | ^~~~~~~~~~~~~~~~~~~~ + /opt/conda/conda-bld/dicey_1718314872467/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/progress.hpp:27:1: note: in expansion of macro 'BOOST_HEADER_DEPRECATED' + 27 | BOOST_HEADER_DEPRECATED( "the facilities in or " ) + | ^~~~~~~~~~~~~~~~~~~~~~~ + /opt/conda/conda-bld/dicey_1718314872467/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/config/pragma_message.hpp:24:34: note: '#pragma message: This header is deprecated. Use the facilities in instead.' + 24 | # define BOOST_PRAGMA_MESSAGE(x) _Pragma(BOOST_STRINGIZE(message(x))) + | ^~~~~~~ + /opt/conda/conda-bld/dicey_1718314872467/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/config/header_deprecated.hpp:23:37: note: in expansion of macro 'BOOST_PRAGMA_MESSAGE' + 23 | # define BOOST_HEADER_DEPRECATED(a) BOOST_PRAGMA_MESSAGE("This header is deprecated. Use " a " instead.") + | ^~~~~~~~~~~~~~~~~~~~ + /opt/conda/conda-bld/dicey_1718314872467/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/timer.hpp:25:1: note: in expansion of macro 'BOOST_HEADER_DEPRECATED' + 25 | BOOST_HEADER_DEPRECATED( "the facilities in " ) + | ^~~~~~~~~~~~~~~~~~~~~~~ + In file included from src/dicey.cpp:17: + src/hunter.h:65:35: warning: 'template struct std::binary_function' is deprecated [-Wdeprecated-declarations] + 65 | struct SortDnaHit : public std::binary_function { + | ^~~~~~~~~~~~~~~ + In file included from /opt/conda/conda-bld/dicey_1718314872467/_build_env/lib/gcc/aarch64-conda-linux-gnu/12.3.0/include/c/string:48, + from /opt/conda/conda-bld/dicey_1718314872467/_build_env/lib/gcc/aarch64-conda-linux-gnu/12.3.0/include/c/bits/locale_classes.h:40, + from /opt/conda/conda-bld/dicey_1718314872467/_build_env/lib/gcc/aarch64-conda-linux-gnu/12.3.0/include/c/bits/ios_base.h:41, + from /opt/conda/conda-bld/dicey_1718314872467/_build_env/lib/gcc/aarch64-conda-linux-gnu/12.3.0/include/c/ios:42, + from /opt/conda/conda-bld/dicey_1718314872467/_build_env/lib/gcc/aarch64-conda-linux-gnu/12.3.0/include/c/ostream:38, + from /opt/conda/conda-bld/dicey_1718314872467/_build_env/lib/gcc/aarch64-conda-linux-gnu/12.3.0/include/c/iostream:39, + from src/dicey.cpp:3: + /opt/conda/conda-bld/dicey_1718314872467/_build_env/lib/gcc/aarch64-conda-linux-gnu/12.3.0/include/c/bits/stl_function.h:131:12: note: declared here + 131 | struct binary_function + | ^~~~~~~~~~~~~~~ + In file included from src/dicey.cpp:18: + src/silica.h:80:37: warning: 'template struct std::binary_function' is deprecated [-Wdeprecated-declarations] + 80 | struct SortPrimer : public std::binary_function + | ^~~~~~~~~~~~~~~ + /opt/conda/conda-bld/dicey_1718314872467/_build_env/lib/gcc/aarch64-conda-linux-gnu/12.3.0/include/c/bits/stl_function.h:131:12: note: declared here + 131 | struct binary_function + | ^~~~~~~~~~~~~~~ + src/silica.h:100:39: warning: 'template struct std::binary_function' is deprecated [-Wdeprecated-declarations] + 100 | struct SortProducts : public std::binary_function + | ^~~~~~~~~~~~~~~ + /opt/conda/conda-bld/dicey_1718314872467/_build_env/lib/gcc/aarch64-conda-linux-gnu/12.3.0/include/c/bits/stl_function.h:131:12: note: declared here + 131 | struct binary_function + | ^~~~~~~~~~~~~~~ + In file included from src/padlock.h:34, + from src/dicey.cpp:21: + src/gtf.h:53:42: warning: 'template struct std::binary_function' is deprecated [-Wdeprecated-declarations] + 53 | struct SortIntervalLabel : public std::binary_function { + | ^~~~~~~~~~~~~~~ + /opt/conda/conda-bld/dicey_1718314872467/_build_env/lib/gcc/aarch64-conda-linux-gnu/12.3.0/include/c/bits/stl_function.h:131:12: note: declared here + 131 | struct binary_function + | ^~~~~~~~~~~~~~~ + src/gtf.h:60:42: warning: 'template struct std::binary_function' is deprecated [-Wdeprecated-declarations] + 60 | struct SortIntervalStart : public std::binary_function { + | ^~~~~~~~~~~~~~~ + /opt/conda/conda-bld/dicey_1718314872467/_build_env/lib/gcc/aarch64-conda-linux-gnu/12.3.0/include/c/bits/stl_function.h:131:12: note: declared here + 131 | struct binary_function + | ^~~~~~~~~~~~~~~ + make: *** [Makefile:60: src/dicey] Error 1 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/dicey_1718314872467/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/dicey/build_failure.osx-64.yaml b/recipes/dicey/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..bd4b827824d0d --- /dev/null +++ b/recipes/dicey/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: c8389fa92d55fba29aa3e922321084ba770fc8c234a709c8b440b779fa5268d0 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + make[3]: Leaving directory '$SRC_DIR/src/xxsds/build' + make[3]: Entering directory '$SRC_DIR/src/xxsds/build' + [ 91%] Building CXX object tutorial/CMakeFiles/expl-20.dir/expl-20.cpp.o + [ 91%] Linking CXX executable expl-20 + make[3]: Leaving directory '$SRC_DIR/src/xxsds/build' + [ 91%] Built target expl-20 + make[3]: Entering directory '$SRC_DIR/src/xxsds/build' + make[3]: Leaving directory '$SRC_DIR/src/xxsds/build' + make[3]: Entering directory '$SRC_DIR/src/xxsds/build' + [ 91%] Building CXX object tutorial/CMakeFiles/expl-21.dir/expl-21.cpp.o + [ 91%] Linking CXX executable expl-21 + make[3]: Leaving directory '$SRC_DIR/src/xxsds/build' + [ 91%] Built target expl-21 + make[3]: Entering directory '$SRC_DIR/src/xxsds/build' + make[3]: Leaving directory '$SRC_DIR/src/xxsds/build' + make[3]: Entering directory '$SRC_DIR/src/xxsds/build' + [ 91%] Building CXX object tutorial/CMakeFiles/expl-22.dir/expl-22.cpp.o + [ 91%] Linking CXX executable expl-22 + make[3]: Leaving directory '$SRC_DIR/src/xxsds/build' + [ 91%] Built target expl-22 + make[3]: Entering directory '$SRC_DIR/src/xxsds/build' + make[3]: Leaving directory '$SRC_DIR/src/xxsds/build' + make[3]: Entering directory '$SRC_DIR/src/xxsds/build' + [ 91%] Building CXX object tutorial/CMakeFiles/expl-23.dir/expl-23.cpp.o + [ 91%] Linking CXX executable expl-23 + make[3]: Leaving directory '$SRC_DIR/src/xxsds/build' + [ 91%] Built target expl-23 + make[3]: Entering directory '$SRC_DIR/src/xxsds/build' + make[3]: Leaving directory '$SRC_DIR/src/xxsds/build' + make[3]: Entering directory '$SRC_DIR/src/xxsds/build' + [ 91%] Building CXX object tutorial/CMakeFiles/expl-24.dir/expl-24.cpp.o + [ 95%] Linking CXX executable expl-24 + make[3]: Leaving directory '$SRC_DIR/src/xxsds/build' + [ 95%] Built target expl-24 + make[3]: Entering directory '$SRC_DIR/src/xxsds/build' + make[3]: Leaving directory '$SRC_DIR/src/xxsds/build' + make[3]: Entering directory '$SRC_DIR/src/xxsds/build' + [ 95%] Building CXX object tutorial/CMakeFiles/expl-25.dir/expl-25.cpp.o + [ 95%] Linking CXX executable expl-25 + make[3]: Leaving directory '$SRC_DIR/src/xxsds/build' + [ 95%] Built target expl-25 + make[3]: Entering directory '$SRC_DIR/src/xxsds/build' + make[3]: Leaving directory '$SRC_DIR/src/xxsds/build' + make[3]: Entering directory '$SRC_DIR/src/xxsds/build' + [ 95%] Building CXX object tutorial/CMakeFiles/expl-26.dir/expl-26.cpp.o + [ 95%] Linking CXX executable expl-26 + make[3]: Leaving directory '$SRC_DIR/src/xxsds/build' + [ 95%] Built target expl-26 + make[3]: Entering directory '$SRC_DIR/src/xxsds/build' + make[3]: Leaving directory '$SRC_DIR/src/xxsds/build' + make[3]: Entering directory '$SRC_DIR/src/xxsds/build' + [100%] Building CXX object tutorial/CMakeFiles/int-vector-tutorial.dir/int-vector-tutorial.cpp.o + [100%] Linking CXX executable int-vector-tutorial + make[3]: Leaving directory '$SRC_DIR/src/xxsds/build' + [100%] Built target int-vector-tutorial + make[3]: Entering directory '$SRC_DIR/src/xxsds/build' + make[3]: Leaving directory '$SRC_DIR/src/xxsds/build' + make[3]: Entering directory '$SRC_DIR/src/xxsds/build' + [100%] Building CXX object tutorial/CMakeFiles/rmq-example.dir/rmq-example.cpp.o + [100%] Linking CXX executable rmq-example + make[3]: Leaving directory '$SRC_DIR/src/xxsds/build' + [100%] Built target rmq-example + make[3]: Entering directory '$SRC_DIR/src/xxsds/build' + make[3]: Leaving directory '$SRC_DIR/src/xxsds/build' + make[3]: Entering directory '$SRC_DIR/src/xxsds/build' + [100%] Building CXX object tutorial/CMakeFiles/use-a-wavelet-tree.dir/use-a-wavelet-tree.cpp.o + [100%] Linking CXX executable use-a-wavelet-tree + make[3]: Leaving directory '$SRC_DIR/src/xxsds/build' + [100%] Built target use-a-wavelet-tree + make[2]: Leaving directory '$SRC_DIR/src/xxsds/build' + Install the project... + -- Install configuration: "Release" + make[1]: Leaving directory '$SRC_DIR/src/xxsds/build' + Copy pre-commit into .git/hooks + SUCCESS: sdsl was installed successfully! + The sdsl include files are located in '$SRC_DIR/src/sdslLite/include'. + The library files are located in '$SRC_DIR/src/sdslLite/lib'. + + Sample programs can be found in the examples-directory. + A program 'example.cpp' can be compiled with the command: + g -std=c14 -D__STDC_FORMAT_MACROS -I$SRC_DIR/src/sdslLite/include -L$SRC_DIR/src/sdslLite/lib -I$PREFIX/include -L$PREFIX/lib -Isrc/jlib/ -std=c14 -O3 -DNDEBUG -msse4.2 -Wall -Wextra -pedantic -ffast-math -funroll-loops -D__extern_always_inline="extern __always_inline" -stdlib=libc \ + -I$SRC_DIR/src/sdslLite/include -L$SRC_DIR/src/sdslLite/lib \ + example.cpp -ldivsufsort -ldivsufsort64 + + Tests in the test-directory + A cheat sheet in the extras/cheatsheet-directory. + Have fun! + x86_64-apple-darwin13.4.0-clang -D__STDC_FORMAT_MACROS -I$SRC_DIR/src/sdslLite/include -L$SRC_DIR/src/sdslLite/lib -I$PREFIX/include -L$PREFIX/lib -Isrc/jlib/ -std=c14 src/dicey.cpp -o src/dicey -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$SRC_DIR/src/htslib/ -L$SRC_DIR/src/htslib//lib -L$SRC_DIR/src/sdslLite//lib -lboost_iostreams -lboost_filesystem -lboost_system -lboost_program_options -lboost_date_time -ldl -lpthread -lhts -lz -llzma -lbz2 -Wl,-rpath,$SRC_DIR/src/htslib/ + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/dicey_1718321691422/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/dicey/meta.yaml b/recipes/dicey/meta.yaml index d98b84a2c5feb..d4c5c3060bf24 100644 --- a/recipes/dicey/meta.yaml +++ b/recipes/dicey/meta.yaml @@ -14,7 +14,7 @@ source: build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("dicey", max_pin="x.x") }} diff --git a/recipes/dinamo/meta.yaml b/recipes/dinamo/meta.yaml index 78a2ba7d3cfb2..ebf6efdd07a26 100644 --- a/recipes/dinamo/meta.yaml +++ b/recipes/dinamo/meta.yaml @@ -14,7 +14,7 @@ source: build: skip: True # [osx] - number: 5 + number: 6 run_exports: - {{ pin_subpackage(name|lower, max_pin="x") }} diff --git a/recipes/dinopy/build_failure.linux-64.yaml b/recipes/dinopy/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..a84df8bf6ae55 --- /dev/null +++ b/recipes/dinopy/build_failure.linux-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: b32e06a2d28c53a4176091b38819ceb929a5bc0e8271d53cd6bfb11afacbdea4 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: dependency issue +log: |2- + [32mnumpy [1.21.5|1.21.6][0m would require + [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; + [31mpython 3.12.* *_cpython[0m is not installable because there are no viable options + [31mpython [3.12.0|3.12.1|3.12.2|3.12.3][0m would require + [31mpython_abi 3.12.* *_cp312[0m, which conflicts with any installable versions previously reported; + [31mpython 3.12.0rc3[0m would require + [31m_python_rc[0m, which does not exist (perhaps a missing channel). + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2308, in build + output_metas = expand_outputs([(m, need_source_download, need_reparse_in_env)]) + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 916, in expand_outputs + for output_dict, m in deepcopy(_m).get_output_metadata_set( + File "/opt/conda/lib/python3.10/site-packages/conda_build/metadata.py", line 2737, in get_output_metadata_set + conda_packages = finalize_outputs_pass( + File "/opt/conda/lib/python3.10/site-packages/conda_build/metadata.py", line 1095, in finalize_outputs_pass + fm = finalize_metadata( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 650, in finalize_metadata + build_unsat, host_unsat = add_upstream_pins( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 491, in add_upstream_pins + host_deps, host_unsat, extra_run_specs_from_host = _read_upstream_pin_files( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 444, in _read_upstream_pin_files + deps, precs, unsat = get_env_dependencies( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 156, in get_env_dependencies + precs = environ.get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("_python_rc"), MatchSpec("python==3.12.0rc3=rc3_hab00c5b_1_cpython")} + Encountered problems while solving: + - nothing provides _python_rc needed by python-3.12.0rc3-rc3_hab00c5b_1_cpython + + Could not solve for environment specs + The following packages are incompatible + [32mcython >=3.0.0 [0m is installable with the potential options + [32mcython [3.0.0|3.0.1|3.0.2][0m would require + [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; + [32mcython [3.0.0|3.0.1|...|3.0.9][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32mcython [3.0.0|3.0.1|...|3.0.9][0m would require + [32mpython_abi 3.11.* *_cp311[0m, which can be installed; + [32mcython [3.0.0|3.0.1|...|3.0.9][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mcython [3.0.0|3.0.1|...|3.0.9][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mcython [3.0.0|3.0.1|...|3.0.9][0m would require + [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; + [31mcython [3.0.10|3.0.2|...|3.0.9][0m would require + [31mpython_abi 3.12.* *_cp312[0m, which conflicts with any installable versions previously reported; + [32mnumpy 1.21.* [0m is installable with the potential options + [32mnumpy [1.21.0|1.21.1|...|1.21.6][0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mnumpy [1.21.0|1.21.1|...|1.21.5][0m would require + [32mpython_abi 3.7 *_pypy37_pp73[0m, which can be installed; + [32mnumpy [1.21.0|1.21.1|...|1.21.6][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mnumpy [1.21.0|1.21.1|...|1.21.6][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mnumpy [1.21.3|1.21.4|1.21.5|1.21.6][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32mnumpy [1.21.5|1.21.6][0m would require + [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; + [32mnumpy [1.21.5|1.21.6][0m would require + [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; + [31mpython 3.12.* *_cpython[0m is not installable because there are no viable options + [31mpython [3.12.0|3.12.1|3.12.2|3.12.3][0m would require + [31mpython_abi 3.12.* *_cp312[0m, which conflicts with any installable versions previously reported; + [31mpython 3.12.0rc3[0m would require + [31m_python_rc[0m, which does not exist (perhaps a missing channel). +# Last 100 lines of the build log. diff --git a/recipes/dinopy/build_failure.linux-aarch64.yaml b/recipes/dinopy/build_failure.linux-aarch64.yaml new file mode 100644 index 0000000000000..e99e7ee08a9cc --- /dev/null +++ b/recipes/dinopy/build_failure.linux-aarch64.yaml @@ -0,0 +1,105 @@ +recipe_sha: b32e06a2d28c53a4176091b38819ceb929a5bc0e8271d53cd6bfb11afacbdea4 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: dependency issue +log: |2- + [32mnumpy [1.21.5|1.21.6][0m would require + [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; + [31mpython 3.12.* *_cpython[0m is not installable because there are no viable options + [31mpython [3.12.0|3.12.1|3.12.2|3.12.3][0m would require + [31mpython_abi 3.12.* *_cp312[0m, which conflicts with any installable versions previously reported; + [31mpython 3.12.0rc3[0m would require + [31m_python_rc[0m, which does not exist (perhaps a missing channel). + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2308, in build + output_metas = expand_outputs([(m, need_source_download, need_reparse_in_env)]) + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 916, in expand_outputs + for output_dict, m in deepcopy(_m).get_output_metadata_set( + File "/opt/conda/lib/python3.10/site-packages/conda_build/metadata.py", line 2737, in get_output_metadata_set + conda_packages = finalize_outputs_pass( + File "/opt/conda/lib/python3.10/site-packages/conda_build/metadata.py", line 1095, in finalize_outputs_pass + fm = finalize_metadata( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 650, in finalize_metadata + build_unsat, host_unsat = add_upstream_pins( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 491, in add_upstream_pins + host_deps, host_unsat, extra_run_specs_from_host = _read_upstream_pin_files( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 444, in _read_upstream_pin_files + deps, precs, unsat = get_env_dependencies( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 156, in get_env_dependencies + precs = environ.get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-aarch64: {MatchSpec("python==3.12.0rc3=rc3_h43d1f9e_1_cpython"), MatchSpec("_python_rc")} + Encountered problems while solving: + - nothing provides _python_rc needed by python-3.12.0rc3-rc3_h43d1f9e_1_cpython + + Could not solve for environment specs + The following packages are incompatible + [32mcython >=3.0.0 [0m is installable with the potential options + [32mcython [3.0.0|3.0.1|3.0.2][0m would require + [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; + [32mcython [3.0.0|3.0.1|...|3.0.9][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32mcython [3.0.0|3.0.1|...|3.0.9][0m would require + [32mpython_abi 3.11.* *_cp311[0m, which can be installed; + [32mcython [3.0.0|3.0.1|...|3.0.9][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mcython [3.0.0|3.0.1|...|3.0.9][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mcython [3.0.0|3.0.1|...|3.0.9][0m would require + [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; + [31mcython [3.0.10|3.0.2|...|3.0.9][0m would require + [31mpython_abi 3.12.* *_cp312[0m, which conflicts with any installable versions previously reported; + [32mnumpy 1.21.* [0m is installable with the potential options + [32mnumpy [1.21.0|1.21.1|...|1.21.5][0m would require + [32mpython_abi 3.7 *_pypy37_pp73[0m, which can be installed; + [32mnumpy [1.21.0|1.21.1|...|1.21.6][0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mnumpy [1.21.0|1.21.1|...|1.21.6][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mnumpy [1.21.0|1.21.1|...|1.21.6][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mnumpy [1.21.3|1.21.4|1.21.5|1.21.6][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32mnumpy [1.21.5|1.21.6][0m would require + [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; + [32mnumpy [1.21.5|1.21.6][0m would require + [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; + [31mpython 3.12.* *_cpython[0m is not installable because there are no viable options + [31mpython [3.12.0|3.12.1|3.12.2|3.12.3][0m would require + [31mpython_abi 3.12.* *_cp312[0m, which conflicts with any installable versions previously reported; + [31mpython 3.12.0rc3[0m would require + [31m_python_rc[0m, which does not exist (perhaps a missing channel). +# Last 100 lines of the build log. diff --git a/recipes/dinopy/build_failure.osx-64.yaml b/recipes/dinopy/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..6b7c429657a75 --- /dev/null +++ b/recipes/dinopy/build_failure.osx-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: b32e06a2d28c53a4176091b38819ceb929a5bc0e8271d53cd6bfb11afacbdea4 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: dependency issue +log: |2- + numpy [1.21.5|1.21.6] would require + python_abi 3.9 *_pypy39_pp73, which can be installed; + python 3.12.* *_cpython is not installable because there are no viable options + python [3.12.0|3.12.1|3.12.2|3.12.3] would require + python_abi 3.12.* *_cp312, which conflicts with any installable versions previously reported; + python 3.12.0rc3 would require + _python_rc, which does not exist (perhaps a missing channel). + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2308, in build + output_metas = expand_outputs([(m, need_source_download, need_reparse_in_env)]) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 916, in expand_outputs + for output_dict, m in deepcopy(_m).get_output_metadata_set( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 2737, in get_output_metadata_set + conda_packages = finalize_outputs_pass( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 1095, in finalize_outputs_pass + fm = finalize_metadata( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 650, in finalize_metadata + build_unsat, host_unsat = add_upstream_pins( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 491, in add_upstream_pins + host_deps, host_unsat, extra_run_specs_from_host = _read_upstream_pin_files( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 444, in _read_upstream_pin_files + deps, precs, unsat = get_env_dependencies( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 156, in get_env_dependencies + precs = environ.get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("python==3.12.0rc3=rc3_h30d4d87_1_cpython"), MatchSpec("_python_rc")} + Encountered problems while solving: + - nothing provides _python_rc needed by python-3.12.0rc3-rc3_h30d4d87_1_cpython + + Could not solve for environment specs + The following packages are incompatible + cython >=3.0.0 is installable with the potential options + cython [3.0.0|3.0.1|3.0.2] would require + python_abi 3.8 *_pypy38_pp73, which can be installed; + cython [3.0.0|3.0.1|...|3.0.9] would require + python_abi 3.10.* *_cp310, which can be installed; + cython [3.0.0|3.0.1|...|3.0.9] would require + python_abi 3.11.* *_cp311, which can be installed; + cython [3.0.0|3.0.1|...|3.0.9] would require + python_abi 3.8.* *_cp38, which can be installed; + cython [3.0.0|3.0.1|...|3.0.9] would require + python_abi 3.9.* *_cp39, which can be installed; + cython [3.0.0|3.0.1|...|3.0.9] would require + python_abi 3.9 *_pypy39_pp73, which can be installed; + cython [3.0.10|3.0.2|...|3.0.9] would require + python_abi 3.12.* *_cp312, which conflicts with any installable versions previously reported; + numpy 1.21.* is installable with the potential options + numpy [1.21.0|1.21.1|...|1.21.6] would require + python_abi 3.7.* *_cp37m, which can be installed; + numpy [1.21.0|1.21.1|...|1.21.5] would require + python_abi 3.7 *_pypy37_pp73, which can be installed; + numpy [1.21.0|1.21.1|...|1.21.6] would require + python_abi 3.8.* *_cp38, which can be installed; + numpy [1.21.0|1.21.1|...|1.21.6] would require + python_abi 3.9.* *_cp39, which can be installed; + numpy [1.21.3|1.21.4|1.21.5|1.21.6] would require + python_abi 3.10.* *_cp310, which can be installed; + numpy [1.21.5|1.21.6] would require + python_abi 3.8 *_pypy38_pp73, which can be installed; + numpy [1.21.5|1.21.6] would require + python_abi 3.9 *_pypy39_pp73, which can be installed; + python 3.12.* *_cpython is not installable because there are no viable options + python [3.12.0|3.12.1|3.12.2|3.12.3] would require + python_abi 3.12.* *_cp312, which conflicts with any installable versions previously reported; + python 3.12.0rc3 would require + _python_rc, which does not exist (perhaps a missing channel). +# Last 100 lines of the build log. diff --git a/recipes/dinopy/meta.yaml b/recipes/dinopy/meta.yaml index a0b3df2603d84..24205b2d4b946 100644 --- a/recipes/dinopy/meta.yaml +++ b/recipes/dinopy/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 9b2238c20c946a7ea34b979fec4dd182f3474958e9a03075dfbbb464e9d84028 build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage("dinopy", max_pin="x") }} diff --git a/recipes/dnaio/meta.yaml b/recipes/dnaio/meta.yaml index 4ca1d76af1339..0d5e1798c520f 100644 --- a/recipes/dnaio/meta.yaml +++ b/recipes/dnaio/meta.yaml @@ -9,9 +9,8 @@ source: sha256: 4786dc63614b9f3011463d9ea9d981723dd38d1091a415a557f71d8c74400f38 build: - number: 0 + number: 1 script: "{{ PYTHON }} -m pip install . --no-deps -vv" - skip: True # [py27] run_exports: - {{ pin_subpackage('dnaio', max_pin="x") }} diff --git a/recipes/dragmap/build_failure.linux-64.yaml b/recipes/dragmap/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..9f79955e673c2 --- /dev/null +++ b/recipes/dragmap/build_failure.linux-64.yaml @@ -0,0 +1,106 @@ +recipe_sha: 223055cf2267b7efb66b69e6037328538cab10f24abefbe44c2b2624fe50c80a # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + Success + Extracting download + source tree in: /opt/conda/conda-bld/dragmap_1717777543911/work + export PREFIX=/opt/conda/conda-bld/dragmap_1717777543911/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place + export BUILD_PREFIX=/opt/conda/conda-bld/dragmap_1717777543911/_build_env + export SRC_DIR=/opt/conda/conda-bld/dragmap_1717777543911/work + INFO: activate-binutils_linux-64.sh made the following environmental changes: + ADDR2LINE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-addr2line + AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar + AS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-as + CXXFILT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cfilt + ELFEDIT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-elfedit + GPROF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gprof + LD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld + LD_GOLD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld.gold + NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-nm + OBJCOPY=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objcopy + OBJDUMP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objdump + RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib + READELF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-readelf + SIZE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-size + STRINGS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strings + STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip + INFO: activate-gcc_linux-64.sh made the following environmental changes: + BUILD=x86_64-conda-linux-gnu + CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dragmap-1.3.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr + CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot + CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu + CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu + CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dragmap-1.3.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + INFO: activate-gxx_linux-64.sh made the following environmental changes: + CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dragmap-1.3.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/dragmap-1.3.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-g + making $SRC_DIR/build/release/compare.o + making $SRC_DIR/build/release/workflow/DualFastq2SamWorkflow.o + making $SRC_DIR/build/release/workflow/GenHashTableWorkflow.o + making $SRC_DIR/build/release/workflow/Input2SamWorkflow.o + making $SRC_DIR/build/release/libdragmap-workflow.a + making $SRC_DIR/build/release/align/Aligner.o + making $SRC_DIR/build/release/align/AlignmentGenerator.o + making $SRC_DIR/build/release/align/AlignmentRescue.o + making $SRC_DIR/build/release/align/Alignments.o + making $SRC_DIR/build/release/align/CalculateRefStartEnd.o + making $SRC_DIR/build/release/align/Cigar.o + making $SRC_DIR/build/release/align/InsertSizeDistribution.o + making $SRC_DIR/build/release/align/PairBuilder.o + making $SRC_DIR/build/release/align/Pairs.o + making $SRC_DIR/build/release/align/SinglePicker.o + making $SRC_DIR/build/release/align/SmithWaterman.o + making $SRC_DIR/build/release/align/Tlen.o + making $SRC_DIR/build/release/align/VectorSmithWaterman.o + making $SRC_DIR/build/release/align/Wavefront.o + making $SRC_DIR/build/release/libdragmap-align.a + making $SRC_DIR/build/release/map/BestIntervalTracker.o + making $SRC_DIR/build/release/map/ChainBuilder.o + making $SRC_DIR/build/release/map/Mapper.o + /opt/conda/conda-bld/dragmap_1717777543911/work/src/lib/map/Mapper.cpp: In member function 'void dragenos::map::Mapper::addToPositionChains(const Seed&, dragenos::map::ChainBuilder&, std::vector&, uint32_t&, uint32_t&) const': + /opt/conda/conda-bld/dragmap_1717777543911/work/src/lib/map/Mapper.cpp:337:38: error: 'make_iterator_range' is not a member of 'boost'; did you mean 'iterator_range'? + 337 | for (const auto& record : boost::make_iterator_range(hashRecords_.rbegin(), hashRecords_.rend())) { + | ^~~~~~~~~~~~~~~~~~~ + | iterator_range + make: *** [/opt/conda/conda-bld/dragmap_1717777543911/work/make/lib.mk:110: /opt/conda/conda-bld/dragmap_1717777543911/work/build/release/map/Mapper.o] Error 1 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/dragmap_1717777543911/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. +reason: |- + missing license diff --git a/recipes/dragmap/meta.yaml b/recipes/dragmap/meta.yaml index d2c9d1b700150..530041aa32628 100644 --- a/recipes/dragmap/meta.yaml +++ b/recipes/dragmap/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 3 + number: 4 skip: True # [osx] requirements: diff --git a/recipes/dropest/build_failure.linux-64.yaml b/recipes/dropest/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..0f3f1c8db969c --- /dev/null +++ b/recipes/dropest/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 7b9055e61d705d6f8c6facf7d825e0f92a4be7eb5e6c9bf6c8c85b608b2f2c9c # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + -- Detecting CXX compile features - done + -- Found Boost: $PREFIX/lib/cmake/Boost-1.85.0/BoostConfig.cmake (found suitable version "1.85.0", minimum required is "1.54.0") found components: filesystem iostreams log system thread unit_test_framework + -- ** Boost Include: $PREFIX/include + -- ** Boost Libraries: $PREFIX/lib + -- ** Boost Link-Libs: Boost::filesystem;Boost::iostreams;Boost::log;Boost::system;Boost::thread;Boost::unit_test_framework + CMake Warning (dev) at CMake/deps.cmake:27 (find_package): + Policy CMP0074 is not set: find_package uses _ROOT variables. + Run "cmake --help-policy CMP0074" for policy details. Use the cmake_policy + command to set the policy and suppress this warning. + + CMake variable ZLIB_ROOT is set to: + + /opt/conda/conda-bld/dropest_1717710430209/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place + + For compatibility, CMake is ignoring the variable. + Call Stack (most recent call first): + CMakeLists.txt:18 (include) + This warning is for project developers. Use -Wno-dev to suppress it. + + -- Found ZLIB: $PREFIX/lib/libz.so (found version "1.2.13") + -- Found Threads: TRUE + CMake Warning (dev) at /opt/conda/conda-bld/dropest_1717710430209/_build_env/share/cmake-3.29/Modules/FindPackageHandleStandardArgs.cmake:438 (message): + The package name passed to find_package_handle_standard_args (BAMTOOLS) + does not match the name of the calling package (BamTools). This can lead + to problems in calling code that expects find_package result variables + (e.g., _FOUND) to follow a certain pattern. + Call Stack (most recent call first): + CMake/FindBamTools.cmake:15 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) + CMake/deps.cmake:31 (find_package) + CMakeLists.txt:18 (include) + This warning is for project developers. Use -Wno-dev to suppress it. + + -- Found BAMTOOLS: $PREFIX/lib/../lib/libbamtools.so + CMake Warning (dev) at CMake/deps.cmake:34 (find_package): + Policy CMP0074 is not set: find_package uses _ROOT variables. + Run "cmake --help-policy CMP0074" for policy details. Use the cmake_policy + command to set the policy and suppress this warning. + + CMake variable R_ROOT is set to: + + /opt/conda/conda-bld/dropest_1717710430209/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place + + For compatibility, CMake is ignoring the variable. + Call Stack (most recent call first): + CMakeLists.txt:18 (include) + This warning is for project developers. Use -Wno-dev to suppress it. + + During startup - Warning message: + Setting LC_TIME failed, using "C" + During startup - Warning message: + Setting LC_TIME failed, using "C" + During startup - Warning message: + Setting LC_TIME failed, using "C" + During startup - Warning message: + Setting LC_TIME failed, using "C" + -- Found R: $PREFIX/lib/R/lib/libR.so + -- Found R: $PREFIX + -- Configuring done (1.5s) + -- Generating done (0.1s) + -- Build files have been written to: $SRC_DIR/build + [ 1%] Building CXX object CMakeFiles/DropTools.dir/Tools/CollisionsAdjuster.cpp.o + [ 2%] Building CXX object CMakeFiles/DropTools.dir/Tools/GeneAnnotation/GtfRecord.cpp.o + [ 4%] Building CXX object CMakeFiles/DropTools.dir/Tools/GeneAnnotation/Interval.cpp.o + [ 5%] Building CXX object CMakeFiles/DropTools.dir/Tools/GeneAnnotation/RefGenesContainer.cpp.o + [ 7%] Building CXX object CMakeFiles/DropTools.dir/Tools/Logs.cpp.o + [ 8%] Building CXX object CMakeFiles/DropTools.dir/Tools/ReadParameters.cpp.o + /opt/conda/conda-bld/dropest_1717710430209/work/Tools/ReadParameters.cpp: In static member function 'static std::pair, Tools::ReadParameters> Tools::ReadParameters::parse_from_string(const std::string&, char)': + /opt/conda/conda-bld/dropest_1717710430209/work/Tools/ReadParameters.cpp:61:22: error: 'vector' is not a member of 'std' + 61 | std::vector parsed; + | ^~~~~~ + /opt/conda/conda-bld/dropest_1717710430209/work/Tools/ReadParameters.cpp:2:1: note: 'std::vector' is defined in header ''; did you forget to '#include '? + 1 | #include "ReadParameters.h" + |#include + 2 | + /opt/conda/conda-bld/dropest_1717710430209/work/Tools/ReadParameters.cpp:61:40: error: expected primary-expression before '>' token + 61 | std::vector parsed; + | ^ + /opt/conda/conda-bld/dropest_1717710430209/work/Tools/ReadParameters.cpp:61:42: error: 'parsed' was not declared in this scope; did you mean 'pause'? + 61 | std::vector parsed; + | ^~~~~~ + | pause + make[2]: *** [CMakeFiles/DropTools.dir/build.make:146: CMakeFiles/DropTools.dir/Tools/ReadParameters.cpp.o] Error 1 + make[1]: *** [CMakeFiles/Makefile2:101: CMakeFiles/DropTools.dir/all] Error 2 + make: *** [Makefile:146: all] Error 2 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/dropest_1717710430209/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/dropest/meta.yaml b/recipes/dropest/meta.yaml index 281e7c2d09ed4..c4592887eb584 100644 --- a/recipes/dropest/meta.yaml +++ b/recipes/dropest/meta.yaml @@ -12,7 +12,7 @@ source: - patch build: - number: 7 + number: 8 skip: True # [osx] rpaths: - lib/R/lib/ diff --git a/recipes/dropkick/build_failure.linux-64.yaml b/recipes/dropkick/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..5022fb1ccfb2d --- /dev/null +++ b/recipes/dropkick/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 5f38d18fef2ee8a3e176dad540b385df72505761def5675d5192baff1c3cc4c9 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + libllvm14: 14.0.6-hcd5def8_4 conda-forge + libnghttp2: 1.58.0-h47da74e_1 conda-forge + libnsl: 2.0.1-hd590300_0 conda-forge + libopenblas: 0.3.25-pthreads_h413a1c8_0 conda-forge + libpng: 1.6.43-h2797004_0 conda-forge + libsqlite: 3.45.3-h2797004_0 conda-forge + libssh2: 1.11.0-h0841786_0 conda-forge + libstdcxx-ng: 13.2.0-hc0a3c3a_7 conda-forge + libtiff: 4.5.1-h8b53f26_1 conda-forge + libuuid: 2.38.1-h0b41bf4_0 conda-forge + libwebp-base: 1.4.0-hd590300_0 conda-forge + libxcb: 1.15-h0b41bf4_0 conda-forge + libxcrypt: 4.4.36-hd590300_1 conda-forge + libxml2: 2.12.7-hc051c1a_1 conda-forge + libzlib: 1.3.1-h4ab18f5_1 conda-forge + libzopfli: 1.0.3-h9c3ff4c_0 conda-forge + llvmlite: 0.41.1-py38h94a1851_0 conda-forge + lz4-c: 1.9.4-hcb278e6_0 conda-forge + matplotlib-base: 3.7.3-py38h58ed7fa_0 conda-forge + munkres: 1.1.4-pyh9f0ad1d_0 conda-forge + natsort: 8.4.0-pyhd8ed1ab_0 conda-forge + ncurses: 6.5-h59595ed_0 conda-forge + networkx: 3.1-pyhd8ed1ab_0 conda-forge + numba: 0.58.1-py38h4144172_0 conda-forge + numpy: 1.24.4-py38h59b608b_0 conda-forge + openjpeg: 2.5.0-hfec8fc6_2 conda-forge + openssl: 3.3.1-h4ab18f5_0 conda-forge + packaging: 24.0-pyhd8ed1ab_0 conda-forge + pandas: 2.0.3-py38h01efb38_1 conda-forge + patsy: 0.5.6-pyhd8ed1ab_0 conda-forge + pillow: 10.0.0-py38h885162f_0 conda-forge + pip: 24.0-pyhd8ed1ab_0 conda-forge + platformdirs: 4.2.2-pyhd8ed1ab_0 conda-forge + pooch: 1.8.1-pyhd8ed1ab_0 conda-forge + pthread-stubs: 0.4-h36c2ea0_1001 conda-forge + pynndescent: 0.5.12-pyhca7485f_0 conda-forge + pyparsing: 3.1.2-pyhd8ed1ab_0 conda-forge + pysocks: 1.7.1-pyha2e5f31_6 conda-forge + python: 3.8.19-hd12c33a_0_cpython conda-forge + python-dateutil: 2.9.0-pyhd8ed1ab_0 conda-forge + python-tzdata: 2024.1-pyhd8ed1ab_0 conda-forge + python_abi: 3.8-4_cp38 conda-forge + pytz: 2024.1-pyhd8ed1ab_0 conda-forge + pywavelets: 1.4.1-py38h7f0c24c_1 conda-forge + readline: 8.2-h8228510_1 conda-forge + requests: 2.32.3-pyhd8ed1ab_0 conda-forge + scanpy: 1.10.1-pyhd8ed1ab_0 conda-forge + scikit-image: 0.21.0-py38h17151c0_0 conda-forge + scikit-learn: 1.3.2-py38ha25d942_2 conda-forge + scipy: 1.10.1-py38h59b608b_3 conda-forge + seaborn: 0.13.2-hd8ed1ab_2 conda-forge + seaborn-base: 0.13.2-pyhd8ed1ab_2 conda-forge + session-info: 1.0.0-pyhd8ed1ab_0 conda-forge + setuptools: 70.0.0-pyhd8ed1ab_0 conda-forge + six: 1.16.0-pyh6c4a22f_0 conda-forge + snappy: 1.1.10-hdb0a2a9_1 conda-forge + statsmodels: 0.14.1-py38h7f0c24c_0 conda-forge + stdlib-list: 0.10.0-pyhd8ed1ab_0 conda-forge + tbb: 2021.12.0-h297d8ca_1 conda-forge + threadpoolctl: 3.5.0-pyhc1e730c_0 conda-forge + tifffile: 2023.7.10-pyhd8ed1ab_0 conda-forge + tk: 8.6.13-noxft_h4845f30_101 conda-forge + tqdm: 4.66.4-pyhd8ed1ab_0 conda-forge + umap-learn: 0.5.5-py38h578d9bd_1 conda-forge + unicodedata2: 15.1.0-py38h01eb140_0 conda-forge + urllib3: 2.2.1-pyhd8ed1ab_0 conda-forge + wheel: 0.43.0-pyhd8ed1ab_1 conda-forge + xorg-libxau: 1.0.11-hd590300_0 conda-forge + xorg-libxdmcp: 1.1.3-h7f98852_0 conda-forge + xz: 5.2.6-h166bdaf_0 conda-forge + zfp: 1.0.1-h59595ed_0 conda-forge + zipp: 3.17.0-pyhd8ed1ab_0 conda-forge + zlib-ng: 2.0.7-h0b41bf4_0 conda-forge + zstd: 1.5.6-ha6fb4c9_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + export PREFIX=/opt/conda/conda-bld/dropkick_1717625864122/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold + export SRC_DIR=/opt/conda/conda-bld/dropkick_1717625864122/test_tmp + Traceback (most recent call last): + File "/opt/conda/conda-bld/dropkick_1717625864122/test_tmp/run_test.py", line 2, in + import: 'dropkick' + import dropkick + File "/opt/conda/conda-bld/dropkick_1717625864122/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/dropkick/__init__.py", line 5, in + from .api import ( + File "/opt/conda/conda-bld/dropkick_1717625864122/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/dropkick/api.py", line 13, in + import scanpy as sc + File "/opt/conda/conda-bld/dropkick_1717625864122/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/scanpy/__init__.py", line 45, in + from . import datasets, experimental, external, get, logging, metrics, queries + File "/opt/conda/conda-bld/dropkick_1717625864122/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/scanpy/datasets/__init__.py", line 5, in + from ._datasets import ( + File "/opt/conda/conda-bld/dropkick_1717625864122/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/scanpy/datasets/_datasets.py", line 15, in + from ..readwrite import read, read_visium + File "/opt/conda/conda-bld/dropkick_1717625864122/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.8/site-packages/scanpy/readwrite.py", line 1015 + ) as t, + ^ + SyntaxError: invalid syntax + WARNING: Tests failed for dropkick-1.2.8-py38h452d750_1.tar.bz2 - moving package to /opt/conda/conda-bld/broken + TESTS FAILED: dropkick-1.2.8-py38h452d750_1.tar.bz2 +# Last 100 lines of the build log. diff --git a/recipes/dropkick/meta.yaml b/recipes/dropkick/meta.yaml index 8454489e5b6ba..4a04c74f228f1 100644 --- a/recipes/dropkick/meta.yaml +++ b/recipes/dropkick/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 4bfbd23984ac11669691818f29e1f0033e32dd7c2236b16d8a2f20fe60c923c6 build: - number: 0 + number: 1 # "Failed to find libgfortran.3.dylib" build error on OSX skip: True # [py < 36 or osx] script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation diff --git a/recipes/dsrc/meta.yaml b/recipes/dsrc/meta.yaml index 00ae8e3dcffe7..94cc1d01e620e 100644 --- a/recipes/dsrc/meta.yaml +++ b/recipes/dsrc/meta.yaml @@ -7,7 +7,7 @@ source: sha256: a8ddbe986e0477d09ada2b977ae7854e8e8361392b90620192a2cb06b5dc8a58 build: - number: 6 + number: 7 requirements: build: diff --git a/recipes/dupsifter/meta.yaml b/recipes/dupsifter/meta.yaml index 2d91cf55de8e3..43bc3d576002f 100644 --- a/recipes/dupsifter/meta.yaml +++ b/recipes/dupsifter/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('dupsifter', max_pin='x') }} diff --git a/recipes/egglib/meta.yaml b/recipes/egglib/meta.yaml index db7cc9d666615..5faf68cd3fe00 100644 --- a/recipes/egglib/meta.yaml +++ b/recipes/egglib/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 596838f6504c5a0f7ae9da9fbe41a595c3113e27d764e1a09a9e8795ef79d056 build: - number: 0 + number: 1 skip: True # [py < 38 or osx] script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv entry_points: diff --git a/recipes/elector/meta.yaml b/recipes/elector/meta.yaml index 5e639b5b4dadb..2f241be4fc74b 100644 --- a/recipes/elector/meta.yaml +++ b/recipes/elector/meta.yaml @@ -13,7 +13,7 @@ source: - elector_utils.patch build: - number: 4 + number: 5 skip: True # [osx or py<30] requirements: diff --git a/recipes/emboss/5.0.0/meta.yaml b/recipes/emboss/5.0.0/meta.yaml index 18ae04ae65371..b4ce8b6a22524 100644 --- a/recipes/emboss/5.0.0/meta.yaml +++ b/recipes/emboss/5.0.0/meta.yaml @@ -3,7 +3,7 @@ package: version: "5.0.0" build: - number: 4 + number: 5 source: - url: http://depot.galaxyproject.org/package/linux/x86_64/emboss/emboss-5.0.0-Linux-x86_64.tgz # [linux] diff --git a/recipes/emboss/meta.yaml b/recipes/emboss/meta.yaml index 41e9c5d1c5814..407d3b8396c8c 100644 --- a/recipes/emboss/meta.yaml +++ b/recipes/emboss/meta.yaml @@ -3,7 +3,7 @@ package: version: "6.6.0" build: - number: 9 + number: 10 skip: True # [osx] run_exports: - {{ pin_subpackage("emboss", max_pin="x.x") }} @@ -43,4 +43,4 @@ test: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/emu-pca/build_failure.osx-64.yaml b/recipes/emu-pca/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..faf6c61b044ce --- /dev/null +++ b/recipes/emu-pca/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: c8fdd7d1be49e7c2e5e03c78e8ef8e5da084a2de40931b17429baec27d330480 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + ERROR: Failed building wheel for emu + ERROR: Could not build wheels for emu, which is required to install pyproject.toml-based projects + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/emu-pca_1717514596039/work + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/emu-pca_1717514596039/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/emu-pca_1717514596039/_build_env + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/emu-pca_1717514596039/work/conda_build.sh']' returned non-zero exit status 1. + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/emu-pca_1717514596039/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/emu-pca-1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/emu-pca-1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + Using pip 24.0 from $PREFIX/lib/python3.12/site-packages/pip (python 3.12) + Non-user install because user site-packages disabled + Ignoring indexes: https://pypi.org/simple + Created temporary directory: /private/tmp/pip-build-tracker-pcf71fuv + Initialized build tracking at /private/tmp/pip-build-tracker-pcf71fuv + Created build tracker: /private/tmp/pip-build-tracker-pcf71fuv + Entered build tracker: /private/tmp/pip-build-tracker-pcf71fuv + Created temporary directory: /private/tmp/pip-install-_4p1fpa8 + Created temporary directory: /private/tmp/pip-ephem-wheel-cache-pg6d97ox + Processing $SRC_DIR + Added file://$SRC_DIR to build tracker '/private/tmp/pip-build-tracker-pcf71fuv' + Created temporary directory: /private/tmp/pip-modern-metadata-x9ykve7d + Preparing metadata (pyproject.toml): started + Preparing metadata (pyproject.toml): finished with status 'done' + Source in $SRC_DIR has version 1.0, which satisfies requirement emu==1.0 from file://$SRC_DIR + Removed emu==1.0 from file://$SRC_DIR from build tracker '/private/tmp/pip-build-tracker-pcf71fuv' + Created temporary directory: /private/tmp/pip-unpack-ylygux9m + Building wheels for collected packages: emu + Created temporary directory: /private/tmp/pip-wheel-f2hnm5l2 + Destination directory: /private/tmp/pip-wheel-f2hnm5l2 + Building wheel for emu (pyproject.toml): started + Building wheel for emu (pyproject.toml): finished with status 'error' + Failed to build emu + Exception information: + Traceback (most recent call last): + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper + status = run_func(*args) + ^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper + return func(self, options, args) + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/commands/install.py", line 429, in run + raise InstallationError( + pip._internal.exceptions.InstallationError: Could not build wheels for emu, which is required to install pyproject.toml-based projects + Removed build tracker: '/private/tmp/pip-build-tracker-pcf71fuv' +# Last 100 lines of the build log. diff --git a/recipes/emu-pca/meta.yaml b/recipes/emu-pca/meta.yaml index 4e4663d86816d..3606b1fe2ba7c 100644 --- a/recipes/emu-pca/meta.yaml +++ b/recipes/emu-pca/meta.yaml @@ -10,7 +10,7 @@ source: md5: b79e9a2f72b8b83361a5542edc1c4ca7 build: - number: 0 + number: 1 script: - "{{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation" run_exports: diff --git a/recipes/encode-blacklist/meta.yaml b/recipes/encode-blacklist/meta.yaml index 43bf5b3d2e40a..0104c2736ae6b 100644 --- a/recipes/encode-blacklist/meta.yaml +++ b/recipes/encode-blacklist/meta.yaml @@ -12,7 +12,7 @@ source: - Makefile.patch build: - number: 4 + number: 5 requirements: build: diff --git a/recipes/epic2/meta.yaml b/recipes/epic2/meta.yaml index 278c65055a381..bafbd7682eb1c 100644 --- a/recipes/epic2/meta.yaml +++ b/recipes/epic2/meta.yaml @@ -11,7 +11,7 @@ source: sha256: '{{ hash_value }}' build: - number: 7 + number: 8 # Compilation errors on OSX skip: True # [osx or py27] run_exports: diff --git a/recipes/epicseg/build_failure.linux-64.yaml b/recipes/epicseg/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..45565432d9a6c --- /dev/null +++ b/recipes/epicseg/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 4e8291e324315102dfd7965b671810693a072508ebc68cbb1d66cbefff5ef4fb # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + ELFEDIT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-elfedit + GPROF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gprof + LD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld + LD_GOLD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld.gold + NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-nm + OBJCOPY=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objcopy + OBJDUMP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objdump + RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib + READELF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-readelf + SIZE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-size + STRINGS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strings + STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip + INFO: activate-gcc_linux-64.sh made the following environmental changes: + BUILD=x86_64-conda-linux-gnu + CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/epicseg-1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr + CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot + CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu + CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu + CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/epicseg-1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + During startup - Warning message: + Setting LC_TIME failed, using "C" + * installing to library /opt/conda/conda-bld/epicseg_1717710840584/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/lib/R/library + * installing *source* package epicseg ... + ** using staged installation + ** libs + using C compiler: x86_64-conda-linux-gnu-c (conda-forge gcc 13.2.0-7) 13.2.0 + using C11 + x86_64-conda-linux-gnu-c -std=gnu11 -I"$PREFIX/lib/R/include" -DNDEBUG -fopenmp -I'$PREFIX/lib/R/library/Rcpp/include' -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -I$PREFIX/include -Wl,-rpath-link,$PREFIX/lib -fpic -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=/home/conda/feedstock_root/build_artifacts/r-base-split_1714471492496/work=/usr/local/src/conda/r-base-4.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c RcppExports.cpp -o RcppExports.o + x86_64-conda-linux-gnu-c -std=gnu11 -I"$PREFIX/lib/R/include" -DNDEBUG -fopenmp -I'$PREFIX/lib/R/library/Rcpp/include' -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -I$PREFIX/include -Wl,-rpath-link,$PREFIX/lib -fpic -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=/home/conda/feedstock_root/build_artifacts/r-base-split_1714471492496/work=/usr/local/src/conda/r-base-4.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c misc.cpp -o misc.o + In file included from clist.h:2, + from misc.cpp:4: + array.h: In function 'void dgemm(Mat&, Mat&, Mat&, double, double, bool, bool)': + array.h:277:20: error: too few arguments to function 'void dgemm_(const char*, const char*, const int*, const int*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*, size_t, size_t)' + 277 | F77_CALL(dgemm)(TA, TB, &M, &N, &K, &alpha, A.ptr, &A.nrow, + | ^ + In file included from /opt/conda/conda-bld/epicseg_1717710840584/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/lib/R/include/R.h:78, + from /opt/conda/conda-bld/epicseg_1717710840584/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/lib/R/library/Rcpp/include/Rcpp/r/headers.h:66, + from /opt/conda/conda-bld/epicseg_1717710840584/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/lib/R/library/Rcpp/include/RcppCommon.h:30, + from /opt/conda/conda-bld/epicseg_1717710840584/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/lib/R/library/Rcpp/include/Rcpp.h:27, + from misc.cpp:1: + /opt/conda/conda-bld/epicseg_1717710840584/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/lib/R/include/R_ext/BLAS.h:207:10: note: declared here + 207 | F77_NAME(dgemm)(const char *transa, const char *transb, const int *m, + | ^~~~~ + /opt/conda/conda-bld/epicseg_1717710840584/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/lib/R/include/R_ext/RS.h:77:25: note: in definition of macro 'F77_CALL' + 77 | # define F77_CALL(x) x ## _ + | ^ + /opt/conda/conda-bld/epicseg_1717710840584/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/lib/R/include/R_ext/BLAS.h:207:1: note: in expansion of macro 'F77_NAME' + 207 | F77_NAME(dgemm)(const char *transa, const char *transb, const int *m, + | ^~~~~~~~ + array.h: In function 'void dgemv(Mat, Vec, Vec, double, double, bool)': + array.h:294:20: error: too few arguments to function 'void dgemv_(const char*, const int*, const int*, const double*, const double*, const int*, const double*, const int*, const double*, double*, const int*, size_t)' + 294 | F77_CALL(dgemv)(T, &A.nrow, &A.ncol, &alpha, A.ptr, &A.nrow, X.ptr, &one, + | ^ + /opt/conda/conda-bld/epicseg_1717710840584/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/lib/R/include/R_ext/BLAS.h:107:10: note: declared here + 107 | F77_NAME(dgemv)(const char *trans, const int *m, const int *n, + | ^~~~~ + /opt/conda/conda-bld/epicseg_1717710840584/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/lib/R/include/R_ext/RS.h:77:25: note: in definition of macro 'F77_CALL' + 77 | # define F77_CALL(x) x ## _ + | ^ + /opt/conda/conda-bld/epicseg_1717710840584/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/lib/R/include/R_ext/BLAS.h:107:1: note: in expansion of macro 'F77_NAME' + 107 | F77_NAME(dgemv)(const char *trans, const int *m, const int *n, + | ^~~~~~~~ + make: *** [/opt/conda/conda-bld/epicseg_1717710840584/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/lib/R/etc/Makeconf:200: misc.o] Error 1 + ERROR: compilation failed for package epicseg + * removing /opt/conda/conda-bld/epicseg_1717710840584/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/lib/R/library/epicseg + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/epicseg_1717710840584/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/epicseg/build_failure.osx-64.yaml b/recipes/epicseg/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..d1c9c61cbd30e --- /dev/null +++ b/recipes/epicseg/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 4e8291e324315102dfd7965b671810693a072508ebc68cbb1d66cbefff5ef4fb # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + | ^ + /opt/mambaforge/envs/bioconda/conda-bld/epicseg_1717699192253/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/R/include/R_ext/RS.h:77:22: note: expanded from macro 'F77_CALL' + 77 | # define F77_CALL(x) x ## _ + | ^ + :313:1: note: expanded from here + 313 | dgemv_ + | ^ + 2 errors generated. + make: *** [/opt/mambaforge/envs/bioconda/conda-bld/epicseg_1717699192253/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/R/etc/Makeconf:200: misc.o] Error 1 + ERROR: compilation failed for package epicseg + * removing /opt/mambaforge/envs/bioconda/conda-bld/epicseg_1717699192253/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/R/library/epicseg + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/epicseg_1717699192253/work + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/epicseg_1717699192253/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/epicseg_1717699192253/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/epicseg_1717699192253/work + api.build( + INFO: activate-gfortran_osx-64.sh made the following environmental changes: + DEBUG_FFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/epicseg-1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -Og -g -Wall -Wextra -fcheck=all -fbacktrace -fimplicit-none -fvar-tracking-assignments + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + DEBUG_FORTRANFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/epicseg-1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -Og -g -Wall -Wextra -fcheck=all -fbacktrace -fimplicit-none -fvar-tracking-assignments + F77=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + F90=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + F95=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + FC=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + FC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + FFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/epicseg-1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/epicseg_1717699192253/work/conda_build.sh']' returned non-zero exit status 1. + FORTRANFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/epicseg-1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GFORTRAN=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/epicseg-1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/epicseg-1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/epicseg-1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/epicseg-1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + INFO: activate_clang_osx-64.sh made the following environmental changes: + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + -CC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + -CMAKE_ARGS=-DCMAKE_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + -OBJC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + x86_64-apple-darwin13.4.0-clang -std=gnu11 -I"$PREFIX/lib/R/include" -DNDEBUG -fopenmp -I'$PREFIX/lib/R/library/Rcpp/include' -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I$PREFIX/include -fPIC -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=/Users/runner/miniforge3/conda-bld/r-base-split_1714471796105/work=/usr/local/src/conda/r-base-4.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c RcppExports.cpp -o RcppExports.o + x86_64-apple-darwin13.4.0-clang -std=gnu11 -I"$PREFIX/lib/R/include" -DNDEBUG -fopenmp -I'$PREFIX/lib/R/library/Rcpp/include' -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I$PREFIX/include -fPIC -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=/Users/runner/miniforge3/conda-bld/r-base-split_1714471796105/work=/usr/local/src/conda/r-base-4.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c misc.cpp -o misc.o +# Last 100 lines of the build log. diff --git a/recipes/epicseg/meta.yaml b/recipes/epicseg/meta.yaml index 663290ef901f9..4b2ac0515cc8b 100644 --- a/recipes/epicseg/meta.yaml +++ b/recipes/epicseg/meta.yaml @@ -10,7 +10,7 @@ source: sha256: e3094ad54044c19a9c7fd027c4b64c9ae7793bed84cec3442aedf495d0fb4b2b build: - number: 8 + number: 9 rpaths: - lib/R/lib/ - lib/ diff --git a/recipes/expam/meta.yaml b/recipes/expam/meta.yaml index 6ca6b72a1a13b..bfae3d6356b7e 100644 --- a/recipes/expam/meta.yaml +++ b/recipes/expam/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 4a102a67da23c37598c0a0778d0caf99d4c6c0ea4286aff7ca0ab360dc5cda09 build: - number: 0 + number: 1 skip: true # [py < 38] script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv" run_exports: diff --git a/recipes/expansionhunter/build_failure.osx-64.yaml b/recipes/expansionhunter/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..2efaf89bccc4d --- /dev/null +++ b/recipes/expansionhunter/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: d13c40e2561dd3ae0e0c9525e8725dfcba2bc197aa5ce06a4298b0d59acd0c7c # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/expansionhunter-5.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/expansionhunter-5.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + -- The C compiler identification is Clang 16.0.6 + -- The CXX compiler identification is Clang 16.0.6 + -- Detecting C compiler ABI info + -- Detecting C compiler ABI info - done + -- Check for working C compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting C compile features + -- Detecting C compile features - done + -- Detecting CXX compiler ABI info + -- Detecting CXX compiler ABI info - done + -- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting CXX compile features + -- Detecting CXX compile features - done + -- Found ZLIB: $PREFIX/lib/libz.dylib (found version "1.2.13") + -- Found BZip2: $PREFIX/lib/libbz2.dylib (found version "1.0.8") + -- Looking for BZ2_bzCompressInit + -- Looking for BZ2_bzCompressInit - found + -- Looking for lzma_auto_decoder in $PREFIX/lib/liblzma.dylib + -- Looking for lzma_auto_decoder in $PREFIX/lib/liblzma.dylib - found + -- Looking for lzma_easy_encoder in $PREFIX/lib/liblzma.dylib + -- Looking for lzma_easy_encoder in $PREFIX/lib/liblzma.dylib - found + -- Looking for lzma_lzma_preset in $PREFIX/lib/liblzma.dylib + -- Looking for lzma_lzma_preset in $PREFIX/lib/liblzma.dylib - found + -- Found LibLZMA: $PREFIX/lib/liblzma.dylib (found version "5.2.6") + -- Found CURL: $PREFIX/lib/libcurl.dylib (found version "8.8.0") + -- Configuring done (4.2s) + -- Generating done (0.0s) + -- Build files have been written to: $SRC_DIR/build + [ 11%] Creating directories for 'ehunter' + [ 22%] No download step for 'ehunter' + [ 33%] No update step for 'ehunter' + [ 44%] No patch step for 'ehunter' + [ 55%] Performing configure step for 'ehunter' + -- The C compiler identification is Clang 16.0.6 + -- The CXX compiler identification is Clang 16.0.6 + -- Detecting C compiler ABI info + -- Detecting C compiler ABI info - done + -- Check for working C compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting C compile features + -- Detecting C compile features - done + -- Detecting CXX compiler ABI info + -- Detecting CXX compiler ABI info - done + -- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting CXX compile features + -- Detecting CXX compile features - done + -- BUILD_TYPE: Release + -- Found Boost: $PREFIX/lib/cmake/Boost-1.85.0/BoostConfig.cmake (found suitable version "1.85.0", minimum required is "1.73") found components: program_options filesystem system + -- Found ZLIB: $PREFIX/lib/libz.dylib (found version "1.2.13") + -- Found BZip2: $PREFIX/lib/libbz2.dylib (found version "1.0.8") + -- Looking for BZ2_bzCompressInit + -- Looking for BZ2_bzCompressInit - found + -- Looking for lzma_auto_decoder in $PREFIX/lib/liblzma.dylib + -- Looking for lzma_auto_decoder in $PREFIX/lib/liblzma.dylib - found + -- Looking for lzma_easy_encoder in $PREFIX/lib/liblzma.dylib + -- Looking for lzma_easy_encoder in $PREFIX/lib/liblzma.dylib - found + -- Looking for lzma_lzma_preset in $PREFIX/lib/liblzma.dylib + -- Looking for lzma_lzma_preset in $PREFIX/lib/liblzma.dylib - found + -- Found LibLZMA: $PREFIX/lib/liblzma.dylib (found version "5.2.6") + -- Found CURL: $PREFIX/lib/libcurl.dylib (found version "8.8.0") + -- Found GTest: $PREFIX/lib/cmake/GTest/GTestConfig.cmake (found version "1.14.0") + -- Found Threads: TRUE + -- Found Boost: $PREFIX/lib/cmake/Boost-1.85.0/BoostConfig.cmake (found suitable version "1.85.0", minimum required is "1.5") found components: program_options filesystem system + -- Configuring done (4.4s) + -- Generating done (0.1s) + -- Build files have been written to: $SRC_DIR/build/ehunter-prefix/src/ehunter-build + [ 66%] Performing build step for 'ehunter' + [ 1%] Building CXX object thirdparty/graph-tools-master-f421f4c/CMakeFiles/graphtools.dir/src/graphalign/GappedAligner.cpp.o + [ 2%] Building CXX object thirdparty/graph-tools-master-f421f4c/CMakeFiles/graphtools.dir/src/graphalign/GraphAlignment.cpp.o +# Last 100 lines of the build log. diff --git a/recipes/expansionhunter/meta.yaml b/recipes/expansionhunter/meta.yaml index 9e2552fbe11df..83f3a8659c474 100644 --- a/recipes/expansionhunter/meta.yaml +++ b/recipes/expansionhunter/meta.yaml @@ -15,7 +15,7 @@ source: - 0004-add-fmt-formatters-for-classes.patch - 0005-apply-bioconda-4.0.2-patches.patch # [osx] build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('expansionhunter', max_pin="x") }} requirements: diff --git a/recipes/expansionhunterdenovo/meta.yaml b/recipes/expansionhunterdenovo/meta.yaml index ce744521a7f1b..f21a622b30e9e 100644 --- a/recipes/expansionhunterdenovo/meta.yaml +++ b/recipes/expansionhunterdenovo/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 7 + number: 8 skip: True # [osx] requirements: diff --git a/recipes/extract-sv-reads/meta.yaml b/recipes/extract-sv-reads/meta.yaml index 6797940fcc204..a9239916329f0 100644 --- a/recipes/extract-sv-reads/meta.yaml +++ b/recipes/extract-sv-reads/meta.yaml @@ -4,7 +4,7 @@ package: version: {{ version }} build: - number: 4 + number: 5 skip: True # [osx] source: diff --git a/recipes/f5c/0.6/build_failure.osx-64.yaml b/recipes/f5c/0.6/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..bd87afdba999d --- /dev/null +++ b/recipes/f5c/0.6/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 0677a29c724faa7f372c921ec6dec6153bf367e08a3f56867d99c1708b0f0a70 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + x86_64-apple-darwin13.4.0-clang -Wall -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/f5c-0.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -c -o test/test-vcf-api.o test/test-vcf-api.c + x86_64-apple-darwin13.4.0-clang -Wall -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/f5c-0.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -c -o test/test-vcf-sweep.o test/test-vcf-sweep.c + x86_64-apple-darwin13.4.0-clang -Wall -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/f5c-0.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -c -o test/test-bcf-sr.o test/test-bcf-sr.c + x86_64-apple-darwin13.4.0-clang -Wall -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/f5c-0.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -c -o test/test-bcf-translate.o test/test-bcf-translate.c + x86_64-apple-darwin13.4.0-clang -Wall -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/f5c-0.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -c -o hts.o hts.c + x86_64-apple-darwin13.4.0-clang -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -o test/hts_endian test/hts_endian.o -lz + x86_64-apple-darwin13.4.0-clang -dynamiclib -install_name /usr/local/lib/libhts.2.dylib -current_version 1.9 -compatibility_version 2 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -o libhts.dylib kfunc.o knetfile.o kstring.o bcf_sr_sort.o bgzf.o errmod.o faidx.o hfile.o hfile_net.o hts.o hts_os.o md5.o multipart.o probaln.o realn.o regidx.o sam.o synced_bcf_reader.o vcf_sweep.o tbx.o textutils.o thread_pool.o vcf.o vcfutils.o cram/cram_codecs.o cram/cram_decode.o cram/cram_encode.o cram/cram_external.o cram/cram_index.o cram/cram_io.o cram/cram_samtools.o cram/cram_stats.o cram/files.o cram/mFILE.o cram/open_trace_file.o cram/pooled_alloc.o cram/rANS_static.o cram/sam_header.o cram/string_alloc.o -lz + ar -rc libhts.a kfunc.o knetfile.o kstring.o bcf_sr_sort.o bgzf.o errmod.o faidx.o hfile.o hfile_net.o hts.o hts_os.o md5.o multipart.o probaln.o realn.o regidx.o sam.o synced_bcf_reader.o vcf_sweep.o tbx.o textutils.o thread_pool.o vcf.o vcfutils.o cram/cram_codecs.o cram/cram_decode.o cram/cram_encode.o cram/cram_external.o cram/cram_index.o cram/cram_io.o cram/cram_samtools.o cram/cram_stats.o cram/files.o cram/mFILE.o cram/open_trace_file.o cram/pooled_alloc.o cram/rANS_static.o cram/sam_header.o cram/string_alloc.o + x86_64-apple-darwin13.4.0-ranlib libhts.a + x86_64-apple-darwin13.4.0-clang -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -o bgzip bgzip.o libhts.a -lz -lpthread + x86_64-apple-darwin13.4.0-clang -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -o htsfile htsfile.o libhts.a -lz -lpthread + x86_64-apple-darwin13.4.0-clang -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -o tabix tabix.o libhts.a -lz -lpthread + x86_64-apple-darwin13.4.0-clang -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -o test/fieldarith test/fieldarith.o libhts.a -lz -lpthread + x86_64-apple-darwin13.4.0-clang -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -o test/hfile test/hfile.o libhts.a -lz -lpthread + x86_64-apple-darwin13.4.0-clang -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -o test/sam test/sam.o libhts.a -lz -lpthread + x86_64-apple-darwin13.4.0-clang -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -o test/test_bgzf test/test_bgzf.o libhts.a -lz -lz -lpthread + ln -sf libhts.dylib libhts.2.dylib + x86_64-apple-darwin13.4.0-clang -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -o test/test_realn test/test_realn.o libhts.a -lz -lpthread + x86_64-apple-darwin13.4.0-clang -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -o test/test-regidx test/test-regidx.o libhts.a -lz -lpthread + x86_64-apple-darwin13.4.0-clang -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -o test/test_view test/test_view.o libhts.a -lz -lpthread + x86_64-apple-darwin13.4.0-clang -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -o test/test-vcf-api test/test-vcf-api.o libhts.a -lz -lpthread + x86_64-apple-darwin13.4.0-clang -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -o test/test-vcf-sweep test/test-vcf-sweep.o libhts.a -lz -lpthread + x86_64-apple-darwin13.4.0-clang -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -o test/test-bcf-sr test/test-bcf-sr.o libhts.a -lz -lz -lpthread + x86_64-apple-darwin13.4.0-clang -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -o test/test-bcf-translate test/test-bcf-translate.o libhts.a -lz -lz -lpthread + Successfully installed htslib to ./htslib. + Now run ./configure (again)! + checking for x86_64-apple-darwin13.4.0-gcc... x86_64-apple-darwin13.4.0-clang + checking whether the C compiler works... yes + checking for C compiler default output file name... a.out + checking for suffix of executables... + checking whether we are cross compiling... no + checking for suffix of object files... o + checking whether we are using the GNU C compiler... yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes + checking for x86_64-apple-darwin13.4.0-clang option to accept ISO C89... none needed + checking whether we are using the GNU C compiler... yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes + checking for special C compiler options needed for large files... no + checking for _FILE_OFFSET_BITS value needed for large files... no + checking for _LARGEFILE_SOURCE value needed for large files... no + checking how to run the C preprocessor... x86_64-apple-darwin13.4.0-clang -E + checking for grep that handles long lines and -e... /usr/bin/grep + checking for egrep... /usr/bin/grep -E + checking for ANSI C header files... yes + checking for sys/types.h... yes + checking for sys/stat.h... yes + checking for stdlib.h... yes + checking for string.h... yes + checking for memory.h... yes + checking for strings.h... yes + checking for inttypes.h... yes + checking for stdint.h... yes + checking for unistd.h... yes + checking float.h usability... yes + checking float.h presence... yes + checking for float.h... yes + checking for inttypes.h... (cached) yes + checking for stdint.h... (cached) yes + checking for stdlib.h... (cached) yes + checking for string.h... (cached) yes + checking sys/time.h usability... yes + checking sys/time.h presence... yes + checking for sys/time.h... yes + checking for unistd.h... (cached) yes + checking execinfo.h usability... yes + checking execinfo.h presence... yes + checking for execinfo.h... yes + checking for stdbool.h that conforms to C99... yes + checking for _Bool... yes + checking for inline... inline + checking for int32_t... yes + checking for size_t... yes + checking for ssize_t... yes + checking for uint32_t... yes + checking for uint64_t... yes + checking for uint8_t... yes + checking for stdlib.h... (cached) yes + checking for GNU libc compatible malloc... (cached) yes + checking for gettimeofday... yes + checking for memset... yes + checking for sqrt... yes + checking for strerror... yes + checking for zlib.h... yes + checking for inflate in -lz... yes + checking for ./htslib/htslib/hts.h... yes + checking for ./htslib/libhts.a... yes + checking for library containing H5Fopen... -lhdf5 + checking hdf5.h usability... yes + checking hdf5.h presence... yes + checking for hdf5.h... yes + configure: creating ./config.status + config.status: creating config.mk + config.status: creating src/config.h + x86_64-apple-darwin13.4.0-clang -g -Wall -O2 -std=c11 -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I./htslib -x c src/main.c -c -o build/main.o + x86_64-apple-darwin13.4.0-clang -g -Wall -O2 -std=c11 -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I./htslib -x c src/meth_main.c -c -o build/meth_main.o + x86_64-apple-darwin13.4.0-clang -g -Wall -O2 -std=c11 -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I./htslib -x c src/f5c.c -c -o build/f5c.o + x86_64-apple-darwin13.4.0-clang -g -Wall -O2 -std=c11 -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I./htslib -x c src/f5cio.c -c -o build/f5cio.o + x86_64-apple-darwin13.4.0-clang -g -Wall -O2 -std=c11 -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I./htslib -x c src/events.c -c -o build/events.o + x86_64-apple-darwin13.4.0-clang -g -Wall -O2 -std=c11 -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I./htslib -x c src/nanopolish_read_db.c -c -o build/nanopolish_read_db.o + x86_64-apple-darwin13.4.0-clang -g -Wall -O2 -std=c11 -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I./htslib -x c src/index.c -c -o build/index.o +# Last 100 lines of the build log. diff --git a/recipes/f5c/0.6/meta.yaml b/recipes/f5c/0.6/meta.yaml index 6a00eeff4d076..13b75019dad77 100644 --- a/recipes/f5c/0.6/meta.yaml +++ b/recipes/f5c/0.6/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 5ad8ecf16383757645c1757fc886c58437a062f9e1bade8b65ca8a674a75ba3e build: - number: 6 + number: 7 requirements: build: diff --git a/recipes/f5c/1.2/build_failure.osx-64.yaml b/recipes/f5c/1.2/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..2c93da7027592 --- /dev/null +++ b/recipes/f5c/1.2/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 5c997279bceb0404e20ed29e7232a75438a8d4540b856edfef19e3b30ec8b8a7 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + ==> no zlib, building zstd without .gz support + ==> no liblzma, building zstd without .xz/.lzma support + - lz4 support is disabled + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I../lib -I../lib/common -I../lib/compress -I../lib/dictBuilder -DZSTD_NEWAPI -DXXH_NAMESPACE=ZSTD_ -I../lib/legacy -DZSTD_LEGACY_SUPPORT=4 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/f5c-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib ../lib/decompress/huf_decompress.c ../lib/decompress/zstd_decompress.c ../lib/common/entropy_common.c ../lib/common/error_private.c ../lib/common/fse_decompress.c ../lib/common/pool.c ../lib/common/threading.c ../lib/common/xxhash.c ../lib/common/zstd_common.c ../lib/compress/fse_compress.c ../lib/compress/huf_compress.c ../lib/compress/zstd_compress.c ../lib/compress/zstdmt_compress.c ../lib/legacy/zstd_v04.c ../lib/legacy/zstd_v05.c ../lib/legacy/zstd_v06.c ../lib/legacy/zstd_v07.c ../lib/dictBuilder/cover.c ../lib/dictBuilder/divsufsort.c ../lib/dictBuilder/zdict.c zstdcli.o fileio.o bench.o datagen.o dibio.o -o zstd -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + compiling static library + creating versioned links + make[1]: Leaving directory '$SRC_DIR/zstd/lib' + make[1]: Leaving directory '$SRC_DIR/zstd/programs' + cp programs/zstd . + Successfully installed zstd to ./zstd. + checking for x86_64-apple-darwin13.4.0-gcc... x86_64-apple-darwin13.4.0-clang + checking whether the C compiler works... yes + checking for C compiler default output file name... a.out + checking for suffix of executables... + checking whether we are cross compiling... no + checking for suffix of object files... o + checking whether we are using the GNU C compiler... yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes + checking for x86_64-apple-darwin13.4.0-clang option to accept ISO C89... none needed + checking whether we are using the GNU C compiler... yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes + checking for special C compiler options needed for large files... no + checking for _FILE_OFFSET_BITS value needed for large files... no + checking for _LARGEFILE_SOURCE value needed for large files... no + checking how to run the C preprocessor... x86_64-apple-darwin13.4.0-clang -E + checking for grep that handles long lines and -e... /usr/bin/grep + checking for egrep... /usr/bin/grep -E + checking for ANSI C header files... yes + checking for sys/types.h... yes + checking for sys/stat.h... yes + checking for stdlib.h... yes + checking for string.h... yes + checking for memory.h... yes + checking for strings.h... yes + checking for inttypes.h... yes + checking for stdint.h... yes + checking for unistd.h... yes + checking float.h usability... yes + checking float.h presence... yes + checking for float.h... yes + checking for inttypes.h... (cached) yes + checking for stdint.h... (cached) yes + checking for stdlib.h... (cached) yes + checking for string.h... (cached) yes + checking sys/time.h usability... yes + checking sys/time.h presence... yes + checking for sys/time.h... yes + checking for unistd.h... (cached) yes + checking execinfo.h usability... yes + checking execinfo.h presence... yes + checking for execinfo.h... yes + checking for stdbool.h that conforms to C99... yes + checking for _Bool... yes + checking for inline... inline + checking for int32_t... yes + checking for size_t... yes + checking for ssize_t... yes + checking for uint32_t... yes + checking for uint64_t... yes + checking for uint8_t... yes + checking for stdlib.h... (cached) yes + checking for GNU libc compatible malloc... (cached) yes + checking for gettimeofday... yes + checking for memset... yes + checking for sqrt... yes + checking for strerror... yes + checking for zlib.h... yes + checking for inflate in -lz... yes + checking for ./htslib/htslib/hts.h... yes + checking for ./htslib/libhts.a... yes + checking for library containing H5Fopen... -lhdf5 + checking hdf5.h usability... yes + checking hdf5.h presence... yes + checking for hdf5.h... yes + checking for ./zstd/lib/zstd.h... yes + checking for ./zstd/lib/libzstd.a... yes + configure: creating ./config.status + config.status: creating config.mk + config.status: creating src/config.h + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/f5c-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -g -Wall -O2 -std=c99 -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I include/ -I thirdparty/streamvbyte/include/ src/slow5.c -c -fpic -o lib/slow5.o + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/f5c-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -g -Wall -O2 -std=c99 -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I include/ -I thirdparty/streamvbyte/include/ src/slow5_idx.c -c -fpic -o lib/slow5_idx.o + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/f5c-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -g -Wall -O2 -std=c99 -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I include/ -I thirdparty/streamvbyte/include/ src/slow5_misc.c -c -fpic -o lib/slow5_misc.o + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/f5c-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -g -Wall -O2 -std=c99 -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I include/ -I thirdparty/streamvbyte/include/ src/slow5_press.c -c -fpic -o lib/slow5_press.o + make -C thirdparty/streamvbyte no_simd= libstreamvbyte.a + make[1]: Entering directory '$SRC_DIR/slow5lib/thirdparty/streamvbyte' + x86_64-apple-darwin13.4.0-clang -fPIC -std=c99 -O3 -Wall -Wextra -pedantic -Wshadow -DSTREAMVBYTE_SSSE3=1 -mssse3 -c ./src/streamvbyte_decode.c -Iinclude + x86_64-apple-darwin13.4.0-clang -fPIC -std=c99 -O3 -Wall -Wextra -pedantic -Wshadow -DSTREAMVBYTE_SSSE3=1 -mssse3 -c ./src/streamvbyte_encode.c -Iinclude + x86_64-apple-darwin13.4.0-clang -fPIC -std=c99 -O3 -Wall -Wextra -pedantic -Wshadow -DSTREAMVBYTE_SSSE3=1 -mssse3 -c ./src/streamvbyte_zigzag.c -Iinclude + ar rcs libstreamvbyte.a streamvbyte_decode.o streamvbyte_encode.o streamvbyte_zigzag.o + make[1]: Leaving directory '$SRC_DIR/slow5lib/thirdparty/streamvbyte' + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/f5c-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -g -Wall -O2 -std=c99 -shared lib/slow5.o lib/slow5_idx.o lib/slow5_misc.o lib/slow5_press.o thirdparty/streamvbyte/libstreamvbyte.a -o lib/libslow5.so -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -lm -lz + cp thirdparty/streamvbyte/libstreamvbyte.a lib/libslow5.a + ar rcs lib/libslow5.a lib/slow5.o lib/slow5_idx.o lib/slow5_misc.o lib/slow5_press.o + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/f5c-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D__STDC_FORMAT_MACROS -g -Wall -O2 -std=c11 -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I./htslib -I slow5lib/include/ -x c src/main.c -c -o build/main.o + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/f5c-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D__STDC_FORMAT_MACROS -g -Wall -O2 -std=c11 -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I./htslib -I slow5lib/include/ -x c src/meth_main.c -c -o build/meth_main.o + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/f5c-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D__STDC_FORMAT_MACROS -g -Wall -O2 -std=c11 -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I./htslib -I slow5lib/include/ -x c src/f5c.c -c -o build/f5c.o + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/f5c-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D__STDC_FORMAT_MACROS -g -Wall -O2 -std=c11 -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I./htslib -I slow5lib/include/ -x c src/f5cio.c -c -o build/f5cio.o + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/f5c-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D__STDC_FORMAT_MACROS -g -Wall -O2 -std=c11 -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I./htslib -I slow5lib/include/ -x c src/events.c -c -o build/events.o + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/f5c-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D__STDC_FORMAT_MACROS -g -Wall -O2 -std=c11 -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I./htslib -I slow5lib/include/ -x c src/nanopolish_read_db.c -c -o build/nanopolish_read_db.o + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/f5c-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D__STDC_FORMAT_MACROS -g -Wall -O2 -std=c11 -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I./htslib -I slow5lib/include/ -x c src/index.c -c -o build/index.o +# Last 100 lines of the build log. diff --git a/recipes/f5c/1.2/meta.yaml b/recipes/f5c/1.2/meta.yaml index c8b4bd4c63cca..05a6a939d6049 100644 --- a/recipes/f5c/1.2/meta.yaml +++ b/recipes/f5c/1.2/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 1dfec496138fb024623fed2ae5e5fc5759d920d11cbcb570cd9ced001f48687b build: - number: 2 + number: 3 requirements: build: diff --git a/recipes/f5c/meta.yaml b/recipes/f5c/meta.yaml index 5b8c3e4ee649d..7b31342809f0d 100644 --- a/recipes/f5c/meta.yaml +++ b/recipes/f5c/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 9336b35caf6486f9fffc791591ef7b40bea9156ecfb1d315fe222b6e9957d632 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('f5c', max_pin="x") }} diff --git a/recipes/faqcs/build_failure.osx-64.yaml b/recipes/faqcs/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..355b8c5709076 --- /dev/null +++ b/recipes/faqcs/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 75dbf71ff4651d6a783a9d37c2ddc4ed5950198de6ba39b79d8d43a463b31a53 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + 1 error generated. + make: *** [Makefile:18: FaQCs.o] Error 1 + Extracting download + Traceback (most recent call last): + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/faqcs_1717509739648/work + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/faqcs_1717509739648/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/faqcs_1717509739648/_build_env + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/faqcs_1717509739648/work + INFO: activate-gfortran_osx-64.sh made the following environmental changes: + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + DEBUG_FFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/faqcs-2.10 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -Og -g -Wall -Wextra -fcheck=all -fbacktrace -fimplicit-none -fvar-tracking-assignments + DEBUG_FORTRANFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/faqcs-2.10 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -Og -g -Wall -Wextra -fcheck=all -fbacktrace -fimplicit-none -fvar-tracking-assignments + F77=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + F90=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + F95=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + FC=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + FC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + FFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/faqcs-2.10 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + FORTRANFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/faqcs-2.10 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GFORTRAN=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/faqcs_1717509739648/work/conda_build.sh']' returned non-zero exit status 2. + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/faqcs-2.10 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/faqcs-2.10 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/faqcs-2.10 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/faqcs-2.10 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + INFO: activate_clang_osx-64.sh made the following environmental changes: + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + -CC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + -CMAKE_ARGS=-DCMAKE_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + -OBJC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + -CXX_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + Installing FaQCs for OSX. + x86_64-apple-darwin13.4.0-clang -O3 -Wall -std=c0x -msse2 -DATA16 -I. -c fastq.cpp + x86_64-apple-darwin13.4.0-clang -O3 -Wall -std=c0x -msse2 -DATA16 -I. -c options.cpp + x86_64-apple-darwin13.4.0-clang -O3 -Wall -std=c0x -msse2 -DATA16 -I. -c file_util.cpp + x86_64-apple-darwin13.4.0-clang -O3 -Wall -std=c0x -msse2 -DATA16 -I. -c trim.cpp + x86_64-apple-darwin13.4.0-clang -O3 -Wall -std=c0x -msse2 -DATA16 -I. -c plot.cpp + x86_64-apple-darwin13.4.0-clang -O3 -Wall -std=c0x -msse2 -DATA16 -I. -c seq_overlap.cpp + x86_64-apple-darwin13.4.0-clang -O3 -Wall -std=c0x -msse2 -DATA16 -I. -c FaQCs.cpp +# Last 100 lines of the build log. diff --git a/recipes/faqcs/meta.yaml b/recipes/faqcs/meta.yaml index 5d6eaeff54faf..33326bdfd34e3 100644 --- a/recipes/faqcs/meta.yaml +++ b/recipes/faqcs/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 6 + number: 7 source: url: https://github.com/LANL-Bioinformatics/FaQCs/archive/{{ version }}.tar.gz diff --git a/recipes/fast-edit-distance/meta.yaml b/recipes/fast-edit-distance/meta.yaml index 4e417dabc70a2..f21cf9685a5c5 100644 --- a/recipes/fast-edit-distance/meta.yaml +++ b/recipes/fast-edit-distance/meta.yaml @@ -10,7 +10,7 @@ source: sha256: c3f3913381d8a7a5eb96cef5b31bc69fb19c55b653a98525abc0c4922cd07247 build: - number: 0 + number: 1 script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation run_exports: - {{ pin_subpackage('fast-edit-distance', max_pin="x") }} diff --git a/recipes/fastobo/meta.yaml b/recipes/fastobo/meta.yaml index 9824889f7574e..f07953f5ee29c 100644 --- a/recipes/fastobo/meta.yaml +++ b/recipes/fastobo/meta.yaml @@ -10,7 +10,7 @@ source: sha256: "f375932a24b078706797eb9296740f2d2e6987a34309bda7c9f235aba1d74217" build: - number: 1 + number: 2 skip: True # [osx or py27 or py36] run_exports: - {{ pin_subpackage('fastobo', max_pin="x.x") }} diff --git a/recipes/fastp/meta.yaml b/recipes/fastp/meta.yaml index 5ab71115f3ff3..6c59e2466cff6 100644 --- a/recipes/fastp/meta.yaml +++ b/recipes/fastp/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 4fad6db156e769d46071add8a778a13a5cb5186bc1e1a5f9b1ffd499d84d72b5 build: - number: 3 + number: 4 run_exports: - {{ pin_subpackage("fastp", max_pin="x.x") }} diff --git a/recipes/fastphylo/build_failure.linux-64.yaml b/recipes/fastphylo/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..d5101e4334ade --- /dev/null +++ b/recipes/fastphylo/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: e38bf2f66a3c3c6e5df0d538a1504b4abfc497939382b0bf3a39602d90979b6d # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/fastphylo-1.0.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + INFO: activate-gxx_linux-64.sh made the following environmental changes: + CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/fastphylo-1.0.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/fastphylo-1.0.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-g + CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required): + Compatibility with CMake < 3.5 will be removed from a future version of + CMake. + + Update the VERSION argument value or use a ... suffix to tell + CMake that the project does not need compatibility with older versions. + + + -- The C compiler identification is GNU 12.3.0 + -- The CXX compiler identification is GNU 12.3.0 + -- Detecting C compiler ABI info + -- Detecting C compiler ABI info - done + -- Check for working C compiler: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc - skipped + -- Detecting C compile features + -- Detecting C compile features - done + -- Detecting CXX compiler ABI info + -- Detecting CXX compiler ABI info - done + -- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c - skipped + -- Detecting CXX compile features + -- Detecting CXX compile features - done + -- Found MPI_C: $PREFIX/lib/libmpi.so (found version "3.1") + -- Found MPI_CXX: $PREFIX/lib/libmpi_cxx.so (found version "3.1") + -- Found MPI: TRUE (found version "3.1") + CMake Deprecation Warning at /opt/conda/conda-bld/fastphylo_1717554765362/_build_env/share/cmake-3.29/Modules/CMakeForceCompiler.cmake:89 (message): + The CMAKE_FORCE_CXX_COMPILER macro is deprecated. Instead just set + CMAKE_CXX_COMPILER and allow CMake to identify the compiler. + Call Stack (most recent call first): + CMakeLists.txt:18 (CMAKE_FORCE_CXX_COMPILER) + + + -- Found LibXml2: $PREFIX/lib/libxml2.so (found version "2.12.7") + -- Looking for sgemm_ + -- Looking for sgemm_ - not found + -- Performing Test CMAKE_HAVE_LIBC_PTHREAD + -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed + -- Looking for pthread_create in pthreads + -- Looking for pthread_create in pthreads - not found + -- Looking for pthread_create in pthread + -- Looking for pthread_create in pthread - found + -- Found Threads: TRUE + -- Looking for sgemm_ + -- Looking for sgemm_ - found + -- Found BLAS: $PREFIX/lib/libblas.so + -- Looking for cheev_ + -- Looking for cheev_ - not found + -- Looking for cheev_ + -- Looking for cheev_ - found + -- Found LAPACK: $PREFIX/lib/liblapack.so;$PREFIX/lib/libblas.so + -- Configuring done (4.3s) + -- Generating done (0.0s) + -- Build files have been written to: $SRC_DIR/build + [ 1%] Building CXX object src/c/CMakeFiles/fastphylo.dir/BitVector.cpp.o + -------------------------------------------------------------------------- + The Open MPI wrapper compiler was unable to find the specified compiler + g in your PATH. + + Note that this compiler was either specified at configure time or in + one of several possible environment variables. + -------------------------------------------------------------------------- + make[2]: *** [src/c/CMakeFiles/fastphylo.dir/build.make:76: src/c/CMakeFiles/fastphylo.dir/BitVector.cpp.o] Error 1 + make[1]: *** [CMakeFiles/Makefile2:154: src/c/CMakeFiles/fastphylo.dir/all] Error 2 + make: *** [Makefile:166: all] Error 2 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/fastphylo_1717554765362/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/fastphylo/build_failure.osx-64.yaml b/recipes/fastphylo/build_failure.osx-64.yaml index dcd5b3884e0b8..56fa8e429eeb5 100644 --- a/recipes/fastphylo/build_failure.osx-64.yaml +++ b/recipes/fastphylo/build_failure.osx-64.yaml @@ -1,104 +1,104 @@ -recipe_sha: f5429a56d35c61cfbed9537daab96da0f18bb9336282fef09f45c56bde6b083e # The commit at which this recipe failed to build. +recipe_sha: e38bf2f66a3c3c6e5df0d538a1504b4abfc497939382b0bf3a39602d90979b6d # The hash of the recipe's meta.yaml at which this recipe failed to build. skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. log: |- - Can't parse the binary at the index #1 - {} is not a Mach-O file - Can't parse the binary at the index #0 - {} is not a Mach-O file - Can't parse the binary at the index #1 - {} is not a Mach-O file - Can't parse the binary at the index #0 - {} is not a Mach-O file - Can't parse the binary at the index #1 - {} is not a Mach-O file - Can't parse the binary at the index #2 - {} is not a Mach-O file - Can't parse the binary at the index #3 - {} is not a Mach-O file - Can't parse the binary at the index #4 - {} is not a Mach-O file - Can't parse the binary at the index #0 - {} is not a Mach-O file - Can't parse the binary at the index #1 - {} is not a Mach-O file - Can't parse the binary at the index #2 - {} is not a Mach-O file - Can't parse the binary at the index #3 - {} is not a Mach-O file - Can't parse the binary at the index #4 - {} is not a Mach-O file - Can't parse the binary at the index #0 - {} is not a Mach-O file - Can't parse the binary at the index #1 - INFO: sysroot: '/System/Library/Frameworks/' files: '['vmnet.framework/Versions/A/_CodeSignature/CodeResources', 'vmnet.framework/Versions/A/Resources/version.plist', 'vmnet.framework/Versions/A/Resources/en.lproj/InfoPlist.strings', 'vmnet.framework/Versions/A/Resources/Info.plist']' - INFO: sysroot: '/usr/lib/' files: '['zsh/5.8.1/zsh/zselect.so', 'zsh/5.8.1/zsh/zpty.so', 'zsh/5.8.1/zsh/zprof.so', 'zsh/5.8.1/zsh/zleparameter.so']' - INFO: sysroot: '/opt/X11/' files: '[]' - INFO (fastphylo,bin/fastprot): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - INFO (fastphylo,bin/fastprot): Needed DSO lib/libxml2.2.dylib found in conda-forge::libxml2-2.11.4-hd95e348_0 - INFO (fastphylo,bin/fastprot): Needed DSO /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate found in $SYSROOT - INFO (fastphylo,bin/fastprot): Needed DSO lib/libc.1.dylib found in conda-forge::libcxx-16.0.6-hd57cbcb_0 - INFO (fastphylo,bin/fastprot_mpi): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - INFO (fastphylo,bin/fastprot_mpi): Needed DSO lib/libxml2.2.dylib found in conda-forge::libxml2-2.11.4-hd95e348_0 - INFO (fastphylo,bin/fastprot_mpi): Needed DSO /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate found in $SYSROOT - INFO (fastphylo,bin/fastprot_mpi): Needed DSO lib/libmpi_cxx.40.dylib found in conda-forge::openmpi-4.0.1-hfcebdee_2 - INFO (fastphylo,bin/fastprot_mpi): Needed DSO lib/libmpi.40.dylib found in conda-forge::openmpi-4.0.1-hfcebdee_2 - INFO (fastphylo,bin/fastprot_mpi): Needed DSO lib/libc.1.dylib found in conda-forge::libcxx-16.0.6-hd57cbcb_0 - INFO (fastphylo,bin/fnj): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - INFO (fastphylo,bin/fnj): Needed DSO lib/libxml2.2.dylib found in conda-forge::libxml2-2.11.4-hd95e348_0 - INFO (fastphylo,bin/fnj): Needed DSO lib/libc.1.dylib found in conda-forge::libcxx-16.0.6-hd57cbcb_0 - INFO (fastphylo,bin/fastdist): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - INFO (fastphylo,bin/fastdist): Needed DSO lib/libxml2.2.dylib found in conda-forge::libxml2-2.11.4-hd95e348_0 - INFO (fastphylo,bin/fastdist): Needed DSO lib/libc.1.dylib found in conda-forge::libcxx-16.0.6-hd57cbcb_0 - WARNING (fastphylo): run-exports library package conda-forge::libzlib-1.2.13-h8a1eda9_5 in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) - WARNING (fastphylo): run-exports library package conda-forge::zlib-1.2.13-h8a1eda9_5 in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) - WARNING (fastphylo): run-exports library package conda-forge::liblapack-3.9.0-3_h7d47d6b_netlib in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) - WARNING (fastphylo): run-exports library package conda-forge::libblas-3.9.0-3_h7d47d6b_netlib in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) - Fixing permissions - Packaged license file/s. - INFO :: Time taken to mark (prefix) - 0 replacements in 0 files was 0.25 seconds - TEST START: /opt/mambaforge/envs/bioconda/conda-bld/osx-64/fastphylo-1.0.3-h9659bbf_8.tar.bz2 - Renaming work directory '/opt/mambaforge/envs/bioconda/conda-bld/fastphylo_1689454064005/work' to '/opt/mambaforge/envs/bioconda/conda-bld/fastphylo_1689454064005/work_moved_fastphylo-1.0.3-h9659bbf_8_osx-64' - INFO:conda_build.utils:Renaming work directory '/opt/mambaforge/envs/bioconda/conda-bld/fastphylo_1689454064005/work' to '/opt/mambaforge/envs/bioconda/conda-bld/fastphylo_1689454064005/work_moved_fastphylo-1.0.3-h9659bbf_8_osx-64' - shutil.move(work)=/opt/mambaforge/envs/bioconda/conda-bld/fastphylo_1689454064005/work, dest=/opt/mambaforge/envs/bioconda/conda-bld/fastphylo_1689454064005/work_moved_fastphylo-1.0.3-h9659bbf_8_osx-64) - INFO:conda_build.utils:shutil.move(work)=/opt/mambaforge/envs/bioconda/conda-bld/fastphylo_1689454064005/work, dest=/opt/mambaforge/envs/bioconda/conda-bld/fastphylo_1689454064005/work_moved_fastphylo-1.0.3-h9659bbf_8_osx-64) - Reloading output folder: /opt/mambaforge/envs/bioconda/conda-bld + R :: Reversible A :: Applicable + Y :: Build-prefix patch in use M :: Minimal, non-amalgamated + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + D :: Dry-runnable N :: Patch level (1 is preferred) + L :: Patch level not-ambiguous O :: Patch applies without offsets + V :: Patch applies without fuzz E :: Patch applies without emitting to stderr - ## Package Plan ## - - environment location: /opt/mambaforge/envs/bioconda/conda-bld/fastphylo_1689454064005/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold - - - The following NEW packages will be INSTALLED: - - fastphylo: 1.0.3-h9659bbf_8 local - icu: 72.1-h7336db1_0 conda-forge - libblas: 3.9.0-8_openblas conda-forge - libcxx: 16.0.6-hd57cbcb_0 conda-forge - libgfortran: 4.0.0-7_5_0_h1a10cd1_23 conda-forge - libgfortran4: 7.5.0-h1a10cd1_23 conda-forge - libiconv: 1.17-hac89ed1_0 conda-forge - liblapack: 3.9.0-8_openblas conda-forge - libopenblas: 0.3.12-openmp_h63d9170_1 conda-forge - libxml2: 2.11.4-hd95e348_0 conda-forge - libzlib: 1.2.13-h8a1eda9_5 conda-forge - llvm-openmp: 16.0.6-hff08bdf_0 conda-forge - mpi: 1.0-openmpi conda-forge - openmpi: 4.0.1-hfcebdee_2 conda-forge - xz: 5.2.6-h775f41a_0 conda-forge - zlib: 1.2.13-h8a1eda9_5 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/fastphylo_1689454064005/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold - export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/fastphylo_1689454064005/test_tmp - fastdist -h - grep Usage - Usage: fastdist [OPTION]... [FILE]... - fastprot -h - grep Usage - Tests failed for fastphylo-1.0.3-h9659bbf_8.tar.bz2 - moving package to /opt/mambaforge/envs/bioconda/conda-bld/broken - WARNING:conda_build.build:Tests failed for fastphylo-1.0.3-h9659bbf_8.tar.bz2 - moving package to /opt/mambaforge/envs/bioconda/conda-bld/broken - TESTS FAILED: fastphylo-1.0.3-h9659bbf_8.tar.bz2 + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/fastphylo_1717527479810/work + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/fastphylo_1717527479810/work/conda_build.sh']' returned non-zero exit status 2. + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/fastphylo_1717527479810/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/fastphylo_1717527479810/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/fastphylo_1717527479810/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/fastphylo-1.0.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/fastphylo-1.0.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/fastphylo-1.0.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/fastphylo-1.0.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + -- The C compiler identification is Clang 16.0.6 + -- The CXX compiler identification is Clang 16.0.6 + -- Detecting C compiler ABI info + -- Detecting C compiler ABI info - done + -- Check for working C compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting C compile features + -- Detecting C compile features - done + -- Detecting CXX compiler ABI info + -- Detecting CXX compiler ABI info - done + -- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting CXX compile features + -- Detecting CXX compile features - done + -- Found MPI_C: $PREFIX/lib/libmpi.dylib (found version "3.1") + -- Found MPI_CXX: $PREFIX/lib/libmpi_cxx.dylib (found version "3.1") + -- Found MPI: TRUE (found version "3.1") + -- Found LibXml2: $PREFIX/lib/libxml2.dylib (found version "2.12.7") + -- Looking for sgemm_ + -- Looking for sgemm_ - not found + -- Performing Test CMAKE_HAVE_LIBC_PTHREAD + -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success + -- Found Threads: TRUE + -- Looking for dgemm_ + -- Looking for dgemm_ - found + -- Found BLAS: /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/Accelerate.framework + -- Looking for cheev_ + -- Looking for cheev_ - found + -- Found LAPACK: /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/Accelerate.framework;-lm;-ldl + -- Configuring done (9.8s) + -- Generating done (0.1s) + -- Build files have been written to: $SRC_DIR/build + [ 1%] Building CXX object src/c/CMakeFiles/fastphylo.dir/BitVector.cpp.o + [ 2%] Building CXX object src/c/CMakeFiles/fastphylo.dir/Exception.cpp.o + [ 3%] Building CXX object src/c/CMakeFiles/fastphylo.dir/InitAndPrintOn_utils.cpp.o # Last 100 lines of the build log. diff --git a/recipes/fastphylo/meta.yaml b/recipes/fastphylo/meta.yaml index ba7ce48890114..6552bd82cc194 100644 --- a/recipes/fastphylo/meta.yaml +++ b/recipes/fastphylo/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 8 + number: 9 source: url: https://github.com/arvestad/FastPhylo/archive/{{ version }}.tar.gz diff --git a/recipes/fastq-and-furious/meta.yaml b/recipes/fastq-and-furious/meta.yaml index eb66fa84550c1..3acff34beb677 100644 --- a/recipes/fastq-and-furious/meta.yaml +++ b/recipes/fastq-and-furious/meta.yaml @@ -7,7 +7,7 @@ source: sha256: 376bee916d981fd68fbe8a6b3264768059d740d77fdd3227023acddd43d0e0e8 build: - number: 3 + number: 4 # When building, warns "Not tested on OSX. Feedback welcome" and does not compile on OSX and py310. skip: True # [py2k or osx] diff --git a/recipes/fastq-filter/meta.yaml b/recipes/fastq-filter/meta.yaml index 68d6f371ea0b0..c83934cf95b3b 100644 --- a/recipes/fastq-filter/meta.yaml +++ b/recipes/fastq-filter/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 8f28ea8124871b7c2cba2b558b7b64abdcbd4b0fdb7197a82056f7e6202b3e4b build: - number: 1 + number: 2 skip: true # [py < 38] entry_points: - fastq-filter=fastq_filter:main diff --git a/recipes/fastqpuri/meta.yaml b/recipes/fastqpuri/meta.yaml index 7d6b785b28628..30f24bc75706d 100644 --- a/recipes/fastqpuri/meta.yaml +++ b/recipes/fastqpuri/meta.yaml @@ -7,7 +7,7 @@ source: sha256: af16c1aa0a679a7c921e4ea8532faf83aad2b7790a38717d592fa39680c813d9 build: - number: 7 + number: 8 requirements: build: - cmake diff --git a/recipes/fastqsplitter/build_failure.osx-64.yaml b/recipes/fastqsplitter/build_failure.osx-64.yaml deleted file mode 100644 index 3922d2271c965..0000000000000 --- a/recipes/fastqsplitter/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: f633d5e1ad7650a00a5d08800359a7c9cf20a5ef63d9d2c11d7eccf981247c36 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - except ImportError as error: - print( - "ERROR: Can not execute setup.py since setuptools is not available in " - "the build environment.", - file=sys.stderr, - ) - sys.exit(1) - - __file__ = %r - sys.argv[0] = __file__ - - if os.path.exists(__file__): - filename = __file__ - with tokenize.open(__file__) as f: - setup_py_code = f.read() - else: - filename = "" - setup_py_code = "from setuptools import setup; setup()" - - exec(compile(setup_py_code, filename, "exec")) - '"'"''"'"''"'"' % ('"'"'/opt/mambaforge/envs/bioconda/conda-bld/fastqsplitter_1685547193967/work/setup.py'"'"',), "", "exec"))' bdist_wheel -d /private/tmp/pip-wheel-cejgll56 - cwd: /opt/mambaforge/envs/bioconda/conda-bld/fastqsplitter_1685547193967/work/ - Building wheel for fastqsplitter (setup.py): finished with status 'error' - Running setup.py clean for fastqsplitter - ERROR: Failed building wheel for fastqsplitter - Running command python setup.py clean - /opt/mambaforge/envs/bioconda/conda-bld/fastqsplitter_1685547193967/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib/python3.9/site-packages/setuptools/config/setupcfg.py:293: _DeprecatedConfig: Deprecated config in setup.cfg - !! - - ******************************************************************************** - The license_file parameter is deprecated, use license_files instead. - - By 2023-Oct-30, you need to update your project and remove deprecated calls - or your builds will no longer be supported. - - See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details. - ******************************************************************************** - - !! - parsed = self.parsers.get(option_name, lambda x: x)(value) - /opt/mambaforge/envs/bioconda/conda-bld/fastqsplitter_1685547193967/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib/python3.9/site-packages/setuptools/__init__.py:84: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated. - !! - - ******************************************************************************** - Requirements should be satisfied by a PEP 517 installer. - If you are using pip, you can try pip install --use-pep517. - ******************************************************************************** - - !! - dist.fetch_build_eggs(dist.setup_requires) - /opt/mambaforge/envs/bioconda/conda-bld/fastqsplitter_1685547193967/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib/python3.9/site-packages/setuptools/config/setupcfg.py:293: _DeprecatedConfig: Deprecated config in setup.cfg - !! - - ******************************************************************************** - The license_file parameter is deprecated, use license_files instead. - - By 2023-Oct-30, you need to update your project and remove deprecated calls - or your builds will no longer be supported. - - See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details. - ******************************************************************************** - - !! - parsed = self.parsers.get(option_name, lambda x: x)(value) - running clean - removing 'build/temp.macosx-10.9-x86_64-cpython-39' (and everything under it) - removing 'build/lib.macosx-10.9-x86_64-cpython-39' (and everything under it) - 'build/bdist.macosx-10.9-x86_64' does not exist -- can't clean it - 'build/scripts-3.9' does not exist -- can't clean it - removing 'build' - Failed to build fastqsplitter - ERROR: Could not build wheels for fastqsplitter, which is required to install pyproject.toml-based projects - Exception information: - Traceback (most recent call last): - File "$PREFIX/lib/python3.9/site-packages/pip/_internal/cli/base_command.py", line 169, in exc_logging_wrapper - status = run_func(*args) - File "$PREFIX/lib/python3.9/site-packages/pip/_internal/cli/req_command.py", line 248, in wrapper - return func(self, options, args) - File "$PREFIX/lib/python3.9/site-packages/pip/_internal/commands/install.py", line 426, in run - raise InstallationError( - pip._internal.exceptions.InstallationError: Could not build wheels for fastqsplitter, which is required to install pyproject.toml-based projects - Removed build tracker: '/private/tmp/pip-build-tracker-m2qjreg8' - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/fastqsplitter_1685547193967/work/conda_build.sh']' returned non-zero exit status 1. -# Last 100 lines of the build log. diff --git a/recipes/fastqsplitter/meta.yaml b/recipes/fastqsplitter/meta.yaml index 8ef24cd3a8498..e38a75a9d6c7a 100644 --- a/recipes/fastqsplitter/meta.yaml +++ b/recipes/fastqsplitter/meta.yaml @@ -11,7 +11,7 @@ source: build: skip: True # [py27] - number: 5 + number: 6 entry_points: - fastqsplitter=fastqsplitter:main script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv " diff --git a/recipes/fastsimbac/meta.yaml b/recipes/fastsimbac/meta.yaml index b487db25e8d44..e2bb200b68cfd 100644 --- a/recipes/fastsimbac/meta.yaml +++ b/recipes/fastsimbac/meta.yaml @@ -7,7 +7,9 @@ source: md5: "7c183b317bc45606f6b37e27f6ee8357" build: - number: 5 + number: 6 + run_exports: + - {{ pin_subpackage("fastsimbac", max_pin="x") }} requirements: build: diff --git a/recipes/fcsparser/meta.yaml b/recipes/fcsparser/meta.yaml deleted file mode 100644 index 98ca491275e3f..0000000000000 --- a/recipes/fcsparser/meta.yaml +++ /dev/null @@ -1,40 +0,0 @@ -{% set name = "fcsparser" %} -{% set version = "0.2.8" %} -{% set sha256 = "df0436bf678df1f4ad3274e55fa06773f884fa45d8329015913a6178d10c73ea" %} - -package: - name: {{ name|lower }} - version: {{ version }} - -source: - url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/fcsparser-{{ version }}.tar.gz - sha256: {{ sha256 }} - -build: - number: 0 - noarch: python - script: {{ PYTHON }} -m pip install . --no-deps -vvv - run_exports: - - {{ pin_subpackage("fcsparser", max_pin="x.x") }} - -requirements: - host: - - python >=3.8 - - poetry-core - - pip - run: - - python >=3.8 - - pandas - - numpy - -test: - imports: - - fcsparser - - fcsparser.tests - -about: - home: https://github.com/eyurtsev/fcsparser - summary: 'A python package for reading raw fcs files' - license: MIT - license_family: MIT - license_file: LICENSE diff --git a/recipes/fegenie/meta.yaml b/recipes/fegenie/meta.yaml index 3be198aa057d2..4a7bcb6527205 100644 --- a/recipes/fegenie/meta.yaml +++ b/recipes/fegenie/meta.yaml @@ -14,7 +14,7 @@ source: build: noarch: generic - number: 3 + number: 4 requirements: host: diff --git a/recipes/ffgc/meta.yaml b/recipes/ffgc/meta.yaml index d9d733600f766..11b7fa9bea0af 100644 --- a/recipes/ffgc/meta.yaml +++ b/recipes/ffgc/meta.yaml @@ -9,8 +9,10 @@ source: md5: 5449bfb702b5a4b3bad636aab8925506 build: - number: 0 + number: 1 noarch: generic + run_exports: + - {{ pin_subpackage("ffgc", max_pin="x") }} script: - "echo $PREFIX" - "mkdir -p $PREFIX/bin/" @@ -21,9 +23,9 @@ build: requirements: host: - - python >=3.7 + - python run: - - python >=3.7 # temporary fix for this bug: https://github.com/bioconda/bioconda-recipes/issues/40138 + - python - snakemake >=7.24 - biopython >=1.78 - networkx >=2.4 diff --git a/recipes/fgwas/build_failure.osx-64.yaml b/recipes/fgwas/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..c5f48d34786a1 --- /dev/null +++ b/recipes/fgwas/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 8b62cd09c38784d905fc61d00ce481d2b3a6035ab91957aa6f89fd5e77381237 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/fgwas-0.3.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/fgwas_1717522745650/work/conda_build.sh']' returned non-zero exit status 2. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/fgwas-0.3.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/fgwas-0.3.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/fgwas-0.3.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + checking whether the C compiler works... yes + checking for C compiler default output file name... a.out + checking for suffix of executables... + checking whether we are cross compiling... no + checking for suffix of object files... o + checking whether we are using the GNU C compiler... yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes + checking for a BSD-compatible install... /usr/bin/install -c + checking whether build environment is sane... yes + checking for a thread-safe mkdir -p... ./install-sh -c -d + checking for gawk... no + checking for mawk... no + checking for nawk... no + checking for awk... awk + checking whether make sets $(MAKE)... yes + checking for style of include used by make... GNU + checking whether make supports nested variables... yes + checking how to create a pax tar archive... gnutar + checking dependency style of x86_64-apple-darwin13.4.0-clang... gcc3 + checking for boostlib >= 1.42... yes + checking for x86_64-apple-darwin13.4.0-gcc... x86_64-apple-darwin13.4.0-clang + checking whether we are using the GNU C compiler... yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes + checking for x86_64-apple-darwin13.4.0-clang option to accept ISO C89... none needed + checking whether x86_64-apple-darwin13.4.0-clang understands -c and -o together... yes + checking dependency style of x86_64-apple-darwin13.4.0-clang... gcc3 + checking for gzopen in -lz... yes + checking for cos in -lm... yes + checking for cblas_dgemm in -lgslcblas... yes + checking for gsl_blas_dgemm in -lgsl... yes + checking that generated files are newer than configure... done + configure: creating ./config.status + config.status: creating Makefile + config.status: creating src/Makefile + config.status: creating config.h + config.status: config.h is unchanged + config.status: executing depfiles commands + make all-recursive + make[1]: Entering directory '$SRC_DIR' + Making all in src + make[2]: Entering directory '$SRC_DIR/src' + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/fgwas-0.3.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT CmdLine.o -MD -MP -MF .deps/CmdLine.Tpo -c -o CmdLine.o CmdLine.cpp + mv -f .deps/CmdLine.Tpo .deps/CmdLine.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/fgwas-0.3.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT fgwas.o -MD -MP -MF .deps/fgwas.Tpo -c -o fgwas.o fgwas.cpp + mv -f .deps/fgwas.Tpo .deps/fgwas.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/fgwas-0.3.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT gzstream.o -MD -MP -MF .deps/gzstream.Tpo -c -o gzstream.o gzstream.cpp + make[2]: Leaving directory '$SRC_DIR/src' + make[1]: Leaving directory '$SRC_DIR' +# Last 100 lines of the build log. diff --git a/recipes/fgwas/meta.yaml b/recipes/fgwas/meta.yaml index a557287143eb8..484d67530cf7b 100644 --- a/recipes/fgwas/meta.yaml +++ b/recipes/fgwas/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 40340e7589a4965ad9f216f9f27d6b3ac72aadcc74e585652b1ea2993f580b61 build: - number: 7 + number: 8 requirements: build: diff --git a/recipes/flexiplex/meta.yaml b/recipes/flexiplex/meta.yaml index 1f9b10908a891..38167cafd3d3e 100644 --- a/recipes/flexiplex/meta.yaml +++ b/recipes/flexiplex/meta.yaml @@ -9,7 +9,7 @@ source: sha256: a5b3391aded069e15422a0c201d94ca1fdc02e9fec488608b082ff2f43ca3ec7 build: - number: 0 + number: 1 entry_points: - flexiplex-filter = flexiplex_filter.main:cli run_exports: diff --git a/recipes/flye/build_failure.linux-64.yaml b/recipes/flye/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..a406f2626fdcc --- /dev/null +++ b/recipes/flye/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 577df4f0a9db63e97ed56cec147ab74fc83826ef97945bc3489ec47ece2f4725 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + Removed build tracker: '/tmp/pip-build-tracker-0s_3_n2n' + + Resource usage statistics from building flye: + Process count: 20 + CPU time: Sys=0:00:08.1, User=0:02:13.1 + Memory: 1.6G + Disk usage: 252.4K + Time elapsed: 0:01:11.0 + + + compiling .pyc files... + number of files: 104 + Warning: rpath /opt/conda/conda-bld/flye_1717795145756/_build_env/lib is outside prefix /opt/conda/conda-bld/flye_1717795145756/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol (removing it) + Warning: rpath /opt/conda/conda-bld/flye_1717795145756/_build_env/lib is outside prefix /opt/conda/conda-bld/flye_1717795145756/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol (removing it) + Warning: rpath /opt/conda/conda-bld/flye_1717795145756/_build_env/lib is outside prefix /opt/conda/conda-bld/flye_1717795145756/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol (removing it) + INFO: sysroot: '/opt/conda/conda-bld/flye_1717795145756/_build_env/x86_64-conda-linux-gnu/sysroot/' files: '['usr/share/zoneinfo/zone.tab', 'usr/share/zoneinfo/tzdata.zi', 'usr/share/zoneinfo/right/Zulu', 'usr/share/zoneinfo/right/WET']' + INFO (flye,bin/flye-minimap2): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libm.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 + INFO (flye,bin/flye-minimap2): Needed DSO lib/libz.so.1 found in conda-forge/linux-64::libzlib==1.2.13=h4ab18f5_6 + INFO (flye,bin/flye-minimap2): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libpthread.so.0 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 + INFO (flye,bin/flye-minimap2): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libc.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 + INFO (flye,bin/flye-modules): Needed DSO lib/libz.so.1 found in conda-forge/linux-64::libzlib==1.2.13=h4ab18f5_6 + INFO (flye,bin/flye-modules): Needed DSO lib/libstdc.so.6 found in conda-forge/linux-64::libstdcxx-ng==13.2.0=hc0a3c3a_7 + INFO (flye,bin/flye-modules): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libm.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 + INFO (flye,bin/flye-modules): Needed DSO lib/libgcc_s.so.1 found in conda-forge/linux-64::libgcc-ng==13.2.0=h77fa898_7 + INFO (flye,bin/flye-modules): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libpthread.so.0 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 + INFO (flye,bin/flye-modules): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libc.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 + INFO (flye,bin/flye-modules): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/ld-linux-x86-64.so.2 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 + INFO (flye,bin/flye-samtools): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libpthread.so.0 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 + INFO (flye,bin/flye-samtools): Needed DSO lib/libz.so.1 found in conda-forge/linux-64::libzlib==1.2.13=h4ab18f5_6 + INFO (flye,bin/flye-samtools): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libm.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 + INFO (flye,bin/flye-samtools): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libdl.so.2 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 + INFO (flye,bin/flye-samtools): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libc.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 + INFO (flye): Interpreted package 'flye' is interpreted by 'python' + Fixing permissions + Packaged license file/s. + INFO :: Time taken to mark (prefix) + 0 replacements in 0 files was 0.07 seconds + Files containing CONDA_PREFIX + ----------------------------- + bin/flye (text): Patching + TEST START: /opt/conda/conda-bld/linux-64/flye-2.9.4-py312ha1f7cf2_1.tar.bz2 + Renaming work directory '/opt/conda/conda-bld/flye_1717795145756/work' to '/opt/conda/conda-bld/flye_1717795145756/work_moved_flye-2.9.4-py312ha1f7cf2_1_linux-64' + shutil.move(work)=/opt/conda/conda-bld/flye_1717795145756/work, dest=/opt/conda/conda-bld/flye_1717795145756/work_moved_flye-2.9.4-py312ha1f7cf2_1_linux-64) + Reloading output folder (local): ...working... done + Solving environment (_test_env): ...working... done + + ## Package Plan ## + + environment location: /opt/conda/conda-bld/flye_1717795145756/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla + + + The following NEW packages will be INSTALLED: + + _libgcc_mutex: 0.1-conda_forge conda-forge + _openmp_mutex: 4.5-2_gnu conda-forge + bzip2: 1.0.8-hd590300_5 conda-forge + ca-certificates: 2024.6.2-hbcca054_0 conda-forge + flye: 2.9.4-py312ha1f7cf2_1 local + ld_impl_linux-64: 2.40-hf3520f5_2 conda-forge + libexpat: 2.6.2-h59595ed_0 conda-forge + libffi: 3.4.2-h7f98852_5 conda-forge + libgcc-ng: 13.2.0-h77fa898_7 conda-forge + libgomp: 13.2.0-h77fa898_7 conda-forge + libnsl: 2.0.1-hd590300_0 conda-forge + libsqlite: 3.45.3-h2797004_0 conda-forge + libstdcxx-ng: 13.2.0-hc0a3c3a_7 conda-forge + libuuid: 2.38.1-h0b41bf4_0 conda-forge + libxcrypt: 4.4.36-hd590300_1 conda-forge + libzlib: 1.3.1-h4ab18f5_1 conda-forge + ncurses: 6.5-h59595ed_0 conda-forge + openssl: 3.3.1-h4ab18f5_0 conda-forge + pip: 24.0-pyhd8ed1ab_0 conda-forge + python: 3.12.3-hab00c5b_0_cpython conda-forge + python_abi: 3.12-4_cp312 conda-forge + readline: 8.2-h8228510_1 conda-forge + setuptools: 70.0.0-pyhd8ed1ab_0 conda-forge + tk: 8.6.13-noxft_h4845f30_101 conda-forge + tzdata: 2024a-h0c530f3_0 conda-forge + wheel: 0.43.0-pyhd8ed1ab_1 conda-forge + xz: 5.2.6-h166bdaf_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + export PREFIX=/opt/conda/conda-bld/flye_1717795145756/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla + export SRC_DIR=/opt/conda/conda-bld/flye_1717795145756/test_tmp + flye -h + grep Assembly + Traceback (most recent call last): + File "/opt/conda/conda-bld/flye_1717795145756/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/flye", line 7, in + from flye.main import main + File "/opt/conda/conda-bld/flye_1717795145756/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.12/site-packages/flye/main.py", line 19, in + import flye.polishing.alignment as aln + File "/opt/conda/conda-bld/flye_1717795145756/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.12/site-packages/flye/polishing/alignment.py", line 18, in + import flye.utils.fasta_parser as fp + File "/opt/conda/conda-bld/flye_1717795145756/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.12/site-packages/flye/utils/fasta_parser.py", line 26, in + from flye.six.moves import range + ModuleNotFoundError: No module named 'flye.six.moves' + WARNING: Tests failed for flye-2.9.4-py312ha1f7cf2_1.tar.bz2 - moving package to /opt/conda/conda-bld/broken + TESTS FAILED: flye-2.9.4-py312ha1f7cf2_1.tar.bz2 +# Last 100 lines of the build log. diff --git a/recipes/flye/build_failure.linux-aarch64.yaml b/recipes/flye/build_failure.linux-aarch64.yaml new file mode 100644 index 0000000000000..d451186baca31 --- /dev/null +++ b/recipes/flye/build_failure.linux-aarch64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 577df4f0a9db63e97ed56cec147ab74fc83826ef97945bc3489ec47ece2f4725 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + CPU time: Sys=0:00:04.6, User=0:01:53.3 + Memory: 1.7G + Disk usage: 289.9K + Time elapsed: 0:01:33.1 + + + Packaging flye + Packaging flye-2.9.4-py312h747c3d4_1 + compiling .pyc files... + number of files: 104 + Warning: rpath /opt/conda/conda-bld/flye_1717793573507/_build_env/lib is outside prefix /opt/conda/conda-bld/flye_1717793573507/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol (removing it) + Warning: rpath /opt/conda/conda-bld/flye_1717793573507/_build_env/lib is outside prefix /opt/conda/conda-bld/flye_1717793573507/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol (removing it) + Warning: rpath /opt/conda/conda-bld/flye_1717793573507/_build_env/lib is outside prefix /opt/conda/conda-bld/flye_1717793573507/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol (removing it) + INFO: sysroot: '/opt/conda/conda-bld/flye_1717793573507/_build_env/aarch64-conda-linux-gnu/sysroot/' files: '['usr/share/zoneinfo/zone1970.tab', 'usr/share/zoneinfo/zone.tab', 'usr/share/zoneinfo/tzdata.zi', 'usr/share/zoneinfo/right/Zulu']' + INFO (flye,bin/flye-modules): Needed DSO lib/libz.so.1 found in conda-forge/linux-aarch64::libzlib==1.2.13=h68df207_6 + INFO (flye,bin/flye-modules): Needed DSO lib/libstdc.so.6 found in conda-forge/linux-aarch64::libstdcxx-ng==13.2.0=h3f4de04_7 + INFO (flye,bin/flye-modules): Needed DSO aarch64-conda-linux-gnu/sysroot/lib64/libm.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-aarch64==2.17=h5b4a56d_14 + INFO (flye,bin/flye-modules): Needed DSO lib/libgcc_s.so.1 found in conda-forge/linux-aarch64::libgcc-ng==13.2.0=he277a41_7 + INFO (flye,bin/flye-modules): Needed DSO aarch64-conda-linux-gnu/sysroot/lib64/libpthread.so.0 found in CDT/compiler package conda-forge/noarch::sysroot_linux-aarch64==2.17=h5b4a56d_14 + INFO (flye,bin/flye-modules): Needed DSO aarch64-conda-linux-gnu/sysroot/lib64/libc.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-aarch64==2.17=h5b4a56d_14 + INFO (flye,bin/flye-modules): Needed DSO aarch64-conda-linux-gnu/sysroot/lib64/ld-linux-aarch64.so.1 found in CDT/compiler package conda-forge/noarch::sysroot_linux-aarch64==2.17=h5b4a56d_14 + INFO (flye,bin/flye-minimap2): Needed DSO aarch64-conda-linux-gnu/sysroot/lib64/libm.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-aarch64==2.17=h5b4a56d_14 + INFO (flye,bin/flye-minimap2): Needed DSO lib/libz.so.1 found in conda-forge/linux-aarch64::libzlib==1.2.13=h68df207_6 + INFO (flye,bin/flye-minimap2): Needed DSO aarch64-conda-linux-gnu/sysroot/lib64/libpthread.so.0 found in CDT/compiler package conda-forge/noarch::sysroot_linux-aarch64==2.17=h5b4a56d_14 + INFO (flye,bin/flye-minimap2): Needed DSO aarch64-conda-linux-gnu/sysroot/lib64/libc.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-aarch64==2.17=h5b4a56d_14 + INFO (flye,bin/flye-minimap2): Needed DSO aarch64-conda-linux-gnu/sysroot/lib64/ld-linux-aarch64.so.1 found in CDT/compiler package conda-forge/noarch::sysroot_linux-aarch64==2.17=h5b4a56d_14 + INFO (flye,bin/flye-samtools): Needed DSO aarch64-conda-linux-gnu/sysroot/lib64/libpthread.so.0 found in CDT/compiler package conda-forge/noarch::sysroot_linux-aarch64==2.17=h5b4a56d_14 + INFO (flye,bin/flye-samtools): Needed DSO lib/libz.so.1 found in conda-forge/linux-aarch64::libzlib==1.2.13=h68df207_6 + INFO (flye,bin/flye-samtools): Needed DSO aarch64-conda-linux-gnu/sysroot/lib64/libm.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-aarch64==2.17=h5b4a56d_14 + INFO (flye,bin/flye-samtools): Needed DSO aarch64-conda-linux-gnu/sysroot/lib64/libdl.so.2 found in CDT/compiler package conda-forge/noarch::sysroot_linux-aarch64==2.17=h5b4a56d_14 + INFO (flye,bin/flye-samtools): Needed DSO aarch64-conda-linux-gnu/sysroot/lib64/libc.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-aarch64==2.17=h5b4a56d_14 + INFO (flye,bin/flye-samtools): Needed DSO aarch64-conda-linux-gnu/sysroot/lib64/ld-linux-aarch64.so.1 found in CDT/compiler package conda-forge/noarch::sysroot_linux-aarch64==2.17=h5b4a56d_14 + INFO (flye): Interpreted package 'flye' is interpreted by 'python' + Fixing permissions + Packaged license file/s. + INFO :: Time taken to mark (prefix) + 0 replacements in 0 files was 0.13 seconds + Files containing CONDA_PREFIX + ----------------------------- + bin/flye (text): Patching + WARNING: Importing conda-verify failed. Please be sure to test your packages. conda install conda-verify to make this message go away. + TEST START: /opt/conda/conda-bld/linux-aarch64/flye-2.9.4-py312h747c3d4_1.tar.bz2 + Renaming work directory '/opt/conda/conda-bld/flye_1717793573507/work' to '/opt/conda/conda-bld/flye_1717793573507/work_moved_flye-2.9.4-py312h747c3d4_1_linux-aarch64' + shutil.move(work)=/opt/conda/conda-bld/flye_1717793573507/work, dest=/opt/conda/conda-bld/flye_1717793573507/work_moved_flye-2.9.4-py312h747c3d4_1_linux-aarch64) + Reloading output folder (local): ...working... done + Solving environment (_test_env): ...working... done + + ## Package Plan ## + + environment location: /opt/conda/conda-bld/flye_1717793573507/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla + + + The following NEW packages will be INSTALLED: + + _openmp_mutex: 4.5-2_gnu conda-forge + bzip2: 1.0.8-h31becfc_5 conda-forge + ca-certificates: 2024.6.2-hcefe29a_0 conda-forge + flye: 2.9.4-py312h747c3d4_1 local + ld_impl_linux-aarch64: 2.40-h9fc2d93_2 conda-forge + libexpat: 2.6.2-h2f0025b_0 conda-forge + libffi: 3.4.2-h3557bc0_5 conda-forge + libgcc-ng: 13.2.0-he277a41_7 conda-forge + libgomp: 13.2.0-he277a41_7 conda-forge + libnsl: 2.0.1-h31becfc_0 conda-forge + libsqlite: 3.45.3-h194ca79_0 conda-forge + libstdcxx-ng: 13.2.0-h3f4de04_7 conda-forge + libuuid: 2.38.1-hb4cce97_0 conda-forge + libxcrypt: 4.4.36-h31becfc_1 conda-forge + libzlib: 1.3.1-h68df207_1 conda-forge + ncurses: 6.5-h0425590_0 conda-forge + openssl: 3.3.1-h68df207_0 conda-forge + pip: 24.0-pyhd8ed1ab_0 conda-forge + python: 3.12.3-h43d1f9e_0_cpython conda-forge + python_abi: 3.12-4_cp312 conda-forge + readline: 8.2-h8fc344f_1 conda-forge + setuptools: 70.0.0-pyhd8ed1ab_0 conda-forge + tk: 8.6.13-h194ca79_0 conda-forge + tzdata: 2024a-h0c530f3_0 conda-forge + wheel: 0.43.0-pyhd8ed1ab_1 conda-forge + xz: 5.2.6-h9cdd2b7_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + export PREFIX=/opt/conda/conda-bld/flye_1717793573507/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla + export SRC_DIR=/opt/conda/conda-bld/flye_1717793573507/test_tmp + flye -h + grep Assembly + Traceback (most recent call last): + File "/opt/conda/conda-bld/flye_1717793573507/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/flye", line 7, in + from flye.main import main + File "/opt/conda/conda-bld/flye_1717793573507/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.12/site-packages/flye/main.py", line 19, in + import flye.polishing.alignment as aln + File "/opt/conda/conda-bld/flye_1717793573507/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.12/site-packages/flye/polishing/alignment.py", line 18, in + import flye.utils.fasta_parser as fp + File "/opt/conda/conda-bld/flye_1717793573507/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.12/site-packages/flye/utils/fasta_parser.py", line 26, in + from flye.six.moves import range + ModuleNotFoundError: No module named 'flye.six.moves' + WARNING: Tests failed for flye-2.9.4-py312h747c3d4_1.tar.bz2 - moving package to /opt/conda/conda-bld/broken + TESTS FAILED: flye-2.9.4-py312h747c3d4_1.tar.bz2 +# Last 100 lines of the build log. diff --git a/recipes/flye/build_failure.osx-64.yaml b/recipes/flye/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..453ba051fb8e3 --- /dev/null +++ b/recipes/flye/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 577df4f0a9db63e97ed56cec147ab74fc83826ef97945bc3489ec47ece2f4725 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + make: 4.3-h22f3db7_1 conda-forge + openssl: 3.3.1-h87427d6_0 conda-forge + sigtool: 0.1.3-h88f4db0_0 conda-forge + tapi: 1100.0.11-h9ce4665_0 conda-forge + xz: 5.2.6-h775f41a_0 conda-forge + zstd: 1.5.6-h915ae27_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache + Downloading source to cache: 2.9.4_197a2dfe39.tar.gz + Downloading https://github.com/fenderglass/Flye/archive/2.9.4.tar.gz + Success + checking file Makefile + patching file Makefile + /opt/mambaforge/envs/bioconda/conda-bld/flye_1717794246060/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/bin/python: No module named pip + Extracting download + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/flye/0001-Makefile-aarch64.patch + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/flye/0001-Makefile-aarch64.patch with args: + ['-Np1', '-i', '/tmp/tmpfu1zkvqb/0001-Makefile-aarch64.patch.native', '--binary'] + Patch analysis gives: + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + [[ RA-MD1LOVE ]] - [[ 0001-Makefile-aarch64.patch ]] + + Key: + + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + R :: Reversible A :: Applicable + Y :: Build-prefix patch in use M :: Minimal, non-amalgamated + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/flye_1717794246060/work/conda_build.sh']' returned non-zero exit status 1. + D :: Dry-runnable N :: Patch level (1 is preferred) + L :: Patch level not-ambiguous O :: Patch applies without offsets + V :: Patch applies without fuzz E :: Patch applies without emitting to stderr + + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/flye_1717794246060/work + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/flye_1717794246060/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/flye_1717794246060/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/flye_1717794246060/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/flye-2.9.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/flye-2.9.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/flye-2.9.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/flye-2.9.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix +# Last 100 lines of the build log. diff --git a/recipes/flye/meta.yaml b/recipes/flye/meta.yaml index 78ea32a7aca80..3b75b43a8a8a5 100644 --- a/recipes/flye/meta.yaml +++ b/recipes/flye/meta.yaml @@ -13,7 +13,7 @@ source: - 0001-Makefile-aarch64.patch build: - number: 0 + number: 1 entry_points: - flye = flye.main:main run_exports: diff --git a/recipes/forgi/meta.yaml b/recipes/forgi/meta.yaml index 385e622e08f8a..ed56cc314e76a 100644 --- a/recipes/forgi/meta.yaml +++ b/recipes/forgi/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 18d12dd2230406b27efd4ed376c7946b1664b7d99a31cea793b2d36b361d6b4c build: - number: 0 + number: 1 script: {{ PYTHON }} -m pip install --no-deps --no-build-isolation . -vvv skip: True # [py < 310 or py > 311] run_exports: diff --git a/recipes/fqtools/meta.yaml b/recipes/fqtools/meta.yaml index 117b434e6e2b6..3caa804144dec 100644 --- a/recipes/fqtools/meta.yaml +++ b/recipes/fqtools/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 12 + number: 13 source: url: https://github.com/alastair-droop/{{ name|lower }}/archive/986e451.tar.gz diff --git a/recipes/fwdpy11/build_failure.osx-64.yaml b/recipes/fwdpy11/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..44a2f24f5730e --- /dev/null +++ b/recipes/fwdpy11/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 7573cca8e9662cdeecd0bed649c84ff556bc6c8d97e2de79ef5833ea4fc71d50 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + Compiling cbindgen v0.26.0 + Compiling tempfile v3.10.1 + Compiling clap v3.2.25 + Compiling heck v0.4.1 + Compiling log v0.4.21 + error: linking with x86_64-apple-darwin13.4.0-clang failed: exit status: 1 + | + = note: env -u IPHONEOS_DEPLOYMENT_TARGET -u TVOS_DEPLOYMENT_TARGET LC_ALL="C" PATH="/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/bin:/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/.cargo/bin:/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/bin:/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/bin:/opt/mambaforge/envs/bioconda/condabin:/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/bin:/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/bin:/opt/mambaforge/envs/bioconda/bin:/opt/mambaforge/condabin:/opt/mambaforge/bin:/usr/local/lib/ruby/gems/3.0.0/bin:/usr/local/opt/ruby@3.0/bin:/usr/local/opt/pipx_bin:/Users/runner/.cargo/bin:/usr/local/opt/curl/bin:/usr/local/bin:/usr/local/sbin:/Users/runner/bin:/Users/runner/.yarn/bin:/Users/runner/Library/Android/sdk/tools:/Users/runner/Library/Android/sdk/platform-tools:/Library/Frameworks/Python.framework/Versions/Current/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/usr/bin:/bin:/usr/sbin:/sbin:/Users/runner/.dotnet/tools" VSLANG="1033" ZERO_AR_DATE="1" "x86_64-apple-darwin13.4.0-clang" "-Wl,-exported_symbols_list,/tmp/rustcJsKX5w/list" "-arch" "x86_64" "-m64" "/tmp/rustcJsKX5w/symbols.o" "/tmp/cargo-installnrmzCR/release/deps/serde_derive-9f016bff93b5170e.serde_derive.8ad0620eb5003873-cgu.00.rcgu.o" "/tmp/cargo-installnrmzCR/release/deps/serde_derive-9f016bff93b5170e.serde_derive.8ad0620eb5003873-cgu.01.rcgu.o" "/tmp/cargo-installnrmzCR/release/deps/serde_derive-9f016bff93b5170e.serde_derive.8ad0620eb5003873-cgu.02.rcgu.o" "/tmp/cargo-installnrmzCR/release/deps/serde_derive-9f016bff93b5170e.serde_derive.8ad0620eb5003873-cgu.03.rcgu.o" "/tmp/cargo-installnrmzCR/release/deps/serde_derive-9f016bff93b5170e.serde_derive.8ad0620eb5003873-cgu.04.rcgu.o" "/tmp/cargo-installnrmzCR/release/deps/serde_derive-9f016bff93b5170e.serde_derive.8ad0620eb5003873-cgu.05.rcgu.o" "/tmp/cargo-installnrmzCR/release/deps/serde_derive-9f016bff93b5170e.serde_derive.8ad0620eb5003873-cgu.06.rcgu.o" "/tmp/cargo-installnrmzCR/release/deps/serde_derive-9f016bff93b5170e.serde_derive.8ad0620eb5003873-cgu.07.rcgu.o" "/tmp/cargo-installnrmzCR/release/deps/serde_derive-9f016bff93b5170e.serde_derive.8ad0620eb5003873-cgu.08.rcgu.o" "/tmp/cargo-installnrmzCR/release/deps/serde_derive-9f016bff93b5170e.serde_derive.8ad0620eb5003873-cgu.09.rcgu.o" "/tmp/cargo-installnrmzCR/release/deps/serde_derive-9f016bff93b5170e.serde_derive.8ad0620eb5003873-cgu.10.rcgu.o" "/tmp/cargo-installnrmzCR/release/deps/serde_derive-9f016bff93b5170e.serde_derive.8ad0620eb5003873-cgu.11.rcgu.o" "/tmp/cargo-installnrmzCR/release/deps/serde_derive-9f016bff93b5170e.serde_derive.8ad0620eb5003873-cgu.12.rcgu.o" "/tmp/cargo-installnrmzCR/release/deps/serde_derive-9f016bff93b5170e.serde_derive.8ad0620eb5003873-cgu.13.rcgu.o" "/tmp/cargo-installnrmzCR/release/deps/serde_derive-9f016bff93b5170e.serde_derive.8ad0620eb5003873-cgu.14.rcgu.o" "/tmp/cargo-installnrmzCR/release/deps/serde_derive-9f016bff93b5170e.serde_derive.8ad0620eb5003873-cgu.15.rcgu.o" "/tmp/cargo-installnrmzCR/release/deps/serde_derive-9f016bff93b5170e.514q95sj265pstb6.rcgu.rmeta" "/tmp/cargo-installnrmzCR/release/deps/serde_derive-9f016bff93b5170e.o6645hp581cvoef.rcgu.o" "-L" "/tmp/cargo-installnrmzCR/release/deps" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib" "/private/tmp/cargo-installnrmzCR/release/deps/libsyn-d75fad7b2247b4e5.rlib" "/private/tmp/cargo-installnrmzCR/release/deps/libquote-3ebc22600d494fc7.rlib" "/private/tmp/cargo-installnrmzCR/release/deps/libproc_macro2-443812721a7c3b72.rlib" "/private/tmp/cargo-installnrmzCR/release/deps/libunicode_ident-7eafdde1c7a78df9.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libproc_macro-d9904b6b430ac650.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libstd-2ad7f97be9e16ca5.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-8ce93eee8bf4c86e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libobject-0e1339b212cc7409.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libmemchr-925e672b3deb429c.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-e92d517a950bccd8.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libgimli-de95e5c2a2ace281.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-37f4c48e230f618e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libstd_detect-dfeb4bb0652b6b8e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-0e3ea0ec18336be2.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_alloc-39dd3003e36d7872.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libminiz_oxide-5ea1513e08ee15e0.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libadler-2967159221f4860d.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libunwind-b70656709e3eca11.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcfg_if-cc5626b2e0399737.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/liblibc-8378684dba6ab463.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/liballoc-0ff05b9b25b786cc.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_core-9a6da74aeab39c54.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcore-1638dc700d175798.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-7f42af62722c8f43.rlib" "-lSystem" "-lc" "-lm" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib" "-o" "/tmp/cargo-installnrmzCR/release/deps/libserde_derive-9f016bff93b5170e.dylib" "-Wl,-dead_strip" "-dynamiclib" "-Wl,-dylib" "-nodefaultlibs" + = note: ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libproc_macro-d9904b6b430ac650.rlib(proc_macro-d9904b6b430ac650.proc_macro.f7284eae513ccf25-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libstd-2ad7f97be9e16ca5.rlib(std-2ad7f97be9e16ca5.std.73125d0ae810e61b-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcore-1638dc700d175798.rlib(core-1638dc700d175798.core.b1c2fc210f4dfff9-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/liballoc-0ff05b9b25b786cc.rlib(alloc-0ff05b9b25b786cc.alloc.9242d371e396bc4c-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-0e3ea0ec18336be2.rlib(hashbrown-0e3ea0ec18336be2.hashbrown.febebf65344cb99d-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-37f4c48e230f618e.rlib(rustc_demangle-37f4c48e230f618e.rustc_demangle.9fdffeb2b56169d1-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libgimli-de95e5c2a2ace281.rlib(gimli-de95e5c2a2ace281.gimli.72653df79598dcb2-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libobject-0e1339b212cc7409.rlib(object-0e1339b212cc7409.object.e3756fe3fb577255-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libmemchr-925e672b3deb429c.rlib(memchr-925e672b3deb429c.memchr.4dc4a05d80618598-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-e92d517a950bccd8.rlib(addr2line-e92d517a950bccd8.addr2line.7eb29e6a0a38fefd-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-8ce93eee8bf4c86e.rlib(panic_unwind-8ce93eee8bf4c86e.panic_unwind.a3b8ea81b157ee45-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-7f42af62722c8f43.rlib(compiler_builtins-7f42af62722c8f43.compiler_builtins.19fed66cffb9e9f5-cgu.089.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + Undefined symbols for architecture x86_64: + "_getentropy", referenced from: + std::sys::pal::unix::rand::hashmap_random_keys::hcc27ed0e9fd421d6 in libstd-2ad7f97be9e16ca5.rlib(std-2ad7f97be9e16ca5.std.73125d0ae810e61b-cgu.0.rcgu.o) + ld: symbol(s) not found for architecture x86_64 + clang-16: error: linker command failed with exit code 1 (use -v to see invocation) + + + error: could not compile serde_derive (lib) due to 1 previous error + warning: build failed, waiting for other jobs to finish... + error: failed to compile cbindgen v0.26.0, intermediate artifacts can be found at /tmp/cargo-installnrmzCR. + To reuse those artifacts with a future compilation, set the environment variable CARGO_TARGET_DIR to that path. + Extracting download + Traceback (most recent call last): + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/work + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/fwdpy11-0.22.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/fwdpy11-0.22.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/fwdpy11-0.22.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/fwdpy11-0.22.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/fwdpy11_1717524874638/work/conda_build.sh']' returned non-zero exit status 101. +# Last 100 lines of the build log. diff --git a/recipes/fwdpy11/meta.yaml b/recipes/fwdpy11/meta.yaml index cfbac7c97ecc0..a68b9132ad4b0 100644 --- a/recipes/fwdpy11/meta.yaml +++ b/recipes/fwdpy11/meta.yaml @@ -11,7 +11,7 @@ source: build: skip: True # [py < 38 or py > 312] - number: 0 + number: 1 script_env: - SETUPTOOLS_SCM_PRETEND_VERSION={{ version }} entry_points: diff --git a/recipes/gadem/build_failure.linux-64.yaml b/recipes/gadem/build_failure.linux-64.yaml deleted file mode 100644 index cf01a71e736ac..0000000000000 --- a/recipes/gadem/build_failure.linux-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 2470c29e05d1777c7b59054fe3477d632a33700f31d76019d64c7bd78a25c161 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - sysroot_linux-64: 2.12-he073ed8_15 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - Source cache directory is: /opt/conda/conda-bld/src_cache - INFO:conda_build.source:Source cache directory is: /opt/conda/conda-bld/src_cache - Downloading source to cache: gadem_v1.3.1_afe89b8d1e.tar.gz - INFO:conda_build.source:Downloading source to cache: gadem_v1.3.1_afe89b8d1e.tar.gz - Downloading https://www.niehs.nih.gov/research/resources/assets/docs/gadem_v1.3.1.tar.gz - INFO:conda_build.source:Downloading https://www.niehs.nih.gov/research/resources/assets/docs/gadem_v1.3.1.tar.gz - DEBUG:urllib3.util.retry:Incremented Retry for (url='/research/resources/assets/docs/gadem_v1.3.1.tar.gz'): Retry(total=2, connect=None, read=None, redirect=None, status=None) - WARNING:urllib3.connectionpool:Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))': /research/resources/assets/docs/gadem_v1.3.1.tar.gz - DEBUG:urllib3.util.retry:Incremented Retry for (url='/research/resources/assets/docs/gadem_v1.3.1.tar.gz'): Retry(total=1, connect=None, read=None, redirect=None, status=None) - WARNING:urllib3.connectionpool:Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))': /research/resources/assets/docs/gadem_v1.3.1.tar.gz - DEBUG:urllib3.util.retry:Incremented Retry for (url='/research/resources/assets/docs/gadem_v1.3.1.tar.gz'): Retry(total=0, connect=None, read=None, redirect=None, status=None) - WARNING:urllib3.connectionpool:Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))': /research/resources/assets/docs/gadem_v1.3.1.tar.gz - Traceback (most recent call last): - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 670, in urlopen - httplib_response = self._make_request( - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 381, in _make_request - self._validate_conn(conn) - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 978, in _validate_conn - conn.connect() - File "/opt/conda/lib/python3.8/site-packages/urllib3/connection.py", line 362, in connect - self.sock = ssl_wrap_socket( - File "/opt/conda/lib/python3.8/site-packages/urllib3/util/ssl_.py", line 386, in ssl_wrap_socket - return context.wrap_socket(sock, server_hostname=server_hostname) - File "/opt/conda/lib/python3.8/ssl.py", line 500, in wrap_socket - return self.sslsocket_class._create( - File "/opt/conda/lib/python3.8/ssl.py", line 1040, in _create - self.do_handshake() - File "/opt/conda/lib/python3.8/ssl.py", line 1309, in do_handshake - self._sslobj.do_handshake() - ssl.SSLError: [SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131) - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/conda/lib/python3.8/site-packages/requests/adapters.py", line 439, in send - resp = conn.urlopen( - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 754, in urlopen - return self.urlopen( - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 754, in urlopen - return self.urlopen( - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 754, in urlopen - return self.urlopen( - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 726, in urlopen - retries = retries.increment( - File "/opt/conda/lib/python3.8/site-packages/urllib3/util/retry.py", line 446, in increment - raise MaxRetryError(_pool, url, error or ResponseError(cause)) - urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='www.niehs.nih.gov', port=443): Max retries exceeded with url: /research/resources/assets/docs/gadem_v1.3.1.tar.gz (Caused by SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))) - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/conda/lib/python3.8/site-packages/conda/gateways/connection/download.py", line 48, in download - resp = session.get(url, stream=True, proxies=session.proxies, timeout=timeout) - File "/opt/conda/lib/python3.8/site-packages/requests/sessions.py", line 546, in get - return self.request('GET', url, **kwargs) - File "/opt/conda/lib/python3.8/site-packages/requests/sessions.py", line 533, in request - resp = self.send(prep, **send_kwargs) - File "/opt/conda/lib/python3.8/site-packages/requests/sessions.py", line 646, in send - r = adapter.send(request, **kwargs) - File "/opt/conda/lib/python3.8/site-packages/requests/adapters.py", line 514, in send - raise SSLError(e, request=request) - requests.exceptions.SSLError: HTTPSConnectionPool(host='www.niehs.nih.gov', port=443): Max retries exceeded with url: /research/resources/assets/docs/gadem_v1.3.1.tar.gz (Caused by SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))) - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/conda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/conda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 2125, in build - try_download(m, no_download_source=False, raise_error=True) - File "/opt/conda/lib/python3.8/site-packages/conda_build/render.py", line 650, in try_download - source.provide(metadata) - File "/opt/conda/lib/python3.8/site-packages/conda_build/source.py", line 871, in provide - unpack(source_dict, src_dir, metadata.config.src_cache, recipe_path=metadata.path, - File "/opt/conda/lib/python3.8/site-packages/conda_build/source.py", line 146, in unpack - src_path, unhashed_fn = download_to_cache(cache_folder, recipe_path, source_dict, verbose) - File "/opt/conda/lib/python3.8/site-packages/conda_build/source.py", line 89, in download_to_cache - download(url, path) - File "/opt/conda/lib/python3.8/site-packages/conda/exports.py", line 374, in download - return _download(url, dst_path, md5=md5sum, sha256=sha256, size=size) - File "/opt/conda/lib/python3.8/site-packages/conda/common/io.py", line 84, in decorated - return f(*args, **kwds) - File "/opt/conda/lib/python3.8/site-packages/conda/gateways/connection/download.py", line 152, in download - raise CondaSSLError( - conda.exceptions.CondaSSLError: Encountered an SSL error. Most likely a certificate verification issue. - - Exception: HTTPSConnectionPool(host='www.niehs.nih.gov', port=443): Max retries exceeded with url: /research/resources/assets/docs/gadem_v1.3.1.tar.gz (Caused by SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))) -# Last 100 lines of the build log. diff --git a/recipes/gadem/build_failure.osx-64.yaml b/recipes/gadem/build_failure.osx-64.yaml deleted file mode 100644 index a8ce96d90ed29..0000000000000 --- a/recipes/gadem/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 2470c29e05d1777c7b59054fe3477d632a33700f31d76019d64c7bd78a25c161 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - zstd: 1.5.2-hbc0c0cd_6 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache - Downloading source to cache: gadem_v1.3.1_afe89b8d1e.tar.gz - Downloading https://www.niehs.nih.gov/research/resources/assets/docs/gadem_v1.3.1.tar.gz - INFO:conda_build.source:Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache - INFO:conda_build.source:Downloading source to cache: gadem_v1.3.1_afe89b8d1e.tar.gz - INFO:conda_build.source:Downloading https://www.niehs.nih.gov/research/resources/assets/docs/gadem_v1.3.1.tar.gz - DEBUG:urllib3.util.retry:Incremented Retry for (url='/research/resources/assets/docs/gadem_v1.3.1.tar.gz'): Retry(total=2, connect=None, read=None, redirect=None, status=None) - WARNING:urllib3.connectionpool:Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))': /research/resources/assets/docs/gadem_v1.3.1.tar.gz - DEBUG:urllib3.util.retry:Incremented Retry for (url='/research/resources/assets/docs/gadem_v1.3.1.tar.gz'): Retry(total=1, connect=None, read=None, redirect=None, status=None) - WARNING:urllib3.connectionpool:Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))': /research/resources/assets/docs/gadem_v1.3.1.tar.gz - DEBUG:urllib3.util.retry:Incremented Retry for (url='/research/resources/assets/docs/gadem_v1.3.1.tar.gz'): Retry(total=0, connect=None, read=None, redirect=None, status=None) - WARNING:urllib3.connectionpool:Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))': /research/resources/assets/docs/gadem_v1.3.1.tar.gz - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 670, in urlopen - httplib_response = self._make_request( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 381, in _make_request - self._validate_conn(conn) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 978, in _validate_conn - conn.connect() - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connection.py", line 362, in connect - self.sock = ssl_wrap_socket( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/util/ssl_.py", line 386, in ssl_wrap_socket - return context.wrap_socket(sock, server_hostname=server_hostname) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/ssl.py", line 500, in wrap_socket - return self.sslsocket_class._create( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/ssl.py", line 1040, in _create - self.do_handshake() - File "/opt/mambaforge/envs/bioconda/lib/python3.8/ssl.py", line 1309, in do_handshake - self._sslobj.do_handshake() - ssl.SSLError: [SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131) - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/requests/adapters.py", line 439, in send - resp = conn.urlopen( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 754, in urlopen - return self.urlopen( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 754, in urlopen - return self.urlopen( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 754, in urlopen - return self.urlopen( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 726, in urlopen - retries = retries.increment( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/util/retry.py", line 446, in increment - raise MaxRetryError(_pool, url, error or ResponseError(cause)) - urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='www.niehs.nih.gov', port=443): Max retries exceeded with url: /research/resources/assets/docs/gadem_v1.3.1.tar.gz (Caused by SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))) - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda/gateways/connection/download.py", line 48, in download - resp = session.get(url, stream=True, proxies=session.proxies, timeout=timeout) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/requests/sessions.py", line 546, in get - return self.request('GET', url, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/requests/sessions.py", line 533, in request - resp = self.send(prep, **send_kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/requests/sessions.py", line 646, in send - r = adapter.send(request, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/requests/adapters.py", line 514, in send - raise SSLError(e, request=request) - requests.exceptions.SSLError: HTTPSConnectionPool(host='www.niehs.nih.gov', port=443): Max retries exceeded with url: /research/resources/assets/docs/gadem_v1.3.1.tar.gz (Caused by SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))) - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 2125, in build - try_download(m, no_download_source=False, raise_error=True) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/render.py", line 650, in try_download - source.provide(metadata) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/source.py", line 871, in provide - unpack(source_dict, src_dir, metadata.config.src_cache, recipe_path=metadata.path, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/source.py", line 146, in unpack - src_path, unhashed_fn = download_to_cache(cache_folder, recipe_path, source_dict, verbose) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/source.py", line 89, in download_to_cache - download(url, path) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda/exports.py", line 374, in download - return _download(url, dst_path, md5=md5sum, sha256=sha256, size=size) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda/common/io.py", line 84, in decorated - return f(*args, **kwds) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda/gateways/connection/download.py", line 152, in download - raise CondaSSLError( - conda.exceptions.CondaSSLError: Encountered an SSL error. Most likely a certificate verification issue. - - Exception: HTTPSConnectionPool(host='www.niehs.nih.gov', port=443): Max retries exceeded with url: /research/resources/assets/docs/gadem_v1.3.1.tar.gz (Caused by SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))) -# Last 100 lines of the build log. diff --git a/recipes/gadem/meta.yaml b/recipes/gadem/meta.yaml index bf0f5a7c94fa2..54b45a700edd1 100644 --- a/recipes/gadem/meta.yaml +++ b/recipes/gadem/meta.yaml @@ -7,7 +7,7 @@ source: sha256: afe89b8d1ecf7d7dc785b9f59ffdfdb511df68c147934eedc0398873fa2640dc build: - number: 6 + number: 7 run_exports: - {{ pin_subpackage('gadem', max_pin="x") }} diff --git a/recipes/galaxy-ml/meta.yaml b/recipes/galaxy-ml/meta.yaml index 8df327344c6e8..9fd6a9564f869 100644 --- a/recipes/galaxy-ml/meta.yaml +++ b/recipes/galaxy-ml/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 921a7884bfab3a7b40021e33602b13a9a5a2c58a3205c87659423ebd892476f1 build: - number: 1 + number: 2 script: {{ PYTHON }} -m pip install . --no-deps --ignore-installed -vvv skip: True # [osx or py<39 or py>39] diff --git a/recipes/gambit/build_failure.linux-64.yaml b/recipes/gambit/build_failure.linux-64.yaml deleted file mode 100644 index 760f11b4d6a76..0000000000000 --- a/recipes/gambit/build_failure.linux-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 54b50cde49af5b8c60e4f8122e3b442158fc9b2417ce166d10b78c930144df56 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - tomli: 2.0.1-pyhd8ed1ab_0 conda-forge - typing-extensions: 4.6.2-hd8ed1ab_0 conda-forge - typing_extensions: 4.6.2-pyha770c72_0 conda-forge - urllib3: 2.0.2-pyhd8ed1ab_0 conda-forge - wheel: 0.40.0-pyhd8ed1ab_0 conda-forge - xz: 5.2.6-h166bdaf_0 conda-forge - zipp: 3.15.0-pyhd8ed1ab_0 conda-forge - zstd: 1.5.2-h3eb15da_6 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - export PREFIX=/opt/conda/conda-bld/gambit_1685351725074/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p - export SRC_DIR=/opt/conda/conda-bld/gambit_1685351725074/test_tmp - import: 'gambit' - import: 'gambit' - pytest - ============================= test session starts ============================== - platform linux -- Python 3.8.16, pytest-7.3.1, pluggy-1.0.0 - rootdir: $SRC_DIR - collected 605 items - - tests/test_classify.py ..... [ 0%] - tests/test_cluster.py .. [ 1%] - tests/test_kmers.py ................ [ 3%] - tests/test_metric.py ................................................... [ 12%] - ........................................................................ [ 24%] - ........................................... [ 31%] - tests/test_misc.py ... [ 31%] - tests/test_query.py ... [ 32%] - tests/test_results.py ... [ 32%] - tests/test_seq.py ................. [ 35%] - tests/test_test.py ..................................... [ 41%] - tests/cli/test_cli_common.py ................. [ 44%] - tests/cli/test_cli_dist.py .............. [ 46%] - tests/cli/test_cli_query.py ........ [ 48%] - tests/cli/test_cli_signatures.py ............... [ 50%] - tests/cli/test_cli_tree.py .. [ 50%] - tests/db/test_db_migrate.py ..FsF [ 51%] - tests/db/test_db_models.py ........... [ 53%] - tests/db/test_db_refdb.py ...... [ 54%] - tests/db/test_db_sqla.py . [ 54%] - tests/sigs/test_sigs_base.py ........................................... [ 61%] - ................................................ [ 69%] - tests/sigs/test_sigs_calc.py .................. [ 72%] - tests/sigs/test_sigs_convert.py ...... [ 73%] - tests/sigs/test_sigs_hdf5.py ........................................... [ 80%] - .......... [ 82%] - tests/util/test_util_indexing.py .......... [ 84%] - tests/util/test_util_io.py ................................ [ 89%] - tests/util/test_util_json.py ......... [ 90%] - tests/util/test_util_misc.py ................. [ 93%] - tests/util/test_util_progress.py .s..s........s.s.................. [ 99%] - tests/util/test_util_typing.py .... [100%] - - =================================== FAILURES =================================== - ________________________ TestCurrentRevision.test_empty ________________________ - - self = - - def test_empty(self): - """Test on freshly initialized database.""" - engine = create_engine('sqlite:///:memory:') - init_db(engine) - > assert current_revision(engine) == CURRENT_HEAD - E AssertionError: assert None == 'c43540b80d50' - E where None = current_revision(Engine(sqlite:///:memory:)) - - tests/db/test_db_migrate.py:40: AssertionError - _________________________________ test_init_db _________________________________ - - def test_init_db(): - """Test the init_db() function.""" - engine = create_engine('sqlite:///:memory:') - init_db(engine) - - # Check current revision matches - > assert current_revision(engine) == current_head() - E AssertionError: assert None == 'c43540b80d50' - E where None = current_revision(Engine(sqlite:///:memory:)) - E and 'c43540b80d50' = current_head() - - tests/db/test_db_migrate.py:63: AssertionError - =============================== warnings summary =============================== - ../_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.8/site-packages/gambit/db/models.py:28 - $PREFIX/lib/python3.8/site-packages/gambit/db/models.py:28: MovedIn20Warning: The declarative_base() function is now available as sqlalchemy.orm.declarative_base(). (deprecated since: 2.0) (Background on SQLAlchemy 2.0 at: https://sqlalche.me/e/b8d9) - Base = declarative_base(metadata=metadata) - - ../_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.8/site-packages/pkg_resources/__init__.py:121 - $PREFIX/lib/python3.8/site-packages/pkg_resources/__init__.py:121: DeprecationWarning: pkg_resources is deprecated as an API - warnings.warn("pkg_resources is deprecated as an API", DeprecationWarning) - - -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html - =========================== short test summary info ============================ - FAILED tests/db/test_db_migrate.py::TestCurrentRevision::test_empty - Asserti... - FAILED tests/db/test_db_migrate.py::test_init_db - AssertionError: assert Non... - ============ 2 failed, 598 passed, 5 skipped, 2 warnings in 51.93s ============= - Tests failed for gambit-1.0.0-py38he5da3d1_1.tar.bz2 - moving package to /opt/conda/conda-bld/broken - WARNING:conda_build.build:Tests failed for gambit-1.0.0-py38he5da3d1_1.tar.bz2 - moving package to /opt/conda/conda-bld/broken - TESTS FAILED: gambit-1.0.0-py38he5da3d1_1.tar.bz2 -# Last 100 lines of the build log. diff --git a/recipes/gambit/build_failure.osx-64.yaml b/recipes/gambit/build_failure.osx-64.yaml deleted file mode 100644 index a1a3d2294bfcc..0000000000000 --- a/recipes/gambit/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 54b50cde49af5b8c60e4f8122e3b442158fc9b2417ce166d10b78c930144df56 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - tzdata: 2023c-h71feb2d_0 conda-forge - urllib3: 2.0.2-pyhd8ed1ab_0 conda-forge - xz: 5.2.6-h775f41a_0 conda-forge - zipp: 3.15.0-pyhd8ed1ab_0 conda-forge - zstd: 1.5.2-hbc0c0cd_6 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/gambit_1685352057332/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl - export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/gambit_1685352057332/test_tmp - import: 'gambit' - import: 'gambit' - pytest - ============================= test session starts ============================== - platform darwin -- Python 3.10.11, pytest-7.3.1, pluggy-1.0.0 - rootdir: $SRC_DIR - collected 605 items - - tests/test_classify.py ..... [ 0%] - tests/test_cluster.py .. [ 1%] - tests/test_kmers.py ................ [ 3%] - tests/test_metric.py ................................................... [ 12%] - ........................................................................ [ 24%] - ........................................... [ 31%] - tests/test_misc.py ... [ 31%] - tests/test_query.py ... [ 32%] - tests/test_results.py ... [ 32%] - tests/test_seq.py ................. [ 35%] - tests/test_test.py ..................................... [ 41%] - tests/cli/test_cli_common.py ................. [ 44%] - tests/cli/test_cli_dist.py .............. [ 46%] - tests/cli/test_cli_query.py ........ [ 48%] - tests/cli/test_cli_signatures.py ............... [ 50%] - tests/cli/test_cli_tree.py .. [ 50%] - tests/db/test_db_migrate.py ..FsF [ 51%] - tests/db/test_db_models.py ........... [ 53%] - tests/db/test_db_refdb.py ...... [ 54%] - tests/db/test_db_sqla.py . [ 54%] - tests/sigs/test_sigs_base.py ........................................... [ 61%] - ................................................ [ 69%] - tests/sigs/test_sigs_calc.py .................. [ 72%] - tests/sigs/test_sigs_convert.py ...... [ 73%] - tests/sigs/test_sigs_hdf5.py ........................................... [ 80%] - .......... [ 82%] - tests/util/test_util_indexing.py .......... [ 84%] - tests/util/test_util_io.py ................................ [ 89%] - tests/util/test_util_json.py ......... [ 90%] - tests/util/test_util_misc.py ................. [ 93%] - tests/util/test_util_progress.py .s..s........s.s.................. [ 99%] - tests/util/test_util_typing.py .... [100%] - - =================================== FAILURES =================================== - ________________________ TestCurrentRevision.test_empty ________________________ - - self = - - def test_empty(self): - """Test on freshly initialized database.""" - engine = create_engine('sqlite:///:memory:') - init_db(engine) - > assert current_revision(engine) == CURRENT_HEAD - E AssertionError: assert None == 'c43540b80d50' - E where None = current_revision(Engine(sqlite:///:memory:)) - - tests/db/test_db_migrate.py:40: AssertionError - _________________________________ test_init_db _________________________________ - - def test_init_db(): - """Test the init_db() function.""" - engine = create_engine('sqlite:///:memory:') - init_db(engine) - - # Check current revision matches - > assert current_revision(engine) == current_head() - E AssertionError: assert None == 'c43540b80d50' - E where None = current_revision(Engine(sqlite:///:memory:)) - E and 'c43540b80d50' = current_head() - - tests/db/test_db_migrate.py:63: AssertionError - =============================== warnings summary =============================== - ../_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib/python3.10/site-packages/gambit/db/models.py:28 - $PREFIX/lib/python3.10/site-packages/gambit/db/models.py:28: MovedIn20Warning: The declarative_base() function is now available as sqlalchemy.orm.declarative_base(). (deprecated since: 2.0) (Background on SQLAlchemy 2.0 at: https://sqlalche.me/e/b8d9) - Base = declarative_base(metadata=metadata) - - ../_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib/python3.10/site-packages/pkg_resources/__init__.py:121 - $PREFIX/lib/python3.10/site-packages/pkg_resources/__init__.py:121: DeprecationWarning: pkg_resources is deprecated as an API - warnings.warn("pkg_resources is deprecated as an API", DeprecationWarning) - - -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html - =========================== short test summary info ============================ - FAILED tests/db/test_db_migrate.py::TestCurrentRevision::test_empty - AssertionError: assert None == 'c43540b80d50' - where None = current_revision(Engine(sqlite:///:memory:)) - FAILED tests/db/test_db_migrate.py::test_init_db - AssertionError: assert None == 'c43540b80d50' - where None = current_revision(Engine(sqlite:///:memory:)) - and 'c43540b80d50' = current_head() - ======= 2 failed, 598 passed, 5 skipped, 2 warnings in 103.18s (0:01:43) ======= - Tests failed for gambit-1.0.0-py310he07d9a1_1.tar.bz2 - moving package to /opt/mambaforge/envs/bioconda/conda-bld/broken - WARNING:conda_build.build:Tests failed for gambit-1.0.0-py310he07d9a1_1.tar.bz2 - moving package to /opt/mambaforge/envs/bioconda/conda-bld/broken - TESTS FAILED: gambit-1.0.0-py310he07d9a1_1.tar.bz2 -# Last 100 lines of the build log. diff --git a/recipes/gambit/meta.yaml b/recipes/gambit/meta.yaml index 208f7eae334dc..17a9369d6d11e 100644 --- a/recipes/gambit/meta.yaml +++ b/recipes/gambit/meta.yaml @@ -9,9 +9,8 @@ source: sha256: d99285b1b8df971d36292ca3639bab5998b501262db8c72769dc1287920f73e8 build: - number: 0 + number: 1 script: "{{ PYTHON }} -m pip install --no-deps --no-build-isolation . -vvv" - skip: True # [py < 37] entry_points: - gambit = gambit.cli:cli run_exports: diff --git a/recipes/gametes/meta.yaml b/recipes/gametes/meta.yaml index 6f6daf12580f6..eead5645cdaf0 100644 --- a/recipes/gametes/meta.yaml +++ b/recipes/gametes/meta.yaml @@ -14,7 +14,7 @@ about: build: noarch: generic - number: 0 + number: 1 run_exports: - {{ pin_subpackage("gametes", max_pin="x") }} diff --git a/recipes/gangstr/build_failure.linux-64.yaml b/recipes/gangstr/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..1bb51b6c4c7d3 --- /dev/null +++ b/recipes/gangstr/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 2685a87b6b653fa97093eedb95571af5ed60d2d451580ef9438942d3eacb60e6 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + Y :: Build-prefix patch in use M :: Minimal, non-amalgamated + D :: Dry-runnable N :: Patch level (1 is preferred) + L :: Patch level not-ambiguous O :: Patch applies without offsets + V :: Patch applies without fuzz E :: Patch applies without emitting to stderr + + source tree in: /opt/conda/conda-bld/gangstr_1717785650270/work + export PREFIX=/opt/conda/conda-bld/gangstr_1717785650270/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place + export BUILD_PREFIX=/opt/conda/conda-bld/gangstr_1717785650270/_build_env + export SRC_DIR=/opt/conda/conda-bld/gangstr_1717785650270/work + INFO: activate-binutils_linux-64.sh made the following environmental changes: + ADDR2LINE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-addr2line + AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar + AS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-as + CXXFILT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cfilt + ELFEDIT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-elfedit + GPROF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gprof + LD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld + LD_GOLD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld.gold + NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-nm + OBJCOPY=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objcopy + OBJDUMP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objdump + RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib + READELF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-readelf + SIZE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-size + STRINGS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strings + STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip + INFO: activate-gcc_linux-64.sh made the following environmental changes: + BUILD=x86_64-conda-linux-gnu + CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/gangstr-2.5.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr + CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot + CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu + CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu + CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/gangstr-2.5.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + INFO: activate-gxx_linux-64.sh made the following environmental changes: + CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/gangstr-2.5.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/gangstr-2.5.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-g + -- The C compiler identification is GNU 12.3.0 + -- The CXX compiler identification is GNU 12.3.0 + -- Detecting C compiler ABI info + -- Detecting C compiler ABI info - done + -- Check for working C compiler: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc - skipped + -- Detecting C compile features + -- Detecting C compile features - done + -- Detecting CXX compiler ABI info + -- Detecting CXX compiler ABI info - done + -- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c - skipped + -- Detecting CXX compile features + -- Detecting CXX compile features - done + -- Found PkgConfig: $BUILD_PREFIX/bin/pkg-config (found version "0.29.2") + -- Checking for module 'htslib' + -- Package 'zlib', required by 'htslib', not found + CMake Error at /opt/conda/conda-bld/gangstr_1717785650270/_build_env/share/cmake-3.29/Modules/FindPkgConfig.cmake:634 (message): + The following required packages were not found: + + - htslib + + Call Stack (most recent call first): + /opt/conda/conda-bld/gangstr_1717785650270/_build_env/share/cmake-3.29/Modules/FindPkgConfig.cmake:862 (_pkg_check_modules_internal) + CMakeLists.txt:22 (pkg_check_modules) + + + -- Configuring incomplete, errors occurred! + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/gangstr_1717785650270/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/gangstr/build_failure.osx-64.yaml b/recipes/gangstr/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..9c735e3675dcb --- /dev/null +++ b/recipes/gangstr/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 2685a87b6b653fa97093eedb95571af5ed60d2d451580ef9438942d3eacb60e6 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + + Extracting download + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/gangstr/0001-Unvendor-dependencies-use-pkg-config-instead.patch + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/gangstr/0001-Unvendor-dependencies-use-pkg-config-instead.patch with args: + ['-Np1', '-i', '/tmp/tmpxexrt89l/0001-Unvendor-dependencies-use-pkg-config-instead.patch.native', '--binary'] + Patch analysis gives: + [[ RA-MD1LOVE ]] - [[ 0001-Unvendor-dependencies-use-pkg-config-instead.patch ]] + + Key: + + R :: Reversible A :: Applicable + Y :: Build-prefix patch in use M :: Minimal, non-amalgamated + D :: Dry-runnable N :: Patch level (1 is preferred) + L :: Patch level not-ambiguous O :: Patch applies without offsets + V :: Patch applies without fuzz E :: Patch applies without emitting to stderr + + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/gangstr_1717628038487/work + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/gangstr_1717628038487/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/gangstr_1717628038487/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/gangstr_1717628038487/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/gangstr-2.5.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/gangstr-2.5.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/gangstr-2.5.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/gangstr_1717628038487/work/conda_build.sh']' returned non-zero exit status 1. + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/gangstr-2.5.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + -- The C compiler identification is Clang 16.0.6 + -- The CXX compiler identification is Clang 16.0.6 + -- Detecting C compiler ABI info + -- Detecting C compiler ABI info - done + -- Check for working C compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting C compile features + -- Detecting C compile features - done + -- Detecting CXX compiler ABI info + -- Detecting CXX compiler ABI info - done + -- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting CXX compile features + -- Detecting CXX compile features - done + -- Found PkgConfig: $BUILD_PREFIX/bin/pkg-config (found version "0.29.2") + -- Checking for module 'htslib' + -- Package 'zlib', required by 'htslib', not found + -- Configuring incomplete, errors occurred! +# Last 100 lines of the build log. diff --git a/recipes/gangstr/meta.yaml b/recipes/gangstr/meta.yaml index e570301cacba3..5d84543b84a15 100644 --- a/recipes/gangstr/meta.yaml +++ b/recipes/gangstr/meta.yaml @@ -13,7 +13,7 @@ source: - 0001-Unvendor-dependencies-use-pkg-config-instead.patch build: - number: 6 + number: 7 requirements: build: diff --git a/recipes/ganon/meta.yaml b/recipes/ganon/meta.yaml index 8138ce24f94e8..b448796cc63d8 100755 --- a/recipes/ganon/meta.yaml +++ b/recipes/ganon/meta.yaml @@ -14,7 +14,7 @@ source: sha256: dcf2b7fa9ef9dd0c67102d94c28e8df3effbe1845e0ed1f31f4772ca5e857fc4 build: - number: 0 + number: 1 skip: True # [py<36 or osx] run_exports: - {{ pin_subpackage(name, max_pin="x") }} diff --git a/recipes/gap2seq/meta.yaml b/recipes/gap2seq/meta.yaml index a1f4d7c8ce327..fb36b3c3f399d 100644 --- a/recipes/gap2seq/meta.yaml +++ b/recipes/gap2seq/meta.yaml @@ -10,7 +10,7 @@ package: version: {{ version }} build: - number: 2 + number: 3 skip: True # [osx or py2k] source: @@ -36,6 +36,7 @@ requirements: - boost-cpp - python - htslib + - zlib run: - zlib - python diff --git a/recipes/gargammel-slim/build_failure.osx-64.yaml b/recipes/gargammel-slim/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..39e8acd9ed637 --- /dev/null +++ b/recipes/gargammel-slim/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 0e462e5b278dcfaee8a3a55d793270a591c1f9dd1ca05c0e38b2c35b3b3d2fcf # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/gargammel-slim/0003-libgab-gzstream-Makefile-use-CXXFLAGS-and-LDFLAGS.patch with args: + ['-Np0', '-i', '/tmp/tmpo55svqht/0003-libgab-gzstream-Makefile-use-CXXFLAGS-and-LDFLAGS.patch.native', '--binary'] + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/gargammel-slim/0004-libgab-Makefile-removed-CXX.patch + Patch level ambiguous, selecting least deep + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/gargammel-slim/0004-libgab-Makefile-removed-CXX.patch with args: + ['-Np0', '-i', '/tmp/tmphkgx4j5e/0004-libgab-Makefile-removed-CXX.patch.native', '--binary'] + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/gargammel-slim/0005-libgab-ReconsReferenceBAM-OSX.patch + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/gargammel-slim/0005-libgab-ReconsReferenceBAM-OSX.patch with args: + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + ['-Np0', '-i', '/tmp/tmp4ng2chds/0005-libgab-ReconsReferenceBAM-OSX.patch.native', '--binary'] + Patch analysis gives: + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/gargammel-slim_1717627393137/work/conda_build.sh']' returned non-zero exit status 2. + [[ RA--D0LOVE ]] - [[ 0001-gargammel-Makefile-keep-basic.patch ]] + [[ RA-MD0-OVE ]] - [[ 0002-gargammel-src-Makefile-change-CXXFLAGS-and-LDFLAGS.patch ]] + [[ RA-MD0-OVE ]] - [[ 0003-libgab-gzstream-Makefile-use-CXXFLAGS-and-LDFLAGS.patch ]] + [[ RA-MD0-OVE ]] - [[ 0004-libgab-Makefile-removed-CXX.patch ]] + [[ RA-MD0LOVE ]] - [[ 0005-libgab-ReconsReferenceBAM-OSX.patch ]] + + Key: + + R :: Reversible A :: Applicable + Y :: Build-prefix patch in use M :: Minimal, non-amalgamated + D :: Dry-runnable N :: Patch level (1 is preferred) + L :: Patch level not-ambiguous O :: Patch applies without offsets + V :: Patch applies without fuzz E :: Patch applies without emitting to stderr + + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/gargammel-slim_1717627393137/work + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/gargammel-slim_1717627393137/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/gargammel-slim_1717627393137/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/gargammel-slim_1717627393137/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/gargammel-slim-1.1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/gargammel-slim-1.1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/gargammel-slim-1.1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/gargammel-slim-1.1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + make -C libgab CXX=x86_64-apple-darwin13.4.0-clang + make[1]: Entering directory '$SRC_DIR/gargammel/libgab' + bamtools found + make[2]: Entering directory '$SRC_DIR/gargammel/libgab' + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/gargammel-slim-1.1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -lm -O3 -I. -Igzstream/ -I$SRC_DIR/gargammel/bamtools/ -I$SRC_DIR/gargammel/bamtools/ -Wall -lm -O3 -I. -Igzstream/ -I$SRC_DIR/gargammel/bamtools/ -I$SRC_DIR/gargammel/bamtools/ -c ReconsReferenceBAM.cpp -o ReconsReferenceBAM.o + make[2]: Leaving directory '$SRC_DIR/gargammel/libgab' + make[2]: Entering directory '$SRC_DIR/gargammel/libgab' + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/gargammel-slim-1.1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -lm -O3 -I. -Igzstream/ -I$SRC_DIR/gargammel/bamtools/ -I$SRC_DIR/gargammel/bamtools/ -Wall -lm -O3 -I. -Igzstream/ -I$SRC_DIR/gargammel/bamtools/ -I$SRC_DIR/gargammel/bamtools/ -c PutProgramInHeader.cpp -o PutProgramInHeader.o + make[2]: Leaving directory '$SRC_DIR/gargammel/libgab' + make[1]: Leaving directory '$SRC_DIR/gargammel/libgab' +# Last 100 lines of the build log. diff --git a/recipes/gargammel-slim/meta.yaml b/recipes/gargammel-slim/meta.yaml index 0753c9cf12ab9..024f9b0ae8770 100644 --- a/recipes/gargammel-slim/meta.yaml +++ b/recipes/gargammel-slim/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 4 + number: 5 source: - url: https://github.com/grenaud/libgab/archive/d2bbab7d88fbfdaa0ce57a26dc908d2fc66bf656.tar.gz diff --git a/recipes/gargammel/build_failure.linux-64.yaml b/recipes/gargammel/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..7485dfd8b7a11 --- /dev/null +++ b/recipes/gargammel/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: e3521b47e901737568162f4ea97932dfd964832eaea44a742551086c5d4f2a64 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + [31mlibssh2 1.9.0[0m would require + [31mopenssl >=1.1.1g,<1.1.2a [0m, which conflicts with any installable versions previously reported; + [31mlibssh2 1.11.0[0m would require + [31mopenssl >=3.1.1,<4.0a0 [0m, which conflicts with any installable versions previously reported; + [31mcurl [7.71.0|7.71.1|...|7.78.0][0m would require + [31mlibssh2 >=1.9.0,<2.0a0 [0m, which cannot be installed (as previously explained); + [31mcurl 7.79.0[0m would require + [31mlibcurl 7.79.0 h2574ce0_0[0m, which does not exist (perhaps a missing channel); + [31mcurl [7.79.1|7.80.0|7.81.0|7.82.0][0m would require + [31mopenssl >=1.1.1l,<1.1.2a [0m, which conflicts with any installable versions previously reported; + [31mcurl [7.79.1|7.80.0|7.81.0|7.82.0][0m would require + [31mopenssl >=3.0.0,<4.0a0 [0m, which conflicts with any installable versions previously reported; + [31mcurl 7.79.1[0m would require + [31mlibssh2 >=1.10.0,<2.0a0 [0m, which cannot be installed (as previously explained); + [31mcurl 7.83.0[0m would require + [31mopenssl >=3.0.2,<4.0a0 [0m, which conflicts with any installable versions previously reported; + [31mcurl 7.83.0[0m would require + [31mopenssl >=1.1.1n,<1.1.2a [0m, which conflicts with any installable versions previously reported; + [31mcurl 7.83.1[0m would require + [31mopenssl >=3.0.3,<4.0a0 [0m, which conflicts with any installable versions previously reported; + [31mcurl 7.83.1[0m would require + [31mopenssl >=1.1.1o,<1.1.2a [0m, which conflicts with any installable versions previously reported; + [31mcurl [7.85.0|7.86.0][0m would require + [31mopenssl >=3.0.5,<4.0a0 [0m, which conflicts with any installable versions previously reported; + [31mcurl [7.85.0|7.86.0][0m would require + [31mopenssl >=1.1.1q,<1.1.2a [0m, which conflicts with any installable versions previously reported; + [31mcurl [7.86.0|7.87.0][0m would require + [31mopenssl >=3.0.7,<4.0a0 [0m, which conflicts with any installable versions previously reported; + [31mcurl [7.86.0|7.87.0][0m would require + [31mopenssl >=1.1.1s,<1.1.2a [0m, which conflicts with any installable versions previously reported; + [31mcurl [7.88.0|7.88.1][0m would require + [31mopenssl >=3.0.8,<4.0a0 [0m, which conflicts with any installable versions previously reported; + [31mcurl 7.88.1[0m would require + [31mopenssl >=3.1.0,<4.0a0 [0m, which conflicts with any installable versions previously reported; + [31mhtslib [1.10|1.10.1|1.10.2][0m, which cannot be installed (as previously explained); + [31mhtslib 1.10.2[0m, which cannot be installed (as previously explained); + [31mhtslib 1.11[0m, which cannot be installed (as previously explained); + [31mhtslib 1.11[0m, which cannot be installed (as previously explained); + [31mhtslib [1.12|1.13][0m, which cannot be installed (as previously explained); + [31mhtslib 1.12[0m, which cannot be installed (as previously explained); + [31mhtslib [1.14|1.15][0m, which cannot be installed (as previously explained); + [31mhtslib [1.15.1|1.16][0m, which cannot be installed (as previously explained); + [31mhtslib 1.15.1[0m, which cannot be installed (as previously explained); + [31mhtslib 1.17[0m, which cannot be installed (as previously explained); + [31mhtslib 1.17[0m, which cannot be installed (as previously explained); + [31mhtslib 1.18[0m, which cannot be installed (as previously explained); + [31mhtslib [1.19|1.19.1][0m, which cannot be installed (as previously explained); + [31mhtslib [1.19.1|1.20][0m, which cannot be installed (as previously explained); + [31mhtslib 1.20[0m, which cannot be installed (as previously explained); + [31msamtools 1.11[0m would require + [31mhtslib >=1.11,<1.21.0a0 [0m, which cannot be installed (as previously explained); + [31msamtools 1.12[0m would require + [31mhtslib >=1.12,<1.21.0a0 [0m, which cannot be installed (as previously explained); + [31msamtools 1.13[0m would require + [31mhtslib >=1.13,<1.21.0a0 [0m, which cannot be installed (as previously explained); + [31msamtools [1.14|1.15|1.15.1][0m would require + [31mhtslib [>=1.14,<1.21.0a0 |>=1.15,<1.21.0a0 ][0m, which cannot be installed (as previously explained); + [31msamtools [1.15.1|1.16.1][0m would require + [31mhtslib >=1.16,<1.21.0a0 [0m, which cannot be installed (as previously explained); + [31msamtools [1.16.1|1.17|1.18][0m would require + [31mhtslib >=1.17,<1.21.0a0 [0m, which cannot be installed (as previously explained); + [31msamtools 1.18[0m would require + [31mhtslib >=1.18,<1.21.0a0 [0m, which cannot be installed (as previously explained); + [31msamtools [1.19|1.19.1|1.19.2][0m would require + [31mhtslib [>=1.19,<1.21.0a0 |>=1.19.1,<1.21.0a0 ][0m, which cannot be installed (as previously explained); + [31msamtools 1.20[0m would require + [31mhtslib >=1.20,<1.21.0a0 [0m, which cannot be installed (as previously explained); + [31msamtools [1.3|1.3.1|1.6][0m would require + [31mopenssl >=3.1.0,<4.0a0 [0m, which conflicts with any installable versions previously reported; + [31msamtools [1.3|1.3.1|1.6][0m would require + [31mopenssl >=1.1.1l,<1.1.2a [0m, which conflicts with any installable versions previously reported; + [31msamtools 1.9[0m would require + [31mhtslib >=1.9,<1.10.0a0 [0m but there are no viable options + [31mhtslib [1.10|1.9][0m, which cannot be installed (as previously explained); + [31mhtslib 1.9[0m would require + [31mlibdeflate >=1.0,<1.1.0a0 [0m, which conflicts with any installable versions previously reported; + [31mhtslib 1.9[0m would require + [31mcurl >=7.59.0,<8.0a0 [0m but there are no viable options + [31mcurl [7.59.0|7.60.0|...|7.69.1][0m, which cannot be installed (as previously explained); + [31mcurl [7.59.0|7.61.0][0m would require + [31mopenssl >=1.0.2p,<1.0.3a [0m, which conflicts with any installable versions previously reported; + [31mcurl 7.61.0[0m would require + [31mopenssl >=1.0.2o,<1.0.3a [0m, which conflicts with any installable versions previously reported; + [31mcurl [7.71.0|7.71.1|...|7.78.0][0m, which cannot be installed (as previously explained); + [31mcurl 7.79.0[0m, which cannot be installed (as previously explained); + [31mcurl [7.79.1|7.80.0|7.81.0|7.82.0][0m, which cannot be installed (as previously explained); + [31mcurl [7.79.1|7.80.0|7.81.0|7.82.0][0m, which cannot be installed (as previously explained); + [31mcurl 7.79.1[0m, which cannot be installed (as previously explained); + [31mcurl 7.83.0[0m, which cannot be installed (as previously explained); + [31mcurl 7.83.0[0m, which cannot be installed (as previously explained); + [31mcurl 7.83.1[0m, which cannot be installed (as previously explained); + [31mcurl 7.83.1[0m, which cannot be installed (as previously explained); + [31mcurl [7.85.0|7.86.0][0m, which cannot be installed (as previously explained); + [31mcurl [7.85.0|7.86.0][0m, which cannot be installed (as previously explained); + [31mcurl [7.86.0|7.87.0][0m, which cannot be installed (as previously explained); + [31mcurl [7.86.0|7.87.0][0m, which cannot be installed (as previously explained); + [31mcurl [7.88.0|7.88.1][0m, which cannot be installed (as previously explained); + [31mcurl 7.88.1[0m, which cannot be installed (as previously explained); + [31msamtools 1.9[0m would require + [31mlibdeflate >=1.0,<1.1.0a0 [0m, which conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/gargammel/build_failure.osx-64.yaml b/recipes/gargammel/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..63d247ca21888 --- /dev/null +++ b/recipes/gargammel/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: e3521b47e901737568162f4ea97932dfd964832eaea44a742551086c5d4f2a64 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + packages_from_this = build( + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/gargammel/0002-gargammel-src-Makefile-change-CXXFLAGS-and-LDFLAGS.patch + Patch level ambiguous, selecting least deep + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/gargammel/0002-gargammel-src-Makefile-change-CXXFLAGS-and-LDFLAGS.patch with args: + ['-Np0', '-i', '/tmp/tmpl4n2ke_l/0002-gargammel-src-Makefile-change-CXXFLAGS-and-LDFLAGS.patch.native', '--binary'] + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/gargammel/0003-libgab-gzstream-Makefile-use-CXXFLAGS-and-LDFLAGS.patch + Patch level ambiguous, selecting least deep + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/gargammel_1717627239361/work/conda_build.sh']' returned non-zero exit status 2. + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/gargammel/0003-libgab-gzstream-Makefile-use-CXXFLAGS-and-LDFLAGS.patch with args: + ['-Np0', '-i', '/tmp/tmp7opuet9f/0003-libgab-gzstream-Makefile-use-CXXFLAGS-and-LDFLAGS.patch.native', '--binary'] + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/gargammel/0004-libgab-Makefile-removed-CXX.patch + Patch level ambiguous, selecting least deep + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/gargammel/0004-libgab-Makefile-removed-CXX.patch with args: + ['-Np0', '-i', '/tmp/tmpo7_saxqd/0004-libgab-Makefile-removed-CXX.patch.native', '--binary'] + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/gargammel/0005-libgab-ReconsReferenceBAM-OSX.patch + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/gargammel/0005-libgab-ReconsReferenceBAM-OSX.patch with args: + ['-Np0', '-i', '/tmp/tmpt5qexb00/0005-libgab-ReconsReferenceBAM-OSX.patch.native', '--binary'] + Patch analysis gives: + [[ RA--D0LOVE ]] - [[ 0001-gargammel-Makefile-nobamtools.patch ]] + [[ RA-MD0-OVE ]] - [[ 0002-gargammel-src-Makefile-change-CXXFLAGS-and-LDFLAGS.patch ]] + [[ RA--D0-OVE ]] - [[ 0003-libgab-gzstream-Makefile-use-CXXFLAGS-and-LDFLAGS.patch ]] + [[ RA--D0-OVE ]] - [[ 0004-libgab-Makefile-removed-CXX.patch ]] + [[ RA--D0LOVE ]] - [[ 0005-libgab-ReconsReferenceBAM-OSX.patch ]] + + Key: + + R :: Reversible A :: Applicable + Y :: Build-prefix patch in use M :: Minimal, non-amalgamated + D :: Dry-runnable N :: Patch level (1 is preferred) + L :: Patch level not-ambiguous O :: Patch applies without offsets + V :: Patch applies without fuzz E :: Patch applies without emitting to stderr + + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/gargammel_1717627239361/work + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/gargammel_1717627239361/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/gargammel_1717627239361/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/gargammel_1717627239361/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/gargammel-1.1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/gargammel-1.1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/gargammel-1.1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/gargammel-1.1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + make -C libgab CXX=x86_64-apple-darwin13.4.0-clang + make[1]: Entering directory '$SRC_DIR/gargammel/libgab' + bamtools found + make[2]: Entering directory '$SRC_DIR/gargammel/libgab' + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/gargammel-1.1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -lm -O3 -I. -Igzstream/ -I$SRC_DIR/gargammel/bamtools/ -I$SRC_DIR/gargammel/bamtools/ -Wall -lm -O3 -I. -Igzstream/ -I$SRC_DIR/gargammel/bamtools/ -I$SRC_DIR/gargammel/bamtools/ -c ReconsReferenceBAM.cpp -o ReconsReferenceBAM.o + make[2]: Leaving directory '$SRC_DIR/gargammel/libgab' + make[2]: Entering directory '$SRC_DIR/gargammel/libgab' + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/gargammel-1.1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -lm -O3 -I. -Igzstream/ -I$SRC_DIR/gargammel/bamtools/ -I$SRC_DIR/gargammel/bamtools/ -Wall -lm -O3 -I. -Igzstream/ -I$SRC_DIR/gargammel/bamtools/ -I$SRC_DIR/gargammel/bamtools/ -c PutProgramInHeader.cpp -o PutProgramInHeader.o + make[2]: Leaving directory '$SRC_DIR/gargammel/libgab' + make[1]: Leaving directory '$SRC_DIR/gargammel/libgab' +# Last 100 lines of the build log. diff --git a/recipes/gargammel/meta.yaml b/recipes/gargammel/meta.yaml index 457f7f4c3e1a8..b431562974cba 100644 --- a/recipes/gargammel/meta.yaml +++ b/recipes/gargammel/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 6 + number: 7 source: - url: https://github.com/grenaud/libgab/archive/d2bbab7d88fbfdaa0ce57a26dc908d2fc66bf656.tar.gz diff --git a/recipes/gatb/meta.yaml b/recipes/gatb/meta.yaml index 31c007e4a6827..24333a41f3731 100644 --- a/recipes/gatb/meta.yaml +++ b/recipes/gatb/meta.yaml @@ -10,7 +10,7 @@ source: - boophf.patch build: - number: 3 + number: 4 requirements: build: diff --git a/recipes/gb-io/build_failure.osx-64.yaml b/recipes/gb-io/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..3d8509b7d299a --- /dev/null +++ b/recipes/gb-io/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 7e6e0693a3ac8aa2889ec74d7c05525158f7481f56430408404ac4c5a675b1d8 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/gb-io_1717512763030/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/gb-io_1717512763030/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/gb-io_1717512763030/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + return build_tree( + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/gb-io-0.3.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/gb-io-0.3.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/gb-io_1717512763030/work/conda_build.sh']' returned non-zero exit status 1. + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/gb-io-0.3.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/gb-io-0.3.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + Using pip 24.0 from $PREFIX/lib/python3.9/site-packages/pip (python 3.9) + Non-user install because user site-packages disabled + Ignoring indexes: https://pypi.org/simple + Created temporary directory: /private/tmp/pip-build-tracker-uolko928 + Initialized build tracking at /private/tmp/pip-build-tracker-uolko928 + Created build tracker: /private/tmp/pip-build-tracker-uolko928 + Entered build tracker: /private/tmp/pip-build-tracker-uolko928 + Created temporary directory: /private/tmp/pip-install-9z4rp325 + Created temporary directory: /private/tmp/pip-ephem-wheel-cache-29j_pjg1 + Processing $SRC_DIR + Added file://$SRC_DIR to build tracker '/private/tmp/pip-build-tracker-uolko928' + Created temporary directory: /private/tmp/pip-modern-metadata-omx74dv9 + Preparing metadata (pyproject.toml): started + Preparing metadata (pyproject.toml): finished with status 'done' + Source in $SRC_DIR has version 0.3.2, which satisfies requirement gb-io==0.3.2 from file://$SRC_DIR + Removed gb-io==0.3.2 from file://$SRC_DIR from build tracker '/private/tmp/pip-build-tracker-uolko928' + Created temporary directory: /private/tmp/pip-unpack-3b74mzyh + Building wheels for collected packages: gb-io + Created temporary directory: /private/tmp/pip-wheel-oz7bnwid + Destination directory: /private/tmp/pip-wheel-oz7bnwid + Building wheel for gb-io (pyproject.toml): started + Building wheel for gb-io (pyproject.toml): finished with status 'error' + Failed to build gb-io + Exception information: + Traceback (most recent call last): + File "$PREFIX/lib/python3.9/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper + status = run_func(*args) + File "$PREFIX/lib/python3.9/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper + return func(self, options, args) + File "$PREFIX/lib/python3.9/site-packages/pip/_internal/commands/install.py", line 429, in run + raise InstallationError( + pip._internal.exceptions.InstallationError: Could not build wheels for gb-io, which is required to install pyproject.toml-based projects + Removed build tracker: '/private/tmp/pip-build-tracker-uolko928' +# Last 100 lines of the build log. diff --git a/recipes/gb-io/meta.yaml b/recipes/gb-io/meta.yaml index e346cc5b35e5a..88ef2346b5e42 100644 --- a/recipes/gb-io/meta.yaml +++ b/recipes/gb-io/meta.yaml @@ -6,7 +6,7 @@ package: version: "{{ version }}" build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('gb-io', max_pin="x.x") }} diff --git a/recipes/gembs/build_failure.linux-64.yaml b/recipes/gembs/build_failure.linux-64.yaml deleted file mode 100644 index c870f719ecf5d..0000000000000 --- a/recipes/gembs/build_failure.linux-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: fac68638232545351f8bfc54743a2fe65ff654e73509608e52771b929f52a3ea # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - - pigz - - python_abi 3.10.* *_cp310 - - zlib - - openssl >=3.1.0,<4.0a0 - - setuptools - - matplotlib-base - - libzlib >=1.2.13,<1.3.0a0 - - bcftools - - python >=3.10,<3.11.0a0 - - ucsc-wigtobigwig - - gem3-mapper - - ucsc-bedtobigbed - - libgcc-ng >=12 - - bzip2 >=1.0.8,<2.0a0 - - samtools - - bs_call - - multiprocess - - with channels: - - conda-forge - - bioconda - - defaults - - The reported errors are: - - Encountered problems while solving: - - - package ucsc-wigtobigwig-366-h5eb252a_0 requires openssl >=1.0.2o,<1.0.3a, but none of the providers can be installed - - - - Leaving build/test directories: - Work: - /opt/conda/conda-bld/work - Test: - /opt/conda/conda-bld/test_tmp - Leaving build/test environments: - Test: - source activate /opt/conda/conda-bld/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl - Build: - source activate /opt/conda/conda-bld/_build_env - - - Traceback (most recent call last): - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 141, in mamba_get_install_actions - solution = solver.solve_for_action(_specs, prefix) - File "/opt/conda/lib/python3.8/site-packages/boa/core/solver.py", line 230, in solve_for_action - t = self.solve(specs) - File "/opt/conda/lib/python3.8/site-packages/boa/core/solver.py", line 220, in solve - raise RuntimeError("Solver could not find solution." error_string) - RuntimeError: Solver could not find solution.Mamba failed to solve: - - htslib >=1.17,<1.18.0a0 - - htslib >=1.17,<1.18.0a0 - - pigz - - python_abi 3.10.* *_cp310 - - zlib - - openssl >=3.1.0,<4.0a0 - - setuptools - - matplotlib-base - - libzlib >=1.2.13,<1.3.0a0 - - bcftools - - python >=3.10,<3.11.0a0 - - ucsc-wigtobigwig - - gem3-mapper - - ucsc-bedtobigbed - - libgcc-ng >=12 - - bzip2 >=1.0.8,<2.0a0 - - samtools - - bs_call - - multiprocess - - with channels: - - conda-forge - - bioconda - - defaults - - The reported errors are: - - Encountered problems while solving: - - - package ucsc-wigtobigwig-366-h5eb252a_0 requires openssl >=1.0.2o,<1.0.3a, but none of the providers can be installed - - - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/conda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/conda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 2115, in build - create_build_envs(top_level_pkg, notest) - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 1993, in create_build_envs - raise e - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 1972, in create_build_envs - environ.get_install_actions(m.config.test_prefix, - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 150, in mamba_get_install_actions - raise err - conda_build.exceptions.DependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("ucsc-wigtobigwig==366=h5eb252a_0"), MatchSpec("openssl[version='>=1.0.2o,<1.0.3a']")} -# Last 100 lines of the build log. diff --git a/recipes/gembs/meta.yaml b/recipes/gembs/meta.yaml index b27921235bbf6..1c116b37d5801 100644 --- a/recipes/gembs/meta.yaml +++ b/recipes/gembs/meta.yaml @@ -13,7 +13,7 @@ source: - clock.patch build: - number: 7 + number: 8 # This should probably be split into gemBS-tools and a noarch: python gemBS package skip: true # [py < 37] diff --git a/recipes/gemini/build_failure.linux-64.yaml b/recipes/gemini/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..3896619b45abd --- /dev/null +++ b/recipes/gemini/build_failure.linux-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 164abbf7c3e0bc8ad245a0a1a02165aa8d1e49c340817b6a97e60bdb6223dd48 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: dependency issue +log: |2- + [32mnumpy 1.10* [0m, which can be installed; + [32mpython 2.7* [0m, which can be installed (as previously explained); + [32mpandas [0.17.0|0.17.1|...|0.19.2][0m would require + [32mnumpy 1.10* [0m, which can be installed; + [32mpython [3.4* |3.5* ][0m, which can be installed (as previously explained); + [32mpandas [0.17.0|0.17.1|...|0.20.3][0m would require + [32mnumpy 1.11* [0m, which can be installed; + [32mpython [2.7* |3.6* ][0m, which can be installed (as previously explained); + [32mpandas [0.17.0|0.17.1|...|0.20.3][0m would require + [32mnumpy 1.11* [0m, which can be installed; + [32mpython [3.4* |3.5* ][0m, which can be installed (as previously explained); + [32mpandas [0.19.2|0.20.0|0.20.1|0.20.2|0.20.3][0m would require + [32mnumpy 1.12* [0m, which can be installed; + [32mpython [2.7* |3.6* ][0m, which can be installed (as previously explained); + [32mpandas [0.19.2|0.20.0|0.20.1|0.20.2|0.20.3][0m would require + [32mnumpy 1.12* [0m, which can be installed; + [32mpython 3.5* [0m, which can be installed (as previously explained); + [32mpandas [0.20.2|0.20.3][0m would require + [32mnumpy 1.13* [0m, which can be installed; + [32mpython [2.7* |3.6* ][0m, which can be installed (as previously explained); + [32mpandas [0.20.2|0.20.3][0m would require + [32mnumpy 1.13* [0m, which can be installed; + [32mpython 3.5* [0m, which can be installed (as previously explained); + [32mpandas [0.20.3|0.21.0|...|0.23.4][0m would require + [32mpython [3.4* |3.5* |>=3.5,<3.6.0a0 ][0m, which can be installed (as previously explained); + [31mpandas [0.23.4|0.24.0|...|0.25.3][0m conflicts with any installable versions previously reported; + [32mpandas [0.24.2|0.25.3][0m would require + [32mpython_abi * *_cp38[0m, which can be installed; + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mbcolz 1.2.1[0m would require + [32mpandas <1 [0m with the potential options + [32mpandas [0.20.3|0.21.0|...|0.25.3][0m, which can be installed (as previously explained); + [32mpandas [0.17.0|0.17.1|...|0.19.2][0m, which can be installed (as previously explained); + [32mpandas [0.17.0|0.17.1|...|0.19.2][0m, which can be installed (as previously explained); + [32mpandas [0.17.0|0.17.1|...|0.20.3][0m, which can be installed (as previously explained); + [32mpandas [0.17.0|0.17.1|...|0.20.3][0m, which can be installed (as previously explained); + [32mpandas [0.19.2|0.20.0|0.20.1|0.20.2|0.20.3][0m, which can be installed (as previously explained); + [32mpandas [0.19.2|0.20.0|0.20.1|0.20.2|0.20.3][0m, which can be installed (as previously explained); + [32mpandas [0.20.2|0.20.3][0m, which can be installed (as previously explained); + [32mpandas [0.20.2|0.20.3][0m, which can be installed (as previously explained); + [32mpandas [0.20.3|0.21.0|...|0.23.4][0m, which can be installed (as previously explained); + [31mpandas [0.23.4|0.24.0|...|0.25.3][0m conflicts with any installable versions previously reported; + [32mpandas [0.24.2|0.25.3][0m, which can be installed (as previously explained); + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mbcolz 1.2.1[0m would require + [32mpython_abi * *_cp38[0m, which can be installed; + [31mnumpy 1.23.* [0m is not installable because there are no viable options + [31mnumpy [1.23.0|1.23.1|...|1.23.5][0m would require + [31mpython_abi 3.10.* *_cp310[0m, which conflicts with any installable versions previously reported; + [31mnumpy [1.23.0|1.23.1|...|1.23.5][0m would require + [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; + [31mnumpy [1.23.0|1.23.1|...|1.23.5][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [31mnumpy [1.23.0|1.23.1|...|1.23.5][0m would require + [31mpython_abi 3.9.* *_cp39[0m, which conflicts with any installable versions previously reported; + [31mnumpy [1.23.0|1.23.1|...|1.23.5][0m would require + [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; + [31mnumpy [1.23.4|1.23.5][0m would require + [31mpython_abi 3.11.* *_cp311[0m, which conflicts with any installable versions previously reported; + [32mpandas[0m is installable with the potential options + [32mpandas [0.20.3|0.21.0|...|0.25.3][0m, which can be installed (as previously explained); + [32mpandas [0.17.0|0.17.1|...|0.19.2][0m, which can be installed (as previously explained); + [32mpandas [0.17.0|0.17.1|...|0.19.2][0m, which can be installed (as previously explained); + [32mpandas [0.17.0|0.17.1|...|0.20.3][0m, which can be installed (as previously explained); + [32mpandas [0.17.0|0.17.1|...|0.20.3][0m, which can be installed (as previously explained); + [32mpandas [0.19.2|0.20.0|0.20.1|0.20.2|0.20.3][0m, which can be installed (as previously explained); + [32mpandas [0.19.2|0.20.0|0.20.1|0.20.2|0.20.3][0m, which can be installed (as previously explained); + [32mpandas [0.20.2|0.20.3][0m, which can be installed (as previously explained); + [32mpandas [0.20.2|0.20.3][0m, which can be installed (as previously explained); + [32mpandas [0.20.3|0.21.0|...|0.23.4][0m, which can be installed (as previously explained); + [31mpandas [0.23.4|0.24.0|...|0.25.3][0m conflicts with any installable versions previously reported; + [32mpandas [0.24.2|0.25.3][0m, which can be installed (as previously explained); + [31mpandas [1.0.0|1.0.1|...|2.2.2][0m conflicts with any installable versions previously reported; + [31mpandas [1.0.0|1.0.1][0m would require + [32mpython_abi * *_cp38[0m, which can be installed; + [31mpandas [2.1.1|2.1.2|...|2.2.2][0m would require + [31mpython_abi 3.12.* *_cp312[0m, which conflicts with any installable versions previously reported; + [32mpysam >=0.22 [0m is installable with the potential options + [31mpysam [0.22.0|0.22.1][0m would require + [31mpython_abi 3.10.* *_cp310[0m, which conflicts with any installable versions previously reported; + [32mpysam [0.22.0|0.22.1][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [31mpysam [0.22.0|0.22.1][0m would require + [31mpython_abi 3.9.* *_cp39[0m, which conflicts with any installable versions previously reported; + [31mpysam 0.22.1[0m would require + [31mpython_abi 3.11.* *_cp311[0m, which conflicts with any installable versions previously reported; + [31mpysam 0.22.1[0m would require + [31mpython_abi 3.12.* *_cp312[0m, which conflicts with any installable versions previously reported; + [31mpysam 0.22.1[0m would require + [31mopenssl >=3.3.1,<4.0a0 [0m, which conflicts with any installable versions previously reported; + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [31mpython 3.11.* *_cpython[0m is not installable because there are no viable options + [31mpython [3.11.0|3.11.1|...|3.11.9][0m would require + [31mpython_abi 3.11.* *_cp311[0m, which conflicts with any installable versions previously reported; + [31mpython 3.11.0[0m would require + [32mopenssl >=1.1.1q,<1.1.2a [0m, which can be installed; + [31mpython_abi 3.11.* *_cp311[0m, which conflicts with any installable versions previously reported; + [31mpython 3.11.0[0m would require + [32mopenssl >=1.1.1s,<1.1.2a [0m, which can be installed; + [31mpython_abi 3.11.* *_cp311[0m, which conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/gemini/build_failure.linux-aarch64.yaml b/recipes/gemini/build_failure.linux-aarch64.yaml new file mode 100644 index 0000000000000..a05c100f92a4f --- /dev/null +++ b/recipes/gemini/build_failure.linux-aarch64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 164abbf7c3e0bc8ad245a0a1a02165aa8d1e49c340817b6a97e60bdb6223dd48 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: dependency issue +log: |2- + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-aarch64: {MatchSpec("bcolz")} + Encountered problems while solving: + - nothing provides requested bcolz + + Could not solve for environment specs + The following package could not be installed + [31mbcolz[0m does not exist (perhaps a typo or a missing channel). + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-aarch64: {MatchSpec("bcolz")} + Encountered problems while solving: + - nothing provides requested bcolz + + Could not solve for environment specs + The following package could not be installed + [31mbcolz[0m does not exist (perhaps a typo or a missing channel). + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2308, in build + output_metas = expand_outputs([(m, need_source_download, need_reparse_in_env)]) + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 916, in expand_outputs + for output_dict, m in deepcopy(_m).get_output_metadata_set( + File "/opt/conda/lib/python3.10/site-packages/conda_build/metadata.py", line 2737, in get_output_metadata_set + conda_packages = finalize_outputs_pass( + File "/opt/conda/lib/python3.10/site-packages/conda_build/metadata.py", line 1095, in finalize_outputs_pass + fm = finalize_metadata( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 650, in finalize_metadata + build_unsat, host_unsat = add_upstream_pins( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 491, in add_upstream_pins + host_deps, host_unsat, extra_run_specs_from_host = _read_upstream_pin_files( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 444, in _read_upstream_pin_files + deps, precs, unsat = get_env_dependencies( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 156, in get_env_dependencies + precs = environ.get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-aarch64: {MatchSpec("bcolz")} + Encountered problems while solving: + - nothing provides requested bcolz + + Could not solve for environment specs + The following package could not be installed + [31mbcolz[0m does not exist (perhaps a typo or a missing channel). +# Last 100 lines of the build log. diff --git a/recipes/gemini/build_failure.osx-64.yaml b/recipes/gemini/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..1526ea63e4bf2 --- /dev/null +++ b/recipes/gemini/build_failure.osx-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 164abbf7c3e0bc8ad245a0a1a02165aa8d1e49c340817b6a97e60bdb6223dd48 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: dependency issue +log: |2- + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 650, in finalize_metadata + build_unsat, host_unsat = add_upstream_pins( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 491, in add_upstream_pins + host_deps, host_unsat, extra_run_specs_from_host = _read_upstream_pin_files( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 444, in _read_upstream_pin_files + deps, precs, unsat = get_env_dependencies( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 156, in get_env_dependencies + precs = environ.get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("python_abi=3.10[build=*_cp310]"), MatchSpec("numpy==1.26.0=py310h0171094_0")} + Encountered problems while solving: + - package numpy-1.26.0-py310h0171094_0 requires python_abi 3.10.* *_cp310, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + bcolz is installable with the potential options + bcolz [1.1.2|1.2.1] would require + python_abi * *_cp27m, which can be installed; + bcolz [1.1.2|1.2.1] would require + python_abi * *_cp35m, which can be installed; + bcolz [1.1.2|1.2.1] would require + python_abi * *_cp36m, which can be installed; + bcolz 1.2.1 would require + python_abi * *_cp37m, which can be installed; + bcolz 1.2.1 would require + pandas <1 with the potential options + pandas 0.20.3 would require + python_abi * *_cp34m, which can be installed; + pandas [0.17.0|0.17.1|...|0.19.2] would require + numpy 1.10* , which can be installed; + pandas [0.17.0|0.17.1|...|0.20.3] would require + numpy 1.11* , which can be installed; + pandas [0.19.2|0.20.0|0.20.1|0.20.2|0.20.3] would require + numpy 1.12* , which can be installed; + pandas [0.20.2|0.20.3] would require + numpy 1.13* , which can be installed; + pandas [0.20.3|0.21.0|...|0.24.2] would require + python_abi * *_cp27m, which can be installed; + pandas [0.20.3|0.21.0|...|0.23.4] would require + python_abi * *_cp35m, which can be installed; + pandas [0.20.3|0.21.0|...|1.0.1] would require + python_abi * *_cp36m, which can be installed; + pandas [0.23.4|0.24.0|...|1.0.1] would require + python_abi * *_cp37m, which can be installed; + pandas [0.24.2|0.25.3|1.0.0|1.0.1] would require + python_abi * *_cp38, which can be installed; + python_abi 3.7.* *_cp37m, which can be installed; + bcolz 1.2.1 would require + pandas <1 , which can be installed (as previously explained); + python_abi 3.8.* *_cp38, which can be installed; + bcolz 1.2.1 would require + python_abi * *_cp38, which can be installed; + numpy 1.26.* is not installable because there are no viable options + numpy [1.26.0|1.26.2|1.26.3|1.26.4] would require + python_abi 3.10.* *_cp310, which conflicts with any installable versions previously reported; + numpy [1.26.0|1.26.2|1.26.3|1.26.4] would require + python_abi 3.11.* *_cp311, which conflicts with any installable versions previously reported; + numpy [1.26.0|1.26.2|1.26.3|1.26.4] would require + python_abi 3.12.* *_cp312, which conflicts with any installable versions previously reported; + numpy [1.26.0|1.26.2|1.26.3|1.26.4] would require + python_abi 3.9 *_pypy39_pp73, which conflicts with any installable versions previously reported; + numpy [1.26.0|1.26.2|1.26.3|1.26.4] would require + python_abi 3.9.* *_cp39, which conflicts with any installable versions previously reported; + pandas is installable with the potential options + pandas 0.20.3, which can be installed (as previously explained); + pandas [0.17.0|0.17.1|...|0.19.2], which can be installed (as previously explained); + pandas [0.17.0|0.17.1|...|0.20.3], which can be installed (as previously explained); + pandas [0.19.2|0.20.0|0.20.1|0.20.2|0.20.3], which can be installed (as previously explained); + pandas [0.20.2|0.20.3], which can be installed (as previously explained); + pandas [0.20.3|0.21.0|...|0.24.2], which can be installed (as previously explained); + pandas [0.20.3|0.21.0|...|0.23.4], which can be installed (as previously explained); + pandas [0.20.3|0.21.0|...|1.0.1], which can be installed (as previously explained); + pandas [0.23.4|0.24.0|...|1.0.1], which can be installed (as previously explained); + pandas [0.24.2|0.25.3|1.0.0|1.0.1], which can be installed (as previously explained); + pandas [1.0.2|1.0.3|...|2.2.2] conflicts with any installable versions previously reported; + pandas [2.1.1|2.1.2|...|2.2.2] would require + python_abi 3.12.* *_cp312, which conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/gemini/meta.yaml b/recipes/gemini/meta.yaml index 4208619313276..52bc0f9959a2c 100644 --- a/recipes/gemini/meta.yaml +++ b/recipes/gemini/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 6 + number: 7 script: {{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} @@ -20,7 +20,7 @@ requirements: - {{ compiler('c') }} host: - pip - - python >=3.8 + - python - setuptools - bcolz - bottle @@ -45,7 +45,7 @@ requirements: - snappy - python-snappy run: - - python >=3.8 + - python - bcolz - bottle - bx-python diff --git a/recipes/genbank/meta.yaml b/recipes/genbank/meta.yaml index d5a0c8f267aad..cf70bd241712c 100644 --- a/recipes/genbank/meta.yaml +++ b/recipes/genbank/meta.yaml @@ -10,7 +10,7 @@ source: sha256: f9a6ba243d62934e9e5ed283d8b475ab3dd9a3760ba329a054d5f6df54a8ec45 build: - number: 0 + number: 1 skip: True # [py < 36] script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation run_exports: diff --git a/recipes/genomeconstellation/meta.yaml b/recipes/genomeconstellation/meta.yaml index 60cab47240dd5..daf405646d6a7 100644 --- a/recipes/genomeconstellation/meta.yaml +++ b/recipes/genomeconstellation/meta.yaml @@ -11,7 +11,7 @@ source: - makefile.patch build: - number: 4 + number: 5 requirements: build: diff --git a/recipes/genomedata/meta.yaml b/recipes/genomedata/meta.yaml index c79e56a3185bc..4570a13ed3a68 100644 --- a/recipes/genomedata/meta.yaml +++ b/recipes/genomedata/meta.yaml @@ -12,7 +12,7 @@ source: build: skip: True # [osx or py < 39] - number: 0 + number: 1 entry_points: - genomedata-close-data = genomedata._close_data:main - genomedata-erase-data = genomedata._erase_data:main diff --git a/recipes/genomelake/meta.yaml b/recipes/genomelake/meta.yaml index f7f649f4da5ff..4067e2110783a 100644 --- a/recipes/genomelake/meta.yaml +++ b/recipes/genomelake/meta.yaml @@ -11,7 +11,7 @@ source: build: # bcolz hasn't been built for python 3.9+ skip: True # [py > 38] - number: 6 + number: 7 requirements: build: diff --git a/recipes/genomescope2/meta.yaml b/recipes/genomescope2/meta.yaml index e3adffbfc2e7e..7bf3abda345cc 100644 --- a/recipes/genomescope2/meta.yaml +++ b/recipes/genomescope2/meta.yaml @@ -6,7 +6,7 @@ source: git_url: https://github.com/tbenavi1/genomescope2.0.git build: - number: 6 + number: 7 noarch: generic requirements: diff --git a/recipes/genometools-genometools/meta.yaml b/recipes/genometools-genometools/meta.yaml index 63ecad35f6ab6..06e8cc51fe99b 100644 --- a/recipes/genometools-genometools/meta.yaml +++ b/recipes/genometools-genometools/meta.yaml @@ -11,8 +11,9 @@ source: sha256: {{ sha256 }} build: - skip: true # [py2k] - number: 1 + # distutils was removed from python 3.12 + skip: true # [py == 312 ] + number: 3 run_exports: - {{ pin_subpackage('genometools-genometools', max_pin="x") }} diff --git a/recipes/ggcaller/build_failure.linux-64.yaml b/recipes/ggcaller/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..1f869f1bff695 --- /dev/null +++ b/recipes/ggcaller/build_failure.linux-64.yaml @@ -0,0 +1,106 @@ +recipe_sha: 881e0ffc9f1369a08046148dd3819c99665e42c9c09ae279668944b12d1e6bff # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + mkl 2023.2.0 h84fe81f_37, which can be installed; + mkl-devel 2023.2.0 would require + mkl 2023.2.0 h84fe81f_49501, which can be installed; + mkl-devel 2023.2.0 would require + mkl 2023.2.0 h84fe81f_49502, which can be installed; + mkl-devel 2023.2.0 would require + mkl 2023.2.0 h84fe81f_49572, which can be installed; + mkl-devel 2023.2.0 would require + mkl 2023.2.0 h84fe81f_50495, which can be installed; + mkl-devel 2023.2.0 would require + mkl 2023.2.0 h84fe81f_50496, which can be installed; + pytorch 1.10.* is not installable because there are no viable options + pytorch 1.10.0 would require + mkl >=2021.4.0,<2022.0a0 , which conflicts with any installable versions previously reported; + pytorch [1.10.1|1.10.2] would require + mkl 2022.* , which conflicts with any installable versions previously reported. + Reloading output folder: ...working... done + Getting pinned dependencies: ...working... failed + Reloading output folder: ...working... done + Getting pinned dependencies: ...working... failed + Reloading output folder: ...working... done + Getting pinned dependencies: ...working... failed + ERROR: Failed to get package records, max retries exceeded. + Reloading output folder: ...working... done + Getting pinned dependencies: ...working... failed + Reloading output folder: ...working... done + Getting pinned dependencies: ...working... failed + Reloading output folder: ...working... done + Getting pinned dependencies: ...working... failed + Reloading output folder: ...working... done + Getting pinned dependencies: ...working... failed + Reloading output folder: ...working... done + Getting pinned dependencies: ...working... failed + Reloading output folder: ...working... done + Getting pinned dependencies: ...working... failed + Reloading output folder: ...working... done + Getting pinned dependencies: ...working... failed + Reloading output folder: ...working... done + Getting pinned dependencies: ...working... failed + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/models/version.py", line 44, in __call__ + return cls._cache_[arg] + KeyError: '>=3.9' + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/bioconda-utils", line 8, in + sys.exit(main()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/bioconda_utils/cli.py", line 1124, in main + argh.dispatch_commands([ + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/argh/dispatching.py", line 510, in dispatch_commands + dispatch(parser, *args, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/argh/dispatching.py", line 198, in dispatch + return run_endpoint_function( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/argh/dispatching.py", line 269, in run_endpoint_function + return _process_command_output(lines, output_file, raw_output, always_flush) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/argh/dispatching.py", line 289, in _process_command_output + for line in lines: + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/argh/dispatching.py", line 414, in _execute_command + for line in result: + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/argh/dispatching.py", line 394, in _call + result = function(*positional_values, **values_by_name) + File "", line 2, in build + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/bioconda_utils/cli.py", line 137, in wrapper + func(*args, **kwargs) + File "", line 2, in build + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/bioconda_utils/cli.py", line 66, in wrapper + func(*args, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/bioconda_utils/cli.py", line 498, in build + success = build_recipes(recipe_folder, config, recipes, + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/bioconda_utils/build.py", line 431, in build_recipes + pkg_paths = utils.get_package_paths(recipe, check_channels, force=force) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/bioconda_utils/utils.py", line 1125, in get_package_paths + platform, metas = _load_platform_metas(recipe, finalize=True) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/bioconda_utils/utils.py", line 1025, in _load_platform_metas + return platform, load_all_meta(recipe, config=config, finalize=finalize) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/bioconda_utils/utils.py", line 459, in load_all_meta + metas = [ + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/bioconda_utils/utils.py", line 462, in + for (meta, _, _) in api.render( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 74, in render + for od, om in meta.get_output_metadata_set( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 2737, in get_output_metadata_set + conda_packages = finalize_outputs_pass( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 1095, in finalize_outputs_pass + fm = finalize_metadata( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 688, in finalize_metadata + versioned_run_deps = [ + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 689, in + get_pin_from_build(m, dep, full_build_dep_versions) for dep in run_deps + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 219, in get_pin_from_build + pin = utils.apply_pin_expressions(version.split()[0], **pin_cfg) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 1523, in apply_pin_expressions + parsed_version = VersionOrder(version).version[1:] + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/models/version.py", line 46, in __call__ + val = cls._cache_[arg] = super().__call__(arg) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/models/version.py", line 172, in __init__ + raise InvalidVersionSpec(vstr, "invalid character(s)") + conda.exceptions.InvalidVersionSpec: Invalid version '>=3.9': invalid character(s) +# Last 100 lines of the build log. +category: |- + dependency issue diff --git a/recipes/gimmemotifs/build_failure.linux-64.yaml b/recipes/gimmemotifs/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..186dad49c6792 --- /dev/null +++ b/recipes/gimmemotifs/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 3610267290d8b8f268cecd167798b74c17a9562b2602eef4cb956f4101920488 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + [34m filename = __file__[0m + [34m with tokenize.open(__file__) as f:[0m + [34m setup_py_code = f.read()[0m + [34m else:[0m + [34m filename = ""[0m + [34m setup_py_code = "from setuptools import setup; setup()"[0m + [34m [0m + [34m exec(compile(setup_py_code, filename, "exec"))[0m + [34m '"'"''"'"''"'"' % ('"'"'/opt/conda/conda-bld/gimmemotifs_1718121272991/work/setup.py'"'"',), "", "exec"))' egg_info --egg-base /tmp/pip-pip-egg-info-n2ula4ta[0m + [1;35mcwd[0m: /opt/conda/conda-bld/gimmemotifs_1718121272991/work/ + Preparing metadata (setup.py) ... [?25l[?25herror + [1;31merror[0m: [1mmetadata-generation-failed[0m + + [31m[0m Encountered error while generating package metadata. + [31m>[0m See above for output. + + [1;35mnote[0m: This is an issue with the package mentioned above, not pip. + [1;36mhint[0m: See above for details. + Exception information: + Traceback (most recent call last): + File "/opt/conda/conda-bld/gimmemotifs_1718121272991/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.12/site-packages/pip/_internal/operations/build/metadata_legacy.py", line 64, in generate_metadata + call_subprocess( + File "/opt/conda/conda-bld/gimmemotifs_1718121272991/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.12/site-packages/pip/_internal/utils/subprocess.py", line 224, in call_subprocess + raise error + pip._internal.exceptions.InstallationSubprocessError: python setup.py egg_info exited with 1 + + The above exception was the direct cause of the following exception: + + Traceback (most recent call last): + File "/opt/conda/conda-bld/gimmemotifs_1718121272991/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.12/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper + status = run_func(*args) + ^^^^^^^^^^^^^^^ + File "/opt/conda/conda-bld/gimmemotifs_1718121272991/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.12/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper + return func(self, options, args) + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/conda-bld/gimmemotifs_1718121272991/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.12/site-packages/pip/_internal/commands/install.py", line 377, in run + requirement_set = resolver.resolve( + ^^^^^^^^^^^^^^^^^ + File "/opt/conda/conda-bld/gimmemotifs_1718121272991/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 76, in resolve + collected = self.factory.collect_root_requirements(root_reqs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/conda-bld/gimmemotifs_1718121272991/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 534, in collect_root_requirements + reqs = list( + ^^^^^ + File "/opt/conda/conda-bld/gimmemotifs_1718121272991/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 490, in _make_requirements_from_install_req + cand = self._make_base_candidate_from_link( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/conda-bld/gimmemotifs_1718121272991/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 228, in _make_base_candidate_from_link + self._link_candidate_cache[link] = LinkCandidate( + ^^^^^^^^^^^^^^ + File "/opt/conda/conda-bld/gimmemotifs_1718121272991/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 290, in __init__ + super().__init__( + File "/opt/conda/conda-bld/gimmemotifs_1718121272991/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 156, in __init__ + self.dist = self._prepare() + ^^^^^^^^^^^^^^^ + File "/opt/conda/conda-bld/gimmemotifs_1718121272991/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 222, in _prepare + dist = self._prepare_distribution() + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/conda-bld/gimmemotifs_1718121272991/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 301, in _prepare_distribution + return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/conda-bld/gimmemotifs_1718121272991/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 525, in prepare_linked_requirement + return self._prepare_linked_requirement(req, parallel_builds) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/conda-bld/gimmemotifs_1718121272991/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 640, in _prepare_linked_requirement + dist = _get_prepared_distribution( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/conda-bld/gimmemotifs_1718121272991/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 71, in _get_prepared_distribution + abstract_dist.prepare_distribution_metadata( + File "/opt/conda/conda-bld/gimmemotifs_1718121272991/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.12/site-packages/pip/_internal/distributions/sdist.py", line 67, in prepare_distribution_metadata + self.req.prepare_metadata() + File "/opt/conda/conda-bld/gimmemotifs_1718121272991/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.12/site-packages/pip/_internal/req/req_install.py", line 585, in prepare_metadata + self.metadata_directory = generate_metadata_legacy( + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/conda-bld/gimmemotifs_1718121272991/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.12/site-packages/pip/_internal/operations/build/metadata_legacy.py", line 71, in generate_metadata + raise MetadataGenerationFailed(package_details=details) from error + pip._internal.exceptions.MetadataGenerationFailed: metadata generation failed + Remote version of pip: 24.0 + Local version of pip: 24.0 + Was pip installed by pip? False + Removed file:///opt/conda/conda-bld/gimmemotifs_1718121272991/work from build tracker '/tmp/pip-build-tracker-8pbev87f' + Removed build tracker: '/tmp/pip-build-tracker-8pbev87f' + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2711, in build + newly_built_packages = bundlers[pkg_type](output_d, m, env, stats) + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 1784, in bundle_conda + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/usr/bin/bash', '-e', '/opt/conda/conda-bld/gimmemotifs_1718121272991/work/output_script.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/gimmemotifs/meta.yaml b/recipes/gimmemotifs/meta.yaml index 7811f1aef805b..c6510e2a40d2d 100644 --- a/recipes/gimmemotifs/meta.yaml +++ b/recipes/gimmemotifs/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 8e7d23a898174a962c845b22433a74e3ddde619c5d77f3a5b5dbfb8fa61e7351 build: - number: 5 + number: 6 skip: True # [osx] run_exports: - {{ pin_subpackage('gimmemotifs', max_pin="x.x") }} diff --git a/recipes/ginpiper/meta.yaml b/recipes/ginpiper/meta.yaml index 108553df0cad6..60214638d22c9 100644 --- a/recipes/ginpiper/meta.yaml +++ b/recipes/ginpiper/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256}} build: - number: 1 + number: 2 noarch: generic requirements: diff --git a/recipes/glimmerhmm/build_failure.linux-64.yaml b/recipes/glimmerhmm/build_failure.linux-64.yaml deleted file mode 100644 index bdd72e799e833..0000000000000 --- a/recipes/glimmerhmm/build_failure.linux-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 8297d05d8f902eb6252113602e21ef80ba85c6779868ea8461f0c2e3d47f37a1 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - sysroot_linux-64: 2.12-he073ed8_15 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - Source cache directory is: /opt/conda/conda-bld/src_cache - INFO:conda_build.source:Source cache directory is: /opt/conda/conda-bld/src_cache - Downloading source to cache: GlimmerHMM-3.0.4_af3626a5ec.tar.gz - INFO:conda_build.source:Downloading source to cache: GlimmerHMM-3.0.4_af3626a5ec.tar.gz - Downloading https://ccb.jhu.edu/software/glimmerhmm/dl/GlimmerHMM-3.0.4.tar.gz - INFO:conda_build.source:Downloading https://ccb.jhu.edu/software/glimmerhmm/dl/GlimmerHMM-3.0.4.tar.gz - DEBUG:urllib3.util.retry:Incremented Retry for (url='/software/glimmerhmm/dl/GlimmerHMM-3.0.4.tar.gz'): Retry(total=2, connect=None, read=None, redirect=None, status=None) - WARNING:urllib3.connectionpool:Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: WRONG_SIGNATURE_TYPE] wrong signature type (_ssl.c:1131)'))': /software/glimmerhmm/dl/GlimmerHMM-3.0.4.tar.gz - DEBUG:urllib3.util.retry:Incremented Retry for (url='/software/glimmerhmm/dl/GlimmerHMM-3.0.4.tar.gz'): Retry(total=1, connect=None, read=None, redirect=None, status=None) - WARNING:urllib3.connectionpool:Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: WRONG_SIGNATURE_TYPE] wrong signature type (_ssl.c:1131)'))': /software/glimmerhmm/dl/GlimmerHMM-3.0.4.tar.gz - DEBUG:urllib3.util.retry:Incremented Retry for (url='/software/glimmerhmm/dl/GlimmerHMM-3.0.4.tar.gz'): Retry(total=0, connect=None, read=None, redirect=None, status=None) - WARNING:urllib3.connectionpool:Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: WRONG_SIGNATURE_TYPE] wrong signature type (_ssl.c:1131)'))': /software/glimmerhmm/dl/GlimmerHMM-3.0.4.tar.gz - Traceback (most recent call last): - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 670, in urlopen - httplib_response = self._make_request( - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 381, in _make_request - self._validate_conn(conn) - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 978, in _validate_conn - conn.connect() - File "/opt/conda/lib/python3.8/site-packages/urllib3/connection.py", line 362, in connect - self.sock = ssl_wrap_socket( - File "/opt/conda/lib/python3.8/site-packages/urllib3/util/ssl_.py", line 386, in ssl_wrap_socket - return context.wrap_socket(sock, server_hostname=server_hostname) - File "/opt/conda/lib/python3.8/ssl.py", line 500, in wrap_socket - return self.sslsocket_class._create( - File "/opt/conda/lib/python3.8/ssl.py", line 1040, in _create - self.do_handshake() - File "/opt/conda/lib/python3.8/ssl.py", line 1309, in do_handshake - self._sslobj.do_handshake() - ssl.SSLError: [SSL: WRONG_SIGNATURE_TYPE] wrong signature type (_ssl.c:1131) - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/conda/lib/python3.8/site-packages/requests/adapters.py", line 439, in send - resp = conn.urlopen( - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 754, in urlopen - return self.urlopen( - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 754, in urlopen - return self.urlopen( - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 754, in urlopen - return self.urlopen( - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 726, in urlopen - retries = retries.increment( - File "/opt/conda/lib/python3.8/site-packages/urllib3/util/retry.py", line 446, in increment - raise MaxRetryError(_pool, url, error or ResponseError(cause)) - urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='ccb.jhu.edu', port=443): Max retries exceeded with url: /software/glimmerhmm/dl/GlimmerHMM-3.0.4.tar.gz (Caused by SSLError(SSLError(1, '[SSL: WRONG_SIGNATURE_TYPE] wrong signature type (_ssl.c:1131)'))) - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/conda/lib/python3.8/site-packages/conda/gateways/connection/download.py", line 48, in download - resp = session.get(url, stream=True, proxies=session.proxies, timeout=timeout) - File "/opt/conda/lib/python3.8/site-packages/requests/sessions.py", line 546, in get - return self.request('GET', url, **kwargs) - File "/opt/conda/lib/python3.8/site-packages/requests/sessions.py", line 533, in request - resp = self.send(prep, **send_kwargs) - File "/opt/conda/lib/python3.8/site-packages/requests/sessions.py", line 646, in send - r = adapter.send(request, **kwargs) - File "/opt/conda/lib/python3.8/site-packages/requests/adapters.py", line 514, in send - raise SSLError(e, request=request) - requests.exceptions.SSLError: HTTPSConnectionPool(host='ccb.jhu.edu', port=443): Max retries exceeded with url: /software/glimmerhmm/dl/GlimmerHMM-3.0.4.tar.gz (Caused by SSLError(SSLError(1, '[SSL: WRONG_SIGNATURE_TYPE] wrong signature type (_ssl.c:1131)'))) - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/conda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/conda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 2125, in build - try_download(m, no_download_source=False, raise_error=True) - File "/opt/conda/lib/python3.8/site-packages/conda_build/render.py", line 650, in try_download - source.provide(metadata) - File "/opt/conda/lib/python3.8/site-packages/conda_build/source.py", line 871, in provide - unpack(source_dict, src_dir, metadata.config.src_cache, recipe_path=metadata.path, - File "/opt/conda/lib/python3.8/site-packages/conda_build/source.py", line 146, in unpack - src_path, unhashed_fn = download_to_cache(cache_folder, recipe_path, source_dict, verbose) - File "/opt/conda/lib/python3.8/site-packages/conda_build/source.py", line 89, in download_to_cache - download(url, path) - File "/opt/conda/lib/python3.8/site-packages/conda/exports.py", line 374, in download - return _download(url, dst_path, md5=md5sum, sha256=sha256, size=size) - File "/opt/conda/lib/python3.8/site-packages/conda/common/io.py", line 84, in decorated - return f(*args, **kwds) - File "/opt/conda/lib/python3.8/site-packages/conda/gateways/connection/download.py", line 152, in download - raise CondaSSLError( - conda.exceptions.CondaSSLError: Encountered an SSL error. Most likely a certificate verification issue. - - Exception: HTTPSConnectionPool(host='ccb.jhu.edu', port=443): Max retries exceeded with url: /software/glimmerhmm/dl/GlimmerHMM-3.0.4.tar.gz (Caused by SSLError(SSLError(1, '[SSL: WRONG_SIGNATURE_TYPE] wrong signature type (_ssl.c:1131)'))) -# Last 100 lines of the build log. diff --git a/recipes/glimmerhmm/build_failure.osx-64.yaml b/recipes/glimmerhmm/build_failure.osx-64.yaml index 006c9af8b1d2a..dae3a9ae59253 100644 --- a/recipes/glimmerhmm/build_failure.osx-64.yaml +++ b/recipes/glimmerhmm/build_failure.osx-64.yaml @@ -1,104 +1,105 @@ -recipe_sha: 8297d05d8f902eb6252113602e21ef80ba85c6779868ea8461f0c2e3d47f37a1 # The commit at which this recipe failed to build. +recipe_sha: eadeb5962e3754b3c69828174d7d5f7e483e79ed9304eae11626f173217335b7 # The hash of the recipe's meta.yaml at which this recipe failed to build. skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - zstd: 1.5.2-hbc0c0cd_6 conda-forge +category: compiler error +log: |- + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/glimmerhmm-3.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/glimmerhmm-3.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + make: Entering directory '$SRC_DIR/sources' + x86_64-apple-darwin13.4.0-clang -g -c glimmerhmm.c + x86_64-apple-darwin13.4.0-clang -g -c graph.c + x86_64-apple-darwin13.4.0-clang -g -c sites.c + x86_64-apple-darwin13.4.0-clang -g -c tree_util_prob.c + x86_64-apple-darwin13.4.0-clang -g -c util.c + x86_64-apple-darwin13.4.0-clang -g -o glimmerhmm glimmerhmm.o graph.o sites.o tree_util_prob.o util.o -lm + make: Leaving directory '$SRC_DIR/sources' + make: Entering directory '$SRC_DIR/train' + /bin/rm -f core* splicescore *.o score build? build-icm \ + build-icm-noframe erfapp falsecomp findsites karlin score2 scoreATG \ + scoreATG2 scoreSTOP scoreSTOP2 + make: Leaving directory '$SRC_DIR/train' + make: Entering directory '$SRC_DIR/train' + x86_64-apple-darwin13.4.0-clang -Wall -g -c misc.c + x86_64-apple-darwin13.4.0-clang -Wall -g -c build-icm.c + x86_64-apple-darwin13.4.0-clang -Wall -g -c build-icm-noframe.c + x86_64-apple-darwin13.4.0-clang -Wall -g -o build-icm build-icm.o misc.o -lm + x86_64-apple-darwin13.4.0-clang -Wall -g -o build-icm-noframe build-icm-noframe.o misc.o -lm + x86_64-apple-darwin13.4.0-clang -Wall -g -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -c -o build1.o build1.c + x86_64-apple-darwin13.4.0-clang -Wall -g build1.c -o build1 -lm + x86_64-apple-darwin13.4.0-clang -Wall -g -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -c -o build2.o build2.c + x86_64-apple-darwin13.4.0-clang -Wall -g build2.c -o build2 -lm + x86_64-apple-darwin13.4.0-clang -Wall -g -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -c -o falsecomp.o falsecomp.c + x86_64-apple-darwin13.4.0-clang -Wall -g falsecomp.c -o falsecomp -lm + x86_64-apple-darwin13.4.0-clang -Wall -g -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -c -o findsites.o findsites.c + x86_64-apple-darwin13.4.0-clang -Wall -g findsites.c -o findsites -lm + x86_64-apple-darwin13.4.0-clang -Wall -g -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -c -o karlin.o karlin.c + x86_64-apple-darwin13.4.0-clang -Wall -g karlin.c -o karlin -lm + x86_64-apple-darwin13.4.0-clang -Wall -g -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -c -o score.o score.c + x86_64-apple-darwin13.4.0-clang -Wall -g score.c -o score -lm + x86_64-apple-darwin13.4.0-clang -Wall -g -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -c -o score2.o score2.c + x86_64-apple-darwin13.4.0-clang -Wall -g score2.c -o score2 -lm + x86_64-apple-darwin13.4.0-clang -Wall -g -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -c -o scoreATG.o scoreATG.c + x86_64-apple-darwin13.4.0-clang -Wall -g scoreATG.c -o scoreATG -lm + x86_64-apple-darwin13.4.0-clang -Wall -g -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -c -o scoreATG2.o scoreATG2.c + x86_64-apple-darwin13.4.0-clang -Wall -g scoreATG2.c -o scoreATG2 -lm + x86_64-apple-darwin13.4.0-clang -Wall -g -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -c -o scoreSTOP.o scoreSTOP.c + x86_64-apple-darwin13.4.0-clang -Wall -g scoreSTOP.c -o scoreSTOP -lm + x86_64-apple-darwin13.4.0-clang -Wall -g -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -c -o scoreSTOP2.o scoreSTOP2.c + x86_64-apple-darwin13.4.0-clang -Wall -g scoreSTOP2.c -o scoreSTOP2 -lm + x86_64-apple-darwin13.4.0-clang -Wall -g -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -c -o erfapp.o erfapp.c + x86_64-apple-darwin13.4.0-clang -Wall -g erfapp.c -o erfapp -lm + x86_64-apple-darwin13.4.0-clang -Wall -g -c splicescore.c + x86_64-apple-darwin13.4.0-clang -Wall -g -c sites.c + x86_64-apple-darwin13.4.0-clang -Wall -g -c utils.c + x86_64-apple-darwin13.4.0-clang splicescore.o sites.o utils.o -o splicescore -lm + make: Leaving directory '$SRC_DIR/train' - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache - INFO:conda_build.source:Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache - Downloading source to cache: GlimmerHMM-3.0.4_af3626a5ec.tar.gz - Downloading https://ccb.jhu.edu/software/glimmerhmm/dl/GlimmerHMM-3.0.4.tar.gz - INFO:conda_build.source:Downloading source to cache: GlimmerHMM-3.0.4_af3626a5ec.tar.gz - INFO:conda_build.source:Downloading https://ccb.jhu.edu/software/glimmerhmm/dl/GlimmerHMM-3.0.4.tar.gz - DEBUG:urllib3.util.retry:Incremented Retry for (url='/software/glimmerhmm/dl/GlimmerHMM-3.0.4.tar.gz'): Retry(total=2, connect=None, read=None, redirect=None, status=None) - WARNING:urllib3.connectionpool:Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: WRONG_SIGNATURE_TYPE] wrong signature type (_ssl.c:1131)'))': /software/glimmerhmm/dl/GlimmerHMM-3.0.4.tar.gz - DEBUG:urllib3.util.retry:Incremented Retry for (url='/software/glimmerhmm/dl/GlimmerHMM-3.0.4.tar.gz'): Retry(total=1, connect=None, read=None, redirect=None, status=None) - WARNING:urllib3.connectionpool:Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: WRONG_SIGNATURE_TYPE] wrong signature type (_ssl.c:1131)'))': /software/glimmerhmm/dl/GlimmerHMM-3.0.4.tar.gz - DEBUG:urllib3.util.retry:Incremented Retry for (url='/software/glimmerhmm/dl/GlimmerHMM-3.0.4.tar.gz'): Retry(total=0, connect=None, read=None, redirect=None, status=None) - WARNING:urllib3.connectionpool:Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: WRONG_SIGNATURE_TYPE] wrong signature type (_ssl.c:1131)'))': /software/glimmerhmm/dl/GlimmerHMM-3.0.4.tar.gz - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 670, in urlopen - httplib_response = self._make_request( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 381, in _make_request - self._validate_conn(conn) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 978, in _validate_conn - conn.connect() - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connection.py", line 362, in connect - self.sock = ssl_wrap_socket( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/util/ssl_.py", line 386, in ssl_wrap_socket - return context.wrap_socket(sock, server_hostname=server_hostname) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/ssl.py", line 500, in wrap_socket - return self.sslsocket_class._create( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/ssl.py", line 1040, in _create - self.do_handshake() - File "/opt/mambaforge/envs/bioconda/lib/python3.8/ssl.py", line 1309, in do_handshake - self._sslobj.do_handshake() - ssl.SSLError: [SSL: WRONG_SIGNATURE_TYPE] wrong signature type (_ssl.c:1131) + Resource usage statistics from building glimmerhmm: + Process count: 5 + CPU time: Sys=0:00:00.2, User=0:00:00.7 + Memory: 54.8M + Disk usage: 276.9K + Time elapsed: 0:00:12.4 - During handling of the above exception, another exception occurred: - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/requests/adapters.py", line 439, in send - resp = conn.urlopen( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 754, in urlopen - return self.urlopen( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 754, in urlopen - return self.urlopen( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 754, in urlopen - return self.urlopen( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 726, in urlopen - retries = retries.increment( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/util/retry.py", line 446, in increment - raise MaxRetryError(_pool, url, error or ResponseError(cause)) - urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='ccb.jhu.edu', port=443): Max retries exceeded with url: /software/glimmerhmm/dl/GlimmerHMM-3.0.4.tar.gz (Caused by SSLError(SSLError(1, '[SSL: WRONG_SIGNATURE_TYPE] wrong signature type (_ssl.c:1131)'))) + Packaging glimmerhmm + Packaging glimmerhmm-3.0.4-pl5321h4a92bd6_8 + - During handling of the above exception, another exception occurred: - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda/gateways/connection/download.py", line 48, in download - resp = session.get(url, stream=True, proxies=session.proxies, timeout=timeout) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/requests/sessions.py", line 546, in get - return self.request('GET', url, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/requests/sessions.py", line 533, in request - resp = self.send(prep, **send_kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/requests/sessions.py", line 646, in send - r = adapter.send(request, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/requests/adapters.py", line 514, in send - raise SSLError(e, request=request) - requests.exceptions.SSLError: HTTPSConnectionPool(host='ccb.jhu.edu', port=443): Max retries exceeded with url: /software/glimmerhmm/dl/GlimmerHMM-3.0.4.tar.gz (Caused by SSLError(SSLError(1, '[SSL: WRONG_SIGNATURE_TYPE] wrong signature type (_ssl.c:1131)'))) - During handling of the above exception, another exception occurred: + + error: /opt/mambaforge/envs/bioconda/conda-bld/glimmerhmm_1718142227412/_build_env/bin/x86_64-apple-darwin13.4.0-install_name_tool: changing install names or rpaths can't be redone for: /opt/mambaforge/envs/bioconda/conda-bld/glimmerhmm_1718142227412/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/share/glimmerhmm/train/splicescore (for architecture x86_64) because larger updated load commands do not fit (the program must be relinked, and you may need to use -headerpad or -headerpad_max_install_names) + + number of files: 491 Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 2125, in build - try_download(m, no_download_source=False, raise_error=True) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/render.py", line 650, in try_download - source.provide(metadata) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/source.py", line 871, in provide - unpack(source_dict, src_dir, metadata.config.src_cache, recipe_path=metadata.path, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/source.py", line 146, in unpack - src_path, unhashed_fn = download_to_cache(cache_folder, recipe_path, source_dict, verbose) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/source.py", line 89, in download_to_cache - download(url, path) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda/exports.py", line 374, in download - return _download(url, dst_path, md5=md5sum, sha256=sha256, size=size) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda/common/io.py", line 84, in decorated - return f(*args, **kwds) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda/gateways/connection/download.py", line 152, in download - raise CondaSSLError( - conda.exceptions.CondaSSLError: Encountered an SSL error. Most likely a certificate verification issue. - - Exception: HTTPSConnectionPool(host='ccb.jhu.edu', port=443): Max retries exceeded with url: /software/glimmerhmm/dl/GlimmerHMM-3.0.4.tar.gz (Caused by SSLError(SSLError(1, '[SSL: WRONG_SIGNATURE_TYPE] wrong signature type (_ssl.c:1131)'))) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2711, in build + newly_built_packages = bundlers[pkg_type](output_d, m, env, stats) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 1850, in bundle_conda + files = post_process_files(metadata, initial_files) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 1664, in post_process_files + post_build(m, new_files, build_python=python) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/post.py", line 1727, in post_build + post_process_shared_lib(m, f, prefix_files, host_prefix) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/post.py", line 1603, in post_process_shared_lib + mk_relative_osx(path, host_prefix, m, files=files, rpaths=rpaths) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/post.py", line 491, in mk_relative_osx + macho.add_rpath(path, rpath_new, build_prefix=prefix, verbose=True) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/os_utils/macho.py", line 297, in add_rpath + raise RuntimeError("install_name_tool failed with exit status %d" % code) + RuntimeError: install_name_tool failed with exit status 1 # Last 100 lines of the build log. diff --git a/recipes/glimmerhmm/meta.yaml b/recipes/glimmerhmm/meta.yaml index a23cc5efbff1d..ce211ef17fe62 100644 --- a/recipes/glimmerhmm/meta.yaml +++ b/recipes/glimmerhmm/meta.yaml @@ -7,7 +7,7 @@ source: url: https://ccb.jhu.edu/software/glimmerhmm/dl/GlimmerHMM-3.0.4.tar.gz build: - number: 7 + number: 8 run_exports: - {{ pin_subpackage('glimmerhmm', max_pin="x") }} diff --git a/recipes/glimpse-bio/meta.yaml b/recipes/glimpse-bio/meta.yaml index 8d203f38d1089..a5023f751e4f5 100644 --- a/recipes/glimpse-bio/meta.yaml +++ b/recipes/glimpse-bio/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 1 + number: 2 source: url: https://github.com/odelaneau/GLIMPSE/archive/refs/tags/v{{ version }}.tar.gz diff --git a/recipes/gmtk/meta.yaml b/recipes/gmtk/meta.yaml index 030654ccfc30d..c2027036abc70 100644 --- a/recipes/gmtk/meta.yaml +++ b/recipes/gmtk/meta.yaml @@ -3,7 +3,7 @@ package: version: "1.4.4" build: - number: 14 + number: 15 skip: True # [osx] source: diff --git a/recipes/goldrush/build_failure.osx-64.yaml b/recipes/goldrush/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..68bbf74be2cfa --- /dev/null +++ b/recipes/goldrush/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 54f3d70cb88503230e5439d30fdb4f23fb1fbb5fa91e1646640a4a8aedffe36c # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + In file included from ../subprojects/goldpolish/subprojects/sealer/Graph/ConstrainedBidiBFSVisitor.h:8: + ../subprojects/goldpolish/subprojects/sealer/Graph/HashGraph.h:298:17: warning: 'iterator>' is deprecated [-Wdeprecated-declarations] + : public std::iterator + ^ + $BUILD_PREFIX/bin/../include/c/v1/__utility/pair.h:89:9: note: in instantiation of member class 'boost::graph_traits>::out_edge_iterator' requested here + _T1 first; + ^ + ../subprojects/goldpolish/subprojects/sealer/Graph/AllPathsSearch.h:47:20: note: in instantiation of template class 'std::pair>::out_edge_iterator, boost::graph_traits>::out_edge_iterator>' requested here + eiStack.push_back(out_edges(start, g)); + ^ + ../subprojects/goldpolish/subprojects/sealer/Graph/ConstrainedBidiBFSVisitor.h:441:40: note: in instantiation of function template specialization 'allPathsSearch>' requested here + AllPathsSearchResult leftResult = allPathsSearch( + ^ + ../subprojects/goldpolish/subprojects/sealer/Graph/ConstrainedBidiBFSVisitor.h:411:30: note: in instantiation of member function 'ConstrainedBidiBFSVisitor>::buildPaths' requested here + PathSearchResult result = buildPaths(*i); + ^ + ../subprojects/goldpolish/subprojects/sealer/Graph/ConstrainedBidiBFSVisitor.h:247:29: note: in instantiation of member function 'ConstrainedBidiBFSVisitor>::buildPaths' requested here + PathSearchResult result = buildPaths(); + ^ + ../subprojects/goldpolish/subprojects/sealer/Konnector/konnector.h:323:30: note: in instantiation of member function 'ConstrainedBidiBFSVisitor>::pathsToGoal' requested here + result.pathResult = visitor.pathsToGoal(paths); + ^ + ../subprojects/goldpolish/subprojects/sealer/sealer.cpp:434:30: note: in instantiation of function template specialization 'connectPairs>' requested here + ConnectPairsResult result = connectPairs(k, read1, read2, g, params); + ^ + ../subprojects/goldpolish/subprojects/sealer/sealer.cpp:624:21: note: in instantiation of function template specialization 'merge>' requested here + string tempSeq = merge(g, k, read2_it->second, read1, read2, params, g_count); + ^ + ../subprojects/goldpolish/subprojects/sealer/sealer.cpp:1056:3: note: in instantiation of function template specialization 'kRun>' requested here + kRun(params, opt::k, g, allmerged, flanks, gapsclosed); + ^ + $BUILD_PREFIX/bin/../include/c/v1/__iterator/iterator.h:24:29: note: 'iterator>' has been explicitly marked deprecated here + struct _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX17 iterator + ^ + $BUILD_PREFIX/bin/../include/c/v1/__config:1049:41: note: expanded from macro '_LIBCPP_DEPRECATED_IN_CXX17' + # define _LIBCPP_DEPRECATED_IN_CXX17 _LIBCPP_DEPRECATED + ^ + $BUILD_PREFIX/bin/../include/c/v1/__config:1022:49: note: expanded from macro '_LIBCPP_DEPRECATED' + # define _LIBCPP_DEPRECATED __attribute__((__deprecated__)) + ^ + 7 warnings generated. + [57/57] Linking target subprojects/goldpolish/subprojects/sealer/sealer-gr + [0/1] Installing files. + Installing goldrush_path/goldrush-path to $PREFIX/bin + Skipping RPATH fixing + Installing subprojects/goldpolish/src/goldpolish-index to $PREFIX/bin + Skipping RPATH fixing + Installing subprojects/goldpolish/src/goldpolish-targeted-bfs to $PREFIX/bin + Skipping RPATH fixing + Installing subprojects/goldpolish/src/goldpolish-hold to $PREFIX/bin + Skipping RPATH fixing + Installing subprojects/goldpolish/subprojects/ntedit/ntedit-gr to $PREFIX/bin + Skipping RPATH fixing + Installing subprojects/goldpolish/subprojects/sealer/sealer-gr to $PREFIX/bin + Skipping RPATH fixing + Installing $SRC_DIR/bin/goldrush to $PREFIX/bin + Installing $SRC_DIR/bin/goldrush-ulimit to $PREFIX/bin + Installing $SRC_DIR/subprojects/goldpolish/scripts/goldpolish_utils.py to $PREFIX/bin + Installing $SRC_DIR/subprojects/goldpolish/scripts/goldpolish to $PREFIX/bin + Installing $SRC_DIR/subprojects/goldpolish/scripts/goldpolish-autoclean to $PREFIX/bin + Installing $SRC_DIR/subprojects/goldpolish/scripts/goldpolish-make to $PREFIX/bin + Installing $SRC_DIR/subprojects/goldpolish/scripts/goldpolish-mask to $PREFIX/bin + Installing $SRC_DIR/subprojects/goldpolish/scripts/goldpolish-ntedit to $PREFIX/bin + Installing $SRC_DIR/subprojects/goldpolish/scripts/goldpolish-polish-batch to $PREFIX/bin + Installing $SRC_DIR/subprojects/goldpolish/scripts/goldpolish-reaper to $PREFIX/bin + Installing $SRC_DIR/subprojects/goldpolish/scripts/goldpolish-to-upper to $PREFIX/bin + + Resource usage statistics from building goldrush: + Process count: 9 + CPU time: Sys=0:00:04.3, User=0:01:02.5 + Memory: 791.1M + Disk usage: 92.5K + Time elapsed: 0:00:38.4 + + + number of files: 18 + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2711, in build + newly_built_packages = bundlers[pkg_type](output_d, m, env, stats) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 1850, in bundle_conda + files = post_process_files(metadata, initial_files) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 1664, in post_process_files + post_build(m, new_files, build_python=python) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/post.py", line 1727, in post_build + post_process_shared_lib(m, f, prefix_files, host_prefix) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/post.py", line 1603, in post_process_shared_lib + mk_relative_osx(path, host_prefix, m, files=files, rpaths=rpaths) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/post.py", line 470, in mk_relative_osx + names = macho.otool(path, prefix) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/os_utils/macho.py", line 221, in otool + lines = check_output([otool, "-l", path], stderr=STDOUT).decode("utf-8") + File "/opt/mambaforge/envs/bioconda/lib/python3.10/subprocess.py", line 421, in check_output + return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, + File "/opt/mambaforge/envs/bioconda/lib/python3.10/subprocess.py", line 526, in run + raise CalledProcessError(retcode, process.args, + subprocess.CalledProcessError: Command '['/opt/mambaforge/envs/bioconda/conda-bld/goldrush_1718131614419/_build_env/bin/llvm-otool', '-l', '/opt/mambaforge/envs/bioconda/conda-bld/goldrush_1718131614419/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/bin/sealer-gr']' died with . +# Last 100 lines of the build log. diff --git a/recipes/goldrush/meta.yaml b/recipes/goldrush/meta.yaml index 14d75ccce8eec..eae6980bbcdfb 100644 --- a/recipes/goldrush/meta.yaml +++ b/recipes/goldrush/meta.yaml @@ -11,7 +11,7 @@ source: build: skip: true # [py < 38 or win or py > 39] - number: 0 + number: 1 run_exports: {{ pin_subpackage("goldrush", max_pin="x") }} requirements: diff --git a/recipes/graphaligner/meta.yaml b/recipes/graphaligner/meta.yaml index 38b34e29495ea..b2b5dde214141 100644 --- a/recipes/graphaligner/meta.yaml +++ b/recipes/graphaligner/meta.yaml @@ -13,7 +13,7 @@ source: - linux_link.patch # [linux] build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('graphaligner', max_pin="x.x") }} diff --git a/recipes/groot/meta.yaml b/recipes/groot/meta.yaml index b824757d8e733..23812517a8c24 100644 --- a/recipes/groot/meta.yaml +++ b/recipes/groot/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 46c6f67990397c2230f580be40697e4fdc284fbe7f0a38999a05d81cd6da5928 build: - number: 3 + number: 4 run_exports: - {{ pin_subpackage('groot', max_pin='x') }} diff --git a/recipes/gsalign/meta.yaml b/recipes/gsalign/meta.yaml index 68e3cfe77ba5f..c15b077b59dee 100644 --- a/recipes/gsalign/meta.yaml +++ b/recipes/gsalign/meta.yaml @@ -11,7 +11,7 @@ source: - support-linux-aarch64.patch # [linux and aarch64] build: - number: 5 + number: 6 run_exports: - {{ pin_subpackage('gsalign', max_pin='x') }} diff --git a/recipes/gseapy/meta.yaml b/recipes/gseapy/meta.yaml index 80f4af5e7a0e3..57e181ec0d301 100644 --- a/recipes/gseapy/meta.yaml +++ b/recipes/gseapy/meta.yaml @@ -12,7 +12,7 @@ build: run_exports: - {{ pin_subpackage("gseapy", max_pin="x") }} skip: True # [py2k or py == 36 ] - number: 0 + number: 1 requirements: build: diff --git a/recipes/gvcf2coverage/meta.yaml b/recipes/gvcf2coverage/meta.yaml index e7f05734f3efc..aeacb09762f55 100644 --- a/recipes/gvcf2coverage/meta.yaml +++ b/recipes/gvcf2coverage/meta.yaml @@ -7,7 +7,7 @@ source: git_rev: 4d2c03bcae2f3d2e3f954c4903329c64b3a6a2cd build: - number: 7 + number: 8 requirements: build: diff --git a/recipes/haddock_biobb/meta.yaml b/recipes/haddock_biobb/meta.yaml index ece2626c4853a..ba356bb2e4fe3 100644 --- a/recipes/haddock_biobb/meta.yaml +++ b/recipes/haddock_biobb/meta.yaml @@ -10,7 +10,7 @@ source: sha256: e0651a4913fb659a57e897ac68c4f8e8f29b61e00abfcab3f3bbd623e1977f7b build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin='x') }} @@ -67,4 +67,4 @@ extra: python: - 3.8 - 3.9 - - 3.10 \ No newline at end of file + - 3.10 diff --git a/recipes/haploflow/meta.yaml b/recipes/haploflow/meta.yaml index a037fbebe66ba..0ac66dc47f5d5 100644 --- a/recipes/haploflow/meta.yaml +++ b/recipes/haploflow/meta.yaml @@ -10,7 +10,7 @@ source: sha256: '{{ sha256 }}' build: - number: 3 + number: 4 requirements: build: diff --git a/recipes/hapog/build_failure.osx-64.yaml b/recipes/hapog/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..2d565be3598a8 --- /dev/null +++ b/recipes/hapog/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 0b069e46b59bb258fba72fed3373e4f5a5d2b652ef2c18a538ccdc4e411cb4e9 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + ld64_osx-64: 711-ha20a434_0 conda-forge + libclang-cpp16: 16.0.6-default_h4c8afb6_7 conda-forge + libcurl: 8.8.0-hf9fcc65_0 conda-forge + libcxx: 17.0.6-h88467a6_0 conda-forge + libedit: 3.1.20191231-h0678c8f_2 conda-forge + libev: 4.33-h10d778d_2 conda-forge + libexpat: 2.6.2-h73e2aa4_0 conda-forge + libiconv: 1.17-hd75f5a5_2 conda-forge + libllvm16: 16.0.6-hbedff68_3 conda-forge + libnghttp2: 1.58.0-h64cf6d3_1 conda-forge + libssh2: 1.11.0-hd019ec5_0 conda-forge + libuv: 1.48.0-h67532ce_0 conda-forge + libxml2: 2.12.7-h3e169fe_1 conda-forge + libzlib: 1.3.1-h87427d6_1 conda-forge + llvm-tools: 16.0.6-hbedff68_3 conda-forge + make: 4.3-h22f3db7_1 conda-forge + ncurses: 6.5-h5846eda_0 conda-forge + openssl: 3.3.1-h87427d6_0 conda-forge + rhash: 1.4.4-h0dc2134_0 conda-forge + sigtool: 0.1.3-h88f4db0_0 conda-forge + tapi: 1100.0.11-h9ce4665_0 conda-forge + xz: 5.2.6-h775f41a_0 conda-forge + zstd: 1.5.6-h915ae27_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache + Downloading source to cache: 1.3.8_822f4c7e68.tar.gz + Downloading https://github.com/institut-de-genomique/HAPO-G/archive/refs/tags/1.3.8.tar.gz + Success + /opt/mambaforge/envs/bioconda/conda-bld/hapog_1717692287194/work/setup.py:1: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives + import distutils.command.build + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/conda-bld/hapog_1717692287194/work/setup.py", line 3, in + from setuptools import setup + ModuleNotFoundError: No module named 'setuptools' + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/hapog_1717692287194/work + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/hapog_1717692287194/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol + Traceback (most recent call last): + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/hapog_1717692287194/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/hapog_1717692287194/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hapog-1.3.8 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/hapog_1717692287194/work/conda_build.sh']' returned non-zero exit status 1. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hapog-1.3.8 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 +# Last 100 lines of the build log. diff --git a/recipes/hapog/meta.yaml b/recipes/hapog/meta.yaml index 295b5552dc1d6..cc373afbe210b 100644 --- a/recipes/hapog/meta.yaml +++ b/recipes/hapog/meta.yaml @@ -6,7 +6,7 @@ package: build: skip: True # [py < 37] - number: 0 + number: 1 run_exports: - {{ pin_subpackage("hapog", max_pin="x") }} diff --git a/recipes/haproh/meta.yaml b/recipes/haproh/meta.yaml index 2188ce7dfd8b7..ced7896ed7ef3 100644 --- a/recipes/haproh/meta.yaml +++ b/recipes/haproh/meta.yaml @@ -10,7 +10,7 @@ build: entry_points: - hapConX = hapsburg.hapCONX:main script: {{ PYTHON }} -m pip install . -vv - number: 1 + number: 2 source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/hapROH-{{ version }}.tar.gz diff --git a/recipes/haslr/meta.yaml b/recipes/haslr/meta.yaml index 79e15a48290c5..c1a274e3888cf 100755 --- a/recipes/haslr/meta.yaml +++ b/recipes/haslr/meta.yaml @@ -10,7 +10,7 @@ source: sha256: {{ sha256 }} build: - number: 4 + number: 5 # minia is not available for osx skip: True # [osx or py27] diff --git a/recipes/hatchet/meta.yaml b/recipes/hatchet/meta.yaml index 595507d10c9e0..ea4293e5a40ff 100755 --- a/recipes/hatchet/meta.yaml +++ b/recipes/hatchet/meta.yaml @@ -17,7 +17,7 @@ source: sha256: 1d58586f9a33ac7035f51f6a04707248218f70bddbec78cb83f11c986ac652cd # [osx] build: - number: 0 + number: 1 skip: True # [py < 37] entry_points: - hatchet = hatchet.__main__:main diff --git a/recipes/hera/build_failure.linux-64.yaml b/recipes/hera/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..95839c9d37f36 --- /dev/null +++ b/recipes/hera/build_failure.linux-64.yaml @@ -0,0 +1,6 @@ +recipe_sha: 7bb000623134e15e9f5f7e93f6d8a92afd1b4440ea743fd4be94c37dbd58c2d2 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +reason: |- + duplicate name in conda-forge +category: |- + conda/mamba bug diff --git a/recipes/hera/meta.yaml b/recipes/hera/meta.yaml index cbb033fac22af..c32435efdb582 100644 --- a/recipes/hera/meta.yaml +++ b/recipes/hera/meta.yaml @@ -15,7 +15,7 @@ source: build: # includes the same math.h headers everywhere, thereby causing LOTS of duplicate function symbols skip: True # [osx] - number: 10 + number: 11 requirements: build: diff --git a/recipes/hhsuite/build_failure.osx-64.yaml b/recipes/hhsuite/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..15bda1eff920e --- /dev/null +++ b/recipes/hhsuite/build_failure.osx-64.yaml @@ -0,0 +1,106 @@ +recipe_sha: a8520adadc6e0abc700caed83e2601f6fa1d3f9b14698f200038c746a58fde55 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + cd $SRC_DIR/build/src && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -DOPENMP -I$SRC_DIR/build/generated -I$SRC_DIR/src -I$SRC_DIR/lib/ffindex/src -I$SRC_DIR/lib/simde -I$SRC_DIR/lib/simd -I$SRC_DIR/build/src -I$SRC_DIR/src/cs -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hhsuite-3.3.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c0x -fsigned-char -msse4.1 -mfpmath=sse -fopenmp=libomp -fno-strict-aliasing -O3 -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -DVITERBI_CELLOFF=1 -DVITERBI_SS_SCORE=1 -MD -MT src/CMakeFiles/hhviterbialgorithm_with_celloff_and_ss.dir/hhviterbialgorithm.cpp.o -MF CMakeFiles/hhviterbialgorithm_with_celloff_and_ss.dir/hhviterbialgorithm.cpp.o.d -o CMakeFiles/hhviterbialgorithm_with_celloff_and_ss.dir/hhviterbialgorithm.cpp.o -c $SRC_DIR/src/hhviterbialgorithm.cpp + [ 9%] Linking CXX static library libhhviterbialgorithm_with_celloff.a + /opt/mambaforge/envs/bioconda/conda-bld/hhsuite_1717953464012/work/src/a3m_compress.cpp:504:26: error: no member named 'ptr_fun' in namespace 'std' + std::not1(std::ptr_fun(std::isspace))).base(), s.end()); + ~~~~~^ + /opt/mambaforge/envs/bioconda/conda-bld/hhsuite_1717953464012/work/src/a3m_compress.cpp:504:37: error: expected '(' for function-style cast or type construction + std::not1(std::ptr_fun(std::isspace))).base(), s.end()); + ~~~^ + /opt/mambaforge/envs/bioconda/conda-bld/hhsuite_1717953464012/work/src/a3m_compress.cpp:504:42: error: expected '(' for function-style cast or type construction + std::not1(std::ptr_fun(std::isspace))).base(), s.end()); + ~~~^ + /opt/mambaforge/envs/bioconda/conda-bld/hhsuite_1717953464012/work/src/a3m_compress.cpp:504:16: error: no member named 'not1' in namespace 'std' + std::not1(std::ptr_fun(std::isspace))).base(), s.end()); + ~~~~~^ + 4 errors generated. + make[2]: *** [src/CMakeFiles/A3M_COMPRESS.dir/build.make:76: src/CMakeFiles/A3M_COMPRESS.dir/a3m_compress.cpp.o] Error 1 + make[1]: *** [CMakeFiles/Makefile2:840: src/CMakeFiles/A3M_COMPRESS.dir/all] Error 2 + make[1]: *** Waiting for unfinished jobs.... + make: *** [Makefile:156: all] Error 2 + Traceback (most recent call last): + cd $SRC_DIR/build/src && $BUILD_PREFIX/bin/cmake -P CMakeFiles/hhviterbialgorithm_with_celloff.dir/cmake_clean_target.cmake + cd $SRC_DIR/build/src && $BUILD_PREFIX/bin/cmake -E cmake_link_script CMakeFiles/hhviterbialgorithm_with_celloff.dir/link.txt --verbose=1 + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar qc libhhviterbialgorithm_with_celloff.a CMakeFiles/hhviterbialgorithm_with_celloff.dir/hhviterbialgorithm.cpp.o + $BUILD_PREFIX/bin/llvm-ranlib libhhviterbialgorithm_with_celloff.a + make[2]: Leaving directory '$SRC_DIR/build' + [ 9%] Built target hhviterbialgorithm_with_celloff + make -f src/CMakeFiles/hhviterbialgorithm_and_ss.dir/build.make src/CMakeFiles/hhviterbialgorithm_and_ss.dir/depend + sys.exit(execute()) + make[2]: Entering directory '$SRC_DIR/build' + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + cd $SRC_DIR/build && $BUILD_PREFIX/bin/cmake -E cmake_depends "Unix Makefiles" $SRC_DIR $SRC_DIR/src $SRC_DIR/build $SRC_DIR/build/src $SRC_DIR/build/src/CMakeFiles/hhviterbialgorithm_and_ss.dir/DependInfo.cmake "--color=" + make[2]: Leaving directory '$SRC_DIR/build' + make -f src/CMakeFiles/hhviterbialgorithm_and_ss.dir/build.make src/CMakeFiles/hhviterbialgorithm_and_ss.dir/build + make[2]: Entering directory '$SRC_DIR/build' + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/hhsuite_1717953464012/work/conda_build.sh']' returned non-zero exit status 2. + [ 10%] Building CXX object src/CMakeFiles/hhviterbialgorithm_and_ss.dir/hhviterbialgorithm.cpp.o + cd $SRC_DIR/build/src && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -DOPENMP -I$SRC_DIR/build/generated -I$SRC_DIR/src -I$SRC_DIR/lib/ffindex/src -I$SRC_DIR/lib/simde -I$SRC_DIR/lib/simd -I$SRC_DIR/build/src -I$SRC_DIR/src/cs -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hhsuite-3.3.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c0x -fsigned-char -msse4.1 -mfpmath=sse -fopenmp=libomp -fno-strict-aliasing -O3 -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -DVITERBI_SS_SCORE=1 -MD -MT src/CMakeFiles/hhviterbialgorithm_and_ss.dir/hhviterbialgorithm.cpp.o -MF CMakeFiles/hhviterbialgorithm_and_ss.dir/hhviterbialgorithm.cpp.o.d -o CMakeFiles/hhviterbialgorithm_and_ss.dir/hhviterbialgorithm.cpp.o -c $SRC_DIR/src/hhviterbialgorithm.cpp + [ 11%] Linking CXX static library libhhviterbialgorithm_with_celloff_and_ss.a + cd $SRC_DIR/build/src && $BUILD_PREFIX/bin/cmake -P CMakeFiles/hhviterbialgorithm_with_celloff_and_ss.dir/cmake_clean_target.cmake + cd $SRC_DIR/build/src && $BUILD_PREFIX/bin/cmake -E cmake_link_script CMakeFiles/hhviterbialgorithm_with_celloff_and_ss.dir/link.txt --verbose=1 + $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar qc libhhviterbialgorithm_with_celloff_and_ss.a CMakeFiles/hhviterbialgorithm_with_celloff_and_ss.dir/hhviterbialgorithm.cpp.o + $BUILD_PREFIX/bin/llvm-ranlib libhhviterbialgorithm_with_celloff_and_ss.a + make[2]: Leaving directory '$SRC_DIR/build' + [ 11%] Built target hhviterbialgorithm_with_celloff_and_ss + make -f src/cs/CMakeFiles/CS_OBJECTS.dir/build.make src/cs/CMakeFiles/CS_OBJECTS.dir/depend + make[2]: Entering directory '$SRC_DIR/build' + cd $SRC_DIR/build && $BUILD_PREFIX/bin/cmake -E cmake_depends "Unix Makefiles" $SRC_DIR $SRC_DIR/src/cs $SRC_DIR/build $SRC_DIR/build/src/cs $SRC_DIR/build/src/cs/CMakeFiles/CS_OBJECTS.dir/DependInfo.cmake "--color=" + make[2]: Leaving directory '$SRC_DIR/build' + make -f src/cs/CMakeFiles/CS_OBJECTS.dir/build.make src/cs/CMakeFiles/CS_OBJECTS.dir/build + make[2]: Entering directory '$SRC_DIR/build' + [ 12%] Building CXX object src/cs/CMakeFiles/CS_OBJECTS.dir/aa.cc.o + cd $SRC_DIR/build/src/cs && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -DOPENMP -I$SRC_DIR/build/generated -I$SRC_DIR/src -I$SRC_DIR/lib/ffindex/src -I$SRC_DIR/lib/simde -I$SRC_DIR/lib/simd -I$SRC_DIR/build/src -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hhsuite-3.3.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c0x -fsigned-char -msse4.1 -mfpmath=sse -fopenmp=libomp -fno-strict-aliasing -O3 -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -MD -MT src/cs/CMakeFiles/CS_OBJECTS.dir/aa.cc.o -MF CMakeFiles/CS_OBJECTS.dir/aa.cc.o.d -o CMakeFiles/CS_OBJECTS.dir/aa.cc.o -c $SRC_DIR/src/cs/aa.cc + [ 13%] Building CXX object src/cs/CMakeFiles/CS_OBJECTS.dir/as.cc.o + cd $SRC_DIR/build/src/cs && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -DOPENMP -I$SRC_DIR/build/generated -I$SRC_DIR/src -I$SRC_DIR/lib/ffindex/src -I$SRC_DIR/lib/simde -I$SRC_DIR/lib/simd -I$SRC_DIR/build/src -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hhsuite-3.3.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c0x -fsigned-char -msse4.1 -mfpmath=sse -fopenmp=libomp -fno-strict-aliasing -O3 -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -MD -MT src/cs/CMakeFiles/CS_OBJECTS.dir/as.cc.o -MF CMakeFiles/CS_OBJECTS.dir/as.cc.o.d -o CMakeFiles/CS_OBJECTS.dir/as.cc.o -c $SRC_DIR/src/cs/as.cc + [ 14%] Linking CXX static library libhhviterbialgorithm_and_ss.a + cd $SRC_DIR/build/src && $BUILD_PREFIX/bin/cmake -P CMakeFiles/hhviterbialgorithm_and_ss.dir/cmake_clean_target.cmake + cd $SRC_DIR/build/src && $BUILD_PREFIX/bin/cmake -E cmake_link_script CMakeFiles/hhviterbialgorithm_and_ss.dir/link.txt --verbose=1 + $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar qc libhhviterbialgorithm_and_ss.a CMakeFiles/hhviterbialgorithm_and_ss.dir/hhviterbialgorithm.cpp.o + $BUILD_PREFIX/bin/llvm-ranlib libhhviterbialgorithm_and_ss.a + make[2]: Leaving directory '$SRC_DIR/build' + [ 14%] Built target hhviterbialgorithm_and_ss + make -f src/CMakeFiles/A3M_COMPRESS.dir/build.make src/CMakeFiles/A3M_COMPRESS.dir/depend + make[2]: Entering directory '$SRC_DIR/build' + cd $SRC_DIR/build && $BUILD_PREFIX/bin/cmake -E cmake_depends "Unix Makefiles" $SRC_DIR $SRC_DIR/src $SRC_DIR/build $SRC_DIR/build/src $SRC_DIR/build/src/CMakeFiles/A3M_COMPRESS.dir/DependInfo.cmake "--color=" + make[2]: Leaving directory '$SRC_DIR/build' + make -f src/CMakeFiles/A3M_COMPRESS.dir/build.make src/CMakeFiles/A3M_COMPRESS.dir/build + make[2]: Entering directory '$SRC_DIR/build' + [ 14%] Building CXX object src/CMakeFiles/A3M_COMPRESS.dir/a3m_compress.cpp.o + cd $SRC_DIR/build/src && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -DOPENMP -I$SRC_DIR/build/generated -I$SRC_DIR/src -I$SRC_DIR/lib/ffindex/src -I$SRC_DIR/lib/simde -I$SRC_DIR/lib/simd -I$SRC_DIR/build/src -I$SRC_DIR/src/cs -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hhsuite-3.3.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c0x -fsigned-char -msse4.1 -mfpmath=sse -fopenmp=libomp -fno-strict-aliasing -O3 -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -MD -MT src/CMakeFiles/A3M_COMPRESS.dir/a3m_compress.cpp.o -MF CMakeFiles/A3M_COMPRESS.dir/a3m_compress.cpp.o.d -o CMakeFiles/A3M_COMPRESS.dir/a3m_compress.cpp.o -c $SRC_DIR/src/a3m_compress.cpp + [ 15%] Building CXX object src/cs/CMakeFiles/CS_OBJECTS.dir/assert_helpers.cc.o + cd $SRC_DIR/build/src/cs && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -DOPENMP -I$SRC_DIR/build/generated -I$SRC_DIR/src -I$SRC_DIR/lib/ffindex/src -I$SRC_DIR/lib/simde -I$SRC_DIR/lib/simd -I$SRC_DIR/build/src -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hhsuite-3.3.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c0x -fsigned-char -msse4.1 -mfpmath=sse -fopenmp=libomp -fno-strict-aliasing -O3 -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -MD -MT src/cs/CMakeFiles/CS_OBJECTS.dir/assert_helpers.cc.o -MF CMakeFiles/CS_OBJECTS.dir/assert_helpers.cc.o.d -o CMakeFiles/CS_OBJECTS.dir/assert_helpers.cc.o -c $SRC_DIR/src/cs/assert_helpers.cc + make[2]: Leaving directory '$SRC_DIR/build' + [ 16%] Building CXX object src/cs/CMakeFiles/CS_OBJECTS.dir/blosum_matrix.cc.o + cd $SRC_DIR/build/src/cs && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -DOPENMP -I$SRC_DIR/build/generated -I$SRC_DIR/src -I$SRC_DIR/lib/ffindex/src -I$SRC_DIR/lib/simde -I$SRC_DIR/lib/simd -I$SRC_DIR/build/src -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hhsuite-3.3.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c0x -fsigned-char -msse4.1 -mfpmath=sse -fopenmp=libomp -fno-strict-aliasing -O3 -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -MD -MT src/cs/CMakeFiles/CS_OBJECTS.dir/blosum_matrix.cc.o -MF CMakeFiles/CS_OBJECTS.dir/blosum_matrix.cc.o.d -o CMakeFiles/CS_OBJECTS.dir/blosum_matrix.cc.o -c $SRC_DIR/src/cs/blosum_matrix.cc + [ 17%] Building CXX object src/cs/CMakeFiles/CS_OBJECTS.dir/getopt_pp.cc.o + cd $SRC_DIR/build/src/cs && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -DOPENMP -I$SRC_DIR/build/generated -I$SRC_DIR/src -I$SRC_DIR/lib/ffindex/src -I$SRC_DIR/lib/simde -I$SRC_DIR/lib/simd -I$SRC_DIR/build/src -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hhsuite-3.3.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c0x -fsigned-char -msse4.1 -mfpmath=sse -fopenmp=libomp -fno-strict-aliasing -O3 -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -MD -MT src/cs/CMakeFiles/CS_OBJECTS.dir/getopt_pp.cc.o -MF CMakeFiles/CS_OBJECTS.dir/getopt_pp.cc.o.d -o CMakeFiles/CS_OBJECTS.dir/getopt_pp.cc.o -c $SRC_DIR/src/cs/getopt_pp.cc + [ 18%] Building CXX object src/cs/CMakeFiles/CS_OBJECTS.dir/log.cc.o + cd $SRC_DIR/build/src/cs && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -DOPENMP -I$SRC_DIR/build/generated -I$SRC_DIR/src -I$SRC_DIR/lib/ffindex/src -I$SRC_DIR/lib/simde -I$SRC_DIR/lib/simd -I$SRC_DIR/build/src -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hhsuite-3.3.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c0x -fsigned-char -msse4.1 -mfpmath=sse -fopenmp=libomp -fno-strict-aliasing -O3 -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -MD -MT src/cs/CMakeFiles/CS_OBJECTS.dir/log.cc.o -MF CMakeFiles/CS_OBJECTS.dir/log.cc.o.d -o CMakeFiles/CS_OBJECTS.dir/log.cc.o -c $SRC_DIR/src/cs/log.cc + [ 19%] Building CXX object src/cs/CMakeFiles/CS_OBJECTS.dir/application.cc.o + cd $SRC_DIR/build/src/cs && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -DOPENMP -I$SRC_DIR/build/generated -I$SRC_DIR/src -I$SRC_DIR/lib/ffindex/src -I$SRC_DIR/lib/simde -I$SRC_DIR/lib/simd -I$SRC_DIR/build/src -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hhsuite-3.3.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c0x -fsigned-char -msse4.1 -mfpmath=sse -fopenmp=libomp -fno-strict-aliasing -O3 -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -MD -MT src/cs/CMakeFiles/CS_OBJECTS.dir/application.cc.o -MF CMakeFiles/CS_OBJECTS.dir/application.cc.o.d -o CMakeFiles/CS_OBJECTS.dir/application.cc.o -c $SRC_DIR/src/cs/application.cc + [ 20%] Linking CXX static library libCS_OBJECTS.a + cd $SRC_DIR/build/src/cs && $BUILD_PREFIX/bin/cmake -P CMakeFiles/CS_OBJECTS.dir/cmake_clean_target.cmake + cd $SRC_DIR/build/src/cs && $BUILD_PREFIX/bin/cmake -E cmake_link_script CMakeFiles/CS_OBJECTS.dir/link.txt --verbose=1 + $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar qc libCS_OBJECTS.a CMakeFiles/CS_OBJECTS.dir/aa.cc.o CMakeFiles/CS_OBJECTS.dir/as.cc.o CMakeFiles/CS_OBJECTS.dir/assert_helpers.cc.o CMakeFiles/CS_OBJECTS.dir/blosum_matrix.cc.o CMakeFiles/CS_OBJECTS.dir/getopt_pp.cc.o CMakeFiles/CS_OBJECTS.dir/log.cc.o CMakeFiles/CS_OBJECTS.dir/application.cc.o + $BUILD_PREFIX/bin/llvm-ranlib libCS_OBJECTS.a + make[2]: Leaving directory '$SRC_DIR/build' + [ 20%] Built target CS_OBJECTS + make[1]: Leaving directory '$SRC_DIR/build' +# Last 100 lines of the build log. +category: |- + compiler error diff --git a/recipes/hhsuite/meta.yaml b/recipes/hhsuite/meta.yaml index 43639d506e046..eb7af6827f3f6 100644 --- a/recipes/hhsuite/meta.yaml +++ b/recipes/hhsuite/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 10 + number: 11 run_exports: - {{ pin_subpackage('hhsuite', max_pin="x") }} @@ -50,4 +50,4 @@ extra: recipe-maintainers: - milot-mirdita additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/hic-straw/build_failure.osx-64.yaml b/recipes/hic-straw/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..a2722ee2e54af --- /dev/null +++ b/recipes/hic-straw/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 62985f80bc0c5b45fcb7b19401cd9027e52aca4d404ce5c1ce23e7535f2650b2 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/hic-straw_1717515448844/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/hic-straw_1717515448844/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/hic-straw_1717515448844/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hic-straw-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/hic-straw_1717515448844/work/conda_build.sh']' returned non-zero exit status 1. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hic-straw-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hic-straw-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hic-straw-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + Using pip 24.0 from $PREFIX/lib/python3.9/site-packages/pip (python 3.9) + Non-user install because user site-packages disabled + Ignoring indexes: https://pypi.org/simple + Created temporary directory: /private/tmp/pip-build-tracker-ylj7gc8f + Initialized build tracking at /private/tmp/pip-build-tracker-ylj7gc8f + Created build tracker: /private/tmp/pip-build-tracker-ylj7gc8f + Entered build tracker: /private/tmp/pip-build-tracker-ylj7gc8f + Created temporary directory: /private/tmp/pip-install-bwo75gax + Created temporary directory: /private/tmp/pip-ephem-wheel-cache-a9wxjigx + Processing $SRC_DIR + Added file://$SRC_DIR to build tracker '/private/tmp/pip-build-tracker-ylj7gc8f' + Running setup.py (path:$SRC_DIR/setup.py) egg_info for package from file://$SRC_DIR + Created temporary directory: /private/tmp/pip-pip-egg-info-40p4kwk1 + Preparing metadata (setup.py): started + Preparing metadata (setup.py): finished with status 'done' + Source in $SRC_DIR has version 1.3.1, which satisfies requirement hic-straw==1.3.1 from file://$SRC_DIR + Removed hic-straw==1.3.1 from file://$SRC_DIR from build tracker '/private/tmp/pip-build-tracker-ylj7gc8f' + Created temporary directory: /private/tmp/pip-unpack-vo2913rt + Building wheels for collected packages: hic-straw + Created temporary directory: /private/tmp/pip-wheel-tyl3bntg + Building wheel for hic-straw (setup.py): started + Destination directory: /private/tmp/pip-wheel-tyl3bntg + Building wheel for hic-straw (setup.py): finished with status 'error' + Running setup.py clean for hic-straw + Failed to build hic-straw + Exception information: + Traceback (most recent call last): + File "$PREFIX/lib/python3.9/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper + status = run_func(*args) + File "$PREFIX/lib/python3.9/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper + return func(self, options, args) + File "$PREFIX/lib/python3.9/site-packages/pip/_internal/commands/install.py", line 429, in run + raise InstallationError( + pip._internal.exceptions.InstallationError: Could not build wheels for hic-straw, which is required to install pyproject.toml-based projects + Removed build tracker: '/private/tmp/pip-build-tracker-ylj7gc8f' +# Last 100 lines of the build log. diff --git a/recipes/hic-straw/meta.yaml b/recipes/hic-straw/meta.yaml index 010d892629f86..0585eade01a26 100644 --- a/recipes/hic-straw/meta.yaml +++ b/recipes/hic-straw/meta.yaml @@ -12,7 +12,7 @@ source: build: skip: true # [py<36] script: {{ PYTHON }} -m pip install . -vv - number: 3 + number: 4 requirements: build: diff --git a/recipes/hictk/build_failure.linux-aarch64.yaml b/recipes/hictk/build_failure.linux-aarch64.yaml new file mode 100644 index 0000000000000..49cb43e2fe9a7 --- /dev/null +++ b/recipes/hictk/build_failure.linux-aarch64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 5def4a5bc1369a463033268d7ed2b6dc19d35b7407bb8c10c74902b523d2b014 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-aarch64: {MatchSpec("pysam"), MatchSpec("cooler==0.10.0=pyhdfd78af_0")} + Encountered problems while solving: + - package cooler-0.10.0-pyhdfd78af_0 requires pysam, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + [32mcooler >=0.9.3 [0m is installable and it requires + [32mpysam [ |>0.8 ][0m, which requires + [32mlibdeflate >=1.18,<1.19.0a0 [0m, which can be installed; + [31mlibdeflate >=1.20,<1.21.0a0 [0m is not installable because it conflicts with any installable versions previously reported. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-aarch64: {MatchSpec("pysam"), MatchSpec("cooler==0.10.0=pyhdfd78af_0")} + Encountered problems while solving: + - package cooler-0.10.0-pyhdfd78af_0 requires pysam, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + [32mcooler >=0.9.3 [0m is installable and it requires + [32mpysam [ |>0.8 ][0m, which requires + [32mlibdeflate >=1.18,<1.19.0a0 [0m, which can be installed; + [31mlibdeflate >=1.20,<1.21.0a0 [0m is not installable because it conflicts with any installable versions previously reported. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build + create_build_envs(top_level_pkg, notest) + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs + raise e + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs + environ.get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-aarch64: {MatchSpec("pysam"), MatchSpec("cooler==0.10.0=pyhdfd78af_0")} + Encountered problems while solving: + - package cooler-0.10.0-pyhdfd78af_0 requires pysam, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + [32mcooler >=0.9.3 [0m is installable and it requires + [32mpysam [ |>0.8 ][0m, which requires + [32mlibdeflate >=1.18,<1.19.0a0 [0m, which can be installed; + [31mlibdeflate >=1.20,<1.21.0a0 [0m is not installable because it conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/hictk/build_failure.osx-64.yaml b/recipes/hictk/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..9f4bd89807a52 --- /dev/null +++ b/recipes/hictk/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 5def4a5bc1369a463033268d7ed2b6dc19d35b7407bb8c10c74902b523d2b014 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hictk-0.0.12 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hictk-0.0.12 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + patching file conanfile.txt + -- The C compiler identification is Clang 16.0.6 + -- The CXX compiler identification is Clang 16.0.6 + -- Detecting C compiler ABI info + -- Detecting C compiler ABI info - done + -- Check for working C compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting C compile features + -- Detecting C compile features - done + -- Detecting CXX compiler ABI info + -- Detecting CXX compiler ABI info - done + -- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting CXX compile features + -- Detecting CXX compile features - done + -- Developer mode is OFF. For developement, use -DENABLE_DEVELOPER_MODE:BOOL=ON. Building the project for the end-user... + -- Conan: Target declared 'bshoshany-thread-pool::bshoshany-thread-pool' + -- Conan: Target declared 'phmap' + -- Conan: Component target declared 'nonstd::span-lite' + -- Performing Test CMAKE_HAVE_LIBC_PTHREAD + -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success + -- Found Threads: TRUE + -- HIGHFIVE 2.9.0: (Re)Detecting Highfive dependencies (HIGHFIVE_USE_INSTALL_DEPS=NO) + -- Conan: Target declared 'phmap' + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + -- Conan: Target declared 'phmap' + -- Conan: Target declared 'phmap' + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + -- Conan: Target declared 'bshoshany-thread-pool::bshoshany-thread-pool' + -- Conan: Target declared 'concurrentqueue::concurrentqueue' + -- Conan: Target declared 'phmap' + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/hictk_1717508836832/work/conda_build.sh']' returned non-zero exit status 2. + -- Conan: Target declared 'readerwriterqueue::readerwriterqueue' + -- Conan: Target declared 'phmap' + -- Building cli tools. + -- Conan: Target declared 'readerwriterqueue::readerwriterqueue' + -- Looking for C include filesystem + -- Looking for C include filesystem - found + -- Performing Test CXX_FILESYSTEM_NO_LINK_NEEDED + -- Performing Test CXX_FILESYSTEM_NO_LINK_NEEDED - Success + -- Building unit tests. + -- Downloading test dataset... + -- Configuring done (71.5s) + -- Generating done (0.3s) + -- Build files have been written to: $SRC_DIR/build + [ 1%] Building CXX object src/hictk/CMakeFiles/hictk.dir/main.cpp.o + [ 2%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli.cpp.o + [ 3%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli_balance.cpp.o + [ 4%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli_convert.cpp.o + [ 5%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli_dump.cpp.o + [ 6%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli_fix_mcool.cpp.o + [ 8%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli_load.cpp.o + [ 9%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli_merge.cpp.o + [ 10%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli_rename_chromosomes.cpp.o + [ 11%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli_validate.cpp.o + [ 12%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli_zoomify.cpp.o + [ 13%] Building CXX object src/hictk/CMakeFiles/hictk.dir/balance/balance.cpp.o + [ 15%] Building CXX object src/hictk/CMakeFiles/hictk.dir/convert/convert.cpp.o + [ 16%] Building CXX object src/hictk/CMakeFiles/hictk.dir/convert/cool_to_hic.cpp.o + [ 17%] Building CXX object src/hictk/CMakeFiles/hictk.dir/convert/hic_to_cool.cpp.o + [ 18%] Building CXX object src/hictk/CMakeFiles/hictk.dir/dump/dump.cpp.o + [ 19%] Building CXX object src/hictk/CMakeFiles/hictk.dir/dump/dump_common.cpp.o + [ 20%] Building CXX object src/hictk/CMakeFiles/hictk.dir/fix_mcool/fix_mcool.cpp.o + [ 22%] Building CXX object src/hictk/CMakeFiles/hictk.dir/load/load.cpp.o + [ 23%] Building CXX object src/hictk/CMakeFiles/hictk.dir/merge/merge.cpp.o + [ 24%] Building CXX object src/hictk/CMakeFiles/hictk.dir/rename_chromosomes/rename_chromosomes.cpp.o + [ 25%] Building CXX object src/hictk/CMakeFiles/hictk.dir/validate/validate.cpp.o + [ 26%] Building CXX object src/hictk/CMakeFiles/hictk.dir/zoomify/zoomify.cpp.o + [ 27%] Linking CXX executable hictk + [ 27%] Built target hictk + [ 29%] Building CXX object test/units/balancing/CMakeFiles/hictk_balancing_tests.dir/balancing_test.cpp.o + [ 30%] Linking CXX executable hictk_balancing_tests + [ 30%] Built target hictk_balancing_tests + [ 31%] Building CXX object test/units/bin_table/CMakeFiles/bin_table_tests.dir/bin_test.cpp.o + [ 32%] Building CXX object test/units/bin_table/CMakeFiles/bin_table_tests.dir/bin_table_test.cpp.o + [ 33%] Linking CXX executable bin_table_tests + [ 33%] Built target bin_table_tests + [ 34%] Building CXX object test/units/binary_buffer/CMakeFiles/hictk_binary_buffer_tests.dir/binary_buffer_test.cpp.o + [ 36%] Linking CXX executable hictk_binary_buffer_tests + [ 36%] Built target hictk_binary_buffer_tests + [ 37%] Building CXX object test/units/chromosome/CMakeFiles/hictk_chromosome_tests.dir/chromosome_test.cpp.o + [ 38%] Linking CXX executable hictk_chromosome_tests + [ 38%] Built target hictk_chromosome_tests + [ 39%] Building CXX object test/units/cooler/CMakeFiles/hictk_cooler_tests.dir/attribute_numeric_conversions_test.cpp.o + [ 40%] Building CXX object test/units/cooler/CMakeFiles/hictk_cooler_tests.dir/attribute_read_test.cpp.o +# Last 100 lines of the build log. diff --git a/recipes/hictk/meta.yaml b/recipes/hictk/meta.yaml index 38ec7eed97116..12709d66117ba 100644 --- a/recipes/hictk/meta.yaml +++ b/recipes/hictk/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('hictk', max_pin='x.x') }} diff --git a/recipes/hictkpy/build_failure.osx-64.yaml b/recipes/hictkpy/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..2edc9b8a419d3 --- /dev/null +++ b/recipes/hictkpy/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: c5aa91b5b109d0c9a825beb2ef6338e94f047a845e5424de084fb12467d9ada6 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + pysocks: 1.7.1-pyha2e5f31_6 conda-forge + python: 3.12.3-h1411813_0_cpython conda-forge + python-dateutil: 2.9.0-pyhd8ed1ab_0 conda-forge + python_abi: 3.12-4_cp312 conda-forge + pyyaml: 6.0.1-py312h104f124_1 conda-forge + readline: 8.2-h9e318b2_1 conda-forge + requests: 2.32.3-pyhd8ed1ab_0 conda-forge + rhash: 1.4.4-h0dc2134_0 conda-forge + sigtool: 0.1.3-h88f4db0_0 conda-forge + six: 1.16.0-pyh6c4a22f_0 conda-forge + spdlog: 1.13.0-h1a4aec9_0 conda-forge + tapi: 1100.0.11-h9ce4665_0 conda-forge + tk: 8.6.13-h1abcd95_1 conda-forge + tzdata: 2024a-h0c530f3_0 conda-forge + urllib3: 1.26.18-pyhd8ed1ab_0 conda-forge + xz: 5.2.6-h775f41a_0 conda-forge + yaml: 0.2.5-h0d85af4_2 conda-forge + zstd: 1.5.6-h915ae27_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache + Downloading source to cache: v0.0.5_e9576a1a71.tar.gz + Downloading https://github.com/paulsengroup/hictkpy/archive/refs/tags/v0.0.5.tar.gz + Success + /opt/mambaforge/envs/bioconda/conda-bld/hictkpy_1717517114516/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/bin/python: No module named pip + Extracting download + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/hictkpy_1717517114516/work + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/hictkpy_1717517114516/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/hictkpy_1717517114516/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/hictkpy_1717517114516/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hictkpy-0.0.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/hictkpy_1717517114516/work/conda_build.sh']' returned non-zero exit status 1. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hictkpy-0.0.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hictkpy-0.0.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hictkpy-0.0.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + patching file CMakeLists.txt + patching file conanfile.txt + patching file pyproject.toml + -DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin -DPython_EXECUTABLE=$PREFIX/bin/python +# Last 100 lines of the build log. diff --git a/recipes/hictkpy/meta.yaml b/recipes/hictkpy/meta.yaml index 22be84e3abea8..86e219bae94e2 100644 --- a/recipes/hictkpy/meta.yaml +++ b/recipes/hictkpy/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 skip: True # [py < 39] run_exports: - {{ pin_subpackage('hictkpy', max_pin='x.x') }} diff --git a/recipes/hiddendomains/build_failure.linux-64.yaml b/recipes/hiddendomains/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..a2a686105e87d --- /dev/null +++ b/recipes/hiddendomains/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 3f9fa27dd01b161c3ba00bb95dcde2d4cb670c070f8a03244c2e2518c2e36b72 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + libdeflate: 1.20-hd590300_0 conda-forge + libedit: 3.1.20191231-he28a2e2_2 conda-forge + libev: 4.33-hd590300_2 conda-forge + libexpat: 2.6.2-h59595ed_0 conda-forge + libffi: 3.4.2-h7f98852_5 conda-forge + libgcc-devel_linux-64: 13.2.0-hceb6213_107 conda-forge + libgcc-ng: 13.2.0-h77fa898_7 conda-forge + libgfortran-ng: 13.2.0-h69a702a_7 conda-forge + libgfortran5: 13.2.0-hca663fb_7 conda-forge + libglib: 2.80.2-hf974151_0 conda-forge + libgomp: 13.2.0-h77fa898_7 conda-forge + libiconv: 1.17-hd590300_2 conda-forge + libjpeg-turbo: 3.0.0-hd590300_1 conda-forge + liblapack: 3.9.0-22_linux64_openblas conda-forge + libnghttp2: 1.58.0-h47da74e_1 conda-forge + libopenblas: 0.3.27-pthreads_h413a1c8_0 conda-forge + libpng: 1.6.43-h2797004_0 conda-forge + libsanitizer: 13.2.0-h6ddb7a1_7 conda-forge + libssh2: 1.11.0-h0841786_0 conda-forge + libstdcxx-devel_linux-64: 13.2.0-hceb6213_107 conda-forge + libstdcxx-ng: 13.2.0-hc0a3c3a_7 conda-forge + libtiff: 4.6.0-h1dd3fc0_3 conda-forge + libuuid: 2.38.1-h0b41bf4_0 conda-forge + libwebp-base: 1.4.0-hd590300_0 conda-forge + libxcb: 1.15-h0b41bf4_0 conda-forge + libxcrypt: 4.4.36-hd590300_1 conda-forge + libzlib: 1.2.13-h4ab18f5_6 conda-forge + make: 4.3-hd18ef5c_1 conda-forge + ncurses: 6.5-h59595ed_0 conda-forge + openssl: 3.3.1-h4ab18f5_0 conda-forge + pango: 1.52.2-ha41ecd1_0 conda-forge + pcre2: 10.43-hcad00b1_0 conda-forge + perl: 5.32.1-7_hd590300_perl5 conda-forge + pixman: 0.43.2-h59595ed_0 conda-forge + pthread-stubs: 0.4-h36c2ea0_1001 conda-forge + r-base: 4.3.3-hf0d99cb_1 conda-forge + r-depmixs4: 1.5_0-r43h57805ef_2 conda-forge + r-hiddenmarkov: 1.8_13-r43h61816a4_2 conda-forge + r-lattice: 0.22_6-r43h57805ef_0 conda-forge + r-mass: 7.3_60-r43h57805ef_1 conda-forge + r-nlme: 3.1_164-r43h61816a4_0 conda-forge + r-nnet: 7.3_19-r43h57805ef_1 conda-forge + r-rsolnp: 1.16-r43ha770c72_1005 conda-forge + r-truncnorm: 1.0_9-r43h57805ef_1 conda-forge + readline: 8.2-h8228510_1 conda-forge + samtools: 1.20-h50ea8bc_0 bioconda + sed: 4.8-he412f7d_0 conda-forge + sysroot_linux-64: 2.12-he073ed8_17 conda-forge + tk: 8.6.13-noxft_h4845f30_101 conda-forge + tktable: 2.10-h0c5db8f_5 conda-forge + xorg-kbproto: 1.0.7-h7f98852_1002 conda-forge + xorg-libice: 1.1.1-hd590300_0 conda-forge + xorg-libsm: 1.2.4-h7391055_0 conda-forge + xorg-libx11: 1.8.9-h8ee46fc_0 conda-forge + xorg-libxau: 1.0.11-hd590300_0 conda-forge + xorg-libxdmcp: 1.1.3-h7f98852_0 conda-forge + xorg-libxext: 1.3.4-h0b41bf4_2 conda-forge + xorg-libxrender: 0.9.11-hd590300_0 conda-forge + xorg-libxt: 1.3.0-hd590300_1 conda-forge + xorg-renderproto: 0.11.1-h7f98852_1002 conda-forge + xorg-xextproto: 7.3.0-h0b41bf4_1003 conda-forge + xorg-xproto: 7.0.31-h7f98852_1007 conda-forge + xz: 5.2.6-h166bdaf_0 conda-forge + zlib: 1.2.13-h4ab18f5_6 conda-forge + zstd: 1.5.6-ha6fb4c9_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Reloading output folder (file:///opt/host-conda-bld): ...working... done + Solving environment (_test_env): ...working... done + Source cache directory is: /opt/conda/conda-bld/src_cache + Downloading source to cache: hiddenDomains.3.1_7c2de1ab3a.tar.gz + Downloading https://sourceforge.net/projects/hiddendomains/files/hiddenDomains.3.1.tar.gz + WARNING: Error: HTTP 502 BAD GATEWAY for url + Elapsed: 00:01.381509 + CF-RAY: 88f8cfa93e2010cc-ORD + + An HTTP error occurred when trying to retrieve this URL. + HTTP errors are often intermittent, and a simple retry will get you on your way. + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2419, in build + try_download(m, no_download_source=False, raise_error=True) + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 762, in try_download + source.provide(metadata) + File "/opt/conda/lib/python3.10/site-packages/conda_build/source.py", line 1035, in provide + unpack( + File "/opt/conda/lib/python3.10/site-packages/conda_build/source.py", line 169, in unpack + src_path, unhashed_fn = download_to_cache( + File "/opt/conda/lib/python3.10/site-packages/conda_build/source.py", line 116, in download_to_cache + raise RuntimeError(f"Could not download {url}") + RuntimeError: Could not download https://sourceforge.net/projects/hiddendomains/files/hiddenDomains.3.1.tar.gz +# Last 100 lines of the build log. diff --git a/recipes/hiddendomains/meta.yaml b/recipes/hiddendomains/meta.yaml index df3fe9d936f3e..9ed3b8724f354 100644 --- a/recipes/hiddendomains/meta.yaml +++ b/recipes/hiddendomains/meta.yaml @@ -13,7 +13,7 @@ source: - path.patch build: - number: 4 + number: 5 noarch: generic requirements: diff --git a/recipes/hits/meta.yaml b/recipes/hits/meta.yaml index d3702f5e0050b..b0ffd46411dda 100644 --- a/recipes/hits/meta.yaml +++ b/recipes/hits/meta.yaml @@ -10,7 +10,7 @@ source: sha256: "743bfc1b56ab8fcf9fefacfcad4c1f23e9bafec1b42225709dbe097c8e669383" build: - number: 1 + number: 2 skip: True # [py != 38] script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv" diff --git a/recipes/hla-la/1.0/build_failure.linux-64.yaml b/recipes/hla-la/1.0/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..df504c596e1b8 --- /dev/null +++ b/recipes/hla-la/1.0/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 1679e6ba22e2c8284232e79db6480de5db955cccfe9fd7837c487b7f3db1067a # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hla-la-1.0.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hla-la-1.0.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-g + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all Graph/Edge.cpp -c -o ../obj/Edge.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all Graph/Graph.cpp -c -o ../obj/Graph.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all Graph/GraphAndEdgeIndex.cpp -c -o ../obj/GraphAndEdgeIndex.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all Graph/Node.cpp -c -o ../obj/Node.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all Graph/HaplotypePanel.cpp -c -o ../obj/HaplotypePanel.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all Graph/graphSimulator/simpleGraphSimulator.cpp -c -o ../obj/simpleGraphSimulator.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all Graph/LocusCodeAllocation.cpp -c -o ../obj/LocusCodeAllocation.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all simulator/simulator.cpp -c -o ../obj/simulator.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all simulator/readSimulator.cpp -c -o ../obj/readSimulator.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all simulator/trueReadLevels.cpp -c -o ../obj/trueReadLevels.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all mapper/processBAM.cpp -c -o ../obj/processBAM.o + In file included from /opt/conda/conda-bld/hla-la_1717710114292/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include/boost/math/special_functions/detail/round_fwd.hpp:11, + from /opt/conda/conda-bld/hla-la_1717710114292/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include/boost/math/special_functions/math_fwd.hpp:29, + from /opt/conda/conda-bld/hla-la_1717710114292/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include/boost/math/special_functions/erf.hpp:13, + from /opt/conda/conda-bld/hla-la_1717710114292/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include/boost/math/distributions/normal.hpp:19, + from mapper/processBAM.h:30, + from mapper/processBAM.cpp:18: + /opt/conda/conda-bld/hla-la_1717710114292/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include/boost/math/tools/config.hpp:26:6: warning: #warning "Boost.Math requires C14" [-Wcpp] + 26 | # warning "Boost.Math requires C14" + | ^~~~~~~ + mapper/processBAM.cpp: In constructor 'mapper::processBAM::processBAM(std::string, unsigned int)': + mapper/processBAM.cpp:123:33: warning: use of an operand of type 'bool' in 'operator' is deprecated [-Wdeprecated] + 123 | haveGapEdge; + | ^~~~~~~~~~~ + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all mapper/reads/protoSeeds.cpp -c -o ../obj/protoSeeds.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all mapper/reads/oneRead.cpp -c -o ../obj/oneRead.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all mapper/reads/oneReadPair.cpp -c -o ../obj/oneReadPair.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all mapper/reads/oneReadPairwithSeedChains.cpp -c -o ../obj/oneReadPairwithSeedChains.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all mapper/aligner/alignerBase.cpp -c -o ../obj/alignerBase.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all mapper/aligner/alignmentContext.cpp -c -o ../obj/alignmentContext.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all mapper/aligner/extensionAligner.cpp -c -o ../obj/extensionAligner.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all mapper/bwa/BWAmapper.cpp -c -o ../obj/BWAmapper.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all mapper/bowtie2/Bowtie2mapper.cpp -c -o ../obj/Bowtie2mapper.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all mapper/aligner/statistics.cpp -c -o ../obj/statistics.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all mapper/aligner/VirtualNWUnique.cpp -c -o ../obj/VirtualNWUnique.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all mapper/reads/PRGContigBAMAlignment.cpp -c -o ../obj/PRGContigBAMAlignment.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all mapper/reads/verboseSeedChain.cpp -c -o ../obj/verboseSeedChain.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all hla/HLATyper.cpp -c -o ../obj/HLATyper.o + In file included from /opt/conda/conda-bld/hla-la_1717710114292/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include/boost/math/tools/series.hpp:16, + from /opt/conda/conda-bld/hla-la_1717710114292/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include/boost/math/special_functions/gamma.hpp:17, + from /opt/conda/conda-bld/hla-la_1717710114292/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include/boost/math/distributions/chi_squared.hpp:13, + from hla/HLATyper.cpp:21: + /opt/conda/conda-bld/hla-la_1717710114292/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include/boost/math/tools/config.hpp:26:6: warning: #warning "Boost.Math requires C14" [-Wcpp] + 26 | # warning "Boost.Math requires C14" + | ^~~~~~~ + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all pathFinder.cpp -c -o ../obj/pathFinder.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all linearALTs/linearALTs.cpp -c -o ../obj/linearALTs.o + In file included from /opt/conda/conda-bld/hla-la_1717710114292/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include/boost/math/special_functions/detail/round_fwd.hpp:11, + from /opt/conda/conda-bld/hla-la_1717710114292/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include/boost/math/special_functions/math_fwd.hpp:29, + from /opt/conda/conda-bld/hla-la_1717710114292/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include/boost/math/special_functions/erf.hpp:13, + from /opt/conda/conda-bld/hla-la_1717710114292/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include/boost/math/distributions/normal.hpp:19, + from linearALTs/linearALTs.h:17, + from linearALTs/linearALTs.cpp:8: + /opt/conda/conda-bld/hla-la_1717710114292/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include/boost/math/tools/config.hpp:26:6: warning: #warning "Boost.Math requires C14" [-Wcpp] + 26 | # warning "Boost.Math requires C14" + | ^~~~~~~ + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all hla/oneExonPosition.cpp -c -o ../obj/oneExonPosition.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all mapper/reads/seedChain.cpp -c -o ../obj/seedChain.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -I$PREFIX/include -I$PREFIX/include/bamtools -I$PREFIX/include -ggdb -O2 -fopenmp -std=gnu0x -fstack-protector-all Utilities.cpp -c -o ../obj/Utilities.o + Utilities.cpp: In static member function 'static void Utilities::deleteFile(std::string)': + Utilities.cpp:107:24: error: 'wpath' is not a member of 'boost::filesystem'; did you mean 'path'? + 107 | boost::filesystem::wpath F(file); + | ^~~~~ + | path + In file included from /opt/conda/conda-bld/hla-la_1717710114292/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include/boost/assert.hpp:58, + from /opt/conda/conda-bld/hla-la_1717710114292/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include/boost/filesystem/directory.hpp:28, + from /opt/conda/conda-bld/hla-la_1717710114292/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include/boost/filesystem.hpp:18, + from Utilities.cpp:22: + Utilities.cpp:108:38: error: 'F' was not declared in this scope + 108 | assert(boost::filesystem::remove(F)); + | ^ + Utilities.cpp: In static member function 'static size_t Utilities::fileLastWrite(std::string)': + Utilities.cpp:114:24: error: 'wpath' is not a member of 'boost::filesystem'; did you mean 'path'? + 114 | boost::filesystem::wpath F(file); + | ^~~~~ + | path + Utilities.cpp:115:28: error: 'F' was not declared in this scope + 115 | return last_write_time(F); + | ^ + make: *** [makefile:112: ../obj/Utilities.o] Error 1 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/hla-la_1717710114292/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/hla-la/1.0/meta.yaml b/recipes/hla-la/1.0/meta.yaml index e25e52f5ccbbe..cae93b6943d76 100644 --- a/recipes/hla-la/1.0/meta.yaml +++ b/recipes/hla-la/1.0/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 6 + number: 7 skip: true # [osx] source: diff --git a/recipes/hmnrandomread/meta.yaml b/recipes/hmnrandomread/meta.yaml index 2789797cd9ed0..f572333f454e0 100644 --- a/recipes/hmnrandomread/meta.yaml +++ b/recipes/hmnrandomread/meta.yaml @@ -10,7 +10,7 @@ source: sha256: dc589ef91be1a4c5694aad3e34a4cd0b1818c131b03153e76634f01ed0719854 build: - number: 2 + number: 3 skip: true [osx] requirements: diff --git a/recipes/htseq/meta.yaml b/recipes/htseq/meta.yaml index 712c394b285fb..bd437d80226bc 100644 --- a/recipes/htseq/meta.yaml +++ b/recipes/htseq/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 2 script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation run_exports: - {{ pin_subpackage('htseq', max_pin="x") }} diff --git a/recipes/htslib/meta.yaml b/recipes/htslib/meta.yaml index 0ed226673ba88..296dd937597de 100644 --- a/recipes/htslib/meta.yaml +++ b/recipes/htslib/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('htslib', max_pin='x.x') }} diff --git a/recipes/htstream/build_failure.osx-64.yaml b/recipes/htstream/build_failure.osx-64.yaml index cd76a4386b10c..400c56a63f8c5 100644 --- a/recipes/htstream/build_failure.osx-64.yaml +++ b/recipes/htstream/build_failure.osx-64.yaml @@ -1,104 +1,105 @@ -recipe_sha: e057a52a7fe7f50964b9a3d32ff6e699c1c954c81c3b6cd73dde5b04d3ba1f15 # The commit at which this recipe failed to build. +recipe_sha: f63c85f1a92190b28ae8a18c503b9179d490949acf6beb8b780ba20b5b2ae2c6 # The hash of the recipe's meta.yaml at which this recipe failed to build. skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: compiler error log: |- - /opt/mambaforge/envs/bioconda/conda-bld/htstream_1685384051284/work/ext/googletest/googletest-release-1.10.0/googlemock/include/gmock/gmock-matchers.h:3842:10: note: in implicit move constructor for 'testing::PolymorphicMatcher>' first required here - return MakePolymorphicMatcher( - ^ - /opt/mambaforge/envs/bioconda/conda-bld/htstream_1685384051284/work/ext/googletest/googletest-release-1.10.0/googlemock/include/gmock/gmock-matchers.h:835:3: error: definition of implicit copy constructor for 'StartsWithMatcher' is deprecated because it has a user-declared copy assignment operator [-Werror,-Wdeprecated-copy] - GTEST_DISALLOW_ASSIGN_(StartsWithMatcher); - ^ - /opt/mambaforge/envs/bioconda/conda-bld/htstream_1685384051284/work/ext/googletest/googletest-release-1.10.0/googletest/include/gtest/internal/gtest-port.h:682:8: note: expanded from macro 'GTEST_DISALLOW_ASSIGN_' - void operator=(type const &) = delete - ^ - /opt/mambaforge/envs/bioconda/conda-bld/htstream_1685384051284/work/ext/googletest/googletest-release-1.10.0/googletest/include/gtest/gtest-matchers.h:454:7: note: in implicit copy constructor for 'testing::internal::StartsWithMatcher' first required here - class PolymorphicMatcher { - ^ - /opt/mambaforge/envs/bioconda/conda-bld/htstream_1685384051284/work/ext/googletest/googletest-release-1.10.0/googlemock/include/gmock/gmock-matchers.h:3849:10: note: in implicit move constructor for 'testing::PolymorphicMatcher>' first required here - return MakePolymorphicMatcher( - ^ - /opt/mambaforge/envs/bioconda/conda-bld/htstream_1685384051284/work/ext/googletest/googletest-release-1.10.0/googlemock/include/gmock/gmock-matchers.h:891:3: error: definition of implicit copy constructor for 'EndsWithMatcher' is deprecated because it has a user-declared copy assignment operator [-Werror,-Wdeprecated-copy] - GTEST_DISALLOW_ASSIGN_(EndsWithMatcher); - ^ - /opt/mambaforge/envs/bioconda/conda-bld/htstream_1685384051284/work/ext/googletest/googletest-release-1.10.0/googletest/include/gtest/internal/gtest-port.h:682:8: note: expanded from macro 'GTEST_DISALLOW_ASSIGN_' - void operator=(type const &) = delete - ^ - /opt/mambaforge/envs/bioconda/conda-bld/htstream_1685384051284/work/ext/googletest/googletest-release-1.10.0/googletest/include/gtest/gtest-matchers.h:454:7: note: in implicit copy constructor for 'testing::internal::EndsWithMatcher' first required here - class PolymorphicMatcher { - ^ - /opt/mambaforge/envs/bioconda/conda-bld/htstream_1685384051284/work/ext/googletest/googletest-release-1.10.0/googlemock/include/gmock/gmock-matchers.h:3856:10: note: in implicit move constructor for 'testing::PolymorphicMatcher>' first required here - return MakePolymorphicMatcher(internal::EndsWithMatcher(suffix)); - ^ - /opt/mambaforge/envs/bioconda/conda-bld/htstream_1685384051284/work/ext/googletest/googletest-release-1.10.0/googlemock/include/gmock/gmock-matchers.h:721:3: error: definition of implicit copy constructor for 'StrEqualityMatcher' is deprecated because it has a user-declared copy assignment operator [-Werror,-Wdeprecated-copy] - GTEST_DISALLOW_ASSIGN_(StrEqualityMatcher); - ^ - /opt/mambaforge/envs/bioconda/conda-bld/htstream_1685384051284/work/ext/googletest/googletest-release-1.10.0/googletest/include/gtest/internal/gtest-port.h:682:8: note: expanded from macro 'GTEST_DISALLOW_ASSIGN_' - void operator=(type const &) = delete - ^ - /opt/mambaforge/envs/bioconda/conda-bld/htstream_1685384051284/work/ext/googletest/googletest-release-1.10.0/googletest/include/gtest/gtest-matchers.h:454:7: note: in implicit copy constructor for 'testing::internal::StrEqualityMatcher' first required here - class PolymorphicMatcher { - ^ - /opt/mambaforge/envs/bioconda/conda-bld/htstream_1685384051284/work/ext/googletest/googletest-release-1.10.0/googlemock/include/gmock/gmock-matchers.h:3865:10: note: in implicit move constructor for 'testing::PolymorphicMatcher>' first required here - return MakePolymorphicMatcher( - ^ - /opt/mambaforge/envs/bioconda/conda-bld/htstream_1685384051284/work/ext/googletest/googletest-release-1.10.0/googlemock/include/gmock/gmock-matchers.h:778:3: error: definition of implicit copy constructor for 'HasSubstrMatcher' is deprecated because it has a user-declared copy assignment operator [-Werror,-Wdeprecated-copy] - GTEST_DISALLOW_ASSIGN_(HasSubstrMatcher); - ^ - /opt/mambaforge/envs/bioconda/conda-bld/htstream_1685384051284/work/ext/googletest/googletest-release-1.10.0/googletest/include/gtest/internal/gtest-port.h:682:8: note: expanded from macro 'GTEST_DISALLOW_ASSIGN_' - void operator=(type const &) = delete - ^ - /opt/mambaforge/envs/bioconda/conda-bld/htstream_1685384051284/work/ext/googletest/googletest-release-1.10.0/googletest/include/gtest/gtest-matchers.h:454:7: note: in implicit copy constructor for 'testing::internal::HasSubstrMatcher' first required here - class PolymorphicMatcher { - ^ - /opt/mambaforge/envs/bioconda/conda-bld/htstream_1685384051284/work/ext/googletest/googletest-release-1.10.0/googlemock/include/gmock/gmock-matchers.h:3894:10: note: in implicit move constructor for 'testing::PolymorphicMatcher>' first required here - return MakePolymorphicMatcher( - ^ - /opt/mambaforge/envs/bioconda/conda-bld/htstream_1685384051284/work/ext/googletest/googletest-release-1.10.0/googlemock/include/gmock/gmock-matchers.h:835:3: error: definition of implicit copy constructor for 'StartsWithMatcher' is deprecated because it has a user-declared copy assignment operator [-Werror,-Wdeprecated-copy] - GTEST_DISALLOW_ASSIGN_(StartsWithMatcher); - ^ - /opt/mambaforge/envs/bioconda/conda-bld/htstream_1685384051284/work/ext/googletest/googletest-release-1.10.0/googletest/include/gtest/internal/gtest-port.h:682:8: note: expanded from macro 'GTEST_DISALLOW_ASSIGN_' - void operator=(type const &) = delete - ^ - /opt/mambaforge/envs/bioconda/conda-bld/htstream_1685384051284/work/ext/googletest/googletest-release-1.10.0/googletest/include/gtest/gtest-matchers.h:454:7: note: in implicit copy constructor for 'testing::internal::StartsWithMatcher' first required here - class PolymorphicMatcher { - ^ - /opt/mambaforge/envs/bioconda/conda-bld/htstream_1685384051284/work/ext/googletest/googletest-release-1.10.0/googlemock/include/gmock/gmock-matchers.h:3901:10: note: in implicit move constructor for 'testing::PolymorphicMatcher>' first required here - return MakePolymorphicMatcher( - ^ - /opt/mambaforge/envs/bioconda/conda-bld/htstream_1685384051284/work/ext/googletest/googletest-release-1.10.0/googlemock/include/gmock/gmock-matchers.h:891:3: error: definition of implicit copy constructor for 'EndsWithMatcher' is deprecated because it has a user-declared copy assignment operator [-Werror,-Wdeprecated-copy] - GTEST_DISALLOW_ASSIGN_(EndsWithMatcher); - ^ - /opt/mambaforge/envs/bioconda/conda-bld/htstream_1685384051284/work/ext/googletest/googletest-release-1.10.0/googletest/include/gtest/internal/gtest-port.h:682:8: note: expanded from macro 'GTEST_DISALLOW_ASSIGN_' - void operator=(type const &) = delete - ^ - /opt/mambaforge/envs/bioconda/conda-bld/htstream_1685384051284/work/ext/googletest/googletest-release-1.10.0/googletest/include/gtest/gtest-matchers.h:454:7: note: in implicit copy constructor for 'testing::internal::EndsWithMatcher' first required here - class PolymorphicMatcher { - ^ - /opt/mambaforge/envs/bioconda/conda-bld/htstream_1685384051284/work/ext/googletest/googletest-release-1.10.0/googlemock/include/gmock/gmock-matchers.h:3908:10: note: in implicit move constructor for 'testing::PolymorphicMatcher>' first required here - return MakePolymorphicMatcher( - ^ - 12 errors generated. - make[5]: *** [googlemock/CMakeFiles/gmock.dir/build.make:76: googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o] Error 1 - make[4]: *** [CMakeFiles/Makefile2:119: googlemock/CMakeFiles/gmock.dir/all] Error 2 - make[3]: *** [Makefile:146: all] Error 2 - make[2]: *** [CMakeFiles/googletest.dir/build.make:86: src/googletest-stamp/googletest-build] Error 2 - make[1]: *** [CMakeFiles/Makefile2:326: CMakeFiles/googletest.dir/all] Error 2 - make: *** [Makefile:146: all] Error 2 - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/htstream_1685384051284/work/conda_build.sh']' returned non-zero exit status 2. + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/htstream_1718123498186/work/conda_build.sh']' returned non-zero exit status 2. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/htstream-1.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/htstream-1.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/htstream-1.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + -- The C compiler identification is Clang 16.0.6 + -- The CXX compiler identification is Clang 16.0.6 + -- Detecting C compiler ABI info + -- Detecting C compiler ABI info - done + -- Check for working C compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting C compile features + -- Detecting C compile features - done + -- Detecting CXX compiler ABI info + -- Detecting CXX compiler ABI info - done + -- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting CXX compile features + -- Detecting CXX compile features - done + -- tar result: 0 $SRC_DIR/ext/googletest/release-1.10.0.tar.gz + -- Found Boost: $PREFIX/lib/cmake/Boost-1.85.0/BoostConfig.cmake (found suitable version "1.85.0", minimum required is "1.56") found components: system program_options filesystem iostreams + -- Performing Test CMAKE_HAVE_LIBC_PTHREAD + -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success + -- Found Threads: TRUE + -- Found Boost: $PREFIX/lib/cmake/Boost-1.85.0/BoostConfig.cmake (found suitable version "1.85.0", minimum required is "1.56") found components: system program_options iostreams filesystem + -- Configuring done (6.7s) + -- Generating done (0.2s) + -- Build files have been written to: $SRC_DIR/build + [ 1%] Creating directories for 'googletest' + [ 2%] No download step for 'googletest' + [ 4%] No update step for 'googletest' + [ 5%] No patch step for 'googletest' + [ 7%] Performing configure step for 'googletest' + -- The C compiler identification is Clang 16.0.6 + -- The CXX compiler identification is Clang 16.0.6 + -- Detecting C compiler ABI info + -- Detecting C compiler ABI info - done + -- Check for working C compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting C compile features + -- Detecting C compile features - done + -- Detecting CXX compiler ABI info + -- Detecting CXX compiler ABI info - done + -- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting CXX compile features + -- Detecting CXX compile features - done + -- Found PythonInterp: $PREFIX/bin/python (found version "3.12.3") + -- Performing Test CMAKE_HAVE_LIBC_PTHREAD + -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success + -- Found Threads: TRUE + -- Configuring done (2.0s) + -- Generating done (0.0s) + -- Build files have been written to: $SRC_DIR/build/src/googletest-build + [ 8%] Performing build step for 'googletest' + [ 12%] Building CXX object googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o + [ 25%] Linking CXX static library ../lib/libgtest.a + [ 25%] Built target gtest + [ 37%] Building CXX object googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o # Last 100 lines of the build log. diff --git a/recipes/htstream/meta.yaml b/recipes/htstream/meta.yaml index 7ac46da0860a0..5e55ca6df3bf3 100644 --- a/recipes/htstream/meta.yaml +++ b/recipes/htstream/meta.yaml @@ -10,7 +10,7 @@ source: sha256: {{ sha256 }} build: - number: 4 + number: 5 requirements: build: diff --git a/recipes/humid/meta.yaml b/recipes/humid/meta.yaml index 77f3ae3e1d436..4bb2f60c72a36 100644 --- a/recipes/humid/meta.yaml +++ b/recipes/humid/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 5da8a2a95514304b7a32a6525bb6047bae16b96e56a9737a57a745470eac7733 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('humid', max_pin="x") }} diff --git a/recipes/iced/build_failure.linux-64.yaml b/recipes/iced/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..f74af48eaf70a --- /dev/null +++ b/recipes/iced/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 400ed2c0710342dc29523fa08cc66e0bbb7567fabf768184c9bb8ce3c8141cf4 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + + [1;35mnote[0m: This error originates from a subprocess, and is likely not a problem with pip. + [1;35mfull command[0m: [34m/opt/conda/conda-bld/iced_1717609030770/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/bin/python /opt/conda/conda-bld/iced_1717609030770/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py prepare_metadata_for_build_wheel /tmp/tmpfguomjtm[0m + [1;35mcwd[0m: /opt/conda/conda-bld/iced_1717609030770/work + Preparing metadata (pyproject.toml): finished with status 'error' + [1;31merror[0m: [1mmetadata-generation-failed[0m + + [31m[0m Encountered error while generating package metadata. + [31m>[0m See above for output. + + [1;35mnote[0m: This is an issue with the package mentioned above, not pip. + [1;36mhint[0m: See above for details. + Exception information: + Traceback (most recent call last): + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/operations/build/metadata.py", line 35, in generate_metadata + distinfo_dir = backend.prepare_metadata_for_build_wheel(metadata_dir) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/utils/misc.py", line 766, in prepare_metadata_for_build_wheel + return super().prepare_metadata_for_build_wheel( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py", line 186, in prepare_metadata_for_build_wheel + return self._call_hook('prepare_metadata_for_build_wheel', { + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py", line 311, in _call_hook + self._subprocess_runner( + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/utils/subprocess.py", line 252, in runner + call_subprocess( + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/utils/subprocess.py", line 224, in call_subprocess + raise error + pip._internal.exceptions.InstallationSubprocessError: Preparing metadata (pyproject.toml) exited with 1 + + The above exception was the direct cause of the following exception: + + Traceback (most recent call last): + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper + status = run_func(*args) + ^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper + return func(self, options, args) + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/commands/install.py", line 377, in run + requirement_set = resolver.resolve( + ^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 76, in resolve + collected = self.factory.collect_root_requirements(root_reqs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 534, in collect_root_requirements + reqs = list( + ^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 490, in _make_requirements_from_install_req + cand = self._make_base_candidate_from_link( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 228, in _make_base_candidate_from_link + self._link_candidate_cache[link] = LinkCandidate( + ^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 290, in __init__ + super().__init__( + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 156, in __init__ + self.dist = self._prepare() + ^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 222, in _prepare + dist = self._prepare_distribution() + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 301, in _prepare_distribution + return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 525, in prepare_linked_requirement + return self._prepare_linked_requirement(req, parallel_builds) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 640, in _prepare_linked_requirement + dist = _get_prepared_distribution( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 71, in _get_prepared_distribution + abstract_dist.prepare_distribution_metadata( + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/distributions/sdist.py", line 67, in prepare_distribution_metadata + self.req.prepare_metadata() + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/req/req_install.py", line 579, in prepare_metadata + self.metadata_directory = generate_metadata( + ^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/operations/build/metadata.py", line 37, in generate_metadata + raise MetadataGenerationFailed(package_details=details) from error + pip._internal.exceptions.MetadataGenerationFailed: metadata generation failed + Removed file://$SRC_DIR from build tracker '/tmp/pip-build-tracker-holk0f44' + Removed build tracker: '/tmp/pip-build-tracker-holk0f44' + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/iced_1717609030770/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/iced/build_failure.osx-64.yaml b/recipes/iced/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..ed16711b8c3f8 --- /dev/null +++ b/recipes/iced/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 400ed2c0710342dc29523fa08cc66e0bbb7567fabf768184c9bb8ce3c8141cf4 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/iced-0.5.10 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/iced-0.5.10 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + iced + Processing iced/_filter_.pyx + Processing iced/normalization/_normalization_.pyx + Using pip 24.0 from $PREFIX/lib/python3.12/site-packages/pip (python 3.12) + Non-user install because user site-packages disabled + Ignoring indexes: https://pypi.org/simple + Created temporary directory: /private/tmp/pip-build-tracker-zu5vyi_p + Initialized build tracking at /private/tmp/pip-build-tracker-zu5vyi_p + Created build tracker: /private/tmp/pip-build-tracker-zu5vyi_p + Entered build tracker: /private/tmp/pip-build-tracker-zu5vyi_p + Created temporary directory: /private/tmp/pip-install-usxqfwkz + Created temporary directory: /private/tmp/pip-ephem-wheel-cache-6k98c0ng + Processing $SRC_DIR + Added file://$SRC_DIR to build tracker '/private/tmp/pip-build-tracker-zu5vyi_p' + Created temporary directory: /private/tmp/pip-modern-metadata-8ggb3l2k + Preparing metadata (pyproject.toml): started + Preparing metadata (pyproject.toml): finished with status 'error' + Exception information: + Traceback (most recent call last): + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/operations/build/metadata.py", line 35, in generate_metadata + distinfo_dir = backend.prepare_metadata_for_build_wheel(metadata_dir) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/utils/misc.py", line 766, in prepare_metadata_for_build_wheel + return super().prepare_metadata_for_build_wheel( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py", line 186, in prepare_metadata_for_build_wheel + return self._call_hook('prepare_metadata_for_build_wheel', { + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py", line 311, in _call_hook + self._subprocess_runner( + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/utils/subprocess.py", line 252, in runner + call_subprocess( + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/utils/subprocess.py", line 224, in call_subprocess + raise error + pip._internal.exceptions.InstallationSubprocessError: Preparing metadata (pyproject.toml) exited with 1 + + The above exception was the direct cause of the following exception: + + Traceback (most recent call last): + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper + status = run_func(*args) + ^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper + return func(self, options, args) + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/commands/install.py", line 377, in run + requirement_set = resolver.resolve( + ^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 76, in resolve + collected = self.factory.collect_root_requirements(root_reqs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 534, in collect_root_requirements + reqs = list( + ^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 490, in _make_requirements_from_install_req + cand = self._make_base_candidate_from_link( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 228, in _make_base_candidate_from_link + self._link_candidate_cache[link] = LinkCandidate( + ^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 290, in __init__ + super().__init__( + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 156, in __init__ + self.dist = self._prepare() + ^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 222, in _prepare + dist = self._prepare_distribution() + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 301, in _prepare_distribution + return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 525, in prepare_linked_requirement + return self._prepare_linked_requirement(req, parallel_builds) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 640, in _prepare_linked_requirement + dist = _get_prepared_distribution( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 71, in _get_prepared_distribution + abstract_dist.prepare_distribution_metadata( + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/distributions/sdist.py", line 67, in prepare_distribution_metadata + self.req.prepare_metadata() + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/req/req_install.py", line 579, in prepare_metadata + self.metadata_directory = generate_metadata( + ^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/operations/build/metadata.py", line 37, in generate_metadata + raise MetadataGenerationFailed(package_details=details) from error + pip._internal.exceptions.MetadataGenerationFailed: metadata generation failed + Removed file://$SRC_DIR from build tracker '/private/tmp/pip-build-tracker-zu5vyi_p' + Removed build tracker: '/private/tmp/pip-build-tracker-zu5vyi_p' +# Last 100 lines of the build log. diff --git a/recipes/iced/meta.yaml b/recipes/iced/meta.yaml index e5a03a2d7faba..8468ad67754af 100644 --- a/recipes/iced/meta.yaml +++ b/recipes/iced/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 2 + number: 3 requirements: build: diff --git a/recipes/icescreen/meta.yaml b/recipes/icescreen/meta.yaml index 09c46a851ab4f..10c1c4758505c 100644 --- a/recipes/icescreen/meta.yaml +++ b/recipes/icescreen/meta.yaml @@ -10,7 +10,7 @@ source: sha256: f8d691891bd92e2dc4a72b14a5404645d26f30d3fbe09d407b45c548d37f2ca3 build: - number: 0 + number: 1 noarch: generic run_exports: - {{ pin_subpackage('icescreen', max_pin="x") }} diff --git a/recipes/idba_subasm/meta.yaml b/recipes/idba_subasm/meta.yaml index 5fdc066c5a510..a671524be98ff 100644 --- a/recipes/idba_subasm/meta.yaml +++ b/recipes/idba_subasm/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 421d097aaafd27e7b0c8b7bd5ae51b17e2f2a899dfd27fa1e9f5df909168f57e build: - number: 7 + number: 8 skip: True # [osx] requirements: diff --git a/recipes/igblast-parser/build_failure.linux-64.yaml b/recipes/igblast-parser/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..cee7aafa42d50 --- /dev/null +++ b/recipes/igblast-parser/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 36501d3141b6eadd05d7cea464e322a0de391cc80ec7163ff7755e06829c806a # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + Verifying transaction: ...working... done + Executing transaction: ...working... done + Source cache directory is: /opt/conda/conda-bld/src_cache + Downloading source to cache: v0.0.4_c459f56983.tar.gz + Downloading https://github.com/aerijman/igblast-parser/archive/v0.0.4.tar.gz + Success + Extracting download + source tree in: /opt/conda/conda-bld/igblast-parser_1717538724049/work + export PREFIX=/opt/conda/conda-bld/igblast-parser_1717538724049/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol + export BUILD_PREFIX=/opt/conda/conda-bld/igblast-parser_1717538724049/_build_env + export SRC_DIR=/opt/conda/conda-bld/igblast-parser_1717538724049/work + INFO: activate-binutils_linux-64.sh made the following environmental changes: + ADDR2LINE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-addr2line + AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar + AS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-as + CXXFILT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cfilt + ELFEDIT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-elfedit + GPROF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gprof + LD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld + LD_GOLD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld.gold + NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-nm + OBJCOPY=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objcopy + OBJDUMP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objdump + RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib + READELF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-readelf + SIZE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-size + STRINGS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strings + STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip + INFO: activate-gcc_linux-64.sh made the following environmental changes: + BUILD=x86_64-conda-linux-gnu + CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/igblast-parser-0.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr + CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot + CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu + CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu + CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/igblast-parser-0.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + running install + /opt/conda/conda-bld/igblast-parser_1717538724049/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.12/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated. + !! + + ******************************************************************************** + Please avoid running setup.py directly. + Instead, use pypa/build, pypa/installer or other + standards-based tools. + + See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details. + ******************************************************************************** + + !! + self.initialize_options() + running build + running build_py + creating build + creating build/lib.linux-x86_64-cpython-312 + creating build/lib.linux-x86_64-cpython-312/igblast_parser + copying igblast_parser/__init__.py -> build/lib.linux-x86_64-cpython-312/igblast_parser + running build_ext + building 'igblast_parser.module1' extension + creating build/temp.linux-x86_64-cpython-312 + creating build/temp.linux-x86_64-cpython-312/compiled + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -fno-strict-overflow -DNDEBUG -O2 -Wall -fPIC -O2 -isystem $PREFIX/include -fPIC -O2 -isystem $PREFIX/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/igblast-parser-0.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -fPIC -I$PREFIX/include/python3.12 -c compiled/module1.c -o build/temp.linux-x86_64-cpython-312/compiled/module1.o + compiled/module1.c:208:12: fatal error: longintrepr.h: No such file or directory + 208 | #include "longintrepr.h" + | ^~~~~~~~~~~~~~~ + compilation terminated. + error: command '/opt/conda/conda-bld/igblast-parser_1717538724049/_build_env/bin/x86_64-conda-linux-gnu-cc' failed with exit code 1 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/igblast-parser_1717538724049/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/igblast-parser/build_failure.osx-64.yaml b/recipes/igblast-parser/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..b962fd176884c --- /dev/null +++ b/recipes/igblast-parser/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 36501d3141b6eadd05d7cea464e322a0de391cc80ec7163ff7755e06829c806a # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache + Downloading source to cache: v0.0.4_c459f56983.tar.gz + Downloading https://github.com/aerijman/igblast-parser/archive/v0.0.4.tar.gz + Success + /opt/mambaforge/envs/bioconda/conda-bld/igblast-parser_1717523570284/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.11/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated. + !! + + ******************************************************************************** + Please avoid running setup.py directly. + Instead, use pypa/build, pypa/installer or other + standards-based tools. + + See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details. + ******************************************************************************** + + !! + self.initialize_options() + compiled/module1.c:208:12: fatal error: 'longintrepr.h' file not found + #include "longintrepr.h" + ^~~~~~~~~~~~~~~ + 1 error generated. + error: command '/opt/mambaforge/envs/bioconda/conda-bld/igblast-parser_1717523570284/_build_env/bin/x86_64-apple-darwin13.4.0-clang' failed with exit code 1 + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/igblast-parser_1717523570284/work + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/igblast-parser_1717523570284/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/igblast-parser_1717523570284/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/igblast-parser_1717523570284/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/igblast-parser-0.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/igblast-parser_1717523570284/work/conda_build.sh']' returned non-zero exit status 1. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/igblast-parser-0.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + running install + running build + running build_py + creating build + creating build/lib.macosx-10.9-x86_64-cpython-311 + creating build/lib.macosx-10.9-x86_64-cpython-311/igblast_parser + copying igblast_parser/__init__.py -> build/lib.macosx-10.9-x86_64-cpython-311/igblast_parser + running build_ext + building 'igblast_parser.module1' extension + creating build/temp.macosx-10.9-x86_64-cpython-311 + creating build/temp.macosx-10.9-x86_64-cpython-311/compiled + x86_64-apple-darwin13.4.0-clang -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem $PREFIX/include -fPIC -O2 -isystem $PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/igblast-parser-0.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I$PREFIX/include/python3.11 -c compiled/module1.c -o build/temp.macosx-10.9-x86_64-cpython-311/compiled/module1.o +# Last 100 lines of the build log. diff --git a/recipes/igblast-parser/meta.yaml b/recipes/igblast-parser/meta.yaml index 2de5d0d349595..3f300f06d6af0 100644 --- a/recipes/igblast-parser/meta.yaml +++ b/recipes/igblast-parser/meta.yaml @@ -10,7 +10,7 @@ source: sha256: c459f5698390cad02a936c3a47a427cc4720e65fb82d13384ff925cc64745e32 build: - number: 6 + number: 7 script: $PYTHON setup.py install --single-version-externally-managed --record=record.txt skip: true # [py2k] diff --git a/recipes/immuneml/meta.yaml b/recipes/immuneml/meta.yaml index 14e8479833ac0..8c8af88861b5b 100644 --- a/recipes/immuneml/meta.yaml +++ b/recipes/immuneml/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 29dcfdeeaf561a1878631aa235b0d6dcb7205a206bb1cbd981c299fa658d9d99 build: - number: 0 + number: 1 # gensim pinning doesn't work for python >=3.10 skip: true [py2k or py <= 36 or py > 39] entry_points: diff --git a/recipes/infernal/meta.yaml b/recipes/infernal/meta.yaml index e98e342633c4d..0bb3322d57752 100644 --- a/recipes/infernal/meta.yaml +++ b/recipes/infernal/meta.yaml @@ -10,7 +10,7 @@ source: sha256: ad4ddae02f924ca7c85bc8c4a79c9f875af8df96aeb726702fa985cbe752497f build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage(name, max_pin="x") }} diff --git a/recipes/intarna/2.x/build_failure.osx-64.yaml b/recipes/intarna/2.x/build_failure.osx-64.yaml index 801189f24c893..ba967a602efa2 100644 --- a/recipes/intarna/2.x/build_failure.osx-64.yaml +++ b/recipes/intarna/2.x/build_failure.osx-64.yaml @@ -1,104 +1,39 @@ -recipe_sha: 28bf805820850f93e5aa6fef042d0174a74787defba60ba820b05856cfa80106 # The commit at which this recipe failed to build. +recipe_sha: 648983cbd9e4c8e3449ae40f49260473c3a4388187e3f657f43f8d4a76beb773 # The hash of the recipe's meta.yaml at which this recipe failed to build. skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |- - make[3]: Leaving directory '$SRC_DIR/src/IntaRNA' - Making all in bin - make[3]: Entering directory '$SRC_DIR/src/bin' - make[3]: Nothing to be done for 'all'. - make[3]: Leaving directory '$SRC_DIR/src/bin' - make[2]: Leaving directory '$SRC_DIR/src' - make[1]: Leaving directory '$SRC_DIR/src' - Making all in perl - make[1]: Entering directory '$SRC_DIR/perl' - make[1]: Nothing to be done for 'all'. - make[1]: Leaving directory '$SRC_DIR/perl' - Making all in tests - make[1]: Entering directory '$SRC_DIR/tests' - make[1]: Nothing to be done for 'all'. - make[1]: Leaving directory '$SRC_DIR/tests' - Making all in doc - make[1]: Entering directory '$SRC_DIR/doc' - make[1]: Nothing to be done for 'all'. - make[1]: Leaving directory '$SRC_DIR/doc' - Making all in . - make[1]: Entering directory '$SRC_DIR' - make[1]: Nothing to be done for 'all-am'. - make[1]: Leaving directory '$SRC_DIR' - - => compiling and running tests ... will take a while ... - - CXX runApiTests-AccessibilityFromStream_test.o - CXX runApiTests-AccessibilityConstraint_test.o - CXX runApiTests-AccessibilityBasePair_test.o - CXX runApiTests-HelixConstraint_test.o - CXX runApiTests-HelixHandlerStackingOnly_test.o - CXX runApiTests-HelixHandlerStackingOnlyIdxOffset_test.o - CXX runApiTests-HelixHandlerStackingOnlySeed_test.o - CXX runApiTests-HelixHandlerStackingOnlySeedIdxOffset_test.o - CXX runApiTests-HelixHandlerUnpaired_test.o - CXX runApiTests-HelixHandlerUnpairedIdxOffset_test.o - CXX runApiTests-HelixHandlerUnpairedSeed_test.o - CXX runApiTests-HelixHandlerUnpairedSeedIdxOffset_test.o - CXX runApiTests-IndexRange_test.o - CXX runApiTests-IndexRangeList_test.o - CXX runApiTests-Interaction_test.o - CXX runApiTests-InteractionEnergyBasePair_test.o - CXX runApiTests-InteractionRange_test.o - CXX runApiTests-PredictionTrackerProfileMinE_test.o - CXX runApiTests-PredictorMfe2dHelixHeuristic_test.o - CXX runApiTests-PredictorMfe2dHelixHeuristicSeed_test.o - CXX runApiTests-PredictionTrackerSpotProb_test.o - CXX runApiTests-NussinovHandler_test.o - CXX runApiTests-RnaSequence_test.o - CXX runApiTests-OutputHandlerRangeOnly_test.o - CXX runApiTests-OutputHandlerInteractionList_test.o - CXX runApiTests-SeedHandlerExplicit_test.o - CXX runApiTests-SeedHandlerNoBulge_test.o - CXX runApiTests-SeedHandlerMfe_test.o - CXX runApiTests-SeedHandlerIdxOffset_test.o - CXX runApiTests-runTests.o - In file included from runTests.cpp:12: - In file included from ../src/easylogging.h:385: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/intarna_1685395338240/_build_env/bin/../include/c/v1/string:576: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/intarna_1685395338240/_build_env/bin/../include/c/v1/string_view:1025: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/intarna_1685395338240/_build_env/bin/../include/c/v1/algorithm:1848: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/intarna_1685395338240/_build_env/bin/../include/c/v1/__algorithm/ranges_sample.h:13: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/intarna_1685395338240/_build_env/bin/../include/c/v1/__algorithm/sample.h:18: - /opt/mambaforge/envs/bioconda/conda-bld/intarna_1685395338240/_build_env/bin/../include/c/v1/__random/uniform_int_distribution.h:234:5: error: static assertion failed due to requirement '__libcpp_random_is_valid_urng::value': - static_assert(__libcpp_random_is_valid_urng<_URNG>::value, ""); - ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - /opt/mambaforge/envs/bioconda/conda-bld/intarna_1685395338240/_build_env/bin/../include/c/v1/__algorithm/shuffle.h:155:35: note: in instantiation of function template specialization 'std::uniform_int_distribution::operator()' requested here - difference_type __i = __uid(__g, _Pp(0, __d)); - ^ - /opt/mambaforge/envs/bioconda/conda-bld/intarna_1685395338240/_build_env/bin/../include/c/v1/__algorithm/shuffle.h:167:14: note: in instantiation of function template specialization 'std::__shuffle, std::__wrap_iter, Catch::RandomNumberGenerator &>' requested here - (void)std::__shuffle<_ClassicAlgPolicy>( - ^ - ./catch.hpp:6477:18: note: in instantiation of function template specialization 'std::shuffle, Catch::RandomNumberGenerator &>' requested here - std::shuffle( vector.begin(), vector.end(), rng ); - ^ - ./catch.hpp:6495:44: note: in instantiation of function template specialization 'Catch::RandomNumberGenerator::shuffle>' requested here - RandomNumberGenerator::shuffle( sorted ); - ^ - 1 error generated. - make[2]: *** [Makefile:930: runApiTests-runTests.o] Error 1 - make[1]: *** [Makefile:1119: check-am] Error 2 - make: *** [Makefile:878: tests] Error 2 - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/intarna_1685395338240/work/conda_build.sh']' returned non-zero exit status 2. -# Last 100 lines of the build log. +category: compiler error +log: |2- + 16:34:09 BIOCONDA INFO (ERR) In file included from runTests.cpp:12: + 16:34:09 BIOCONDA INFO (ERR) In file included from ../src/easylogging++.h:385: + 16:34:09 BIOCONDA INFO (ERR) In file included from /opt/mambaforge/envs/bioconda/conda-bld/intarna_1718123285885/_build_env/bin/../include/c++/v1/string:622: + 16:34:09 BIOCONDA INFO (ERR) In file included from /opt/mambaforge/envs/bioconda/conda-bld/intarna_1718123285885/_build_env/bin/../include/c++/v1/string_view:1059: + 16:34:09 BIOCONDA INFO (ERR) In file included from /opt/mambaforge/envs/bioconda/conda-bld/intarna_1718123285885/_build_env/bin/../include/c++/v1/algorithm:1893: + 16:34:09 BIOCONDA INFO (ERR) In file included from /opt/mambaforge/envs/bioconda/conda-bld/intarna_1718123285885/_build_env/bin/../include/c++/v1/__algorithm/ranges_sample.h:13: + 16:34:09 BIOCONDA INFO (ERR) In file included from /opt/mambaforge/envs/bioconda/conda-bld/intarna_1718123285885/_build_env/bin/../include/c++/v1/__algorithm/sample.h:18: + 16:34:09 BIOCONDA INFO (ERR) /opt/mambaforge/envs/bioconda/conda-bld/intarna_1718123285885/_build_env/bin/../include/c++/v1/__random/uniform_int_distribution.h:237:5: error: static assertion failed due to requirement '__libcpp_random_is_valid_urng::value': + 16:34:09 BIOCONDA INFO (ERR) static_assert(__libcpp_random_is_valid_urng<_URNG>::value, ""); + 16:34:09 BIOCONDA INFO (ERR) ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 16:34:09 BIOCONDA INFO (ERR) /opt/mambaforge/envs/bioconda/conda-bld/intarna_1718123285885/_build_env/bin/../include/c++/v1/__algorithm/shuffle.h:154:35: note: in instantiation of function template specialization 'std::uniform_int_distribution::operator()' requested here + 16:34:09 BIOCONDA INFO (ERR) difference_type __i = __uid(__g, _Pp(0, __d)); + 16:34:09 BIOCONDA INFO (ERR) ^ + 16:34:09 BIOCONDA INFO (ERR) /opt/mambaforge/envs/bioconda/conda-bld/intarna_1718123285885/_build_env/bin/../include/c++/v1/__algorithm/shuffle.h:166:14: note: in instantiation of function template specialization 'std::__shuffle, std::__wrap_iter, Catch::RandomNumberGenerator &>' requested here + 16:34:09 BIOCONDA INFO (ERR) (void)std::__shuffle<_ClassicAlgPolicy>( + 16:34:09 BIOCONDA INFO (ERR) ^ + 16:34:09 BIOCONDA INFO (ERR) ./catch.hpp:6477:18: note: in instantiation of function template specialization 'std::shuffle, Catch::RandomNumberGenerator &>' requested here + 16:34:09 BIOCONDA INFO (ERR) std::shuffle( vector.begin(), vector.end(), rng ); + 16:34:09 BIOCONDA INFO (ERR) ^ + 16:34:09 BIOCONDA INFO (ERR) ./catch.hpp:6495:44: note: in instantiation of function template specialization 'Catch::RandomNumberGenerator::shuffle>' requested here + 16:34:09 BIOCONDA INFO (ERR) RandomNumberGenerator::shuffle( sorted ); + 16:34:09 BIOCONDA INFO (ERR) ^ + 16:34:09 BIOCONDA INFO (ERR) 1 error generated. + 16:34:09 BIOCONDA INFO (ERR) make[2]: *** [Makefile:930: runApiTests-runTests.o] Error 1 + 16:34:09 BIOCONDA INFO (ERR) make[1]: *** [Makefile:1119: check-am] Error 2 + 16:34:09 BIOCONDA INFO (ERR) make: *** [Makefile:878: tests] Error 2 + 16:34:10 BIOCONDA INFO (OUT) Extracting download + 16:34:10 BIOCONDA INFO (ERR) Traceback (most recent call last): + 16:34:10 BIOCONDA INFO (OUT) source tree in: /opt/mambaforge/envs/bioconda/conda-bld/intarna_1718123285885/work + 16:34:10 BIOCONDA INFO (OUT) export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/intarna_1718123285885/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh + 16:34:10 BIOCONDA INFO (OUT) export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/intarna_1718123285885/_build_env + 16:34:10 BIOCONDA INFO (ERR) File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + 16:34:10 BIOCONDA INFO (ERR) sys.exit(execute()) + 16:34:10 BIOCONDA INFO (ERR) File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + 16:34:10 BIOCONDA INFO (ERR) api.build( \ No newline at end of file diff --git a/recipes/intarna/2.x/meta.yaml b/recipes/intarna/2.x/meta.yaml index 81a0da1247153..861d005abb03b 100644 --- a/recipes/intarna/2.x/meta.yaml +++ b/recipes/intarna/2.x/meta.yaml @@ -12,7 +12,7 @@ about: summary: Efficient RNA-RNA interaction prediction incorporating seeding and accessibility of interacting sites build: - number: 3 + number: 4 source: url: "https://github.com/BackofenLab/IntaRNA/releases/download/v{{INTARNA_VERSION}}/intaRNA-{{INTARNA_VERSION}}.tar.gz" diff --git a/recipes/intarna/build_failure.osx-64.yaml b/recipes/intarna/build_failure.osx-64.yaml deleted file mode 100644 index aeac4e79f9ce6..0000000000000 --- a/recipes/intarna/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: a38a2950d517482573a5930015c6334d5576802956592700b41dae48c47c7150 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |- - make[1]: Entering directory '$SRC_DIR/tests' - Making all in data - make[2]: Entering directory '$SRC_DIR/tests/data' - make[2]: Nothing to be done for 'all'. - make[2]: Leaving directory '$SRC_DIR/tests/data' - Making all in . - make[2]: Entering directory '$SRC_DIR/tests' - make[2]: Nothing to be done for 'all-am'. - make[2]: Leaving directory '$SRC_DIR/tests' - make[1]: Leaving directory '$SRC_DIR/tests' - Making all in doc - make[1]: Entering directory '$SRC_DIR/doc' - make[1]: Nothing to be done for 'all'. - make[1]: Leaving directory '$SRC_DIR/doc' - Making all in . - make[1]: Entering directory '$SRC_DIR' - make[1]: Nothing to be done for 'all-am'. - make[1]: Leaving directory '$SRC_DIR' - - => compiling and running tests ... will take a while ... - - Making check in data - Making check in . - CXX runApiTests-AccessibilityConstraint_test.o - CXX runApiTests-AccessibilityFromStream_test.o - CXX runApiTests-AccessibilityBasePair_test.o - CXX runApiTests-AccessibilityVrna_test.o - CXX runApiTests-HelixConstraint_test.o - CXX runApiTests-HelixHandlerNoBulgeMax_test.o - CXX runApiTests-HelixHandlerNoBulgeMaxSeed_test.o - CXX runApiTests-HelixHandlerNoBulgeMaxIdxOffset_test.o - CXX runApiTests-HelixHandlerNoBulgeMaxSeedIdxOffset_test.o - CXX runApiTests-HelixHandlerUnpaired_test.o - CXX runApiTests-HelixHandlerUnpairedIdxOffset_test.o - CXX runApiTests-HelixHandlerUnpairedSeed_test.o - CXX runApiTests-HelixHandlerUnpairedSeedIdxOffset_test.o - CXX runApiTests-IndexRange_test.o - CXX runApiTests-IndexRangeList_test.o - CXX runApiTests-Interaction_test.o - CXX runApiTests-InteractionEnergyBasePair_test.o - CXX runApiTests-InteractionRange_test.o - CXX runApiTests-PredictionTrackerProfileMinE_test.o - CXX runApiTests-PredictionTrackerSpotProb_test.o - CXX runApiTests-PredictorMfe2dHelixBlockHeuristic_test.o - CXX runApiTests-PredictorMfe2dHelixBlockHeuristicSeed_test.o - CXX runApiTests-NussinovHandler_test.o - CXX runApiTests-RnaSequence_test.o - CXX runApiTests-OutputStreamHandlerSortedCsv_test.o - CXX runApiTests-OutputHandlerInteractionList_test.o - CXX runApiTests-SeedHandlerExplicit_test.o - CXX runApiTests-SeedHandlerNoBulge_test.o - CXX runApiTests-SeedHandlerMfe_test.o - CXX runApiTests-SeedHandlerIdxOffset_test.o - CXX runApiTests-runApiTests.o - In file included from runApiTests.cpp:12: - In file included from ../src/easylogging.h:385: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/intarna_1685395867724/_build_env/bin/../include/c/v1/string:576: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/intarna_1685395867724/_build_env/bin/../include/c/v1/string_view:1025: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/intarna_1685395867724/_build_env/bin/../include/c/v1/algorithm:1848: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/intarna_1685395867724/_build_env/bin/../include/c/v1/__algorithm/ranges_sample.h:13: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/intarna_1685395867724/_build_env/bin/../include/c/v1/__algorithm/sample.h:18: - /opt/mambaforge/envs/bioconda/conda-bld/intarna_1685395867724/_build_env/bin/../include/c/v1/__random/uniform_int_distribution.h:234:5: error: static assertion failed due to requirement '__libcpp_random_is_valid_urng::value': - static_assert(__libcpp_random_is_valid_urng<_URNG>::value, ""); - ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - /opt/mambaforge/envs/bioconda/conda-bld/intarna_1685395867724/_build_env/bin/../include/c/v1/__algorithm/shuffle.h:155:35: note: in instantiation of function template specialization 'std::uniform_int_distribution::operator()' requested here - difference_type __i = __uid(__g, _Pp(0, __d)); - ^ - /opt/mambaforge/envs/bioconda/conda-bld/intarna_1685395867724/_build_env/bin/../include/c/v1/__algorithm/shuffle.h:167:14: note: in instantiation of function template specialization 'std::__shuffle, std::__wrap_iter, Catch::RandomNumberGenerator &>' requested here - (void)std::__shuffle<_ClassicAlgPolicy>( - ^ - ./catch.hpp:6477:18: note: in instantiation of function template specialization 'std::shuffle, Catch::RandomNumberGenerator &>' requested here - std::shuffle( vector.begin(), vector.end(), rng ); - ^ - ./catch.hpp:6495:44: note: in instantiation of function template specialization 'Catch::RandomNumberGenerator::shuffle>' requested here - RandomNumberGenerator::shuffle( sorted ); - ^ - 1 error generated. - make[3]: *** [Makefile:1239: runApiTests-runApiTests.o] Error 1 - make[2]: *** [Makefile:1573: check-am] Error 2 - make[1]: *** [Makefile:1259: check-recursive] Error 1 - cat: tests/test-suite.log: No such file or directory - make: *** [Makefile:911: tests] Error 1 - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/intarna_1685395867724/work/conda_build.sh']' returned non-zero exit status 2. -# Last 100 lines of the build log. diff --git a/recipes/intarna/meta.yaml b/recipes/intarna/meta.yaml index bb6a0cf472278..2fd80c6850890 100644 --- a/recipes/intarna/meta.yaml +++ b/recipes/intarna/meta.yaml @@ -12,7 +12,7 @@ about: summary: Efficient RNA-RNA interaction prediction incorporating seeding and accessibility of interacting sites build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('intarna', max_pin="x.x") }} diff --git a/recipes/iow/meta.yaml b/recipes/iow/meta.yaml index 22163552ec6cb..4fd7daed8d33f 100644 --- a/recipes/iow/meta.yaml +++ b/recipes/iow/meta.yaml @@ -10,8 +10,7 @@ source: sha256: 6b3ddb08f7ec1dec265de4a0f6025c7a4c81df5aa613f3ead5633073b0fe2271 build: - number: 4 - skip: True # [py2k] + number: 5 run_exports: - {{ pin_subpackage('iow', max_pin='x') }} diff --git a/recipes/iqtree/build_failure.linux-aarch64.yaml b/recipes/iqtree/build_failure.linux-aarch64.yaml new file mode 100644 index 0000000000000..62bdc59237ce4 --- /dev/null +++ b/recipes/iqtree/build_failure.linux-aarch64.yaml @@ -0,0 +1,50 @@ +recipe_sha: 37f65602f26dfa4a1fc885af1933889624c1c62af9b364292dcd0b96cdc18a81 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +reason: This recipe caused CircleCI builder to become unresponsive during bulk builds. Needs PR to investigate +category: CI unresponsive +log: |- + 16:08:41 [32mBIOCONDA INFO [0m (OUT) [ 41%] Built target whtest [0m + 16:08:41 [32mBIOCONDA INFO [0m (OUT) [ 41%] Building CXX object vectorclass/CMakeFiles/vectorclass.dir/instrset_detect.cpp.o [0m + 16:08:42 [32mBIOCONDA INFO [0m (OUT) [ 41%] Linking CXX static library libvectorclass.a [0m + 16:08:42 [32mBIOCONDA INFO [0m (OUT) [ 41%] Built target vectorclass [0m + 16:08:42 [32mBIOCONDA INFO [0m (OUT) [ 41%] Building CXX object model/CMakeFiles/model.dir/modelmarkov.cpp.o [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) In file included from /opt/conda/conda-bld/iqtree_1718208277480/work/ncl/nxsdefs.h:49, [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/iqtree_1718208277480/work/ncl/ncl.h:90, [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/iqtree_1718208277480/work/tree/node.h:37, [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/iqtree_1718208277480/work/tree/mtree.h:23, [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/iqtree_1718208277480/work/tree/phylotree.h:36, [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/iqtree_1718208277480/work/model/modelmarkov.h:23, [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/iqtree_1718208277480/work/model/modelmarkov.cpp:20: [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/iqtree_1718208277480/work/ncl/nxsstring.h:177:17: warning: 'template struct std::binary_function' is deprecated [-Wdeprecated-declarations] [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) 177 | : public std::binary_function [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) | ^~~~~~~~~~~~~~~ [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) In file included from /opt/conda/conda-bld/iqtree_1718208277480/_build_env/aarch64-conda-linux-gnu/include/c++/12.3.0/bits/refwrap.h:39, [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/iqtree_1718208277480/_build_env/aarch64-conda-linux-gnu/include/c++/12.3.0/vector:66, [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/iqtree_1718208277480/work/tree/node.h:25: [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/iqtree_1718208277480/_build_env/aarch64-conda-linux-gnu/include/c++/12.3.0/bits/stl_function.h:131:12: note: declared here [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) 131 | struct binary_function [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) | ^~~~~~~~~~~~~~~ [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/iqtree_1718208277480/work/model/modelmarkov.h:146:45: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated] [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) 146 | virtual void readRates(istream &in) throw(const char*, string); [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) | ^~~~~ [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/iqtree_1718208277480/work/model/modelmarkov.h:153:44: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated] [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) 153 | virtual void readRates(string str) throw(const char*); [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) | ^~~~~ [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/iqtree_1718208277480/work/model/modelmarkov.h:160:49: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated] [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) 160 | virtual void readStateFreq(istream &in) throw(const char*); [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) | ^~~~~ [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/iqtree_1718208277480/work/model/modelmarkov.h:167:48: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated] [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) 167 | virtual void readStateFreq(string str) throw(const char*); [0m + 16:08:43 [32mBIOCONDA INFO [0m (OUT) | ^~~~~ [0m + 16:08:46 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/iqtree_1718208277480/work/model/modelmarkov.cpp:1634:42: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated] [0m + 16:08:46 [32mBIOCONDA INFO [0m (OUT) 1634 | void ModelMarkov::readRates(istream &in) throw(const char*, string) { [0m + 16:08:46 [32mBIOCONDA INFO [0m (OUT) | ^~~~~ [0m + 16:08:46 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/iqtree_1718208277480/work/model/modelmarkov.cpp:1699:41: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated] [0m + 16:08:46 [32mBIOCONDA INFO [0m (OUT) 1699 | void ModelMarkov::readRates(string str) throw(const char*) { [0m + 16:08:46 [32mBIOCONDA INFO [0m (OUT) | ^~~~~ [0m + 16:08:46 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/iqtree_1718208277480/work/model/modelmarkov.cpp:1736:46: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated] [0m + 16:08:46 [32mBIOCONDA INFO [0m (OUT) 1736 | void ModelMarkov::readStateFreq(istream &in) throw(const char*) { [0m + 16:08:46 [32mBIOCONDA INFO [0m (OUT) | ^~~~~ [0m + 16:08:46 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/iqtree_1718208277480/work/model/modelmarkov.cpp:1758:45: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated] [0m + 16:08:46 [32mBIOCONDA INFO [0m (OUT) 1758 | void ModelMarkov::readStateFreq(string str) throw(const char*) { [0m + 16:08:46 [32mBIOCONDA INFO [0m (OUT) | ^~~~~ [0m diff --git a/recipes/iqtree/meta.yaml b/recipes/iqtree/meta.yaml index b6d927a1d3346..82dbbe3b9fc43 100644 --- a/recipes/iqtree/meta.yaml +++ b/recipes/iqtree/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version | replace("-", "_") }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('iqtree', max_pin="x") }} diff --git a/recipes/isospecpy/build_failure.osx-64.yaml b/recipes/isospecpy/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..14a7001284e66 --- /dev/null +++ b/recipes/isospecpy/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: e22cb32401e01937fc9b01b36eabc64265850c69f2613a0460aed9a06c4825cd # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/isospecpy_1717510144117/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/isospecpy_1717510144117/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/isospecpy_1717510144117/work + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/isospecpy-2.2.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/isospecpy_1717510144117/work/conda_build.sh']' returned non-zero exit status 1. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/isospecpy-2.2.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/isospecpy-2.2.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/isospecpy-2.2.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + Using pip 24.0 from $PREFIX/lib/python3.8/site-packages/pip (python 3.8) + Non-user install because user site-packages disabled + Ignoring indexes: https://pypi.org/simple + Created temporary directory: /private/tmp/pip-build-tracker-jwr7tzd6 + Initialized build tracking at /private/tmp/pip-build-tracker-jwr7tzd6 + Created build tracker: /private/tmp/pip-build-tracker-jwr7tzd6 + Entered build tracker: /private/tmp/pip-build-tracker-jwr7tzd6 + Created temporary directory: /private/tmp/pip-install-v7o3ri7s + Created temporary directory: /private/tmp/pip-ephem-wheel-cache-nmlib6qa + Processing $SRC_DIR + Added file://$SRC_DIR to build tracker '/private/tmp/pip-build-tracker-jwr7tzd6' + Running setup.py (path:$SRC_DIR/setup.py) egg_info for package from file://$SRC_DIR + Created temporary directory: /private/tmp/pip-pip-egg-info-hb_xlbm2 + Preparing metadata (setup.py): started + Preparing metadata (setup.py): finished with status 'done' + Source in $SRC_DIR has version 2.2.2, which satisfies requirement IsoSpecPy==2.2.2 from file://$SRC_DIR + Removed IsoSpecPy==2.2.2 from file://$SRC_DIR from build tracker '/private/tmp/pip-build-tracker-jwr7tzd6' + Created temporary directory: /private/tmp/pip-unpack-2znkqc52 + Building wheels for collected packages: IsoSpecPy + Created temporary directory: /private/tmp/pip-wheel-4twqti9t + Building wheel for IsoSpecPy (setup.py): started + Destination directory: /private/tmp/pip-wheel-4twqti9t + Building wheel for IsoSpecPy (setup.py): finished with status 'error' + Running setup.py clean for IsoSpecPy + Failed to build IsoSpecPy + Exception information: + Traceback (most recent call last): + File "$PREFIX/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper + status = run_func(*args) + File "$PREFIX/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper + return func(self, options, args) + File "$PREFIX/lib/python3.8/site-packages/pip/_internal/commands/install.py", line 429, in run + raise InstallationError( + pip._internal.exceptions.InstallationError: Could not build wheels for IsoSpecPy, which is required to install pyproject.toml-based projects + Removed build tracker: '/private/tmp/pip-build-tracker-jwr7tzd6' +# Last 100 lines of the build log. diff --git a/recipes/isospecpy/meta.yaml b/recipes/isospecpy/meta.yaml index a162dafa99b55..aacde7c6a4bd8 100644 --- a/recipes/isospecpy/meta.yaml +++ b/recipes/isospecpy/meta.yaml @@ -11,7 +11,7 @@ source: build: script: {{ PYTHON }} -m pip install . -vv - number: 0 + number: 1 run_exports: - {{ pin_subpackage('isospecpy', max_pin="x.x") }} diff --git a/recipes/jbrowse2/meta.yaml b/recipes/jbrowse2/meta.yaml index b35f047da22c4..09f519b1c7289 100644 --- a/recipes/jbrowse2/meta.yaml +++ b/recipes/jbrowse2/meta.yaml @@ -11,7 +11,7 @@ source: build: noarch: generic - number: 0 + number: 1 run_exports: - {{ pin_subpackage('jbrowse2', max_pin="x") }} diff --git a/recipes/jcvi/build_failure.linux-64.yaml b/recipes/jcvi/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..c3457586df65b --- /dev/null +++ b/recipes/jcvi/build_failure.linux-64.yaml @@ -0,0 +1,5 @@ +recipe_sha: fbf8e1cafe25406af0b1b8bb6f03a61dd421c6bc2369eb24e8388c87db37a654 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +reason: |- + The bulk GitHub Actions runner ran out of disk space. Try in a PR. +category: disk space diff --git a/recipes/jcvi/build_failure.linux-aarch64.yaml b/recipes/jcvi/build_failure.linux-aarch64.yaml new file mode 100644 index 0000000000000..a208965a7c599 --- /dev/null +++ b/recipes/jcvi/build_failure.linux-aarch64.yaml @@ -0,0 +1,34 @@ +recipe_sha: fbf8e1cafe25406af0b1b8bb6f03a61dd421c6bc2369eb24e8388c87db37a654 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: disk space +log: |- + 13:37:19 [32mBIOCONDA INFO [0m (OUT) xorg-xextproto: 7.3.0-h2a766a3_1003 conda-forge [0m + 13:37:19 [32mBIOCONDA INFO [0m (OUT) xorg-xf86vidmodeproto: 2.3.1-hf897c2e_1002 conda-forge [0m + 13:37:19 [32mBIOCONDA INFO [0m (OUT) xorg-xproto: 7.0.31-h3557bc0_1007 conda-forge [0m + 13:37:19 [32mBIOCONDA INFO [0m (OUT) xz: 5.2.6-h9cdd2b7_0 conda-forge [0m + 13:37:19 [32mBIOCONDA INFO [0m (OUT) yaml: 0.2.5-hf897c2e_2 conda-forge [0m + 13:37:19 [32mBIOCONDA INFO [0m (OUT) zeromq: 4.3.5-h28faeed_4 conda-forge [0m + 13:37:19 [32mBIOCONDA INFO [0m (OUT) zipp: 3.19.2-pyhd8ed1ab_0 conda-forge [0m + 13:37:19 [32mBIOCONDA INFO [0m (OUT) zlib: 1.2.13-h68df207_6 conda-forge [0m + 13:37:19 [32mBIOCONDA INFO [0m (OUT) zstd: 1.5.6-h02f22dd_0 conda-forge [0m + 13:37:19 [32mBIOCONDA INFO [0m (OUT) [0m + .13:37:29 [32mBIOCONDA INFO [0m (OUT) Preparing transaction: ...working... done [0m + 13:37:38 [32mBIOCONDA INFO [0m (OUT) Verifying transaction: ...working... [0m + 13:37:38 [32mBIOCONDA INFO [0m (OUT) ClobberWarning: This transaction has incompatible packages due to a shared path. [0m + 13:37:38 [32mBIOCONDA INFO [0m (OUT) packages: conda-forge/linux-aarch64::mysql-connector-c-6.1.11-h8945da3_1008, conda-forge/linux-aarch64::mysql-libs-8.3.0-hf629957_4 [0m + 13:37:38 [32mBIOCONDA INFO [0m (OUT) path: 'lib/libmysqlclient.so' [0m + 13:37:38 [32mBIOCONDA INFO [0m (OUT) [0m + 13:37:38 [32mBIOCONDA INFO [0m (OUT) [0m + 13:37:38 [32mBIOCONDA INFO [0m (OUT) [0m + 13:37:38 [32mBIOCONDA INFO [0m (OUT) done [0m + 13:37:39 [32mBIOCONDA INFO [0m (OUT) Executing transaction: ...working... [0m + 13:37:39 [32mBIOCONDA INFO [0m (OUT) ClobberWarning: Conda was asked to clobber an existing path. [0m + 13:37:39 [32mBIOCONDA INFO [0m (OUT) source path: /opt/conda/pkgs/mysql-libs-8.3.0-hf629957_4/lib/libmysqlclient.so [0m + 13:37:39 [32mBIOCONDA INFO [0m (OUT) target path: /opt/conda/conda-bld/jcvi_1718371630282/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/libmysqlclient.so [0m + 13:37:39 [32mBIOCONDA INFO [0m (OUT) [0m + 13:37:39 [32mBIOCONDA INFO [0m (OUT) [0m + 13:37:39 [32mBIOCONDA INFO [0m (OUT) [0m + 13:37:41 [32mBIOCONDA INFO [0m (OUT) [0m + 13:37:42 [32mBIOCONDA INFO [0m (OUT) [0m + /bin/bash: line 16: 3374 Killed bioconda-utils build recipes config.yml --worker-offset 4 --n-workers 6 --docker --mulled-test --docker-base-image "quay.io/bioconda/bioconda-utils-build-env-cos7-$(arch):${BIOCONDA_UTILS_TAG#v}" --anaconda-upload --record-build-failures --skiplist-leafs + Exited with code exit status 137 diff --git a/recipes/jcvi/meta.yaml b/recipes/jcvi/meta.yaml index 301670b1eff28..6410423cc8283 100644 --- a/recipes/jcvi/meta.yaml +++ b/recipes/jcvi/meta.yaml @@ -11,7 +11,7 @@ source: build: skip: True # [osx] - number: 0 + number: 1 script_env: - SETUPTOOLS_SCM_PRETEND_VERSION={{ version }} script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv diff --git a/recipes/k8/build_failure.linux-aarch64.yaml b/recipes/k8/build_failure.linux-aarch64.yaml new file mode 100644 index 0000000000000..0f24706a1a3cb --- /dev/null +++ b/recipes/k8/build_failure.linux-aarch64.yaml @@ -0,0 +1,4 @@ +recipe_sha: 751a182044682904040e221315daeec2db6609dd34a65b46fd328abc6bd46c37 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: CI unresponsive +reason: CPU at 100% for most of the build and timing out. Try in a separate PR. \ No newline at end of file diff --git a/recipes/k8/build_failure.osx-64.yaml b/recipes/k8/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..29e18e3dfa6d2 --- /dev/null +++ b/recipes/k8/build_failure.osx-64.yaml @@ -0,0 +1,106 @@ +recipe_sha: 751a182044682904040e221315daeec2db6609dd34a65b46fd328abc6bd46c37 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/tzfmt.o ../deps/icu-small/source/i18n/tzfmt.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/tzfmt.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/uregexc.o ../deps/icu-small/source/i18n/uregexc.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/uregexc.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/measfmt.o ../deps/icu-small/source/i18n/measfmt.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/measfmt.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/brktrans.o ../deps/icu-small/source/i18n/brktrans.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/brktrans.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/tmutamt.o ../deps/icu-small/source/i18n/tmutamt.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/tmutamt.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/coptccal.o ../deps/icu-small/source/i18n/coptccal.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/coptccal.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/wintzimpl.o ../deps/icu-small/source/i18n/wintzimpl.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/wintzimpl.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/indiancal.o ../deps/icu-small/source/i18n/indiancal.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/indiancal.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/number_mapper.o ../deps/icu-small/source/i18n/number_mapper.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/number_mapper.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/basictz.o ../deps/icu-small/source/i18n/basictz.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/basictz.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/region.o ../deps/icu-small/source/i18n/region.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/region.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/dayperiodrules.o ../deps/icu-small/source/i18n/dayperiodrules.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/dayperiodrules.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/csrmbcs.o ../deps/icu-small/source/i18n/csrmbcs.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/csrmbcs.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/units_data.o ../deps/icu-small/source/i18n/units_data.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/units_data.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/number_modifiers.o ../deps/icu-small/source/i18n/number_modifiers.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/number_modifiers.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/rbnf.o ../deps/icu-small/source/i18n/rbnf.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/rbnf.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/esctrn.o ../deps/icu-small/source/i18n/esctrn.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/esctrn.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/ucol_res.o ../deps/icu-small/source/i18n/ucol_res.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/ucol_res.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/regexcmp.o ../deps/icu-small/source/i18n/regexcmp.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/regexcmp.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/plurrule.o ../deps/icu-small/source/i18n/plurrule.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/plurrule.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/double-conversion-string-to-double.o ../deps/icu-small/source/i18n/double-conversion-string-to-double.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/double-conversion-string-to-double.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/string_segment.o ../deps/icu-small/source/i18n/string_segment.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/string_segment.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/csmatch.o ../deps/icu-small/source/i18n/csmatch.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/csmatch.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/simpletz.o ../deps/icu-small/source/i18n/simpletz.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/simpletz.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/formattedval_sbimpl.o ../deps/icu-small/source/i18n/formattedval_sbimpl.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/formattedval_sbimpl.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/compactdecimalformat.o ../deps/icu-small/source/i18n/compactdecimalformat.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/compactdecimalformat.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/tznames_impl.o ../deps/icu-small/source/i18n/tznames_impl.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/tznames_impl.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/numparse_currency.o ../deps/icu-small/source/i18n/numparse_currency.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/numparse_currency.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/fpositer.o ../deps/icu-small/source/i18n/fpositer.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/fpositer.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/nfrule.o ../deps/icu-small/source/i18n/nfrule.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/nfrule.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/numparse_compositions.o ../deps/icu-small/source/i18n/numparse_compositions.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/numparse_compositions.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/utmscale.o ../deps/icu-small/source/i18n/utmscale.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/utmscale.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/utrans.o ../deps/icu-small/source/i18n/utrans.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/utrans.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/listformatter.o ../deps/icu-small/source/i18n/listformatter.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/listformatter.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/curramt.o ../deps/icu-small/source/i18n/curramt.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/curramt.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/measunit.o ../deps/icu-small/source/i18n/measunit.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/measunit.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/buddhcal.o ../deps/icu-small/source/i18n/buddhcal.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/buddhcal.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/udateintervalformat.o ../deps/icu-small/source/i18n/udateintervalformat.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/udateintervalformat.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/uspoof_impl.o ../deps/icu-small/source/i18n/uspoof_impl.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/uspoof_impl.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/tzgnames.o ../deps/icu-small/source/i18n/tzgnames.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/tzgnames.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/rematch.o ../deps/icu-small/source/i18n/rematch.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/rematch.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/datefmt.o ../deps/icu-small/source/i18n/datefmt.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/datefmt.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/reldatefmt.o ../deps/icu-small/source/i18n/reldatefmt.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/reldatefmt.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/vtzone.o ../deps/icu-small/source/i18n/vtzone.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/vtzone.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/tztrans.o ../deps/icu-small/source/i18n/tztrans.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/tztrans.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/collationdatabuilder.o ../deps/icu-small/source/i18n/collationdatabuilder.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/collationdatabuilder.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/repattrn.o ../deps/icu-small/source/i18n/repattrn.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/repattrn.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/collationcompare.o ../deps/icu-small/source/i18n/collationcompare.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/collationcompare.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/rbt_data.o ../deps/icu-small/source/i18n/rbt_data.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/rbt_data.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/units_complexconverter.o ../deps/icu-small/source/i18n/units_complexconverter.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/units_complexconverter.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/csrecog.o ../deps/icu-small/source/i18n/csrecog.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/csrecog.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/number_patternstring.o ../deps/icu-small/source/i18n/number_patternstring.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/number_patternstring.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/udat.o ../deps/icu-small/source/i18n/udat.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/udat.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/tolowtrn.o ../deps/icu-small/source/i18n/tolowtrn.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/tolowtrn.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/numparse_impl.o ../deps/icu-small/source/i18n/numparse_impl.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/numparse_impl.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/unum.o ../deps/icu-small/source/i18n/unum.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/unum.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/rbtz.o ../deps/icu-small/source/i18n/rbtz.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/rbtz.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/uni2name.o ../deps/icu-small/source/i18n/uni2name.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/uni2name.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + touch $SRC_DIR/node-v18.19.1/out/Release/obj.target/tools/v8_gypfiles/v8_bigint.stamp + touch $SRC_DIR/node-v18.19.1/out/Release/obj.target/tools/v8_gypfiles/v8_heap_base.stamp + touch $SRC_DIR/node-v18.19.1/out/Release/obj.target/tools/v8_gypfiles/cppgc_base.stamp + touch 7c3e22e70fd7ad60278a99f71782417440fb78d1.intermediate + LD_LIBRARY_PATH=$SRC_DIR/node-v18.19.1/out/Release/lib.host:$SRC_DIR/node-v18.19.1/out/Release/lib.target:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd ../tools/v8_gypfiles; mkdir -p $SRC_DIR/node-v18.19.1/out/Release/obj/gen/inspector-generated-output-root/src/inspector/protocol $SRC_DIR/node-v18.19.1/out/Release/obj/gen/inspector-generated-output-root/include/inspector; /usr/local/bin/python3.11 ../../deps/v8/third_party/inspector_protocol/code_generator.py --jinja_dir ../../deps/v8/third_party --output_base "$SRC_DIR/node-v18.19.1/out/Release/obj/gen/inspector-generated-output-root/src/inspector" --config ../../deps/v8/src/inspector/inspector_protocol_config.json --config_value "protocol.path=../../deps/v8/include/js_protocol.pdl" --inspector_protocol_dir ../../deps/v8/third_party/inspector_protocol + In file included from ../deps/v8/src/libplatform/tracing/trace-writer.cc:14: + ../deps/v8/src/libplatform/tracing/recorder.h:17:10: fatal error: 'os/signpost.h' file not found + #include + ^~~~~~~~~~~~~~~ + 1 error generated. + make[1]: *** [tools/v8_gypfiles/v8_libplatform.target.mk:175: /opt/mambaforge/envs/bioconda/conda-bld/k8_1717953792721/work/node-v18.19.1/out/Release/obj.target/v8_libplatform/deps/v8/src/libplatform/tracing/trace-writer.o] Error 1 + make[1]: *** Waiting for unfinished jobs.... + make: *** [Makefile:134: node] Error 2 + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/v8_libplatform/deps/v8/src/libplatform/default-foreground-task-runner.o ../deps/v8/src/libplatform/default-foreground-task-runner.cc '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-DV8_GYP_BUILD' '-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DV8_TARGET_ARCH_X64' '-DV8_HAVE_TARGET_OS' '-DV8_TARGET_OS_MACOS' '-DV8_EMBEDDER_STRING="-node.28"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DV8_SHORT_BUILTIN_CALLS' '-DOBJECT_PRINT' '-DV8_INTL_SUPPORT' '-DV8_ATOMIC_OBJECT_FIELD_WRITES' '-DV8_ENABLE_LAZY_SOURCE_POSITIONS' '-DV8_USE_SIPHASH' '-DV8_SHARED_RO_HEAP' '-DV8_WIN64_UNWINDING_INFO' '-DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH' '-DV8_ENABLE_SYSTEM_INSTRUMENTATION' '-DV8_ENABLE_WEBASSEMBLY' '-DV8_ENABLE_JAVASCRIPT_PROMISE_HOOKS' '-DV8_ALLOCATION_FOLDING' '-DV8_ALLOCATION_SITE_TRACKING' '-DV8_SCRIPTORMODULE_LEGACY_LIFETIME' '-DV8_ADVANCED_BIGINT_ALGORITHMS' -I../deps/v8 -I../deps/v8/include -O3 -gdwarf-2 -fstrict-aliasing -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-rtti -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/v8_libplatform/deps/v8/src/libplatform/default-foreground-task-runner.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/v8_libplatform/deps/v8/src/libplatform/default-job.o ../deps/v8/src/libplatform/default-job.cc '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-DV8_GYP_BUILD' '-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DV8_TARGET_ARCH_X64' '-DV8_HAVE_TARGET_OS' '-DV8_TARGET_OS_MACOS' '-DV8_EMBEDDER_STRING="-node.28"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DV8_SHORT_BUILTIN_CALLS' '-DOBJECT_PRINT' '-DV8_INTL_SUPPORT' '-DV8_ATOMIC_OBJECT_FIELD_WRITES' '-DV8_ENABLE_LAZY_SOURCE_POSITIONS' '-DV8_USE_SIPHASH' '-DV8_SHARED_RO_HEAP' '-DV8_WIN64_UNWINDING_INFO' '-DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH' '-DV8_ENABLE_SYSTEM_INSTRUMENTATION' '-DV8_ENABLE_WEBASSEMBLY' '-DV8_ENABLE_JAVASCRIPT_PROMISE_HOOKS' '-DV8_ALLOCATION_FOLDING' '-DV8_ALLOCATION_SITE_TRACKING' '-DV8_SCRIPTORMODULE_LEGACY_LIFETIME' '-DV8_ADVANCED_BIGINT_ALGORITHMS' -I../deps/v8 -I../deps/v8/include -O3 -gdwarf-2 -fstrict-aliasing -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-rtti -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/v8_libplatform/deps/v8/src/libplatform/default-job.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/v8_libplatform/deps/v8/src/libplatform/default-platform.o ../deps/v8/src/libplatform/default-platform.cc '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-DV8_GYP_BUILD' '-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DV8_TARGET_ARCH_X64' '-DV8_HAVE_TARGET_OS' '-DV8_TARGET_OS_MACOS' '-DV8_EMBEDDER_STRING="-node.28"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DV8_SHORT_BUILTIN_CALLS' '-DOBJECT_PRINT' '-DV8_INTL_SUPPORT' '-DV8_ATOMIC_OBJECT_FIELD_WRITES' '-DV8_ENABLE_LAZY_SOURCE_POSITIONS' '-DV8_USE_SIPHASH' '-DV8_SHARED_RO_HEAP' '-DV8_WIN64_UNWINDING_INFO' '-DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH' '-DV8_ENABLE_SYSTEM_INSTRUMENTATION' '-DV8_ENABLE_WEBASSEMBLY' '-DV8_ENABLE_JAVASCRIPT_PROMISE_HOOKS' '-DV8_ALLOCATION_FOLDING' '-DV8_ALLOCATION_SITE_TRACKING' '-DV8_SCRIPTORMODULE_LEGACY_LIFETIME' '-DV8_ADVANCED_BIGINT_ALGORITHMS' -I../deps/v8 -I../deps/v8/include -O3 -gdwarf-2 -fstrict-aliasing -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-rtti -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/v8_libplatform/deps/v8/src/libplatform/default-platform.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/k8_1717953792721/work/conda_build.sh']' returned non-zero exit status 2. + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/v8_libplatform/deps/v8/src/libplatform/default-worker-threads-task-runner.o ../deps/v8/src/libplatform/default-worker-threads-task-runner.cc '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-DV8_GYP_BUILD' '-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DV8_TARGET_ARCH_X64' '-DV8_HAVE_TARGET_OS' '-DV8_TARGET_OS_MACOS' '-DV8_EMBEDDER_STRING="-node.28"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DV8_SHORT_BUILTIN_CALLS' '-DOBJECT_PRINT' '-DV8_INTL_SUPPORT' '-DV8_ATOMIC_OBJECT_FIELD_WRITES' '-DV8_ENABLE_LAZY_SOURCE_POSITIONS' '-DV8_USE_SIPHASH' '-DV8_SHARED_RO_HEAP' '-DV8_WIN64_UNWINDING_INFO' '-DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH' '-DV8_ENABLE_SYSTEM_INSTRUMENTATION' '-DV8_ENABLE_WEBASSEMBLY' '-DV8_ENABLE_JAVASCRIPT_PROMISE_HOOKS' '-DV8_ALLOCATION_FOLDING' '-DV8_ALLOCATION_SITE_TRACKING' '-DV8_SCRIPTORMODULE_LEGACY_LIFETIME' '-DV8_ADVANCED_BIGINT_ALGORITHMS' -I../deps/v8 -I../deps/v8/include -O3 -gdwarf-2 -fstrict-aliasing -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-rtti -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/v8_libplatform/deps/v8/src/libplatform/default-worker-threads-task-runner.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/v8_libplatform/deps/v8/src/libplatform/delayed-task-queue.o ../deps/v8/src/libplatform/delayed-task-queue.cc '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-DV8_GYP_BUILD' '-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DV8_TARGET_ARCH_X64' '-DV8_HAVE_TARGET_OS' '-DV8_TARGET_OS_MACOS' '-DV8_EMBEDDER_STRING="-node.28"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DV8_SHORT_BUILTIN_CALLS' '-DOBJECT_PRINT' '-DV8_INTL_SUPPORT' '-DV8_ATOMIC_OBJECT_FIELD_WRITES' '-DV8_ENABLE_LAZY_SOURCE_POSITIONS' '-DV8_USE_SIPHASH' '-DV8_SHARED_RO_HEAP' '-DV8_WIN64_UNWINDING_INFO' '-DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH' '-DV8_ENABLE_SYSTEM_INSTRUMENTATION' '-DV8_ENABLE_WEBASSEMBLY' '-DV8_ENABLE_JAVASCRIPT_PROMISE_HOOKS' '-DV8_ALLOCATION_FOLDING' '-DV8_ALLOCATION_SITE_TRACKING' '-DV8_SCRIPTORMODULE_LEGACY_LIFETIME' '-DV8_ADVANCED_BIGINT_ALGORITHMS' -I../deps/v8 -I../deps/v8/include -O3 -gdwarf-2 -fstrict-aliasing -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-rtti -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/v8_libplatform/deps/v8/src/libplatform/delayed-task-queue.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/v8_libplatform/deps/v8/src/libplatform/task-queue.o ../deps/v8/src/libplatform/task-queue.cc '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-DV8_GYP_BUILD' '-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DV8_TARGET_ARCH_X64' '-DV8_HAVE_TARGET_OS' '-DV8_TARGET_OS_MACOS' '-DV8_EMBEDDER_STRING="-node.28"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DV8_SHORT_BUILTIN_CALLS' '-DOBJECT_PRINT' '-DV8_INTL_SUPPORT' '-DV8_ATOMIC_OBJECT_FIELD_WRITES' '-DV8_ENABLE_LAZY_SOURCE_POSITIONS' '-DV8_USE_SIPHASH' '-DV8_SHARED_RO_HEAP' '-DV8_WIN64_UNWINDING_INFO' '-DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH' '-DV8_ENABLE_SYSTEM_INSTRUMENTATION' '-DV8_ENABLE_WEBASSEMBLY' '-DV8_ENABLE_JAVASCRIPT_PROMISE_HOOKS' '-DV8_ALLOCATION_FOLDING' '-DV8_ALLOCATION_SITE_TRACKING' '-DV8_SCRIPTORMODULE_LEGACY_LIFETIME' '-DV8_ADVANCED_BIGINT_ALGORITHMS' -I../deps/v8 -I../deps/v8/include -O3 -gdwarf-2 -fstrict-aliasing -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-rtti -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/v8_libplatform/deps/v8/src/libplatform/task-queue.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/v8_libplatform/deps/v8/src/libplatform/tracing/trace-buffer.o ../deps/v8/src/libplatform/tracing/trace-buffer.cc '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-DV8_GYP_BUILD' '-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DV8_TARGET_ARCH_X64' '-DV8_HAVE_TARGET_OS' '-DV8_TARGET_OS_MACOS' '-DV8_EMBEDDER_STRING="-node.28"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DV8_SHORT_BUILTIN_CALLS' '-DOBJECT_PRINT' '-DV8_INTL_SUPPORT' '-DV8_ATOMIC_OBJECT_FIELD_WRITES' '-DV8_ENABLE_LAZY_SOURCE_POSITIONS' '-DV8_USE_SIPHASH' '-DV8_SHARED_RO_HEAP' '-DV8_WIN64_UNWINDING_INFO' '-DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH' '-DV8_ENABLE_SYSTEM_INSTRUMENTATION' '-DV8_ENABLE_WEBASSEMBLY' '-DV8_ENABLE_JAVASCRIPT_PROMISE_HOOKS' '-DV8_ALLOCATION_FOLDING' '-DV8_ALLOCATION_SITE_TRACKING' '-DV8_SCRIPTORMODULE_LEGACY_LIFETIME' '-DV8_ADVANCED_BIGINT_ALGORITHMS' -I../deps/v8 -I../deps/v8/include -O3 -gdwarf-2 -fstrict-aliasing -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-rtti -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/v8_libplatform/deps/v8/src/libplatform/tracing/trace-buffer.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/v8_libplatform/deps/v8/src/libplatform/tracing/trace-config.o ../deps/v8/src/libplatform/tracing/trace-config.cc '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-DV8_GYP_BUILD' '-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DV8_TARGET_ARCH_X64' '-DV8_HAVE_TARGET_OS' '-DV8_TARGET_OS_MACOS' '-DV8_EMBEDDER_STRING="-node.28"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DV8_SHORT_BUILTIN_CALLS' '-DOBJECT_PRINT' '-DV8_INTL_SUPPORT' '-DV8_ATOMIC_OBJECT_FIELD_WRITES' '-DV8_ENABLE_LAZY_SOURCE_POSITIONS' '-DV8_USE_SIPHASH' '-DV8_SHARED_RO_HEAP' '-DV8_WIN64_UNWINDING_INFO' '-DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH' '-DV8_ENABLE_SYSTEM_INSTRUMENTATION' '-DV8_ENABLE_WEBASSEMBLY' '-DV8_ENABLE_JAVASCRIPT_PROMISE_HOOKS' '-DV8_ALLOCATION_FOLDING' '-DV8_ALLOCATION_SITE_TRACKING' '-DV8_SCRIPTORMODULE_LEGACY_LIFETIME' '-DV8_ADVANCED_BIGINT_ALGORITHMS' -I../deps/v8 -I../deps/v8/include -O3 -gdwarf-2 -fstrict-aliasing -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-rtti -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/v8_libplatform/deps/v8/src/libplatform/tracing/trace-config.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/v8_libplatform/deps/v8/src/libplatform/tracing/trace-object.o ../deps/v8/src/libplatform/tracing/trace-object.cc '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-DV8_GYP_BUILD' '-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DV8_TARGET_ARCH_X64' '-DV8_HAVE_TARGET_OS' '-DV8_TARGET_OS_MACOS' '-DV8_EMBEDDER_STRING="-node.28"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DV8_SHORT_BUILTIN_CALLS' '-DOBJECT_PRINT' '-DV8_INTL_SUPPORT' '-DV8_ATOMIC_OBJECT_FIELD_WRITES' '-DV8_ENABLE_LAZY_SOURCE_POSITIONS' '-DV8_USE_SIPHASH' '-DV8_SHARED_RO_HEAP' '-DV8_WIN64_UNWINDING_INFO' '-DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH' '-DV8_ENABLE_SYSTEM_INSTRUMENTATION' '-DV8_ENABLE_WEBASSEMBLY' '-DV8_ENABLE_JAVASCRIPT_PROMISE_HOOKS' '-DV8_ALLOCATION_FOLDING' '-DV8_ALLOCATION_SITE_TRACKING' '-DV8_SCRIPTORMODULE_LEGACY_LIFETIME' '-DV8_ADVANCED_BIGINT_ALGORITHMS' -I../deps/v8 -I../deps/v8/include -O3 -gdwarf-2 -fstrict-aliasing -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-rtti -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/v8_libplatform/deps/v8/src/libplatform/tracing/trace-object.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/v8_libplatform/deps/v8/src/libplatform/tracing/trace-writer.o ../deps/v8/src/libplatform/tracing/trace-writer.cc '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-DV8_GYP_BUILD' '-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DV8_TARGET_ARCH_X64' '-DV8_HAVE_TARGET_OS' '-DV8_TARGET_OS_MACOS' '-DV8_EMBEDDER_STRING="-node.28"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DV8_SHORT_BUILTIN_CALLS' '-DOBJECT_PRINT' '-DV8_INTL_SUPPORT' '-DV8_ATOMIC_OBJECT_FIELD_WRITES' '-DV8_ENABLE_LAZY_SOURCE_POSITIONS' '-DV8_USE_SIPHASH' '-DV8_SHARED_RO_HEAP' '-DV8_WIN64_UNWINDING_INFO' '-DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH' '-DV8_ENABLE_SYSTEM_INSTRUMENTATION' '-DV8_ENABLE_WEBASSEMBLY' '-DV8_ENABLE_JAVASCRIPT_PROMISE_HOOKS' '-DV8_ALLOCATION_FOLDING' '-DV8_ALLOCATION_SITE_TRACKING' '-DV8_SCRIPTORMODULE_LEGACY_LIFETIME' '-DV8_ADVANCED_BIGINT_ALGORITHMS' -I../deps/v8 -I../deps/v8/include -O3 -gdwarf-2 -fstrict-aliasing -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-rtti -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/v8_libplatform/deps/v8/src/libplatform/tracing/trace-writer.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/v8_libplatform/deps/v8/src/libplatform/tracing/tracing-controller.o ../deps/v8/src/libplatform/tracing/tracing-controller.cc '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-DV8_GYP_BUILD' '-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DV8_TARGET_ARCH_X64' '-DV8_HAVE_TARGET_OS' '-DV8_TARGET_OS_MACOS' '-DV8_EMBEDDER_STRING="-node.28"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DV8_SHORT_BUILTIN_CALLS' '-DOBJECT_PRINT' '-DV8_INTL_SUPPORT' '-DV8_ATOMIC_OBJECT_FIELD_WRITES' '-DV8_ENABLE_LAZY_SOURCE_POSITIONS' '-DV8_USE_SIPHASH' '-DV8_SHARED_RO_HEAP' '-DV8_WIN64_UNWINDING_INFO' '-DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH' '-DV8_ENABLE_SYSTEM_INSTRUMENTATION' '-DV8_ENABLE_WEBASSEMBLY' '-DV8_ENABLE_JAVASCRIPT_PROMISE_HOOKS' '-DV8_ALLOCATION_FOLDING' '-DV8_ALLOCATION_SITE_TRACKING' '-DV8_SCRIPTORMODULE_LEGACY_LIFETIME' '-DV8_ADVANCED_BIGINT_ALGORITHMS' -I../deps/v8 -I../deps/v8/include -O3 -gdwarf-2 -fstrict-aliasing -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-rtti -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/v8_libplatform/deps/v8/src/libplatform/tracing/tracing-controller.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + x86_64-apple-darwin13.4.0-clang -o $SRC_DIR/node-v18.19.1/out/Release/obj.target/v8_libplatform/deps/v8/src/libplatform/worker-thread.o ../deps/v8/src/libplatform/worker-thread.cc '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-DV8_GYP_BUILD' '-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DV8_TARGET_ARCH_X64' '-DV8_HAVE_TARGET_OS' '-DV8_TARGET_OS_MACOS' '-DV8_EMBEDDER_STRING="-node.28"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DV8_SHORT_BUILTIN_CALLS' '-DOBJECT_PRINT' '-DV8_INTL_SUPPORT' '-DV8_ATOMIC_OBJECT_FIELD_WRITES' '-DV8_ENABLE_LAZY_SOURCE_POSITIONS' '-DV8_USE_SIPHASH' '-DV8_SHARED_RO_HEAP' '-DV8_WIN64_UNWINDING_INFO' '-DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH' '-DV8_ENABLE_SYSTEM_INSTRUMENTATION' '-DV8_ENABLE_WEBASSEMBLY' '-DV8_ENABLE_JAVASCRIPT_PROMISE_HOOKS' '-DV8_ALLOCATION_FOLDING' '-DV8_ALLOCATION_SITE_TRACKING' '-DV8_SCRIPTORMODULE_LEGACY_LIFETIME' '-DV8_ADVANCED_BIGINT_ALGORITHMS' -I../deps/v8 -I../deps/v8/include -O3 -gdwarf-2 -fstrict-aliasing -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu17 -stdlib=libc -fno-rtti -fno-exceptions -fno-strict-aliasing -MMD -MF $SRC_DIR/node-v18.19.1/out/Release/.deps/$SRC_DIR/node-v18.19.1/out/Release/obj.target/v8_libplatform/deps/v8/src/libplatform/worker-thread.o.d.raw -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/k8-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c + rm 7c3e22e70fd7ad60278a99f71782417440fb78d1.intermediate +# Last 100 lines of the build log. +category: |- + compiler error diff --git a/recipes/k8/meta.yaml b/recipes/k8/meta.yaml index cc03193f31fce..bd8884f37dc2f 100644 --- a/recipes/k8/meta.yaml +++ b/recipes/k8/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 4157aa86066eb0a7874de194893c4544ac772d009cc1148377c9c346f9fc6d07 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('k8', max_pin="x") }} diff --git a/recipes/kallisto/meta.yaml b/recipes/kallisto/meta.yaml index 44bbf45c4ae97..3ad6e31fead1b 100644 --- a/recipes/kallisto/meta.yaml +++ b/recipes/kallisto/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 030752bab3b0e33cd3f23f6d8feddd74194e5513532ffbf23519e84db2a86d34 build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('kallisto', max_pin="x.x") }} @@ -52,4 +52,4 @@ extra: skip-lints: - missing_tests additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/kart/build_failure.osx-64.yaml b/recipes/kart/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..2b69210bd38f2 --- /dev/null +++ b/recipes/kart/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 34d5591189ba4b0ec2521b259cd4776a6b46131fe3acb420d156ee4cd35ec170 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + $SRC_DIR/src/BWT_Index $SRC_DIR + x86_64-apple-darwin13.4.0-clang -c -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix utils.c -o utils.o + x86_64-apple-darwin13.4.0-clang -c -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix bwt.c -o bwt.o + x86_64-apple-darwin13.4.0-clang -c -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix bntseq.c -o bntseq.o + x86_64-apple-darwin13.4.0-clang -c -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix QSufSort.c -o QSufSort.o + x86_64-apple-darwin13.4.0-clang -c -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix bwt_gen.c -o bwt_gen.o + x86_64-apple-darwin13.4.0-clang -c -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix bwtindex.c -o bwtindex.o + ar -csru libbwa.a utils.o bwt.o bntseq.o QSufSort.o bwt_gen.o bwtindex.o + x86_64-apple-darwin13.4.0-clang -c -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix main.c -o main.o + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix main.o -o bwt_index -L. -lbwa -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -lm -lz + $SRC_DIR + $SRC_DIR/src/htslib $SRC_DIR + echo '/* Default config.h generated by Makefile */' > config.h + echo '#define HAVE_LIBBZ2 1' >> config.h + echo '#define HAVE_LIBLZMA 1' >> config.h + echo '#define HAVE_FSEEKO 1' >> config.h + echo '#define HAVE_DRAND48 1' >> config.h + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o kfunc.o kfunc.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o knetfile.o knetfile.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o kstring.o kstring.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o bcf_sr_sort.o bcf_sr_sort.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o bgzf.o bgzf.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o errmod.o errmod.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o faidx.o faidx.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o hfile.o hfile.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o hfile_net.o hfile_net.c + echo '#define HTS_VERSION "1.5"' > version.h + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o hts.o hts.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o hts_os.o hts_os.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o md5.o md5.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o multipart.o multipart.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o probaln.o probaln.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o realn.o realn.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o regidx.o regidx.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o sam.o sam.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o synced_bcf_reader.o synced_bcf_reader.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o vcf_sweep.o vcf_sweep.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o tbx.o tbx.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o textutils.o textutils.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o thread_pool.o thread_pool.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o vcf.o vcf.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o vcfutils.o vcfutils.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/cram_codecs.o cram/cram_codecs.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/cram_decode.o cram/cram_decode.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/cram_encode.o cram/cram_encode.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/cram_external.o cram/cram_external.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/cram_index.o cram/cram_index.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/cram_io.o cram/cram_io.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/cram_samtools.o cram/cram_samtools.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/cram_stats.o cram/cram_stats.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/files.o cram/files.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/mFILE.o cram/mFILE.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/open_trace_file.o cram/open_trace_file.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/pooled_alloc.o cram/pooled_alloc.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/rANS_static.o cram/rANS_static.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/sam_header.o cram/sam_header.c + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -c -o cram/string_alloc.o cram/string_alloc.c + ar -rc libhts.a kfunc.o knetfile.o kstring.o bcf_sr_sort.o bgzf.o errmod.o faidx.o hfile.o hfile_net.o hts.o hts_os.o md5.o multipart.o probaln.o realn.o regidx.o sam.o synced_bcf_reader.o vcf_sweep.o tbx.o textutils.o thread_pool.o vcf.o vcfutils.o cram/cram_codecs.o cram/cram_decode.o cram/cram_encode.o cram/cram_external.o cram/cram_index.o cram/cram_io.o cram/cram_samtools.o cram/cram_stats.o cram/files.o cram/mFILE.o cram/open_trace_file.o cram/pooled_alloc.o cram/rANS_static.o cram/sam_header.o cram/string_alloc.o + ranlib libhts.a + $SRC_DIR + $SRC_DIR/src $SRC_DIR + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -D NDEBUG -O3 -m64 -msse4.1 -fPIC -c main.cpp + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/kart-2.5.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wall -D NDEBUG -O3 -m64 -msse4.1 -fPIC -c GetData.cpp +# Last 100 lines of the build log. diff --git a/recipes/kart/meta.yaml b/recipes/kart/meta.yaml index 50baa9b22dc19..e3a2a13cee4e8 100644 --- a/recipes/kart/meta.yaml +++ b/recipes/kart/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 3ec028e0c0bb24e11f1be92b0151e020bcd50b160fdf0f33d120b675f151365a build: - number: 4 + number: 5 requirements: build: diff --git a/recipes/kcounter/build_failure.linux-64.yaml b/recipes/kcounter/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..ca221592c130a --- /dev/null +++ b/recipes/kcounter/build_failure.linux-64.yaml @@ -0,0 +1,106 @@ +recipe_sha: c8a36d9ad38f8fbf901cc9e38a52f8856dd4ee9b582a7c12602214de281ea084 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + Downloaded pyo3 v0.13.2 + Downloaded libc v0.2.155 + Downloaded winapi v0.3.9 + Downloaded safemem v0.3.3 + Downloaded pyo3-macros-backend v0.13.2 + Downloaded pyo3-macros v0.13.2 + Downloaded inventory-impl v0.1.11 + Downloaded inventory v0.1.11 + Downloaded indoc v0.3.6 + Downloaded ghost v0.1.17 + Downloaded unindent v0.1.11 + Downloaded winapi-i686-pc-windows-gnu v0.4.0 + Downloaded unicode-ident v1.0.12 + Downloaded winapi-x86_64-pc-windows-gnu v0.4.0 + Downloaded syn v1.0.109 + Downloaded scopeguard v1.2.0 + Downloaded proc-macro2 v1.0.85 + Downloaded pkg-config v0.3.30 + Downloaded paste-impl v0.1.18 + Downloaded paste v0.1.18 + Downloaded parking_lot_core v0.8.6 + Downloaded parking_lot v0.11.2 + Downloaded needletail v0.4.1 + Downloaded miniz_oxide v0.7.3 + Downloaded memchr v2.7.2 + Downloaded lock_api v0.4.12 + Downloaded instant v0.1.13 + Downloaded flate2 v1.0.30 + Downloaded proc-macro-hack v0.5.20deprecated + Downloaded indoc-impl v0.3.6 + Downloaded crc32fast v1.4.2 + Downloaded bzip2-sys v0.1.111.0.8 + Downloaded bytecount v0.6.8 + Downloaded adler v1.0.2 + Downloaded bzip2 v0.4.4 + Downloaded buf_redux v0.8.4 + Downloaded autocfg v1.3.0 + Found pyo3 bindings + Found CPython 3.10 at /opt/conda/conda-bld/kcounter_1717952336381/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/bin/python + Compiling proc-macro2 v1.0.85 + Compiling unicode-ident v1.0.12 + Compiling syn v1.0.109 + Compiling libc v0.2.155 + Compiling cc v1.0.99 + error: linking with /opt/conda/conda-bld/kcounter_1717952336381/_build_env/bin/x86_64-conda-linux-gnu-cc failed: exit status: 1 + | + = note: LC_ALL="C" PATH="/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/self-contained:/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/self-contained:/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/self-contained:/home/conda/.cargo/bin:/opt/conda/conda-bld/kcounter_1717952336381/_build_env/bin:/opt/conda/conda-bld/kcounter_1717952336381/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/bin:/opt/conda/condabin:/opt/conda/conda-bld/kcounter_1717952336381/_build_env/bin:/opt/conda/conda-bld/kcounter_1717952336381/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/bin:/opt/conda/bin:/opt/conda/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/conda/bin" VSLANG="1033" "/opt/conda/conda-bld/kcounter_1717952336381/_build_env/bin/x86_64-conda-linux-gnu-cc" "-m64" "/tmp/rustcHGtoJS/symbols.o" "/opt/conda/conda-bld/kcounter_1717952336381/work/target/release/build/proc-macro2-f24ef631c5c4453c/build_script_build-f24ef631c5c4453c.build_script_build.ac3926a2cabd960f-cgu.0.rcgu.o" "/opt/conda/conda-bld/kcounter_1717952336381/work/target/release/build/proc-macro2-f24ef631c5c4453c/build_script_build-f24ef631c5c4453c.build_script_build.ac3926a2cabd960f-cgu.1.rcgu.o" "/opt/conda/conda-bld/kcounter_1717952336381/work/target/release/build/proc-macro2-f24ef631c5c4453c/build_script_build-f24ef631c5c4453c.974siq1idrtwlzpe4b7fazd69.rcgu.o" "-Wl,--as-needed" "-L" "/opt/conda/conda-bld/kcounter_1717952336381/work/target/release/deps" "-L" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-d46578f9a4470f27.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-9ff13545d1688b3c.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-98f5e78f871c5595.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-f3d3451767410a17.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-16717cdb08dfbef5.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-58e3f8995df4edb4.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-2caea079085a58a2.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-314a4689716cb02e.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-5727477b0a78105a.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-7e555563aa211118.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-d9ed943652059c0d.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-ee5b5774583426df.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-c3e1f40644ffc9b8.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-e8bfe52be756260a.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-7b90a2705bcf265b.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-b6892f3c52c68f01.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-f72b956e24d1de70.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-632ae0f28c5e55ff.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-e8b7e96e438f08f6.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-B/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-B/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-B/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-fuse-ld=lld" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/self-contained" "-o" "/opt/conda/conda-bld/kcounter_1717952336381/work/target/release/build/proc-macro2-f24ef631c5c4453c/build_script_build-f24ef631c5c4453c" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,--strip-debug" "-nodefaultlibs" + = note: rust-lld: error: undefined symbol: getauxval + >>> referenced by stack_overflow.rs:237 (library/std/src/sys/pal/unix/stack_overflow.rs:237) + >>> std-d46578f9a4470f27.std.a54bcd08e7411830-cgu.0.rcgu.o:(std::sys::pal::unix::stack_overflow::imp::make_handler::h648b6dd35f16ad81) in archive /home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-d46578f9a4470f27.rlib + >>> referenced by stack_overflow.rs:237 (library/std/src/sys/pal/unix/stack_overflow.rs:237) + >>> std-d46578f9a4470f27.std.a54bcd08e7411830-cgu.0.rcgu.o:(std::sys::sync::once::futex::Once::call::h3caf211f3255e91f) in archive /home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-d46578f9a4470f27.rlib + collect2: error: ld returned 1 exit status + + + error: linking with /opt/conda/conda-bld/kcounter_1717952336381/_build_env/bin/x86_64-conda-linux-gnu-cc failed: exit status: 1 + | + = note: LC_ALL="C" PATH="/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/self-contained:/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/self-contained:/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/self-contained:/home/conda/.cargo/bin:/opt/conda/conda-bld/kcounter_1717952336381/_build_env/bin:/opt/conda/conda-bld/kcounter_1717952336381/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/bin:/opt/conda/condabin:/opt/conda/conda-bld/kcounter_1717952336381/_build_env/bin:/opt/conda/conda-bld/kcounter_1717952336381/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/bin:/opt/conda/bin:/opt/conda/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/conda/bin" VSLANG="1033" "/opt/conda/conda-bld/kcounter_1717952336381/_build_env/bin/x86_64-conda-linux-gnu-cc" "-m64" "/tmp/rustc9LDuWe/symbols.o" "/opt/conda/conda-bld/kcounter_1717952336381/work/target/release/build/syn-e93e6735c750467a/build_script_build-e93e6735c750467a.build_script_build.5c22b9c1257522dd-cgu.0.rcgu.o" "/opt/conda/conda-bld/kcounter_1717952336381/work/target/release/build/syn-e93e6735c750467a/build_script_build-e93e6735c750467a.build_script_build.5c22b9c1257522dd-cgu.1.rcgu.o" "/opt/conda/conda-bld/kcounter_1717952336381/work/target/release/build/syn-e93e6735c750467a/build_script_build-e93e6735c750467a.build_script_build.5c22b9c1257522dd-cgu.2.rcgu.o" "/opt/conda/conda-bld/kcounter_1717952336381/work/target/release/build/syn-e93e6735c750467a/build_script_build-e93e6735c750467a.5peiopk4mwf6r9hjpzf6gfaed.rcgu.o" "-Wl,--as-needed" "-L" "/opt/conda/conda-bld/kcounter_1717952336381/work/target/release/deps" "-L" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-d46578f9a4470f27.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-9ff13545d1688b3c.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-98f5e78f871c5595.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-f3d3451767410a17.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-16717cdb08dfbef5.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-58e3f8995df4edb4.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-2caea079085a58a2.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-314a4689716cb02e.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-5727477b0a78105a.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-7e555563aa211118.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-d9ed943652059c0d.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-ee5b5774583426df.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-c3e1f40644ffc9b8.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-e8bfe52be756260a.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-7b90a2705bcf265b.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-b6892f3c52c68f01.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-f72b956e24d1de70.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-632ae0f28c5e55ff.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-e8b7e96e438f08f6.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-B/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-B/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-B/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-fuse-ld=lld" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/self-contained" "-o" "/opt/conda/conda-bld/kcounter_1717952336381/work/target/release/build/syn-e93e6735c750467a/build_script_build-e93e6735c750467a" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,--strip-debug" "-nodefaultlibs" + = note: rust-lld: error: undefined symbol: getauxval + >>> referenced by stack_overflow.rs:237 (library/std/src/sys/pal/unix/stack_overflow.rs:237) + >>> std-d46578f9a4470f27.std.a54bcd08e7411830-cgu.0.rcgu.o:(std::sys::pal::unix::stack_overflow::imp::make_handler::h648b6dd35f16ad81) in archive /home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-d46578f9a4470f27.rlib + >>> referenced by stack_overflow.rs:237 (library/std/src/sys/pal/unix/stack_overflow.rs:237) + >>> std-d46578f9a4470f27.std.a54bcd08e7411830-cgu.0.rcgu.o:(std::sys::sync::once::futex::Once::call::h3caf211f3255e91f) in archive /home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-d46578f9a4470f27.rlib + collect2: error: ld returned 1 exit status + + + error: could not compile proc-macro2 (build script) due to 1 previous error + warning: build failed, waiting for other jobs to finish... + error: could not compile syn (build script) due to 1 previous error + error: linking with /opt/conda/conda-bld/kcounter_1717952336381/_build_env/bin/x86_64-conda-linux-gnu-cc failed: exit status: 1 + | + = note: LC_ALL="C" PATH="/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/self-contained:/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/self-contained:/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/self-contained:/home/conda/.cargo/bin:/opt/conda/conda-bld/kcounter_1717952336381/_build_env/bin:/opt/conda/conda-bld/kcounter_1717952336381/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/bin:/opt/conda/condabin:/opt/conda/conda-bld/kcounter_1717952336381/_build_env/bin:/opt/conda/conda-bld/kcounter_1717952336381/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/bin:/opt/conda/bin:/opt/conda/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/conda/bin" VSLANG="1033" "/opt/conda/conda-bld/kcounter_1717952336381/_build_env/bin/x86_64-conda-linux-gnu-cc" "-m64" "/tmp/rustcSKCgs9/symbols.o" "/opt/conda/conda-bld/kcounter_1717952336381/work/target/release/build/libc-18a8ba3a588519b1/build_script_build-18a8ba3a588519b1.build_script_build.d1b5672f9cd6361d-cgu.0.rcgu.o" "/opt/conda/conda-bld/kcounter_1717952336381/work/target/release/build/libc-18a8ba3a588519b1/build_script_build-18a8ba3a588519b1.build_script_build.d1b5672f9cd6361d-cgu.1.rcgu.o" "/opt/conda/conda-bld/kcounter_1717952336381/work/target/release/build/libc-18a8ba3a588519b1/build_script_build-18a8ba3a588519b1.build_script_build.d1b5672f9cd6361d-cgu.2.rcgu.o" "/opt/conda/conda-bld/kcounter_1717952336381/work/target/release/build/libc-18a8ba3a588519b1/build_script_build-18a8ba3a588519b1.build_script_build.d1b5672f9cd6361d-cgu.3.rcgu.o" "/opt/conda/conda-bld/kcounter_1717952336381/work/target/release/build/libc-18a8ba3a588519b1/build_script_build-18a8ba3a588519b1.5mkujhylovfp71004z0q46836.rcgu.o" "-Wl,--as-needed" "-L" "/opt/conda/conda-bld/kcounter_1717952336381/work/target/release/deps" "-L" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-d46578f9a4470f27.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-9ff13545d1688b3c.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-98f5e78f871c5595.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-f3d3451767410a17.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-16717cdb08dfbef5.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-58e3f8995df4edb4.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-2caea079085a58a2.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-314a4689716cb02e.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-5727477b0a78105a.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-7e555563aa211118.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-d9ed943652059c0d.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-ee5b5774583426df.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-c3e1f40644ffc9b8.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-e8bfe52be756260a.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-7b90a2705bcf265b.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-b6892f3c52c68f01.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-f72b956e24d1de70.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-632ae0f28c5e55ff.rlib" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-e8b7e96e438f08f6.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-B/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-B/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-B/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-fuse-ld=lld" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/self-contained" "-o" "/opt/conda/conda-bld/kcounter_1717952336381/work/target/release/build/libc-18a8ba3a588519b1/build_script_build-18a8ba3a588519b1" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,--strip-debug" "-nodefaultlibs" + = note: rust-lld: error: undefined symbol: getauxval + >>> referenced by stack_overflow.rs:237 (library/std/src/sys/pal/unix/stack_overflow.rs:237) + >>> std-d46578f9a4470f27.std.a54bcd08e7411830-cgu.0.rcgu.o:(std::sys::pal::unix::stack_overflow::imp::make_handler::h648b6dd35f16ad81) in archive /home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-d46578f9a4470f27.rlib + >>> referenced by stack_overflow.rs:237 (library/std/src/sys/pal/unix/stack_overflow.rs:237) + >>> std-d46578f9a4470f27.std.a54bcd08e7411830-cgu.0.rcgu.o:(std::sys::sync::once::futex::Once::call::h3caf211f3255e91f) in archive /home/conda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-d46578f9a4470f27.rlib + collect2: error: ld returned 1 exit status + + + error: could not compile libc (build script) due to 1 previous error + maturin failed + Caused by: Failed to build a native library through cargo + Caused by: Cargo build finished with "exit status: 101": env -u CARGO PYO3_ENVIRONMENT_SIGNATURE="cpython-3.10-64bit" PYO3_PYTHON="/opt/conda/conda-bld/kcounter_1717952336381/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/bin/python" PYTHON_SYS_EXECUTABLE="/opt/conda/conda-bld/kcounter_1717952336381/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/bin/python" "cargo" "rustc" "--message-format" "json-render-diagnostics" "--manifest-path" "/opt/conda/conda-bld/kcounter_1717952336381/work/Cargo.toml" "--release" "--lib" + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/kcounter_1717952336381/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. +category: |- + compiler error diff --git a/recipes/kcounter/meta.yaml b/recipes/kcounter/meta.yaml index 005dad04c8f96..4f981cb3b477c 100644 --- a/recipes/kcounter/meta.yaml +++ b/recipes/kcounter/meta.yaml @@ -10,8 +10,9 @@ source: sha256: 7c837e29d62d1889379a8b6a3ad634a6aa5f0bc0459d5719597c87e046502528 build: - number: 4 - skip: True # [py27] + number: 5 + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} requirements: build: diff --git a/recipes/kfoots/meta.yaml b/recipes/kfoots/meta.yaml index c8eaf790029a8..48487b1f245b0 100644 --- a/recipes/kfoots/meta.yaml +++ b/recipes/kfoots/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 80aabb683626e18239d0294ba534d6f26d9d451fe31c5e7233072fbcd838425a build: - number: 9 + number: 10 rpaths: - lib/R/lib/ - lib/ diff --git a/recipes/kmasker/build_failure.linux-64.yaml b/recipes/kmasker/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..c77626a138b16 --- /dev/null +++ b/recipes/kmasker/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 7c1d814e77e5ab3f47a0e47d15c3e3200b47a2390c509eaf5c51f8469ca64d9c # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("jellyfish==2.2.10=h6bb024c_1")} + Encountered problems while solving: + - package jellyfish-2.2.10-h6bb024c_1 is excluded by strict repo priority + + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("jellyfish==2.2.10=h6bb024c_1")} + Encountered problems while solving: + - package jellyfish-2.2.10-h6bb024c_1 is excluded by strict repo priority + + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2308, in build + output_metas = expand_outputs([(m, need_source_download, need_reparse_in_env)]) + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 916, in expand_outputs + for output_dict, m in deepcopy(_m).get_output_metadata_set( + File "/opt/conda/lib/python3.10/site-packages/conda_build/metadata.py", line 2737, in get_output_metadata_set + conda_packages = finalize_outputs_pass( + File "/opt/conda/lib/python3.10/site-packages/conda_build/metadata.py", line 1095, in finalize_outputs_pass + fm = finalize_metadata( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 650, in finalize_metadata + build_unsat, host_unsat = add_upstream_pins( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 491, in add_upstream_pins + host_deps, host_unsat, extra_run_specs_from_host = _read_upstream_pin_files( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 444, in _read_upstream_pin_files + deps, precs, unsat = get_env_dependencies( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 156, in get_env_dependencies + precs = environ.get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("jellyfish==2.2.10=h6bb024c_1")} + Encountered problems while solving: + - package jellyfish-2.2.10-h6bb024c_1 is excluded by strict repo priority +# Last 100 lines of the build log. diff --git a/recipes/kmasker/build_failure.osx-64.yaml b/recipes/kmasker/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..6fe243f4ec3d9 --- /dev/null +++ b/recipes/kmasker/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 7c1d814e77e5ab3f47a0e47d15c3e3200b47a2390c509eaf5c51f8469ca64d9c # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("jellyfish==2.2.10=h2d50403_0")} + Encountered problems while solving: + - package jellyfish-2.2.10-h2d50403_0 is excluded by strict repo priority + + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("jellyfish==2.2.10=h2d50403_0")} + Encountered problems while solving: + - package jellyfish-2.2.10-h2d50403_0 is excluded by strict repo priority + + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2308, in build + output_metas = expand_outputs([(m, need_source_download, need_reparse_in_env)]) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 916, in expand_outputs + for output_dict, m in deepcopy(_m).get_output_metadata_set( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 2737, in get_output_metadata_set + conda_packages = finalize_outputs_pass( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 1095, in finalize_outputs_pass + fm = finalize_metadata( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 650, in finalize_metadata + build_unsat, host_unsat = add_upstream_pins( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 491, in add_upstream_pins + host_deps, host_unsat, extra_run_specs_from_host = _read_upstream_pin_files( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 444, in _read_upstream_pin_files + deps, precs, unsat = get_env_dependencies( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 156, in get_env_dependencies + precs = environ.get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("jellyfish==2.2.10=h2d50403_0")} + Encountered problems while solving: + - package jellyfish-2.2.10-h2d50403_0 is excluded by strict repo priority +# Last 100 lines of the build log. diff --git a/recipes/kmasker/meta.yaml b/recipes/kmasker/meta.yaml index 650caa7ffeb80..9a808a99a4c2f 100644 --- a/recipes/kmasker/meta.yaml +++ b/recipes/kmasker/meta.yaml @@ -11,7 +11,7 @@ source: build: skip: True # [py27] - number: 6 + number: 7 requirements: build: diff --git a/recipes/kmergenie/meta.yaml b/recipes/kmergenie/meta.yaml index 7a7414fb32fee..6726681de11b8 100644 --- a/recipes/kmergenie/meta.yaml +++ b/recipes/kmergenie/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 7 + number: 8 skip: True # [osx or py2k] source: diff --git a/recipes/krbalancing/meta.yaml b/recipes/krbalancing/meta.yaml index 5f1af39246169..aa3c4305aaffc 100644 --- a/recipes/krbalancing/meta.yaml +++ b/recipes/krbalancing/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 890dee5c98d2037a2d19ba1fc3f700744858e7b22c61b40c714629125e65f464 build: - number: 7 + number: 8 requirements: build: diff --git a/recipes/ksnp/meta.yaml b/recipes/ksnp/meta.yaml index 9ac3a668035c3..779b2287a50b2 100644 --- a/recipes/ksnp/meta.yaml +++ b/recipes/ksnp/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 78975c007919b12af7a61a27d66347228a43ea223d59e37aad5ce7ae691a0569 build: - number: 0 + number: 1 python: 3.7 run_exports: - {{ pin_subpackage("ksnp", max_pin="x") }} diff --git a/recipes/ldhelmet/meta.yaml b/recipes/ldhelmet/meta.yaml index 9c29ba2c2956c..394427b33ca4e 100644 --- a/recipes/ldhelmet/meta.yaml +++ b/recipes/ldhelmet/meta.yaml @@ -3,7 +3,7 @@ package: version: 1.10 build: - number: 6 + number: 7 skip: True # [osx] source: diff --git a/recipes/leehom/build_failure.linux-64.yaml b/recipes/leehom/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..066af506a2c8b --- /dev/null +++ b/recipes/leehom/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: f630e2d6b06be86ac058ec3cd9eef400cfee5b57be8c8238ca8a127dc460ed4e # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + _openmp_mutex: 4.5-2_gnu conda-forge + binutils_impl_linux-64: 2.40-ha1999f0_2 conda-forge + binutils_linux-64: 2.40-hdade7a5_3 conda-forge + gcc_impl_linux-64: 12.3.0-h58ffeeb_7 conda-forge + gcc_linux-64: 12.3.0-h6477408_3 conda-forge + gxx_impl_linux-64: 12.3.0-h2a574ab_7 conda-forge + gxx_linux-64: 12.3.0-h4a1b8e8_3 conda-forge + kernel-headers_linux-64: 2.6.32-he073ed8_17 conda-forge + ld_impl_linux-64: 2.40-hf3520f5_2 conda-forge + libgcc-devel_linux-64: 12.3.0-h0223996_107 conda-forge + libgcc-ng: 13.2.0-h77fa898_7 conda-forge + libgomp: 13.2.0-h77fa898_7 conda-forge + libsanitizer: 12.3.0-hb8811af_7 conda-forge + libstdcxx-devel_linux-64: 12.3.0-h0223996_107 conda-forge + libstdcxx-ng: 13.2.0-hc0a3c3a_7 conda-forge + make: 4.3-hd18ef5c_1 conda-forge + sysroot_linux-64: 2.12-he073ed8_17 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Source cache directory is: /opt/conda/conda-bld/src_cache + Downloading source to cache: 1.2.15_29a1aec5c1.tar.gz + Downloading https://github.com/grenaud/leehom/archive/1.2.15.tar.gz + Success + Extracting download + source tree in: /opt/conda/conda-bld/leehom_1717714536306/work + export PREFIX=/opt/conda/conda-bld/leehom_1717714536306/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh + export BUILD_PREFIX=/opt/conda/conda-bld/leehom_1717714536306/_build_env + export SRC_DIR=/opt/conda/conda-bld/leehom_1717714536306/work + INFO: activate-binutils_linux-64.sh made the following environmental changes: + ADDR2LINE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-addr2line + AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar + AS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-as + CXXFILT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cfilt + ELFEDIT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-elfedit + GPROF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gprof + LD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld + LD_GOLD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld.gold + NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-nm + OBJCOPY=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objcopy + OBJDUMP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objdump + RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib + READELF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-readelf + SIZE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-size + STRINGS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strings + STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip + INFO: activate-gcc_linux-64.sh made the following environmental changes: + BUILD=x86_64-conda-linux-gnu + CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/leehom-1.2.15 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr + CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot + CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu + CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu + CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/leehom-1.2.15 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + INFO: activate-gxx_linux-64.sh made the following environmental changes: + CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/leehom-1.2.15 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/leehom-1.2.15 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-g + make -C ../libgab + make[1]: *** No targets specified and no makefile found. Stop. + make[1]: Entering directory '$SRC_DIR/libgab' + make[1]: Leaving directory '$SRC_DIR/libgab' + make: *** [Makefile:66: /opt/conda/conda-bld/leehom_1717714536306/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/libgab//libgab.a] Error 2 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/leehom_1717714536306/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/leehom/meta.yaml b/recipes/leehom/meta.yaml index 1f18366537334..aba85e03221ae 100644 --- a/recipes/leehom/meta.yaml +++ b/recipes/leehom/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 29a1aec5c10d7929057e47b576e6b0c1257594768bd43db214b9f12b87e76873 build: - number: 6 + number: 7 skip: true # [osx] requirements: diff --git a/recipes/libcifpp/meta.yaml b/recipes/libcifpp/meta.yaml index 9bf132407346b..7b8ec21e655f2 100644 --- a/recipes/libcifpp/meta.yaml +++ b/recipes/libcifpp/meta.yaml @@ -12,7 +12,7 @@ source: build: skip: True # [osx] - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name|lower, max_pin="x") }} diff --git a/recipes/libgab/meta.yaml b/recipes/libgab/meta.yaml index 0c4a1d7b5c73a..cda514e4fd3d8 100644 --- a/recipes/libgab/meta.yaml +++ b/recipes/libgab/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 04bd27813e3c001f64d06bee4524502e99f0f80e4a0882ffcead8770b7b2a2da build: - number: 13 + number: 14 skip: True # [osx] run_exports: - {{ pin_subpackage('libgab', max_pin='x.x') }} diff --git a/recipes/libgtextutils/build_failure.osx-64.yaml b/recipes/libgtextutils/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..cc0830e0314a5 --- /dev/null +++ b/recipes/libgtextutils/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 8b9c4c8d6ccd3d6985a52343529c7bb537f1bf86ed4b7346ceaf38eb39d19990 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + configure: error: in /opt/mambaforge/envs/bioconda/conda-bld/libgtextutils_1717594491933/work': + configure: error: cannot run C compiled programs. + If you meant to cross compile, use --host'. + See config.log' for more details + Extracting download + Traceback (most recent call last): + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/libgtextutils/patch + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/libgtextutils/patch with args: + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + ['-Np0', '-i', '/tmp/tmpoqzoa0ap/patch.native', '--binary'] + Patch analysis gives: + [[ RA--D0LOVE ]] - [[ patch ]] + + Key: + + R :: Reversible A :: Applicable + Y :: Build-prefix patch in use M :: Minimal, non-amalgamated + D :: Dry-runnable N :: Patch level (1 is preferred) + L :: Patch level not-ambiguous O :: Patch applies without offsets + V :: Patch applies without fuzz E :: Patch applies without emitting to stderr + + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/libgtextutils_1717594491933/work + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/libgtextutils_1717594491933/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_ + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/libgtextutils_1717594491933/_build_env + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/libgtextutils_1717594491933/work/conda_build.sh']' returned non-zero exit status 1. + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/libgtextutils_1717594491933/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/libgtextutils-0.7 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/libgtextutils-0.7 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/libgtextutils-0.7 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/libgtextutils-0.7 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + checking for a BSD-compatible install... /usr/bin/install -c + checking whether build environment is sane... yes + checking for a thread-safe mkdir -p... config/install-sh -c -d + checking for gawk... no + checking for mawk... no + checking for nawk... no + checking for awk... awk + checking whether make sets $(MAKE)... yes + checking whether make supports nested variables... yes + checking for x86_64-apple-darwin13.4.0-gcc... x86_64-apple-darwin13.4.0-clang + checking whether the C compiler works... yes + checking for C compiler default output file name... a.out + checking for suffix of executables... +# Last 100 lines of the build log. diff --git a/recipes/libgtextutils/meta.yaml b/recipes/libgtextutils/meta.yaml index e5b3abc32c1f9..7305f1c72d85c 100644 --- a/recipes/libgtextutils/meta.yaml +++ b/recipes/libgtextutils/meta.yaml @@ -12,7 +12,7 @@ source: - patch build: - number: 12 + number: 13 run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} diff --git a/recipes/libmaus2/meta.yaml b/recipes/libmaus2/meta.yaml index 455532e4245a8..3d8c6738d991c 100644 --- a/recipes/libmaus2/meta.yaml +++ b/recipes/libmaus2/meta.yaml @@ -10,7 +10,7 @@ package: build: # There's some issue with clang skip: True # [osx] - number: 5 + number: 6 run_exports: - {{ pin_subpackage('libmaus2', max_pin='x.x') }} @@ -53,4 +53,4 @@ test: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/libmems/build_failure.linux-64.yaml b/recipes/libmems/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..ffca020981be2 --- /dev/null +++ b/recipes/libmems/build_failure.linux-64.yaml @@ -0,0 +1,106 @@ +recipe_sha: 284b65c3f737668433475ad2a25b5f21044babcbbe012767129f59dfce1fa436 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + checking dynamic linker characteristics... GNU/Linux ld.so + checking how to hardcode library paths into programs... immediate + checking whether stripping libraries is possible... yes + checking if libtool supports shared libraries... yes + checking whether to build shared libraries... yes + checking whether to build static libraries... yes + checking how to run the C preprocessor... $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -E + checking for ld used by $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c... $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld + checking if the linker ($BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld) is GNU ld... yes + checking whether the $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c linker ($BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld) supports shared libraries... yes + checking for $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c option to produce PIC... -fPIC -DPIC + checking if $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c PIC flag -fPIC -DPIC works... yes + checking if $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c static flag -static works... yes + checking if $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c supports -c -o file.o... yes + checking if $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c supports -c -o file.o... (cached) yes + checking whether the $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c linker ($BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld) supports shared libraries... yes + checking dynamic linker characteristics... (cached) GNU/Linux ld.so + checking how to hardcode library paths into programs... immediate + checking for special C compiler options needed for large files... no + checking for _FILE_OFFSET_BITS value needed for large files... no + checking for egrep... (cached) /usr/bin/grep -E + checking for Boost headers version >= 1.34.0... yes + checking for Boost's header version... 1_85 + checking whether the compiler implements namespaces... yes + configure: WARNING: could not figure out which toolset name to use for /opt/conda/conda-bld/libmems_1717952897705/_build_env/bin/x86_64-conda-linux-gnu-c + checking for the toolset name used by Boost for $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c... + checking for boost/system/error_code.hpp... yes + checking for the Boost system library... yes + checking for boost/filesystem/path.hpp... yes + checking for the Boost filesystem library... (cached) yes + checking for boost/program_options.hpp... yes + checking for the Boost program_options library... (cached) yes + checking for boost/iostreams/device/file_descriptor.hpp... yes + checking for the Boost iostreams library... (cached) yes + checking for x86_64-conda-linux-gnu-pkg-config... no + checking for pkg-config... /usr/bin/pkg-config + checking pkg-config is at least version 0.9.0... yes + checking for DEPS... yes + checking for sys/types.h... (cached) yes + checking for sys/aio.h... no + checking for aio.h... yes + checking for features.h... yes + checking for pthread_mutex_unlock in -lpthread... yes + checking for aio_write in -lrt... yes + checking for x86_64-conda-linux-gnu-doxygen... no + checking for doxygen... no + configure: WARNING: doxygen not found - will not generate any doxygen documentation + checking for x86_64-conda-linux-gnu-perl... no + checking for perl... $BUILD_PREFIX/bin/perl + checking for an ANSI C-conforming const... yes + checking for inline... inline + checking how to run the C preprocessor... $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + checking whether $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc needs -traditional... no + checking that generated files are newer than configure... done + configure: creating ./config.status + config.status: creating Makefile + config.status: creating libMems/Makefile + config.status: creating libMems-1.6.pc + config.status: creating config.h + config.status: executing depfiles commands + config.status: executing libtool commands + make all-recursive + make[1]: Entering directory '$SRC_DIR/trunk' + Making all in libMems + make[2]: Entering directory '$SRC_DIR/trunk/libMems' + /bin/sh ../libtool --tag=CXX --mode=compile $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -O2 -funroll-loops -fomit-frame-pointer -ftree-vectorize -I$PREFIX/include/libGenome-1.3 -I$PREFIX/include/libMUSCLE-3.7 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/libmems-1.6.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT RepeatHash.lo -MD -MP -MF .deps/RepeatHash.Tpo -c -o RepeatHash.lo RepeatHash.cpp + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -O2 -funroll-loops -fomit-frame-pointer -ftree-vectorize -I$PREFIX/include/libGenome-1.3 -I$PREFIX/include/libMUSCLE-3.7 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/libmems-1.6.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT RepeatHash.lo -MD -MP -MF .deps/RepeatHash.Tpo -c RepeatHash.cpp -fPIC -DPIC -o .libs/RepeatHash.o + In file included from ../libMems/MatchList.h:25, + from ../libMems/MatchFinder.h:18, + from ../libMems/MemHash.h:20, + from ../libMems/RepeatHash.h:16, + from RepeatHash.cpp:13: + ../libMems/Files.h: In function 'std::string CreateTempFileName(const std::string&)': + ../libMems/Files.h:82:20: error: 'class boost::filesystem::path' has no member named 'branch_path' + 82 | dir = path.branch_path().string(); + | ^~~~~~~~~~~ + ../libMems/Files.h:86:21: error: 'class boost::filesystem::path' has no member named 'leaf' + 86 | name = path.leaf().string(); + | ^~~~ + make[2]: *** [Makefile:790: RepeatHash.lo] Error 1 + make[2]: Leaving directory '$SRC_DIR/trunk/libMems' + make[1]: *** [Makefile:549: all-recursive] Error 1 + make[1]: Leaving directory '$SRC_DIR/trunk' + make: *** [Makefile:457: all] Error 2 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/libmems_1717952897705/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. +category: |- + compiler error diff --git a/recipes/libmems/meta.yaml b/recipes/libmems/meta.yaml index 24a44cc7e5128..70a1e4d2e6a84 100644 --- a/recipes/libmems/meta.yaml +++ b/recipes/libmems/meta.yaml @@ -6,7 +6,7 @@ package: build: skip: True # [osx] - number: 6 + number: 7 run_exports: - {{ pin_subpackage('libmems', max_pin='x.x') }} diff --git a/recipes/libsbml/build_failure.linux-64.yaml b/recipes/libsbml/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..7172757f203aa --- /dev/null +++ b/recipes/libsbml/build_failure.linux-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 11a10c25d366c5890bbb2c3d3c0f43403d43e7af7937559a8b3e620fc3593de8 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: compiler error +log: |2- + | ^~~~~~~~~~~~~~ + In file included from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/FunctionDefinition.h:136, + from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/Model.h:449, + from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/validator/constraints/UniqueVarsInRules.cpp:39: + /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/ListOf.h:111:27: warning: 'template struct std::unary_function' is deprecated [-Wdeprecated-declarations] + 111 | struct IdEq : public std::unary_function + | ^~~~~~~~~~~~~~ + In file included from /opt/conda/conda-bld/libsbml_1718134461495/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/string:48, + from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/Model.h:447: + /opt/conda/conda-bld/libsbml_1718134461495/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_function.h:117:12: note: declared here + 117 | struct unary_function + | ^~~~~~~~~~~~~~ + In file included from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/FunctionDefinition.h:136, + from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/Model.h:449, + from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/validator/constraints/UnitsBase.cpp:39: + /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/ListOf.h:111:27: warning: 'template struct std::unary_function' is deprecated [-Wdeprecated-declarations] + 111 | struct IdEq : public std::unary_function + | ^~~~~~~~~~~~~~ + In file included from /opt/conda/conda-bld/libsbml_1718134461495/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/string:48, + from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/Model.h:447: + /opt/conda/conda-bld/libsbml_1718134461495/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_function.h:117:12: note: declared here + 117 | struct unary_function + | ^~~~~~~~~~~~~~ + [ 95%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/compress/CompressCommon.cpp.o + [ 95%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/compress/InputDecompressor.cpp.o + [ 95%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/compress/bzfstream.cpp.o + [ 95%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/compress/OutputCompressor.cpp.o + In file included from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/FunctionDefinition.h:136, + from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/Model.h:449, + from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/validator/constraints/ValidCnUnitsValue.cpp:39: + /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/ListOf.h:111:27: warning: 'template struct std::unary_function' is deprecated [-Wdeprecated-declarations] + 111 | struct IdEq : public std::unary_function + | ^~~~~~~~~~~~~~ + In file included from /opt/conda/conda-bld/libsbml_1718134461495/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/string:48, + from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/Model.h:447: + /opt/conda/conda-bld/libsbml_1718134461495/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_function.h:117:12: note: declared here + 117 | struct unary_function + | ^~~~~~~~~~~~~~ + [ 95%] Building C object src/CMakeFiles/sbml-static.dir/sbml/compress/zip.c.o + [ 95%] Building C object src/CMakeFiles/sbml-static.dir/sbml/compress/unzip.c.o + [ 95%] Building C object src/CMakeFiles/sbml-static.dir/sbml/compress/ioapi.c.o + [ 96%] Building C object src/CMakeFiles/sbml-static.dir/sbml/compress/ioapi_mem.c.o + [ 96%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/compress/zfstream.cpp.o + [ 96%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/compress/zipfstream.cpp.o + [ 96%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLAttributes.cpp.o + [ 96%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLBuffer.cpp.o + [ 96%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLConstructorException.cpp.o + [ 96%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLError.cpp.o + [ 96%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLErrorLog.cpp.o + [ 97%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLLogOverride.cpp.o + /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/xml/XMLErrorLog.cpp:98:24: warning: 'template struct std::unary_function' is deprecated [-Wdeprecated-declarations] + 98 | struct Delete : public unary_function + | ^~~~~~~~~~~~~~ + In file included from /opt/conda/conda-bld/libsbml_1718134461495/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/functional:49, + from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/xml/XMLErrorLog.cpp:38: + /opt/conda/conda-bld/libsbml_1718134461495/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_function.h:117:12: note: declared here + 117 | struct unary_function + | ^~~~~~~~~~~~~~ + [ 97%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLFileBuffer.cpp.o + [ 97%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLHandler.cpp.o + [ 97%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLInputStream.cpp.o + [ 97%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLMemoryBuffer.cpp.o + [ 97%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLNamespaces.cpp.o + [ 97%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLNode.cpp.o + [ 97%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLOutputStream.cpp.o + [ 97%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLParser.cpp.o + [ 98%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLToken.cpp.o + [ 98%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLTokenizer.cpp.o + [ 98%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLTriple.cpp.o + [ 98%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/LibXMLAttributes.cpp.o + [ 98%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/LibXMLHandler.cpp.o + [ 98%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/LibXMLNamespaces.cpp.o + [ 98%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/LibXMLParser.cpp.o + [ 98%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/LibXMLTranscode.cpp.o + /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/xml/LibXMLParser.cpp: In member function 'virtual bool LibXMLParser::parseNext()': + /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/xml/LibXMLParser.cpp:422:46: error: invalid conversion from 'const xmlError*' {aka 'const _xmlError*'} to 'xmlErrorPtr' {aka '_xmlError*'} [-fpermissive] + 422 | xmlErrorPtr libxmlError = xmlGetLastError(); + | ~~~~~~~~~~~~~~~^~ + | | + | const xmlError* {aka const _xmlError*} + make[2]: *** [src/CMakeFiles/sbml-static.dir/build.make:6082: src/CMakeFiles/sbml-static.dir/sbml/xml/LibXMLParser.cpp.o] Error 1 + make[2]: *** Waiting for unfinished jobs.... + make[1]: *** [CMakeFiles/Makefile2:242: src/CMakeFiles/sbml-static.dir/all] Error 2 + make: *** [Makefile:156: all] Error 2 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/libsbml_1718134461495/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/libsbml/meta.yaml b/recipes/libsbml/meta.yaml index 79041e0cf4992..45ced1405a863 100644 --- a/recipes/libsbml/meta.yaml +++ b/recipes/libsbml/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 10 + number: 11 skip: True # [osx] run_exports: - {{ pin_subpackage('libsbml', max_pin='x.x') }} diff --git a/recipes/libshorah/build_failure.linux-64.yaml b/recipes/libshorah/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..82d0b55fc9beb --- /dev/null +++ b/recipes/libshorah/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 1bc6f9e5a2ff865812abcd49c965e3719fb09e5b10a68810cf29a4efc9f02fba # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + source tree in: /opt/conda/conda-bld/libshorah_1717958365326/work + export PREFIX=/opt/conda/conda-bld/libshorah_1717958365326/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla + export BUILD_PREFIX=/opt/conda/conda-bld/libshorah_1717958365326/_build_env + export SRC_DIR=/opt/conda/conda-bld/libshorah_1717958365326/work + INFO: activate-binutils_linux-64.sh made the following environmental changes: + ADDR2LINE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-addr2line + AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar + AS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-as + CXXFILT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cfilt + ELFEDIT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-elfedit + GPROF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gprof + LD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld + LD_GOLD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld.gold + NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-nm + OBJCOPY=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objcopy + OBJDUMP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objdump + RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib + READELF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-readelf + SIZE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-size + STRINGS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strings + STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip + INFO: activate-gcc_linux-64.sh made the following environmental changes: + BUILD=x86_64-conda-linux-gnu + CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/libshorah-1.99.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr + CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot + CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu + CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu + CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/libshorah-1.99.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + INFO: activate-gxx_linux-64.sh made the following environmental changes: + CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/libshorah-1.99.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/libshorah-1.99.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-g + -- The C compiler identification is GNU 12.3.0 + -- The CXX compiler identification is GNU 12.3.0 + -- Detecting C compiler ABI info + -- Detecting C compiler ABI info - done + -- Check for working C compiler: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc - skipped + -- Detecting C compile features + -- Detecting C compile features - done + -- Detecting CXX compiler ABI info + -- Detecting CXX compiler ABI info - done + -- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c - skipped + -- Detecting CXX compile features + -- Detecting CXX compile features - done + -- Found Python: $BUILD_PREFIX/bin/python3.10 (found version "3.10.14") found components: Interpreter Development Development.Module Development.Embed + -- Python module destination: lib/python3.10/site-packages + -- Performing Test HAS_FLTO + -- Performing Test HAS_FLTO - Success + -- Found pybind11: $PREFIX/include (found version "2.12.0") + -- Found Boost: $PREFIX/lib/cmake/Boost-1.85.0/BoostConfig.cmake (found version "1.85.0") + HTSlib_INCLUDE_DIR=HTSlib_INCLUDE_DIR-NOTFOUND + HTSlib_LIBRARY=HTSlib_LIBRARY-NOTFOUND + CMake Error at cmake/FindHTSlib.cmake:66 (message): + Required library HTSlib NOT FOUND. + + Install the library (dev version) and try again. If the library is already + installed, use ccmake to set the missing variables manually. + Call Stack (most recent call first): + cmake/FindHTSlib.cmake:141 (libfind_process) + CMakeLists.txt:25 (find_package) + + + -- Configuring incomplete, errors occurred! + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/libshorah_1717958365326/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/libshorah/build_failure.osx-64.yaml b/recipes/libshorah/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..8c63c8af98230 --- /dev/null +++ b/recipes/libshorah/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 1bc6f9e5a2ff865812abcd49c965e3719fb09e5b10a68810cf29a4efc9f02fba # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + CMake Error at cmake/FindHTSlib.cmake:66 (message): + Required library HTSlib NOT FOUND. + + Install the library (dev version) and try again. If the library is already + installed, use ccmake to set the missing variables manually. + Call Stack (most recent call first): + cmake/FindHTSlib.cmake:141 (libfind_process) + CMakeLists.txt:25 (find_package) + + + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/libshorah_1717635720564/work + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/libshorah_1717635720564/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/libshorah_1717635720564/_build_env + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/libshorah_1717635720564/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/libshorah_1717635720564/work/conda_build.sh']' returned non-zero exit status 1. + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/libshorah-1.99.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/libshorah-1.99.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/libshorah-1.99.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/libshorah-1.99.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + -- The C compiler identification is Clang 16.0.6 + -- The CXX compiler identification is Clang 16.0.6 + -- Detecting C compiler ABI info + -- Detecting C compiler ABI info - done + -- Check for working C compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting C compile features + -- Detecting C compile features - done + -- Detecting CXX compiler ABI info + -- Detecting CXX compiler ABI info - done + -- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting CXX compile features + -- Detecting CXX compile features - done + -- Found Python: $BUILD_PREFIX/bin/python3.9 (found version "3.9.19") found components: Interpreter Development Development.Module Development.Embed + -- Python module destination: lib/python3.9/site-packages + -- Performing Test HAS_FLTO_THIN + -- Performing Test HAS_FLTO_THIN - Failed + -- Performing Test HAS_FLTO + -- Performing Test HAS_FLTO - Success + -- Found pybind11: $PREFIX/include (found version "2.12.0") + -- Found Boost: $PREFIX/lib/cmake/Boost-1.85.0/BoostConfig.cmake (found version "1.85.0") + -- Configuring incomplete, errors occurred! +# Last 100 lines of the build log. diff --git a/recipes/libshorah/meta.yaml b/recipes/libshorah/meta.yaml index 6e337ff636296..8e475c744c246 100644 --- a/recipes/libshorah/meta.yaml +++ b/recipes/libshorah/meta.yaml @@ -11,7 +11,7 @@ source: build: skip: True # [py27] - number: 1 + number: 2 script: - mkdir -p build - cd build diff --git a/recipes/liftover/meta.yaml b/recipes/liftover/meta.yaml index 8c484a1d7355b..637b2dadf94f5 100644 --- a/recipes/liftover/meta.yaml +++ b/recipes/liftover/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 skip: True # [py < 38] script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv run_exports: diff --git a/recipes/lightstringgraph/meta.yaml b/recipes/lightstringgraph/meta.yaml index 50ea0663a4603..09a8d1446e09d 100644 --- a/recipes/lightstringgraph/meta.yaml +++ b/recipes/lightstringgraph/meta.yaml @@ -3,7 +3,7 @@ package: version: 0.4.0 build: - number: 5 + number: 6 skip: True # [osx] source: diff --git a/recipes/linkstats/build_failure.linux-64.yaml b/recipes/linkstats/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..01efd21896ae9 --- /dev/null +++ b/recipes/linkstats/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: ce1e0681645b4479744c25dc7f44c5b0e9cd2ee73f36441b3be7058011887f2a # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + Host machine cpu: x86_64 + Run-time dependency threads found: YES + Found pkg-config: YES (/opt/conda/conda-bld/linkstats_1717713135672/_build_env/bin/pkg-config) 0.29.2 + Did not find CMake 'cmake' + Found CMake: NO + Run-time dependency htslib found: NO + + meson.build:51:10: ERROR: Dependency lookup for htslib with method 'pkgconfig' failed: Could not generate cflags for htslib: + Package zlib was not found in the pkg-config search path. + Perhaps you should add the directory containing zlib.pc' + to the PKG_CONFIG_PATH environment variable + Package 'zlib', required by 'htslib', not found + + + A full log can be found at /opt/conda/conda-bld/linkstats_1717713135672/work/_LinkStats_C/builddir/meson-logs/meson-log.txt + Error during meson setup + [1;31merror[0m: [1msubprocess-exited-with-error[0m + + [31m[0m [32mpython setup.py bdist_wheel[0m did not run successfully. + [31m[0m exit code: [1;36m1[0m + [31m>[0m See above for output. + + [1;35mnote[0m: This error originates from a subprocess, and is likely not a problem with pip. + [1;35mfull command[0m: [34m/opt/conda/conda-bld/linkstats_1717713135672/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/python -u -c '[0m + [34m exec(compile('"'"''"'"''"'"'[0m + [34m # This is -- a caller that pip uses to run setup.py[0m + [34m #[0m + [34m # - It imports setuptools before invoking setup.py, to enable projects that directly[0m + [34m # import from distutils.core to work with newer packaging standards.[0m + [34m # - It provides a clear error message when setuptools is not installed.[0m + [34m # - It sets sys.argv[0] to the underlying setup.py, when invoking setup.py so[0m + [34m # setuptools doesn'"'"'t think the script is -c. This avoids the following warning:[0m + [34m # manifest_maker: standard file '"'"'-c'"'"' not found".[0m + [34m # - It generates a shim setup.py, for handling setup.cfg-only projects.[0m + [34m import os, sys, tokenize[0m + [34m [0m + [34m try:[0m + [34m import setuptools[0m + [34m except ImportError as error:[0m + [34m print([0m + [34m "ERROR: Can not execute setup.py since setuptools is not available in "[0m + [34m "the build environment.",[0m + [34m file=sys.stderr,[0m + [34m )[0m + [34m sys.exit(1)[0m + [34m [0m + [34m __file__ = %r[0m + [34m sys.argv[0] = __file__[0m + [34m [0m + [34m if os.path.exists(__file__):[0m + [34m filename = __file__[0m + [34m with tokenize.open(__file__) as f:[0m + [34m setup_py_code = f.read()[0m + [34m else:[0m + [34m filename = ""[0m + [34m setup_py_code = "from setuptools import setup; setup()"[0m + [34m [0m + [34m exec(compile(setup_py_code, filename, "exec"))[0m + [34m '"'"''"'"''"'"' % ('"'"'/opt/conda/conda-bld/linkstats_1717713135672/work/setup.py'"'"',), "", "exec"))' bdist_wheel -d /tmp/pip-wheel-8osq5osl[0m + [1;35mcwd[0m: /opt/conda/conda-bld/linkstats_1717713135672/work/ + Building wheel for LinkStats (setup.py): finished with status 'error' + [31m ERROR: Failed building wheel for LinkStats[0m[31m + [0m Running setup.py clean for LinkStats + Running command python setup.py clean + fatal: not a git repository (or any of the parent directories): .git + running clean + removing 'build/lib' (and everything under it) + 'build/bdist.linux-x86_64' does not exist -- can't clean it + 'build/scripts-3.11' does not exist -- can't clean it + removing 'build' + Failed to build LinkStats + [31mERROR: Could not build wheels for LinkStats, which is required to install pyproject.toml-based projects[0m[31m + [0mException information: + Traceback (most recent call last): + File "$PREFIX/lib/python3.11/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper + status = run_func(*args) + ^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.11/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper + return func(self, options, args) + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.11/site-packages/pip/_internal/commands/install.py", line 429, in run + raise InstallationError( + pip._internal.exceptions.InstallationError: Could not build wheels for LinkStats, which is required to install pyproject.toml-based projects + Removed build tracker: '/tmp/pip-build-tracker-t_8hxb39' + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/linkstats_1717713135672/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/linkstats/build_failure.osx-64.yaml b/recipes/linkstats/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..f8832791a6d80 --- /dev/null +++ b/recipes/linkstats/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: ce1e0681645b4479744c25dc7f44c5b0e9cd2ee73f36441b3be7058011887f2a # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/linkstats_1717636681616/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/linkstats_1717636681616/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/linkstats_1717636681616/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/linkstats-0.1.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/linkstats-0.1.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/linkstats_1717636681616/work/conda_build.sh']' returned non-zero exit status 1. + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/linkstats-0.1.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/linkstats-0.1.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + Using pip 24.0 from $PREFIX/lib/python3.8/site-packages/pip (python 3.8) + Non-user install because user site-packages disabled + Ignoring indexes: https://pypi.org/simple + Created temporary directory: /private/tmp/pip-build-tracker-owoocl8p + Initialized build tracking at /private/tmp/pip-build-tracker-owoocl8p + Created build tracker: /private/tmp/pip-build-tracker-owoocl8p + Entered build tracker: /private/tmp/pip-build-tracker-owoocl8p + Created temporary directory: /private/tmp/pip-install-i1tmn8up + Created temporary directory: /private/tmp/pip-ephem-wheel-cache-teoauefj + Processing $SRC_DIR + Added file://$SRC_DIR to build tracker '/private/tmp/pip-build-tracker-owoocl8p' + Running setup.py (path:$SRC_DIR/setup.py) egg_info for package from file://$SRC_DIR + Created temporary directory: /private/tmp/pip-pip-egg-info-cs9cmml2 + Preparing metadata (setup.py): started + Preparing metadata (setup.py): finished with status 'done' + Source in $SRC_DIR has version 0.1.3, which satisfies requirement LinkStats==0.1.3 from file://$SRC_DIR + Removed LinkStats==0.1.3 from file://$SRC_DIR from build tracker '/private/tmp/pip-build-tracker-owoocl8p' + Created temporary directory: /private/tmp/pip-unpack-rfmrnko0 + Building wheels for collected packages: LinkStats + Created temporary directory: /private/tmp/pip-wheel-2d5i0l7k + Building wheel for LinkStats (setup.py): started + Destination directory: /private/tmp/pip-wheel-2d5i0l7k + Building wheel for LinkStats (setup.py): finished with status 'error' + Running setup.py clean for LinkStats + Failed to build LinkStats + Exception information: + Traceback (most recent call last): + File "$PREFIX/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper + status = run_func(*args) + File "$PREFIX/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper + return func(self, options, args) + File "$PREFIX/lib/python3.8/site-packages/pip/_internal/commands/install.py", line 429, in run + raise InstallationError( + pip._internal.exceptions.InstallationError: Could not build wheels for LinkStats, which is required to install pyproject.toml-based projects + Removed build tracker: '/private/tmp/pip-build-tracker-owoocl8p' +# Last 100 lines of the build log. diff --git a/recipes/linkstats/meta.yaml b/recipes/linkstats/meta.yaml index 65dd553a55328..8eb7ef5433ba7 100644 --- a/recipes/linkstats/meta.yaml +++ b/recipes/linkstats/meta.yaml @@ -12,7 +12,7 @@ source: build: skip: True # [py < 38] - number: 6 + number: 7 script: "CXX=clang {{ PYTHON }} -m pip install . --no-deps --ignore-installed --no-cache-dir -vvv" requirements: diff --git a/recipes/livekraken/meta.yaml b/recipes/livekraken/meta.yaml index f3b3b443c6083..c51290ce4328f 100644 --- a/recipes/livekraken/meta.yaml +++ b/recipes/livekraken/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 9 + number: 10 skip: True # [osx] has_prefix_files: - libexec/livekraken diff --git a/recipes/lofreq/build_failure.osx-64.yaml b/recipes/lofreq/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..f9584cf07d81e --- /dev/null +++ b/recipes/lofreq/build_failure.osx-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 4cf287f5a7c455a055c0d13140b029f5521f83c577150eb646297dd597f8e2c7 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: test failure +log: |- + running install_egg_info + Writing $PREFIX/lib/python3.9/site-packages/LoFreq_Star-2.1.5-py3.9.egg-info + make[3]: Leaving directory '$SRC_DIR/src/tools' + make[2]: Nothing to be done for 'install-data-am'. + make[2]: Leaving directory '$SRC_DIR/src/tools' + make[1]: Leaving directory '$SRC_DIR/src/tools' + make[1]: Entering directory '$SRC_DIR' + make[2]: Entering directory '$SRC_DIR' + make[2]: Nothing to be done for 'install-exec-am'. + make[2]: Nothing to be done for 'install-data-am'. + make[2]: Leaving directory '$SRC_DIR' + make[1]: Leaving directory '$SRC_DIR' + + Resource usage statistics from building lofreq: + Process count: 8 + CPU time: Sys=0:00:00.3, User=0:00:00.6 + Memory: 99.9M + Disk usage: 8.0K + Time elapsed: 0:00:14.7 + + + Packaging lofreq + Packaging lofreq-2.1.5-py39h8037bd6_12 + + + WARNING: Importing conda-verify failed. Please be sure to test your packages. conda install conda-verify to make this message go away. + compiling .pyc files... + number of files: 10 + INFO: sysroot: '/System/Library/Frameworks/' files: '['vmnet.framework/Versions/Current', 'vmnet.framework/Versions/A/_CodeSignature/CodeResources', 'vmnet.framework/Versions/A/Resources/version.plist', 'vmnet.framework/Versions/A/Resources/InfoPlist.loctable']' + INFO: sysroot: '/usr/lib/' files: '['zsh/5.9/zsh/zselect.so', 'zsh/5.9/zsh/zpty.so', 'zsh/5.9/zsh/zprof.so', 'zsh/5.9/zsh/zleparameter.so']' + INFO: sysroot: '/opt/X11/' files: '[]' + INFO (lofreq,bin/lofreq): Needed DSO lib/libhts.3.dylib found in bioconda/osx-64::htslib==1.20=hec81eee_1 + INFO (lofreq,bin/lofreq): Needed DSO lib/libz.1.dylib found in conda-forge/osx-64::libzlib==1.2.13=h87427d6_6 + INFO (lofreq,bin/lofreq): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + INFO (lofreq): Interpreted package 'lofreq' is interpreted by 'python' + Fixing permissions + INFO :: Time taken to mark (prefix) + 0 replacements in 0 files was 0.04 seconds + Files containing CONDA_PREFIX + ----------------------------- + bin/lofreq2_indel_ovlp.py (text): Patching + bin/lofreq2_vcfplot.py (text): Patching + TEST START: /opt/mambaforge/envs/bioconda/conda-bld/osx-64/lofreq-2.1.5-py39h8037bd6_12.tar.bz2 + Renaming work directory '/opt/mambaforge/envs/bioconda/conda-bld/lofreq_1718124617511/work' to '/opt/mambaforge/envs/bioconda/conda-bld/lofreq_1718124617511/work_moved_lofreq-2.1.5-py39h8037bd6_12_osx-64' + shutil.move(work)=/opt/mambaforge/envs/bioconda/conda-bld/lofreq_1718124617511/work, dest=/opt/mambaforge/envs/bioconda/conda-bld/lofreq_1718124617511/work_moved_lofreq-2.1.5-py39h8037bd6_12_osx-64) + Reloading output folder (local): ...working... done + Solving environment (_test_env): ...working... done + + ## Package Plan ## + + environment location: /opt/mambaforge/envs/bioconda/conda-bld/lofreq_1718124617511/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl + + + The following NEW packages will be INSTALLED: + + bzip2: 1.0.8-h10d778d_5 conda-forge + c-ares: 1.28.1-h10d778d_0 conda-forge + ca-certificates: 2024.6.2-h8857fd0_0 conda-forge + curl: 8.8.0-hea67d85_0 conda-forge + htslib: 1.20-hec81eee_1 bioconda + krb5: 1.21.2-hb884880_0 conda-forge + libcurl: 8.8.0-hf9fcc65_0 conda-forge + libcxx: 17.0.6-h88467a6_0 conda-forge + libdeflate: 1.20-h49d49c5_0 conda-forge + libedit: 3.1.20191231-h0678c8f_2 conda-forge + libev: 4.33-h10d778d_2 conda-forge + libffi: 3.4.2-h0d85af4_5 conda-forge + libnghttp2: 1.58.0-h64cf6d3_1 conda-forge + libsqlite: 3.46.0-h1b8f9f3_0 conda-forge + libssh2: 1.11.0-hd019ec5_0 conda-forge + libzlib: 1.3.1-h87427d6_1 conda-forge + lofreq: 2.1.5-py39h8037bd6_12 local + ncurses: 6.5-h5846eda_0 conda-forge + openssl: 3.3.1-h87427d6_0 conda-forge + python: 3.9.19-h7a9c478_0_cpython conda-forge + python_abi: 3.9-4_cp39 conda-forge + readline: 8.2-h9e318b2_1 conda-forge + samtools: 1.5-1 bioconda + tk: 8.6.13-h1abcd95_1 conda-forge + tzdata: 2024a-h0c530f3_0 conda-forge + xz: 5.2.6-h775f41a_0 conda-forge + zlib: 1.3.1-h87427d6_1 conda-forge + zstd: 1.5.6-h915ae27_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + lofreq version + samtools --help + dyld[51805]: Library not loaded: @rpath/libcrypto.1.0.0.dylib + Referenced from: <8AD915FB-8A79-34FD-9167-D77089463421> /opt/mambaforge/envs/bioconda/conda-bld/lofreq_1718124617511/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/bin/samtools + Reason: tried: '/opt/mambaforge/envs/bioconda/conda-bld/lofreq_1718124617511/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/bin/../lib/libcrypto.1.0.0.dylib' (no such file), '/opt/mambaforge/envs/bioconda/conda-bld/lofreq_1718124617511/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/bin/../lib/libcrypto.1.0.0.dylib' (no such file), '/usr/local/lib/libcrypto.1.0.0.dylib' (no such file), '/usr/lib/libcrypto.1.0.0.dylib' (no such file, not in dyld cache) + /opt/mambaforge/envs/bioconda/conda-bld/lofreq_1718124617511/test_tmp/run_test.sh: line 8: 51805 Abort trap: 6 samtools --help + WARNING: Tests failed for lofreq-2.1.5-py39h8037bd6_12.tar.bz2 - moving package to /opt/mambaforge/envs/bioconda/conda-bld/broken + TESTS FAILED: lofreq-2.1.5-py39h8037bd6_12.tar.bz2 + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/lofreq_1718124617511/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/lofreq_1718124617511/test_tmp + version: 2.1.5 + commit: unknown + build-date: Jun 11 2024 +# Last 100 lines of the build log. diff --git a/recipes/lofreq/meta.yaml b/recipes/lofreq/meta.yaml index 0f18251ee95d3..4dc0e346faf57 100644 --- a/recipes/lofreq/meta.yaml +++ b/recipes/lofreq/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 43028af07faa23c7ec0e167855492ae7bd31c4e7f8158114e51ec12aba5fd184 build: - number: 11 + number: 12 run_exports: - {{ pin_subpackage('lofreq', max_pin='x') }} diff --git a/recipes/longgf/meta.yaml b/recipes/longgf/meta.yaml index 9c74ad6cb0baa..d8071e50f73fd 100644 --- a/recipes/longgf/meta.yaml +++ b/recipes/longgf/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 4790421de904e809c2ec1b1d3804493b1cd178ccb834066d2485db01b8c466e6 build: - number: 6 + number: 7 requirements: build: diff --git a/recipes/longreadsum/build_failure.linux-64.yaml b/recipes/longreadsum/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..89d60e8b8f6d6 --- /dev/null +++ b/recipes/longreadsum/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 1402c0604195b26d66240c3c13d5f69a81727223e92946e08a9864a051389291 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + libgcc-ng: 13.2.0-h77fa898_7 conda-forge + libgomp: 13.2.0-h77fa898_7 conda-forge + libsanitizer: 12.3.0-hb8811af_7 conda-forge + libstdcxx-devel_linux-64: 12.3.0-h0223996_107 conda-forge + libstdcxx-ng: 13.2.0-hc0a3c3a_7 conda-forge + make: 4.3-hd18ef5c_1 conda-forge + sysroot_linux-64: 2.12-he073ed8_17 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Source cache directory is: /opt/conda/conda-bld/src_cache + Downloading source to cache: v1.3.1_eb4c7677d4.tar.gz + Downloading https://github.com/WGLab/LongReadSum/archive/refs/tags/v1.3.1.tar.gz + Success + Extracting download + source tree in: /opt/conda/conda-bld/longreadsum_1717711017947/work + export PREFIX=/opt/conda/conda-bld/longreadsum_1717711017947/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p + export BUILD_PREFIX=/opt/conda/conda-bld/longreadsum_1717711017947/_build_env + export SRC_DIR=/opt/conda/conda-bld/longreadsum_1717711017947/work + INFO: activate-binutils_linux-64.sh made the following environmental changes: + ADDR2LINE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-addr2line + AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar + AS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-as + CXXFILT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cfilt + ELFEDIT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-elfedit + GPROF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gprof + LD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld + LD_GOLD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld.gold + NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-nm + OBJCOPY=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objcopy + OBJDUMP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objdump + RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib + READELF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-readelf + SIZE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-size + STRINGS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strings + STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip + INFO: activate-gcc_linux-64.sh made the following environmental changes: + BUILD=x86_64-conda-linux-gnu + CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/longreadsum-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr + CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot + CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu + CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu + CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/longreadsum-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + INFO: activate-gxx_linux-64.sh made the following environmental changes: + CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/longreadsum-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/longreadsum-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-g + Running setup.py... + running build_ext + building '_lrst' extension + creating build + creating build/temp.linux-x86_64-cpython-312 + creating build/temp.linux-x86_64-cpython-312/src + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -fno-strict-overflow -DNDEBUG -O2 -Wall -fPIC -O2 -isystem $PREFIX/include -fPIC -O2 -isystem $PREFIX/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/longreadsum-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -fPIC -Iinclude -I$PREFIX/include/python3.12 -Iinclude -I$PREFIX/include/python3.12 -c src/bam_module.cpp -o build/temp.linux-x86_64-cpython-312/src/bam_module.o -std=c11 + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -fno-strict-overflow -DNDEBUG -O2 -Wall -fPIC -O2 -isystem $PREFIX/include -fPIC -O2 -isystem $PREFIX/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/longreadsum-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -fPIC -Iinclude -I$PREFIX/include/python3.12 -Iinclude -I$PREFIX/include/python3.12 -c src/basic_statistics.cpp -o build/temp.linux-x86_64-cpython-312/src/basic_statistics.o -std=c11 + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -fno-strict-overflow -DNDEBUG -O2 -Wall -fPIC -O2 -isystem $PREFIX/include -fPIC -O2 -isystem $PREFIX/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/longreadsum-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -fPIC -Iinclude -I$PREFIX/include/python3.12 -Iinclude -I$PREFIX/include/python3.12 -c src/fast5_module.cpp -o build/temp.linux-x86_64-cpython-312/src/fast5_module.o -std=c11 + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -fno-strict-overflow -DNDEBUG -O2 -Wall -fPIC -O2 -isystem $PREFIX/include -fPIC -O2 -isystem $PREFIX/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/longreadsum-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -fPIC -Iinclude -I$PREFIX/include/python3.12 -Iinclude -I$PREFIX/include/python3.12 -c src/fasta_module.cpp -o build/temp.linux-x86_64-cpython-312/src/fasta_module.o -std=c11 + src/fasta_module.cpp:7:10: fatal error: zlib.h: No such file or directory + 7 | #include + | ^~~~~~~~ + compilation terminated. + error: command '/opt/conda/conda-bld/longreadsum_1717711017947/_build_env/bin/x86_64-conda-linux-gnu-cc' failed with exit code 1 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/longreadsum_1717711017947/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/longreadsum/build_failure.osx-64.yaml b/recipes/longreadsum/build_failure.osx-64.yaml index 2ce329513390e..a865a88b873f4 100644 --- a/recipes/longreadsum/build_failure.osx-64.yaml +++ b/recipes/longreadsum/build_failure.osx-64.yaml @@ -1,55 +1,77 @@ -recipe_sha: eff7315e25732ae66ce264a92155ddfb54074489a6a7f7f4c75ee15773a15e15 # The commit at which this recipe failed to build. +recipe_sha: 1402c0604195b26d66240c3c13d5f69a81727223e92946e08a9864a051389291 # The hash of the recipe's meta.yaml at which this recipe failed to build. skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. log: |2- - libclang-cpp15: 15.0.7-default_hdb78580_2 conda-forge - libcxx: 16.0.6-hd57cbcb_0 conda-forge - libiconv: 1.17-hac89ed1_0 conda-forge - libllvm15: 15.0.7-he4b1e75_2 conda-forge - libxml2: 2.11.4-hd95e348_0 conda-forge - libzlib: 1.2.13-h8a1eda9_5 conda-forge - llvm-tools: 15.0.7-he4b1e75_2 conda-forge - make: 4.3-h22f3db7_1 conda-forge - openssl: 3.1.1-h8a1eda9_1 conda-forge - sigtool: 0.1.3-h88f4db0_0 conda-forge - tapi: 1100.0.11-h9ce4665_0 conda-forge - xz: 5.2.6-h775f41a_0 conda-forge - zstd: 1.5.2-h829000d_7 conda-forge + clangxx_impl_osx-64: 16.0.6-h6d92fbe_15 conda-forge + clangxx_osx-64: 16.0.6-hb91bd55_15 conda-forge + compiler-rt: 16.0.6-ha38d28d_2 conda-forge + compiler-rt_osx-64: 16.0.6-ha38d28d_2 conda-forge + icu: 73.2-hf5e326d_0 conda-forge + ld64_osx-64: 711-ha20a434_0 conda-forge + libclang-cpp16: 16.0.6-default_h4c8afb6_7 conda-forge + libcxx: 17.0.6-h88467a6_0 conda-forge + libiconv: 1.17-hd75f5a5_2 conda-forge + libllvm16: 16.0.6-hbedff68_3 conda-forge + libxml2: 2.12.7-h3e169fe_1 conda-forge + libzlib: 1.3.1-h87427d6_1 conda-forge + llvm-tools: 16.0.6-hbedff68_3 conda-forge + make: 4.3-h22f3db7_1 conda-forge + openssl: 3.3.1-h87427d6_0 conda-forge + sigtool: 0.1.3-h88f4db0_0 conda-forge + tapi: 1100.0.11-h9ce4665_0 conda-forge + xz: 5.2.6-h775f41a_0 conda-forge + zstd: 1.5.6-h915ae27_0 conda-forge Preparing transaction: ...working... done Verifying transaction: ...working... done Executing transaction: ...working... done Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache - INFO:conda_build.source:Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache - Downloading source to cache: v1.3.0_9b1cf814f6.tar.gz - INFO:conda_build.source:Downloading source to cache: v1.3.0_9b1cf814f6.tar.gz - Downloading https://github.com/WGLab/LongReadSum/archive/refs/tags/v1.3.0.tar.gz - INFO:conda_build.source:Downloading https://github.com/WGLab/LongReadSum/archive/refs/tags/v1.3.0.tar.gz + Downloading source to cache: v1.3.1_eb4c7677d4.tar.gz + Downloading https://github.com/WGLab/LongReadSum/archive/refs/tags/v1.3.1.tar.gz Success - INFO:conda_build.source:Success + Traceback (most recent call last): + File "setup.py", line 8, in + import setuptools + ModuleNotFoundError: No module named 'setuptools' Extracting download - source tree in: /opt/mambaforge/envs/bioconda/conda-bld/longreadsum_1688727237612/work - export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/longreadsum_1688727237612/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl - export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/longreadsum_1688727237612/_build_env - export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/longreadsum_1688727237612/work + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/longreadsum_1717632276742/work + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/longreadsum_1717632276742/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/longreadsum_1717632276742/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/longreadsum_1717632276742/work INFO: activate_clang_osx-64.sh made the following environmental changes: AR=x86_64-apple-darwin13.4.0-ar AS=x86_64-apple-darwin13.4.0-as CC=x86_64-apple-darwin13.4.0-clang + sys.exit(execute()) CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fPIE -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/longreadsum-1.3.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/longreadsum-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms CLANG=x86_64-apple-darwin13.4.0-clang - CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin CMAKE_PREFIX_PATH=:$PREFIX CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/longreadsum_1717632276742/work/conda_build.sh']' returned non-zero exit status 1. CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 - DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fPIE -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/longreadsum-1.3.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/longreadsum-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix HOST=x86_64-apple-darwin13.4.0 INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool LD=x86_64-apple-darwin13.4.0-ld - LDFLAGS=-Wl,-pie -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib - LDFLAGS_LD=-pie -headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib LIBTOOL=x86_64-apple-darwin13.4.0-libtool LIPO=x86_64-apple-darwin13.4.0-lipo MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib @@ -61,7 +83,7 @@ log: |2- PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff RANLIB=x86_64-apple-darwin13.4.0-ranlib REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding - SDKROOT=/Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk SEGEDIT=x86_64-apple-darwin13.4.0-segedit SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack @@ -76,29 +98,7 @@ log: |2- INFO: activate_clangxx_osx-64.sh made the following environmental changes: CLANGXX=x86_64-apple-darwin13.4.0-clang CXX=x86_64-apple-darwin13.4.0-clang - CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fPIE -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/longreadsum-1.3.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/longreadsum-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fPIE -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/longreadsum-1.3.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/conda-bld/longreadsum_1688727237612/work/setup.py", line 8, in - import setuptools - ModuleNotFoundError: No module named 'setuptools' - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/longreadsum_1688727237612/work/conda_build.sh']' returned non-zero exit status 1. + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/longreadsum-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix # Last 100 lines of the build log. diff --git a/recipes/longreadsum/meta.yaml b/recipes/longreadsum/meta.yaml index 904211f5314b5..c544cc30edc58 100644 --- a/recipes/longreadsum/meta.yaml +++ b/recipes/longreadsum/meta.yaml @@ -10,7 +10,7 @@ source: sha256: '{{ sha256 }}' build: - number: 0 + number: 1 skip: true # [py2k] entry_points: - longreadsum = entry_point:main diff --git a/recipes/lorax/build_failure.linux-64.yaml b/recipes/lorax/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..eeb27c6dd0dbe --- /dev/null +++ b/recipes/lorax/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 68289bc6e777b3809eb35883aa841d04653b86d7d5ae8ed9d545b7883991fcfc # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + from /opt/conda/conda-bld/lorax_1717712810250/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/iostream:39, + from src/lorax.cpp:3: + /opt/conda/conda-bld/lorax_1717712810250/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_iterator_base_types.h:127:34: note: 'std::iterator' + 127 | struct _GLIBCXX17_DEPRECATED iterator + | ^~~~~~~~ + In file included from /opt/conda/conda-bld/lorax_1717712810250/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/unordered/detail/map.hpp:8, + from /opt/conda/conda-bld/lorax_1717712810250/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/unordered/unordered_map.hpp:18, + from /opt/conda/conda-bld/lorax_1717712810250/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/unordered_map.hpp:17, + from src/util.h:5: + /opt/conda/conda-bld/lorax_1717712810250/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/unordered/detail/implementation.hpp:968:51: note: 'boost::unordered::detail::iterator_detail::iterator' + 968 | template class iterator + | ^~~~~~~~ + src/util.h:128:67: error: 'itr' was not declared in this scope + 128 | for(std::set::iterator itr = c.fwdmotif.begin(); itr != c.fwdmotif.end(); itr) { + | ^~~ + src/util.h: In function 'double lorax::entropy(const std::string&)': + src/util.h:183:10: error: 'set' is not a member of 'std' + 183 | std::set alphabet(stvec.begin(), stvec.end()); + | ^~~ + src/util.h:183:10: note: 'std::set' is defined in header ''; did you forget to '#include '? + src/util.h:183:14: error: expected primary-expression before 'char' + 183 | std::set alphabet(stvec.begin(), stvec.end()); + | ^~~~ + src/util.h:185:14: error: 'set' is not a member of 'std' + 185 | for(std::set::const_iterator c = alphabet.begin(); c != alphabet.end(); c) { + | ^~~ + src/util.h:185:14: note: 'std::set' is defined in header ''; did you forget to '#include '? + src/util.h:185:18: error: expected primary-expression before 'char' + 185 | for(std::set::const_iterator c = alphabet.begin(); c != alphabet.end(); c) { + | ^~~~ + src/util.h:185:62: error: 'c' was not declared in this scope + 185 | for(std::set::const_iterator c = alphabet.begin(); c != alphabet.end(); c) { + | ^ + src/util.h:185:67: error: 'alphabet' was not declared in this scope + 185 | for(std::set::const_iterator c = alphabet.begin(); c != alphabet.end(); c) { + | ^~~~~~~~ + In file included from src/lorax.cpp:14: + src/tithread.h: At global scope: + src/tithread.h:56:40: warning: 'template struct std::binary_function' is deprecated [-Wdeprecated-declarations] + 56 | struct SortBreakpoints : public std::binary_function + | ^~~~~~~~~~~~~~~ + In file included from /opt/conda/conda-bld/lorax_1717712810250/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/string:48: + /opt/conda/conda-bld/lorax_1717712810250/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_function.h:131:12: note: declared here + 131 | struct binary_function + | ^~~~~~~~~~~~~~~ + In file included from src/telomere.h:26, + from src/lorax.cpp:15: + src/junction.h:47:37: warning: 'template struct std::binary_function' is deprecated [-Wdeprecated-declarations] + 47 | struct SortJunction : public std::binary_function + | ^~~~~~~~~~~~~~~ + /opt/conda/conda-bld/lorax_1717712810250/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_function.h:131:12: note: declared here + 131 | struct binary_function + | ^~~~~~~~~~~~~~~ + In file included from src/amplicon.h:26, + from src/lorax.cpp:16: + src/var.h:26:37: warning: 'template struct std::binary_function' is deprecated [-Wdeprecated-declarations] + 26 | struct SortVariants : public std::binary_function { + | ^~~~~~~~~~~~~~~ + /opt/conda/conda-bld/lorax_1717712810250/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_function.h:131:12: note: declared here + 131 | struct binary_function + | ^~~~~~~~~~~~~~~ + In file included from src/lorax.cpp:17: + src/ecc.h:53:38: warning: 'template struct std::binary_function' is deprecated [-Wdeprecated-declarations] + 53 | struct SortReadMatch : public std::binary_function + | ^~~~~~~~~~~~~~~ + /opt/conda/conda-bld/lorax_1717712810250/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_function.h:131:12: note: declared here + 131 | struct binary_function + | ^~~~~~~~~~~~~~~ + In file included from src/pct.h:30, + from src/lorax.cpp:20: + src/gfa.h:43:34: warning: 'template struct std::binary_function' is deprecated [-Wdeprecated-declarations] + 43 | struct SortLinks : public std::binary_function + | ^~~~~~~~~~~~~~~ + /opt/conda/conda-bld/lorax_1717712810250/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_function.h:131:12: note: declared here + 131 | struct binary_function + | ^~~~~~~~~~~~~~~ + In file included from src/pct.h:31: + src/gaf.h:41:40: warning: 'template struct std::binary_function' is deprecated [-Wdeprecated-declarations] + 41 | struct SortAlignRecord : public std::binary_function { + | ^~~~~~~~~~~~~~~ + /opt/conda/conda-bld/lorax_1717712810250/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_function.h:131:12: note: declared here + 131 | struct binary_function + | ^~~~~~~~~~~~~~~ + make: *** [Makefile:53: src/lorax] Error 1 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/lorax_1717712810250/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/lorax/build_failure.osx-64.yaml b/recipes/lorax/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..d9e755fc6e561 --- /dev/null +++ b/recipes/lorax/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 68289bc6e777b3809eb35883aa841d04653b86d7d5ae8ed9d545b7883991fcfc # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + for(uint32_t j = idx 1; ((j < junctions.size()) && (junctions[j].refidx == junctions[idx].refidx) && (std::abs(junctions[j].refpos - junctions[idx].refpos) < 2 * c.delta)); j) { + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~ + src/telomere.h:277:5: note: in instantiation of function template specialization 'lorax::outputTelomereSVs>' requested here + outputTelomereSVs(c, junctions, telreads); + ^ + src/telomere.h:342:12: note: in instantiation of function template specialization 'lorax::runTelomere' requested here + return runTelomere(c); + ^ + src/telomere.h:176:133: warning: comparison of integers of different signs: 'int' and 'const uint32_t' (aka 'const unsigned int') [-Wsign-compare] + if ((junctions[i].refidx == junctions[jctidx[compId]].refidx) && (std::abs(junctions[i].refpos - junctions[jctidx[compId]].refpos) < c.delta)) { + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~ + src/telomere.h:208:135: warning: comparison of integers of different signs: 'int' and 'const uint32_t' (aka 'const unsigned int') [-Wsign-compare] + if ((junctions[i].refidx == junctions[jctidx[compId]].refidx) && (std::abs(junctions[i].refpos - junctions[jctidx[compId]].refpos) < c.delta)) { + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~ + In file included from src/lorax.cpp:16: + src/amplicon.h:234:70: warning: comparison of integers of different signs: 'int' and 'const uint32_t' (aka 'const unsigned int') [-Wsign-compare] + if (std::abs(gp - (int32_t) scanRegions[refIndex][ri].start) < c.bpuncertain) { + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~ + src/amplicon.h:458:24: note: in instantiation of function template specialization 'lorax::selectReads>, std::map>>' requested here + int32_t candsize = selectReads(c, scanRegions, candidates, readAmp); + ^ + src/amplicon.h:593:12: note: in instantiation of function template specialization 'lorax::runAmplicon' requested here + return runAmplicon(c); + ^ + src/amplicon.h:240:68: warning: comparison of integers of different signs: 'int' and 'const uint32_t' (aka 'const unsigned int') [-Wsign-compare] + if (std::abs(gp - (int32_t) scanRegions[refIndex][ri].end) < c.bpuncertain) { + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~ + 13 warnings and 17 errors generated. + make: *** [Makefile:53: src/lorax] Error 1 + Extracting download + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/lorax_1717638680548/work + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/lorax_1717638680548/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/lorax_1717638680548/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/lorax_1717638680548/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/lorax-0.3.9 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/lorax_1717638680548/work/conda_build.sh']' returned non-zero exit status 2. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/lorax-0.3.9 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/lorax-0.3.9 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/lorax-0.3.9 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + if [ -r src/htslib/Makefile ]; then cd src/htslib && autoreconf -i && ./configure --disable-s3 --disable-gcs --disable-libcurl --disable-plugins && make && make lib-static && cd ../../ && touch .htslib; fi + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/lorax-0.3.9 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D__STDC_FORMAT_MACROS -std=c11 -isystem $SRC_DIR/src/htslib/ -pedantic -W -Wall -Wno-unknown-pragmas -D__STDC_LIMIT_MACROS -fno-strict-aliasing -fpermissive -O3 -fno-tree-vectorize -DNDEBUG src/lorax.cpp -o src/lorax -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$SRC_DIR/src/htslib/ -L$SRC_DIR/src/htslib//lib -lboost_iostreams -lboost_filesystem -lboost_system -lboost_program_options -lboost_date_time -lhts -lz -llzma -lbz2 -Wl,-rpath,$SRC_DIR/src/htslib/ +# Last 100 lines of the build log. diff --git a/recipes/lorax/meta.yaml b/recipes/lorax/meta.yaml index 904907ef97879..8b467f82b4f9e 100644 --- a/recipes/lorax/meta.yaml +++ b/recipes/lorax/meta.yaml @@ -10,7 +10,7 @@ source: sha256: '{{ sha256 }}' build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("lorax", max_pin="x.x") }} diff --git a/recipes/lra/meta.yaml b/recipes/lra/meta.yaml index bca72a7514733..f683cad878878 100644 --- a/recipes/lra/meta.yaml +++ b/recipes/lra/meta.yaml @@ -9,7 +9,7 @@ source: sha256: aedf99e7488ddbc679c3e5015704ffab31d3c6e914f23a0b196304f962492ff6 build: - number: 1 + number: 2 skip: True # [osx] requirements: diff --git a/recipes/lrez/meta.yaml b/recipes/lrez/meta.yaml index 1015a80196c0c..e10745ba31ceb 100644 --- a/recipes/lrez/meta.yaml +++ b/recipes/lrez/meta.yaml @@ -10,7 +10,7 @@ source: sha256: {{ sha256 }} build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage('lrez', max_pin='x.x') }} diff --git a/recipes/lumpy-sv-minimal/meta.yaml b/recipes/lumpy-sv-minimal/meta.yaml index 7ac66f1cb25c5..e70146c118590 100644 --- a/recipes/lumpy-sv-minimal/meta.yaml +++ b/recipes/lumpy-sv-minimal/meta.yaml @@ -12,7 +12,7 @@ source: - const.patch build: - number: 3 + number: 4 # The packaged bamtools has issues with compilation on OSX skip: True # [osx] diff --git a/recipes/maast/meta.yaml b/recipes/maast/meta.yaml index 180d02ae93ab5..e031ece0da1ce 100644 --- a/recipes/maast/meta.yaml +++ b/recipes/maast/meta.yaml @@ -13,7 +13,7 @@ source: - maast.patch build: - number: 0 + number: 1 requirements: build: diff --git a/recipes/machina/build_failure.linux-64.yaml b/recipes/machina/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..8e4d928bd8ad5 --- /dev/null +++ b/recipes/machina/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 889092094855133eea8ba23144bd57399a705c5c2186231c37ba9fe51ec49e8e # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + cairo: 1.18.0-h3faef2a_0 conda-forge + coin-or-cbc: 2.10.10-h9002f0b_0 conda-forge + coin-or-cgl: 0.60.7-h516709c_0 conda-forge + coin-or-clp: 1.17.8-h1ee7a9c_0 conda-forge + coin-or-osi: 0.108.10-haf5fa05_0 conda-forge + coin-or-utils: 2.11.11-hee58242_0 conda-forge + coincbc: 2.10.10-0_metapackage conda-forge + expat: 2.6.2-h59595ed_0 conda-forge + font-ttf-dejavu-sans-mono: 2.37-hab24e00_0 conda-forge + font-ttf-inconsolata: 3.000-h77eed37_0 conda-forge + font-ttf-source-code-pro: 2.038-h77eed37_0 conda-forge + font-ttf-ubuntu: 0.83-h77eed37_2 conda-forge + fontconfig: 2.14.2-h14ed4e7_0 conda-forge + fonts-conda-ecosystem: 1-0 conda-forge + fonts-conda-forge: 1-0 conda-forge + freetype: 2.12.1-h267a509_2 conda-forge + fribidi: 1.0.10-h36c2ea0_0 conda-forge + gdk-pixbuf: 2.42.12-hb9ae30d_0 conda-forge + giflib: 5.2.2-hd590300_0 conda-forge + glpk: 5.0-h445213a_0 conda-forge + gmp: 6.3.0-h59595ed_1 conda-forge + graphite2: 1.3.13-h59595ed_1003 conda-forge + graphviz: 9.0.0-h78e8752_1 conda-forge + gtk2: 2.24.33-h280cfa0_4 conda-forge + gts: 0.7.6-h977cf35_4 conda-forge + harfbuzz: 8.5.0-hfac3d4d_0 conda-forge + icu: 73.2-h59595ed_0 conda-forge + lemon: 1.3.1-h6169397_8 conda-forge + lerc: 4.0.0-h27087fc_0 conda-forge + libblas: 3.9.0-22_linux64_openblas conda-forge + libboost: 1.85.0-hba137d9_1 conda-forge + libboost-devel: 1.85.0-h00ab1b0_1 conda-forge + libboost-headers: 1.85.0-ha770c72_1 conda-forge + libcblas: 3.9.0-22_linux64_openblas conda-forge + libdeflate: 1.20-hd590300_0 conda-forge + libexpat: 2.6.2-h59595ed_0 conda-forge + libffi: 3.4.2-h7f98852_5 conda-forge + libgcc-ng: 13.2.0-h77fa898_7 conda-forge + libgd: 2.3.3-h119a65a_9 conda-forge + libgfortran-ng: 13.2.0-h69a702a_7 conda-forge + libgfortran5: 13.2.0-hca663fb_7 conda-forge + libglib: 2.80.2-hf974151_0 conda-forge + libgomp: 13.2.0-h77fa898_7 conda-forge + libiconv: 1.17-hd590300_2 conda-forge + libjpeg-turbo: 3.0.0-hd590300_1 conda-forge + liblapack: 3.9.0-22_linux64_openblas conda-forge + liblapacke: 3.9.0-22_linux64_openblas conda-forge + libopenblas: 0.3.27-pthreads_h413a1c8_0 conda-forge + libpng: 1.6.43-h2797004_0 conda-forge + librsvg: 2.58.0-hadf69e7_1 conda-forge + libstdcxx-ng: 13.2.0-hc0a3c3a_7 conda-forge + libtiff: 4.6.0-h1dd3fc0_3 conda-forge + libuuid: 2.38.1-h0b41bf4_0 conda-forge + libwebp: 1.4.0-h2c329e2_0 conda-forge + libwebp-base: 1.4.0-hd590300_0 conda-forge + libxcb: 1.15-h0b41bf4_0 conda-forge + libxml2: 2.12.7-hc051c1a_0 conda-forge + libzlib: 1.3.1-h4ab18f5_1 conda-forge + machina: 1.2-hdcf5f25_8 local + ncurses: 6.5-h59595ed_0 conda-forge + pango: 1.52.2-ha41ecd1_0 conda-forge + pcre2: 10.43-hcad00b1_0 conda-forge + pixman: 0.43.2-h59595ed_0 conda-forge + pthread-stubs: 0.4-h36c2ea0_1001 conda-forge + readline: 8.2-h8228510_1 conda-forge + xorg-kbproto: 1.0.7-h7f98852_1002 conda-forge + xorg-libice: 1.1.1-hd590300_0 conda-forge + xorg-libsm: 1.2.4-h7391055_0 conda-forge + xorg-libx11: 1.8.9-h8ee46fc_0 conda-forge + xorg-libxau: 1.0.11-hd590300_0 conda-forge + xorg-libxdmcp: 1.1.3-h7f98852_0 conda-forge + xorg-libxext: 1.3.4-h0b41bf4_2 conda-forge + xorg-libxrender: 0.9.11-hd590300_0 conda-forge + xorg-renderproto: 0.11.1-h7f98852_1002 conda-forge + xorg-xextproto: 7.3.0-h0b41bf4_1003 conda-forge + xorg-xproto: 7.0.31-h7f98852_1007 conda-forge + xz: 5.2.6-h166bdaf_0 conda-forge + zlib: 1.3.1-h4ab18f5_1 conda-forge + zstd: 1.5.6-ha6fb4c9_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... + SafetyError: The package for graphviz located at /opt/conda/pkgs/graphviz-9.0.0-h78e8752_1 + appears to be corrupted. The path 'bin/cluster' + has an incorrect size. + reported size: 391528 bytes + actual size: 383288 bytes + + + done + Executing transaction: ...working... + + done + export PREFIX=/opt/conda/conda-bld/machina_1717536167834/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_ + export SRC_DIR=/opt/conda/conda-bld/machina_1717536167834/test_tmp + /opt/conda/conda-bld/machina_1717536167834/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/bin/cluster --help + /opt/conda/conda-bld/machina_1717536167834/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/bin/cluster: error while loading shared libraries: libemon.so.1.3.1: cannot open shared object file: No such file or directory + [[ 127 == 1 ]] + WARNING: Tests failed for machina-1.2-hdcf5f25_8.tar.bz2 - moving package to /opt/conda/conda-bld/broken + TESTS FAILED: machina-1.2-hdcf5f25_8.tar.bz2 +# Last 100 lines of the build log. diff --git a/recipes/machina/build_failure.osx-64.yaml b/recipes/machina/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..2d44caba4f3c6 --- /dev/null +++ b/recipes/machina/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 889092094855133eea8ba23144bd57399a705c5c2186231c37ba9fe51ec49e8e # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + Warning: Unrecognized source format. Source file will be copied to the SRC_DIR + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/machina_1717517005334/work + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/machina_1717517005334/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/machina_1717517005334/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/machina_1717517005334/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + CC=x86_64-apple-darwin13.4.0-clang + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/machina-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/machina_1717517005334/work/conda_build.sh']' returned non-zero exit status 2. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/machina-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/machina-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/machina-1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + installer: Package name is Gurobi Optimizer + installer: Installing at base path / + installer: The install was successful. + -- The C compiler identification is Clang 16.0.6 + -- The CXX compiler identification is Clang 16.0.6 + -- Detecting C compiler ABI info + -- Detecting C compiler ABI info - done + -- Check for working C compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting C compile features + -- Detecting C compile features - done + -- Detecting CXX compiler ABI info + -- Detecting CXX compiler ABI info - done + -- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting CXX compile features + -- Detecting CXX compile features - done + -- Found Boost: $PREFIX/lib/cmake/Boost-1.85.0/BoostConfig.cmake (found version "1.85.0") found components: thread system filesystem + -- Configuring done (3.4s) + -- Generating done (0.1s) + -- Build files have been written to: $SRC_DIR/build + [ 1%] Building CXX object CMakeFiles/pmh_sankoff.dir/src/basetree.cpp.o + [ 2%] Building CXX object CMakeFiles/pmh_sankoff.dir/src/utils.cpp.o + [ 2%] Building CXX object CMakeFiles/pmh_sankoff.dir/src/mpbase.cpp.o + [ 3%] Building CXX object CMakeFiles/pmh_sankoff.dir/src/sankoff.cpp.o + [ 3%] Building CXX object CMakeFiles/pmh_sankoff.dir/src/charactertree.cpp.o + [ 4%] Building CXX object CMakeFiles/pmh_sankoff.dir/src/pmh_sankoff.cpp.o + [ 4%] Building CXX object CMakeFiles/pmh_sankoff.dir/src/clonetree.cpp.o + [ 5%] Building CXX object CMakeFiles/pmh_sankoff.dir/src/sankofflabeling.cpp.o + [ 5%] Building CXX object CMakeFiles/pmh_sankoff.dir/src/migrationgraph.cpp.o + [ 7%] Linking CXX executable pmh_sankoff + [ 7%] Built target pmh_sankoff + [ 7%] Building CXX object CMakeFiles/pmh.dir/src/pmh.cpp.o +# Last 100 lines of the build log. diff --git a/recipes/machina/meta.yaml b/recipes/machina/meta.yaml index 1bef3c346bc74..48726cde7007c 100644 --- a/recipes/machina/meta.yaml +++ b/recipes/machina/meta.yaml @@ -17,7 +17,7 @@ source: sha256: 1d58586f9a33ac7035f51f6a04707248218f70bddbec78cb83f11c986ac652cd # [osx] build: - number: 7 + number: 8 requirements: build: diff --git a/recipes/macs2/meta.yaml b/recipes/macs2/meta.yaml index 245d57eba79ad..3f6bf8c66c9dc 100644 --- a/recipes/macs2/meta.yaml +++ b/recipes/macs2/meta.yaml @@ -11,9 +11,11 @@ source: sha256: {{ sha256 }} build: - number: 0 - skip: True # [py < 37] + number: 1 script: {{ PYTHON }} -m pip install . --use-pep517 --no-deps --no-cache-dir -vvv + skip: True # [py == 312] + run_exports: + - {{ pin_subpackage('macs2', max_pin="x") }} requirements: build: diff --git a/recipes/macs3/meta.yaml b/recipes/macs3/meta.yaml index 53b070ffb72c9..844a8d9e8a0e7 100644 --- a/recipes/macs3/meta.yaml +++ b/recipes/macs3/meta.yaml @@ -11,7 +11,7 @@ source: git_rev: 34f9a81398ec2af78317cd0b128f3a1e52a68f17 build: - number: 2 + number: 3 skip: True # [py < 39] script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv run_exports: diff --git a/recipes/mageck/meta.yaml b/recipes/mageck/meta.yaml index d711f9765c5dc..9ec3288ccc08a 100644 --- a/recipes/mageck/meta.yaml +++ b/recipes/mageck/meta.yaml @@ -7,7 +7,7 @@ source: sha256: b06a18036da63959cd7751911a46727aefe2fb1d8dd79d95043c3e3bdaf1d93a build: - number: 4 + number: 5 run_exports: - {{ pin_subpackage('mageck', max_pin="x.x") }} @@ -37,4 +37,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/mantis_pfa/meta.yaml b/recipes/mantis_pfa/meta.yaml index 8ad4a385c9c0a..b1325154537ba 100644 --- a/recipes/mantis_pfa/meta.yaml +++ b/recipes/mantis_pfa/meta.yaml @@ -12,7 +12,7 @@ source: sha256: a530c281c22221f54aeffa2a6e495a8c20c79c86a7d16c640bec2dd9f5d5e26b build: - number: 2 + number: 3 script: {{ PYTHON }} -m pip install . -vv skip: True # [ py < 37 ] entry_points: diff --git a/recipes/mapcaller/meta.yaml b/recipes/mapcaller/meta.yaml index d0717487715ce..1aaacd6caf71b 100644 --- a/recipes/mapcaller/meta.yaml +++ b/recipes/mapcaller/meta.yaml @@ -9,7 +9,7 @@ source: sha256: f1630d7c9243e70e33b244e3dfdb3ffa2a9836cea37fd2f8b49044dea029b12f build: - number: 4 + number: 5 requirements: build: diff --git a/recipes/mappy/meta.yaml b/recipes/mappy/meta.yaml index 422595563dc9d..65eba261b4dac 100644 --- a/recipes/mappy/meta.yaml +++ b/recipes/mappy/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 0ebf7a5d62bd668f5456028215e26176e180ca68161ac18d4f7b48045484cebb build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('mappy', max_pin="x") }} diff --git a/recipes/mash/meta.yaml b/recipes/mash/meta.yaml index 060fdbae4c06b..a81dfe7d69293 100644 --- a/recipes/mash/meta.yaml +++ b/recipes/mash/meta.yaml @@ -12,7 +12,7 @@ source: build: skip: True # [osx] - number: 6 + number: 7 requirements: build: diff --git a/recipes/masurca/meta.yaml b/recipes/masurca/meta.yaml index 1663a0fe1c87f..589e24b633076 100644 --- a/recipes/masurca/meta.yaml +++ b/recipes/masurca/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 8758f6196bf7f57e24e08bda84abddfff08feb4cea204c0eb5e1cb9fe8198573 build: - number: 0 + number: 1 skip: True # [osx] run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} diff --git a/recipes/mauvealigner/build_failure.linux-64.yaml b/recipes/mauvealigner/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..6e1fd8a1d5b0e --- /dev/null +++ b/recipes/mauvealigner/build_failure.linux-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 5d19fabaadfaf7687d740f9e2d47033957403db41a3836624b1d7f73766e540c # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: compiler error +log: |- + checking pkg-config is at least version 0.9.0... yes + checking for DEPS... yes + checking for an ANSI C-conforming const... yes + checking for inline... inline + checking for memset... yes + checking for libintl.h... yes + checking for stdlib.h... (cached) yes + checking for string.h... (cached) yes + checking for strings.h... (cached) yes + checking for unistd.h... (cached) yes + checking for wchar.h... yes + checking for GNU libc compatible malloc... yes + checking for _Bool... yes + checking for stdbool.h that conforms to C99... yes + checking for size_t... yes + checking how to run the C preprocessor... $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + checking whether $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc needs -traditional... no + checking that generated files are newer than configure... done + configure: creating ./config.status + config.status: creating Makefile + config.status: creating src/Makefile + config.status: creating src/config.h + config.status: executing depfiles commands + Making all in src + make[1]: Entering directory '$SRC_DIR/src' + make all-am + make[2]: Entering directory '$SRC_DIR/src' + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I$PREFIX/include/libMems-1.6 -I$PREFIX/include/libGenome-1.3 -I$PREFIX/include/libMUSCLE-3.7 -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Ofast -DCOMMAND_LINE -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/mauvealigner-1.2.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT mauveAligner.o -MD -MP -MF .deps/mauveAligner.Tpo -c -o mauveAligner.o mauveAligner.cpp + In file included from /opt/conda/conda-bld/mauvealigner_1718134884435/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/ext/hash_map:60, + from /opt/conda/conda-bld/mauvealigner_1718134884435/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/libMems-1.6/libMems/HomologyHMM/dptables.h:43, + from /opt/conda/conda-bld/mauvealigner_1718134884435/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/libMems-1.6/libMems/HomologyHMM/homology.h:27, + from /opt/conda/conda-bld/mauvealigner_1718134884435/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/libMems-1.6/libMems/Islands.h:25, + from mauveAligner.cpp:29: + /opt/conda/conda-bld/mauvealigner_1718134884435/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use -Wno-deprecated. [-Wcpp] + 32 | #warning \ + | ^~~~~~~ + mauveAligner.cpp:47: warning: "NELEMS" redefined + 47 | #define NELEMS(a) ( sizeof( a ) / sizeof( *a ) ) + | + In file included from /opt/conda/conda-bld/mauvealigner_1718134884435/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/libMems-1.6/libMems/SlotAllocator.h:20, + from /opt/conda/conda-bld/mauvealigner_1718134884435/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/libMems-1.6/libMems/AbstractMatch.h:23, + from /opt/conda/conda-bld/mauvealigner_1718134884435/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/libMems-1.6/libMems/UngappedLocalAlignment.h:18, + from /opt/conda/conda-bld/mauvealigner_1718134884435/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/libMems-1.6/libMems/Match.h:19, + from /opt/conda/conda-bld/mauvealigner_1718134884435/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/libMems-1.6/libMems/MatchFinder.h:17, + from /opt/conda/conda-bld/mauvealigner_1718134884435/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/libMems-1.6/libMems/MemHash.h:20, + from mauveAligner.cpp:21: + /opt/conda/conda-bld/mauvealigner_1718134884435/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/libMUSCLE-3.7/libMUSCLE/threadstorage.h:22: note: this is the location of the previous definition + 22 | #define NELEMS(o) sizeof(o)/sizeof(o[0]) + | + In file included from /opt/conda/conda-bld/mauvealigner_1718134884435/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/libMems-1.6/libMems/MatchList.h:25, + from /opt/conda/conda-bld/mauvealigner_1718134884435/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/libMems-1.6/libMems/MatchFinder.h:18: + /opt/conda/conda-bld/mauvealigner_1718134884435/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/libMems-1.6/libMems/Files.h: In function 'std::string CreateTempFileName(const std::string&)': + /opt/conda/conda-bld/mauvealigner_1718134884435/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/libMems-1.6/libMems/Files.h:82:20: error: 'class boost::filesystem::path' has no member named 'branch_path' + 82 | dir = path.branch_path().string(); + | ^~~~~~~~~~~ + /opt/conda/conda-bld/mauvealigner_1718134884435/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/libMems-1.6/libMems/Files.h:86:21: error: 'class boost::filesystem::path' has no member named 'leaf' + 86 | name = path.leaf().string(); + | ^~~~ + In file included from /opt/conda/conda-bld/mauvealigner_1718134884435/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/libMems-1.6/libMems/HomologyHMM/homology.h:28: + /opt/conda/conda-bld/mauvealigner_1718134884435/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/libMems-1.6/libMems/HomologyHMM/algebras.h: In function 'BFloat double2bfloat(double)': + /opt/conda/conda-bld/mauvealigner_1718134884435/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/libMems-1.6/libMems/HomologyHMM/algebras.h:190:21: warning: ISO C17 does not allow 'register' storage class specifier [-Wregister] + 190 | register BFloat a( 0.0, 0 ); + | ^ + /opt/conda/conda-bld/mauvealigner_1718134884435/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/libMems-1.6/libMems/HomologyHMM/algebras.h: In function 'BFloat bfloat_pr_product(const BFloat&, const BFloat&)': + /opt/conda/conda-bld/mauvealigner_1718134884435/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/libMems-1.6/libMems/HomologyHMM/algebras.h:209:19: warning: ISO C17 does not allow 'register' storage class specifier [-Wregister] + 209 | register BFloat sf(a.f*b.f,a.eb.e); + | ^~ + /opt/conda/conda-bld/mauvealigner_1718134884435/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/libMems-1.6/libMems/HomologyHMM/algebras.h: In function 'BFloat bfloat_pr_double_product(const BFloat&, double)': + /opt/conda/conda-bld/mauvealigner_1718134884435/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/libMems-1.6/libMems/HomologyHMM/algebras.h:216:19: warning: ISO C17 does not allow 'register' storage class specifier [-Wregister] + 216 | register double mantisse = a.f*b; + | ^~~~~~~~ + /opt/conda/conda-bld/mauvealigner_1718134884435/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/libMems-1.6/libMems/HomologyHMM/algebras.h: In function 'void bfloat_pr_double_product_accum(BFloat&, double)': + /opt/conda/conda-bld/mauvealigner_1718134884435/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/libMems-1.6/libMems/HomologyHMM/algebras.h:229:19: warning: ISO C17 does not allow 'register' storage class specifier [-Wregister] + 229 | register double mantisse = a.f*b; + | ^~~~~~~~ + /opt/conda/conda-bld/mauvealigner_1718134884435/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/libMems-1.6/libMems/HomologyHMM/algebras.h: In function 'BFloat bfloat_pr_quotient(const BFloat&, const BFloat&)': + /opt/conda/conda-bld/mauvealigner_1718134884435/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/libMems-1.6/libMems/HomologyHMM/algebras.h:236:19: warning: ISO C17 does not allow 'register' storage class specifier [-Wregister] + 236 | register BFloat sf(a.f/b.f, a.e-b.e); + | ^~ + make[2]: *** [Makefile:1084: mauveAligner.o] Error 1 + make[2]: Leaving directory '$SRC_DIR/src' + make[1]: *** [Makefile:716: all] Error 2 + make[1]: Leaving directory '$SRC_DIR/src' + make: *** [Makefile:392: all-recursive] Error 1 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/mauvealigner_1718134884435/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/mauvealigner/meta.yaml b/recipes/mauvealigner/meta.yaml index 7e727e0569a56..f081a74462e24 100644 --- a/recipes/mauvealigner/meta.yaml +++ b/recipes/mauvealigner/meta.yaml @@ -7,7 +7,7 @@ package: build: skip: True # [osx] - number: 5 + number: 6 source: url: https://depot.galaxyproject.org/software/mauveAligner/mauveAligner_{{ version }}_src_all.zip diff --git a/recipes/mawk/meta.yaml b/recipes/mawk/meta.yaml index 90a8f6efb736d..4ee5d4cf677b2 100644 --- a/recipes/mawk/meta.yaml +++ b/recipes/mawk/meta.yaml @@ -10,7 +10,7 @@ source: sha256: db17115d1ed18ed1607c8b93291db9ccd4fe5e0f30d2928c3c5d127b23ec9e5b build: - number: 8 + number: 9 run_exports: - {{ pin_subpackage('mawk', max_pin="x") }} diff --git a/recipes/maxentpy/build_failure.linux-64.yaml b/recipes/maxentpy/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..f3308432324a3 --- /dev/null +++ b/recipes/maxentpy/build_failure.linux-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 51a33edb249bbe7f0b567e6b5e0d6e6aa27af55c9f3d69af778be26468bb9805 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: compiler error +log: |2- + copying maxentpy/maxent_fast.py -> build/lib.linux-x86_64-cpython-312/maxentpy + creating build/lib.linux-x86_64-cpython-312/maxentpy/data + copying maxentpy/data/score3_matrix.txt -> build/lib.linux-x86_64-cpython-312/maxentpy/data + copying maxentpy/data/matrix5.msg -> build/lib.linux-x86_64-cpython-312/maxentpy/data + copying maxentpy/data/score5_matrix.txt -> build/lib.linux-x86_64-cpython-312/maxentpy/data + copying maxentpy/data/matrix3.msg -> build/lib.linux-x86_64-cpython-312/maxentpy/data + running build_ext + building 'maxentpy._hashseq' extension + creating build/temp.linux-x86_64-cpython-312 + creating build/temp.linux-x86_64-cpython-312/maxentpy + /opt/conda/conda-bld/maxentpy_1718208414735/_build_env/bin/x86_64-conda-linux-gnu-cc -fno-strict-overflow -DNDEBUG -O2 -Wall -fPIC -O2 -isystem /opt/conda/conda-bld/maxentpy_1718208414735/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include -fPIC -O2 -isystem /opt/conda/conda-bld/maxentpy_1718208414735/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /opt/conda/conda-bld/maxentpy_1718208414735/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include -fdebug-prefix-map=/opt/conda/conda-bld/maxentpy_1718208414735/work=/usr/local/src/conda/maxentpy-0.0.3 -fdebug-prefix-map=/opt/conda/conda-bld/maxentpy_1718208414735/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac=/usr/local/src/conda-prefix -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/conda-bld/maxentpy_1718208414735/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include -fPIC -I/opt/conda/conda-bld/maxentpy_1718208414735/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/python3.12 -c maxentpy/_hashseq.c -o build/temp.linux-x86_64-cpython-312/maxentpy/_hashseq.o + maxentpy/_hashseq.c:158:12: fatal error: longintrepr.h: No such file or directory + 158 | #include "longintrepr.h" + | ^~~~~~~~~~~~~~~ + compilation terminated. + error: command '/opt/conda/conda-bld/maxentpy_1718208414735/_build_env/bin/x86_64-conda-linux-gnu-cc' failed with exit code 1 + [1;31merror[0m: [1msubprocess-exited-with-error[0m + + [31m[0m [32mpython setup.py bdist_wheel[0m did not run successfully. + [31m[0m exit code: [1;36m1[0m + [31m>[0m See above for output. + + [1;35mnote[0m: This error originates from a subprocess, and is likely not a problem with pip. + [1;35mfull command[0m: [34m/opt/conda/conda-bld/maxentpy_1718208414735/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/bin/python -u -c '[0m + [34m exec(compile('"'"''"'"''"'"'[0m + [34m # This is -- a caller that pip uses to run setup.py[0m + [34m #[0m + [34m # - It imports setuptools before invoking setup.py, to enable projects that directly[0m + [34m # import from distutils.core to work with newer packaging standards.[0m + [34m # - It provides a clear error message when setuptools is not installed.[0m + [34m # - It sets sys.argv[0] to the underlying setup.py, when invoking setup.py so[0m + [34m # setuptools doesn'"'"'t think the script is -c. This avoids the following warning:[0m + [34m # manifest_maker: standard file '"'"'-c'"'"' not found".[0m + [34m # - It generates a shim setup.py, for handling setup.cfg-only projects.[0m + [34m import os, sys, tokenize[0m + [34m [0m + [34m try:[0m + [34m import setuptools[0m + [34m except ImportError as error:[0m + [34m print([0m + [34m "ERROR: Can not execute setup.py since setuptools is not available in "[0m + [34m "the build environment.",[0m + [34m file=sys.stderr,[0m + [34m )[0m + [34m sys.exit(1)[0m + [34m [0m + [34m __file__ = %r[0m + [34m sys.argv[0] = __file__[0m + [34m [0m + [34m if os.path.exists(__file__):[0m + [34m filename = __file__[0m + [34m with tokenize.open(__file__) as f:[0m + [34m setup_py_code = f.read()[0m + [34m else:[0m + [34m filename = ""[0m + [34m setup_py_code = "from setuptools import setup; setup()"[0m + [34m [0m + [34m exec(compile(setup_py_code, filename, "exec"))[0m + [34m '"'"''"'"''"'"' % ('"'"'/opt/conda/conda-bld/maxentpy_1718208414735/work/setup.py'"'"',), "", "exec"))' bdist_wheel -d /tmp/pip-wheel-8izlri85[0m + [1;35mcwd[0m: /opt/conda/conda-bld/maxentpy_1718208414735/work/ + Building wheel for maxentpy (setup.py): finished with status 'error' + [31m ERROR: Failed building wheel for maxentpy[0m[31m + [0m Running setup.py clean for maxentpy + Running command python setup.py clean + running clean + removing 'build/temp.linux-x86_64-cpython-312' (and everything under it) + removing 'build/lib.linux-x86_64-cpython-312' (and everything under it) + 'build/bdist.linux-x86_64' does not exist -- can't clean it + 'build/scripts-3.12' does not exist -- can't clean it + removing 'build' + [31mERROR: Could not build wheels for maxentpy, which is required to install pyproject.toml-based projects[0m[31m + [0mFailed to build maxentpy + Exception information: + Traceback (most recent call last): + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper + status = run_func(*args) + ^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper + return func(self, options, args) + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/commands/install.py", line 429, in run + raise InstallationError( + pip._internal.exceptions.InstallationError: Could not build wheels for maxentpy, which is required to install pyproject.toml-based projects + Removed build tracker: '/tmp/pip-build-tracker-mlxbh6c4' + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/maxentpy_1718208414735/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/maxentpy/build_failure.osx-64.yaml b/recipes/maxentpy/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..39c50efb578f2 --- /dev/null +++ b/recipes/maxentpy/build_failure.osx-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 51a33edb249bbe7f0b567e6b5e0d6e6aa27af55c9f3d69af778be26468bb9805 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: compiler error +log: |- + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/maxentpy_1718209249491/work + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/maxentpy_1718209249491/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/maxentpy_1718209249491/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/maxentpy_1718209249491/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + AS=x86_64-apple-darwin13.4.0-as + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/maxentpy_1718209249491/work/conda_build.sh']' returned non-zero exit status 1. + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/maxentpy-0.0.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/maxentpy-0.0.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + Using pip 24.0 from $PREFIX/lib/python3.12/site-packages/pip (python 3.12) + Non-user install because user site-packages disabled + Ignoring indexes: https://pypi.org/simple + Created temporary directory: /private/tmp/pip-build-tracker-8s2t6exr + Initialized build tracking at /private/tmp/pip-build-tracker-8s2t6exr + Created build tracker: /private/tmp/pip-build-tracker-8s2t6exr + Entered build tracker: /private/tmp/pip-build-tracker-8s2t6exr + Created temporary directory: /private/tmp/pip-install-sl7ce4go + Created temporary directory: /private/tmp/pip-ephem-wheel-cache-uyfkcu5k + Processing $SRC_DIR + Added file://$SRC_DIR to build tracker '/private/tmp/pip-build-tracker-8s2t6exr' + Running setup.py (path:$SRC_DIR/setup.py) egg_info for package from file://$SRC_DIR + Created temporary directory: /private/tmp/pip-pip-egg-info-670xeor4 + Preparing metadata (setup.py): started + Preparing metadata (setup.py): finished with status 'done' + Source in $SRC_DIR has version 0.0.3, which satisfies requirement maxentpy==0.0.3 from file://$SRC_DIR + Removed maxentpy==0.0.3 from file://$SRC_DIR from build tracker '/private/tmp/pip-build-tracker-8s2t6exr' + Created temporary directory: /private/tmp/pip-unpack-2a7b86gw + Building wheels for collected packages: maxentpy + Created temporary directory: /private/tmp/pip-wheel-t6fw4vwl + Building wheel for maxentpy (setup.py): started + Destination directory: /private/tmp/pip-wheel-t6fw4vwl + Building wheel for maxentpy (setup.py): finished with status 'error' + Running setup.py clean for maxentpy + Failed to build maxentpy + Exception information: + Traceback (most recent call last): + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper + status = run_func(*args) + ^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper + return func(self, options, args) + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/commands/install.py", line 429, in run + raise InstallationError( + pip._internal.exceptions.InstallationError: Could not build wheels for maxentpy, which is required to install pyproject.toml-based projects + Removed build tracker: '/private/tmp/pip-build-tracker-8s2t6exr' +# Last 100 lines of the build log. diff --git a/recipes/maxentpy/meta.yaml b/recipes/maxentpy/meta.yaml index 54a2c4f225618..f519f5cfc4e59 100644 --- a/recipes/maxentpy/meta.yaml +++ b/recipes/maxentpy/meta.yaml @@ -5,7 +5,9 @@ package: version: {{ version }} build: - number: 2 + number: 3 + run_exports: + - {{ pin_subpackage("maxentpy", max_pin="x.x") }} script: {{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv source: diff --git a/recipes/medaka/build_failure.linux-64.yaml b/recipes/medaka/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..362238bbedeef --- /dev/null +++ b/recipes/medaka/build_failure.linux-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: fe8244e36e00fce9b146f015c871e6714fe382a6b7375f652967216782b9cb0f # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: dependency issue +log: |2- + + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build + create_build_envs(top_level_pkg, notest) + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs + raise e + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs + environ.get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("tensorflow==2.10.0=cuda112py310he87a039_0"), MatchSpec("__cuda"), MatchSpec("pysam==0.16.0.1=py27ha863e18_1"), MatchSpec("python_abi=2.7[build=*_cp27mu]")} + Encountered problems while solving: + - package pysam-0.16.0.1-py27ha863e18_1 requires python_abi 2.7.* *_cp27mu, but none of the providers can be installed + - nothing provides __cuda needed by tensorflow-2.10.0-cuda112py310he87a039_0 + + Could not solve for environment specs + The following packages are incompatible + [32mopenssl >=1.1.1w,<1.1.2a [0m is requested and can be installed; + [32mpysam >=0.16.0.1 [0m is installable with the potential options + [32mpysam [0.16.0.1|0.17.0|...|0.20.0][0m would require + [32mpython_abi 2.7.* *_cp27mu[0m, which can be installed; + [32mpysam [0.16.0.1|0.17.0|...|0.21.0][0m would require + [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; + [32mpysam [0.16.0.1|0.17.0|...|0.21.0][0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mpysam [0.16.0.1|0.17.0|...|0.21.0][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mpysam [0.16.0.1|0.17.0|...|0.21.0][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mpysam [0.19.1|0.20.0|0.21.0][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [31mpysam 0.21.0[0m would require + [31mopenssl >=3.1.0,<4.0a0 [0m, which conflicts with any installable versions previously reported; + [31mpysam 0.22.0[0m would require + [31mopenssl >=3.1.3,<4.0a0 [0m, which conflicts with any installable versions previously reported; + [31mpysam [0.22.0|0.22.1][0m would require + [31mopenssl >=3.2.1,<4.0a0 [0m, which conflicts with any installable versions previously reported; + [31mpysam 0.22.1[0m would require + [31mopenssl >=3.3.1,<4.0a0 [0m, which conflicts with any installable versions previously reported; + [31mpython >=3.11,<3.12.0a0 [0m is not installable because there are no viable options + [31mpython 3.11.0[0m would require + [31mpython_abi 3.11.* *_cp311[0m, which conflicts with any installable versions previously reported; + [31mpython 3.11.0[0m would require + [31mopenssl >=3.0.5,<4.0a0 [0m, which conflicts with any installable versions previously reported; + [31mpython 3.11.0[0m would require + [31mopenssl >=3.0.7,<4.0a0 [0m, which conflicts with any installable versions previously reported; + [31mpython [3.11.1|3.11.2|3.11.3][0m would require + [31mopenssl >=3.1.0,<4.0a0 [0m, which conflicts with any installable versions previously reported; + [31mpython 3.11.4[0m would require + [31mopenssl >=3.1.1,<4.0a0 [0m, which conflicts with any installable versions previously reported; + [31mpython 3.11.5[0m would require + [31mopenssl >=3.1.2,<4.0a0 [0m, which conflicts with any installable versions previously reported; + [31mpython 3.11.6[0m would require + [31mopenssl >=3.1.3,<4.0a0 [0m, which conflicts with any installable versions previously reported; + [31mpython 3.11.7[0m would require + [31mopenssl >=3.2.0,<4.0a0 [0m, which conflicts with any installable versions previously reported; + [31mpython [3.11.8|3.11.9][0m would require + [31mopenssl >=3.2.1,<4.0a0 [0m, which conflicts with any installable versions previously reported; + [31mpython_abi 3.11.* *_cp311[0m is not installable because it conflicts with any installable versions previously reported; + [32mtensorflow >=2.10,<2.11 [0m is installable with the potential options + [32mtensorflow 2.10.0[0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32mtensorflow 2.10.0[0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mtensorflow 2.10.0[0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mtensorflow 2.10.0[0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [31mtensorflow 2.10.0[0m would require + [31m__cuda[0m, which is missing on the system. +# Last 100 lines of the build log. diff --git a/recipes/medaka/build_failure.osx-64.yaml b/recipes/medaka/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..382a5d84d4aa9 --- /dev/null +++ b/recipes/medaka/build_failure.osx-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: fe8244e36e00fce9b146f015c871e6714fe382a6b7375f652967216782b9cb0f # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: dependency issue +log: |2- + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("openssl[version='>=3.0.0,<4.0a0']"), MatchSpec("libcurl==7.79.1=h97da3c1_1")} + Encountered problems while solving: + - package libcurl-7.79.1-h97da3c1_1 requires openssl >=3.0.0,<4.0a0, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + htslib >=1.14 is installable with the potential options + htslib [1.14|1.15|1.15.1] would require + libcurl [>=7.79.1,<8.0a0 |>=7.81.0,<8.0a0 |>=7.82.0,<8.0a0 ] with the potential options + libcurl [7.79.1|7.80.0|7.81.0|7.82.0] would require + openssl >=3.0.0,<4.0a0 , which can be installed; + libcurl [7.79.1|7.80.0|7.81.0|7.82.0] would require + openssl >=1.1.1l,<1.1.2a , which conflicts with any installable versions previously reported; + libcurl 7.83.0 would require + openssl >=3.0.2,<4.0a0 , which can be installed; + libcurl 7.83.0 would require + openssl >=1.1.1n,<1.1.2a , which conflicts with any installable versions previously reported; + libcurl 7.83.1 would require + openssl >=3.0.3,<4.0a0 , which can be installed; + libcurl 7.83.1 would require + openssl >=1.1.1o,<1.1.2a , which conflicts with any installable versions previously reported; + libcurl [7.85.0|7.86.0] would require + openssl >=1.1.1q,<1.1.2a , which conflicts with any installable versions previously reported; + libcurl [7.85.0|7.86.0] would require + openssl >=3.0.5,<4.0a0 , which can be installed; + libcurl 7.86.0 would require + openssl >=3.0.7,<4.0a0 , which can be installed; + libcurl [7.86.0|7.87.0] would require + krb5 >=1.20.1,<1.21.0a0 with the potential options + krb5 1.20.1 would require + openssl >=1.1.1s,<1.1.2a , which conflicts with any installable versions previously reported; + krb5 1.20.1 would require + openssl >=3.0.7,<4.0a0 , which can be installed; + openssl >=3.0.7,<4.0a0 , which can be installed; + libcurl [7.86.0|7.87.0] would require + openssl >=1.1.1s,<1.1.2a , which conflicts with any installable versions previously reported; + libcurl [7.88.0|7.88.1] would require + openssl >=3.0.8,<4.0a0 , which can be installed; + libcurl 7.88.1 would require + openssl >=3.1.0,<4.0a0 , which can be installed; + htslib [1.15.1|1.16] would require + libcurl >=7.83.1,<8.0a0 with the potential options + libcurl 7.83.1, which can be installed (as previously explained); + libcurl 7.83.1, which cannot be installed (as previously explained); + libcurl [7.85.0|7.86.0], which cannot be installed (as previously explained); + libcurl [7.85.0|7.86.0], which can be installed (as previously explained); + libcurl 7.86.0, which can be installed (as previously explained); + libcurl [7.86.0|7.87.0], which can be installed (as previously explained); + libcurl [7.86.0|7.87.0], which cannot be installed (as previously explained); + libcurl [7.88.0|7.88.1], which can be installed (as previously explained); + libcurl 7.88.1, which can be installed (as previously explained); + htslib 1.17 would require + libcurl >=8.0.1,<9.0a0 , which conflicts with any installable versions previously reported; + htslib 1.17 would require + libcurl >=7.88.1,<8.0a0 , which can be installed (as previously explained); + htslib 1.18 would require + libcurl >=8.2.0,<9.0a0 , which conflicts with any installable versions previously reported; + htslib [1.19|1.19.1] would require + libcurl >=8.5.0,<9.0a0 , which conflicts with any installable versions previously reported; + htslib 1.20 would require + libcurl >=8.7.1,<9.0a0 , which conflicts with any installable versions previously reported; + htslib 1.20 would require + libcurl >=8.8.0,<9.0a0 , which conflicts with any installable versions previously reported; + libcurl 7.* is installable with the potential options + libcurl [7.79.1|7.80.0|7.81.0|7.82.0], which can be installed (as previously explained); + libcurl [7.79.1|7.80.0|7.81.0|7.82.0], which cannot be installed (as previously explained); + libcurl 7.83.0, which can be installed (as previously explained); + libcurl 7.83.0, which cannot be installed (as previously explained); + libcurl 7.83.1, which can be installed (as previously explained); + libcurl 7.83.1, which cannot be installed (as previously explained); + libcurl [7.85.0|7.86.0], which cannot be installed (as previously explained); + libcurl [7.85.0|7.86.0], which can be installed (as previously explained); + libcurl 7.86.0, which can be installed (as previously explained); + libcurl [7.86.0|7.87.0], which can be installed (as previously explained); + libcurl [7.86.0|7.87.0], which cannot be installed (as previously explained); + libcurl [7.88.0|7.88.1], which can be installed (as previously explained); + libcurl 7.88.1, which can be installed (as previously explained); + libcurl [7.61.1|7.62.0|...|7.78.0], which can be installed; + openssl 1.1.1.* is not installable because it conflicts with any installable versions previously reported; + python 3.12.* *_cpython is installable with the potential options + python 3.12.0 would require + openssl >=3.1.3,<4.0a0 , which can be installed; + python 3.12.0rc3 would require + _python_rc, which does not exist (perhaps a missing channel); + python 3.12.1 would require + openssl >=3.2.0,<4.0a0 , which can be installed; + python [3.12.2|3.12.3] would require + openssl >=3.2.1,<4.0a0 , which can be installed. +# Last 100 lines of the build log. diff --git a/recipes/medaka/meta.yaml b/recipes/medaka/meta.yaml index 39da07aeeb982..2b96f89fbca10 100644 --- a/recipes/medaka/meta.yaml +++ b/recipes/medaka/meta.yaml @@ -14,7 +14,7 @@ source: - patch build: - number: 0 + number: 1 entry_points: - medaka = medaka.medaka:main - medaka_counts = medaka.medaka_counts:main diff --git a/recipes/medicc2/build_failure.osx-64.yaml b/recipes/medicc2/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..d85b0fa5a17f6 --- /dev/null +++ b/recipes/medicc2/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 21d3865430842e65e74a078a26c2e14e555ea2c30cb3d453e0b42d65d25d1072 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + python_abi 3.7.* *_cp37m, which can be installed; + ncls [0.0.63|0.0.64|0.0.65|0.0.66] would require + python_abi 3.8.* *_cp38, which can be installed; + ncls [0.0.63|0.0.64|0.0.65|0.0.66] would require + python_abi 3.9.* *_cp39, which can be installed; + ncls [0.0.65|0.0.66] would require + python_abi 3.10.* *_cp310, which can be installed; + sorted_nearest >=0.0.33 , which can be installed (as previously explained); + python >=3.11,<3.12.0a0 is not installable because it requires + python_abi 3.11.* *_cp311, which conflicts with any installable versions previously reported. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build + create_build_envs(top_level_pkg, notest) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs + raise e + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs + environ.get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("pyranges==0.0.39=py37h1de35cc_0"), MatchSpec("python[version='>=3.7,<3.8.0a0']")} + Encountered problems while solving: + - package pyranges-0.0.39-py37h1de35cc_0 requires python >=3.7,<3.8.0a0, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + pyranges is installable with the potential options + pyranges [0.0.39|0.0.40|...|0.0.52] would require + python >=3.7,<3.8.0a0 , which can be installed; + pyranges [0.0.51|0.0.52] would require + python >=3.6,<3.7.0a0 , which can be installed; + pyranges [0.0.100|0.0.101|...|0.0.99] would require + sorted_nearest [>=0.0.28 |>=0.0.30 ] with the potential options + sorted_nearest [0.0.28|0.0.29|0.0.30|0.0.31] would require + python >=2.7,<2.8.0a0 , which can be installed; + sorted_nearest [0.0.28|0.0.29|0.0.30|0.0.31] would require + python >=3.6,<3.7.0a0 , which can be installed; + sorted_nearest [0.0.28|0.0.29|0.0.30|0.0.31] would require + python >=3.7,<3.8.0a0 , which can be installed; + sorted_nearest [0.0.31|0.0.32|0.0.33|0.0.37] would require + python_abi 2.7.* *_cp27m, which can be installed; + sorted_nearest [0.0.31|0.0.32|0.0.33|0.0.37] would require + python_abi 3.6.* *_cp36m, which can be installed; + sorted_nearest [0.0.31|0.0.32|0.0.33|0.0.37] would require + python_abi 3.7.* *_cp37m, which can be installed; + sorted_nearest [0.0.31|0.0.32|0.0.33|0.0.37|0.0.39] would require + python_abi 3.8.* *_cp38, which can be installed; + sorted_nearest [0.0.32|0.0.33|0.0.37|0.0.39] would require + python_abi 3.9.* *_cp39, which can be installed; + sorted_nearest [0.0.37|0.0.39] would require + python_abi 3.10.* *_cp310, which can be installed; + pyranges [0.0.125|0.0.127|0.0.128|0.0.129] would require + ncls >=0.0.63 with the potential options + ncls [0.0.63|0.0.64|0.0.65|0.0.66] would require + python_abi 2.7.* *_cp27m, which can be installed; + ncls [0.0.63|0.0.64|0.0.65|0.0.66] would require + python_abi 3.6.* *_cp36m, which can be installed; + ncls [0.0.63|0.0.64|0.0.65|0.0.66] would require + python_abi 3.7.* *_cp37m, which can be installed; + ncls [0.0.63|0.0.64|0.0.65|0.0.66] would require + python_abi 3.8.* *_cp38, which can be installed; + ncls [0.0.63|0.0.64|0.0.65|0.0.66] would require + python_abi 3.9.* *_cp39, which can be installed; + ncls [0.0.65|0.0.66] would require + python_abi 3.10.* *_cp310, which can be installed; + sorted_nearest >=0.0.33 , which can be installed (as previously explained); + python >=3.11,<3.12.0a0 is not installable because it requires + python_abi 3.11.* *_cp311, which conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/medicc2/meta.yaml b/recipes/medicc2/meta.yaml index b7a8f9ef58207..c0c4852257814 100644 --- a/recipes/medicc2/meta.yaml +++ b/recipes/medicc2/meta.yaml @@ -12,8 +12,9 @@ source: sha256: {{ hash }} build: - number: 0 - skip: true # [py < 37] + number: 1 + run_exports: + - {{ pin_subpackage("medicc2", max_pin="x") }} script: {{ PYTHON }} -m pip install . -vv requirements: diff --git a/recipes/megadepth/meta.yaml b/recipes/megadepth/meta.yaml index 002b3552e61f7..44bdcbe3ea800 100644 --- a/recipes/megadepth/meta.yaml +++ b/recipes/megadepth/meta.yaml @@ -8,7 +8,7 @@ package: version: {{ version }} build: - number: 5 + number: 6 source: url: https://github.com/ChristopherWilks/megadepth/archive/{{ version }}.tar.gz diff --git a/recipes/megalodon/meta.yaml b/recipes/megalodon/meta.yaml index c619becf36135..a6b6ad8d40cfb 100644 --- a/recipes/megalodon/meta.yaml +++ b/recipes/megalodon/meta.yaml @@ -16,7 +16,7 @@ build: - megalodon = megalodon.__main__:_main - megalodon_extras = megalodon_extras.__main__:_main script: {{ PYTHON }} -m pip install . --no-deps -vv - number: 1 + number: 2 run_exports: - {{ pin_subpackage(name, max_pin="x") }} diff --git a/recipes/megapath/meta.yaml b/recipes/megapath/meta.yaml index 09417f0f6b7a9..ef298cec6be58 100644 --- a/recipes/megapath/meta.yaml +++ b/recipes/megapath/meta.yaml @@ -12,7 +12,7 @@ source: build: skip: True # [not linux] - number: 3 + number: 4 requirements: build: diff --git a/recipes/meme/meta.yaml b/recipes/meme/meta.yaml index c2f07609794e0..5e542248cf755 100644 --- a/recipes/meme/meta.yaml +++ b/recipes/meme/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 detect_binary_files_with_prefix: True run_exports: - {{ pin_subpackage("meme", max_pin="x") }} diff --git a/recipes/meraculous/meta.yaml b/recipes/meraculous/meta.yaml index 2394a3fac3520..828c811f7e238 100644 --- a/recipes/meraculous/meta.yaml +++ b/recipes/meraculous/meta.yaml @@ -13,7 +13,7 @@ source: build: skip: True # [osx] - number: 6 + number: 7 requirements: build: diff --git a/recipes/metabinkit/meta.yaml b/recipes/metabinkit/meta.yaml index fd44a330ade6d..8b2c2437ad70d 100644 --- a/recipes/metabinkit/meta.yaml +++ b/recipes/metabinkit/meta.yaml @@ -10,7 +10,7 @@ source: sha256: fba5623f9d769ef672e2663964dd4ea8397759f5b1a17dbd86290874fc8ef9e2 build: - number: 1 + number: 2 skip: true # [osx] requirements: diff --git a/recipes/metabuli/meta.yaml b/recipes/metabuli/meta.yaml index 0ff53ad0a4ce5..dbbcce42175bf 100644 --- a/recipes/metabuli/meta.yaml +++ b/recipes/metabuli/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version|replace("-", ".") }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('metabuli', max_pin="x") }} @@ -18,6 +18,7 @@ requirements: build: - {{ compiler('cxx') }} - {{ compiler('c') }} + - {{ stdlib("c") }} - cmake - make - llvm-openmp # [osx] diff --git a/recipes/metagraph/meta.yaml b/recipes/metagraph/meta.yaml index 179d149907058..b4e444aaeb230 100644 --- a/recipes/metagraph/meta.yaml +++ b/recipes/metagraph/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 3 + number: 4 skip: true # [win] requirements: diff --git a/recipes/metamaps/build_failure.linux-64.yaml b/recipes/metamaps/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..da03c4c59754e --- /dev/null +++ b/recipes/metamaps/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 32b1d7ecdc135748db71cb9fc5c63798223901f27601304e38c20a6c45ea2552 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar + AS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-as + CXXFILT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cfilt + ELFEDIT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-elfedit + GPROF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gprof + LD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld + LD_GOLD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld.gold + NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-nm + OBJCOPY=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objcopy + OBJDUMP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objdump + RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib + READELF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-readelf + SIZE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-size + STRINGS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strings + STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip + INFO: activate-gcc_linux-64.sh made the following environmental changes: + BUILD=x86_64-conda-linux-gnu + CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/metamaps-0.1.633d2e0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr + CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot + CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu + CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu + CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/metamaps-0.1.633d2e0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + INFO: activate-gxx_linux-64.sh made the following environmental changes: + CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/metamaps-0.1.633d2e0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/metamaps-0.1.633d2e0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-g + checking whether the C compiler works... yes + checking for C compiler default output file name... a.out + checking for suffix of executables... + checking whether we are cross compiling... no + checking for suffix of object files... o + checking whether the compiler supports GNU C... yes + checking whether $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c accepts -g... yes + checking for $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c option to enable C11 features... none needed + checking for stdio.h... yes + checking for stdlib.h... yes + checking for string.h... yes + checking for inttypes.h... yes + checking for stdint.h... yes + checking for strings.h... yes + checking for sys/stat.h... yes + checking for sys/types.h... yes + checking for unistd.h... yes + checking for zlib.h... yes + checking for boost/math/distributions/binomial.hpp... yes + configure: creating ./config.status + config.status: creating Makefile + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -c -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/metamaps-0.1.633d2e0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O2 -ggdb -fopenmp -std=c11 -Isrc -L $PREFIX/lib -I $PREFIX/include -include src/common/memcpyLink.h -Wl,--wrap=memcpy -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -DUSE_BOOST -o src/map/mash_map.o src/map/mash_map.cpp + In file included from /opt/conda/conda-bld/metamaps_1717782855482/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/boost/math/special_functions/detail/round_fwd.hpp:11, + from /opt/conda/conda-bld/metamaps_1717782855482/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/boost/math/special_functions/math_fwd.hpp:29, + from /opt/conda/conda-bld/metamaps_1717782855482/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/boost/math/special_functions/beta.hpp:13, + from /opt/conda/conda-bld/metamaps_1717782855482/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/boost/math/distributions/binomial.hpp:83, + from src/map/mapWrap.h:23, + from src/map/mash_map.cpp:19: + /opt/conda/conda-bld/metamaps_1717782855482/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/boost/math/tools/config.hpp:26:6: warning: #warning "Boost.Math requires C14" [-Wcpp] + 26 | # warning "Boost.Math requires C14" + | ^~~~~~~ + src/map/mapWrap.h: In member function 'void mapWrap::unifyFiles(std::string, const skch::Parameters&, std::vector >, std::vector >)': + src/map/mapWrap.h:192:44: error: 'wpath' is not a member of 'boost::filesystem'; did you mean 'path'? + 192 | boost::filesystem::wpath F(resultsFile); + | ^~~~~ + | path + make: *** [Makefile:25: src/map/mash_map.o] Error 1 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/metamaps_1717782855482/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/metamaps/build_failure.osx-64.yaml b/recipes/metamaps/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..8f2f02e77daf9 --- /dev/null +++ b/recipes/metamaps/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 32b1d7ecdc135748db71cb9fc5c63798223901f27601304e38c20a6c45ea2552 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + src/meta/fEM.h:946:16: note: remove extraneous parentheses around the comparison to silence this warning + if((windowI == ((long long)contigData.second.size()-1))) + ~ ^ ~ + src/meta/fEM.h:946:16: note: use '=' to turn this equality comparison into an assignment + if((windowI == ((long long)contigData.second.size()-1))) + ^~ + = + 4 warnings and 5 errors generated. + make: *** [Makefile:25: src/map/mash_map.o] Error 1 + Extracting download + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/metamaps_1717643191760/work + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/metamaps_1717643191760/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/metamaps_1717643191760/_build_env + raise subprocess.CalledProcessError(proc.returncode, _args) + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/metamaps_1717643191760/work + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/metamaps_1717643191760/work/conda_build.sh']' returned non-zero exit status 2. + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/metamaps-0.1.633d2e0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/metamaps-0.1.633d2e0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/metamaps-0.1.633d2e0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/metamaps-0.1.633d2e0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + checking whether the C compiler works... yes + checking for C compiler default output file name... a.out + checking for suffix of executables... + checking whether we are cross compiling... no + checking for suffix of object files... o + checking whether the compiler supports GNU C... yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes + checking for x86_64-apple-darwin13.4.0-clang option to enable C11 features... none needed + checking for stdio.h... yes + checking for stdlib.h... yes + checking for string.h... yes + checking for inttypes.h... yes + checking for stdint.h... yes + checking for strings.h... yes + checking for sys/stat.h... yes + checking for sys/types.h... yes + checking for unistd.h... yes + checking for zlib.h... yes + checking for boost/math/distributions/binomial.hpp... yes + configure: creating ./config.status + config.status: creating Makefile + x86_64-apple-darwin13.4.0-clang -c -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/metamaps-0.1.633d2e0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O2 -ggdb -fopenmp -std=c11 -Isrc -L $PREFIX/lib -I $PREFIX/include -mmacosx-version-min=10.7 -stdlib=libc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -DUSE_BOOST -o src/map/mash_map.o src/map/mash_map.cpp +# Last 100 lines of the build log. diff --git a/recipes/metamaps/meta.yaml b/recipes/metamaps/meta.yaml index 7f0573516b435..46a879cc2cc8c 100644 --- a/recipes/metamaps/meta.yaml +++ b/recipes/metamaps/meta.yaml @@ -10,7 +10,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("metamaps", max_pin=None) }} diff --git a/recipes/metanovo/meta.yaml b/recipes/metanovo/meta.yaml index c75b3de38e9cf..258582da970a5 100644 --- a/recipes/metanovo/meta.yaml +++ b/recipes/metanovo/meta.yaml @@ -37,7 +37,7 @@ requirements: build: skip: True # [not linux64] - number: 8 + number: 9 missing_dso_whitelist: - /lib64/ld-linux-x86-64.so.2 - /lib64/libbz2.so.1 diff --git a/recipes/metasnv/build_failure.linux-64.yaml b/recipes/metasnv/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..4d24c6192613b --- /dev/null +++ b/recipes/metasnv/build_failure.linux-64.yaml @@ -0,0 +1,106 @@ +recipe_sha: fcd5aa4e4395bffa4397115a278d95ea6f6a7358eafcbd21930ac850be38d1b1 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + libsanitizer: 12.3.0-hb8811af_7 conda-forge + libstdcxx-devel_linux-64: 12.3.0-h0223996_107 conda-forge + libstdcxx-ng: 13.2.0-hc0a3c3a_7 conda-forge + libtool: 2.4.7-h27087fc_0 conda-forge + make: 4.3-hd18ef5c_1 conda-forge + pkg-config: 0.29.2-h36c2ea0_1008 conda-forge + sysroot_linux-64: 2.12-he073ed8_17 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Source cache directory is: /opt/conda/conda-bld/src_cache + Downloading source to cache: v2.0.4_7fcd9db7e3.tar.gz + Downloading https://github.com/metasnv-tool/metaSNV/archive/refs/tags/v2.0.4.tar.gz + Success + Extracting download + source tree in: /opt/conda/conda-bld/metasnv_1717953487418/work + export PREFIX=/opt/conda/conda-bld/metasnv_1717953487418/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place + export BUILD_PREFIX=/opt/conda/conda-bld/metasnv_1717953487418/_build_env + export SRC_DIR=/opt/conda/conda-bld/metasnv_1717953487418/work + INFO: activate-binutils_linux-64.sh made the following environmental changes: + ADDR2LINE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-addr2line + AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar + AS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-as + CXXFILT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cfilt + ELFEDIT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-elfedit + GPROF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gprof + LD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld + LD_GOLD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld.gold + NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-nm + OBJCOPY=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objcopy + OBJDUMP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objdump + RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib + READELF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-readelf + SIZE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-size + STRINGS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strings + STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip + INFO: activate-gcc_linux-64.sh made the following environmental changes: + BUILD=x86_64-conda-linux-gnu + CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/metasnv-2.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr + CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot + CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu + CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu + CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/metasnv-2.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + INFO: activate-gxx_linux-64.sh made the following environmental changes: + CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/metasnv-2.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/metasnv-2.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-g + cd src/qaTools && make + make[1]: Entering directory '$SRC_DIR/src/qaTools' + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -I$PREFIX/include -Wno-sign-compare -I$PREFIX/include -c -o qaCompute.o qaCompute.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c qaCompute.o -o qaCompute -L$PREFIX/lib -lhts -lhts -pthread -lz + make[1]: Leaving directory '$SRC_DIR/src/qaTools' + cd src/snpCaller && make + make[1]: Entering directory '$SRC_DIR/src/snpCaller' + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -c -I$PREFIX/include -std=c0x -O2 -Wall -Wno-sign-compare call_vC.cpp -o snpCall.o + call_vC.cpp:20:10: fatal error: boost/icl/discrete_interval.hpp: No such file or directory + 20 | #include + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + compilation terminated. + make[1]: *** [Makefile:12: snpCall.o] Error 1 + make[1]: Leaving directory '$SRC_DIR/src/snpCaller' + make: *** [Makefile:9: snpCaller] Error 2 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/metasnv_1717953487418/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. +category: |- + compiler error diff --git a/recipes/metasnv/meta.yaml b/recipes/metasnv/meta.yaml index 9021b82bd1ce1..7415dc87cf3bd 100644 --- a/recipes/metasnv/meta.yaml +++ b/recipes/metasnv/meta.yaml @@ -12,7 +12,9 @@ source: build: # on macOS, build error from rpath complaining of a too-long path skip: True # [py2k or py36 or osx] - number: 6 + number: 7 + run_exports: + - {{ pin_subpackage( "metasnv", max_pin="x") }} requirements: build: diff --git a/recipes/methpipe/build_failure.osx-64.yaml b/recipes/methpipe/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..30a95509a271c --- /dev/null +++ b/recipes/methpipe/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 75ceaf6e80509d4e1b7cfa64e61685e0361dc4103d557386ae8a26816f31990e # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + x86_64-apple-darwin13.4.0-clang -std=c11 -DHAVE_CONFIG_H -I. -I.. -I ../src/common -I ../src/smithlab_cpp -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -O3 -MT src/analysis/methcounts.o -MD -MP -MF $depbase.Tpo -c -o src/analysis/methcounts.o ../src/analysis/methcounts.cpp &&\ + mv -f $depbase.Tpo $depbase.Po + x86_64-apple-darwin13.4.0-clang -std=c11 -O3 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o methcounts src/analysis/methcounts.o libmethpipe.a src/smithlab_cpp/libsmithlab_cpp.a -lgsl -lgslcblas -lz -lhts + depbase=echo src/analysis/bsrate.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';\ + x86_64-apple-darwin13.4.0-clang -std=c11 -DHAVE_CONFIG_H -I. -I.. -I ../src/common -I ../src/smithlab_cpp -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -O3 -MT src/analysis/bsrate.o -MD -MP -MF $depbase.Tpo -c -o src/analysis/bsrate.o ../src/analysis/bsrate.cpp &&\ + mv -f $depbase.Tpo $depbase.Po + x86_64-apple-darwin13.4.0-clang -std=c11 -O3 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o bsrate src/analysis/bsrate.o libmethpipe.a src/smithlab_cpp/libsmithlab_cpp.a -lgsl -lgslcblas -lz -lhts + depbase=echo src/analysis/hmr.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';\ + x86_64-apple-darwin13.4.0-clang -std=c11 -DHAVE_CONFIG_H -I. -I.. -I ../src/common -I ../src/smithlab_cpp -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -O3 -MT src/analysis/hmr.o -MD -MP -MF $depbase.Tpo -c -o src/analysis/hmr.o ../src/analysis/hmr.cpp &&\ + mv -f $depbase.Tpo $depbase.Po + x86_64-apple-darwin13.4.0-clang -std=c11 -O3 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o hmr src/analysis/hmr.o libmethpipe.a src/smithlab_cpp/libsmithlab_cpp.a -lgsl -lgslcblas -lz -lhts + depbase=echo src/analysis/hypermr.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';\ + x86_64-apple-darwin13.4.0-clang -std=c11 -DHAVE_CONFIG_H -I. -I.. -I ../src/common -I ../src/smithlab_cpp -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -O3 -MT src/analysis/hypermr.o -MD -MP -MF $depbase.Tpo -c -o src/analysis/hypermr.o ../src/analysis/hypermr.cpp &&\ + mv -f $depbase.Tpo $depbase.Po + x86_64-apple-darwin13.4.0-clang -std=c11 -O3 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o hypermr src/analysis/hypermr.o libmethpipe.a src/smithlab_cpp/libsmithlab_cpp.a -lgsl -lgslcblas -lz -lhts + depbase=echo src/analysis/levels.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';\ + x86_64-apple-darwin13.4.0-clang -std=c11 -DHAVE_CONFIG_H -I. -I.. -I ../src/common -I ../src/smithlab_cpp -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -O3 -MT src/analysis/levels.o -MD -MP -MF $depbase.Tpo -c -o src/analysis/levels.o ../src/analysis/levels.cpp &&\ + mv -f $depbase.Tpo $depbase.Po + x86_64-apple-darwin13.4.0-clang -std=c11 -O3 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o levels src/analysis/levels.o libmethpipe.a src/smithlab_cpp/libsmithlab_cpp.a -lgsl -lgslcblas -lz -lhts + depbase=echo src/analysis/roimethstat.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';\ + x86_64-apple-darwin13.4.0-clang -std=c11 -DHAVE_CONFIG_H -I. -I.. -I ../src/common -I ../src/smithlab_cpp -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -O3 -MT src/analysis/roimethstat.o -MD -MP -MF $depbase.Tpo -c -o src/analysis/roimethstat.o ../src/analysis/roimethstat.cpp &&\ + mv -f $depbase.Tpo $depbase.Po + x86_64-apple-darwin13.4.0-clang -std=c11 -O3 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o roimethstat src/analysis/roimethstat.o libmethpipe.a src/smithlab_cpp/libsmithlab_cpp.a -lgsl -lgslcblas -lz -lhts + depbase=echo src/analysis/methstates.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';\ + x86_64-apple-darwin13.4.0-clang -std=c11 -DHAVE_CONFIG_H -I. -I.. -I ../src/common -I ../src/smithlab_cpp -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -O3 -MT src/analysis/methstates.o -MD -MP -MF $depbase.Tpo -c -o src/analysis/methstates.o ../src/analysis/methstates.cpp &&\ + mv -f $depbase.Tpo $depbase.Po + x86_64-apple-darwin13.4.0-clang -std=c11 -O3 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o methstates src/analysis/methstates.o libmethpipe.a src/smithlab_cpp/libsmithlab_cpp.a -lgsl -lgslcblas -lz -lhts + depbase=echo src/analysis/methentropy.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';\ + x86_64-apple-darwin13.4.0-clang -std=c11 -DHAVE_CONFIG_H -I. -I.. -I ../src/common -I ../src/smithlab_cpp -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -O3 -MT src/analysis/methentropy.o -MD -MP -MF $depbase.Tpo -c -o src/analysis/methentropy.o ../src/analysis/methentropy.cpp &&\ + mv -f $depbase.Tpo $depbase.Po + x86_64-apple-darwin13.4.0-clang -std=c11 -O3 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o methentropy src/analysis/methentropy.o libmethpipe.a src/smithlab_cpp/libsmithlab_cpp.a -lgsl -lgslcblas -lz -lhts + depbase=echo src/analysis/hmr_rep.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';\ + x86_64-apple-darwin13.4.0-clang -std=c11 -DHAVE_CONFIG_H -I. -I.. -I ../src/common -I ../src/smithlab_cpp -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -O3 -MT src/analysis/hmr_rep.o -MD -MP -MF $depbase.Tpo -c -o src/analysis/hmr_rep.o ../src/analysis/hmr_rep.cpp &&\ + mv -f $depbase.Tpo $depbase.Po + x86_64-apple-darwin13.4.0-clang -std=c11 -O3 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o hmr_rep src/analysis/hmr_rep.o libmethpipe.a src/smithlab_cpp/libsmithlab_cpp.a -lgsl -lgslcblas -lz -lhts + depbase=echo src/analysis/multimethstat.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';\ + x86_64-apple-darwin13.4.0-clang -std=c11 -DHAVE_CONFIG_H -I. -I.. -I ../src/common -I ../src/smithlab_cpp -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -O3 -MT src/analysis/multimethstat.o -MD -MP -MF $depbase.Tpo -c -o src/analysis/multimethstat.o ../src/analysis/multimethstat.cpp &&\ + mv -f $depbase.Tpo $depbase.Po + x86_64-apple-darwin13.4.0-clang -std=c11 -O3 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o multimethstat src/analysis/multimethstat.o libmethpipe.a src/smithlab_cpp/libsmithlab_cpp.a -lgsl -lgslcblas -lz -lhts + depbase=echo src/utils/lc_approx.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';\ + x86_64-apple-darwin13.4.0-clang -std=c11 -DHAVE_CONFIG_H -I. -I.. -I ../src/common -I ../src/smithlab_cpp -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -O3 -MT src/utils/lc_approx.o -MD -MP -MF $depbase.Tpo -c -o src/utils/lc_approx.o ../src/utils/lc_approx.cpp &&\ + mv -f $depbase.Tpo $depbase.Po + x86_64-apple-darwin13.4.0-clang -std=c11 -O3 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o lc_approx src/utils/lc_approx.o libmethpipe.a src/smithlab_cpp/libsmithlab_cpp.a -lgsl -lgslcblas -lz -lhts + depbase=echo src/utils/fast-liftover.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';\ + x86_64-apple-darwin13.4.0-clang -std=c11 -DHAVE_CONFIG_H -I. -I.. -I ../src/common -I ../src/smithlab_cpp -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -O3 -MT src/utils/fast-liftover.o -MD -MP -MF $depbase.Tpo -c -o src/utils/fast-liftover.o ../src/utils/fast-liftover.cpp &&\ + mv -f $depbase.Tpo $depbase.Po + x86_64-apple-darwin13.4.0-clang -std=c11 -O3 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o fast-liftover src/utils/fast-liftover.o libmethpipe.a src/smithlab_cpp/libsmithlab_cpp.a -lgsl -lgslcblas -lz -lhts + depbase=echo src/utils/lift-filter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';\ + x86_64-apple-darwin13.4.0-clang -std=c11 -DHAVE_CONFIG_H -I. -I.. -I ../src/common -I ../src/smithlab_cpp -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -O3 -MT src/utils/lift-filter.o -MD -MP -MF $depbase.Tpo -c -o src/utils/lift-filter.o ../src/utils/lift-filter.cpp &&\ + mv -f $depbase.Tpo $depbase.Po + x86_64-apple-darwin13.4.0-clang -std=c11 -O3 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o lift-filter src/utils/lift-filter.o libmethpipe.a src/smithlab_cpp/libsmithlab_cpp.a -lgsl -lgslcblas -lz -lhts + depbase=echo src/utils/merge-bsrate.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';\ + x86_64-apple-darwin13.4.0-clang -std=c11 -DHAVE_CONFIG_H -I. -I.. -I ../src/common -I ../src/smithlab_cpp -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -O3 -MT src/utils/merge-bsrate.o -MD -MP -MF $depbase.Tpo -c -o src/utils/merge-bsrate.o ../src/utils/merge-bsrate.cpp &&\ + mv -f $depbase.Tpo $depbase.Po + x86_64-apple-darwin13.4.0-clang -std=c11 -O3 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o merge-bsrate src/utils/merge-bsrate.o libmethpipe.a src/smithlab_cpp/libsmithlab_cpp.a -lgsl -lgslcblas -lz -lhts + depbase=echo src/utils/merge-methcounts.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';\ + x86_64-apple-darwin13.4.0-clang -std=c11 -DHAVE_CONFIG_H -I. -I.. -I ../src/common -I ../src/smithlab_cpp -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -O3 -MT src/utils/merge-methcounts.o -MD -MP -MF $depbase.Tpo -c -o src/utils/merge-methcounts.o ../src/utils/merge-methcounts.cpp &&\ + mv -f $depbase.Tpo $depbase.Po + x86_64-apple-darwin13.4.0-clang -std=c11 -O3 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o merge-methcounts src/utils/merge-methcounts.o libmethpipe.a src/smithlab_cpp/libsmithlab_cpp.a -lgsl -lgslcblas -lz -lhts + depbase=echo src/utils/duplicate-remover.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';\ + x86_64-apple-darwin13.4.0-clang -std=c11 -DHAVE_CONFIG_H -I. -I.. -I ../src/common -I ../src/smithlab_cpp -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -O3 -MT src/utils/duplicate-remover.o -MD -MP -MF $depbase.Tpo -c -o src/utils/duplicate-remover.o ../src/utils/duplicate-remover.cpp &&\ + mv -f $depbase.Tpo $depbase.Po + x86_64-apple-darwin13.4.0-clang -std=c11 -O3 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o duplicate-remover src/utils/duplicate-remover.o libmethpipe.a src/smithlab_cpp/libsmithlab_cpp.a -lgsl -lgslcblas -lz -lhts + depbase=echo src/utils/symmetric-cpgs.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';\ + x86_64-apple-darwin13.4.0-clang -std=c11 -DHAVE_CONFIG_H -I. -I.. -I ../src/common -I ../src/smithlab_cpp -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -O3 -MT src/utils/symmetric-cpgs.o -MD -MP -MF $depbase.Tpo -c -o src/utils/symmetric-cpgs.o ../src/utils/symmetric-cpgs.cpp &&\ + mv -f $depbase.Tpo $depbase.Po + x86_64-apple-darwin13.4.0-clang -std=c11 -O3 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o symmetric-cpgs src/utils/symmetric-cpgs.o libmethpipe.a src/smithlab_cpp/libsmithlab_cpp.a -lgsl -lgslcblas -lz -lhts + depbase=echo src/utils/clean-hairpins.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';\ + x86_64-apple-darwin13.4.0-clang -std=c11 -DHAVE_CONFIG_H -I. -I.. -I ../src/common -I ../src/smithlab_cpp -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -O3 -MT src/utils/clean-hairpins.o -MD -MP -MF $depbase.Tpo -c -o src/utils/clean-hairpins.o ../src/utils/clean-hairpins.cpp &&\ + mv -f $depbase.Tpo $depbase.Po + x86_64-apple-darwin13.4.0-clang -std=c11 -O3 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o clean-hairpins src/utils/clean-hairpins.o libmethpipe.a src/smithlab_cpp/libsmithlab_cpp.a -lgsl -lgslcblas -lz -lhts + depbase=echo src/utils/selectsites.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';\ + x86_64-apple-darwin13.4.0-clang -std=c11 -DHAVE_CONFIG_H -I. -I.. -I ../src/common -I ../src/smithlab_cpp -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -O3 -MT src/utils/selectsites.o -MD -MP -MF $depbase.Tpo -c -o src/utils/selectsites.o ../src/utils/selectsites.cpp &&\ + mv -f $depbase.Tpo $depbase.Po + x86_64-apple-darwin13.4.0-clang -std=c11 -O3 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o selectsites src/utils/selectsites.o libmethpipe.a src/smithlab_cpp/libsmithlab_cpp.a -lgsl -lgslcblas -lz -lhts + depbase=echo src/utils/guessprotocol.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';\ + x86_64-apple-darwin13.4.0-clang -std=c11 -DHAVE_CONFIG_H -I. -I.. -I ../src/common -I ../src/smithlab_cpp -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -O3 -MT src/utils/guessprotocol.o -MD -MP -MF $depbase.Tpo -c -o src/utils/guessprotocol.o ../src/utils/guessprotocol.cpp &&\ + mv -f $depbase.Tpo $depbase.Po + x86_64-apple-darwin13.4.0-clang -std=c11 -O3 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o guessprotocol src/utils/guessprotocol.o libmethpipe.a src/smithlab_cpp/libsmithlab_cpp.a -lgsl -lgslcblas -lz -lhts + depbase=echo src/utils/format_reads.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';\ + x86_64-apple-darwin13.4.0-clang -std=c11 -DHAVE_CONFIG_H -I. -I.. -I ../src/common -I ../src/smithlab_cpp -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -O3 -MT src/utils/format_reads.o -MD -MP -MF $depbase.Tpo -c -o src/utils/format_reads.o ../src/utils/format_reads.cpp &&\ + mv -f $depbase.Tpo $depbase.Po + x86_64-apple-darwin13.4.0-clang -std=c11 -O3 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o format_reads src/utils/format_reads.o libmethpipe.a src/smithlab_cpp/libsmithlab_cpp.a -lgsl -lgslcblas -lz -lhts + depbase=echo src/amrfinder/allelicmeth.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';\ + x86_64-apple-darwin13.4.0-clang -std=c11 -DHAVE_CONFIG_H -I. -I.. -I ../src/common -I ../src/smithlab_cpp -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -O3 -MT src/amrfinder/allelicmeth.o -MD -MP -MF $depbase.Tpo -c -o src/amrfinder/allelicmeth.o ../src/amrfinder/allelicmeth.cpp &&\ + mv -f $depbase.Tpo $depbase.Po + x86_64-apple-darwin13.4.0-clang -std=c11 -O3 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o allelicmeth src/amrfinder/allelicmeth.o libmethpipe.a src/smithlab_cpp/libsmithlab_cpp.a -lgsl -lgslcblas -lz -lhts + depbase=echo src/amrfinder/amrfinder.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';\ + x86_64-apple-darwin13.4.0-clang -std=c11 -DHAVE_CONFIG_H -I. -I.. -I ../src/common -I ../src/smithlab_cpp -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -O3 -MT src/amrfinder/amrfinder.o -MD -MP -MF $depbase.Tpo -c -o src/amrfinder/amrfinder.o ../src/amrfinder/amrfinder.cpp &&\ + mv -f $depbase.Tpo $depbase.Po + x86_64-apple-darwin13.4.0-clang -std=c11 -O3 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o amrfinder src/amrfinder/amrfinder.o libmethpipe.a src/smithlab_cpp/libsmithlab_cpp.a -lgsl -lgslcblas -lz -lhts + depbase=echo src/amrfinder/amrtester.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';\ + x86_64-apple-darwin13.4.0-clang -std=c11 -DHAVE_CONFIG_H -I. -I.. -I ../src/common -I ../src/smithlab_cpp -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -O3 -MT src/amrfinder/amrtester.o -MD -MP -MF $depbase.Tpo -c -o src/amrfinder/amrtester.o ../src/amrfinder/amrtester.cpp &&\ + mv -f $depbase.Tpo $depbase.Po + x86_64-apple-darwin13.4.0-clang -std=c11 -O3 -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o amrtester src/amrfinder/amrtester.o libmethpipe.a src/smithlab_cpp/libsmithlab_cpp.a -lgsl -lgslcblas -lz -lhts + depbase=echo src/radmeth/radmeth.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';\ + x86_64-apple-darwin13.4.0-clang -std=c11 -DHAVE_CONFIG_H -I. -I.. -I ../src/common -I ../src/smithlab_cpp -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -O3 -MT src/radmeth/radmeth.o -MD -MP -MF $depbase.Tpo -c -o src/radmeth/radmeth.o ../src/radmeth/radmeth.cpp &&\ + mv -f $depbase.Tpo $depbase.Po + make[2]: Leaving directory '$SRC_DIR/build' + make[1]: Leaving directory '$SRC_DIR/build' +# Last 100 lines of the build log. diff --git a/recipes/methpipe/meta.yaml b/recipes/methpipe/meta.yaml index cee9b9ca74ccc..2e533a09822e8 100644 --- a/recipes/methpipe/meta.yaml +++ b/recipes/methpipe/meta.yaml @@ -9,7 +9,7 @@ source: md5: 735bdafc5b25ae6df30e43442127571e build: - number: 3 + number: 4 requirements: build: diff --git a/recipes/methylpy/build_failure.linux-64.yaml b/recipes/methylpy/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..32537da1847e1 --- /dev/null +++ b/recipes/methylpy/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: dc5ba7f15ebfbcced1e202d801a5dcc783f6c5adb1c67ed619f651937e975c36 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs + raise e + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs + environ.get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("pysam==0.15.0=py27hdfb72b2_0"), MatchSpec("bcftools=1.9")} + Encountered problems while solving: + - package pysam-0.15.0-py27hdfb72b2_0 requires bcftools 1.9.*, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + [32mcutadapt >=1.9 [0m is installable with the potential options + [32mcutadapt [1.10|1.11|...|1.9.1][0m would require + [32mpython [2.7* |>=2.7,<2.8.0a0 ][0m, which can be installed; + [32mcutadapt [1.10|1.11|1.12|1.13|1.9.1][0m would require + [32mpython 3.4* [0m, which can be installed; + [32mcutadapt [1.10|1.11|...|1.9.1][0m would require + [32mpython [3.5* |>=3.5,<3.6.0a0 ][0m, which can be installed; + [32mcutadapt [1.13|1.14|1.15|1.16][0m would require + [32mpython 3.6* [0m, which can be installed; + [32mcutadapt [1.16|1.17|...|2.8][0m would require + [32mpython >=3.6,<3.7.0a0 [0m, which can be installed; + [32mcutadapt [1.18|2.0|...|2.8][0m would require + [32mpython >=3.7,<3.8.0a0 [0m, which can be installed; + [32mcutadapt [2.10|2.9|...|3.5][0m would require + [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; + [32mcutadapt [2.10|2.9|...|4.4][0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mcutadapt [2.10|3.0|...|4.8][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mcutadapt [3.3|3.4|...|4.8][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mcutadapt [4.1|4.2|...|4.8][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [31mcutadapt 4.8[0m would require + [31mpython >=3.11,<3.12.0a0 [0m, which requires + [31mpython_abi 3.11.* *_cp311[0m, which conflicts with any installable versions previously reported; + [32mcutadapt 4.8[0m would require + [32mpython_abi 3.12.* *_cp312[0m, which can be installed; + [32mgsl >=2.7,<2.8.0a0 [0m is requested and can be installed; + [32mpysam >=0.5.3 [0m is installable with the potential options + [32mpysam 0.7.7[0m would require + [32mpython <3.0.0 [0m, which can be installed; + [32mpysam [0.10.0|0.11.0|...|0.9.1.4][0m would require + [32mpython [2.7* |>=2.7,<2.8.0a0 ][0m, which can be installed; + [32mpysam [0.10.0|0.16.0.1|...|0.9.1][0m would require + [32mpython_abi 2.7.* *_cp27mu[0m, which can be installed; + [32mpysam [0.10.0|0.11.0|...|0.9.1.4][0m would require + [32mpython 3.4* [0m, which can be installed; + [32mpysam [0.10.0|0.11.0|...|0.9.1.4][0m would require + [32mpython [3.5* |>=3.5,<3.6.0a0 ][0m, which can be installed; + [32mpysam [0.10.0|0.11.1|...|0.9.1][0m would require + [32mpython 3.6* [0m, which can be installed; + [32mpysam [0.10.0|0.15.4|...|0.9.1][0m would require + [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; + [32mpysam [0.10.0|0.14.1|...|0.9.1][0m would require + [32mpython >=3.6,<3.7.0a0 [0m, which can be installed; + [31mpysam [0.15.0|0.15.0.1|0.15.2][0m would require + [31mbcftools 1.9.* [0m but there are no viable options + [31mbcftools 1.9[0m would require + [31mlibdeflate >=1.0,<1.1.0a0 [0m, which conflicts with any installable versions previously reported; + [31mbcftools 1.9[0m would require + [31mgsl >=2.5,<2.6.0a0 [0m, which conflicts with any installable versions previously reported; + [31mpysam [0.15.1|0.15.2|0.15.3][0m would require + [31mlibdeflate >=1.0,<1.1.0a0 [0m, which conflicts with any installable versions previously reported; + [32mpysam [0.15.3|0.15.4|0.9.1][0m would require + [32mpython >=3.7,<3.8.0a0 [0m, which can be installed; + [32mpysam [0.15.4|0.16.0|...|0.9.1][0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mpysam [0.16.0.1|0.17.0|...|0.9.1][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mpysam [0.16.0.1|0.17.0|...|0.9.1][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mpysam [0.19.1|0.20.0|0.21.0|0.22.0|0.22.1][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [31mpython >=3.11,<3.12.0a0 [0m, which cannot be installed (as previously explained); + [31mpython_abi 3.11.* *_cp311[0m is not installable because it conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/methylpy/build_failure.osx-64.yaml b/recipes/methylpy/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..2debbe2b2e974 --- /dev/null +++ b/recipes/methylpy/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: dc5ba7f15ebfbcced1e202d801a5dcc783f6c5adb1c67ed619f651937e975c36 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + bowtie2 [2.2.5|2.2.7|...|2.3.4.3] would require + python [3.5* |>=3.5,<3.6.0a0 ], which can be installed; + bowtie2 [2.2.5|2.3.0|...|2.3.4.1] would require + python 3.6* , which can be installed; + bowtie2 [2.2.5|2.3.4.1|...|2.3.5.1] would require + python >=3.6,<3.7.0a0 , which can be installed; + bowtie2 [2.2.5|2.3.4.3|2.3.5|2.3.5.1] would require + python >=3.7,<3.8.0a0 , which can be installed; + bowtie2 [2.4.1|2.4.2|...|2.5.1] would require + python_abi 3.6.* *_cp36m, which can be installed; + bowtie2 [2.4.1|2.4.2|...|2.5.1] would require + python_abi 3.7.* *_cp37m, which can be installed; + bowtie2 2.4.1 would require + python >=3.8,<3.9.0a0 , which can be installed; + bowtie2 [2.4.1|2.4.2|...|2.5.3] would require + python_abi 3.8.* *_cp38, which can be installed; + bowtie2 [2.4.2|2.4.3|...|2.5.3] would require + python_abi 3.9.* *_cp39, which can be installed; + bowtie2 [2.4.5|2.5.0|2.5.1|2.5.2|2.5.3] would require + python_abi 3.10.* *_cp310, which can be installed; + cutadapt >=1.9 is installable with the potential options + cutadapt 4.8 would require + dnaio >=1.2.0 with the potential options + dnaio 1.2.0 would require + xopen >=1.4.0 with the potential options + xopen [1.4.0|1.5.0|...|2.0.1] would require + python_abi 3.10.* *_cp310, which can be installed; + xopen [1.4.0|1.5.0|1.6.0] would require + python_abi 3.7 *_pypy37_pp73, which can be installed; + xopen [1.4.0|1.5.0|1.6.0] would require + python_abi 3.7.* *_cp37m, which can be installed; + xopen [1.4.0|1.5.0|...|2.0.1] would require + python_abi 3.8.* *_cp38, which can be installed; + xopen [1.4.0|1.5.0|...|2.0.1] would require + python_abi 3.9.* *_cp39, which can be installed; + xopen [1.6.0|1.7.0|1.8.0|1.9.0|2.0.1] would require + python_abi 3.11.* *_cp311, which can be installed; + xopen [1.7.0|1.8.0|1.9.0|2.0.1] would require + zstandard with the potential options + zstandard [0.10.2|0.11.0|...|0.8.1], which can be installed; + zstandard [0.14.0|0.14.1|0.15.1|0.15.2] would require + python_abi 3.6.* *_cp36m, which can be installed; + zstandard [0.14.0|0.14.1|0.15.1|0.15.2] would require + python_abi 3.6 *_pypy36_pp73, which can be installed; + zstandard [0.14.0|0.14.1|...|0.18.0] would require + python_abi 3.7.* *_cp37m, which can be installed; + zstandard [0.14.0|0.14.1|...|0.22.0] would require + python_abi 3.8.* *_cp38, which can be installed; + zstandard [0.14.0|0.14.1|...|0.22.0] would require + python_abi 3.9.* *_cp39, which can be installed; + zstandard [0.14.1|0.15.1|0.15.2|0.16.0|0.17.0] would require + python_abi 3.7 *_pypy37_pp73, which can be installed; + zstandard [0.16.0|0.17.0|...|0.22.0] would require + python_abi 3.10.* *_cp310, which can be installed; + zstandard [0.17.0|0.18.0|0.19.0] would require + python_abi 3.8 *_pypy38_pp73, which can be installed; + zstandard [0.17.0|0.18.0|0.19.0|0.21.0|0.22.0] would require + python_abi 3.9 *_pypy39_pp73, which can be installed; + zstandard [0.18.0|0.19.0|0.21.0|0.22.0] would require + python_abi 3.11.* *_cp311, which can be installed; + zstandard [0.21.0|0.22.0] would require + zstd >=1.5.5,<1.5.6.0a0 , which conflicts with any installable versions previously reported; + xopen 1.7.0 would require + python_abi 3.8 *_pypy38_pp73, which can be installed; + xopen [1.7.0|1.8.0|1.9.0] would require + python_abi 3.9 *_pypy39_pp73, which can be installed; + dnaio 1.2.0 would require + python_abi 3.10.* *_cp310, which can be installed; + dnaio 1.2.0 would require + python_abi 3.11.* *_cp311, which can be installed; + dnaio 1.2.0 would require + python_abi 3.8.* *_cp38, which can be installed; + dnaio 1.2.0 would require + python_abi 3.9.* *_cp39, which can be installed; + cutadapt [1.10|1.11|...|1.9.1] would require + python [2.7* |>=2.7,<2.8.0a0 ], which can be installed; + cutadapt [1.10|1.11|1.12|1.13|1.9.1] would require + python 3.4* , which can be installed; + cutadapt [1.10|1.11|...|1.9.1] would require + python [3.5* |>=3.5,<3.6.0a0 ], which can be installed; + cutadapt [1.13|1.14|1.15|1.16] would require + python 3.6* , which can be installed; + cutadapt [1.16|1.17|...|2.8] would require + python >=3.6,<3.7.0a0 , which can be installed; + cutadapt [1.18|2.0|...|2.8] would require + python >=3.7,<3.8.0a0 , which can be installed; + cutadapt [2.10|2.9|...|3.5] would require + python_abi 3.6.* *_cp36m, which can be installed; + cutadapt [2.10|2.9|...|4.4] would require + python_abi 3.7.* *_cp37m, which can be installed; + cutadapt [2.10|3.0|...|4.8] would require + python_abi 3.8.* *_cp38, which can be installed; + cutadapt [3.4|3.5|...|4.8] would require + python_abi 3.9.* *_cp39, which can be installed; + cutadapt [4.1|4.2|...|4.8] would require + python_abi 3.10.* *_cp310, which can be installed; + cutadapt 4.8 would require + python_abi 3.11.* *_cp311, which can be installed; + python_abi 3.12.* *_cp312 is not installable because it requires + python 3.12.* *_cpython, which conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/methylpy/meta.yaml b/recipes/methylpy/meta.yaml index 3fe58629ca9d4..8c9d7f869b432 100644 --- a/recipes/methylpy/meta.yaml +++ b/recipes/methylpy/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('methylpy', max_pin="x") }} diff --git a/recipes/mgems/meta.yaml b/recipes/mgems/meta.yaml index bb381dde9a3bd..f49f8b26161b7 100644 --- a/recipes/mgems/meta.yaml +++ b/recipes/mgems/meta.yaml @@ -10,7 +10,7 @@ source: sha256: d655553643200754cbb5c76f1b8d161bece8cb45a8b6e86fea4da65d4f437f9e build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('mgems', max_pin="x") }} diff --git a/recipes/mgikit/build_failure.osx-64.yaml b/recipes/mgikit/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..adb0e9a3f949a --- /dev/null +++ b/recipes/mgikit/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: bffa7226da5ba47a6baeeba197aed986c9e517280d39bdfbba65337d2fb1e621 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + Running rustc --crate-name syn --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.66/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debug-assertions=off --cfg 'feature="clone-impls"' --cfg 'feature="default"' --cfg 'feature="derive"' --cfg 'feature="parsing"' --cfg 'feature="printing"' --cfg 'feature="proc-macro"' -C metadata=9458422a6b6a27ee -C extra-filename=-9458422a6b6a27ee --out-dir /opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work/target/release/deps -C linker=x86_64-apple-darwin13.4.0-clang -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work/target/release/deps --extern proc_macro2=/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work/target/release/deps/libproc_macro2-4a4f23b2b4b41ec2.rmeta --extern quote=/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work/target/release/deps/libquote-6ad0329045fa9111.rmeta --extern unicode_ident=/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work/target/release/deps/libunicode_ident-0f8c807562e934ee.rmeta --cap-lints allow + Compiling crossbeam-deque v0.8.5 + Running rustc --crate-name crossbeam_deque --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-deque-0.8.5/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C panic=abort -C codegen-units=1 --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=3f194d1e9b95e04b -C extra-filename=-3f194d1e9b95e04b --out-dir /opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work/target/x86_64-apple-darwin/release/deps --target x86_64-apple-darwin -C linker=x86_64-apple-darwin13.4.0-clang -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work/target/x86_64-apple-darwin/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work/target/release/deps --extern crossbeam_epoch=/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work/target/x86_64-apple-darwin/release/deps/libcrossbeam_epoch-7b8ad32966f9f2ef.rmeta --extern crossbeam_utils=/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work/target/x86_64-apple-darwin/release/deps/libcrossbeam_utils-242b3d56cf579aaa.rmeta --cap-lints allow -C link-arg=-Wl,-rpath,/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib -C link-arg=-Wl,-headerpad_max_install_names -C link-arg=-Wl,-dead_strip_dylibs + error: linking with x86_64-apple-darwin13.4.0-clang failed: exit status: 1 + | + = note: env -u IPHONEOS_DEPLOYMENT_TARGET -u TVOS_DEPLOYMENT_TARGET LC_ALL="C" PATH="/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/bin:/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/.cargo/bin:/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/bin:/opt/mambaforge/envs/bioconda/condabin:/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/bin:/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/bin:/opt/mambaforge/envs/bioconda/bin:/opt/mambaforge/condabin:/opt/mambaforge/bin:/usr/local/lib/ruby/gems/3.0.0/bin:/usr/local/opt/ruby@3.0/bin:/usr/local/opt/pipx_bin:/Users/runner/.cargo/bin:/usr/local/opt/curl/bin:/usr/local/bin:/usr/local/sbin:/Users/runner/bin:/Users/runner/.yarn/bin:/Users/runner/Library/Android/sdk/tools:/Users/runner/Library/Android/sdk/platform-tools:/Library/Frameworks/Python.framework/Versions/Current/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/usr/bin:/bin:/usr/sbin:/sbin:/Users/runner/.dotnet/tools" VSLANG="1033" ZERO_AR_DATE="1" "x86_64-apple-darwin13.4.0-clang" "-arch" "x86_64" "-m64" "/tmp/rustcSPtvLo/symbols.o" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work/target/release/build/libz-sys-02ae29bc08faf3d8/build_script_build-02ae29bc08faf3d8.build_script_build.de5941c10eba5054-cgu.0.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work/target/release/build/libz-sys-02ae29bc08faf3d8/build_script_build-02ae29bc08faf3d8.4b1epf52pjihq6yx.rcgu.o" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work/target/release/deps" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work/target/release/deps/libvcpkg-ddd7867e4658c133.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work/target/release/deps/libcmake-818d25fd5a22877c.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work/target/release/deps/libcc-6d393b2df27c1f92.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work/target/release/deps/libpkg_config-b8a6842b1b583327.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libstd-2ad7f97be9e16ca5.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-8ce93eee8bf4c86e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libobject-0e1339b212cc7409.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libmemchr-925e672b3deb429c.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-e92d517a950bccd8.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libgimli-de95e5c2a2ace281.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-37f4c48e230f618e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libstd_detect-dfeb4bb0652b6b8e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-0e3ea0ec18336be2.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_alloc-39dd3003e36d7872.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libminiz_oxide-5ea1513e08ee15e0.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libadler-2967159221f4860d.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libunwind-b70656709e3eca11.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcfg_if-cc5626b2e0399737.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/liblibc-8378684dba6ab463.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/liballoc-0ff05b9b25b786cc.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_core-9a6da74aeab39c54.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcore-1638dc700d175798.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-7f42af62722c8f43.rlib" "-lSystem" "-lc" "-lm" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib" "-o" "/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work/target/release/build/libz-sys-02ae29bc08faf3d8/build_script_build-02ae29bc08faf3d8" "-Wl,-dead_strip" "-nodefaultlibs" + = note: ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libstd-2ad7f97be9e16ca5.rlib(std-2ad7f97be9e16ca5.std.73125d0ae810e61b-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcore-1638dc700d175798.rlib(core-1638dc700d175798.core.b1c2fc210f4dfff9-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/liballoc-0ff05b9b25b786cc.rlib(alloc-0ff05b9b25b786cc.alloc.9242d371e396bc4c-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-37f4c48e230f618e.rlib(rustc_demangle-37f4c48e230f618e.rustc_demangle.9fdffeb2b56169d1-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libgimli-de95e5c2a2ace281.rlib(gimli-de95e5c2a2ace281.gimli.72653df79598dcb2-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libobject-0e1339b212cc7409.rlib(object-0e1339b212cc7409.object.e3756fe3fb577255-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libmemchr-925e672b3deb429c.rlib(memchr-925e672b3deb429c.memchr.4dc4a05d80618598-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-e92d517a950bccd8.rlib(addr2line-e92d517a950bccd8.addr2line.7eb29e6a0a38fefd-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-0e3ea0ec18336be2.rlib(hashbrown-0e3ea0ec18336be2.hashbrown.febebf65344cb99d-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-8ce93eee8bf4c86e.rlib(panic_unwind-8ce93eee8bf4c86e.panic_unwind.a3b8ea81b157ee45-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-7f42af62722c8f43.rlib(compiler_builtins-7f42af62722c8f43.compiler_builtins.19fed66cffb9e9f5-cgu.089.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + Undefined symbols for architecture x86_64: + "_getentropy", referenced from: + std::sys::pal::unix::rand::hashmap_random_keys::hcc27ed0e9fd421d6 in libstd-2ad7f97be9e16ca5.rlib(std-2ad7f97be9e16ca5.std.73125d0ae810e61b-cgu.0.rcgu.o) + ld: symbol(s) not found for architecture x86_64 + clang-16: error: linker command failed with exit code 1 (use -v to see invocation) + + + error: could not compile libz-sys (build script) due to 1 previous error + + Caused by: + process didn't exit successfully: rustc --crate-name build_script_build --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/libz-sys-1.1.18/build.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debug-assertions=off --cfg 'feature="cmake"' --cfg 'feature="libc"' --cfg 'feature="zlib-ng"' -C metadata=02ae29bc08faf3d8 -C extra-filename=-02ae29bc08faf3d8 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work/target/release/build/libz-sys-02ae29bc08faf3d8 -C linker=x86_64-apple-darwin13.4.0-clang -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work/target/release/deps --extern cc=/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work/target/release/deps/libcc-6d393b2df27c1f92.rlib --extern cmake=/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work/target/release/deps/libcmake-818d25fd5a22877c.rlib --extern pkg_config=/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work/target/release/deps/libpkg_config-b8a6842b1b583327.rlib --extern vcpkg=/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work/target/release/deps/libvcpkg-ddd7867e4658c133.rlib --cap-lints allow (exit status: 1) + warning: build failed, waiting for other jobs to finish... + error: failed to compile mgikit v0.1.5 (/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work), intermediate artifacts can be found at /opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work/target. + To reuse those artifacts with a future compilation, set the environment variable CARGO_TARGET_DIR to that path. + Extracting download + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/mgikit-0.1.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/mgikit_1717595220511/work/conda_build.sh']' returned non-zero exit status 101. + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/mgikit-0.1.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/mgikit-0.1.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/mgikit-0.1.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix +# Last 100 lines of the build log. diff --git a/recipes/mgikit/meta.yaml b/recipes/mgikit/meta.yaml index e6cd834ed4652..900126f1a46ed 100644 --- a/recipes/mgikit/meta.yaml +++ b/recipes/mgikit/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('mgikit', max_pin="x.x") }} diff --git a/recipes/mgkit/meta.yaml b/recipes/mgkit/meta.yaml index 49df2cbe40be4..a3645fbd2bf88 100644 --- a/recipes/mgkit/meta.yaml +++ b/recipes/mgkit/meta.yaml @@ -9,7 +9,7 @@ source: sha256: d19b26b20ec628a8d208a28b7df3956ba17799d11ea0b1d1ced8a6c1bded1343 build: - number: 2 + number: 3 skip: True # [py<37 or py > 39] script: rm mgkit/utils/*.c && USE_CYTHON=True {{ PYTHON }} -m pip install . --no-deps -vv entry_points: diff --git a/recipes/mgs-canopy/meta.yaml b/recipes/mgs-canopy/meta.yaml index 29a1da33a3af3..065bce4da6dbd 100644 --- a/recipes/mgs-canopy/meta.yaml +++ b/recipes/mgs-canopy/meta.yaml @@ -12,7 +12,7 @@ source: md5: {{ md5 }} build: - number: 7 + number: 8 skip: True # [osx] requirements: diff --git a/recipes/micall-lite/meta.yaml b/recipes/micall-lite/meta.yaml index ef60d65e77de2..217ffee25e745 100644 --- a/recipes/micall-lite/meta.yaml +++ b/recipes/micall-lite/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 4 + number: 5 script: {{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv skip: True # [py2k or osx] diff --git a/recipes/mira-moods/build_failure.osx-64.yaml b/recipes/mira-moods/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..1975dce4291ce --- /dev/null +++ b/recipes/mira-moods/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: b57dc98d2f651f1b95d8803759b80ca2c83183448f724cf4c4222a785f97d5dd # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/mira-moods-1.9.4.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2711, in build + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + newly_built_packages = bundlers[pkg_type](output_d, m, env, stats) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 1850, in bundle_conda + files = post_process_files(metadata, initial_files) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 1664, in post_process_files + post_build(m, new_files, build_python=python) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/post.py", line 1727, in post_build + post_process_shared_lib(m, f, prefix_files, host_prefix) + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/mira-moods-1.9.4.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/post.py", line 1603, in post_process_shared_lib + mk_relative_osx(path, host_prefix, m, files=files, rpaths=rpaths) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/post.py", line 470, in mk_relative_osx + names = macho.otool(path, prefix) + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/os_utils/macho.py", line 221, in otool + lines = check_output([otool, "-l", path], stderr=STDOUT).decode("utf-8") + File "/opt/mambaforge/envs/bioconda/lib/python3.10/subprocess.py", line 421, in check_output + return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, + File "/opt/mambaforge/envs/bioconda/lib/python3.10/subprocess.py", line 526, in run + raise CalledProcessError(retcode, process.args, + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/mira-moods-1.9.4.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + Using pip 24.0 from $PREFIX/lib/python3.12/site-packages/pip (python 3.12) + subprocess.CalledProcessError: Command '['/opt/mambaforge/envs/bioconda/conda-bld/mira-moods_1717611232909/_build_env/bin/llvm-otool', '-l', '/opt/mambaforge/envs/bioconda/conda-bld/mira-moods_1717611232909/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.12/site-packages/MOODS/_tools.cpython-312-darwin.so']' died with . + Non-user install because user site-packages disabled + Ignoring indexes: https://pypi.org/simple + Created temporary directory: /private/tmp/pip-build-tracker-cz6pu1q3 + Initialized build tracking at /private/tmp/pip-build-tracker-cz6pu1q3 + Created build tracker: /private/tmp/pip-build-tracker-cz6pu1q3 + Entered build tracker: /private/tmp/pip-build-tracker-cz6pu1q3 + Created temporary directory: /private/tmp/pip-install-alwg1khm + Created temporary directory: /private/tmp/pip-ephem-wheel-cache-tfvawc9t + Processing $SRC_DIR + Added file://$SRC_DIR to build tracker '/private/tmp/pip-build-tracker-cz6pu1q3' + Running setup.py (path:$SRC_DIR/setup.py) egg_info for package from file://$SRC_DIR + Created temporary directory: /private/tmp/pip-pip-egg-info-_04ai9g1 + Preparing metadata (setup.py): started + Preparing metadata (setup.py): finished with status 'done' + Source in $SRC_DIR has version 1.9.4.2, which satisfies requirement mira-moods==1.9.4.2 from file://$SRC_DIR + Removed mira-moods==1.9.4.2 from file://$SRC_DIR from build tracker '/private/tmp/pip-build-tracker-cz6pu1q3' + Created temporary directory: /private/tmp/pip-unpack-y11ehv9b + Building wheels for collected packages: mira-moods + Created temporary directory: /private/tmp/pip-wheel-k72_4yxq + Building wheel for mira-moods (setup.py): started + Destination directory: /private/tmp/pip-wheel-k72_4yxq + Building wheel for mira-moods (setup.py): finished with status 'done' + Created wheel for mira-moods: filename=mira_moods-1.9.4.2-cp312-cp312-macosx_10_9_x86_64.whl size=589618 sha256=1772a60ee896c5b0bf889724d91b8f0c28bcf945f0616fccd849478dd684143f + Stored in directory: /private/tmp/pip-ephem-wheel-cache-tfvawc9t/wheels/a4/ff/16/f51d120cb8b53c8435cb7c2553b2f3fc693287daaceeb58516 + Successfully built mira-moods + Installing collected packages: mira-moods + + Successfully installed mira-moods-1.9.4.2 + Removed build tracker: '/private/tmp/pip-build-tracker-cz6pu1q3' + + Resource usage statistics from building mira-moods: + Process count: 5 + CPU time: Sys=0:00:03.2, User=0:00:38.8 + Memory: 257.0M + Disk usage: 15.6K + Time elapsed: 0:01:05.9 + + + compiling .pyc files... + number of files: 23 +# Last 100 lines of the build log. diff --git a/recipes/mira-moods/meta.yaml b/recipes/mira-moods/meta.yaml index d3c573628ff38..305aac0447f80 100644 --- a/recipes/mira-moods/meta.yaml +++ b/recipes/mira-moods/meta.yaml @@ -11,7 +11,7 @@ source: build: script: {{ PYTHON }} -m pip install . -vv - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin="x") }} diff --git a/recipes/mnnpy/build_failure.linux-64.yaml b/recipes/mnnpy/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..effef0eb341c1 --- /dev/null +++ b/recipes/mnnpy/build_failure.linux-64.yaml @@ -0,0 +1,106 @@ +recipe_sha: 7b5d61c423e3b51cf255798ddd53120b59db7f9da6012b9b05632d2f99608a3b # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + [31mscipy [1.3.2|1.3.3|1.4.0|1.4.1][0m would require + [31mpython_abi * *_cp38[0m, which conflicts with any installable versions previously reported; + [31mscipy [1.4.1|1.5.0|1.5.1|1.5.2|1.5.3][0m would require + [31mpython_abi 3.6.* *_cp36m[0m, which conflicts with any installable versions previously reported; + [31mscipy [1.4.1|1.5.0|1.5.1|1.5.2|1.5.3][0m would require + [31mpython_abi 3.6 *_pypy36_pp73[0m, which conflicts with any installable versions previously reported; + [31mscipy [1.4.1|1.5.0|...|1.7.3][0m would require + [31mpython_abi 3.7.* *_cp37m[0m, which conflicts with any installable versions previously reported; + [31mscipy [1.4.1|1.5.0|...|1.8.1][0m would require + [31mpython_abi 3.8.* *_cp38[0m, which conflicts with any installable versions previously reported; + [31mscipy [1.5.2|1.5.3|...|1.8.1][0m would require + [31mpython_abi 3.9.* *_cp39[0m, which conflicts with any installable versions previously reported; + [31mscipy [1.6.0|1.6.1|...|1.7.3][0m would require + [31mpython_abi 3.7 *_pypy37_pp73[0m, which conflicts with any installable versions previously reported; + [31mscipy [1.7.2|1.7.3|1.8.0|1.8.1][0m would require + [31mpython_abi 3.10.* *_cp310[0m, which conflicts with any installable versions previously reported; + [31mscipy 1.8.1[0m would require + [31mpython_abi 3.8 *_pypy38_pp73[0m, which conflicts with any installable versions previously reported; + [31mscipy 1.8.1[0m would require + [31mpython_abi 3.9 *_pypy39_pp73[0m, which conflicts with any installable versions previously reported. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build + create_build_envs(top_level_pkg, notest) + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs + raise e + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs + environ.get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("scipy==1.7.2=py310hea5193d_0"), MatchSpec("python_abi=3.10[build=*_cp310]")} + Encountered problems while solving: + - package scipy-1.7.2-py310hea5193d_0 requires python_abi 3.10.* *_cp310, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + [32mpython_abi 3.12.* *_cp312[0m is requested and can be installed; + [31mscipy <1.9.0 [0m is not installable because there are no viable options + [31mscipy [0.17.1|0.18.0|...|1.2.1][0m would require + [31mpython_abi * *_cp27mu[0m, which conflicts with any installable versions previously reported; + [31mscipy [0.17.1|0.18.0|0.18.1|0.19.1][0m would require + [31mpython_abi * *_cp34m[0m, which conflicts with any installable versions previously reported; + [31mscipy [0.17.1|0.18.0|...|1.1.0][0m would require + [31mpython_abi * *_cp35m[0m, which conflicts with any installable versions previously reported; + [31mscipy [0.18.1|0.19.0|...|1.4.1][0m would require + [31mpython_abi * *_cp36m[0m, which conflicts with any installable versions previously reported; + [31mscipy [1.1.0|1.2.0|...|1.4.1][0m would require + [31mpython_abi * *_cp37m[0m, which conflicts with any installable versions previously reported; + [31mscipy [1.3.2|1.3.3|1.4.0|1.4.1][0m would require + [31mpython_abi * *_cp38[0m, which conflicts with any installable versions previously reported; + [31mscipy [1.4.1|1.5.0|1.5.1|1.5.2|1.5.3][0m would require + [31mpython_abi 3.6.* *_cp36m[0m, which conflicts with any installable versions previously reported; + [31mscipy [1.4.1|1.5.0|1.5.1|1.5.2|1.5.3][0m would require + [31mpython_abi 3.6 *_pypy36_pp73[0m, which conflicts with any installable versions previously reported; + [31mscipy [1.4.1|1.5.0|...|1.7.3][0m would require + [31mpython_abi 3.7.* *_cp37m[0m, which conflicts with any installable versions previously reported; + [31mscipy [1.4.1|1.5.0|...|1.8.1][0m would require + [31mpython_abi 3.8.* *_cp38[0m, which conflicts with any installable versions previously reported; + [31mscipy [1.5.2|1.5.3|...|1.8.1][0m would require + [31mpython_abi 3.9.* *_cp39[0m, which conflicts with any installable versions previously reported; + [31mscipy [1.6.0|1.6.1|...|1.7.3][0m would require + [31mpython_abi 3.7 *_pypy37_pp73[0m, which conflicts with any installable versions previously reported; + [31mscipy [1.7.2|1.7.3|1.8.0|1.8.1][0m would require + [31mpython_abi 3.10.* *_cp310[0m, which conflicts with any installable versions previously reported; + [31mscipy 1.8.1[0m would require + [31mpython_abi 3.8 *_pypy38_pp73[0m, which conflicts with any installable versions previously reported; + [31mscipy 1.8.1[0m would require + [31mpython_abi 3.9 *_pypy39_pp73[0m, which conflicts with any installable versions previously reported. +# Last 100 lines of the build log. +category: |- + dependency issue diff --git a/recipes/mnnpy/build_failure.osx-64.yaml b/recipes/mnnpy/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..7df27a87870d8 --- /dev/null +++ b/recipes/mnnpy/build_failure.osx-64.yaml @@ -0,0 +1,106 @@ +recipe_sha: 7b5d61c423e3b51cf255798ddd53120b59db7f9da6012b9b05632d2f99608a3b # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + numpy >=1.22.3,<1.27 , which can be installed; + python_abi 3.9.* *_cp39, which can be installed; + scipy >=1.0 , which can be installed; + numba [0.59.0|0.59.1] would require + python_abi 3.12.* *_cp312, which can be installed; + python >=3.11,<3.12.0a0 is requested and can be installed; + python_abi 3.11.* *_cp311 is not installable because it conflicts with any installable versions previously reported; + scipy <1.9.0 is installable with the potential options + scipy [0.17.1|0.18.0|0.18.1|0.19.0|0.19.1] conflicts with any installable versions previously reported; + scipy [1.0.0|1.0.1|1.1.0|1.2.0|1.2.1] would require + python [2.7* |>=2.7,<2.8.0a0 ], which conflicts with any installable versions previously reported; + scipy [1.0.0|1.0.1|1.1.0] would require + python [3.5* |>=3.5,<3.6.0a0 ], which conflicts with any installable versions previously reported; + scipy [1.0.0|1.0.1] would require + python 3.6* , which conflicts with any installable versions previously reported; + scipy [1.1.0|1.2.0|...|1.4.1] would require + python >=3.6,<3.7.0a0 , which conflicts with any installable versions previously reported; + scipy [1.1.0|1.2.0|...|1.4.1] would require + python >=3.7,<3.8.0a0 , which conflicts with any installable versions previously reported; + scipy [1.3.2|1.3.3|1.4.0|1.4.1] would require + python >=3.8,<3.9.0a0 , which conflicts with any installable versions previously reported; + scipy [1.4.1|1.5.0|1.5.1|1.5.2|1.5.3] would require + python_abi 3.6.* *_cp36m, which can be installed; + scipy [1.4.1|1.5.0|1.5.1|1.5.2|1.5.3] would require + python_abi 3.6 *_pypy36_pp73, which can be installed; + scipy [1.4.1|1.5.0|...|1.7.3] would require + python_abi 3.7.* *_cp37m, which can be installed; + scipy [1.4.1|1.5.0|...|1.8.1] would require + python_abi 3.8.* *_cp38, which can be installed; + scipy [1.5.2|1.5.3|...|1.8.1] would require + python_abi 3.9.* *_cp39, which can be installed; + scipy [1.6.0|1.6.1|...|1.7.3] would require + python_abi 3.7 *_pypy37_pp73, which can be installed; + scipy [1.7.2|1.7.3|1.8.0|1.8.1] would require + python_abi 3.10.* *_cp310, which can be installed; + scipy 1.7.3 would require + numpy [>=1.21.6,<1.23 |>=1.21.6,<2.0a0 ] with the potential options + numpy 1.23.4, which can be installed; + numpy [1.23.4|1.23.5|...|1.24.4], which can be installed (as previously explained); + numpy [1.23.5|1.24.0|...|1.24.4], which can be installed (as previously explained); + numpy [1.23.5|1.24.0|...|1.24.4], which can be installed (as previously explained); + numpy [1.23.5|1.24.0|...|1.24.4], which can be installed (as previously explained); + numpy [1.23.5|1.24.0|...|1.24.4], which can be installed (as previously explained); + numpy [1.23.5|1.24.0|...|1.24.4], which can be installed (as previously explained); + numpy [1.25.0|1.25.1|...|1.26.4], which cannot be installed (as previously explained); + numpy [1.25.0|1.25.1|...|1.26.4], which cannot be installed (as previously explained); + numpy [1.25.0|1.25.1|...|1.26.4], which cannot be installed (as previously explained); + numpy [1.25.0|1.25.1|...|1.26.4], which cannot be installed (as previously explained); + numpy [1.26.0|1.26.2|1.26.3|1.26.4], which can be installed (as previously explained); + numpy [1.18.5|1.19.0|...|1.21.6], which cannot be installed (as previously explained); + numpy [1.18.5|1.19.0|...|1.22.4], which cannot be installed (as previously explained); + numpy [1.19.5|1.20.3|...|1.22.4], which cannot be installed (as previously explained); + numpy [1.19.2|1.19.4|...|1.22.4], which cannot be installed (as previously explained); + numpy [1.19.5|1.20.3|...|1.22.4], which cannot be installed (as previously explained); + numpy [1.21.3|1.21.4|...|1.22.4], which cannot be installed (as previously explained); + numpy [1.23.0|1.23.1|1.23.2|1.23.3], which can be installed; + scipy [1.7.3|1.8.1] would require + numpy [>=1.20.3,<1.23 |>=1.20.3,<2.0a0 ] with the potential options + numpy 1.23.4, which can be installed; + numpy [1.23.4|1.23.5|...|1.24.4], which can be installed (as previously explained); + numpy [1.23.5|1.24.0|...|1.24.4], which can be installed (as previously explained); + numpy [1.23.5|1.24.0|...|1.24.4], which can be installed (as previously explained); + numpy [1.23.5|1.24.0|...|1.24.4], which can be installed (as previously explained); + numpy [1.23.5|1.24.0|...|1.24.4], which can be installed (as previously explained); + numpy [1.23.5|1.24.0|...|1.24.4], which can be installed (as previously explained); + numpy [1.25.0|1.25.1|...|1.26.4], which cannot be installed (as previously explained); + numpy [1.25.0|1.25.1|...|1.26.4], which cannot be installed (as previously explained); + numpy [1.25.0|1.25.1|...|1.26.4], which cannot be installed (as previously explained); + numpy [1.25.0|1.25.1|...|1.26.4], which cannot be installed (as previously explained); + numpy [1.26.0|1.26.2|1.26.3|1.26.4], which can be installed (as previously explained); + numpy [1.19.5|1.20.0|...|1.21.5], which cannot be installed (as previously explained); + numpy [1.18.5|1.19.0|...|1.21.6], which cannot be installed (as previously explained); + numpy [1.18.5|1.19.0|...|1.22.4], which cannot be installed (as previously explained); + numpy [1.19.5|1.20.3|...|1.22.4], which cannot be installed (as previously explained); + numpy [1.19.2|1.19.4|...|1.22.4], which cannot be installed (as previously explained); + numpy [1.19.5|1.20.3|...|1.22.4], which cannot be installed (as previously explained); + numpy [1.21.3|1.21.4|...|1.22.4], which cannot be installed (as previously explained); + numpy [1.23.0|1.23.1|1.23.2|1.23.3], which can be installed; + python_abi [3.8 *_pypy38_pp73|3.8.* *_cp38|3.9 *_pypy39_pp73|3.9.* *_cp39], which can be installed; + scipy 1.8.1 would require + numpy >=1.21.6,<1.25 with the potential options + numpy 1.23.4, which can be installed; + numpy [1.23.4|1.23.5|...|1.24.4], which can be installed (as previously explained); + numpy [1.23.5|1.24.0|...|1.24.4], which can be installed (as previously explained); + numpy [1.23.5|1.24.0|...|1.24.4], which can be installed (as previously explained); + numpy [1.23.5|1.24.0|...|1.24.4], which can be installed (as previously explained); + numpy [1.23.5|1.24.0|...|1.24.4], which can be installed (as previously explained); + numpy [1.23.5|1.24.0|...|1.24.4], which can be installed (as previously explained); + numpy [1.18.5|1.19.0|...|1.21.6], which cannot be installed (as previously explained); + numpy [1.18.5|1.19.0|...|1.22.4], which cannot be installed (as previously explained); + numpy [1.19.5|1.20.3|...|1.22.4], which cannot be installed (as previously explained); + numpy [1.19.2|1.19.4|...|1.22.4], which cannot be installed (as previously explained); + numpy [1.19.5|1.20.3|...|1.22.4], which cannot be installed (as previously explained); + numpy [1.21.3|1.21.4|...|1.22.4], which cannot be installed (as previously explained); + numpy [1.23.0|1.23.1|1.23.2|1.23.3], which can be installed; + python_abi 3.10.* *_cp310, which can be installed; + scipy 1.8.1 would require + python_abi 3.8 *_pypy38_pp73, which can be installed; + scipy 1.8.1 would require + python_abi 3.9 *_pypy39_pp73, which can be installed. +# Last 100 lines of the build log. +category: |- + dependency issue diff --git a/recipes/mnnpy/meta.yaml b/recipes/mnnpy/meta.yaml index 53aba3db2c063..59a89fb9c6980 100644 --- a/recipes/mnnpy/meta.yaml +++ b/recipes/mnnpy/meta.yaml @@ -11,9 +11,9 @@ source: - 0001-Fix-missing-forceobj-for-numba.jit.patch build: - number: 8 - # uses __futures__, which didn't exist until 3.7 - skip: True # [py<37] + number: 9 + run_exports: + - {{ pin_subpackage("mnnpy", max_pin="x.x") }} script: {{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv requirements: diff --git a/recipes/moabs/build_failure.linux-64.yaml b/recipes/moabs/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..67871011ab0b9 --- /dev/null +++ b/recipes/moabs/build_failure.linux-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 49bcfadd754543cd5a9f399a5595620b94e82692bc80c5e1d69ed8f5de38e8e5 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: compiler error +log: |2- + 181 | m_resizer.adjust_size(in, [this](auto&& arg) { return this->resize_impl(std::forward(arg)); }); + | ^~~~ + In file included from /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/adaptive_adams_bashforth_moulton.hpp:19, + from /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint.hpp:54: + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/detail/adaptive_adams_coefficients.hpp: In member function 'void boost::numeric::odeint::detail::adaptive_adams_coefficients::do_step(const deriv_type&, int)': + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/detail/adaptive_adams_coefficients.hpp:135:48: error: use of 'auto' in lambda parameter declaration only available with '-std=c14' or '-std=gnu14' + 135 | m_phi_resizer.adjust_size(dxdt, [this](auto&& arg) { return this->resize_phi_impl(std::forward(arg)); }); + | ^~~~ + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/adaptive_adams_bashforth_moulton.hpp: In member function 'void boost::numeric::odeint::adaptive_adams_bashforth_moulton::do_step(System, state_type&, time_type, time_type)': + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/adaptive_adams_bashforth_moulton.hpp:89:50: error: use of 'auto' in lambda parameter declaration only available with '-std=c14' or '-std=gnu14' + 89 | m_xnew_resizer.adjust_size(inOut, [this](auto&& arg) { return this->resize_xnew_impl(std::forward(arg)); }); + | ^~~~ + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/adaptive_adams_bashforth_moulton.hpp: In member function 'void boost::numeric::odeint::adaptive_adams_bashforth_moulton::do_step(System, state_type&, time_type, time_type, state_type&)': + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/adaptive_adams_bashforth_moulton.hpp:104:50: error: use of 'auto' in lambda parameter declaration only available with '-std=c14' or '-std=gnu14' + 104 | m_xnew_resizer.adjust_size(inOut, [this](auto&& arg) { return this->resize_xnew_impl(std::forward(arg)); }); + | ^~~~ + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/adaptive_adams_bashforth_moulton.hpp: In member function 'void boost::numeric::odeint::adaptive_adams_bashforth_moulton::initialize(ExplicitStepper, System, state_type&, time_type&, time_type)': + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/adaptive_adams_bashforth_moulton.hpp:131:50: error: use of 'auto' in lambda parameter declaration only available with '-std=c14' or '-std=gnu14' + 131 | m_dxdt_resizer.adjust_size(inOut, [this](auto&& arg) { return this->resize_dxdt_impl(std::forward(arg)); }); + | ^~~~ + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/adaptive_adams_bashforth_moulton.hpp: In member function 'void boost::numeric::odeint::adaptive_adams_bashforth_moulton::do_step_impl(System, const state_type&, time_type, state_type&, time_type&, state_type&)': + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/adaptive_adams_bashforth_moulton.hpp:171:47: error: use of 'auto' in lambda parameter declaration only available with '-std=c14' or '-std=gnu14' + 171 | m_xerr_resizer.adjust_size(in, [this](auto&& arg) { return this->resize_xerr_impl(std::forward(arg)); }); + | ^~~~ + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/adaptive_adams_bashforth_moulton.hpp:172:47: error: use of 'auto' in lambda parameter declaration only available with '-std=c14' or '-std=gnu14' + 172 | m_dxdt_resizer.adjust_size(in, [this](auto&& arg) { return this->resize_dxdt_impl(std::forward(arg)); }); + | ^~~~ + In file included from /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint.hpp:55: + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/controlled_adams_bashforth_moulton.hpp: In member function 'void boost::numeric::odeint::controlled_adams_bashforth_moulton::initialize_controlled(ExplicitStepper, System, state_type&, time_type&, time_type&)': + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/controlled_adams_bashforth_moulton.hpp:181:50: error: use of 'auto' in lambda parameter declaration only available with '-std=c14' or '-std=gnu14' + 181 | m_dxdt_resizer.adjust_size(inOut, [this](auto&& arg) { return this->resize_dxdt_impl(std::forward(arg)); }); + | ^~~~ + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/controlled_adams_bashforth_moulton.hpp: In member function 'boost::numeric::odeint::controlled_step_result boost::numeric::odeint::controlled_adams_bashforth_moulton::try_step(System, state_type&, time_type&, time_type&)': + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/controlled_adams_bashforth_moulton.hpp:209:50: error: use of 'auto' in lambda parameter declaration only available with '-std=c14' or '-std=gnu14' + 209 | m_xnew_resizer.adjust_size(inOut, [this](auto&& arg) { return this->resize_xnew_impl(std::forward(arg)); }); + | ^~~~ + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/controlled_adams_bashforth_moulton.hpp: In member function 'boost::numeric::odeint::controlled_step_result boost::numeric::odeint::controlled_adams_bashforth_moulton::try_step(System, const state_type&, time_type&, state_type&, time_type&)': + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/controlled_adams_bashforth_moulton.hpp:224:47: error: use of 'auto' in lambda parameter declaration only available with '-std=c14' or '-std=gnu14' + 224 | m_xerr_resizer.adjust_size(in, [this](auto&& arg) { return this->resize_xerr_impl(std::forward(arg)); }); + | ^~~~ + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/controlled_adams_bashforth_moulton.hpp:225:47: error: use of 'auto' in lambda parameter declaration only available with '-std=c14' or '-std=gnu14' + 225 | m_dxdt_resizer.adjust_size(in, [this](auto&& arg) { return this->resize_dxdt_impl(std::forward(arg)); }); + | ^~~~ + In file included from /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint.hpp:57: + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/implicit_euler.hpp: In member function 'void boost::numeric::odeint::implicit_euler::do_step(System, state_type&, time_type, time_type)': + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/implicit_euler.hpp:83:41: error: use of 'auto' in lambda parameter declaration only available with '-std=c14' or '-std=gnu14' + 83 | m_resizer.adjust_size(x, [this](auto&& arg) { return this->resize_impl(std::forward(arg)); }); + | ^~~~ + In file included from /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint.hpp:58: + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/rosenbrock4.hpp: In member function 'void boost::numeric::odeint::rosenbrock4::do_step(System, const state_type&, time_type, state_type&, time_type, state_type&)': + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/rosenbrock4.hpp:181:41: error: use of 'auto' in lambda parameter declaration only available with '-std=c14' or '-std=gnu14' + 181 | m_resizer.adjust_size(x, [this](auto&& arg) { return this->resize_impl(std::forward(arg)); }); + | ^~~~ + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/rosenbrock4.hpp: In member function 'void boost::numeric::odeint::rosenbrock4::do_step(System, const state_type&, time_type, state_type&, time_type)': + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/rosenbrock4.hpp:252:47: error: use of 'auto' in lambda parameter declaration only available with '-std=c14' or '-std=gnu14' + 252 | m_x_err_resizer.adjust_size(x, [this](auto&& arg) { return this->resize_x_err(std::forward(arg)); }); + | ^~~~ + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/rosenbrock4.hpp: In member function 'void boost::numeric::odeint::rosenbrock4::do_step(System, state_type&, time_type, time_type)': + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/rosenbrock4.hpp:259:47: error: use of 'auto' in lambda parameter declaration only available with '-std=c14' or '-std=gnu14' + 259 | m_x_err_resizer.adjust_size(x, [this](auto&& arg) { return this->resize_x_err(std::forward(arg)); }); + | ^~~~ + In file included from /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint.hpp:59: + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/rosenbrock4_controller.hpp: In member function 'boost::numeric::odeint::controlled_step_result boost::numeric::odeint::rosenbrock4_controller::try_step(System, state_type&, time_type&, time_type&)': + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/rosenbrock4_controller.hpp:102:46: error: use of 'auto' in lambda parameter declaration only available with '-std=c14' or '-std=gnu14' + 102 | m_xnew_resizer.adjust_size(x, [this](auto&& arg) { return this->resize_m_xnew(std::forward(arg)); }); + | ^~~~ + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/rosenbrock4_controller.hpp: In member function 'boost::numeric::odeint::controlled_step_result boost::numeric::odeint::rosenbrock4_controller::try_step(System, const state_type&, time_type&, state_type&, time_type&)': + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/rosenbrock4_controller.hpp:130:46: error: use of 'auto' in lambda parameter declaration only available with '-std=c14' or '-std=gnu14' + 130 | m_xerr_resizer.adjust_size(x, [this](auto&& arg) { return this->resize_m_xerr(std::forward(arg)); }); + | ^~~~ + In file included from /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint.hpp:60: + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/rosenbrock4_dense_output.hpp: In member function 'void boost::numeric::odeint::rosenbrock4_dense_output::initialize(const StateType&, time_type, time_type)': + /opt/conda/conda-bld/moabs_1718121659934/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/boost/numeric/odeint/stepper/rosenbrock4_dense_output.hpp:70:42: error: use of 'auto' in lambda parameter declaration only available with '-std=c14' or '-std=gnu14' + 70 | m_resizer.adjust_size(x0, [this](auto&& arg) { return this->resize_impl(std::forward(arg)); }); + | ^~~~ + At global scope: + cc1plus: note: unrecognized command-line option '-Wno-invalid-partial-specialization' may have been intended to silence earlier diagnostics + make[3]: *** [Makefile:482: mcomp-bbf.o] Error 1 + make[3]: Leaving directory '$SRC_DIR/src/mcomp' + make[2]: *** [Makefile:312: all-recursive] Error 1 + make[2]: Leaving directory '$SRC_DIR/src' + make[1]: *** [Makefile:357: all-recursive] Error 1 + make[1]: Leaving directory '$SRC_DIR' + make: *** [Makefile:298: all] Error 2 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/moabs_1718121659934/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/moabs/build_failure.osx-64.yaml b/recipes/moabs/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..a7538db8ef42a --- /dev/null +++ b/recipes/moabs/build_failure.osx-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 49bcfadd754543cd5a9f399a5595620b94e82692bc80c5e1d69ed8f5de38e8e5 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: compiler error +log: |- + checking for uint32_t... yes + checking that generated files are newer than configure... done + configure: creating ./config.status + config.status: creating Makefile + config.status: creating lib/Makefile + config.status: creating src/Makefile + config.status: creating src/bsmap/Makefile + config.status: creating src/ExactNumCI/Makefile + config.status: creating src/mcall/Makefile + config.status: creating src/mcomp/Makefile + config.status: creating src/bseqc2/Makefile + config.status: creating src/pefilter/Makefile + config.status: creating config.h + config.status: executing depfiles commands + make all-recursive + make[1]: Entering directory '$SRC_DIR' + Making all in lib + make[2]: Entering directory '$SRC_DIR/lib' + Making all in gzstream + make[3]: Entering directory '$SRC_DIR/lib/gzstream' + x86_64-apple-darwin13.4.0-clang -I. -O -c -o gzstream.o gzstream.C + ar cr libgzstream.a gzstream.o + make[3]: Leaving directory '$SRC_DIR/lib/gzstream' + Making all in samtools + make[3]: Entering directory '$SRC_DIR/lib/samtools' + make[4]: Entering directory '$SRC_DIR/lib/samtools' + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -DBGZF_CACHE -I. bgzf.c -o bgzf.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. kstring.c -o kstring.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. bam_aux.c -o bam_aux.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. bam.c -o bam.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. bam_import.c -o bam_import.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. sam.c -o sam.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. bam_index.c -o bam_index.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. bam_pileup.c -o bam_pileup.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. bam_lpileup.c -o bam_lpileup.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. bam_md.c -o bam_md.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. razf.c -o razf.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. faidx.c -o faidx.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. bedidx.c -o bedidx.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. knetfile.c -o knetfile.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. bam_sort.c -o bam_sort.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. sam_header.c -o sam_header.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. bam_reheader.c -o bam_reheader.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. kprobaln.c -o kprobaln.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. bam_cat.c -o bam_cat.o + x86_64-apple-darwin13.4.0-ar -csru libbam.a bgzf.o kstring.o bam_aux.o bam.o bam_import.o sam.o bam_index.o bam_pileup.o bam_lpileup.o bam_md.o razf.o faidx.o bedidx.o knetfile.o bam_sort.o sam_header.o bam_reheader.o kprobaln.o bam_cat.o + make[4]: Leaving directory '$SRC_DIR/lib/samtools' + make[4]: Entering directory '$SRC_DIR/lib/samtools/bcftools' + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I.. -I. bcf.c -o bcf.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I.. -I. vcf.c -o vcf.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I.. -I. bcfutils.c -o bcfutils.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I.. -I. prob1.c -o prob1.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I.. -I. em.c -o em.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I.. -I. kfunc.c -o kfunc.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I.. -I. kmin.c -o kmin.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I.. -I. index.c -o index.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I.. -I. fet.c -o fet.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I.. -I. mut.c -o mut.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I.. -I. bcf2qcall.c -o bcf2qcall.o + x86_64-apple-darwin13.4.0-ar -csru libbcf.a bcf.o vcf.o bcfutils.o prob1.o em.o kfunc.o kmin.o index.o fet.o mut.o bcf2qcall.o + make[4]: Leaving directory '$SRC_DIR/lib/samtools/bcftools' + make[4]: Entering directory '$SRC_DIR/lib/samtools/misc' + make[4]: Nothing to be done for 'lib'. + make[4]: Leaving directory '$SRC_DIR/lib/samtools/misc' + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. bam_tview.c -o bam_tview.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. bam_plcmd.c -o bam_plcmd.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. sam_view.c -o sam_view.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. bam_rmdup.c -o bam_rmdup.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. bam_rmdupse.c -o bam_rmdupse.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. bam_mate.c -o bam_mate.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. bam_stat.c -o bam_stat.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. bam_color.c -o bam_color.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. bamtk.c -o bamtk.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. kaln.c -o kaln.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. bam2bcf.c -o bam2bcf.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. bam2bcf_indel.c -o bam2bcf_indel.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. errmod.c -o errmod.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. sample.c -o sample.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. cut_target.c -o cut_target.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. phase.c -o phase.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. bam2depth.c -o bam2depth.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. padding.c -o padding.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. bedcov.c -o bedcov.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. bamshuf.c -o bamshuf.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. bam_tview_curses.c -o bam_tview_curses.o + x86_64-apple-darwin13.4.0-clang -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. bam_tview_html.c -o bam_tview_html.o + x86_64-apple-darwin13.4.0-clang -g -Wall -O2 -o samtools bam_tview.o bam_plcmd.o sam_view.o bam_rmdup.o bam_rmdupse.o bam_mate.o bam_stat.o bam_color.o bamtk.o kaln.o bam2bcf.o bam2bcf_indel.o errmod.o sample.o cut_target.o phase.o bam2depth.o padding.o bedcov.o bamshuf.o bam_tview_curses.o bam_tview_html.o -L$PREFIX/lib libbam.a -Lbcftools -lbcf -lncurses -lm -lz -lpthread + make[3]: Leaving directory '$SRC_DIR/lib/samtools' + make[3]: Entering directory '$SRC_DIR/lib' + make[3]: Nothing to be done for 'all-am'. + make[3]: Leaving directory '$SRC_DIR/lib' + make[2]: Leaving directory '$SRC_DIR/lib' + Making all in src + make[2]: Entering directory '$SRC_DIR/src' + Making all in bsmap + make[3]: Entering directory '$SRC_DIR/src/bsmap' + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I../.. -DMAXHITS=1000 -DTHREAD -funroll-loops -I../../lib/gzstream -I../../lib/samtools -Wno-narrowing -I$PREFIX/include -O3 -m64 -MT bsmap-param.o -MD -MP -MF .deps/bsmap-param.Tpo -c -o bsmap-param.o test -f 'param.cpp' || echo './'param.cpp + make[3]: Leaving directory '$SRC_DIR/src/bsmap' + make[2]: Leaving directory '$SRC_DIR/src' + make[1]: Leaving directory '$SRC_DIR' +# Last 100 lines of the build log. diff --git a/recipes/moabs/meta.yaml b/recipes/moabs/meta.yaml index 7e0fe1c488f6e..27ea2805a5cec 100644 --- a/recipes/moabs/meta.yaml +++ b/recipes/moabs/meta.yaml @@ -5,7 +5,9 @@ package: version: {{ version }} build: - number: 6 + number: 7 + run_exports: + - {{ pin_subpackage('moabs', max_pin="x") }} source: url: https://github.com/sunnyisgalaxy/moabs/archive/v{{ version }}.tar.gz diff --git a/recipes/mockinbird/build_failure.linux-64.yaml b/recipes/mockinbird/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..cbfb155ce2b1c --- /dev/null +++ b/recipes/mockinbird/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: fa97115a6465685e387b86b11bb83fa2635e08e58d91df52e44b7e93a1f6f337 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + [32mpython [3.5* |>=3.5,<3.6.0a0 ][0m, which can be installed; + [32mpysam [0.10.0|0.11.1|...|0.9.1][0m would require + [32mpython 3.6* [0m, which can be installed; + [32mpysam [0.10.0|0.15.2|...|0.9.1][0m would require + [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; + [32mpysam [0.10.0|0.14.1|...|0.9.1][0m would require + [32mpython >=3.6,<3.7.0a0 [0m, which can be installed; + [31mpysam [0.15.1|0.15.2|0.15.3][0m would require + [31mlibdeflate >=1.0,<1.1.0a0 [0m, which conflicts with any installable versions previously reported; + [32mpysam [0.15.2|0.15.4|...|0.9.1][0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mpysam [0.15.2|0.15.3|0.15.4|0.9.1][0m would require + [32mpython >=3.7,<3.8.0a0 [0m, which can be installed; + [32mpysam [0.15.2|0.16.0.1|...|0.9.1][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mpysam [0.16.0.1|0.17.0|...|0.9.1][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mpysam [0.19.1|0.20.0|0.21.0|0.22.0|0.22.1][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [31mpython >=3.11,<3.12.0a0 [0m is not installable because it requires + [31mpython_abi 3.11.* *_cp311[0m, which conflicts with any installable versions previously reported. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build + create_build_envs(top_level_pkg, notest) + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs + raise e + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs + environ.get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("pysam==0.15.1=py27h0380709_0"), MatchSpec("libdeflate[version='>=1.0,<1.1.0a0']")} + Encountered problems while solving: + - package pysam-0.15.1-py27h0380709_0 requires libdeflate >=1.0,<1.1.0a0, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + [32mpysam[0m is installable with the potential options + [32mpysam 0.7.7[0m would require + [32mpython <3.0.0 [0m, which can be installed; + [32mpysam [0.10.0|0.11.0|...|0.9.1.4][0m would require + [32mpython [2.7* |>=2.7,<2.8.0a0 ][0m, which can be installed; + [32mpysam [0.10.0|0.15.2|...|0.9.1][0m would require + [32mpython_abi 2.7.* *_cp27mu[0m, which can be installed; + [32mpysam [0.10.0|0.11.0|...|0.9.1.4][0m would require + [32mpython 3.4* [0m, which can be installed; + [32mpysam [0.10.0|0.11.0|...|0.9.1.4][0m would require + [32mpython [3.5* |>=3.5,<3.6.0a0 ][0m, which can be installed; + [32mpysam [0.10.0|0.11.1|...|0.9.1][0m would require + [32mpython 3.6* [0m, which can be installed; + [32mpysam [0.10.0|0.15.2|...|0.9.1][0m would require + [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; + [32mpysam [0.10.0|0.14.1|...|0.9.1][0m would require + [32mpython >=3.6,<3.7.0a0 [0m, which can be installed; + [31mpysam [0.15.1|0.15.2|0.15.3][0m would require + [31mlibdeflate >=1.0,<1.1.0a0 [0m, which conflicts with any installable versions previously reported; + [32mpysam [0.15.2|0.15.4|...|0.9.1][0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mpysam [0.15.2|0.15.3|0.15.4|0.9.1][0m would require + [32mpython >=3.7,<3.8.0a0 [0m, which can be installed; + [32mpysam [0.15.2|0.16.0.1|...|0.9.1][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mpysam [0.16.0.1|0.17.0|...|0.9.1][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mpysam [0.19.1|0.20.0|0.21.0|0.22.0|0.22.1][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [31mpython >=3.11,<3.12.0a0 [0m is not installable because it requires + [31mpython_abi 3.11.* *_cp311[0m, which conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/mockinbird/build_failure.osx-64.yaml b/recipes/mockinbird/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..9e691db3aa88e --- /dev/null +++ b/recipes/mockinbird/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: fa97115a6465685e387b86b11bb83fa2635e08e58d91df52e44b7e93a1f6f337 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + packages_from_this = build( + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + Using pip 24.0 from $PREFIX/lib/python3.12/site-packages/pip (python 3.12) + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + Non-user install because user site-packages disabled + Ignoring indexes: https://pypi.org/simple + Created temporary directory: /private/tmp/pip-build-tracker-s989kehk + Initialized build tracking at /private/tmp/pip-build-tracker-s989kehk + Created build tracker: /private/tmp/pip-build-tracker-s989kehk + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + Entered build tracker: /private/tmp/pip-build-tracker-s989kehk + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/mockinbird_1717900420818/work/conda_build.sh']' returned non-zero exit status 1. + Created temporary directory: /private/tmp/pip-install-iw4dhjx0 + Created temporary directory: /private/tmp/pip-ephem-wheel-cache-nmy_4ltz + Processing $SRC_DIR + Added file://$SRC_DIR to build tracker '/private/tmp/pip-build-tracker-s989kehk' + Running setup.py (path:$SRC_DIR/setup.py) egg_info for package from file://$SRC_DIR + Created temporary directory: /private/tmp/pip-pip-egg-info-38y4ltr2 + Preparing metadata (setup.py): started + Preparing metadata (setup.py): finished with status 'error' + Exception information: + Traceback (most recent call last): + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/operations/build/metadata_legacy.py", line 64, in generate_metadata + call_subprocess( + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/utils/subprocess.py", line 224, in call_subprocess + raise error + pip._internal.exceptions.InstallationSubprocessError: python setup.py egg_info exited with 1 + + The above exception was the direct cause of the following exception: + + Traceback (most recent call last): + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper + status = run_func(*args) + ^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper + return func(self, options, args) + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/commands/install.py", line 377, in run + requirement_set = resolver.resolve( + ^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 76, in resolve + collected = self.factory.collect_root_requirements(root_reqs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 534, in collect_root_requirements + reqs = list( + ^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 490, in _make_requirements_from_install_req + cand = self._make_base_candidate_from_link( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 228, in _make_base_candidate_from_link + self._link_candidate_cache[link] = LinkCandidate( + ^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 290, in __init__ + super().__init__( + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 156, in __init__ + self.dist = self._prepare() + ^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 222, in _prepare + dist = self._prepare_distribution() + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 301, in _prepare_distribution + return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 525, in prepare_linked_requirement + return self._prepare_linked_requirement(req, parallel_builds) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 640, in _prepare_linked_requirement + dist = _get_prepared_distribution( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 71, in _get_prepared_distribution + abstract_dist.prepare_distribution_metadata( + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/distributions/sdist.py", line 67, in prepare_distribution_metadata + self.req.prepare_metadata() + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/req/req_install.py", line 585, in prepare_metadata + self.metadata_directory = generate_metadata_legacy( + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/operations/build/metadata_legacy.py", line 71, in generate_metadata + raise MetadataGenerationFailed(package_details=details) from error + pip._internal.exceptions.MetadataGenerationFailed: metadata generation failed + Removed file://$SRC_DIR from build tracker '/private/tmp/pip-build-tracker-s989kehk' + Removed build tracker: '/private/tmp/pip-build-tracker-s989kehk' +# Last 100 lines of the build log. diff --git a/recipes/mockinbird/meta.yaml b/recipes/mockinbird/meta.yaml index 8c939b31b61a4..77ffcdbe88c9a 100644 --- a/recipes/mockinbird/meta.yaml +++ b/recipes/mockinbird/meta.yaml @@ -11,7 +11,7 @@ source: build: script: {{ PYTHON }} -m pip install --no-deps --no-build-isolation --no-cache-dir . -vvv - number: 7 + number: 8 entry_points: - mockinbird = mockinbird.scripts.mockinbird:main - mb-preprocess = mockinbird.scripts.preprocess:main diff --git a/recipes/moments/meta.yaml b/recipes/moments/meta.yaml index c06b5c372f953..e35d11ad6c976 100644 --- a/recipes/moments/meta.yaml +++ b/recipes/moments/meta.yaml @@ -10,8 +10,7 @@ source: sha256: 3a131126af9eaf606da123448b6b62a83d2308f052deb3fdcbdf0255fcc9b7fe build: - number: 3 - skip: true # [py2k] + number: 4 run_exports: - {{ pin_subpackage(name, max_pin="x") }} diff --git a/recipes/moods/meta.yaml b/recipes/moods/meta.yaml index 01727f6f25eda..27913e29ea5a3 100644 --- a/recipes/moods/meta.yaml +++ b/recipes/moods/meta.yaml @@ -10,7 +10,7 @@ source: sha256: e694e37c7487286801bffcda3e0576157960007919dd5ceb8b5a1626dc2968e1 build: - number: 0 + number: 1 skip: True # [py < 36] run_exports: - {{ pin_subpackage('moods', max_pin="x") }} diff --git a/recipes/mosaicatcher/build_failure.linux-64.yaml b/recipes/mosaicatcher/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..a274357ed82b3 --- /dev/null +++ b/recipes/mosaicatcher/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 6e1097224e9b3431947cc2828fccba9d1fadf0fa8864388e35505d5368b0034d # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + Extracting download + source tree in: /opt/conda/conda-bld/mosaicatcher_1717808306723/work + export PREFIX=/opt/conda/conda-bld/mosaicatcher_1717808306723/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_ + export BUILD_PREFIX=/opt/conda/conda-bld/mosaicatcher_1717808306723/_build_env + export SRC_DIR=/opt/conda/conda-bld/mosaicatcher_1717808306723/work + INFO: activate-binutils_linux-64.sh made the following environmental changes: + ADDR2LINE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-addr2line + AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar + AS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-as + CXXFILT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cfilt + ELFEDIT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-elfedit + GPROF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gprof + LD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld + LD_GOLD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld.gold + NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-nm + OBJCOPY=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objcopy + OBJDUMP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objdump + RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib + READELF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-readelf + SIZE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-size + STRINGS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strings + STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip + INFO: activate-gcc_linux-64.sh made the following environmental changes: + BUILD=x86_64-conda-linux-gnu + CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/mosaicatcher-0.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr + CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot + CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu + CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu + CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/mosaicatcher-0.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + INFO: activate-gxx_linux-64.sh made the following environmental changes: + CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/mosaicatcher-0.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/mosaicatcher-0.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-g + CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required): + Compatibility with CMake < 3.5 will be removed from a future version of + CMake. + + Update the VERSION argument value or use a ... suffix to tell + CMake that the project does not need compatibility with older versions. + + + -- The CXX compiler identification is GNU 12.3.0 + -- Detecting CXX compiler ABI info + -- Detecting CXX compiler ABI info - done + -- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c - skipped + -- Detecting CXX compile features + -- Detecting CXX compile features - done + -- Found Boost: $PREFIX/lib/cmake/Boost-1.85.0/BoostConfig.cmake (found suitable version "1.85.0", minimum required is "1.50") found components: system date_time filesystem iostreams program_options + /opt/conda/conda-bld/mosaicatcher_1717808306723/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include + -- Found PkgConfig: $BUILD_PREFIX/bin/pkg-config (found version "0.29.2") + -- Checking for module 'htslib' + -- Package 'zlib', required by 'htslib', not found + CMake Error at /opt/conda/conda-bld/mosaicatcher_1717808306723/_build_env/share/cmake-3.29/Modules/FindPkgConfig.cmake:634 (message): + The following required packages were not found: + + - htslib + + Call Stack (most recent call first): + /opt/conda/conda-bld/mosaicatcher_1717808306723/_build_env/share/cmake-3.29/Modules/FindPkgConfig.cmake:862 (_pkg_check_modules_internal) + CMakeLists.txt:33 (pkg_check_modules) + + + -- Configuring incomplete, errors occurred! + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/mosaicatcher_1717808306723/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/mosaicatcher/build_failure.osx-64.yaml b/recipes/mosaicatcher/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..2ffe2a4cd4c46 --- /dev/null +++ b/recipes/mosaicatcher/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 6e1097224e9b3431947cc2828fccba9d1fadf0fa8864388e35505d5368b0034d # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + Success + CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required): + Compatibility with CMake < 3.5 will be removed from a future version of + CMake. + + Update the VERSION argument value or use a ... suffix to tell + CMake that the project does not need compatibility with older versions. + + + /opt/mambaforge/envs/bioconda/conda-bld/mosaicatcher_1717637185920/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/include + CMake Error at /opt/mambaforge/envs/bioconda/conda-bld/mosaicatcher_1717637185920/_build_env/share/cmake-3.29/Modules/FindPkgConfig.cmake:634 (message): + The following required packages were not found: + + - htslib + + Call Stack (most recent call first): + /opt/mambaforge/envs/bioconda/conda-bld/mosaicatcher_1717637185920/_build_env/share/cmake-3.29/Modules/FindPkgConfig.cmake:862 (_pkg_check_modules_internal) + CMakeLists.txt:33 (pkg_check_modules) + + + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/mosaicatcher_1717637185920/work + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/mosaicatcher_1717637185920/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/mosaicatcher_1717637185920/_build_env + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/mosaicatcher_1717637185920/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/mosaicatcher_1717637185920/work/conda_build.sh']' returned non-zero exit status 1. + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/mosaicatcher-0.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/mosaicatcher-0.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/mosaicatcher-0.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/mosaicatcher-0.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + -- The CXX compiler identification is Clang 16.0.6 + -- Detecting CXX compiler ABI info + -- Detecting CXX compiler ABI info - done + -- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting CXX compile features + -- Detecting CXX compile features - done + -- Found Boost: $PREFIX/lib/cmake/Boost-1.85.0/BoostConfig.cmake (found suitable version "1.85.0", minimum required is "1.50") found components: system date_time filesystem iostreams program_options + -- Found PkgConfig: $BUILD_PREFIX/bin/pkg-config (found version "0.29.2") + -- Checking for module 'htslib' + -- Package 'zlib', required by 'htslib', not found + -- Configuring incomplete, errors occurred! +# Last 100 lines of the build log. diff --git a/recipes/mosaicatcher/meta.yaml b/recipes/mosaicatcher/meta.yaml index e06504064290e..62571f912d918 100644 --- a/recipes/mosaicatcher/meta.yaml +++ b/recipes/mosaicatcher/meta.yaml @@ -10,7 +10,7 @@ source: sha256: '{{sha256}}' build: - number: 3 + number: 4 requirements: build: diff --git a/recipes/moss/build_failure.linux-64.yaml b/recipes/moss/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..87b65ba43f5bf --- /dev/null +++ b/recipes/moss/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 79dbb5e792ddb65e87afb6a5e13d9c8312ce128b7d374cbe63fe95926a9b804d # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + patching file test/catch.hpp + Patch analysis gives: + [[ RA-MD1LOVE ]] - [[ patch ]] + + Key: + + R :: Reversible A :: Applicable + Y :: Build-prefix patch in use M :: Minimal, non-amalgamated + D :: Dry-runnable N :: Patch level (1 is preferred) + L :: Patch level not-ambiguous O :: Patch applies without offsets + V :: Patch applies without fuzz E :: Patch applies without emitting to stderr + + source tree in: /opt/conda/conda-bld/moss_1717788077340/work + export PREFIX=/opt/conda/conda-bld/moss_1717788077340/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol + export BUILD_PREFIX=/opt/conda/conda-bld/moss_1717788077340/_build_env + export SRC_DIR=/opt/conda/conda-bld/moss_1717788077340/work + INFO: activate-binutils_linux-64.sh made the following environmental changes: + ADDR2LINE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-addr2line + AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar + AS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-as + CXXFILT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cfilt + ELFEDIT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-elfedit + GPROF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gprof + LD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld + LD_GOLD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld.gold + NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-nm + OBJCOPY=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objcopy + OBJDUMP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objdump + RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib + READELF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-readelf + SIZE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-size + STRINGS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strings + STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip + INFO: activate-gcc_linux-64.sh made the following environmental changes: + BUILD=x86_64-conda-linux-gnu + CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/moss-0.1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr + CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot + CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu + CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu + CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/moss-0.1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + INFO: activate-gxx_linux-64.sh made the following environmental changes: + CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/moss-0.1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/moss-0.1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-g + -- The CXX compiler identification is GNU 12.3.0 + -- Detecting CXX compiler ABI info + -- Detecting CXX compiler ABI info - done + -- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c - skipped + -- Detecting CXX compile features + -- Detecting CXX compile features - done + HTSlib_INCLUDE_DIR=HTSlib_INCLUDE_DIR-NOTFOUND + HTSlib_LIBRARY=HTSlib_LIBRARY-NOTFOUND + CMake Error at FindHTSlib.cmake:67 (message): + Required library HTSlib NOT FOUND. + + Install the library (dev version) and try again. If the library is already + installed, use ccmake to set the missing variables manually. + Call Stack (most recent call first): + FindHTSlib.cmake:144 (libfind_process) + CMakeLists.txt:12 (find_package) + + + -- Configuring incomplete, errors occurred! + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/moss_1717788077340/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/moss/meta.yaml b/recipes/moss/meta.yaml index 8a9018a489ad2..485975a369583 100644 --- a/recipes/moss/meta.yaml +++ b/recipes/moss/meta.yaml @@ -11,7 +11,7 @@ source: - patch build: - number: 6 + number: 7 skip: True # [osx] requirements: diff --git a/recipes/motifscan/meta.yaml b/recipes/motifscan/meta.yaml index ce73bd8b20247..65a0282043641 100644 --- a/recipes/motifscan/meta.yaml +++ b/recipes/motifscan/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 8059ab3232dfe7580835c5e953a8edd3f843676d57a6afbc41c5518a8a4dfde2 build: - number: 3 + number: 4 skip: True # [py<36] entry_points: - motifscan=motifscan.cli.main:main diff --git a/recipes/mp-est/meta.yaml b/recipes/mp-est/meta.yaml index 5df420ea79562..86211692cfb7f 100644 --- a/recipes/mp-est/meta.yaml +++ b/recipes/mp-est/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 requirements: build: diff --git a/recipes/ms-entropy/meta.yaml b/recipes/ms-entropy/meta.yaml index 498535e480579..d8692e0b3c899 100644 --- a/recipes/ms-entropy/meta.yaml +++ b/recipes/ms-entropy/meta.yaml @@ -10,9 +10,8 @@ source: sha256: 428b43006b75824d80bd494dea0f80fa2e3c3366b7b31d556055ea6500a568cd build: - skip: true # [py<37] script: {{ PYTHON }} -m pip install . -vv - number: 0 + number: 1 run_exports: - {{ pin_subpackage('ms-entropy', max_pin='x.x') }} diff --git a/recipes/ms2pip/build_failure.linux-64.yaml b/recipes/ms2pip/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..e1f0f20921483 --- /dev/null +++ b/recipes/ms2pip/build_failure.linux-64.yaml @@ -0,0 +1,106 @@ +recipe_sha: cd4c86534ca7008c3d495966fb1c51b40807a4137e8ec1f32783f4da9d306ecb # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + pcre2: 10.43-hcad00b1_0 conda-forge + pillow: 10.3.0-py310hf73ecf8_0 conda-forge + pip: 24.0-pyhd8ed1ab_0 conda-forge + pixman: 0.43.2-h59595ed_0 conda-forge + psims: 1.3.3-pyhdfd78af_0 bioconda + psm-utils: 0.9.0-pyhdfd78af_0 bioconda + pthread-stubs: 0.4-h36c2ea0_1001 conda-forge + pulseaudio-client: 17.0-hb77b528_0 conda-forge + py-cpuinfo: 9.0.0-pyhd8ed1ab_0 conda-forge + py-xgboost: 2.0.3-cpu_pyh995e691_4 conda-forge + pyarrow: 16.1.0-py310h17c5347_1 conda-forge + pyarrow-core: 16.1.0-py310h6f79a3a_1_cpu conda-forge + pydantic: 1.10.14-py310h2372a71_0 conda-forge + pygments: 2.18.0-pyhd8ed1ab_0 conda-forge + pyopenms: 3.1.0-py310h9b8898c_0 bioconda + pyparsing: 3.1.2-pyhd8ed1ab_0 conda-forge + pytables: 3.9.2-py310hd76cd5d_2 conda-forge + pyteomics: 4.6.3-pyh7cba7a3_0 bioconda + python: 3.10.14-hd12c33a_0_cpython conda-forge + python-dateutil: 2.9.0-pyhd8ed1ab_0 conda-forge + python-tzdata: 2024.1-pyhd8ed1ab_0 conda-forge + python_abi: 3.10-4_cp310 conda-forge + pytz: 2024.1-pyhd8ed1ab_0 conda-forge + qt-main: 5.15.8-hc9dc06e_21 conda-forge + re2: 2023.09.01-h7f4b329_2 conda-forge + readline: 8.2-h8228510_1 conda-forge + rich: 13.7.1-pyhd8ed1ab_0 conda-forge + s2n: 1.4.15-he19d79f_0 conda-forge + scikit-learn: 1.5.0-py310h981052a_1 conda-forge + scipy: 1.13.1-py310h93e2701_0 conda-forge + setuptools: 70.0.0-pyhd8ed1ab_0 conda-forge + six: 1.16.0-pyh6c4a22f_0 conda-forge + snappy: 1.2.0-hdb0a2a9_1 conda-forge + sqlalchemy: 2.0.30-py310hc51659f_0 conda-forge + sysroot_linux-64: 2.17-h4a8ded7_14 conda-forge + threadpoolctl: 3.5.0-pyhc1e730c_0 conda-forge + tk: 8.6.13-noxft_h4845f30_101 conda-forge + tomlkit: 0.12.5-pyha770c72_0 conda-forge + tqdm: 4.66.4-pyhd8ed1ab_0 conda-forge + typing-extensions: 4.12.2-hd8ed1ab_0 conda-forge + typing_extensions: 4.12.2-pyha770c72_0 conda-forge + tzdata: 2024a-h0c530f3_0 conda-forge + unicodedata2: 15.1.0-py310h2372a71_0 conda-forge + werkzeug: 3.0.3-pyhd8ed1ab_0 conda-forge + wheel: 0.43.0-pyhd8ed1ab_1 conda-forge + xcb-util: 0.4.0-hd590300_1 conda-forge + xcb-util-image: 0.4.0-h8ee46fc_1 conda-forge + xcb-util-keysyms: 0.4.0-h8ee46fc_1 conda-forge + xcb-util-renderutil: 0.3.9-hd590300_1 conda-forge + xcb-util-wm: 0.4.1-h8ee46fc_1 conda-forge + xerces-c: 3.2.5-hac6953d_0 conda-forge + xgboost: 2.0.3-cpu_pyhb8f9a19_4 conda-forge + xkeyboard-config: 2.42-h4ab18f5_0 conda-forge + xorg-kbproto: 1.0.7-h7f98852_1002 conda-forge + xorg-libice: 1.1.1-hd590300_0 conda-forge + xorg-libsm: 1.2.4-h7391055_0 conda-forge + xorg-libx11: 1.8.9-h8ee46fc_0 conda-forge + xorg-libxau: 1.0.11-hd590300_0 conda-forge + xorg-libxdmcp: 1.1.3-h7f98852_0 conda-forge + xorg-libxext: 1.3.4-h0b41bf4_2 conda-forge + xorg-libxrender: 0.9.11-hd590300_0 conda-forge + xorg-renderproto: 0.11.1-h7f98852_1002 conda-forge + xorg-xextproto: 7.3.0-h0b41bf4_1003 conda-forge + xorg-xf86vidmodeproto: 2.3.1-h7f98852_1002 conda-forge + xorg-xproto: 7.0.31-h7f98852_1007 conda-forge + xz: 5.2.6-h166bdaf_0 conda-forge + zlib: 1.2.13-h4ab18f5_6 conda-forge + zlib-ng: 2.0.7-h0b41bf4_0 conda-forge + zstd: 1.5.6-ha6fb4c9_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + export PREFIX=/opt/conda/conda-bld/ms2pip_1717953708615/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p + export SRC_DIR=/opt/conda/conda-bld/ms2pip_1717953708615/test_tmp + Traceback (most recent call last): + File "/opt/conda/conda-bld/ms2pip_1717953708615/test_tmp/run_test.py", line 2, in + import: 'ms2pip' + import ms2pip + File "/opt/conda/conda-bld/ms2pip_1717953708615/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.10/site-packages/ms2pip/__init__.py", line 13, in + from ms2pip.core import ( # noqa: F401 E402 + File "/opt/conda/conda-bld/ms2pip_1717953708615/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.10/site-packages/ms2pip/core.py", line 16, in + from psm_utils import PSM, Peptidoform, PSMList + File "/opt/conda/conda-bld/ms2pip_1717953708615/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.10/site-packages/psm_utils/__init__.py", line 17, in + from psm_utils.psm import PSM # noqa: E402 + File "/opt/conda/conda-bld/ms2pip_1717953708615/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.10/site-packages/psm_utils/psm.py", line 10, in + class PSM(BaseModel): + File "pydantic/main.py", line 197, in pydantic.main.ModelMetaclass.__new__ + File "pydantic/fields.py", line 504, in pydantic.fields.ModelField.infer + File "pydantic/fields.py", line 434, in pydantic.fields.ModelField.__init__ + File "pydantic/fields.py", line 550, in pydantic.fields.ModelField.prepare + File "pydantic/fields.py", line 661, in pydantic.fields.ModelField._type_analysis + File "pydantic/fields.py", line 806, in pydantic.fields.ModelField._create_sub_type + File "pydantic/fields.py", line 434, in pydantic.fields.ModelField.__init__ + File "pydantic/fields.py", line 555, in pydantic.fields.ModelField.prepare + File "pydantic/fields.py", line 829, in pydantic.fields.ModelField.populate_validators + File "pydantic/validators.py", line 765, in find_validators + RuntimeError: no validator found for , see arbitrary_types_allowed in Config + WARNING: Tests failed for ms2pip-4.0.0.dev8-py310hb627759_1.tar.bz2 - moving package to /opt/conda/conda-bld/broken + TESTS FAILED: ms2pip-4.0.0.dev8-py310hb627759_1.tar.bz2 +# Last 100 lines of the build log. +reason: |- + pydantic validator error diff --git a/recipes/ms2pip/build_failure.osx-64.yaml b/recipes/ms2pip/build_failure.osx-64.yaml index 5f923c8d1dd21..6f5a359ff836e 100644 --- a/recipes/ms2pip/build_failure.osx-64.yaml +++ b/recipes/ms2pip/build_failure.osx-64.yaml @@ -1,104 +1,106 @@ -recipe_sha: db896db02039c11466cbaa54182f089283fc9780b03547795aac2880b4decf6c # The commit at which this recipe failed to build. +recipe_sha: cd4c86534ca7008c3d495966fb1c51b40807a4137e8ec1f32783f4da9d306ecb # The hash of the recipe's meta.yaml at which this recipe failed to build. skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. log: |2- - copying build/lib.macosx-10.9-x86_64-cpython-310/fasta2speclib/fasta2speclib.py -> build/bdist.macosx-10.9-x86_64/wheel/fasta2speclib - running install_egg_info - Copying ms2pip.egg-info to build/bdist.macosx-10.9-x86_64/wheel/ms2pip-3.11.0-py3.10.egg-info - running install_scripts - creating build/bdist.macosx-10.9-x86_64/wheel/ms2pip-3.11.0.dist-info/WHEEL - creating '/private/tmp/pip-wheel-eve94_i1/.tmp-idecnkym/ms2pip-3.11.0-cp310-cp310-macosx_10_9_x86_64.whl' and adding 'build/bdist.macosx-10.9-x86_64/wheel' to it - adding 'fasta2speclib/__init__.py' - adding 'fasta2speclib/fasta2speclib.py' - adding 'ms2pip/__init__.py' - adding 'ms2pip/__main__.py' - adding 'ms2pip/config_parser.py' - adding 'ms2pip/exceptions.py' - adding 'ms2pip/feature_names.py' - adding 'ms2pip/match_spectra.py' - adding 'ms2pip/ms2pipC.py' - adding 'ms2pip/peptides.py' - adding 'ms2pip/predict_xgboost.py' - adding 'ms2pip/retention_time.py' - adding 'ms2pip/single_prediction.py' - adding 'ms2pip/spectrum.py' - adding 'ms2pip/cython_modules/ms2pip_features_c_catboost.c' - adding 'ms2pip/cython_modules/ms2pip_features_c_ce.c' - adding 'ms2pip/cython_modules/ms2pip_features_c_general.c' - adding 'ms2pip/cython_modules/ms2pip_features_c_old.c' - adding 'ms2pip/cython_modules/ms2pip_init_c.c' - adding 'ms2pip/cython_modules/ms2pip_peaks_c.c' - adding 'ms2pip/cython_modules/ms2pip_pyx.cpython-310-darwin.so' - adding 'ms2pip/cython_modules/ms2pip_pyx.pyx' - adding 'ms2pip/models/HCD-2019.h' - adding 'ms2pip/models/TMT.h' - adding 'ms2pip/models/HCD-2019/model_20190107_HCD_train_B.c' - adding 'ms2pip/models/HCD-2019/model_20190107_HCD_train_B2.c' - adding 'ms2pip/models/HCD-2019/model_20190107_HCD_train_Y.c' - adding 'ms2pip/models/HCD-2019/model_20190107_HCD_train_Y2.c' - adding 'ms2pip/models/TMT/model_20190107_TMT_train_B.c' - adding 'ms2pip/models/TMT/model_20190107_TMT_train_Y.c' - adding 'ms2pip/ms2pip_tools/__init__.py' - adding 'ms2pip/ms2pip_tools/calc_correlations.py' - adding 'ms2pip/ms2pip_tools/dlib.py' - adding 'ms2pip/ms2pip_tools/get_elude_predictions.py' - adding 'ms2pip/ms2pip_tools/spectrum_output.py' - adding 'ms2pip-3.11.0.dist-info/LICENSE' - adding 'ms2pip-3.11.0.dist-info/METADATA' - adding 'ms2pip-3.11.0.dist-info/WHEEL' - adding 'ms2pip-3.11.0.dist-info/entry_points.txt' - adding 'ms2pip-3.11.0.dist-info/top_level.txt' - adding 'ms2pip-3.11.0.dist-info/RECORD' - removing build/bdist.macosx-10.9-x86_64/wheel - Building wheel for ms2pip (pyproject.toml): finished with status 'done' - Created wheel for ms2pip: filename=ms2pip-3.11.0-cp310-cp310-macosx_10_9_x86_64.whl size=13990705 sha256=8d11860d5bf731f021664ac7254f4948aab6554967e6a7bd16eaf53c53587a77 - Stored in directory: /private/tmp/pip-ephem-wheel-cache-n2ix8ypb/wheels/c7/bc/d1/fad97acea95d3f9548679cb16a1392ed5d4e4187866d3358db - Successfully built ms2pip - Installing collected packages: ms2pip + libzlib: 1.2.13-h87427d6_6 conda-forge + llvm-openmp: 15.0.7-h61d9ccf_0 conda-forge + lxml: 5.2.2-py310h27134ca_0 conda-forge + lz4-c: 1.9.4-hf0c8a7f_0 conda-forge + markdown-it-py: 3.0.0-pyhd8ed1ab_0 conda-forge + markupsafe: 2.1.5-py310hb372a2b_0 conda-forge + matplotlib-base: 3.8.4-py310h7ea1ff3_2 conda-forge + mdurl: 0.1.2-pyhd8ed1ab_0 conda-forge + ms2pip: 4.0.0.dev8-py310hc6dee1f_1 local + munkres: 1.1.4-pyh9f0ad1d_0 conda-forge + mysql-common: 8.3.0-hfd7a639_4 conda-forge + mysql-libs: 8.3.0-ha9146f8_4 conda-forge + ncurses: 6.5-h5846eda_0 conda-forge + nspr: 4.35-hea0b92c_0 conda-forge + nss: 3.100-h6606ded_0 conda-forge + numexpr: 2.10.0-py310hbf2a7f0_0 conda-forge + numpy: 1.23.5-py310h1b7c290_0 conda-forge + openjpeg: 2.5.2-h7310d3a_0 conda-forge + openssl: 3.3.1-h87427d6_0 conda-forge + orc: 2.0.1-hf43e91b_1 conda-forge + packaging: 24.0-pyhd8ed1ab_0 conda-forge + pandas: 2.2.2-py310hbf2a7f0_1 conda-forge + pcre2: 10.43-h0ad2156_0 conda-forge + pillow: 10.3.0-py310h99295b8_0 conda-forge + psims: 1.3.3-pyhdfd78af_0 bioconda + psm-utils: 0.9.0-pyhdfd78af_0 bioconda + pthread-stubs: 0.4-hc929b4f_1001 conda-forge + py-cpuinfo: 9.0.0-pyhd8ed1ab_0 conda-forge + py-xgboost: 1.7.6-cpu_py310h84be057_2 conda-forge + pyarrow: 16.1.0-py310h1cef2ca_1 conda-forge + pyarrow-core: 16.1.0-py310h907dfef_1_cpu conda-forge + pydantic: 1.10.14-py310hb372a2b_0 conda-forge + pygments: 2.18.0-pyhd8ed1ab_0 conda-forge + pyopenms: 2.9.1-py310hdc5ccfa_3 bioconda + pyparsing: 3.1.2-pyhd8ed1ab_0 conda-forge + pytables: 3.8.0-py310hd1bf580_2 conda-forge + pyteomics: 4.6.3-pyh7cba7a3_0 bioconda + python: 3.10.14-h00d2728_0_cpython conda-forge + python-dateutil: 2.9.0-pyhd8ed1ab_0 conda-forge + python-tzdata: 2024.1-pyhd8ed1ab_0 conda-forge + python_abi: 3.10-4_cp310 conda-forge + pytz: 2024.1-pyhd8ed1ab_0 conda-forge + qt-main: 5.15.8-hecaf5c3_21 conda-forge + re2: 2023.09.01-hb168e87_2 conda-forge + readline: 8.2-h9e318b2_1 conda-forge + rich: 13.7.1-pyhd8ed1ab_0 conda-forge + scikit-learn: 1.3.1-py310h9d3367e_0 conda-forge + scipy: 1.13.1-py310h35d8cac_0 conda-forge + setuptools: 70.0.0-pyhd8ed1ab_0 conda-forge + six: 1.16.0-pyh6c4a22f_0 conda-forge + snappy: 1.2.0-h6dc393e_1 conda-forge + sqlalchemy: 2.0.30-py310h56a41de_0 conda-forge + threadpoolctl: 3.5.0-pyhc1e730c_0 conda-forge + tk: 8.6.13-h1abcd95_1 conda-forge + tomlkit: 0.12.5-pyha770c72_0 conda-forge + tqdm: 4.66.4-pyhd8ed1ab_0 conda-forge + typing-extensions: 4.12.2-hd8ed1ab_0 conda-forge + typing_extensions: 4.12.2-pyha770c72_0 conda-forge + tzdata: 2024a-h0c530f3_0 conda-forge + unicodedata2: 15.1.0-py310h6729b98_0 conda-forge + werkzeug: 3.0.3-pyhd8ed1ab_0 conda-forge + xerces-c: 3.2.5-hbbe9ea5_0 conda-forge + xgboost: 1.7.6-cpu_py310h84be057_2 conda-forge + xorg-libxau: 1.0.11-h0dc2134_0 conda-forge + xorg-libxdmcp: 1.1.3-h35c211d_0 conda-forge + xz: 5.2.6-h775f41a_0 conda-forge + zlib: 1.2.13-h87427d6_6 conda-forge + zlib-ng: 2.0.7-hb7f2c08_0 conda-forge + zstd: 1.5.6-h915ae27_0 conda-forge - changing mode of $PREFIX/bin/fasta2speclib to 755 - changing mode of $PREFIX/bin/ms2pip to 755 - changing mode of $PREFIX/bin/ms2pip-single-prediction to 755 - Successfully installed ms2pip-3.11.0 - Removed build tracker: '/private/tmp/pip-build-tracker-p6mmyl3r' - - Resource usage statistics from building ms2pip: - Process count: 6 - CPU time: Sys=0:00:06.1, User=0:03:52.1 - Memory: 1.2G - Disk usage: 388.1K - Time elapsed: 0:04:26.4 - - - compiling .pyc files... - number of files: 66 + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 2358, in build - newly_built_packages = bundlers[pkg_type](output_d, m, env, stats) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 1659, in bundle_conda - files = post_process_files(metadata, initial_files) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 1505, in post_process_files - post_build(m, new_files, build_python=python) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/post.py", line 1318, in post_build - post_process_shared_lib(m, f, prefix_files, host_prefix) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/post.py", line 1266, in post_process_shared_lib - mk_relative_osx(path, host_prefix, m, files=files, rpaths=rpaths) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/post.py", line 397, in mk_relative_osx - names = macho.otool(path, prefix) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/os_utils/macho.py", line 194, in otool - lines = check_output([otool, '-l', path], - File "/opt/mambaforge/envs/bioconda/lib/python3.8/subprocess.py", line 415, in check_output - return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/subprocess.py", line 516, in run - raise CalledProcessError(retcode, process.args, - subprocess.CalledProcessError: Command '['/opt/mambaforge/envs/bioconda/conda-bld/ms2pip_1685617119812/_build_env/bin/llvm-otool', '-l', '/opt/mambaforge/envs/bioconda/conda-bld/ms2pip_1685617119812/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.10/site-packages/ms2pip/cython_modules/ms2pip_pyx.cpython-310-darwin.so']' died with . + File "/opt/mambaforge/envs/bioconda/conda-bld/ms2pip_1717959928228/test_tmp/run_test.py", line 2, in + import ms2pip + File "/opt/mambaforge/envs/bioconda/conda-bld/ms2pip_1717959928228/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib/python3.10/site-packages/ms2pip/__init__.py", line 13, in + from ms2pip.core import ( # noqa: F401 E402 + File "/opt/mambaforge/envs/bioconda/conda-bld/ms2pip_1717959928228/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib/python3.10/site-packages/ms2pip/core.py", line 16, in + from psm_utils import PSM, Peptidoform, PSMList + File "/opt/mambaforge/envs/bioconda/conda-bld/ms2pip_1717959928228/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib/python3.10/site-packages/psm_utils/__init__.py", line 17, in + from psm_utils.psm import PSM # noqa: E402 + File "/opt/mambaforge/envs/bioconda/conda-bld/ms2pip_1717959928228/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/lib/python3.10/site-packages/psm_utils/psm.py", line 10, in + class PSM(BaseModel): + File "pydantic/main.py", line 197, in pydantic.main.ModelMetaclass.__new__ + File "pydantic/fields.py", line 504, in pydantic.fields.ModelField.infer + File "pydantic/fields.py", line 434, in pydantic.fields.ModelField.__init__ + File "pydantic/fields.py", line 550, in pydantic.fields.ModelField.prepare + File "pydantic/fields.py", line 661, in pydantic.fields.ModelField._type_analysis + File "pydantic/fields.py", line 806, in pydantic.fields.ModelField._create_sub_type + File "pydantic/fields.py", line 434, in pydantic.fields.ModelField.__init__ + File "pydantic/fields.py", line 555, in pydantic.fields.ModelField.prepare + File "pydantic/fields.py", line 829, in pydantic.fields.ModelField.populate_validators + File "pydantic/validators.py", line 765, in find_validators + RuntimeError: no validator found for , see arbitrary_types_allowed in Config + WARNING: Tests failed for ms2pip-4.0.0.dev8-py310hc6dee1f_1.tar.bz2 - moving package to /opt/mambaforge/envs/bioconda/conda-bld/broken + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/ms2pip_1717959928228/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl + TESTS FAILED: ms2pip-4.0.0.dev8-py310hc6dee1f_1.tar.bz2 + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/ms2pip_1717959928228/test_tmp + import: 'ms2pip' # Last 100 lines of the build log. +reason: |- + pydantic validator error diff --git a/recipes/ms2pip/meta.yaml b/recipes/ms2pip/meta.yaml index 910e321977e0d..095eb5313e4db 100644 --- a/recipes/ms2pip/meta.yaml +++ b/recipes/ms2pip/meta.yaml @@ -11,8 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 - skip: True # [py < 37] + number: 1 run_exports: - {{ pin_subpackage(name, max_pin="x") }} entry_points: diff --git a/recipes/ms2rescore-rs/meta.yaml b/recipes/ms2rescore-rs/meta.yaml index bcdfc966cdbb1..1a0a2afa568f4 100644 --- a/recipes/ms2rescore-rs/meta.yaml +++ b/recipes/ms2rescore-rs/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 skip: True # [py < 37] run_exports: - {{ pin_subpackage(name|lower, max_pin="x.x") }} diff --git a/recipes/msisensor-pro/build_failure.linux-64.yaml b/recipes/msisensor-pro/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..966f52c6572e2 --- /dev/null +++ b/recipes/msisensor-pro/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 78ea6e46bf2985f75436cac4d34088dd710099309f3507510a45d90f36f68972 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + patching file cpp/makefile + Patch analysis gives: + [[ RA-MD1LOVE ]] - [[ buildfixes.patch ]] + + Key: + + R :: Reversible A :: Applicable + Y :: Build-prefix patch in use M :: Minimal, non-amalgamated + D :: Dry-runnable N :: Patch level (1 is preferred) + L :: Patch level not-ambiguous O :: Patch applies without offsets + V :: Patch applies without fuzz E :: Patch applies without emitting to stderr + + source tree in: /opt/conda/conda-bld/msisensor-pro_1717781420099/work + export PREFIX=/opt/conda/conda-bld/msisensor-pro_1717781420099/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold + export BUILD_PREFIX=/opt/conda/conda-bld/msisensor-pro_1717781420099/_build_env + export SRC_DIR=/opt/conda/conda-bld/msisensor-pro_1717781420099/work + INFO: activate-binutils_linux-64.sh made the following environmental changes: + ADDR2LINE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-addr2line + AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar + AS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-as + CXXFILT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cfilt + ELFEDIT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-elfedit + GPROF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gprof + LD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld + LD_GOLD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld.gold + NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-nm + OBJCOPY=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objcopy + OBJDUMP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objdump + RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib + READELF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-readelf + SIZE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-size + STRINGS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strings + STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip + INFO: activate-gcc_linux-64.sh made the following environmental changes: + BUILD=x86_64-conda-linux-gnu + CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/msisensor-pro-1.2.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr + CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot + CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu + CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu + CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/msisensor-pro-1.2.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + INFO: activate-gxx_linux-64.sh made the following environmental changes: + CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/msisensor-pro-1.2.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/msisensor-pro-1.2.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-g + make: Entering directory '$SRC_DIR/cpp' + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -std=c11 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/msisensor-pro-1.2.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O2 -fopenmp -c cmds.cpp -o cmds.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -std=c11 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/msisensor-pro-1.2.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O2 -fopenmp -c scan.cpp -o scan.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -std=c11 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/msisensor-pro-1.2.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O2 -fopenmp -c distribution.cpp -o distribution.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -std=c11 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/msisensor-pro-1.2.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O2 -fopenmp -c refseq.cpp -o refseq.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -std=c11 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/msisensor-pro-1.2.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O2 -fopenmp -c polyscan.cpp -o polyscan.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -std=c11 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/msisensor-pro-1.2.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O2 -fopenmp -c param.cpp -o param.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -std=c11 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/msisensor-pro-1.2.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O2 -fopenmp -c utilities.cpp -o utilities.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -std=c11 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/msisensor-pro-1.2.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O2 -fopenmp -c homo.cpp -o homo.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -std=c11 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/msisensor-pro-1.2.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O2 -fopenmp -c window.cpp -o window.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -std=c11 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/msisensor-pro-1.2.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O2 -fopenmp -c bamreader.cpp -o bamreader.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -std=c11 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/msisensor-pro-1.2.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O2 -fopenmp -c sample.cpp -o sample.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -std=c11 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/msisensor-pro-1.2.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O2 -fopenmp -c chi.cpp -o chi.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -std=c11 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/msisensor-pro-1.2.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O2 -fopenmp -c somatic.cpp -o somatic.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -std=c11 cmds.o scan.o distribution.o refseq.o polyscan.o param.o utilities.o homo.o window.o bamreader.o sample.o chi.o somatic.o -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/msisensor-pro-1.2.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O2 -fopenmp -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -lm -lz -lpthread -lhts -o msisensor-pro + /opt/conda/conda-bld/msisensor-pro_1717781420099/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: cannot find -lz: No such file or directory + collect2: error: ld returned 1 exit status + make: *** [makefile:27: msisensor-pro] Error 1 + make: Leaving directory '$SRC_DIR/cpp' + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/msisensor-pro_1717781420099/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/msisensor-pro/meta.yaml b/recipes/msisensor-pro/meta.yaml index 67287d5046e60..66291f742cde5 100644 --- a/recipes/msisensor-pro/meta.yaml +++ b/recipes/msisensor-pro/meta.yaml @@ -5,7 +5,7 @@ package: version: "{{ version }}" build: - number: 6 + number: 7 source: url: https://github.com/xjtu-omics/msisensor-pro/archive/v{{ version }}.tar.gz diff --git a/recipes/mtgrasp/meta.yaml b/recipes/mtgrasp/meta.yaml index 13318dfafe3a7..08bdd491afede 100644 --- a/recipes/mtgrasp/meta.yaml +++ b/recipes/mtgrasp/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 0145d9153153f58ff3e7a28f20bf238f7b8ead71700fb1add1aced6e0dbb0214 build: - number: 0 + number: 1 noarch: generic run_exports: - {{ pin_subpackage('mtgrasp', max_pin="x") }} diff --git a/recipes/mummer/meta.yaml b/recipes/mummer/meta.yaml index 3d57b44f09bfa..9c8ecd737d370 100644 --- a/recipes/mummer/meta.yaml +++ b/recipes/mummer/meta.yaml @@ -13,7 +13,7 @@ source: - patches/gnuplot_mouse_clipboardformat.patch build: - number: 17 + number: 18 skip: True # [osx] run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} diff --git a/recipes/mupbwt/meta.yaml b/recipes/mupbwt/meta.yaml index fc1e428fa01af..06d835069998b 100644 --- a/recipes/mupbwt/meta.yaml +++ b/recipes/mupbwt/meta.yaml @@ -12,7 +12,7 @@ source: - cmake.patch build: - number: 2 + number: 3 skip: True # [osx] requirements: diff --git a/recipes/mykatlas/meta.yaml b/recipes/mykatlas/meta.yaml index 78610d3569b94..be460fd03c13f 100644 --- a/recipes/mykatlas/meta.yaml +++ b/recipes/mykatlas/meta.yaml @@ -13,7 +13,7 @@ build: # includes precompiled Linux binary `mccortex31` # needs pyvcf rebuild for python 3.10 on conda-forge skip: True # [osx or py > 39] - number: 6 + number: 7 script: {{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv entry_points: - atlas = mykatlas.atlas_main:main diff --git a/recipes/mykrobe/build_failure.linux-aarch64.yaml b/recipes/mykrobe/build_failure.linux-aarch64.yaml new file mode 100644 index 0000000000000..c55bb7d055e77 --- /dev/null +++ b/recipes/mykrobe/build_failure.linux-aarch64.yaml @@ -0,0 +1,104 @@ +recipe_sha: e7d1ddad4763fea69155d4b1c3da4714c660d3f0706e622663a47bfd0130844b # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + 301 | struct cram_codec *codecs[DS_END]; + | ^~~~~~ + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -fpic -c -o cram/cram_index.pico cram/cram_index.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -fpic -c -o cram/cram_io.pico cram/cram_io.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -fpic -c -o cram/cram_samtools.pico cram/cram_samtools.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -fpic -c -o cram/cram_stats.pico cram/cram_stats.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -fpic -c -o cram/files.pico cram/files.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -fpic -c -o cram/mFILE.pico cram/mFILE.c + cram/cram_io.c: In function 'cram_populate_ref': + cram/cram_io.c:2234:9: warning: '__builtin_strncpy' specified bound 4096 equals destination size [-Wstringop-truncation] + 2234 | strncpy(path, path2, PATH_MAX); + | ^~~~~~~ + cram/cram_io.c:2332:34: warning: '.tmp_' directive writing 5 bytes into a region of size between 1 and 4096 [-Wformat-overflow=] + 2332 | sprintf(path_tmp, "%s.tmp_%d", path, /*getpid(),*/ i); + | ^~~~~ + cram/cram_io.c:2332:31: note: directive argument in the range [0, 2147483647] + 2332 | sprintf(path_tmp, "%s.tmp_%d", path, /*getpid(),*/ i); + | ^~~~~~~~~~~ + cram/cram_io.c:2332:13: note: 'sprintf' output between 7 and 4111 bytes into a destination of size 4096 + 2332 | sprintf(path_tmp, "%s.tmp_%d", path, /*getpid(),*/ i); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -fpic -c -o cram/open_trace_file.pico cram/open_trace_file.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -fpic -c -o cram/pooled_alloc.pico cram/pooled_alloc.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -fpic -c -o cram/rANS_static.pico cram/rANS_static.c + cram/cram_io.c: In function 'cram_write_SAM_hdr': + cram/cram_io.c:3781:13: warning: '__builtin_strncpy' specified bound 4096 equals destination size [-Wstringop-truncation] + 3781 | strncpy(out, in, PATH_MAX); + | ^~~~~~~ + cram/cram_io.c:3773:9: warning: '__builtin_strncpy' specified bound 4096 equals destination size [-Wstringop-truncation] + 3773 | strncpy(out, in, PATH_MAX); + | ^~~~~~~ + cram/cram_io.c: In function 'cram_dopen': + cram/cram_io.c:4156:9: warning: '__builtin_strncpy' specified bound 20 equals destination size [-Wstringop-truncation] + 4156 | strncpy(def->file_id, filename, 20); + | ^~~~~~~ + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -fpic -c -o cram/sam_header.pico cram/sam_header.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -fpic -c -o cram/string_alloc.pico cram/string_alloc.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -fpic -c -o cram/thread_pool.pico cram/thread_pool.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -fpic -c -o cram/vlen.pico cram/vlen.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -fpic -c -o cram/zfio.pico cram/zfio.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -c -o bgzip.o bgzip.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -c -o htsfile.o htsfile.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -c -o tabix.o tabix.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -c -o test/fieldarith.o test/fieldarith.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -c -o test/hfile.o test/hfile.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -c -o test/sam.o test/sam.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -c -o test/test-regidx.o test/test-regidx.c + test/sam.c: In function 'faidx1': + test/sam.c:186:5: warning: 'faidx_fetch_nseq' is deprecated: Please use faidx_nseq instead [-Wdeprecated-declarations] + 186 | n = faidx_fetch_nseq(fai); + | ^ + In file included from test/sam.c:32: + ./htslib/faidx.h:94:9: note: declared here + 94 | int faidx_fetch_nseq(const faidx_t *fai) HTS_DEPRECATED("Please use faidx_nseq instead"); + | ^~~~~~~~~~~~~~~~ + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -c -o test/test_view.o test/test_view.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -c -o test/test-vcf-api.o test/test-vcf-api.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -c -o test/test-vcf-sweep.o test/test-vcf-sweep.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -c -o bgzf.o bgzf.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -c -o faidx.o faidx.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -c -o hfile.o hfile.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -c -o hfile_net.o hfile_net.c + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -g -Wall -O2 -I. -c -o hts.o hts.c + hts.c: In function 'hts_idx_init': + hts.c:1180:59: warning: overflow in conversion from 'uint32_t' {aka 'unsigned int'} to 'int' changes value from 'idx->z.last_bin = 4294967295' to '-1' [-Woverflow] + 1180 | idx->z.save_bin = idx->z.save_tid = idx->z.last_tid = idx->z.last_bin = 0xffffffffu; + | ^~~ + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -shared -Wl,-soname,libhts.so.1 -pthread -L$PREFIX/lib -o libhts.so kfunc.pico knetfile.pico kstring.pico bgzf.pico faidx.pico hfile.pico hfile_net.pico hts.pico md5.pico regidx.pico sam.pico synced_bcf_reader.pico vcf_sweep.pico tbx.pico vcf.pico vcfutils.pico cram/cram_codecs.pico cram/cram_decode.pico cram/cram_encode.pico cram/cram_external.pico cram/cram_index.pico cram/cram_io.pico cram/cram_samtools.pico cram/cram_stats.pico cram/files.pico cram/mFILE.pico cram/open_trace_file.pico cram/pooled_alloc.pico cram/rANS_static.pico cram/sam_header.pico cram/string_alloc.pico cram/thread_pool.pico cram/vlen.pico cram/zfio.pico -lz -lm + ln -sf libhts.so libhts.so.1 + ar -rc libhts.a kfunc.o knetfile.o kstring.o bgzf.o faidx.o hfile.o hfile_net.o hts.o md5.o regidx.o sam.o synced_bcf_reader.o vcf_sweep.o tbx.o vcf.o vcfutils.o cram/cram_codecs.o cram/cram_decode.o cram/cram_encode.o cram/cram_external.o cram/cram_index.o cram/cram_io.o cram/cram_samtools.o cram/cram_stats.o cram/files.o cram/mFILE.o cram/open_trace_file.o cram/pooled_alloc.o cram/rANS_static.o cram/sam_header.o cram/string_alloc.o cram/thread_pool.o cram/vlen.o cram/zfio.o + ranlib libhts.a + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -pthread -L$PREFIX/lib -o bgzip bgzip.o libhts.a -lz + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -pthread -L$PREFIX/lib -o htsfile htsfile.o libhts.a -lz + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -pthread -L$PREFIX/lib -o tabix tabix.o libhts.a -lz + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -pthread -L$PREFIX/lib -o test/fieldarith test/fieldarith.o libhts.a -lz + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -pthread -L$PREFIX/lib -o test/hfile test/hfile.o libhts.a -lz + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -pthread -L$PREFIX/lib -o test/sam test/sam.o libhts.a -lz + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -pthread -L$PREFIX/lib -o test/test-regidx test/test-regidx.o libhts.a -lz + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -pthread -L$PREFIX/lib -o test/test_view test/test_view.o libhts.a -lz + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -pthread -L$PREFIX/lib -o test/test-vcf-api test/test-vcf-api.o libhts.a -lz + $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-cc -fcommon -lstdc -pthread -L$PREFIX/lib -o test/test-vcf-sweep test/test-vcf-sweep.o libhts.a -lz + make[2]: Leaving directory '$SRC_DIR/mccortex/libs/htslib' + make[1]: Leaving directory '$SRC_DIR/mccortex/libs' + make: *** [Makefile:237: libs-core] Error 2 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/mykrobe_1718310118031/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/mykrobe/meta.yaml b/recipes/mykrobe/meta.yaml index f7feb9da0838b..35c9b0475bbb2 100644 --- a/recipes/mykrobe/meta.yaml +++ b/recipes/mykrobe/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 49662937378a4ff10ffcb3876efcc069be58f0dc183615e9cffb57f51348a45e build: - number: 2 + number: 3 entry_points: - mykrobe = mykrobe.cli:main run_exports: diff --git a/recipes/mztosqlite/1.2.0/meta.yaml b/recipes/mztosqlite/1.2.0/meta.yaml index 4bdae4b8dce91..43aeb96bacf1e 100644 --- a/recipes/mztosqlite/1.2.0/meta.yaml +++ b/recipes/mztosqlite/1.2.0/meta.yaml @@ -16,7 +16,7 @@ package: build: noarch: generic - number: 5 + number: 6 source: url: https://github.com/galaxyproteomics/mzToSQLite/releases/download/{{ version }}/{{ name }}-{{ version }}.jar diff --git a/recipes/mztosqlite/meta.yaml b/recipes/mztosqlite/meta.yaml index 570c7236c6ad5..d0bd38a3ed3f2 100644 --- a/recipes/mztosqlite/meta.yaml +++ b/recipes/mztosqlite/meta.yaml @@ -7,7 +7,7 @@ package: build: noarch: generic - number: 1 + number: 2 source: url: https://github.com/galaxyproteomics/mzToSQLite/releases/download/{{ version }}/{{ name }}-{{ version }}.jar diff --git a/recipes/nanocaller/meta.yaml b/recipes/nanocaller/meta.yaml index 46a4efde3bf6e..0b20c2fbc6e46 100644 --- a/recipes/nanocaller/meta.yaml +++ b/recipes/nanocaller/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 63acb2fd97bef760f9fd8a06021dd1a0865e6b9d22b461d3bd58acc4028d9c31 build: - number: 0 + number: 1 noarch: generic run_exports: - {{ pin_subpackage('nanocaller', max_pin="x") }} diff --git a/recipes/nanopolish/meta.yaml b/recipes/nanopolish/meta.yaml index b210cb31f961c..8480616316753 100644 --- a/recipes/nanopolish/meta.yaml +++ b/recipes/nanopolish/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 3 + number: 4 source: git_url: https://github.com/jts/nanopolish diff --git a/recipes/nanovar/build_failure.linux-64.yaml b/recipes/nanovar/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..2820ae9473980 --- /dev/null +++ b/recipes/nanovar/build_failure.linux-64.yaml @@ -0,0 +1,106 @@ +recipe_sha: f53195d3afaccd0ad9b558a2fa912d58f556a36c8f21b1a269509d93bddd3b7e # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: dependency issue +reason: tensorflow-mkl is only available in default channel +log: |2- + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("tensorflow-mkl[version='>=2.0.0']")} + Encountered problems while solving: + - nothing provides requested tensorflow-mkl >=2.0.0 + + Could not solve for environment specs + The following package could not be installed + [31mtensorflow-mkl >=2.0.0 [0m does not exist (perhaps a typo or a missing channel). + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("tensorflow-mkl[version='>=2.0.0']")} + Encountered problems while solving: + - nothing provides requested tensorflow-mkl >=2.0.0 + + Could not solve for environment specs + The following package could not be installed + [31mtensorflow-mkl >=2.0.0 [0m does not exist (perhaps a typo or a missing channel). + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build + create_build_envs(top_level_pkg, notest) + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs + raise e + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs + environ.get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("tensorflow-mkl[version='>=2.0.0']")} + Encountered problems while solving: + - nothing provides requested tensorflow-mkl >=2.0.0 + + Could not solve for environment specs + The following package could not be installed + [31mtensorflow-mkl >=2.0.0 [0m does not exist (perhaps a typo or a missing channel). +# Last 100 lines of the build log. diff --git a/recipes/nanovar/meta.yaml b/recipes/nanovar/meta.yaml index 9d412711b5581..ec3526daa2127 100644 --- a/recipes/nanovar/meta.yaml +++ b/recipes/nanovar/meta.yaml @@ -10,7 +10,7 @@ source: build: skip: True # [py2k or osx or py > 39] - number: 0 + number: 1 script: {{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv run_exports: - {{ pin_subpackage('nanovar', max_pin="x") }} diff --git a/recipes/narfmap/build_failure.linux-64.yaml b/recipes/narfmap/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..9f9e250ad5fad --- /dev/null +++ b/recipes/narfmap/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 209cdb29657554e651ee0ae81e54e3769518a8034f693f2907959e386db48168 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + Success + Extracting download + source tree in: /opt/conda/conda-bld/narfmap_1717537454419/work + export PREFIX=/opt/conda/conda-bld/narfmap_1717537454419/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place + export BUILD_PREFIX=/opt/conda/conda-bld/narfmap_1717537454419/_build_env + export SRC_DIR=/opt/conda/conda-bld/narfmap_1717537454419/work + INFO: activate-binutils_linux-64.sh made the following environmental changes: + ADDR2LINE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-addr2line + AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar + AS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-as + CXXFILT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cfilt + ELFEDIT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-elfedit + GPROF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gprof + LD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld + LD_GOLD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld.gold + NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-nm + OBJCOPY=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objcopy + OBJDUMP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objdump + RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib + READELF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-readelf + SIZE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-size + STRINGS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strings + STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip + INFO: activate-gcc_linux-64.sh made the following environmental changes: + BUILD=x86_64-conda-linux-gnu + CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/narfmap-1.4.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr + CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot + CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu + CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu + CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/narfmap-1.4.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + INFO: activate-gxx_linux-64.sh made the following environmental changes: + CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/narfmap-1.4.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/narfmap-1.4.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-g + making $SRC_DIR/build/release/compare.o + making $SRC_DIR/build/release/workflow/DualFastq2SamWorkflow.o + making $SRC_DIR/build/release/workflow/GenHashTableWorkflow.o + making $SRC_DIR/build/release/workflow/Input2SamWorkflow.o + making $SRC_DIR/build/release/libdragmap-workflow.a + making $SRC_DIR/build/release/align/Aligner.o + making $SRC_DIR/build/release/align/AlignmentGenerator.o + making $SRC_DIR/build/release/align/AlignmentRescue.o + making $SRC_DIR/build/release/align/Alignments.o + making $SRC_DIR/build/release/align/CalculateRefStartEnd.o + making $SRC_DIR/build/release/align/Cigar.o + making $SRC_DIR/build/release/align/InsertSizeDistribution.o + making $SRC_DIR/build/release/align/PairBuilder.o + making $SRC_DIR/build/release/align/Pairs.o + making $SRC_DIR/build/release/align/SinglePicker.o + making $SRC_DIR/build/release/align/SmithWaterman.o + making $SRC_DIR/build/release/align/Tlen.o + making $SRC_DIR/build/release/align/VectorSmithWaterman.o + making $SRC_DIR/build/release/align/Wavefront.o + making $SRC_DIR/build/release/libdragmap-align.a + making $SRC_DIR/build/release/map/BestIntervalTracker.o + making $SRC_DIR/build/release/map/ChainBuilder.o + making $SRC_DIR/build/release/map/Mapper.o + /opt/conda/conda-bld/narfmap_1717537454419/work/src/lib/map/Mapper.cpp: In member function 'void dragenos::map::Mapper::addToPositionChains(const Seed&, dragenos::map::ChainBuilder&, std::vector&, uint32_t&, uint32_t&) const': + /opt/conda/conda-bld/narfmap_1717537454419/work/src/lib/map/Mapper.cpp:338:38: error: 'make_iterator_range' is not a member of 'boost'; did you mean 'iterator_range'? + 338 | for (const auto& record : boost::make_iterator_range(hashRecords_.rbegin(), hashRecords_.rend())) { + | ^~~~~~~~~~~~~~~~~~~ + | iterator_range + make: *** [/opt/conda/conda-bld/narfmap_1717537454419/work/make/lib.mk:110: /opt/conda/conda-bld/narfmap_1717537454419/work/build/release/map/Mapper.o] Error 1 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/narfmap_1717537454419/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/narfmap/meta.yaml b/recipes/narfmap/meta.yaml index 97b860bfd5c12..fc575ed7b58b2 100644 --- a/recipes/narfmap/meta.yaml +++ b/recipes/narfmap/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 skip: True # [osx] run_exports: - {{ pin_subpackage("narfmap", max_pin="x") }} diff --git a/recipes/ncbi-ngs-sdk/meta.yaml b/recipes/ncbi-ngs-sdk/meta.yaml index 09d85595c29bf..5949626193ffd 100644 --- a/recipes/ncbi-ngs-sdk/meta.yaml +++ b/recipes/ncbi-ngs-sdk/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 3 + number: 4 run_exports: - {{ pin_subpackage('ncbi-ngs-sdk', max_pin="x") }} @@ -38,4 +38,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ncls/meta.yaml b/recipes/ncls/meta.yaml index 44dbe4ad16faa..7471a81ad188c 100644 --- a/recipes/ncls/meta.yaml +++ b/recipes/ncls/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 81aaa5abb123bb21797ed2f8ef921e20222db14a3ecbc61ccf447532f2b7ba93 build: - number: 2 + number: 3 skip: true # [py2k or osx] script: {{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv run_exports: diff --git a/recipes/nerpa/build_failure.linux-64.yaml b/recipes/nerpa/build_failure.linux-64.yaml index 7cae3386cfd25..56d9816171e9a 100644 --- a/recipes/nerpa/build_failure.linux-64.yaml +++ b/recipes/nerpa/build_failure.linux-64.yaml @@ -1,104 +1,104 @@ -recipe_sha: 648bad9801c79c9d0b01356fb8826e596da24f27f981563fa0dd7e0f792f6894 # The commit at which this recipe failed to build. +recipe_sha: f1bb13bb51bc0b3f95e48a89e68c7305899eb56ba472827ee9c0e026bd91a39b # The hash of the recipe's meta.yaml at which this recipe failed to build. skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. log: |2- - 146 | for (int i = 0; i < res.size(); i) { - | ~~^~~~~~~~~~~~ - /opt/conda/conda-bld/nerpa_1685350757054/work/src/Aminoacid/Aminoacid.h: In function 'std::ostream& aminoacid::operator<<(std::ostream&, const Aminoacid&)': - /opt/conda/conda-bld/nerpa_1685350757054/work/src/Aminoacid/Aminoacid.h:28:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] - 28 | for (int i = 0; i < a.modifications.size(); i) { - | ~~^~~~~~~~~~~~~~~~~~~~~~~~ - /opt/conda/conda-bld/nerpa_1685350757054/work/src/NRPsPrediction/AAdomainPrediction.h: In constructor 'nrpsprediction::AAdomainPrediction::AAdomainPrediction(int, std::vector, bool, std::vector, aminoacid::Aminoacid::Configuation)': - /opt/conda/conda-bld/nerpa_1685350757054/work/src/NRPsPrediction/AAdomainPrediction.h:24:36: warning: 'nrpsprediction::AAdomainPrediction::aminoacid_prediction' will be initialized after [-Wreorder] - 24 | std::vector aminoacid_prediction; - | ^~~~~~~~~~~~~~~~~~~~ - /opt/conda/conda-bld/nerpa_1685350757054/work/src/NRPsPrediction/AAdomainPrediction.h:22:14: warning: 'bool nrpsprediction::AAdomainPrediction::is_repeatable' [-Wreorder] - 22 | bool is_repeatable=false; - | ^~~~~~~~~~~~~ - /opt/conda/conda-bld/nerpa_1685350757054/work/src/NRPsPrediction/AAdomainPrediction.h:27:9: warning: when initialized here [-Wreorder] - 27 | AAdomainPrediction(int pos, std::vector aminoacid_prediction, bool is_repeatable=false, std::vector mods={}, aminoacid::Aminoacid::Configuation configuation=aminoacid::Aminoacid::NA): pos(pos), - | ^~~~~~~~~~~~~~~~~~ - /opt/conda/conda-bld/nerpa_1685350757054/work/src/NRPsPrediction/AAdomainPrediction.h:32:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] - 32 | for (int i = 0; i < this->modificatins.size(); i) { - | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ - /opt/conda/conda-bld/nerpa_1685350757054/work/src/NRPsPrediction/AAdomainPrediction.h:33:35: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] - 33 | for (int j = 0; j < this->aminoacid_prediction.size(); j) { - | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - /opt/conda/conda-bld/nerpa_1685350757054/work/src/NRPsPrediction/AAdomainPrediction.h:38:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] - 38 | for (int j = 0; j < this->aminoacid_prediction.size(); j) { - | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - /opt/conda/conda-bld/nerpa_1685350757054/work/src/NRP/NRP.h: In constructor 'nrp::NRP::NRP(std::string, std::vector >, std::vector, std::vector, std::string, std::string)': - /opt/conda/conda-bld/nerpa_1685350757054/work/src/NRP/NRP.h:24:21: warning: 'nrp::NRP::file_name' will be initialized after [-Wreorder] - 24 | std::string file_name; - | ^~~~~~~~~ - /opt/conda/conda-bld/nerpa_1685350757054/work/src/NRP/NRP.h:22:35: warning: 'std::vector > nrp::NRP::strformula' [-Wreorder] - 22 | std::vector strformula; - | ^~~~~~~~~~ - /opt/conda/conda-bld/nerpa_1685350757054/work/src/NRP/NRP.h:31:9: warning: when initialized here [-Wreorder] - 31 | NRP(std::string file_name, std::vector strformula, - | ^~~ - /opt/conda/conda-bld/nerpa_1685350757054/work/src/NRP/NRP.h:22:35: warning: 'nrp::NRP::strformula' will be initialized after [-Wreorder] - 22 | std::vector strformula; - | ^~~~~~~~~~ - /opt/conda/conda-bld/nerpa_1685350757054/work/src/NRP/NRP.h:20:44: warning: 'std::vector nrp::NRP::aminoacids' [-Wreorder] - 20 | std::vector aminoacids; - | ^~~~~~~~~~ - /opt/conda/conda-bld/nerpa_1685350757054/work/src/NRP/NRP.h:31:9: warning: when initialized here [-Wreorder] - 31 | NRP(std::string file_name, std::vector strformula, - | ^~~ - In file included from /opt/conda/conda-bld/nerpa_1685350757054/work/src/Matcher/NRPsMatch.cpp:6: - /opt/conda/conda-bld/nerpa_1685350757054/work/src/Matcher/MatcherBase.h: In constructor 'matcher::MatcherBase::Match::Match(std::shared_ptr, std::vector, double, const matcher::Score*)': - /opt/conda/conda-bld/nerpa_1685350757054/work/src/Matcher/MatcherBase.h:24:56: warning: 'matcher::MatcherBase::Match::nrpParts' will be initialized after [-Wreorder] - 24 | std::vector nrpParts; - | ^~~~~~~~ - /opt/conda/conda-bld/nerpa_1685350757054/work/src/Matcher/MatcherBase.h:23:20: warning: 'double matcher::MatcherBase::Match::scr' [-Wreorder] - 23 | double scr; - | ^~~ - /opt/conda/conda-bld/nerpa_1685350757054/work/src/Matcher/MatcherBase.h:29:13: warning: when initialized here [-Wreorder] - 29 | Match(std::shared_ptr nrp, std::vector nrpParts, double scr, const Score* score): - | ^~~~~ - /opt/conda/conda-bld/nerpa_1685350757054/work/src/Matcher/MatcherBase.h:23:20: warning: 'matcher::MatcherBase::Match::scr' will be initialized after [-Wreorder] - 23 | double scr; - | ^~~ - /opt/conda/conda-bld/nerpa_1685350757054/work/src/Matcher/MatcherBase.h:22:26: warning: 'const matcher::Score* matcher::MatcherBase::Match::scoreFun' [-Wreorder] - 22 | const Score* scoreFun; - | ^~~~~~~~ - /opt/conda/conda-bld/nerpa_1685350757054/work/src/Matcher/MatcherBase.h:29:13: warning: when initialized here [-Wreorder] - 29 | Match(std::shared_ptr nrp, std::vector nrpParts, double scr, const Score* score): - | ^~~~~ - /opt/conda/conda-bld/nerpa_1685350757054/work/src/Matcher/NRPsMatch.cpp: In member function 'void matcher::MatcherBase::Match::print_csv(std::ofstream&)': - /opt/conda/conda-bld/nerpa_1685350757054/work/src/Matcher/NRPsMatch.cpp:144:28: warning: conversion from 'std::vector::size_type' {aka 'long unsigned int'} to 'int' may change value [-Wconversion] - 144 | int len = parts_id.size(); - | ~~~~~~~~~~~~~^~ - /opt/conda/conda-bld/nerpa_1685350757054/work/src/Matcher/NRPsMatch.cpp:146:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] - 146 | for (int i = 0; i < parts_id.size(); i) { - | ~~^~~~~~~~~~~~~~~~~ - /opt/conda/conda-bld/nerpa_1685350757054/work/src/Matcher/NRPsMatch.cpp:149:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string::size_type' {aka 'long unsigned int'} [-Wsign-compare] - 149 | for (int j = 0; j < formula.size(); j) { - | ~~^~~~~~~~~~~~~~~~ - /opt/conda/conda-bld/nerpa_1685350757054/work/src/Matcher/NRPsMatch.cpp: In member function 'int matcher::MatcherBase::Match::getCntMatch()': - /opt/conda/conda-bld/nerpa_1685350757054/work/src/Matcher/NRPsMatch.cpp:171:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] - 171 | for (int i = 0; i < parts_id.size(); i){ - | ~~^~~~~~~~~~~~~~~~~ - [ 38%] Linking CXX static library liblogger_lib.a - [ 38%] Built target logger_lib + | ~~^~~~~~~~~~ + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp:23:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] + 23 | for (int j = 0; j < g[i].size(); j) { + | ~~^~~~~~~~~~~~~ + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp: In static member function 'static void nrp::NRPBuilder::handleLoop(int, std::vector >&, std::vector >&, std::vector >&)': + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp:39:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] + 39 | for (int j = 0; j < g[v].size(); j) { + | ~~^~~~~~~~~~~~~ + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp:46:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] + 46 | for (int j = 0; j < gr[v].size(); j) { + | ~~^~~~~~~~~~~~~~ + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp:53:22: warning: conversion from 'std::vector >::size_type' {aka 'long unsigned int'} to 'int' may change value [-Wconversion] + 53 | int newv = g.size(); + | ~~~~~~^~ + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp:57:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] + 57 | for (int i = 0; i < gr[g[newv][0]].size(); i) { + | ~~^~~~~~~~~~~~~~~~~~~~~~~ + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp: In static member function 'static void nrp::NRPBuilder::handleLoops(std::vector >&, std::vector >&, std::vector >&)': + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp:72:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector >::size_type' {aka 'long unsigned int'} [-Wsign-compare] + 72 | for (int i = 0; i < g.size(); i) { + | ~~^~~~~~~~~~ + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp:73:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] + 73 | for (int j = 0; j < g[i].size(); j) { + | ~~^~~~~~~~~~~~~ + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp: In static member function 'static std::shared_ptr nrp::NRPBuilder::build(std::string, std::string)': + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp:126:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector >::size_type' {aka 'long unsigned int'} [-Wsign-compare] + 126 | for (int i = 0; i < formuls.size(); i) { + | ~~^~~~~~~~~~~~~~~~ + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp:133:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector >::size_type' {aka 'long unsigned int'} [-Wsign-compare] + 133 | for (int i = 0; i < g.size(); i) { + | ~~^~~~~~~~~~ + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp:136:65: warning: conversion from 'std::vector::size_type' {aka 'long unsigned int'} to '__gnu_cxx::__alloc_traits, int>::value_type' {aka 'int'} may change value [-Wconversion] + 136 | tmp_formuls[int(Elem::H)] -= (g[i].size() gr[i].size()); + | ^ + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp:137:49: warning: conversion from 'std::vector::size_type' {aka 'long unsigned int'} to '__gnu_cxx::__alloc_traits, int>::value_type' {aka 'int'} may change value [-Wconversion] + 137 | tmp_formuls[int(Elem::O)] -= gr[i].size(); + | ^ + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp:162:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] + 162 | for (int i = 0; i < pos_cycle.size(); i) { + | ~~^~~~~~~~~~~~~~~~~~ + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp:166:39: warning: conversion from 'std::vector::size_type' {aka 'long unsigned int'} to 'int' may change value [-Wconversion] + 166 | for (int i = pos_cycle.size() - 1; i >= 0; --i) { + | ~~~~~~~~~~~~~~~~~^~~ + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp: In static member function 'static std::vector nrp::NRPBuilder::aminoacids_by_pos(const std::vector&, const std::vector&)': + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp:187:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] + 187 | for (int i = 0; i < pos.size(); i) { + | ~~^~~~~~~~~~~~ + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp: In static member function 'static std::vector nrp::NRPBuilder::parseCycle(std::vector >&, std::vector >&, const std::vector >&)': + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp:268:111: warning: unused parameter 'gr' [-Wunused-parameter] + 268 | std::vector nrp::NRPBuilder::parseCycle(std::vector> &g, std::vector> &gr, + | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~ + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp: In static member function 'static void nrp::NRPBuilder::parseTail(std::vector >&, std::vector >&, std::vector&, std::vector&, const std::vector >&)': + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp:334:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector >::size_type' {aka 'long unsigned int'} [-Wsign-compare] + 334 | for (int i = 0; i < ocon.size(); i) { + | ~~^~~~~~~~~~~~~ + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp:358:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector >::size_type' {aka 'long unsigned int'} [-Wsign-compare] + 358 | for (int i = 0; i < ocon.size(); i) { + | ~~^~~~~~~~~~~~~ + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp: In static member function 'static std::string nrp::NRPBuilder::to_string(std::vector)': + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp:384:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] + 384 | for (int i = 0; i < formula.size(); i) { + | ~~^~~~~~~~~~~~~~~~ + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp: In static member function 'static std::vector nrp::NRPBuilder::parse_formula(std::string)': + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp:399:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string::size_type' {aka 'long unsigned int'} [-Wsign-compare] + 399 | for (int i = 0; i < formula.size(); i) { + | ~~^~~~~~~~~~~~~~~~ + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp:409:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string::size_type' {aka 'long unsigned int'} [-Wsign-compare] + 409 | if (i 1 < formula.size() && formula[i 1] >= 'a' && formula[i 1] <= 'z') { + | ~~~~~~^~~~~~~~~~~~~~~~ + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp: In static member function 'static bool nrp::NRPBuilder::isConnected(std::vector >&, std::vector >&)': + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp:435:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector >::size_type' {aka 'long unsigned int'} [-Wsign-compare] + 435 | for (int i = 0; i < g.size(); i) { + | ~~^~~~~~~~~~ + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp: In static member function 'static void nrp::NRPBuilder::dfs(int, std::vector&, std::vector >&, std::vector >&)': + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp:447:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] + 447 | for (int i = 0; i < g[v].size(); i) { + | ~~^~~~~~~~~~~~~ + /opt/conda/conda-bld/nerpa_1717623833787/work/src/NRP/NRPBuilder.cpp:454:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] + 454 | for (int i = 0; i < gr[v].size(); i) { + | ~~^~~~~~~~~~~~~~ + [ 41%] Linking CXX static library liblogger_lib.a + [ 41%] Built target logger_lib make[1]: *** [CMakeFiles/Makefile2:119: src/CMakeFiles/nrps_matcher_lib.dir/all] Error 2 make: *** [Makefile:136: all] Error 2 Traceback (most recent call last): - File "/opt/conda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/conda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build return build_tree( - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/conda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/conda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/nerpa_1685350757054/work/conda_build.sh']' returned non-zero exit status 2. + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/nerpa_1717623833787/work/conda_build.sh']' returned non-zero exit status 2. # Last 100 lines of the build log. diff --git a/recipes/nerpa/build_failure.osx-64.yaml b/recipes/nerpa/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..bd3869eff3607 --- /dev/null +++ b/recipes/nerpa/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: f1bb13bb51bc0b3f95e48a89e68c7305899eb56ba472827ee9c0e026bd91a39b # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + 5 warnings generated. + make[1]: *** [CMakeFiles/Makefile2:119: src/CMakeFiles/nrps_matcher_lib.dir/all] Error 2 + make: *** [Makefile:136: all] Error 2 + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/nerpa_1717608828871/work + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/nerpa_1717608828871/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/nerpa_1717608828871/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/nerpa_1717608828871/work + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/nerpa-1.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/nerpa_1717608828871/work/conda_build.sh']' returned non-zero exit status 2. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/nerpa-1.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/nerpa-1.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/nerpa-1.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + -- The C compiler identification is Clang 16.0.6 + -- The CXX compiler identification is Clang 16.0.6 + -- Detecting C compiler ABI info + -- Detecting C compiler ABI info - done + -- Check for working C compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting C compile features + -- Detecting C compile features - done + -- Detecting CXX compiler ABI info + -- Detecting CXX compiler ABI info - done + -- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting CXX compile features + -- Detecting CXX compile features - done + -- Could NOT find OpenMP_C (missing: OpenMP_C_FLAGS OpenMP_C_LIB_NAMES) + -- Could NOT find OpenMP_CXX (missing: OpenMP_CXX_FLAGS OpenMP_CXX_LIB_NAMES) + -- Could NOT find OpenMP (missing: OpenMP_C_FOUND OpenMP_CXX_FOUND) + -- Configuring done (3.7s) + -- Generating done (0.1s) + -- Build files have been written to: $SRC_DIR/build + [ 3%] Building CXX object src/CMakeFiles/nrps_matcher_lib.dir/utils/config.cpp.o + [ 6%] Building CXX object src/CMakeFiles/nrps_matcher_lib.dir/main.cpp.o + [ 9%] Building CXX object src/Logger/CMakeFiles/logger_lib.dir/logger_impl.cpp.o + [ 12%] Building CXX object src/CMakeFiles/nrps_matcher_lib.dir/Aminoacid/Aminoacid.cpp.o + [ 16%] Building CXX object src/CMakeFiles/nrps_matcher_lib.dir/NRPsPrediction/AAdomainPrediction.cpp.o + [ 19%] Building CXX object src/Logger/CMakeFiles/logger_lib.dir/posix.cc.o + [ 22%] Building CXX object src/Logger/CMakeFiles/logger_lib.dir/format.cc.o + [ 25%] Building CXX object src/CMakeFiles/nrps_matcher_lib.dir/NRPsPrediction/OrfPrediction.cpp.o + [ 29%] Linking CXX static library liblogger_lib.a + [ 29%] Built target logger_lib +# Last 100 lines of the build log. diff --git a/recipes/nerpa/meta.yaml b/recipes/nerpa/meta.yaml index 85d410a8caba5..82b815ed4d375 100644 --- a/recipes/nerpa/meta.yaml +++ b/recipes/nerpa/meta.yaml @@ -12,8 +12,7 @@ source: build: - number: 5 - skip: True # [py < 37] + number: 6 requirements: build: diff --git a/recipes/newick_utils/meta.yaml b/recipes/newick_utils/meta.yaml index ca2e187e8441c..762c33482c161 100644 --- a/recipes/newick_utils/meta.yaml +++ b/recipes/newick_utils/meta.yaml @@ -8,7 +8,7 @@ package: version: {{ version }} build: - number: 7 + number: 8 source: url: https://github.com/tjunier/newick_utils/archive/{{ revision }}.tar.gz diff --git a/recipes/nextdenovo/meta.yaml b/recipes/nextdenovo/meta.yaml index 6ce4c5e6440d4..9cd2862116599 100644 --- a/recipes/nextdenovo/meta.yaml +++ b/recipes/nextdenovo/meta.yaml @@ -12,7 +12,7 @@ source: sha256: {{ sha256 }} build: - number: 4 + number: 5 binary_has_prefix_files: - nextDenovo run_exports: diff --git a/recipes/nextpolish/build_failure.osx-64.yaml b/recipes/nextpolish/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..71e48079f203a --- /dev/null +++ b/recipes/nextpolish/build_failure.osx-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 00446774e10e402207b5471dce316d7b6277689c33e12899d656bf1895f730fa # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: compiler error +log: |2- + fprintf(stderr, "[STAT] Total used bases:%lu reads count(with N Base):%lu(%lu)\n",total_base, total_read, total_nread); + ~~~ ^~~~~~~~~~ + %llu + seq_split.c:345:108: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat] + fprintf(stderr, "[STAT] Total used bases:%lu reads count(with N Base):%lu(%lu)\n",total_base, total_read, total_nread); + ~~~ ^~~~~~~~~~~ + %llu + 3 warnings generated. + thpool.c:329:2: error: call to undeclared function 'pthread_setname_np'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] + pthread_setname_np(thread_name); + ^ + 1 error generated. + make[1]: *** [Makefile:13: seq_split] Error 1 + make: *** [Makefile:18: all] Error 2 + Extracting download + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/nextpolish/fix_nextpolish_paths.patch + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/nextpolish/fix_nextpolish_paths.patch with args: + ['-Np1', '-i', '/tmp/tmp8zk8i4n4/fix_nextpolish_paths.patch.native', '--binary'] + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/nextpolish/fix_get_version.patch + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/nextpolish/fix_get_version.patch with args: + ['-Np1', '-i', '/tmp/tmp1g2fvfsm/fix_get_version.patch.native', '--binary'] + Patch analysis gives: + [[ RA-MD1LOVE ]] - [[ fix_nextpolish_paths.patch ]] + Traceback (most recent call last): + [[ RA-MD1LOVE ]] - [[ fix_get_version.patch ]] + + Key: + + R :: Reversible A :: Applicable + Y :: Build-prefix patch in use M :: Minimal, non-amalgamated + D :: Dry-runnable N :: Patch level (1 is preferred) + L :: Patch level not-ambiguous O :: Patch applies without offsets + V :: Patch applies without fuzz E :: Patch applies without emitting to stderr + + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/nextpolish_1718144212493/work + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/nextpolish_1718144212493/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/nextpolish_1718144212493/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/nextpolish_1718144212493/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/nextpolish-1.4.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/nextpolish-1.4.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + mkdir $SRC_DIR/bin + make -C util; + make[1]: Entering directory '$SRC_DIR/util' + x86_64-apple-darwin13.4.0-clang -O3 -pthread -o seq_split seq_split.c thpool.c -lz -isystem $PREFIX/include + make[1]: Leaving directory '$SRC_DIR/util' + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/nextpolish_1718144212493/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/nextpolish/meta.yaml b/recipes/nextpolish/meta.yaml index c0220727c74bc..2b2cd7b3873ea 100644 --- a/recipes/nextpolish/meta.yaml +++ b/recipes/nextpolish/meta.yaml @@ -13,7 +13,7 @@ source: - fix_get_version.patch build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage('nextpolish', max_pin="x") }} diff --git a/recipes/ngs-bits/build_failure.linux-64.yaml b/recipes/ngs-bits/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..8768bbb2d879a --- /dev/null +++ b/recipes/ngs-bits/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 54c85e316706795374bd6159f94ebb84e0d89360b89116c83a972215f4ae452b # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + | ~~~~~~~~~~~~~~^~ + In file included from ../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore/QSet:1, + from ../../src/cppNGS/BedFile.h:9, + from ../../src/cppNGS/VariantList.h:7: + ../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore/qset.h:265:14: note: declared here + 265 | QList toList() const { return values(); } + | ^~~~~~ + ../../src/cppNGSD/SomaticReportHelper.cpp: In member function 'RtfSourceCode SomaticReportHelper::partRelevantVariants()': + ../../src/cppNGSD/SomaticReportHelper.cpp:1981:92: warning: 'QByteArray& QByteArray::operator=(const QString&)' is deprecated: Use QString's toUtf8(), toLatin1() or toLocal8Bit() [-Wdeprecated-declarations] + 1981 | snv_expl = settings_.report_config.limitations().replace("\n","\n\\line\n"); + | ^ + In file included from ../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore/QString:1, + from ../../src/cppNGS/VariantAnnotationDescription.h:5, + from ../../src/cppNGS/VariantList.h:5: + ../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore/qstring.h:1521:20: note: declared here + 1521 | inline QByteArray &QByteArray::operator=(const QString &s) + | ^~~~~~~~~~ + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -c -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ngs-bits-2024_02 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -std=gnu11 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG_OUTPUT -DCPPNGSD_LIBRARY -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_XMLPATTERNS_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I../../src/cppNGSD -I. -I../../src/cppCORE -I../../src/cppNGS -I../../src/cppXML -I../../htslib/include -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtSql -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtXml -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtXmlPatterns -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtNetwork -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore -I. -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/mkspecs/linux-g -o SomaticRnaReport.o ../../src/cppNGSD/SomaticRnaReport.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -c -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ngs-bits-2024_02 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -std=gnu11 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG_OUTPUT -DCPPNGSD_LIBRARY -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_XMLPATTERNS_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I../../src/cppNGSD -I. -I../../src/cppCORE -I../../src/cppNGS -I../../src/cppXML -I../../htslib/include -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtSql -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtXml -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtXmlPatterns -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtNetwork -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore -I. -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/mkspecs/linux-g -o SomaticcfDNAReport.o ../../src/cppNGSD/SomaticcfDNAReport.cpp + ../../src/cppNGSD/SomaticcfDNAReport.cpp: In member function 'RtfTable SomaticcfDnaReport::partGeneralInfo()': + ../../src/cppNGSD/SomaticcfDNAReport.cpp:363:105: warning: 'QList QSet::toList() const [with T = QString]' is deprecated: Use values() instead. [-Wdeprecated-declarations] + 363 | table.addRow( RtfTableRow( {"Prozessierungssystem:", "Patientenspezifisches Panel " sys.toList().join(", ").toUtf8()}, {2000,7921}, RtfParagraph().setFontSize(14)) ); + | ~~~~~~~~~~^~ + In file included from ../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore/qdebug.h:52, + from ../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore/QDebug:1, + from ../../src/cppNGSD/SomaticcfDNAReport.cpp:1: + ../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore/qset.h:265:14: note: declared here + 265 | QList toList() const { return values(); } + | ^~~~~~ + $PREFIX/bin/rcc -name cppNGSD ../../src/cppNGSD/cppNGSD.qrc -o qrc_cppNGSD.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -c -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ngs-bits-2024_02 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -std=gnu11 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG_OUTPUT -DCPPNGSD_LIBRARY -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_XMLPATTERNS_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I../../src/cppNGSD -I. -I../../src/cppCORE -I../../src/cppNGS -I../../src/cppXML -I../../htslib/include -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtSql -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtXml -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtXmlPatterns -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtNetwork -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore -I. -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/mkspecs/linux-g -o qrc_cppNGSD.o qrc_cppNGSD.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ngs-bits-2024_02 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -std=gnu11 -Wall -Wextra -dM -E -o moc_predefs.h ../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/mkspecs/features/data/dummy.cpp + $PREFIX/bin/moc -DQT_NO_DEBUG_OUTPUT -DCPPNGSD_LIBRARY -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_XMLPATTERNS_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB --include $SRC_DIR/build/cppNGSD/moc_predefs.h -I$PREFIX/mkspecs/linux-g -I$SRC_DIR/src/cppNGSD -I$SRC_DIR/src/cppCORE -I$SRC_DIR/src/cppNGS -I$SRC_DIR/src/cppXML -I$SRC_DIR/htslib/include -I$PREFIX/include/qt -I$PREFIX/include/qt/QtSql -I$PREFIX/include/qt/QtXml -I$PREFIX/include/qt/QtXmlPatterns -I$PREFIX/include/qt/QtNetwork -I$PREFIX/include/qt/QtCore -I. -I$BUILD_PREFIX/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include -I$BUILD_PREFIX/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include-fixed -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include/c/12.3.0 -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include/c/12.3.0/x86_64-conda-linux-gnu -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include/c/12.3.0/backward -I$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr/include ../../src/cppNGSD/NGSD.h -o moc_NGSD.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -c -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ngs-bits-2024_02 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -std=gnu11 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG_OUTPUT -DCPPNGSD_LIBRARY -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_XMLPATTERNS_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I../../src/cppNGSD -I. -I../../src/cppCORE -I../../src/cppNGS -I../../src/cppXML -I../../htslib/include -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtSql -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtXml -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtXmlPatterns -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtNetwork -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore -I. -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/mkspecs/linux-g -o moc_NGSD.o moc_NGSD.cpp + $PREFIX/bin/moc -DQT_NO_DEBUG_OUTPUT -DCPPNGSD_LIBRARY -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_XMLPATTERNS_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB --include $SRC_DIR/build/cppNGSD/moc_predefs.h -I$PREFIX/mkspecs/linux-g -I$SRC_DIR/src/cppNGSD -I$SRC_DIR/src/cppCORE -I$SRC_DIR/src/cppNGS -I$SRC_DIR/src/cppXML -I$SRC_DIR/htslib/include -I$PREFIX/include/qt -I$PREFIX/include/qt/QtSql -I$PREFIX/include/qt/QtXml -I$PREFIX/include/qt/QtXmlPatterns -I$PREFIX/include/qt/QtNetwork -I$PREFIX/include/qt/QtCore -I. -I$BUILD_PREFIX/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include -I$BUILD_PREFIX/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include-fixed -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include/c/12.3.0 -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include/c/12.3.0/x86_64-conda-linux-gnu -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include/c/12.3.0/backward -I$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr/include ../../src/cppNGSD/GenLabDB.h -o moc_GenLabDB.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -c -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ngs-bits-2024_02 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -std=gnu11 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG_OUTPUT -DCPPNGSD_LIBRARY -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_XMLPATTERNS_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I../../src/cppNGSD -I. -I../../src/cppCORE -I../../src/cppNGS -I../../src/cppXML -I../../htslib/include -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtSql -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtXml -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtXmlPatterns -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtNetwork -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore -I. -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/mkspecs/linux-g -o moc_GenLabDB.o moc_GenLabDB.cpp + $PREFIX/bin/moc -DQT_NO_DEBUG_OUTPUT -DCPPNGSD_LIBRARY -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_XMLPATTERNS_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB --include $SRC_DIR/build/cppNGSD/moc_predefs.h -I$PREFIX/mkspecs/linux-g -I$SRC_DIR/src/cppNGSD -I$SRC_DIR/src/cppCORE -I$SRC_DIR/src/cppNGS -I$SRC_DIR/src/cppXML -I$SRC_DIR/htslib/include -I$PREFIX/include/qt -I$PREFIX/include/qt/QtSql -I$PREFIX/include/qt/QtXml -I$PREFIX/include/qt/QtXmlPatterns -I$PREFIX/include/qt/QtNetwork -I$PREFIX/include/qt/QtCore -I. -I$BUILD_PREFIX/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include -I$BUILD_PREFIX/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include-fixed -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include/c/12.3.0 -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include/c/12.3.0/x86_64-conda-linux-gnu -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include/c/12.3.0/backward -I$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr/include ../../src/cppNGSD/ReportConfiguration.h -o moc_ReportConfiguration.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -c -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ngs-bits-2024_02 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -std=gnu11 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG_OUTPUT -DCPPNGSD_LIBRARY -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_XMLPATTERNS_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I../../src/cppNGSD -I. -I../../src/cppCORE -I../../src/cppNGS -I../../src/cppXML -I../../htslib/include -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtSql -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtXml -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtXmlPatterns -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtNetwork -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore -I. -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/mkspecs/linux-g -o moc_ReportConfiguration.o moc_ReportConfiguration.cpp + rm -f libcppNGSD.so.1.0.0 libcppNGSD.so libcppNGSD.so.1 libcppNGSD.so.1.0 + g -Wl,-rpath,'$ORIGIN' -Wl,-O1 -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib/ -shared -Wl,-soname,libcppNGSD.so.1 -o libcppNGSD.so.1.0.0 ApiCaller.o ExportCBioPortalStudy.o FileLocationList.o FileLocationProviderLocal.o FileLocationProviderRemote.o SqlQuery.o NGSD.o GenLabDB.o DBTable.o ReportConfiguration.o SomaticReportConfiguration.o LoginManager.o SomaticXmlReportGenerator.o SomaticReportSettings.o ReportSettings.o GermlineReportGenerator.o StatisticsServiceLocal.o StatisticsServiceRemote.o TumorOnlyReportWorker.o SomaticReportHelper.o SomaticRnaReport.o SomaticcfDNAReport.o qrc_cppNGSD.o moc_NGSD.o moc_GenLabDB.o moc_ReportConfiguration.o -L$PREFIX/lib -L$SRC_DIR/src/cppNGSD/../../bin -lcppCORE -lcppNGS -lcppXML -L$SRC_DIR/src/cppNGSD/../../htslib/lib/ -lhts $PREFIX/lib/libQt5Sql.so $PREFIX/lib/libQt5Xml.so $PREFIX/lib/libQt5XmlPatterns.so $PREFIX/lib/libQt5Network.so $PREFIX/lib/libQt5Core.so -lpthread + ln -s libcppNGSD.so.1.0.0 libcppNGSD.so + ln -s libcppNGSD.so.1.0.0 libcppNGSD.so.1 + ln -s libcppNGSD.so.1.0.0 libcppNGSD.so.1.0 + rm -f ../../bin/libcppNGSD.so.1.0.0 + mv -f libcppNGSD.so.1.0.0 ../../bin/libcppNGSD.so.1.0.0 + rm -f ../../bin/libcppNGSD.so + rm -f ../../bin/libcppNGSD.so.1 + rm -f ../../bin/libcppNGSD.so.1.0 + mv -f libcppNGSD.so ../../bin/libcppNGSD.so + mv -f libcppNGSD.so.1 ../../bin/libcppNGSD.so.1 + mv -f libcppNGSD.so.1.0 ../../bin/libcppNGSD.so.1.0 + make[1]: Leaving directory '$SRC_DIR/build/cppNGSD' + cd SampleAncestry/ && ( test -e Makefile || $PREFIX/bin/qmake -o Makefile $SRC_DIR/src/SampleAncestry/SampleAncestry.pro CONFIG-=debug CONFIG=release DEFINES=QT_NO_DEBUG_OUTPUT QMAKE_CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c QMAKE_CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc 'QMAKE_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ngs-bits-2024_02 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix' 'QMAKE_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ngs-bits-2024_02 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix' QMAKE_LIBDIR=$PREFIX/lib QMAKE_RPATHLINKDIR=$PREFIX/lib/ ) && make -f Makefile + make[1]: Entering directory '$SRC_DIR/build/SampleAncestry' + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ngs-bits-2024_02 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -std=gnu11 -Wall -Wextra -dM -E -o moc_predefs.h ../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/mkspecs/features/data/dummy.cpp + $PREFIX/bin/moc -DQT_NO_DEBUG_OUTPUT -DQT_NO_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB --include $SRC_DIR/build/SampleAncestry/moc_predefs.h -I$PREFIX/mkspecs/linux-g -I$SRC_DIR/src/SampleAncestry -I$SRC_DIR/src/cppCORE -I$SRC_DIR/src/cppXML -I$SRC_DIR/src/cppNGS -I$SRC_DIR/htslib/include -I$PREFIX/include/qt -I$PREFIX/include/qt/QtNetwork -I$PREFIX/include/qt/QtCore -I. -I$BUILD_PREFIX/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include -I$BUILD_PREFIX/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include-fixed -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include/c/12.3.0 -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include/c/12.3.0/x86_64-conda-linux-gnu -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include/c/12.3.0/backward -I$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr/include ../../src/SampleAncestry/main.cpp -o main.moc + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -c -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ngs-bits-2024_02 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -std=gnu11 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG_OUTPUT -DQT_NO_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB -I../../src/SampleAncestry -I. -I../../src/cppCORE -I../../src/cppXML -I../../src/cppNGS -I../../htslib/include -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtNetwork -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore -I. -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/mkspecs/linux-g -o main.o ../../src/SampleAncestry/main.cpp + ../../src/SampleAncestry/main.cpp: In member function 'virtual void ConcreteTool::main()': + ../../src/SampleAncestry/main.cpp:53:75: warning: 'QTextStream& QTextStreamFunctions::endl(QTextStream&)' is deprecated: Use Qt::endl [-Wdeprecated-declarations] + 53 | out << "#sample\tsnps\tAFR\tEUR\tSAS\tEAS\tpopulation" << endl; + | ^~~~ + In file included from ../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore/qdebug.h:49, + from ../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore/QDebug:1, + from ../../src/cppCORE/Exceptions.h:6, + from ../../src/cppNGS/GenomeBuild.h:5, + from ../../src/cppNGS/VariantList.h:9, + from ../../src/SampleAncestry/main.cpp:2: + ../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore/qtextstream.h:293:75: note: declared here + 293 | Q_CORE_EXPORT QT_DEPRECATED_VERSION_X(5, 15, "Use Qt::endl") QTextStream &endl(QTextStream &s); + | ^~~~ + ../../src/SampleAncestry/main.cpp:63:67: warning: 'QTextStream& QTextStreamFunctions::endl(QTextStream&)' is deprecated: Use Qt::endl [-Wdeprecated-declarations] + 63 | << "\t" << ancestry.population << endl; + | ^~~~ + ../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore/qtextstream.h:293:75: note: declared here + 293 | Q_CORE_EXPORT QT_DEPRECATED_VERSION_X(5, 15, "Use Qt::endl") QTextStream &endl(QTextStream &s); + | ^~~~ + g -Wl,-rpath,'$ORIGIN' -Wl,-O1 -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib/ -o ../../bin/SampleAncestry main.o -L$PREFIX/lib -L$SRC_DIR/src/../bin -lcppCORE -lcppXML -lcppNGS -L$SRC_DIR/src/../htslib/lib/ -lhts -lz $PREFIX/lib/libQt5Network.so $PREFIX/lib/libQt5Core.so -lpthread + /opt/conda/conda-bld/ngs-bits_1717785251796/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /opt/conda/conda-bld/ngs-bits_1717785251796/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/libQt5Network.so: undefined reference to memcpy@GLIBC_2.14' + /opt/conda/conda-bld/ngs-bits_1717785251796/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /opt/conda/conda-bld/ngs-bits_1717785251796/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/libQt5Core.so: undefined reference to clock_gettime@GLIBC_2.17' + /opt/conda/conda-bld/ngs-bits_1717785251796/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /opt/conda/conda-bld/ngs-bits_1717785251796/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/libQt5Core.so: undefined reference to getauxval@GLIBC_2.16' + collect2: error: ld returned 1 exit status + make[1]: *** [Makefile:275: ../../bin/SampleAncestry] Error 1 + make[1]: Leaving directory '$SRC_DIR/build/SampleAncestry' + make: *** [Makefile:462: sub-SampleAncestry-make_first] Error 2 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/ngs-bits_1717785251796/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/ngs-bits/meta.yaml b/recipes/ngs-bits/meta.yaml index 36577f5655986..2ba85a5998124 100755 --- a/recipes/ngs-bits/meta.yaml +++ b/recipes/ngs-bits/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("ngs-bits", max_pin=None) }} diff --git a/recipes/ngs-disambiguate/meta.yaml b/recipes/ngs-disambiguate/meta.yaml index 371d9b1bde3d2..b7c6be10de712 100644 --- a/recipes/ngs-disambiguate/meta.yaml +++ b/recipes/ngs-disambiguate/meta.yaml @@ -10,7 +10,7 @@ source: sha256: d5b05caec68db7596fc31564f44afdce27c4d5215785f9c97581d58e87d9cc94 build: - number: 7 + number: 8 skip: true # [osx] requirements: diff --git a/recipes/ngshmmalign/0.1.1/build_failure.linux-64.yaml b/recipes/ngshmmalign/0.1.1/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..cae09c5fdc6c6 --- /dev/null +++ b/recipes/ngshmmalign/0.1.1/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 284b2ea1a10802e44701f9bc9f7e576d4fafa0c854f4322303a8684bab8dcbde # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + In file included from src/aligner_impl.hpp:41, + from src/aligner.hpp:236, + from src/main.cpp:33: + /opt/conda/conda-bld/ngshmmalign_1717510895290/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/include/boost/progress.hpp:23:3: error: #error This header is deprecated and will be removed. (You can define BOOST_TIMER_ENABLE_DEPRECATED to suppress this error.) + 23 | # error This header is deprecated and will be removed. (You can define BOOST_TIMER_ENABLE_DEPRECATED to suppress this error.) + | ^~~~~ + In file included from /opt/conda/conda-bld/ngshmmalign_1717510895290/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/include/boost/progress.hpp:29: + /opt/conda/conda-bld/ngshmmalign_1717510895290/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/include/boost/timer.hpp:21:3: error: #error This header is deprecated and will be removed. (You can define BOOST_TIMER_ENABLE_DEPRECATED to suppress this error.) + 21 | # error This header is deprecated and will be removed. (You can define BOOST_TIMER_ENABLE_DEPRECATED to suppress this error.) + | ^~~~~ + In file included from src/reference.hpp:43, + from src/hmmalign.hpp:36, + from src/aligner.hpp:32: + src/utility_functions.hpp: In function 'char {anonymous}::rev_comp_char(char)': + src/utility_functions.hpp:95:25: warning: 'throw' will always call 'terminate' [-Wterminate] + 95 | throw std::invalid_argument(std::string(1, c) std::string(" is an unknown base! Exiting...\n")); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + In file included from /opt/conda/conda-bld/ngshmmalign_1717510895290/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/include/boost/smart_ptr/detail/requires_cxx11.hpp:9, + from /opt/conda/conda-bld/ngshmmalign_1717510895290/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/include/boost/smart_ptr/intrusive_ptr.hpp:16, + from /opt/conda/conda-bld/ngshmmalign_1717510895290/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/include/boost/filesystem/exception.hpp:20, + from /opt/conda/conda-bld/ngshmmalign_1717510895290/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/include/boost/filesystem.hpp:17, + from src/main.cpp:30: + /opt/conda/conda-bld/ngshmmalign_1717510895290/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/include/boost/progress.hpp: At global scope: + /opt/conda/conda-bld/ngshmmalign_1717510895290/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/include/boost/progress.hpp:27:1: note: '#pragma message: This header is deprecated. Use the facilities in or instead.' + 27 | BOOST_HEADER_DEPRECATED( "the facilities in or " ) + | ^~~~~~~~~~~~~~~~~~~~~~~ + /opt/conda/conda-bld/ngshmmalign_1717510895290/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/include/boost/timer.hpp:25:1: note: '#pragma message: This header is deprecated. Use the facilities in instead.' + 25 | BOOST_HEADER_DEPRECATED( "the facilities in " ) + | ^~~~~~~~~~~~~~~~~~~~~~~ + src/aligner_impl.hpp: In member function 'void {anonymous}::single_end_aligner::load_parameters(const std::string&, {anonymous}::background_rates&, bool)': + src/aligner_impl.hpp:334:48: error: 'extension' is not a member of 'boost::filesystem'; did you mean 'boost::fusion::extension'? + 334 | std::string ref_ext(boost::filesystem::extension(input_file)); + | ^~~~~~~~~ + In file included from /opt/conda/conda-bld/ngshmmalign_1717510895290/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/include/boost/fusion/include/next.hpp:11, + from /opt/conda/conda-bld/ngshmmalign_1717510895290/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/include/boost/accumulators/framework/depends_on.hpp:39, + from /opt/conda/conda-bld/ngshmmalign_1717510895290/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/include/boost/accumulators/framework/accumulator_set.hpp:30, + from /opt/conda/conda-bld/ngshmmalign_1717510895290/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/include/boost/accumulators/accumulators.hpp:12, + from src/index_impl.hpp:27, + from src/reference.hpp:286: + /opt/conda/conda-bld/ngshmmalign_1717510895290/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/include/boost/fusion/iterator/next.hpp:21:15: note: 'boost::fusion::extension' declared here + 21 | namespace extension + | ^~~~~~~~~ + In file included from src/hmmalign.hpp:35: + src/dna_array.hpp: In instantiation of 'const {anonymous}::dna_array::value_type& {anonymous}::dna_array::operator[](char) const [with T = double; long unsigned int N = 5; const_reference = const double&]': + src/dna_array.hpp:182:73: required from '{anonymous}::dna_array::value_type& {anonymous}::dna_array::operator[](char) [with T = double; long unsigned int N = 5; reference = double&]' + src/aligner_impl.hpp:618:36: required from here + src/dna_array.hpp:152:41: warning: 'throw' will always call 'terminate' [-Wterminate] + 152 | throw std::invalid_argument(std::string(1, base) std::string(" is an unknown base! Exiting...\n")); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + src/dna_array.hpp:170:41: warning: 'throw' will always call 'terminate' [-Wterminate] + 170 | throw std::invalid_argument(std::string(1, base) std::string(" is an unknown base! Exiting...\n")); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + src/dna_array.hpp: In instantiation of 'const {anonymous}::dna_array::value_type& {anonymous}::dna_array::operator[](char) const [with T = bool; long unsigned int N = 5; const_reference = const bool&]': + src/aligner_impl.hpp:1259:71: required from 'void {anonymous}::single_end_aligner::post_alignment_processing(bool, uint64_t, double, double, bool) [with T = int; uint64_t = long unsigned int]' + src/main.cpp:267:40: required from here + src/dna_array.hpp:152:41: warning: 'throw' will always call 'terminate' [-Wterminate] + 152 | throw std::invalid_argument(std::string(1, base) std::string(" is an unknown base! Exiting...\n")); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + src/dna_array.hpp:170:41: warning: 'throw' will always call 'terminate' [-Wterminate] + 170 | throw std::invalid_argument(std::string(1, base) std::string(" is an unknown base! Exiting...\n")); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + src/dna_array.hpp: In instantiation of 'const {anonymous}::dna_array::value_type& {anonymous}::dna_array::operator[](char) const [with T = int; long unsigned int N = 2; const_reference = const int&]': + src/hmmalign_impl.hpp:292:58: required from 'static T {anonymous}::hmmalign::viterbi(const {anonymous}::reference_genome&, const boost::string_ref&, uint32_t, uint32_t, std::vector<{anonymous}::minimal_alignment>&) [with T = int; boost::string_ref = boost::basic_string_ref >; uint32_t = unsigned int]' + src/aligner_impl.hpp:987:33: required from 'void {anonymous}::single_end_aligner::perform_alignment_impl(bool, bool) [with T = int]' + src/aligner_impl.hpp:790:2: required from 'void {anonymous}::single_end_aligner::estimate_parameters(const std::string&, const std::string&, const {anonymous}::background_rates&, uint64_t, bool, bool, bool) [with T = int; std::string = std::__cxx11::basic_string; uint64_t = long unsigned int]' + src/main.cpp:260:35: required from here + src/dna_array.hpp:152:41: warning: 'throw' will always call 'terminate' [-Wterminate] + 152 | throw std::invalid_argument(std::string(1, base) std::string(" is an unknown base! Exiting...\n")); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + src/dna_array.hpp:170:41: warning: 'throw' will always call 'terminate' [-Wterminate] + 170 | throw std::invalid_argument(std::string(1, base) std::string(" is an unknown base! Exiting...\n")); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + src/dna_array.hpp: In instantiation of 'const {anonymous}::dna_array::value_type& {anonymous}::dna_array::operator[](char) const [with T = int; long unsigned int N = 5; const_reference = const int&]': + src/hmmalign_impl.hpp:309:75: required from 'static T {anonymous}::hmmalign::viterbi(const {anonymous}::reference_genome&, const boost::string_ref&, uint32_t, uint32_t, std::vector<{anonymous}::minimal_alignment>&) [with T = int; boost::string_ref = boost::basic_string_ref >; uint32_t = unsigned int]' + src/aligner_impl.hpp:987:33: required from 'void {anonymous}::single_end_aligner::perform_alignment_impl(bool, bool) [with T = int]' + src/aligner_impl.hpp:790:2: required from 'void {anonymous}::single_end_aligner::estimate_parameters(const std::string&, const std::string&, const {anonymous}::background_rates&, uint64_t, bool, bool, bool) [with T = int; std::string = std::__cxx11::basic_string; uint64_t = long unsigned int]' + src/main.cpp:260:35: required from here + src/dna_array.hpp:152:41: warning: 'throw' will always call 'terminate' [-Wterminate] + 152 | throw std::invalid_argument(std::string(1, base) std::string(" is an unknown base! Exiting...\n")); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + src/dna_array.hpp:170:41: warning: 'throw' will always call 'terminate' [-Wterminate] + 170 | throw std::invalid_argument(std::string(1, base) std::string(" is an unknown base! Exiting...\n")); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + make: *** [Makefile:713: src/main.o] Error 1 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/ngshmmalign_1717510895290/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/ngshmmalign/0.1.1/build_failure.osx-64.yaml b/recipes/ngshmmalign/0.1.1/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..4f64241948f93 --- /dev/null +++ b/recipes/ngshmmalign/0.1.1/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 284b2ea1a10802e44701f9bc9f7e576d4fafa0c854f4322303a8684bab8dcbde # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ngshmmalign-0.1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ngshmmalign-0.1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + checking whether configure should try to set CXXFLAGS/CPPFLAGS/LDFLAGS... no + checking whether to enable debugging... no + checking build system type... x86_64-apple-darwin13.4.0 + checking host system type... x86_64-apple-darwin13.4.0 + checking whether the C compiler works... yes + checking for C compiler default output file name... a.out + checking for suffix of executables... + checking whether we are cross compiling... no + checking for suffix of object files... o + checking whether we are using the GNU C compiler... yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes + checking for C compiler vendor... clang + checking for a sed that does not truncate output... /usr/bin/sed + checking for C compiler version... 16.0.6 + checking for a sed that does not truncate output... (cached) /usr/bin/sed + checking whether we are using the GNU C compiler... (cached) yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... (cached) yes + checking how to run the C preprocessor... x86_64-apple-darwin13.4.0-clang -E + checking for grep that handles long lines and -e... /usr/bin/grep + checking for egrep... /usr/bin/grep -E + checking for ANSI C header files... yes + checking for sys/types.h... yes + checking for sys/stat.h... yes + checking for stdlib.h... yes + checking for string.h... yes + checking for memory.h... yes + checking for strings.h... yes + checking for inttypes.h... yes + checking for stdint.h... yes + checking for unistd.h... yes + checking cstdint usability... yes + checking cstdint presence... yes + checking for cstdint... yes + checking for x86_64-apple-darwin13.4.0-clang option to support OpenMP... -fopenmp + checking whether x86_64-apple-darwin13.4.0-clang supports C11 features by default... yes + checking for boostlib >= 1.59... yes + checking for x86_64-apple-darwin13.4.0-gcc... x86_64-apple-darwin13.4.0-clang + checking whether we are using the GNU C compiler... yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes + checking for x86_64-apple-darwin13.4.0-clang option to accept ISO C89... none needed + checking whether x86_64-apple-darwin13.4.0-clang understands -c and -o together... yes + checking whether the Boost::System library is available... yes + checking for exit in -lboost_system... yes + checking whether the Boost::Program_Options library is available... yes + checking for exit in -lboost_program_options... yes + checking whether the Boost::Filesystem library is available... yes + checking for exit in -lboost_filesystem... yes + checking whether the Boost::IOStreams library is available... yes + checking for exit in -lboost_iostreams... yes + checking for a BSD-compatible install... /usr/bin/install -c + checking whether build environment is sane... yes + checking for a thread-safe mkdir -p... ./install-sh -c -d + checking for gawk... no + checking for mawk... no + checking for nawk... no + checking for awk... awk + checking whether make sets $(MAKE)... yes + checking for style of include used by make... GNU + checking whether make supports nested variables... yes + checking dependency style of x86_64-apple-darwin13.4.0-clang... gcc3 + checking dependency style of x86_64-apple-darwin13.4.0-clang... gcc3 + checking that generated files are newer than configure... done + configure: creating ./config.status + config.status: creating Makefile + config.status: executing depfiles commands + + ngshmmalign 0.1.1 + Using clang, 16.0.6 + + CXX: x86_64-apple-darwin13.4.0-clang + CXXFLAGS: -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ngshmmalign-0.1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -stdlib=libc -fopenmp + CPPFLAGS: -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + LDFLAGS: -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + + depbase=echo src/main.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';\ + x86_64-apple-darwin13.4.0-clang -DPACKAGE_NAME=\"ngshmmalign\" -DPACKAGE_TARNAME=\"ngshmmalign\" -DPACKAGE_VERSION=\"0.1.1\" -DPACKAGE_STRING=\"ngshmmalign\ 0.1.1\" -DPACKAGE_BUGREPORT=\"david.seifert@bsse.ethz.ch\" -DPACKAGE_URL=\"https://github.com/cbg-ethz/ngshmmalign\" -DNDEBUG=/\*\*/ -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_CSTDINT=1 -DHAVE_CXX11=1 -DHAVE_BOOST=/\*\*/ -DHAVE_BOOST_SYSTEM=/\*\*/ -DHAVE_BOOST_PROGRAM_OPTIONS=/\*\*/ -DHAVE_BOOST_FILESYSTEM=/\*\*/ -DHAVE_BOOST_IOSTREAMS=/\*\*/ -DPACKAGE=\"ngshmmalign\" -DVERSION=\"0.1.1\" -I. -I./src -I$PREFIX/include -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ngshmmalign-0.1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -stdlib=libc -fopenmp -MT src/main.o -MD -MP -MF $depbase.Tpo -c -o src/main.o src/main.cpp &&\ + mv -f $depbase.Tpo $depbase.Po +# Last 100 lines of the build log. diff --git a/recipes/ngshmmalign/0.1.1/meta.yaml b/recipes/ngshmmalign/0.1.1/meta.yaml index 6dbe466521c68..4407df518fa97 100644 --- a/recipes/ngshmmalign/0.1.1/meta.yaml +++ b/recipes/ngshmmalign/0.1.1/meta.yaml @@ -3,7 +3,7 @@ package: version: "0.1.1" build: - number: 6 + number: 7 source: url: https://github.com/cbg-ethz/ngshmmalign/releases/download/0.1.1/ngshmmalign-0.1.1.tar.bz2 diff --git a/recipes/ngslca/meta.yaml b/recipes/ngslca/meta.yaml index 5e0f9d3fda2be..289201d453874 100644 --- a/recipes/ngslca/meta.yaml +++ b/recipes/ngslca/meta.yaml @@ -10,7 +10,7 @@ source: sha256: {{ sha256 }} build: - number: 2 + number: 3 requirements: build: diff --git a/recipes/ngsngs/meta.yaml b/recipes/ngsngs/meta.yaml index 665ebd620608a..2a6dccd5bee55 100644 --- a/recipes/ngsngs/meta.yaml +++ b/recipes/ngsngs/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 skip: false run_exports: - {{ pin_subpackage(name, max_pin="x") }} diff --git a/recipes/nmrglue/meta.yaml b/recipes/nmrglue/meta.yaml index 95067ffa1f6a0..0dda4c54cb9f6 100644 --- a/recipes/nmrglue/meta.yaml +++ b/recipes/nmrglue/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 skip: True # [py2k] script: {{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv diff --git a/recipes/nonpareil/meta.yaml b/recipes/nonpareil/meta.yaml index ba8ba7972b42e..e1fd940bc8553 100644 --- a/recipes/nonpareil/meta.yaml +++ b/recipes/nonpareil/meta.yaml @@ -10,7 +10,7 @@ source: sha256: {{ sha256 }} build: - number: 4 + number: 5 script: | make cpp="${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}" make prefix="${PREFIX}" install diff --git a/recipes/nordic/build_failure.linux-64.yaml b/recipes/nordic/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..c767f937c76f5 --- /dev/null +++ b/recipes/nordic/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 1f127b6381714b354c6cecbd7f1bb17f9b02552b90d6a442813f7a7d2a866fd0 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + requests: 2.32.3-pyhd8ed1ab_0 conda-forge + scikit-learn: 1.5.0-py312h1fcc3ea_1 conda-forge + scipy: 1.13.1-py312hc2bc53b_0 conda-forge + seaborn: 0.13.2-hd8ed1ab_2 conda-forge + seaborn-base: 0.13.2-pyhd8ed1ab_2 conda-forge + setuptools: 70.0.0-pyhd8ed1ab_0 conda-forge + six: 1.16.0-pyh6c4a22f_0 conda-forge + statsmodels: 0.14.2-py312h085067d_0 conda-forge + threadpoolctl: 3.5.0-pyhc1e730c_0 conda-forge + tk: 8.6.13-noxft_h4845f30_101 conda-forge + tqdm: 4.66.4-pyhd8ed1ab_0 conda-forge + typeguard: 4.3.0-pyhd8ed1ab_0 conda-forge + typing-extensions: 4.12.1-hd8ed1ab_0 conda-forge + typing_extensions: 4.12.1-pyha770c72_0 conda-forge + tzdata: 2024a-h0c530f3_0 conda-forge + urllib3: 2.2.1-pyhd8ed1ab_0 conda-forge + wheel: 0.43.0-pyhd8ed1ab_1 conda-forge + wrapt: 1.16.0-py312h98912ed_0 conda-forge + xorg-kbproto: 1.0.7-h7f98852_1002 conda-forge + xorg-libice: 1.1.1-hd590300_0 conda-forge + xorg-libsm: 1.2.4-h7391055_0 conda-forge + xorg-libx11: 1.8.9-h8ee46fc_0 conda-forge + xorg-libxau: 1.0.11-hd590300_0 conda-forge + xorg-libxdmcp: 1.1.3-h7f98852_0 conda-forge + xorg-libxext: 1.3.4-h0b41bf4_2 conda-forge + xorg-libxrender: 0.9.11-hd590300_0 conda-forge + xorg-renderproto: 0.11.1-h7f98852_1002 conda-forge + xorg-xextproto: 7.3.0-h0b41bf4_1003 conda-forge + xorg-xproto: 7.0.31-h7f98852_1007 conda-forge + xz: 5.2.6-h166bdaf_0 conda-forge + zipp: 3.17.0-pyhd8ed1ab_0 conda-forge + zlib: 1.3.1-h4ab18f5_1 conda-forge + zstd: 1.5.6-ha6fb4c9_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... + + done + Reloading output folder: ...working... done + Solving environment (_build_env): ...working... done + Reloading output folder: ...working... done + Solving environment (_test_env): ...working... done + + ## Package Plan ## + + environment location: /opt/conda/conda-bld/nordic_1717706443742/_build_env + + + The following NEW packages will be INSTALLED: + + _libgcc_mutex: 0.1-conda_forge conda-forge + _openmp_mutex: 4.5-2_gnu conda-forge + binutils_impl_linux-64: 2.40-ha1999f0_2 conda-forge + binutils_linux-64: 2.40-hdade7a5_3 conda-forge + bison: 3.8.2-h59595ed_0 conda-forge + flex: 2.6.4-h58526e2_1004 conda-forge + gcc_impl_linux-64: 12.3.0-h58ffeeb_7 conda-forge + gcc_linux-64: 12.3.0-h6477408_3 conda-forge + gxx_impl_linux-64: 12.3.0-h2a574ab_7 conda-forge + gxx_linux-64: 12.3.0-h4a1b8e8_3 conda-forge + kernel-headers_linux-64: 2.6.32-he073ed8_17 conda-forge + ld_impl_linux-64: 2.40-hf3520f5_2 conda-forge + libgcc-devel_linux-64: 12.3.0-h0223996_107 conda-forge + libgcc-ng: 13.2.0-h77fa898_7 conda-forge + libgomp: 13.2.0-h77fa898_7 conda-forge + libsanitizer: 12.3.0-hb8811af_7 conda-forge + libstdcxx-devel_linux-64: 12.3.0-h0223996_107 conda-forge + libstdcxx-ng: 13.2.0-hc0a3c3a_7 conda-forge + m4: 1.4.18-h516909a_1001 conda-forge + make: 4.3-hd18ef5c_1 conda-forge + sysroot_linux-64: 2.12-he073ed8_17 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Source cache directory is: /opt/conda/conda-bld/src_cache + Downloading source to cache: master_5952813f3c.tar.gz + Downloading https://github.com/sysbio-curie/MaBoSS-env-2.0/archive/refs/heads/master.tar.gz + Success + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2419, in build + try_download(m, no_download_source=False, raise_error=True) + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 762, in try_download + source.provide(metadata) + File "/opt/conda/lib/python3.10/site-packages/conda_build/source.py", line 1035, in provide + unpack( + File "/opt/conda/lib/python3.10/site-packages/conda_build/source.py", line 169, in unpack + src_path, unhashed_fn = download_to_cache( + File "/opt/conda/lib/python3.10/site-packages/conda_build/source.py", line 125, in download_to_cache + raise RuntimeError( + RuntimeError: SHA256 mismatch: '143b7a50119d6d61222e48d58dc74c71ffbd4492c3fdce47106feb9c8b352b3c' != '5952813f3c38e10bbc2f0d4bbb91936bc738c47bcf9941da298cea3bfb753d19' +# Last 100 lines of the build log. diff --git a/recipes/nordic/build_failure.osx-64.yaml b/recipes/nordic/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..46584469b3770 --- /dev/null +++ b/recipes/nordic/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 1f127b6381714b354c6cecbd7f1bb17f9b02552b90d6a442813f7a7d2a866fd0 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + readline: 8.2-h9e318b2_1 conda-forge + requests: 2.32.3-pyhd8ed1ab_0 conda-forge + scikit-learn: 1.5.0-py311h3c3ac6d_1 conda-forge + scipy: 1.13.1-py311h40a1ab3_0 conda-forge + seaborn: 0.13.2-hd8ed1ab_2 conda-forge + seaborn-base: 0.13.2-pyhd8ed1ab_2 conda-forge + setuptools: 70.0.0-pyhd8ed1ab_0 conda-forge + six: 1.16.0-pyh6c4a22f_0 conda-forge + statsmodels: 0.14.2-py311hce3442d_0 conda-forge + threadpoolctl: 3.5.0-pyhc1e730c_0 conda-forge + tk: 8.6.13-h1abcd95_1 conda-forge + tqdm: 4.66.4-pyhd8ed1ab_0 conda-forge + typeguard: 4.3.0-pyhd8ed1ab_0 conda-forge + typing-extensions: 4.12.1-hd8ed1ab_0 conda-forge + typing_extensions: 4.12.1-pyha770c72_0 conda-forge + tzdata: 2024a-h0c530f3_0 conda-forge + urllib3: 2.2.1-pyhd8ed1ab_0 conda-forge + wheel: 0.43.0-pyhd8ed1ab_1 conda-forge + wrapt: 1.16.0-py311he705e18_0 conda-forge + xorg-libxau: 1.0.11-h0dc2134_0 conda-forge + xorg-libxdmcp: 1.1.3-h35c211d_0 conda-forge + xz: 5.2.6-h775f41a_0 conda-forge + zipp: 3.17.0-pyhd8ed1ab_0 conda-forge + zlib: 1.3.1-h87427d6_1 conda-forge + zstd: 1.5.6-h915ae27_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... + + done + Reloading output folder (local): ...working... done + Solving environment (_build_env): ...working... done + Reloading output folder (local): ...working... done + Solving environment (_test_env): ...working... done + + ## Package Plan ## + + environment location: /opt/mambaforge/envs/bioconda/conda-bld/nordic_1717639893010/_build_env + + + The following NEW packages will be INSTALLED: + + bison: 3.8.2-hd7636e7_0 conda-forge + ca-certificates: 2024.6.2-h8857fd0_0 conda-forge + cctools_osx-64: 986-ha1c5b94_0 conda-forge + clang: 16.0.6-hd4457cd_7 conda-forge + clang-16: 16.0.6-default_h4c8afb6_7 conda-forge + clang_impl_osx-64: 16.0.6-h8787910_15 conda-forge + clang_osx-64: 16.0.6-hb91bd55_15 conda-forge + clangxx: 16.0.6-default_ha3b9224_7 conda-forge + clangxx_impl_osx-64: 16.0.6-h6d92fbe_15 conda-forge + clangxx_osx-64: 16.0.6-hb91bd55_15 conda-forge + compiler-rt: 16.0.6-ha38d28d_2 conda-forge + compiler-rt_osx-64: 16.0.6-ha38d28d_2 conda-forge + flex: 2.6.4-hcc69e7b_1004 conda-forge + icu: 73.2-hf5e326d_0 conda-forge + ld64_osx-64: 711-ha20a434_0 conda-forge + libclang-cpp16: 16.0.6-default_h4c8afb6_7 conda-forge + libcxx: 17.0.6-h88467a6_0 conda-forge + libiconv: 1.17-hd75f5a5_2 conda-forge + libllvm16: 16.0.6-hbedff68_3 conda-forge + libxml2: 2.12.7-h3e169fe_1 conda-forge + libzlib: 1.3.1-h87427d6_1 conda-forge + llvm-tools: 16.0.6-hbedff68_3 conda-forge + m4: 1.4.18-haf1e3a3_1001 conda-forge + make: 4.3-h22f3db7_1 conda-forge + openssl: 3.3.1-h87427d6_0 conda-forge + sigtool: 0.1.3-h88f4db0_0 conda-forge + tapi: 1100.0.11-h9ce4665_0 conda-forge + xz: 5.2.6-h775f41a_0 conda-forge + zstd: 1.5.6-h915ae27_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache + Downloading source to cache: master_5952813f3c.tar.gz + Downloading https://github.com/sysbio-curie/MaBoSS-env-2.0/archive/refs/heads/master.tar.gz + Success + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2419, in build + try_download(m, no_download_source=False, raise_error=True) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 762, in try_download + source.provide(metadata) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/source.py", line 1035, in provide + unpack( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/source.py", line 169, in unpack + src_path, unhashed_fn = download_to_cache( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/source.py", line 125, in download_to_cache + raise RuntimeError( + RuntimeError: SHA256 mismatch: '143b7a50119d6d61222e48d58dc74c71ffbd4492c3fdce47106feb9c8b352b3c' != '5952813f3c38e10bbc2f0d4bbb91936bc738c47bcf9941da298cea3bfb753d19' +# Last 100 lines of the build log. diff --git a/recipes/nordic/meta.yaml b/recipes/nordic/meta.yaml index 7fe723c149cf6..92b2c630cb9fb 100644 --- a/recipes/nordic/meta.yaml +++ b/recipes/nordic/meta.yaml @@ -21,7 +21,7 @@ source: folder: "{{ ucname }}-{{ version }}" build: - number: 0 + number: 1 skip: True # [py < 38] run_exports: - {{ pin_subpackage(name, max_pin="x") }} diff --git a/recipes/npinv/meta.yaml b/recipes/npinv/meta.yaml index 8847eba4693b3..86e45fb991a04 100644 --- a/recipes/npinv/meta.yaml +++ b/recipes/npinv/meta.yaml @@ -11,7 +11,7 @@ source: build: noarch: generic - number: 5 + number: 6 requirements: host: diff --git a/recipes/ntedit/meta.yaml b/recipes/ntedit/meta.yaml index b88758d97416c..9a067676b03f6 100644 --- a/recipes/ntedit/meta.yaml +++ b/recipes/ntedit/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin="x") }} diff --git a/recipes/ntjoin/meta.yaml b/recipes/ntjoin/meta.yaml index d49a1ecaaa371..a369b9bf428cc 100644 --- a/recipes/ntjoin/meta.yaml +++ b/recipes/ntjoin/meta.yaml @@ -9,7 +9,7 @@ source: sha256: ec24330e11ea63948d1b124273dae79e80088d672f7e536e7d97787f0c2bb644 build: - number: 0 + number: 1 noarch: generic run_exports: - {{ pin_subpackage("ntjoin", max_pin="x") }} diff --git a/recipes/ntlink/build_failure.linux-64.yaml b/recipes/ntlink/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..defd330f3c1c2 --- /dev/null +++ b/recipes/ntlink/build_failure.linux-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: b6b2ca37fdc32d50f4e2ed31248eda567e31fed8b43aecb273b79566000faa7f # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: dependency issue +log: |2- + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("_python_rc"), MatchSpec("python==3.12.0rc3=rc3_hab00c5b_1_cpython")} + Encountered problems while solving: + - nothing provides _python_rc needed by python-3.12.0rc3-rc3_hab00c5b_1_cpython + + Could not solve for environment specs + The following packages are incompatible + [32mbtllib <1.7.0 [0m is installable with the potential options + [32mbtllib [1.4.10|1.4.3|...|1.6.2][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32mbtllib [1.4.10|1.4.3|...|1.6.2][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mbtllib [1.4.10|1.4.3|...|1.6.2][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [31mpython 3.12.* *_cpython[0m is not installable because there are no viable options + [31mpython [3.12.0|3.12.1|3.12.2|3.12.3][0m would require + [31mpython_abi 3.12.* *_cp312[0m, which conflicts with any installable versions previously reported; + [31mpython 3.12.0rc3[0m would require + [31m_python_rc[0m, which does not exist (perhaps a missing channel). + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2308, in build + output_metas = expand_outputs([(m, need_source_download, need_reparse_in_env)]) + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 916, in expand_outputs + for output_dict, m in deepcopy(_m).get_output_metadata_set( + File "/opt/conda/lib/python3.10/site-packages/conda_build/metadata.py", line 2737, in get_output_metadata_set + conda_packages = finalize_outputs_pass( + File "/opt/conda/lib/python3.10/site-packages/conda_build/metadata.py", line 1095, in finalize_outputs_pass + fm = finalize_metadata( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 650, in finalize_metadata + build_unsat, host_unsat = add_upstream_pins( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 491, in add_upstream_pins + host_deps, host_unsat, extra_run_specs_from_host = _read_upstream_pin_files( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 444, in _read_upstream_pin_files + deps, precs, unsat = get_env_dependencies( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 156, in get_env_dependencies + precs = environ.get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("_python_rc"), MatchSpec("python==3.12.0rc3=rc3_hab00c5b_1_cpython")} + Encountered problems while solving: + - nothing provides _python_rc needed by python-3.12.0rc3-rc3_hab00c5b_1_cpython + + Could not solve for environment specs + The following packages are incompatible + [32mbtllib <1.7.0 [0m is installable with the potential options + [32mbtllib [1.4.10|1.4.3|...|1.6.2][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32mbtllib [1.4.10|1.4.3|...|1.6.2][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mbtllib [1.4.10|1.4.3|...|1.6.2][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [31mpython 3.12.* *_cpython[0m is not installable because there are no viable options + [31mpython [3.12.0|3.12.1|3.12.2|3.12.3][0m would require + [31mpython_abi 3.12.* *_cp312[0m, which conflicts with any installable versions previously reported; + [31mpython 3.12.0rc3[0m would require + [31m_python_rc[0m, which does not exist (perhaps a missing channel). +# Last 100 lines of the build log. diff --git a/recipes/ntlink/meta.yaml b/recipes/ntlink/meta.yaml index 576cbcab302c5..d0fda74828d0e 100644 --- a/recipes/ntlink/meta.yaml +++ b/recipes/ntlink/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 248ccae217dd7ed2e4664c6b48235f8db2ba24d8896b8315f6e657f19d5f7085 build: - number: 0 + number: 1 noarch: generic run_exports: - {{ pin_subpackage('ntlink', max_pin="x") }} diff --git a/recipes/ntsynt/build_failure.linux-64.yaml b/recipes/ntsynt/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..30360b3f6838a --- /dev/null +++ b/recipes/ntsynt/build_failure.linux-64.yaml @@ -0,0 +1,106 @@ +recipe_sha: 7eb5af9293834f34d7bf103754fe7603342d296e92fac534cf8f31fbed63c4cc # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: dependency issue +reason: constrained to an old version of btllib +log: |2- + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("python_abi=3.10[build=*_cp310]"), MatchSpec("btllib==1.4.3=py310h9f5acd7_0")} + Encountered problems while solving: + - package btllib-1.4.3-py310h9f5acd7_0 requires python_abi 3.10.* *_cp310, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + [32mbtllib <1.7.0 [0m is installable with the potential options + [32mbtllib [1.4.10|1.4.3|...|1.6.2][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32mbtllib [1.4.10|1.4.3|...|1.6.2][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mbtllib [1.4.10|1.4.3|...|1.6.2][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [31mpython 3.11.* *_cpython[0m is not installable because it requires + [31mpython_abi 3.11.* *_cp311[0m, which conflicts with any installable versions previously reported. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2308, in build + output_metas = expand_outputs([(m, need_source_download, need_reparse_in_env)]) + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 916, in expand_outputs + for output_dict, m in deepcopy(_m).get_output_metadata_set( + File "/opt/conda/lib/python3.10/site-packages/conda_build/metadata.py", line 2737, in get_output_metadata_set + conda_packages = finalize_outputs_pass( + File "/opt/conda/lib/python3.10/site-packages/conda_build/metadata.py", line 1095, in finalize_outputs_pass + fm = finalize_metadata( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 650, in finalize_metadata + build_unsat, host_unsat = add_upstream_pins( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 491, in add_upstream_pins + host_deps, host_unsat, extra_run_specs_from_host = _read_upstream_pin_files( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 444, in _read_upstream_pin_files + deps, precs, unsat = get_env_dependencies( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 156, in get_env_dependencies + precs = environ.get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("python_abi=3.10[build=*_cp310]"), MatchSpec("btllib==1.4.3=py310h9f5acd7_0")} + Encountered problems while solving: + - package btllib-1.4.3-py310h9f5acd7_0 requires python_abi 3.10.* *_cp310, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + [32mbtllib <1.7.0 [0m is installable with the potential options + [32mbtllib [1.4.10|1.4.3|...|1.6.2][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32mbtllib [1.4.10|1.4.3|...|1.6.2][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mbtllib [1.4.10|1.4.3|...|1.6.2][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [31mpython 3.11.* *_cpython[0m is not installable because it requires + [31mpython_abi 3.11.* *_cp311[0m, which conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/ntsynt/build_failure.osx-64.yaml b/recipes/ntsynt/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..1f9c14d8c50b7 --- /dev/null +++ b/recipes/ntsynt/build_failure.osx-64.yaml @@ -0,0 +1,106 @@ +recipe_sha: 7eb5af9293834f34d7bf103754fe7603342d296e92fac534cf8f31fbed63c4cc # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: dependency issue +reason: constrained to an old version of btllib +log: |2- + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("python==3.12.0rc3=rc3_h30d4d87_1_cpython"), MatchSpec("_python_rc")} + Encountered problems while solving: + - nothing provides _python_rc needed by python-3.12.0rc3-rc3_h30d4d87_1_cpython + + Could not solve for environment specs + The following packages are incompatible + btllib <1.7.0 is installable with the potential options + btllib [1.4.10|1.4.3|...|1.6.2] would require + python_abi 3.10.* *_cp310, which can be installed; + btllib [1.4.10|1.4.3|...|1.6.2] would require + python_abi 3.8.* *_cp38, which can be installed; + btllib [1.4.10|1.4.3|...|1.6.2] would require + python_abi 3.9.* *_cp39, which can be installed; + python 3.12.* *_cpython is not installable because there are no viable options + python [3.12.0|3.12.1|3.12.2|3.12.3] would require + python_abi 3.12.* *_cp312, which conflicts with any installable versions previously reported; + python 3.12.0rc3 would require + _python_rc, which does not exist (perhaps a missing channel). + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2308, in build + output_metas = expand_outputs([(m, need_source_download, need_reparse_in_env)]) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 916, in expand_outputs + for output_dict, m in deepcopy(_m).get_output_metadata_set( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 2737, in get_output_metadata_set + conda_packages = finalize_outputs_pass( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 1095, in finalize_outputs_pass + fm = finalize_metadata( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 650, in finalize_metadata + build_unsat, host_unsat = add_upstream_pins( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 491, in add_upstream_pins + host_deps, host_unsat, extra_run_specs_from_host = _read_upstream_pin_files( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 444, in _read_upstream_pin_files + deps, precs, unsat = get_env_dependencies( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 156, in get_env_dependencies + precs = environ.get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("python==3.12.0rc3=rc3_h30d4d87_1_cpython"), MatchSpec("_python_rc")} + Encountered problems while solving: + - nothing provides _python_rc needed by python-3.12.0rc3-rc3_h30d4d87_1_cpython + + Could not solve for environment specs + The following packages are incompatible + btllib <1.7.0 is installable with the potential options + btllib [1.4.10|1.4.3|...|1.6.2] would require + python_abi 3.10.* *_cp310, which can be installed; + btllib [1.4.10|1.4.3|...|1.6.2] would require + python_abi 3.8.* *_cp38, which can be installed; + btllib [1.4.10|1.4.3|...|1.6.2] would require + python_abi 3.9.* *_cp39, which can be installed; + python 3.12.* *_cpython is not installable because there are no viable options + python [3.12.0|3.12.1|3.12.2|3.12.3] would require + python_abi 3.12.* *_cp312, which conflicts with any installable versions previously reported; + python 3.12.0rc3 would require + _python_rc, which does not exist (perhaps a missing channel). +# Last 100 lines of the build log. diff --git a/recipes/ntsynt/meta.yaml b/recipes/ntsynt/meta.yaml index a7a17e135d81d..452ed34955f11 100644 --- a/recipes/ntsynt/meta.yaml +++ b/recipes/ntsynt/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 71fa06c73481313518a504586b86a2a32cd49006ce6728b40eef0d455b9bb409 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("ntsynt", max_pin="x") }} diff --git a/recipes/nwalign3/build_failure.linux-64.yaml b/recipes/nwalign3/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..61c30299dbffa --- /dev/null +++ b/recipes/nwalign3/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: dbf9df6c34d006d9f1dd02bf9957d314595c9c369729e51601d1310bcde9c051 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + | ^~~~~~~~~~ + nwalign3/cnwalign.c:8651:13: error: invalid use of incomplete typedef 'PyFrameObject' {aka 'struct _frame'} + 8651 | py_frame->f_lineno = __pyx_lineno; + | ^~ + nwalign3/cnwalign.c: At top level: + nwalign3/cnwalign.c:5716:13: warning: '__pyx_pf_5numpy_7ndarray___releasebuffer__' defined but not used [-Wunused-function] + 5716 | static void __pyx_pf_5numpy_7ndarray___releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info) { + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + nwalign3/cnwalign.c:4911:12: warning: '__pyx_pf_5numpy_7ndarray___getbuffer__' defined but not used [-Wunused-function] + 4911 | static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + In file included from /opt/conda/conda-bld/nwalign3_1717531771200/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.11/site-packages/numpy/core/include/numpy/ndarrayobject.h:21: + /opt/conda/conda-bld/nwalign3_1717531771200/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.11/site-packages/numpy/core/include/numpy/__multiarray_api.h:1477:1: warning: '_import_array' defined but not used [-Wunused-function] + 1477 | _import_array(void) + | ^~~~~~~~~~~~~ + error: command '/opt/conda/conda-bld/nwalign3_1717531771200/_build_env/bin/x86_64-conda-linux-gnu-cc' failed with exit code 1 + [1;31merror[0m: [1msubprocess-exited-with-error[0m + + [31m[0m [32mpython setup.py bdist_wheel[0m did not run successfully. + [31m[0m exit code: [1;36m1[0m + [31m>[0m See above for output. + + [1;35mnote[0m: This error originates from a subprocess, and is likely not a problem with pip. + [1;35mfull command[0m: [34m/opt/conda/conda-bld/nwalign3_1717531771200/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/bin/python -u -c '[0m + [34m exec(compile('"'"''"'"''"'"'[0m + [34m # This is -- a caller that pip uses to run setup.py[0m + [34m #[0m + [34m # - It imports setuptools before invoking setup.py, to enable projects that directly[0m + [34m # import from distutils.core to work with newer packaging standards.[0m + [34m # - It provides a clear error message when setuptools is not installed.[0m + [34m # - It sets sys.argv[0] to the underlying setup.py, when invoking setup.py so[0m + [34m # setuptools doesn'"'"'t think the script is -c. This avoids the following warning:[0m + [34m # manifest_maker: standard file '"'"'-c'"'"' not found".[0m + [34m # - It generates a shim setup.py, for handling setup.cfg-only projects.[0m + [34m import os, sys, tokenize[0m + [34m [0m + [34m try:[0m + [34m import setuptools[0m + [34m except ImportError as error:[0m + [34m print([0m + [34m "ERROR: Can not execute setup.py since setuptools is not available in "[0m + [34m "the build environment.",[0m + [34m file=sys.stderr,[0m + [34m )[0m + [34m sys.exit(1)[0m + [34m [0m + [34m __file__ = %r[0m + [34m sys.argv[0] = __file__[0m + [34m [0m + [34m if os.path.exists(__file__):[0m + [34m filename = __file__[0m + [34m with tokenize.open(__file__) as f:[0m + [34m setup_py_code = f.read()[0m + [34m else:[0m + [34m filename = ""[0m + [34m setup_py_code = "from setuptools import setup; setup()"[0m + [34m [0m + [34m exec(compile(setup_py_code, filename, "exec"))[0m + [34m '"'"''"'"''"'"' % ('"'"'/opt/conda/conda-bld/nwalign3_1717531771200/work/setup.py'"'"',), "", "exec"))' bdist_wheel -d /tmp/pip-wheel-_0o4tfsq[0m + [1;35mcwd[0m: /opt/conda/conda-bld/nwalign3_1717531771200/work/ + Building wheel for nwalign3 (setup.py): finished with status 'error' + [31m ERROR: Failed building wheel for nwalign3[0m[31m + [0m Running setup.py clean for nwalign3 + Running command python setup.py clean + running clean + removing 'build/temp.linux-x86_64-cpython-311' (and everything under it) + removing 'build/lib.linux-x86_64-cpython-311' (and everything under it) + 'build/bdist.linux-x86_64' does not exist -- can't clean it + 'build/scripts-3.11' does not exist -- can't clean it + removing 'build' + Failed to build nwalign3 + [31mERROR: Could not build wheels for nwalign3, which is required to install pyproject.toml-based projects[0m[31m + [0mException information: + Traceback (most recent call last): + File "$PREFIX/lib/python3.11/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper + status = run_func(*args) + ^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.11/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper + return func(self, options, args) + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.11/site-packages/pip/_internal/commands/install.py", line 429, in run + raise InstallationError( + pip._internal.exceptions.InstallationError: Could not build wheels for nwalign3, which is required to install pyproject.toml-based projects + Removed build tracker: '/tmp/pip-build-tracker-aq9xmljq' + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/nwalign3_1717531771200/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/nwalign3/build_failure.osx-64.yaml b/recipes/nwalign3/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..7bac99b95b646 --- /dev/null +++ b/recipes/nwalign3/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: dbf9df6c34d006d9f1dd02bf9957d314595c9c369729e51601d1310bcde9c051 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/nwalign3_1717520451013/work + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/nwalign3_1717520451013/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/nwalign3_1717520451013/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/nwalign3_1717520451013/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/nwalign3-0.1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/nwalign3_1717520451013/work/conda_build.sh']' returned non-zero exit status 1. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/nwalign3-0.1.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + Using pip 24.0 from $PREFIX/lib/python3.12/site-packages/pip (python 3.12) + Non-user install because user site-packages disabled + Ignoring indexes: https://pypi.org/simple + Created temporary directory: /private/tmp/pip-build-tracker-0tezvuvu + Initialized build tracking at /private/tmp/pip-build-tracker-0tezvuvu + Created build tracker: /private/tmp/pip-build-tracker-0tezvuvu + Entered build tracker: /private/tmp/pip-build-tracker-0tezvuvu + Created temporary directory: /private/tmp/pip-install-6vpcfiwl + Created temporary directory: /private/tmp/pip-ephem-wheel-cache-w5jx5jvm + Processing $SRC_DIR + Added file://$SRC_DIR to build tracker '/private/tmp/pip-build-tracker-0tezvuvu' + Running setup.py (path:$SRC_DIR/setup.py) egg_info for package from file://$SRC_DIR + Created temporary directory: /private/tmp/pip-pip-egg-info-b0asuy5a + Preparing metadata (setup.py): started + Preparing metadata (setup.py): finished with status 'done' + Source in $SRC_DIR has version 0.1.2, which satisfies requirement nwalign3==0.1.2 from file://$SRC_DIR + Removed nwalign3==0.1.2 from file://$SRC_DIR from build tracker '/private/tmp/pip-build-tracker-0tezvuvu' + Created temporary directory: /private/tmp/pip-unpack-hj1h28km + Building wheels for collected packages: nwalign3 + Created temporary directory: /private/tmp/pip-wheel-tivhluca + Building wheel for nwalign3 (setup.py): started + Destination directory: /private/tmp/pip-wheel-tivhluca + Building wheel for nwalign3 (setup.py): finished with status 'error' + Running setup.py clean for nwalign3 + Failed to build nwalign3 + Exception information: + Traceback (most recent call last): + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper + status = run_func(*args) + ^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper + return func(self, options, args) + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/commands/install.py", line 429, in run + raise InstallationError( + pip._internal.exceptions.InstallationError: Could not build wheels for nwalign3, which is required to install pyproject.toml-based projects + Removed build tracker: '/private/tmp/pip-build-tracker-0tezvuvu' +# Last 100 lines of the build log. diff --git a/recipes/nwalign3/meta.yaml b/recipes/nwalign3/meta.yaml index df4c711b31a28..753b97b146095 100644 --- a/recipes/nwalign3/meta.yaml +++ b/recipes/nwalign3/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 22e2ffc9c7c181cfbe21e19c1f1348d17cca072ea2ffabe8676ebcab9bb933be build: - number: 3 + number: 4 script: "{{ PYTHON }} -m pip install . --no-deps -vv" skip: True # [py27] diff --git a/recipes/ococo/meta.yaml b/recipes/ococo/meta.yaml index d7c8a5cbc999c..833d6bc60930d 100644 --- a/recipes/ococo/meta.yaml +++ b/recipes/ococo/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 8 + number: 9 source: - url: https://github.com/karel-brinda/ococo/archive/{{ version }}.tar.gz diff --git a/recipes/odgi/meta.yaml b/recipes/odgi/meta.yaml index 155ecb1d55d78..2302747d1b450 100644 --- a/recipes/odgi/meta.yaml +++ b/recipes/odgi/meta.yaml @@ -11,7 +11,7 @@ source: build: skip: True # [osx or py27] - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} diff --git a/recipes/oncocnv/meta.yaml b/recipes/oncocnv/meta.yaml index 78b96775b10f3..24e9277704806 100644 --- a/recipes/oncocnv/meta.yaml +++ b/recipes/oncocnv/meta.yaml @@ -11,7 +11,7 @@ source: build: noarch: generic - number: 0 + number: 1 rpaths: - lib/R/lib/ - lib/ diff --git a/recipes/ont_vbz_hdf_plugin/meta.yaml b/recipes/ont_vbz_hdf_plugin/meta.yaml index cf503a8ce95b4..6bd574d7be07a 100644 --- a/recipes/ont_vbz_hdf_plugin/meta.yaml +++ b/recipes/ont_vbz_hdf_plugin/meta.yaml @@ -9,7 +9,7 @@ source: git_rev: v{{ version }} build: - number: 5 + number: 6 extra: skip-lints: diff --git a/recipes/opencontactcli/build_failure.linux-64.yaml b/recipes/opencontactcli/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..822b7bf1e5982 --- /dev/null +++ b/recipes/opencontactcli/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: ac3abd1a55a1beb3e493977b572d7fd362c0d2cb3f835ca37d3ece4c6a6d6696 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar + AS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-as + CXXFILT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cfilt + ELFEDIT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-elfedit + GPROF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gprof + LD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld + LD_GOLD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld.gold + NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-nm + OBJCOPY=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objcopy + OBJDUMP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objdump + RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib + READELF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-readelf + SIZE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-size + STRINGS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strings + STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip + INFO: activate-gcc_linux-64.sh made the following environmental changes: + BUILD=x86_64-conda-linux-gnu + CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/opencontactcli-1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr + CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot + CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu + CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu + CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/opencontactcli-1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + INFO: activate-gfortran_linux-64.sh made the following environmental changes: + DEBUG_FFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/opencontactcli-1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fcheck=all -fbacktrace -fimplicit-none -fvar-tracking-assignments -ffunction-sections -pipe + DEBUG_FORTRANFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/opencontactcli-1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fcheck=all -fbacktrace -fimplicit-none -fvar-tracking-assignments -ffunction-sections -pipe + F77=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gfortran + F90=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gfortran + F95=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-f95 + FC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gfortran + FC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gfortran + FFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/opencontactcli-1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + FORTRANFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/opencontactcli-1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GFORTRAN=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gfortran + Traceback (most recent call last): + File "/opt/conda/conda-bld/opencontactcli_1717624440666/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/bin/f2py", line 10, in + Cannot use distutils backend with Python>=3.12, using meson backend instead. + Using meson backend + Will pass --lower to f2py + See https://numpy.org/doc/stable/f2py/buildtools/meson.html + Reading fortran codes... + Post-processing... + sys.exit(main()) + Applying post-processing hooks... + character_backward_compatibility_hook + ^^^^^^ + File "/opt/conda/conda-bld/opencontactcli_1717624440666/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.12/site-packages/numpy/f2py/f2py2e.py", line 766, in main + Post-processing (stage 2)... + Building modules... + run_compile() + File "/opt/conda/conda-bld/opencontactcli_1717624440666/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.12/site-packages/numpy/f2py/f2py2e.py", line 738, in run_compile + builder.compile() + File "/opt/conda/conda-bld/opencontactcli_1717624440666/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.12/site-packages/numpy/f2py/_backends/_meson.py", line 178, in compile + self.run_meson(self.build_dir) + File "/opt/conda/conda-bld/opencontactcli_1717624440666/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.12/site-packages/numpy/f2py/_backends/_meson.py", line 171, in run_meson + self._run_subprocess_command(setup_command, build_dir) + File "/opt/conda/conda-bld/opencontactcli_1717624440666/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.12/site-packages/numpy/f2py/_backends/_meson.py", line 167, in _run_subprocess_command + subprocess.run(command, cwd=cwd, check=True) + File "/opt/conda/conda-bld/opencontactcli_1717624440666/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.12/subprocess.py", line 548, in run + with Popen(*popenargs, **kwargs) as process: + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/conda-bld/opencontactcli_1717624440666/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.12/subprocess.py", line 1026, in __init__ + self._execute_child(args, executable, preexec_fn, close_fds, + File "/opt/conda/conda-bld/opencontactcli_1717624440666/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.12/subprocess.py", line 1955, in _execute_child + raise child_exception_type(errno_num, err_msg, err_filename) + FileNotFoundError: [Errno 2] No such file or directory: 'meson' + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/opencontactcli_1717624440666/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/opencontactcli/meta.yaml b/recipes/opencontactcli/meta.yaml index 47a1c0441260c..a462a78281b7d 100644 --- a/recipes/opencontactcli/meta.yaml +++ b/recipes/opencontactcli/meta.yaml @@ -7,7 +7,7 @@ source: md5: bd2e2a5aabefd5bed2c987bda2fd3e6b build: - number: 7 + number: 8 # OSX build fails with # ld: could not process llvm bitcode object file, because $BUILD_PREFIX/bin/../lib/llvm/libLTO.so could not be loaded file '/tmp/tmpfqi34dg6/tmp/tmpfqi34dg6/src.macosx-10.9-x86_64-3.7/itmodule.o' skip: True # [osx] diff --git a/recipes/orfipy/meta.yaml b/recipes/orfipy/meta.yaml index 9028db89aef32..233aae1aa59db 100644 --- a/recipes/orfipy/meta.yaml +++ b/recipes/orfipy/meta.yaml @@ -10,7 +10,7 @@ source: sha256: b8736e1ab275a7a611d62a9718162988c6393e46f9a9074c690a75254fdcf760 build: - number: 2 + number: 3 skip: True # [py2k] entry_points: - orfipy = orfipy.__main__:main diff --git a/recipes/orfquant/meta.yaml b/recipes/orfquant/meta.yaml index a3d228565cf87..0023474d85125 100644 --- a/recipes/orfquant/meta.yaml +++ b/recipes/orfquant/meta.yaml @@ -10,7 +10,7 @@ source: build: noarch: generic - number: 4 + number: 5 rpaths: - lib/R/lib/ - lib/ diff --git a/recipes/orientagraph/build_failure.osx-64.yaml b/recipes/orientagraph/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..43e5e41c13ad2 --- /dev/null +++ b/recipes/orientagraph/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: d446dcef765ca05d16a950ff7bea343ccc3c718556126b490882b4d306474d38 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache + Downloading source to cache: 0f81b2604993285a56fbf83384481274f7c89883_d51e21d9e4.zip + Downloading https://github.com/sriramlab/OrientAGraph/archive/0f81b2604993285a56fbf83384481274f7c89883.zip + Success + configure: error: could not find zlib + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/orientagraph_1717521672230/work + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/orientagraph_1717521672230/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/orientagraph_1717521672230/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/orientagraph_1717521672230/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/orientagraph-1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/orientagraph_1717521672230/work/conda_build.sh']' returned non-zero exit status 1. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/orientagraph-1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/orientagraph-1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/orientagraph-1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + checking for C compiler default output file name... a.out + checking whether the C compiler works... yes + checking whether we are cross compiling... no + checking for suffix of executables... + checking for suffix of object files... o + checking whether we are using the GNU C compiler... yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes + checking for a BSD-compatible install... /usr/bin/install -c + checking whether build environment is sane... yes + checking for a thread-safe mkdir -p... ./install-sh -c -d + checking for gawk... no + checking for mawk... no + checking for nawk... no + checking for awk... awk + checking whether make sets $(MAKE)... yes + checking for style of include used by make... GNU + checking dependency style of x86_64-apple-darwin13.4.0-clang... gcc3 + checking for x86_64-apple-darwin13.4.0-gcc... x86_64-apple-darwin13.4.0-clang + checking whether we are using the GNU C compiler... yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes + checking for x86_64-apple-darwin13.4.0-clang option to accept ISO C89... none needed + checking dependency style of x86_64-apple-darwin13.4.0-clang... gcc3 + checking for gzopen in -lz... no +# Last 100 lines of the build log. diff --git a/recipes/orientagraph/meta.yaml b/recipes/orientagraph/meta.yaml index 89eadd28e5e47..0d0e032a32a5e 100644 --- a/recipes/orientagraph/meta.yaml +++ b/recipes/orientagraph/meta.yaml @@ -7,7 +7,7 @@ source: sha256: d51e21d9e46c8d60bedf83a7a956032f8757bb69947b37b181e867452bb09aac build: - number: 4 + number: 5 requirements: build: diff --git a/recipes/orna/build_failure.osx-64.yaml b/recipes/orna/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..413245ac90f9b --- /dev/null +++ b/recipes/orna/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 89e935cbf0962078a096807e0c214a01be355ad16c3cc5d1e3c82671f3f3efe4 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + [ 23%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FAdbg.c.o + [ 23%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FAdblkpage.c.o + [ 23%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FAdblock.c.o + [ 23%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FAhdr.c.o + [ 23%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FAint.c.o + [ 24%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FAstat.c.o + [ 24%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FAtest.c.o + [ 24%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FD.c.o + [ 24%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FDcore.c.o + [ 25%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FDdirect.c.o + [ 25%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FDfamily.c.o + [ 25%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FDint.c.o + [ 25%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FDlog.c.o + [ 25%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FDmpi.c.o + [ 26%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FDmpio.c.o + [ 26%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FDmulti.c.o + [ 26%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FDsec2.c.o + [ 26%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FDspace.c.o + [ 27%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FDstdio.c.o + [ 27%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FDtest.c.o + [ 27%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FDwindows.c.o + [ 27%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FL.c.o + [ 28%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FO.c.o + [ 28%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FS.c.o + [ 28%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FScache.c.o + [ 28%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FSdbg.c.o + [ 28%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FSint.c.o + [ 29%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FSsection.c.o + [ 29%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FSstat.c.o + [ 29%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5FStest.c.o + [ 29%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5G.c.o + [ 30%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Gbtree2.c.o + [ 30%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Gcache.c.o + [ 30%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Gcompact.c.o + [ 30%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Gdense.c.o + [ 31%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Gdeprec.c.o + [ 31%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Gent.c.o + [ 31%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Gint.c.o + [ 31%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Glink.c.o + [ 31%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Gloc.c.o + [ 32%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Gname.c.o + [ 32%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Gnode.c.o + [ 32%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Gobj.c.o + [ 32%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Goh.c.o + [ 33%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Groot.c.o + [ 33%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Gstab.c.o + [ 33%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Gtest.c.o + [ 33%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Gtraverse.c.o + [ 34%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5HF.c.o + [ 34%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5HFbtree2.c.o + [ 34%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5HFcache.c.o + [ 34%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5HFdbg.c.o + [ 34%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5HFdblock.c.o + [ 35%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5HFdtable.c.o + [ 35%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5HFhdr.c.o + [ 35%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5HFhuge.c.o + [ 35%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5HFiblock.c.o + [ 36%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5HFiter.c.o + [ 36%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5HFman.c.o + [ 36%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5HFsection.c.o + [ 36%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5HFspace.c.o + [ 36%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5HFstat.c.o + [ 37%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5HFtest.c.o + [ 37%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5HFtiny.c.o + [ 37%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5HG.c.o + [ 37%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5HGcache.c.o + [ 38%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5HGdbg.c.o + [ 38%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5HGquery.c.o + [ 38%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5HL.c.o + [ 38%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5HLcache.c.o + [ 39%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5HLdbg.c.o + [ 39%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5HLdblk.c.o + [ 39%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5HLint.c.o + [ 39%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5HLprfx.c.o + [ 39%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5HP.c.o + [ 40%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5I.c.o + [ 40%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Itest.c.o + [ 40%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5L.c.o + [ 40%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Lexternal.c.o + [ 41%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5MF.c.o + [ 41%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5MFaggr.c.o + [ 41%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5MFdbg.c.o + [ 41%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5MFsection.c.o + [ 42%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5MM.c.o + [ 42%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5MP.c.o + [ 42%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5MPtest.c.o + [ 42%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5O.c.o + [ 42%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Oainfo.c.o + [ 43%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Oalloc.c.o + [ 43%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Oattr.c.o + [ 43%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Oattribute.c.o + [ 43%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Obogus.c.o + [ 44%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Obtreek.c.o + [ 44%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Ocache.c.o + [ 44%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Ocache_image.c.o + [ 44%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Ochunk.c.o + [ 45%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Ocont.c.o + [ 45%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Ocopy.c.o + [ 45%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Odbg.c.o + [ 45%] Building C object ext/gatb-core/thirdparty/hdf5/src/CMakeFiles/hdf5-static.dir/H5Odeprec.c.o +# Last 100 lines of the build log. diff --git a/recipes/orna/meta.yaml b/recipes/orna/meta.yaml index a3c58585a72a8..ad2481b35fa4a 100644 --- a/recipes/orna/meta.yaml +++ b/recipes/orna/meta.yaml @@ -11,7 +11,7 @@ source: sha256: 4be912455a467e89a49ce1e7643b6101f2565a3dc6873d971fad2062566652eb build: - number: 4 + number: 5 requirements: build: diff --git a/recipes/pairix/meta.yaml b/recipes/pairix/meta.yaml index 5a39beae8b866..93116f3be3a0b 100644 --- a/recipes/pairix/meta.yaml +++ b/recipes/pairix/meta.yaml @@ -11,7 +11,7 @@ source: - src_Makefile.patch build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('pairix', max_pin="x.x") }} @@ -45,4 +45,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/pairtools/meta.yaml b/recipes/pairtools/meta.yaml index 62746b7ac48ad..389bc85f49ebb 100644 --- a/recipes/pairtools/meta.yaml +++ b/recipes/pairtools/meta.yaml @@ -10,8 +10,8 @@ source: sha256: 3f265ebcd50fb07a36199a99c58f6b17810b48bacf2d5f3096453319c89bd522 build: - number: 0 - skip: True # [osx or py<37] + number: 1 + skip: True # [osx] entry_points: - pairtools = pairtools.cli:cli run_exports: diff --git a/recipes/parasail-python/meta.yaml b/recipes/parasail-python/meta.yaml index 1694669f24f95..b43bb6bfb09cf 100644 --- a/recipes/parasail-python/meta.yaml +++ b/recipes/parasail-python/meta.yaml @@ -13,7 +13,7 @@ source: - darwin-libtool-name.patch build: - number: 1 + number: 2 skip: True # [py < 37] script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv run_exports: diff --git a/recipes/parascopy/build_failure.linux-64.yaml b/recipes/parascopy/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..1d06571c199a5 --- /dev/null +++ b/recipes/parascopy/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 8e3479136cbb5821860a11749a2a429e5538586bdb8a323823d8dabca6a4807f # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("python_abi=2.7[build=*_cp27mu]"), MatchSpec("pysam==0.17.0=py27h2b63b3a_1")} + Encountered problems while solving: + - package pysam-0.17.0-py27h2b63b3a_1 requires python_abi 2.7.* *_cp27mu, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + [32mpysam >=0.17 [0m is installable with the potential options + [32mpysam [0.17.0|0.18.0|0.19.0|0.19.1|0.20.0][0m would require + [32mpython_abi 2.7.* *_cp27mu[0m, which can be installed; + [32mpysam [0.17.0|0.18.0|...|0.21.0][0m would require + [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; + [32mpysam [0.17.0|0.18.0|...|0.21.0][0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mpysam [0.17.0|0.18.0|...|0.22.1][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mpysam [0.17.0|0.18.0|...|0.22.1][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mpysam [0.19.1|0.20.0|0.21.0|0.22.0|0.22.1][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [31mpython_abi 3.12.* *_cp312[0m is not installable because it conflicts with any installable versions previously reported. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build + create_build_envs(top_level_pkg, notest) + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs + raise e + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs + environ.get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("python_abi=2.7[build=*_cp27mu]"), MatchSpec("pysam==0.17.0=py27h2b63b3a_1")} + Encountered problems while solving: + - package pysam-0.17.0-py27h2b63b3a_1 requires python_abi 2.7.* *_cp27mu, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + [32mpysam >=0.17 [0m is installable with the potential options + [32mpysam [0.17.0|0.18.0|0.19.0|0.19.1|0.20.0][0m would require + [32mpython_abi 2.7.* *_cp27mu[0m, which can be installed; + [32mpysam [0.17.0|0.18.0|...|0.21.0][0m would require + [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; + [32mpysam [0.17.0|0.18.0|...|0.21.0][0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mpysam [0.17.0|0.18.0|...|0.22.1][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mpysam [0.17.0|0.18.0|...|0.22.1][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mpysam [0.19.1|0.20.0|0.21.0|0.22.0|0.22.1][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [31mpython_abi 3.12.* *_cp312[0m is not installable because it conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/parascopy/meta.yaml b/recipes/parascopy/meta.yaml index 27de332711dc3..31fd2a45e6b80 100644 --- a/recipes/parascopy/meta.yaml +++ b/recipes/parascopy/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 1 + number: 2 entry_points: - parascopy=parascopy.entry_point:main run_exports: diff --git a/recipes/pasta/build_failure.linux-64.yaml b/recipes/pasta/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..3227c0b4386f7 --- /dev/null +++ b/recipes/pasta/build_failure.linux-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 65e7d2e1e37f5d09b369b83c2b28d55d132f52dfa10e858233a874f106158aa3 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: test failure +log: |2- + xorg-inputproto: 2.3.2-h7f98852_1002 conda-forge + xorg-kbproto: 1.0.7-h7f98852_1002 conda-forge + xorg-libice: 1.1.1-hd590300_0 conda-forge + xorg-libsm: 1.2.4-h7391055_0 conda-forge + xorg-libx11: 1.8.9-h8ee46fc_0 conda-forge + xorg-libxau: 1.0.11-hd590300_0 conda-forge + xorg-libxdmcp: 1.1.3-h7f98852_0 conda-forge + xorg-libxext: 1.3.4-h0b41bf4_2 conda-forge + xorg-libxfixes: 5.0.3-h7f98852_1004 conda-forge + xorg-libxi: 1.7.10-h7f98852_0 conda-forge + xorg-libxrender: 0.9.11-hd590300_0 conda-forge + xorg-libxt: 1.3.0-hd590300_1 conda-forge + xorg-libxtst: 1.2.3-h7f98852_1002 conda-forge + xorg-recordproto: 1.14.2-h7f98852_1002 conda-forge + xorg-renderproto: 0.11.1-h7f98852_1002 conda-forge + xorg-xextproto: 7.3.0-h0b41bf4_1003 conda-forge + xorg-xproto: 7.0.31-h7f98852_1007 conda-forge + xz: 5.2.6-h166bdaf_0 conda-forge + zlib: 1.3.1-h4ab18f5_1 conda-forge + zstd: 1.5.6-ha6fb4c9_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + export PREFIX=/opt/conda/conda-bld/pasta_1718122849359/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl + export SRC_DIR=/opt/conda/conda-bld/pasta_1718122849359/test_tmp + import: 'pasta' + import: 'pasta' + clustalw2 -help + grep OPTIONS + -OPTIONS :list the command line parameters + hmmalign -h + grep HMMER + # HMMER 3.1b2 (February 2015); http://hmmer.org/ + hmmbuild -h + grep HMMER + # HMMER 3.1b2 (February 2015); http://hmmer.org/ + muscle -version + grep -i MUSCLE + MUSCLE v3.8.1551 by Robert C. Edgar + prank -help + grep prank + prank v.170427. Minimal usage: 'prank sequence_file' + Advanced usage: 'prank [optional parameters] -d=sequence_file [optional parameters]' + raxml -h + grep -i raxml + This is RAxML version 8.2.12 released by Alexandros Stamatakis on May 2018. + Please also consult the RAxML-manual + Please report bugs via the RAxML google group! + raxmlHPC[-SSE3|-AVX|-PTHREADS|-PTHREADS-SSE3|-PTHREADS-AVX|-HYBRID|-HYBRID-SSE3|HYBRID-AVX] + -A Specify one of the secondary structure substitution models implemented in RAxML. + -c Specify number of distinct rate catgories for RAxML when model of rate heterogeneity + "-f c": check if the alignment can be properly read by RAxML + in the two tree files. A file called RAxML_bipartitionFrequencies.outpuFileName + you will need to start RAxML with a non-comprehensive reference tree and an alignment containing all sequences (reference query) + you will need to start RAxML with a non-comprehensive reference tree and an alignment containing all sequences (reference query) + you will need to start RAxML with a non-comprehensive reference tree and an alignment containing all sequences (reference query) + -K Specify one of the multi-state substitution models (max 32 states) implemented in RAxML. + with RAxML using the -f e tree evaluation option. The file name should be: + RAxML_binaryModelParameters.runID + -w FULL (!) path to the directory into which RAxML shall write its output files + CAUTION: unlike in version 7.0.4 RAxML will conduct rapid BS replicates under + RAxML will only do a randomized stepwise addition order parsimony tree reconstruction + -y If you want to only compute a parsimony starting tree with RAxML specify "-y", + --flag-check When using this option, RAxML will only check if all command line flags specifed are available and then exit + RAxML will test all available prot subst. models except for LG4M, LG4X and GTR-based models, with and without empirical base frequencies. + --print-identical-sequences specify that RAxML shall automatically generate a .reduced alignment with all + grep -i raxml + raxmlp -h + This is RAxML version 8.2.12 released by Alexandros Stamatakis on May 2018. + Please also consult the RAxML-manual + Please report bugs via the RAxML google group! + raxmlHPC[-SSE3|-AVX|-PTHREADS|-PTHREADS-SSE3|-PTHREADS-AVX|-HYBRID|-HYBRID-SSE3|HYBRID-AVX] + -A Specify one of the secondary structure substitution models implemented in RAxML. + -c Specify number of distinct rate catgories for RAxML when model of rate heterogeneity + "-f c": check if the alignment can be properly read by RAxML + in the two tree files. A file called RAxML_bipartitionFrequencies.outpuFileName + you will need to start RAxML with a non-comprehensive reference tree and an alignment containing all sequences (reference query) + you will need to start RAxML with a non-comprehensive reference tree and an alignment containing all sequences (reference query) + export PASTA_LOGGING_LEVEL=DEBUG + PASTA_LOGGING_LEVEL=DEBUG + you will need to start RAxML with a non-comprehensive reference tree and an alignment containing all sequences (reference query) + -K Specify one of the multi-state substitution models (max 32 states) implemented in RAxML. + export PASTA_LOGGING_FORMAT=RICH + with RAxML using the -f e tree evaluation option. The file name should be: + PASTA_LOGGING_FORMAT=RICH + RAxML_binaryModelParameters.runID + -w FULL (!) path to the directory into which RAxML shall write its output files + CAUTION: unlike in version 7.0.4 RAxML will conduct rapid BS replicates under + RAxML will only do a randomized stepwise addition order parsimony tree reconstruction + run_pasta.py -i /opt/conda/conda-bld/pasta_1718122849359/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/share/pasta/data/small.fasta + -y If you want to only compute a parsimony starting tree with RAxML specify "-y", + --flag-check When using this option, RAxML will only check if all command line flags specifed are available and then exit + RAxML will test all available prot subst. models except for LG4M, LG4X and GTR-based models, with and without empirical base frequencies. + --print-identical-sequences specify that RAxML shall automatically generate a .reduced alignment with all + PASTA ERROR: PASTA is exiting because of an error: + invalid mode: 'rU' + PASTA INFO: Reading input sequences from '$PREFIX/share/pasta/data/small.fasta'... + WARNING: Tests failed for pasta-1.9.0-py311hfad2c56_1.tar.bz2 - moving package to /opt/conda/conda-bld/broken + TESTS FAILED: pasta-1.9.0-py311hfad2c56_1.tar.bz2 +# Last 100 lines of the build log. diff --git a/recipes/pasta/build_failure.osx-64.yaml b/recipes/pasta/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..9f49c41e872cc --- /dev/null +++ b/recipes/pasta/build_failure.osx-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 65e7d2e1e37f5d09b369b83c2b28d55d132f52dfa10e858233a874f106158aa3 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: test failure +log: |2- + libzlib: 1.3.1-h87427d6_1 conda-forge + llvm-openmp: 18.1.7-h15ab845_0 conda-forge + mafft: 7.526-hec52a4b_0 conda-forge + mpfr: 4.2.1-h4f6b447_1 conda-forge + muscle: 3.8.1551-hb280591_6 bioconda + ncurses: 6.5-h5846eda_0 conda-forge + openjdk: 22.0.1-h2d185b6_0 conda-forge + openssl: 3.3.1-h87427d6_0 conda-forge + pasta: 1.9.0-py311h29d3010_1 local + pcre: 8.45-he49afe7_0 conda-forge + prank: 170427-h85dcccf_0 bioconda + pymongo: 4.7.3-py311hbafa61a_0 conda-forge + python: 3.11.9-h657bba9_0_cpython conda-forge + python_abi: 3.11-4_cp311 conda-forge + raxml: 8.2.13-h2413b67_1 bioconda + readline: 8.2-h9e318b2_1 conda-forge + sniffio: 1.3.1-pyhd8ed1ab_0 conda-forge + tk: 8.6.13-h1abcd95_1 conda-forge + tzdata: 2024a-h0c530f3_0 conda-forge + xz: 5.2.6-h775f41a_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + clustalw2 -help + grep OPTIONS + hmmalign -h + grep HMMER + hmmbuild -h + grep HMMER + muscle -version + grep -i MUSCLE + prank -help + grep prank + raxml -h + grep -i raxml + raxmlp -h + grep -i raxml + export PASTA_LOGGING_LEVEL=DEBUG + PASTA_LOGGING_LEVEL=DEBUG + export PASTA_LOGGING_FORMAT=RICH + PASTA_LOGGING_FORMAT=RICH + run_pasta.py -i /opt/mambaforge/envs/bioconda/conda-bld/pasta_1718123761694/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/share/pasta/data/small.fasta + PASTA ERROR: PASTA is exiting because of an error: + invalid mode: 'rU' + WARNING: Tests failed for pasta-1.9.0-py311h29d3010_1.tar.bz2 - moving package to /opt/mambaforge/envs/bioconda/conda-bld/broken + TESTS FAILED: pasta-1.9.0-py311h29d3010_1.tar.bz2 + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/pasta_1718123761694/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/pasta_1718123761694/test_tmp + import: 'pasta' + import: 'pasta' + -OPTIONS :list the command line parameters + # HMMER 3.1b2 (February 2015); http://hmmer.org/ + # HMMER 3.1b2 (February 2015); http://hmmer.org/ + MUSCLE v3.8.1551 by Robert C. Edgar + prank v.170427. Minimal usage: 'prank sequence_file' + Advanced usage: 'prank [optional parameters] -d=sequence_file [optional parameters]' + This is RAxML version 8.2.12 released by Alexandros Stamatakis on May 2018. + Please also consult the RAxML-manual + Please report bugs via the RAxML google group! + raxmlHPC[-SSE3|-AVX|-PTHREADS|-PTHREADS-SSE3|-PTHREADS-AVX|-HYBRID|-HYBRID-SSE3|HYBRID-AVX] + -A Specify one of the secondary structure substitution models implemented in RAxML. + -c Specify number of distinct rate catgories for RAxML when model of rate heterogeneity + "-f c": check if the alignment can be properly read by RAxML + in the two tree files. A file called RAxML_bipartitionFrequencies.outpuFileName + you will need to start RAxML with a non-comprehensive reference tree and an alignment containing all sequences (reference query) + you will need to start RAxML with a non-comprehensive reference tree and an alignment containing all sequences (reference query) + you will need to start RAxML with a non-comprehensive reference tree and an alignment containing all sequences (reference query) + -K Specify one of the multi-state substitution models (max 32 states) implemented in RAxML. + with RAxML using the -f e tree evaluation option. The file name should be: + RAxML_binaryModelParameters.runID + -w FULL (!) path to the directory into which RAxML shall write its output files + CAUTION: unlike in version 7.0.4 RAxML will conduct rapid BS replicates under + RAxML will only do a randomized stepwise addition order parsimony tree reconstruction + -y If you want to only compute a parsimony starting tree with RAxML specify "-y", + --flag-check When using this option, RAxML will only check if all command line flags specifed are available and then exit + RAxML will test all available prot subst. models except for LG4M, LG4X and GTR-based models, with and without empirical base frequencies. + --print-identical-sequences specify that RAxML shall automatically generate a .reduced alignment with all + This is RAxML version 8.2.12 released by Alexandros Stamatakis on May 2018. + Please also consult the RAxML-manual + Please report bugs via the RAxML google group! + raxmlHPC[-SSE3|-AVX|-PTHREADS|-PTHREADS-SSE3|-PTHREADS-AVX|-HYBRID|-HYBRID-SSE3|HYBRID-AVX] + -A Specify one of the secondary structure substitution models implemented in RAxML. + -c Specify number of distinct rate catgories for RAxML when model of rate heterogeneity + "-f c": check if the alignment can be properly read by RAxML + in the two tree files. A file called RAxML_bipartitionFrequencies.outpuFileName + you will need to start RAxML with a non-comprehensive reference tree and an alignment containing all sequences (reference query) + you will need to start RAxML with a non-comprehensive reference tree and an alignment containing all sequences (reference query) + you will need to start RAxML with a non-comprehensive reference tree and an alignment containing all sequences (reference query) + -K Specify one of the multi-state substitution models (max 32 states) implemented in RAxML. + with RAxML using the -f e tree evaluation option. The file name should be: + RAxML_binaryModelParameters.runID + -w FULL (!) path to the directory into which RAxML shall write its output files + CAUTION: unlike in version 7.0.4 RAxML will conduct rapid BS replicates under + RAxML will only do a randomized stepwise addition order parsimony tree reconstruction + -y If you want to only compute a parsimony starting tree with RAxML specify "-y", + --flag-check When using this option, RAxML will only check if all command line flags specifed are available and then exit + RAxML will test all available prot subst. models except for LG4M, LG4X and GTR-based models, with and without empirical base frequencies. + --print-identical-sequences specify that RAxML shall automatically generate a .reduced alignment with all + PASTA INFO: Reading input sequences from '$PREFIX/share/pasta/data/small.fasta'... +# Last 100 lines of the build log. diff --git a/recipes/pasta/meta.yaml b/recipes/pasta/meta.yaml index e98629dfcff09..4392437dfa127 100644 --- a/recipes/pasta/meta.yaml +++ b/recipes/pasta/meta.yaml @@ -13,7 +13,8 @@ source: - mpstart.patch # issue in OSX py38 (not in Linux nor OSX py37): RuntimeError: An attempt has been made to start a new process before the current process has finished its bootstrapping phase. build: - number: 0 + number: 1 + skip: true # [py == 312] run_exports: - {{ pin_subpackage('pasta', max_pin="x") }} diff --git a/recipes/pb-falcon/meta.yaml b/recipes/pb-falcon/meta.yaml index dc4734f3db4f2..9963caac76c4d 100644 --- a/recipes/pb-falcon/meta.yaml +++ b/recipes/pb-falcon/meta.yaml @@ -12,7 +12,7 @@ source: folder: pb-falcon build: - number: 5 + number: 6 skip: True # [py27 or py36 or osx] run_exports: - {{ pin_subpackage(name, max_pin='x') }} @@ -60,4 +60,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/pbbam/meta.yaml b/recipes/pbbam/meta.yaml index 6ddac564b833a..62c86b7cd19b4 100644 --- a/recipes/pbbam/meta.yaml +++ b/recipes/pbbam/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 skip: True # [osx] run_exports: - {{ pin_subpackage('pbbam', max_pin='x.x') }} diff --git a/recipes/pbcopper/meta.yaml b/recipes/pbcopper/meta.yaml index 2f6fbaa34c415..88e34ecffcf75 100644 --- a/recipes/pbcopper/meta.yaml +++ b/recipes/pbcopper/meta.yaml @@ -24,7 +24,7 @@ extra: - armintoepfer build: - number: 2 + number: 3 skip: True # [osx] run_exports: - {{ pin_subpackage('pbcopper', max_pin='x.x') }} diff --git a/recipes/pbwt/meta.yaml b/recipes/pbwt/meta.yaml index a547aa3277da6..b92f7636c810a 100644 --- a/recipes/pbwt/meta.yaml +++ b/recipes/pbwt/meta.yaml @@ -8,7 +8,7 @@ source: sha256: 57b02f4ec56d236a3f4e6e9789dbefbc505a3157840edcbee2201a831806003e build: - number: 9 + number: 10 requirements: build: diff --git a/recipes/pcaone/meta.yaml b/recipes/pcaone/meta.yaml index a2a1ec298e3f8..726942da286dc 100644 --- a/recipes/pcaone/meta.yaml +++ b/recipes/pcaone/meta.yaml @@ -11,7 +11,7 @@ source: sha256: '{{ sha256 }}' build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('pcaone', max_pin="x") }} @@ -21,17 +21,16 @@ requirements: - {{ compiler('cxx') }} - make - sysroot_linux-64 2.17 # [linux] - - intel-openmp + - llvm-openmp # [osx] + - libgomp # [linux] host: - mkl - mkl-include - - intel-openmp - zlib run: - mkl - - intel-openmp test: commands: diff --git a/recipes/pcasuite/meta.yaml b/recipes/pcasuite/meta.yaml index c1b3199930fc5..19dd174a2397b 100644 --- a/recipes/pcasuite/meta.yaml +++ b/recipes/pcasuite/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 79d0d94d9e483d516b903970f8d5a9f69bc793fe4e8d81ed25b74af2b1d115e4 build: - number: 3 + number: 4 requirements: build: diff --git a/recipes/pcst-fast/meta.yaml b/recipes/pcst-fast/meta.yaml index 579a73edb174d..ede0000d553e5 100644 --- a/recipes/pcst-fast/meta.yaml +++ b/recipes/pcst-fast/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 3b5694110ce2e004471f383267d5e4ab7fe1ba9828954e8c42560ac1e42b25e6 build: - number: 0 + number: 1 skip: True # [py < 38] script: {{ PYTHON }} -m pip install . --no-build-isolation --no-deps --use-pep517 -vvv run_exports: diff --git a/recipes/peakachu/meta.yaml b/recipes/peakachu/meta.yaml index 0fa612ab3fc66..6e92341f90311 100644 --- a/recipes/peakachu/meta.yaml +++ b/recipes/peakachu/meta.yaml @@ -10,7 +10,7 @@ source: build: skip: True # [py2k or py > 38] - number: 3 + number: 4 script: {{ PYTHON }} -m pip install . --no-deps -vv requirements: diff --git a/recipes/peakranger/meta.yaml b/recipes/peakranger/meta.yaml index 65d6f0fc4c3c6..316991275986f 100644 --- a/recipes/peakranger/meta.yaml +++ b/recipes/peakranger/meta.yaml @@ -9,7 +9,7 @@ source: - makefile.patch build: - number: 8 + number: 9 skip: True # [osx] requirements: diff --git a/recipes/pegasusio/meta.yaml b/recipes/pegasusio/meta.yaml index 6ae80ce5d0521..2160e3d1d318a 100644 --- a/recipes/pegasusio/meta.yaml +++ b/recipes/pegasusio/meta.yaml @@ -10,7 +10,7 @@ source: sha256: "bdbcad3652e31cb128d0d4526ae3f50706f75ba05a2efa9f3ed77e2acf37b1ef" build: - number: 0 + number: 1 entry_points: - pegasusio = pegasusio.__main__:main script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv" diff --git a/recipes/pegasuspy/build_failure.linux-64.yaml b/recipes/pegasuspy/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..48bffa8d8dd4c --- /dev/null +++ b/recipes/pegasuspy/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 05082896c9d683a434792cca2bd6d16d300fc5b53d6394f597ea86b8740add13 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("scikit-misc==0.1.4=py310h19f2f35_1"), MatchSpec("python_abi=3.10[build=*_cp310]")} + Encountered problems while solving: + - package scikit-misc-0.1.4-py310h19f2f35_1 requires python_abi 3.10.* *_cp310, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + [32mpython_abi 3.12.* *_cp312[0m is requested and can be installed; + [31mscikit-misc[0m is not installable because there are no viable options + [31mscikit-misc 0.1.3[0m would require + [31mpython_abi 3.6 *_pypy36_pp73[0m, which conflicts with any installable versions previously reported; + [31mscikit-misc 0.1.3[0m would require + [31mpython_abi 3.6.* *_cp36m[0m, which conflicts with any installable versions previously reported; + [31mscikit-misc [0.1.3|0.1.4][0m would require + [31mpython_abi 3.7.* *_cp37m[0m, which conflicts with any installable versions previously reported; + [31mscikit-misc [0.1.3|0.1.4][0m would require + [31mpython_abi 3.7 *_pypy37_pp73[0m, which conflicts with any installable versions previously reported; + [31mscikit-misc [0.1.3|0.1.4][0m would require + [31mpython_abi 3.8.* *_cp38[0m, which conflicts with any installable versions previously reported; + [31mscikit-misc [0.1.3|0.1.4][0m would require + [31mpython_abi 3.9.* *_cp39[0m, which conflicts with any installable versions previously reported; + [31mscikit-misc 0.1.4[0m would require + [31mpython_abi 3.10.* *_cp310[0m, which conflicts with any installable versions previously reported; + [31mscikit-misc 0.1.4[0m would require + [31mpython_abi 3.11.* *_cp311[0m, which conflicts with any installable versions previously reported; + [31mscikit-misc 0.1.4[0m would require + [31mpython_abi 3.8 *_pypy38_pp73[0m, which conflicts with any installable versions previously reported; + [31mscikit-misc 0.1.4[0m would require + [31mpython_abi 3.9 *_pypy39_pp73[0m, which conflicts with any installable versions previously reported. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build + create_build_envs(top_level_pkg, notest) + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs + raise e + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs + environ.get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("scikit-misc==0.1.4=py310h19f2f35_1"), MatchSpec("python_abi=3.10[build=*_cp310]")} + Encountered problems while solving: + - package scikit-misc-0.1.4-py310h19f2f35_1 requires python_abi 3.10.* *_cp310, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + [32mpython_abi 3.12.* *_cp312[0m is requested and can be installed; + [31mscikit-misc[0m is not installable because there are no viable options + [31mscikit-misc 0.1.3[0m would require + [31mpython_abi 3.6 *_pypy36_pp73[0m, which conflicts with any installable versions previously reported; + [31mscikit-misc 0.1.3[0m would require + [31mpython_abi 3.6.* *_cp36m[0m, which conflicts with any installable versions previously reported; + [31mscikit-misc [0.1.3|0.1.4][0m would require + [31mpython_abi 3.7.* *_cp37m[0m, which conflicts with any installable versions previously reported; + [31mscikit-misc [0.1.3|0.1.4][0m would require + [31mpython_abi 3.7 *_pypy37_pp73[0m, which conflicts with any installable versions previously reported; + [31mscikit-misc [0.1.3|0.1.4][0m would require + [31mpython_abi 3.8.* *_cp38[0m, which conflicts with any installable versions previously reported; + [31mscikit-misc [0.1.3|0.1.4][0m would require + [31mpython_abi 3.9.* *_cp39[0m, which conflicts with any installable versions previously reported; + [31mscikit-misc 0.1.4[0m would require + [31mpython_abi 3.10.* *_cp310[0m, which conflicts with any installable versions previously reported; + [31mscikit-misc 0.1.4[0m would require + [31mpython_abi 3.11.* *_cp311[0m, which conflicts with any installable versions previously reported; + [31mscikit-misc 0.1.4[0m would require + [31mpython_abi 3.8 *_pypy38_pp73[0m, which conflicts with any installable versions previously reported; + [31mscikit-misc 0.1.4[0m would require + [31mpython_abi 3.9 *_pypy39_pp73[0m, which conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/pegasuspy/build_failure.osx-64.yaml b/recipes/pegasuspy/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..16bd265017802 --- /dev/null +++ b/recipes/pegasuspy/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 05082896c9d683a434792cca2bd6d16d300fc5b53d6394f597ea86b8740add13 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("python_abi=3.10[build=*_cp310]"), MatchSpec("scikit-misc==0.1.4=py310h50c80d6_2")} + Encountered problems while solving: + - package scikit-misc-0.1.4-py310h50c80d6_2 requires python_abi 3.10.* *_cp310, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + python_abi 3.12.* *_cp312 is requested and can be installed; + scikit-misc is not installable because there are no viable options + scikit-misc 0.1.3 would require + python_abi 3.6 *_pypy36_pp73, which conflicts with any installable versions previously reported; + scikit-misc 0.1.3 would require + python_abi 3.6.* *_cp36m, which conflicts with any installable versions previously reported; + scikit-misc [0.1.3|0.1.4] would require + python_abi 3.7 *_pypy37_pp73, which conflicts with any installable versions previously reported; + scikit-misc [0.1.3|0.1.4] would require + python_abi 3.7.* *_cp37m, which conflicts with any installable versions previously reported; + scikit-misc [0.1.3|0.1.4] would require + python_abi 3.8.* *_cp38, which conflicts with any installable versions previously reported; + scikit-misc [0.1.3|0.1.4] would require + python_abi 3.9.* *_cp39, which conflicts with any installable versions previously reported; + scikit-misc 0.1.4 would require + python_abi 3.10.* *_cp310, which conflicts with any installable versions previously reported; + scikit-misc 0.1.4 would require + python_abi 3.11.* *_cp311, which conflicts with any installable versions previously reported; + scikit-misc 0.1.4 would require + python_abi 3.8 *_pypy38_pp73, which conflicts with any installable versions previously reported; + scikit-misc 0.1.4 would require + python_abi 3.9 *_pypy39_pp73, which conflicts with any installable versions previously reported. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build + create_build_envs(top_level_pkg, notest) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs + raise e + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs + environ.get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("python_abi=3.10[build=*_cp310]"), MatchSpec("scikit-misc==0.1.4=py310h50c80d6_2")} + Encountered problems while solving: + - package scikit-misc-0.1.4-py310h50c80d6_2 requires python_abi 3.10.* *_cp310, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + python_abi 3.12.* *_cp312 is requested and can be installed; + scikit-misc is not installable because there are no viable options + scikit-misc 0.1.3 would require + python_abi 3.6 *_pypy36_pp73, which conflicts with any installable versions previously reported; + scikit-misc 0.1.3 would require + python_abi 3.6.* *_cp36m, which conflicts with any installable versions previously reported; + scikit-misc [0.1.3|0.1.4] would require + python_abi 3.7 *_pypy37_pp73, which conflicts with any installable versions previously reported; + scikit-misc [0.1.3|0.1.4] would require + python_abi 3.7.* *_cp37m, which conflicts with any installable versions previously reported; + scikit-misc [0.1.3|0.1.4] would require + python_abi 3.8.* *_cp38, which conflicts with any installable versions previously reported; + scikit-misc [0.1.3|0.1.4] would require + python_abi 3.9.* *_cp39, which conflicts with any installable versions previously reported; + scikit-misc 0.1.4 would require + python_abi 3.10.* *_cp310, which conflicts with any installable versions previously reported; + scikit-misc 0.1.4 would require + python_abi 3.11.* *_cp311, which conflicts with any installable versions previously reported; + scikit-misc 0.1.4 would require + python_abi 3.8 *_pypy38_pp73, which conflicts with any installable versions previously reported; + scikit-misc 0.1.4 would require + python_abi 3.9 *_pypy39_pp73, which conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/pegasuspy/meta.yaml b/recipes/pegasuspy/meta.yaml index 7df9d6b3c44b8..ea0692f76604c 100644 --- a/recipes/pegasuspy/meta.yaml +++ b/recipes/pegasuspy/meta.yaml @@ -11,8 +11,7 @@ source: build: - number: 1 - skip: True # [py<38] + number: 2 entry_points: - pegasus = pegasus.__main__:main script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv" diff --git a/recipes/pepsirf/build_failure.linux-64.yaml b/recipes/pepsirf/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..9bc1d1262b485 --- /dev/null +++ b/recipes/pepsirf/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: c54c6002551c9f3003ca168c7bd8780a7a8f97ff64865428fa65c3eeb08bcbea # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + -- Found ZLIB: $PREFIX/lib/libz.so (found version "1.2.13") + -- Found Boost: $PREFIX/lib/cmake/Boost-1.85.0/BoostConfig.cmake (found version "1.85.0") found components: program_options regex filesystem iostreams + OpenMP enabled + Gzip file manipulation enabled. + -- Configuring done (0.5s) + -- Generating done (0.0s) + -- Build files have been written to: $SRC_DIR/build + [ 1%] Building CXX object CMakeFiles/modules_zscore.dir/src/modules/zscore/module_zscore.cpp.o + [ 2%] Building CXX object CMakeFiles/modules_zscore.dir/src/modules/zscore/options_zscore.cpp.o + [ 3%] Building CXX object CMakeFiles/modules_zscore.dir/src/modules/zscore/options_parser_zscore.cpp.o + [ 5%] Building CXX object CMakeFiles/modules_zscore.dir/src/modules/bin/peptide_bin.cpp.o + [ 6%] Linking CXX static library libmodules_zscore.a + [ 6%] Built target modules_zscore + [ 7%] Building CXX object CMakeFiles/modules_bin.dir/src/modules/bin/module_bin.cpp.o + [ 8%] Building CXX object CMakeFiles/modules_bin.dir/src/modules/bin/options_bin.cpp.o + [ 10%] Building CXX object CMakeFiles/modules_bin.dir/src/modules/bin/options_parser_bin.cpp.o + [ 11%] Building CXX object CMakeFiles/modules_bin.dir/src/modules/bin/peptide_bin.cpp.o + [ 12%] Building CXX object CMakeFiles/modules_bin.dir/src/modules/bin/probe_rank.cpp.o + [ 13%] Linking CXX static library libmodules_bin.a + [ 13%] Built target modules_bin + [ 15%] Building CXX object CMakeFiles/modules_link.dir/src/modules/link/module_link.cpp.o + [ 16%] Building CXX object CMakeFiles/modules_link.dir/src/modules/link/options_link.cpp.o + [ 17%] Building CXX object CMakeFiles/modules_link.dir/src/modules/link/options_parser_link.cpp.o + [ 18%] Building CXX object CMakeFiles/modules_link.dir/src/modules/link/metadata_map.cpp.o + [ 20%] Linking CXX static library libmodules_link.a + [ 20%] Built target modules_link + [ 21%] Building CXX object CMakeFiles/modules_enrich.dir/src/modules/enrich/module_enrich.cpp.o + [ 22%] Building CXX object CMakeFiles/modules_enrich.dir/src/modules/enrich/options_enrich.cpp.o + [ 23%] Building CXX object CMakeFiles/modules_enrich.dir/src/modules/enrich/options_parser_enrich.cpp.o + [ 25%] Building CXX object CMakeFiles/modules_enrich.dir/src/modules/core/predicate.cpp.o + [ 26%] Linking CXX static library libmodules_enrich.a + [ 26%] Built target modules_enrich + [ 27%] Building CXX object CMakeFiles/modules_info.dir/src/modules/info/module_info.cpp.o + [ 28%] Building CXX object CMakeFiles/modules_info.dir/src/modules/info/options_info.cpp.o + [ 30%] Building CXX object CMakeFiles/modules_info.dir/src/modules/info/options_parser_info.cpp.o + [ 31%] Linking CXX static library libmodules_info.a + [ 31%] Built target modules_info + [ 32%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/parsers/options_parser.cpp.o + [ 33%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/core/options.cpp.o + [ 35%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/core/sequence.cpp.o + [ 36%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/core/file_io.cpp.o + [ 37%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/parsers/fastq_parser.cpp.o + [ 38%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/parsers/fasta_parser.cpp.o + [ 40%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/core/module.cpp.o + [ 41%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/core/sequence_indexer.cpp.o + [ 42%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/core/fastq_score.cpp.o + [ 43%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/core/fs_tools.cpp.o + [ 45%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/core/peptide.cpp.o + [ 46%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/core/module_initializer.cpp.o + [ 47%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/core/cli_validator.cpp.o + [ 48%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/core/modules.cpp.o + [ 50%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/core/peptide_scoring.cpp.o + [ 51%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/core/predicate.cpp.o + [ 52%] Linking CXX static library libpepsirf_common.a + [ 52%] Built target pepsirf_common + [ 53%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/demux/options_demux.cpp.o + [ 55%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/demux/options_parser_demux.cpp.o + [ 56%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/parsers/options_parser.cpp.o + [ 57%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/core/options.cpp.o + [ 58%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/core/file_io.cpp.o + [ 60%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/core/module.cpp.o + [ 61%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/demux/module_demux.cpp.o + [ 62%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/parsers/fasta_parser.cpp.o + [ 63%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/parsers/fastq_parser.cpp.o + [ 65%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/core/sequence.cpp.o + [ 66%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/demux/samplelist_parser.cpp.o + [ 67%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/demux/fif_parser.cpp.o + [ 68%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/demux/translation_map.cpp.o + [ 70%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/core/sequence_indexer.cpp.o + [ 71%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/core/fastq_score.cpp.o + [ 72%] Linking CXX static library libmodules_demux.a + [ 72%] Built target modules_demux + [ 73%] Building CXX object CMakeFiles/modules_deconv.dir/src/modules/deconv/options_deconv.cpp.o + [ 75%] Building CXX object CMakeFiles/modules_deconv.dir/src/modules/deconv/options_parser_deconv.cpp.o + [ 76%] Building CXX object CMakeFiles/modules_deconv.dir/src/modules/core/module.cpp.o + [ 77%] Building CXX object CMakeFiles/modules_deconv.dir/src/modules/deconv/module_deconv.cpp.o + /opt/conda/conda-bld/pepsirf_1717555086856/work/src/modules/deconv/module_deconv.cpp: In member function 'virtual void module_deconv::run(options*)': + /opt/conda/conda-bld/pepsirf_1717555086856/work/src/modules/deconv/module_deconv.cpp:66:42: error: 'directory_iterator' is not a member of 'fs_tools' + 66 | auto in_dir_iter = fs_tools::directory_iterator( input_base ); + | ^~~~~~~~~~~~~~~~~~ + make[3]: *** [CMakeFiles/modules_deconv.dir/build.make:118: CMakeFiles/modules_deconv.dir/src/modules/deconv/module_deconv.cpp.o] Error 1 + make[2]: *** [CMakeFiles/Makefile2:192: CMakeFiles/modules_deconv.dir/all] Error 2 + make[1]: *** [CMakeFiles/Makefile2:121: CMakeFiles/pepsirf.dir/rule] Error 2 + make: *** [Makefile:134: pepsirf] Error 2 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/pepsirf_1717555086856/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/pepsirf/build_failure.osx-64.yaml b/recipes/pepsirf/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..2daaecada136b --- /dev/null +++ b/recipes/pepsirf/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: c54c6002551c9f3003ca168c7bd8780a7a8f97ff64865428fa65c3eeb08bcbea # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pepsirf-1.6.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/pepsirf_1718294404169/work/conda_build.sh']' returned non-zero exit status 2. + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pepsirf-1.6.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pepsirf-1.6.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + -- The CXX compiler identification is Clang 16.0.6 + -- Detecting CXX compiler ABI info + -- Detecting CXX compiler ABI info - done + -- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting CXX compile features + -- Detecting CXX compile features - done + -- Found OpenMP_CXX: -fopenmp=libomp (found version "5.0") + -- Found OpenMP: TRUE (found version "5.0") + -- Found ZLIB: $PREFIX/lib/libz.dylib (found version "1.2.13") + -- Found Boost: $PREFIX/lib/cmake/Boost-1.85.0/BoostConfig.cmake (found version "1.85.0") found components: program_options regex filesystem iostreams + -- Configuring done (2.2s) + -- Generating done (0.1s) + -- Build files have been written to: $SRC_DIR/build + [ 1%] Building CXX object CMakeFiles/modules_info.dir/src/modules/info/module_info.cpp.o + [ 2%] Building CXX object CMakeFiles/modules_info.dir/src/modules/info/options_info.cpp.o + [ 3%] Building CXX object CMakeFiles/modules_info.dir/src/modules/info/options_parser_info.cpp.o + [ 5%] Linking CXX static library libmodules_info.a + [ 5%] Built target modules_info + [ 6%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/parsers/options_parser.cpp.o + [ 7%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/core/options.cpp.o + [ 8%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/core/sequence.cpp.o + [ 10%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/core/file_io.cpp.o + [ 11%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/parsers/fastq_parser.cpp.o + [ 12%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/parsers/fasta_parser.cpp.o + [ 13%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/core/module.cpp.o + [ 15%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/core/sequence_indexer.cpp.o + [ 16%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/core/fastq_score.cpp.o + [ 17%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/core/fs_tools.cpp.o + [ 18%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/core/peptide.cpp.o + [ 20%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/core/module_initializer.cpp.o + [ 21%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/core/cli_validator.cpp.o + [ 22%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/core/modules.cpp.o + [ 23%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/core/peptide_scoring.cpp.o + [ 25%] Building CXX object CMakeFiles/pepsirf_common.dir/src/modules/core/predicate.cpp.o + [ 26%] Linking CXX static library libpepsirf_common.a + [ 26%] Built target pepsirf_common + [ 27%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/demux/options_demux.cpp.o + [ 28%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/demux/options_parser_demux.cpp.o + [ 30%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/parsers/options_parser.cpp.o + [ 31%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/core/options.cpp.o + [ 32%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/core/file_io.cpp.o + [ 33%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/core/module.cpp.o + [ 35%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/demux/module_demux.cpp.o + [ 36%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/parsers/fasta_parser.cpp.o + [ 37%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/parsers/fastq_parser.cpp.o + [ 38%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/core/sequence.cpp.o + [ 40%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/demux/samplelist_parser.cpp.o + [ 41%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/demux/fif_parser.cpp.o + [ 42%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/demux/translation_map.cpp.o + [ 43%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/core/sequence_indexer.cpp.o + [ 45%] Building CXX object CMakeFiles/modules_demux.dir/src/modules/core/fastq_score.cpp.o + [ 46%] Linking CXX static library libmodules_demux.a + [ 46%] Built target modules_demux + [ 47%] Building CXX object CMakeFiles/modules_deconv.dir/src/modules/deconv/options_deconv.cpp.o + [ 48%] Building CXX object CMakeFiles/modules_deconv.dir/src/modules/deconv/options_parser_deconv.cpp.o + [ 50%] Building CXX object CMakeFiles/modules_deconv.dir/src/modules/core/module.cpp.o + [ 51%] Building CXX object CMakeFiles/modules_deconv.dir/src/modules/deconv/module_deconv.cpp.o +# Last 100 lines of the build log. diff --git a/recipes/pepsirf/meta.yaml b/recipes/pepsirf/meta.yaml index 44daea2b41287..1b31fc0088a59 100644 --- a/recipes/pepsirf/meta.yaml +++ b/recipes/pepsirf/meta.yaml @@ -10,7 +10,7 @@ source: sha256: {{ sha256 }} build: - number: 2 + number: 3 requirements: build: diff --git a/recipes/perl-atlas-modules/build_failure.linux-64.yaml b/recipes/perl-atlas-modules/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..6a562a0e486a5 --- /dev/null +++ b/recipes/perl-atlas-modules/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: fbbddbc9b5477eea9891e34c0add98b8af971b311e362fdb1764571f62646076 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("perl-xml-sax-expat"), MatchSpec("perl-xml-simple==2.22=0"), MatchSpec("perl-dbi==1.641=pl526_2")} + Encountered problems while solving: + - package perl-dbi-1.641-pl526_2 is excluded by strict repo priority + - package perl-xml-simple-2.22-0 requires perl-xml-sax-expat, but none of the providers can be installed + + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("perl-xml-sax-expat"), MatchSpec("perl-xml-simple==2.22=0"), MatchSpec("perl-dbi==1.641=pl526_2")} + Encountered problems while solving: + - package perl-dbi-1.641-pl526_2 is excluded by strict repo priority + - package perl-xml-simple-2.22-0 requires perl-xml-sax-expat, but none of the providers can be installed + + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2308, in build + output_metas = expand_outputs([(m, need_source_download, need_reparse_in_env)]) + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 916, in expand_outputs + for output_dict, m in deepcopy(_m).get_output_metadata_set( + File "/opt/conda/lib/python3.10/site-packages/conda_build/metadata.py", line 2737, in get_output_metadata_set + conda_packages = finalize_outputs_pass( + File "/opt/conda/lib/python3.10/site-packages/conda_build/metadata.py", line 1095, in finalize_outputs_pass + fm = finalize_metadata( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 650, in finalize_metadata + build_unsat, host_unsat = add_upstream_pins( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 491, in add_upstream_pins + host_deps, host_unsat, extra_run_specs_from_host = _read_upstream_pin_files( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 444, in _read_upstream_pin_files + deps, precs, unsat = get_env_dependencies( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 156, in get_env_dependencies + precs = environ.get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("perl-xml-sax-expat"), MatchSpec("perl-xml-simple==2.22=0"), MatchSpec("perl-dbi==1.641=pl526_2")} + Encountered problems while solving: + - package perl-dbi-1.641-pl526_2 is excluded by strict repo priority + - package perl-xml-simple-2.22-0 requires perl-xml-sax-expat, but none of the providers can be installed +# Last 100 lines of the build log. diff --git a/recipes/perl-atlas-modules/build_failure.osx-64.yaml b/recipes/perl-atlas-modules/build_failure.osx-64.yaml index 5af1e0170200f..ae2b0e0278494 100644 --- a/recipes/perl-atlas-modules/build_failure.osx-64.yaml +++ b/recipes/perl-atlas-modules/build_failure.osx-64.yaml @@ -1,104 +1,104 @@ -recipe_sha: 3239e6199c623198fc1801dd4a291cfec2ded61d224db5a562c3ff831ba844c9 # The commit at which this recipe failed to build. +recipe_sha: fbbddbc9b5477eea9891e34c0add98b8af971b311e362fdb1764571f62646076 # The hash of the recipe's meta.yaml at which this recipe failed to build. skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |- - Fetching http://www.cpan.org/authors/id/D/DD/DDICK/Test-MockTime-0.17.tar.gz ... OK - Configuring Test-MockTime-0.17 ... OK - Building and testing Test-MockTime-0.17 ... OK - Successfully installed Test-MockTime-0.17 - --> Working on DateTime::Format::Builder - Fetching http://www.cpan.org/authors/id/D/DR/DROLSKY/DateTime-Format-Builder-0.83.tar.gz ... OK - Configuring DateTime-Format-Builder-0.83 ... OK - Building and testing DateTime-Format-Builder-0.83 ... OK - Successfully installed DateTime-Format-Builder-0.83 - Building and testing DateTime-Format-Flexible-0.34 ... OK - Successfully installed DateTime-Format-Flexible-0.34 - Building and testing Bio-MAGETAB-1.31 ... OK - Successfully installed Bio-MAGETAB-1.31 - --> Working on Date::Parse - Fetching http://www.cpan.org/authors/id/A/AT/ATOOMIC/TimeDate-2.33.tar.gz ... OK - Configuring TimeDate-2.33 ... OK - Building and testing TimeDate-2.33 ... OK - Successfully installed TimeDate-2.33 (upgraded from 2.30) - --> Working on Test::MockObject - Fetching http://www.cpan.org/authors/id/C/CH/CHROMATIC/Test-MockObject-1.20200122.tar.gz ... OK - Configuring Test-MockObject-1.20200122 ... OK - ==> Found dependencies: UNIVERSAL::isa, UNIVERSAL::can - --> Working on UNIVERSAL::isa - Fetching http://www.cpan.org/authors/id/E/ET/ETHER/UNIVERSAL-isa-1.20171012.tar.gz ... OK - Configuring UNIVERSAL-isa-1.20171012 ... OK - Building and testing UNIVERSAL-isa-1.20171012 ... OK - Successfully installed UNIVERSAL-isa-1.20171012 - --> Working on UNIVERSAL::can - Fetching http://www.cpan.org/authors/id/C/CH/CHROMATIC/UNIVERSAL-can-1.20140328.tar.gz ... OK - Configuring UNIVERSAL-can-1.20140328 ... OK - Building and testing UNIVERSAL-can-1.20140328 ... OK - Successfully installed UNIVERSAL-can-1.20140328 - Building and testing Test-MockObject-1.20200122 ... OK - Successfully installed Test-MockObject-1.20200122 - --> Working on Text::TabularDisplay - Fetching http://www.cpan.org/authors/id/D/DA/DARREN/Text-TabularDisplay-1.38.tar.gz ... OK - Configuring Text-TabularDisplay-1.38 ... OK - Building and testing Text-TabularDisplay-1.38 ... OK - Successfully installed Text-TabularDisplay-1.38 - --> Working on TIMB/DBI-1.636.tar.gz - Fetching http://www.cpan.org/authors/id/T/TI/TIMB/DBI-1.636.tar.gz ... OK - Configuring DBI-1.636 ... OK - ! Installing TIMB/DBI-1.636.tar.gz failed. See /Users/runner/.cpanm/work/1685549955.12009/build.log for details. Retry with --force to force install it. - Building and testing DBI-1.636 ... FAIL - --> Working on MIYAGAWA/Class-Trigger-0.15.tar.gz - Fetching http://www.cpan.org/authors/id/M/MI/MIYAGAWA/Class-Trigger-0.15.tar.gz ... OK - Configuring Class-Trigger-0.15 ... OK - Building and testing Class-Trigger-0.15 ... OK - Successfully installed Class-Trigger-0.15 - --> Working on TMTM/Class-DBI-v3.0.17.tar.gz - Fetching http://www.cpan.org/authors/id/T/TM/TMTM/Class-DBI-v3.0.17.tar.gz ... OK - Configuring Class-DBI-v3.0.17 ... OK - ==> Found dependencies: Ima::DBI, UNIVERSAL::moniker - --> Working on Ima::DBI - Fetching http://www.cpan.org/authors/id/P/PE/PERRIN/Ima-DBI-0.35.tar.gz ... OK - Configuring Ima-DBI-0.35 ... OK - ==> Found dependencies: DBIx::ContextualFetch - --> Working on DBIx::ContextualFetch - Fetching http://www.cpan.org/authors/id/T/TM/TMTM/DBIx-ContextualFetch-1.03.tar.gz ... OK - Configuring DBIx-ContextualFetch-1.03 ... OK - Building and testing DBIx-ContextualFetch-1.03 ... OK - Successfully installed DBIx-ContextualFetch-1.03 - Building and testing Ima-DBI-0.35 ... OK - Successfully installed Ima-DBI-0.35 - --> Working on UNIVERSAL::moniker - Fetching http://www.cpan.org/authors/id/K/KA/KASEI/UNIVERSAL-moniker-0.08.tar.gz ... OK - Configuring UNIVERSAL-moniker-0.08 ... OK - Building and testing UNIVERSAL-moniker-0.08 ... OK - Successfully installed UNIVERSAL-moniker-0.08 - Building and testing Class-DBI-v3.0.17 ... OK - Successfully installed Class-DBI-v3.0.17 - --> Working on DETI/Proc/Proc-Daemon-0.14.tar.gz - Fetching http://www.cpan.org/authors/id/D/DE/DETI/Proc/Proc-Daemon-0.14.tar.gz ... OK - Configuring Proc-Daemon-0.14 ... OK - Building and testing Proc-Daemon-0.14 ... OK - Successfully installed Proc-Daemon-0.14 - --> Working on Proc::ProcessTable - Fetching http://www.cpan.org/authors/id/J/JW/JWB/Proc-ProcessTable-0.635.tar.gz ... OK - Configuring Proc-ProcessTable-0.635 ... OK - ! Installing Proc::ProcessTable failed. See /Users/runner/.cpanm/work/1685549955.12009/build.log for details. Retry with --force to force install it. - Building and testing Proc-ProcessTable-0.635 ... FAIL - 21 distributions installed +log: |2- + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("perl-dbi==1.641=pl526_2"), MatchSpec("perl-xml-sax-expat"), MatchSpec("perl-xml-simple==2.22=0")} + Encountered problems while solving: + - package perl-dbi-1.641-pl526_2 is excluded by strict repo priority + - package perl-xml-simple-2.22-0 requires perl-xml-sax-expat, but none of the providers can be installed + + + During handling of the above exception, another exception occurred: + Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("perl-dbi==1.641=pl526_2"), MatchSpec("perl-xml-sax-expat"), MatchSpec("perl-xml-simple==2.22=0")} + Encountered problems while solving: + - package perl-dbi-1.641-pl526_2 is excluded by strict repo priority + - package perl-xml-simple-2.22-0 requires perl-xml-sax-expat, but none of the providers can be installed + + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/perl-atlas-modules_1685549595549/work/conda_build.sh']' returned non-zero exit status 1. + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2308, in build + output_metas = expand_outputs([(m, need_source_download, need_reparse_in_env)]) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 916, in expand_outputs + for output_dict, m in deepcopy(_m).get_output_metadata_set( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 2737, in get_output_metadata_set + conda_packages = finalize_outputs_pass( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 1095, in finalize_outputs_pass + fm = finalize_metadata( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 650, in finalize_metadata + build_unsat, host_unsat = add_upstream_pins( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 491, in add_upstream_pins + host_deps, host_unsat, extra_run_specs_from_host = _read_upstream_pin_files( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 444, in _read_upstream_pin_files + deps, precs, unsat = get_env_dependencies( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 156, in get_env_dependencies + precs = environ.get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("perl-dbi==1.641=pl526_2"), MatchSpec("perl-xml-sax-expat"), MatchSpec("perl-xml-simple==2.22=0")} + Encountered problems while solving: + - package perl-dbi-1.641-pl526_2 is excluded by strict repo priority + - package perl-xml-simple-2.22-0 requires perl-xml-sax-expat, but none of the providers can be installed # Last 100 lines of the build log. diff --git a/recipes/perl-atlas-modules/meta.yaml b/recipes/perl-atlas-modules/meta.yaml index 8927eab131ce0..626bf9dbcd503 100644 --- a/recipes/perl-atlas-modules/meta.yaml +++ b/recipes/perl-atlas-modules/meta.yaml @@ -11,7 +11,7 @@ source: # If this is a new build for the same version, increment the build # number. If you do not include this key, it defaults to 0. build: - number: 5 + number: 6 requirements: build: diff --git a/recipes/perl-bio-db-hts/build_failure.osx-64.yaml b/recipes/perl-bio-db-hts/build_failure.osx-64.yaml deleted file mode 100644 index c89ac2ad803ea..0000000000000 --- a/recipes/perl-bio-db-hts/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 2d283865eaec2775144363a91e6e66304eff6b1ef087cdd548fb929665bea06a # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - icu: 72.1-h7336db1_0 conda-forge - ld64_osx-64: 609-h8ce0179_13 conda-forge - libclang-cpp15: 15.0.7-default_hdb78580_2 conda-forge - libcxx: 16.0.4-hd57cbcb_0 conda-forge - libiconv: 1.17-hac89ed1_0 conda-forge - libllvm15: 15.0.7-he4b1e75_2 conda-forge - libxml2: 2.11.4-hd95e348_0 conda-forge - libzlib: 1.2.13-hfd90126_4 conda-forge - llvm-tools: 15.0.7-he4b1e75_2 conda-forge - openssl: 3.1.1-h8a1eda9_1 conda-forge - sigtool: 0.1.3-h88f4db0_0 conda-forge - tapi: 1100.0.11-h9ce4665_0 conda-forge - xz: 5.2.6-h775f41a_0 conda-forge - zstd: 1.5.2-hbc0c0cd_6 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache - Downloading source to cache: Bio-DB-HTS-3.01_12a6bc1f57.tar.gz - Downloading https://cpan.metacpan.org/authors/id/A/AV/AVULLO/Bio-DB-HTS-3.01.tar.gz - INFO:conda_build.source:Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache - INFO:conda_build.source:Downloading source to cache: Bio-DB-HTS-3.01_12a6bc1f57.tar.gz - INFO:conda_build.source:Downloading https://cpan.metacpan.org/authors/id/A/AV/AVULLO/Bio-DB-HTS-3.01.tar.gz - Success - INFO:conda_build.source:Success - Extracting download - source tree in: /opt/mambaforge/envs/bioconda/conda-bld/perl-bio-db-hts_1685531289206/work - export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/perl-bio-db-hts_1685531289206/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol - export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/perl-bio-db-hts_1685531289206/_build_env - export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/perl-bio-db-hts_1685531289206/work - INFO: activate_clang_osx-64.sh made the following environmental changes: - AR=x86_64-apple-darwin13.4.0-ar - AS=x86_64-apple-darwin13.4.0-as - CC=x86_64-apple-darwin13.4.0-clang - CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fPIE -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/perl-bio-db-hts-3.01 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms - CLANG=x86_64-apple-darwin13.4.0-clang - CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin - CMAKE_PREFIX_PATH=:$PREFIX - CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 - CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 - CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 - DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fPIE -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/perl-bio-db-hts-3.01 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - HOST=x86_64-apple-darwin13.4.0 - INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool - LD=x86_64-apple-darwin13.4.0-ld - LDFLAGS=-Wl,-pie -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib - LDFLAGS_LD=-pie -headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib - LIBTOOL=x86_64-apple-darwin13.4.0-libtool - LIPO=x86_64-apple-darwin13.4.0-lipo - MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib - NM=x86_64-apple-darwin13.4.0-nm - NMEDIT=x86_64-apple-darwin13.4.0-nmedit - OBJC=x86_64-apple-darwin13.4.0-clang - OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - OTOOL=x86_64-apple-darwin13.4.0-otool - PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff - RANLIB=x86_64-apple-darwin13.4.0-ranlib - REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding - SDKROOT=/Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk - SEGEDIT=x86_64-apple-darwin13.4.0-segedit - SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table - SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack - SIZE=x86_64-apple-darwin13.4.0-size - STRINGS=x86_64-apple-darwin13.4.0-strings - STRIP=x86_64-apple-darwin13.4.0-strip - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 - ac_cv_func_malloc_0_nonnull=yes - ac_cv_func_realloc_0_nonnull=yes - build_alias=x86_64-apple-darwin13.4.0 - host_alias=x86_64-apple-darwin13.4.0 - ld: library not found for -lSystem - clang-15: error: linker command failed with exit code 1 (use -v to see invocation) - Warning: ExtUtils::CBuilder not installed or no compiler detected - Proceeding with configuration, but compilation may fail during Build - - Created MYMETA.yml and MYMETA.json - Creating new 'Build' script for 'Bio-DB-HTS' version '3.01' - Building Bio-DB-HTS - Error: no compiler detected to compile 'lib/Bio/DB/HTS.c'. Aborting - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/perl-bio-db-hts_1685531289206/work/conda_build.sh']' returned non-zero exit status 255. -# Last 100 lines of the build log. diff --git a/recipes/perl-bio-db-hts/meta.yaml b/recipes/perl-bio-db-hts/meta.yaml index eb10ca5629ea4..c6b1db9d44812 100644 --- a/recipes/perl-bio-db-hts/meta.yaml +++ b/recipes/perl-bio-db-hts/meta.yaml @@ -9,7 +9,9 @@ source: sha256: 12a6bc1f579513cac8b9167cce4e363655cc8eba26b7d9fe1170dfe95e044f42 build: - number: 8 + number: 9 + run_exports: + - {{ pin_subpackage("perl-bio-db-hts", max_pin="x") }} requirements: build: diff --git a/recipes/perl-dbd-pg/meta.yaml b/recipes/perl-dbd-pg/meta.yaml index e731a8a39d2dc..d56a97aba1981 100644 --- a/recipes/perl-dbd-pg/meta.yaml +++ b/recipes/perl-dbd-pg/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 2 + number: 3 run_exports: weak: - {{ name }} ={{ version }} diff --git a/recipes/perl-statistics-r/meta.yaml b/recipes/perl-statistics-r/meta.yaml index 07f59d230f869..379b358df0bf1 100644 --- a/recipes/perl-statistics-r/meta.yaml +++ b/recipes/perl-statistics-r/meta.yaml @@ -9,7 +9,7 @@ about: build: noarch: generic - number: 5 + number: 6 source: url: "http://search.cpan.org/CPAN/authors/id/F/FA/FANGLY/Statistics-R-0.34.tar.gz" diff --git a/recipes/pfp/meta.yaml b/recipes/pfp/meta.yaml index 0cea48bc7868f..f9f7408bd65bb 100644 --- a/recipes/pfp/meta.yaml +++ b/recipes/pfp/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 66fc33d79f30d123a0465020e2c9d81b873c95ef8a7fefefc36791f04f82aa08 build: - number: 0 + number: 1 requirements: build: diff --git a/recipes/pftools/meta.yaml b/recipes/pftools/meta.yaml index 80fa3feda6c49..74d61b9b819a1 100644 --- a/recipes/pftools/meta.yaml +++ b/recipes/pftools/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 3 + number: 4 skip: True # [osx] requirements: diff --git a/recipes/pgenlib/meta.yaml b/recipes/pgenlib/meta.yaml index b573cc847787c..6310a5f8d966f 100644 --- a/recipes/pgenlib/meta.yaml +++ b/recipes/pgenlib/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 09825be43ffb25bc68b6e243b98989a5bc35a8aa22cd749fd9f602d778dd6bd0 build: - number: 0 + number: 1 script: "{{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation" run_exports: - {{ pin_subpackage('pgenlib', max_pin="x.x") }} diff --git a/recipes/pgr-tk/meta.yaml b/recipes/pgr-tk/meta.yaml index dfdbc57d98738..335cfd50c4ac0 100644 --- a/recipes/pgr-tk/meta.yaml +++ b/recipes/pgr-tk/meta.yaml @@ -10,7 +10,7 @@ source: sha256: f7252d6ef3640f28ca8c88cb9e469fad63799e467272dcdba24fa40026635864 build: - number: 0 + number: 1 skip: True # [osx or py != 38] run_exports: - {{ pin_subpackage('pgr-tk', max_pin='x.x') }} diff --git a/recipes/phanotate/meta.yaml b/recipes/phanotate/meta.yaml index 5c4db157f9366..590f533b90944 100644 --- a/recipes/phanotate/meta.yaml +++ b/recipes/phanotate/meta.yaml @@ -10,7 +10,7 @@ source: sha256: "4be12306eeace16d018538499299b1e01f3fc5a904af5836ed0172eacdda3483" build: - number: 0 + number: 1 skip: True # [py < 36] script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv" run_exports: @@ -33,6 +33,7 @@ requirements: - textwrap3 - trnascan-se - genbank + - setuptools # uses pkg_resources test: commands: diff --git a/recipes/pheniqs/build_failure.linux-64.yaml b/recipes/pheniqs/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..65d056b2ae7c1 --- /dev/null +++ b/recipes/pheniqs/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 8522fd9ce2570fc7d03f8f39470f4ca75c46aa7fce9c4fe891b88970cad8eae0 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr + CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot + CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu + CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu + CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + INFO: activate-gxx_linux-64.sh made the following environmental changes: + CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-g + export LD_LIBRARY_PATH=/opt/conda/conda-bld/pheniqs_1717958146768/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/lib + LD_LIBRARY_PATH=/opt/conda/conda-bld/pheniqs_1717958146768/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/lib + make all PREFIX=/opt/conda/conda-bld/pheniqs_1717958146768/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place + version.h generated with PHENIQS_VERSION 2.1.0 + generating configuration.h + zsh completion _pheniqs generated + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o json.o json.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o selector.o selector.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o atom.o atom.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o phred.o phred.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o sequence.o sequence.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o barcode.o barcode.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o auxiliary.o auxiliary.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o url.o url.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o proxy.o proxy.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o read.o read.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o feed.o feed.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o multiplex.o multiplex.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o classifier.o classifier.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o transform.o transform.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o decoder.o decoder.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o naive.o naive.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o mdd.o mdd.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o pamld.o pamld.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o interface.o interface.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o fastq.o fastq.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o hts.o hts.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o transcode.o transcode.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o pipeline.o pipeline.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o pheniqs.o pheniqs.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o job.o job.cpp + In file included from include.h:129, + from job.h:25, + from job.cpp:22: + /opt/conda/conda-bld/pheniqs_1717958146768/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/include/rapidjson/schema.h: In instantiation of 'rapidjson::internal::Schema::Schema(SchemaDocumentType*, const PointerType&, const ValueType&, const ValueType&, AllocatorType*, const UriType&) [with SchemaDocumentType = rapidjson::GenericSchemaDocument > >; PointerType = rapidjson::GenericPointer > >; ValueType = rapidjson::GenericValue >; AllocatorType = rapidjson::CrtAllocator; UriType = rapidjson::GenericUri > >]': + /opt/conda/conda-bld/pheniqs_1717958146768/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/include/rapidjson/schema.h:1868:9: required from 'rapidjson::GenericSchemaDocument::GenericSchemaDocument(const ValueType&, const Ch*, rapidjson::SizeType, IRemoteSchemaDocumentProviderType*, Allocator*, const PointerType&, const rapidjson::Specification&) [with ValueT = rapidjson::GenericValue >; Allocator = rapidjson::CrtAllocator; ValueType = rapidjson::GenericValue >; Ch = char; rapidjson::SizeType = long unsigned int; IRemoteSchemaDocumentProviderType = rapidjson::IGenericRemoteSchemaDocumentProvider > > >; PointerType = rapidjson::GenericPointer > >]' + job.cpp:233:91: required from here + /opt/conda/conda-bld/pheniqs_1717958146768/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/include/rapidjson/schema.h:703:82: error: no matching function for call to 'rapidjson::internal::Schema > > >::CreatePattern(const rapidjson::GenericValue >&, rapidjson::GenericSchemaDocument > >*&, rapidjson::internal::Schema > > >::PointerType&)' + 703 | patternProperties_[patternPropertyCount_].pattern = CreatePattern(itr->name, schemaDocument, r); + | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + /opt/conda/conda-bld/pheniqs_1717958146768/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/include/rapidjson/schema.h:1440:16: note: candidate: 'template rapidjson::internal::Schema::RegexType* rapidjson::internal::Schema::CreatePattern(const ValueType&) [with SchemaDocumentType = rapidjson::GenericSchemaDocument > >]' + 1440 | RegexType* CreatePattern(const ValueType&) { + | ^~~~~~~~~~~~~ + /opt/conda/conda-bld/pheniqs_1717958146768/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/include/rapidjson/schema.h:1440:16: note: template argument deduction/substitution failed: + /opt/conda/conda-bld/pheniqs_1717958146768/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/include/rapidjson/schema.h:703:82: note: candidate expects 1 argument, 3 provided + 703 | patternProperties_[patternPropertyCount_].pattern = CreatePattern(itr->name, schemaDocument, r); + | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + /opt/conda/conda-bld/pheniqs_1717958146768/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/include/rapidjson/schema.h:788:37: error: no matching function for call to 'rapidjson::internal::Schema > > >::CreatePattern(const rapidjson::internal::Schema > > >::ValueType&, rapidjson::GenericSchemaDocument > >*&, rapidjson::GenericPointer > >)' + 788 | pattern_ = CreatePattern(*v, schemaDocument, p.Append(GetPatternString(), allocator_)); + | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + /opt/conda/conda-bld/pheniqs_1717958146768/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/include/rapidjson/schema.h:1440:16: note: candidate: 'template rapidjson::internal::Schema::RegexType* rapidjson::internal::Schema::CreatePattern(const ValueType&) [with SchemaDocumentType = rapidjson::GenericSchemaDocument > >]' + 1440 | RegexType* CreatePattern(const ValueType&) { + | ^~~~~~~~~~~~~ + /opt/conda/conda-bld/pheniqs_1717958146768/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/include/rapidjson/schema.h:1440:16: note: template argument deduction/substitution failed: + /opt/conda/conda-bld/pheniqs_1717958146768/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/include/rapidjson/schema.h:788:37: note: candidate expects 1 argument, 3 provided + 788 | pattern_ = CreatePattern(*v, schemaDocument, p.Append(GetPatternString(), allocator_)); + | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + make: *** [Makefile:192: job.o] Error 1 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/pheniqs_1717958146768/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/pheniqs/build_failure.osx-64.yaml b/recipes/pheniqs/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..aed18dbba03d8 --- /dev/null +++ b/recipes/pheniqs/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 8522fd9ce2570fc7d03f8f39470f4ca75c46aa7fce9c4fe891b88970cad8eae0 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + ^ + 2 warnings and 11 errors generated. + make: *** [Makefile:192: job.o] Error 1 + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/pheniqs_1717628818521/work + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/pheniqs_1717628818521/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/pheniqs_1717628818521/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/pheniqs_1717628818521/work + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/pheniqs_1717628818521/work/conda_build.sh']' returned non-zero exit status 2. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + version.h generated with PHENIQS_VERSION 2.1.0 + generating configuration.h + zsh completion _pheniqs generated + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o json.o json.cpp + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o selector.o selector.cpp + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o atom.o atom.cpp + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o phred.o phred.cpp + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o sequence.o sequence.cpp + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o barcode.o barcode.cpp + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o auxiliary.o auxiliary.cpp + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o url.o url.cpp + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o proxy.o proxy.cpp + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o read.o read.cpp + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o feed.o feed.cpp + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o multiplex.o multiplex.cpp + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o classifier.o classifier.cpp + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o transform.o transform.cpp + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o decoder.o decoder.cpp + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o naive.o naive.cpp + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o mdd.o mdd.cpp + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o pamld.o pamld.cpp + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o interface.o interface.cpp + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o fastq.o fastq.cpp + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o hts.o hts.cpp + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o transcode.o transcode.cpp + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o pipeline.o pipeline.cpp + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o pheniqs.o pheniqs.cpp + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Wall -Wsign-compare -Wdeprecated -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pheniqs-2.1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c11 -O3 -c -o job.o job.cpp +# Last 100 lines of the build log. diff --git a/recipes/pheniqs/meta.yaml b/recipes/pheniqs/meta.yaml index c81a5e6af075d..41966f49d717c 100644 --- a/recipes/pheniqs/meta.yaml +++ b/recipes/pheniqs/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 7 + number: 8 source: url: https://github.com/biosails/{{name}}/archive/{{version}}.tar.gz diff --git a/recipes/phispy/build_failure.osx-64.yaml b/recipes/phispy/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..d88b6d5ee1ba6 --- /dev/null +++ b/recipes/phispy/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: c9c71853172ce7a3e354a56c027483c811957efef56eef911e4b94cbb044a44f # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 1850, in bundle_conda + files = post_process_files(metadata, initial_files) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 1664, in post_process_files + post_build(m, new_files, build_python=python) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/post.py", line 1727, in post_build + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/phispy-4.2.21 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + post_process_shared_lib(m, f, prefix_files, host_prefix) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/post.py", line 1603, in post_process_shared_lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + mk_relative_osx(path, host_prefix, m, files=files, rpaths=rpaths) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/post.py", line 470, in mk_relative_osx + names = macho.otool(path, prefix) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/os_utils/macho.py", line 221, in otool + lines = check_output([otool, "-l", path], stderr=STDOUT).decode("utf-8") + File "/opt/mambaforge/envs/bioconda/lib/python3.10/subprocess.py", line 421, in check_output + return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, + File "/opt/mambaforge/envs/bioconda/lib/python3.10/subprocess.py", line 526, in run + raise CalledProcessError(retcode, process.args, + subprocess.CalledProcessError: Command '['/opt/mambaforge/envs/bioconda/conda-bld/phispy_1718318993033/_build_env/bin/llvm-otool', '-l', '/opt/mambaforge/envs/bioconda/conda-bld/phispy_1718318993033/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.11/site-packages/PhiSpyRepeatFinder.cpython-311-darwin.so']' died with . + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/phispy-4.2.21 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/phispy-4.2.21 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + Using pip 24.0 from $PREFIX/lib/python3.11/site-packages/pip (python 3.11) + Non-user install because user site-packages disabled + Ignoring indexes: https://pypi.org/simple + Created temporary directory: /private/tmp/pip-build-tracker-k4rcmtb3 + Initialized build tracking at /private/tmp/pip-build-tracker-k4rcmtb3 + Created build tracker: /private/tmp/pip-build-tracker-k4rcmtb3 + Entered build tracker: /private/tmp/pip-build-tracker-k4rcmtb3 + Created temporary directory: /private/tmp/pip-install-sabiqxhb + Created temporary directory: /private/tmp/pip-ephem-wheel-cache-c27hxbct + Processing $SRC_DIR + Added file://$SRC_DIR to build tracker '/private/tmp/pip-build-tracker-k4rcmtb3' + Running setup.py (path:$SRC_DIR/setup.py) egg_info for package from file://$SRC_DIR + Created temporary directory: /private/tmp/pip-pip-egg-info-0406583g + Preparing metadata (setup.py): started + Preparing metadata (setup.py): finished with status 'done' + Source in $SRC_DIR has version 4.2.21, which satisfies requirement PhiSpy==4.2.21 from file://$SRC_DIR + Removed PhiSpy==4.2.21 from file://$SRC_DIR from build tracker '/private/tmp/pip-build-tracker-k4rcmtb3' + Created temporary directory: /private/tmp/pip-unpack-ftp04rd6 + Building wheels for collected packages: PhiSpy + Created temporary directory: /private/tmp/pip-wheel-eyso9vyq + Building wheel for PhiSpy (setup.py): started + Destination directory: /private/tmp/pip-wheel-eyso9vyq + Building wheel for PhiSpy (setup.py): finished with status 'done' + Created wheel for PhiSpy: filename=PhiSpy-4.2.21-cp311-cp311-macosx_10_13_x86_64.whl size=19193361 sha256=2fd6b7c4708d36120a5a1c24c6e7cf4e0cb826c1bbdfa08be4f396c13a6b33b3 + Stored in directory: /private/tmp/pip-ephem-wheel-cache-c27hxbct/wheels/2a/82/cf/c866a05b78178153fa1ace983db9616900e7be463b1da03fca + Successfully built PhiSpy + Installing collected packages: PhiSpy + + changing mode of $PREFIX/bin/PhiSpy.py to 755 + changing mode of $PREFIX/bin/phispy to 755 + Successfully installed PhiSpy-4.2.21 + Removed build tracker: '/private/tmp/pip-build-tracker-k4rcmtb3' + + Resource usage statistics from building phispy: + Process count: 5 + CPU time: Sys=0:00:00.7, User=0:00:43.2 + Memory: 190.3M + Disk usage: 304.2K + Time elapsed: 0:00:48.4 + + + compiling .pyc files... + number of files: 120 +# Last 100 lines of the build log. diff --git a/recipes/phispy/meta.yaml b/recipes/phispy/meta.yaml index 38fb6789d6c53..a7d707cd0a82f 100644 --- a/recipes/phispy/meta.yaml +++ b/recipes/phispy/meta.yaml @@ -11,7 +11,7 @@ source: sha256: "1dc3ec45c15328577557908517254d8e4ba152416f0e6bbad39e965b86730e28" build: - number: 5 + number: 6 script: "{{ PYTHON }} -m pip install . --no-deps -vv " run_exports: - {{ pin_subpackage('phispy', max_pin="x") }} diff --git a/recipes/phyloacc/build_failure.osx-64.yaml b/recipes/phyloacc/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..87d350a41d6d6 --- /dev/null +++ b/recipes/phyloacc/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: e081ddfcb312d17f3886fad07d2492cab6b0e0716c61e66c83e271766d9ebfdf # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + In file included from src/PhyloAcc-GT/bpp_c.hpp:27: + /opt/mambaforge/envs/bioconda/conda-bld/phyloacc_1718294848149/_build_env/bin/../include/c/v1/set:741:30: warning: the specified comparator type does not provide a viable const call operator [-Wuser-defined-warnings] + static_assert(sizeof(__diagnose_non_const_comparator<_Key, _Compare>()), ""); + ^ + src/PhyloAcc-GT//genetree.cpp:316:37: note: in instantiation of member function 'std::set, Cmp>::~set' requested here + set, Cmp> tocoal; + ^ + /opt/mambaforge/envs/bioconda/conda-bld/phyloacc_1718294848149/_build_env/bin/../include/c/v1/__tree:994:5: note: from 'diagnose_if' attribute on '__diagnose_non_const_comparator, Cmp>': + _LIBCPP_DIAGNOSE_WARNING(!__invokable<_Compare const&, _Tp const&, _Tp const&>::value, + ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + /opt/mambaforge/envs/bioconda/conda-bld/phyloacc_1718294848149/_build_env/bin/../include/c/v1/__config:1322:58: note: expanded from macro '_LIBCPP_DIAGNOSE_WARNING' + # define _LIBCPP_DIAGNOSE_WARNING(...) __attribute__((__diagnose_if__(__VA_ARGS__, "warning"))) + ^ ~~~~~~~~~~~ + 7 warnings generated. + In file included from src/PhyloAcc-GT//main.cpp:26: + src/PhyloAcc-GT/bpp_c.hpp:223:13: warning: unused variable 'tot' [-Wunused-variable] + int tot = ceil((double)(GG - 15)/GG_block); + ^ + 1 warning generated. + dyld[53487]: Library not loaded: @rpath/libLLVM-16.dylib + Referenced from: <7C18778E-BF33-3AEA-A118-E46B35B5996F> /opt/mambaforge/envs/bioconda/pkgs/llvm-tools-16.0.6-hbedff68_3/bin/dsymutil + Reason: tried: '/opt/mambaforge/envs/bioconda/pkgs/llvm-tools-16.0.6-hbedff68_3/bin/../lib/libLLVM-16.dylib' (no such file), '/opt/mambaforge/envs/bioconda/pkgs/llvm-tools-16.0.6-hbedff68_3/bin/../lib/libLLVM-16.dylib' (no such file), '/opt/mambaforge/envs/bioconda/pkgs/llvm-tools-16.0.6-hbedff68_3/bin/../lib/libLLVM-16.dylib' (no such file), '/opt/mambaforge/envs/bioconda/pkgs/llvm-tools-16.0.6-hbedff68_3/bin/../lib/libLLVM-16.dylib' (no such file), '/usr/local/lib/libLLVM-16.dylib' (no such file), '/usr/lib/libLLVM-16.dylib' (no such file, not in dyld cache) + clang-16: error: unable to execute command: Abort trap: 6 + clang-16: error: dsymutil command failed due to signal (use -v to see invocation) + make: *** [Makefile:49: PhyloAcc-GT] Error 1 + Extracting download + Traceback (most recent call last): + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/phyloacc_1718294848149/work + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/phyloacc_1718294848149/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/phyloacc_1718294848149/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/phyloacc_1718294848149/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/phyloacc-2.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + CLANG=x86_64-apple-darwin13.4.0-clang + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/phyloacc-2.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + packages_from_this = build( + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/phyloacc_1718294848149/work/conda_build.sh']' returned non-zero exit status 2. + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/phyloacc-2.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/phyloacc-2.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + $CXX is [x86_64-apple-darwin13.4.0-clang] + $PREFIX is [$PREFIX] + $GSL_INCLUDE is [$PREFIX/include/] + $GSL_LIB is [$PREFIX/lib/] + x86_64-apple-darwin13.4.0-clang -Wall -g -O2 -std=c11 -I$PREFIX/include/ -L$PREFIX/lib/ src/PhyloAcc-ST//*.cpp -o PhyloAcc-ST -lgsl -lm -lgslcblas -larmadillo -fopenmp + x86_64-apple-darwin13.4.0-clang -Wall -g -O2 -std=c11 -I$PREFIX/include/ -L$PREFIX/lib/ src/PhyloAcc-GT//*.cpp -o PhyloAcc-GT -lgsl -lm -lgslcblas -larmadillo -fopenmp +# Last 100 lines of the build log. diff --git a/recipes/phyloacc/meta.yaml b/recipes/phyloacc/meta.yaml index 15715f0ae59af..5c9be1dcd5e59 100644 --- a/recipes/phyloacc/meta.yaml +++ b/recipes/phyloacc/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 skip: True # [py < 38] run_exports: - {{ pin_subpackage('phyloacc', max_pin="x") }} diff --git a/recipes/phylodm/meta.yaml b/recipes/phylodm/meta.yaml index 1e8eb986f0cd6..e7defd7b2b28e 100644 --- a/recipes/phylodm/meta.yaml +++ b/recipes/phylodm/meta.yaml @@ -12,7 +12,7 @@ source: build: skip: true # [py2k or py36] - number: 0 + number: 1 requirements: build: diff --git a/recipes/phynder/meta.yaml b/recipes/phynder/meta.yaml index e8c861e84d27f..43765ed243229 100644 --- a/recipes/phynder/meta.yaml +++ b/recipes/phynder/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 94d629d0c2e9085bfe9dbbe2c6302021ad81a00b3696696e103aa31db51d849f build: - number: 0 + number: 1 skip: True # [osx] run_exports: - {{ pin_subpackage('phynder', max_pin="x.x") }} @@ -47,4 +47,4 @@ about: mitochondrial genome phylogenies. extra: maintainers: - - jfy133 \ No newline at end of file + - jfy133 diff --git a/recipes/physlr/meta.yaml b/recipes/physlr/meta.yaml index d8d7a39283242..0e895a6db9285 100644 --- a/recipes/physlr/meta.yaml +++ b/recipes/physlr/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 5 + number: 6 source: url: https://github.com/bcgsc/{{ name|lower }}/releases/download/v{{ version }}/{{ name|lower }}-{{ version }}.tar.gz diff --git a/recipes/plek/meta.yaml b/recipes/plek/meta.yaml index 11edcfec311d0..7968a36bb11c0 100644 --- a/recipes/plek/meta.yaml +++ b/recipes/plek/meta.yaml @@ -13,7 +13,7 @@ source: - dos2unix.patch build: - number: 7 + number: 8 skip: True # [osx] requirements: diff --git a/recipes/plinkio/meta.yaml b/recipes/plinkio/meta.yaml index b6c9593b78d85..c5dc1227beb95 100644 --- a/recipes/plinkio/meta.yaml +++ b/recipes/plinkio/meta.yaml @@ -11,7 +11,7 @@ source: build: script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation - number: 0 + number: 1 run_exports: {{ pin_subpackage('plinkio', max_pin="x.x") }} diff --git a/recipes/plncpro/meta.yaml b/recipes/plncpro/meta.yaml index 4dcd444085aca..8b2fbd0d87f53 100644 --- a/recipes/plncpro/meta.yaml +++ b/recipes/plncpro/meta.yaml @@ -10,7 +10,7 @@ source: sha256: "78537a49a5b7ec082af8a3c043d9429f063c6197b32903d7f503c6ee3b289400" build: - number: 5 + number: 6 skip: True # [py2k] entry_points: - plncpro = plncpro.__main__:main diff --git a/recipes/popgen-entropy/build_failure.osx-64.yaml b/recipes/popgen-entropy/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..8809fe81648ed --- /dev/null +++ b/recipes/popgen-entropy/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: de4fe897707e7ddcc2b1ec439b277e821fd895de2934641bb5fd2adb8b315794 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/popgen-entropy-2.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/popgen-entropy-2.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + checking for a BSD-compatible install... /usr/bin/install -c + checking whether build environment is sane... yes + checking for a race-free mkdir -p... ./install-sh -c -d + checking for gawk... no + checking for mawk... no + checking for nawk... no + checking for awk... awk + checking whether make sets $(MAKE)... yes + checking whether make supports nested variables... yes + Testing for gsl + checking whether make supports the include directive... yes (GNU style) + checking for x86_64-apple-darwin13.4.0-gcc... x86_64-apple-darwin13.4.0-clang + checking whether the C compiler works... yes + checking for C compiler default output file name... a.out + checking for suffix of executables... + checking whether we are cross compiling... no + checking for suffix of object files... o + checking whether the compiler supports GNU C... yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes + checking for x86_64-apple-darwin13.4.0-clang option to enable C11 features... none needed + checking whether x86_64-apple-darwin13.4.0-clang understands -c and -o together... yes + checking dependency style of x86_64-apple-darwin13.4.0-clang... gcc3 + checking for cos in -lm... yes + checking for cblas_dgemm in -lgslcblas... yes + checking for gsl_blas_dgemm in -lgsl... yes + Testing for a C compiler + checking whether the compiler supports GNU C... yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes + checking for x86_64-apple-darwin13.4.0-clang option to enable C11 features... none needed + checking dependency style of x86_64-apple-darwin13.4.0-clang... gcc3 + checking whether x86_64-apple-darwin13.4.0-clang understands -c and -o together... yes + checking how to run the C preprocessor... x86_64-apple-darwin13.4.0-clang -E + Setting language to C + Setting CXXFLAGS -DGSL_RANGE_CHECK=0 + Testing for iostream + checking for stdio.h... yes + checking for stdlib.h... yes + checking for string.h... yes + checking for inttypes.h... yes + checking for stdint.h... yes + checking for strings.h... yes + checking for sys/stat.h... yes + checking for sys/types.h... yes + checking for unistd.h... yes + checking for iostream... yes + Testing for iomanip + checking for iomanip... yes + Testing for cmath + checking for cmath... yes + Testing for fstream + checking for fstream... yes + Testing for sstream + checking for sstream... yes + Testing for functions + checking for pow... yes + checking for sqrt... yes + Testing for float.h, sting.h, & unistd.hrm + checking for float.h... yes + checking for string.h... (cached) yes + checking for unistd.h... (cached) yes + Testing for STDBOOL + checking for _Bool... no + checking for stdbool.h that conforms to C99... yes + Testing for TYPE_SIZE_T + checking for size_t... yes + Creating Makefile + Creating config.h, config.h.in, and config.status + checking that generated files are newer than configure... done + configure: creating ./config.status + config.status: creating Makefile + config.status: creating config.h + config.status: executing depfiles commands + make all-am + make[1]: Entering directory '$SRC_DIR' + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/popgen-entropy-2.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -DGSL_RANGE_CHECK=0 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.C + mv -f .deps/main.Tpo .deps/main.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/popgen-entropy-2.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -DGSL_RANGE_CHECK=0 -MT func.o -MD -MP -MF .deps/func.Tpo -c -o func.o func.C + make[1]: Leaving directory '$SRC_DIR' +# Last 100 lines of the build log. diff --git a/recipes/popgen-entropy/meta.yaml b/recipes/popgen-entropy/meta.yaml index 0806d5fe186fd..45d462a230b86 100755 --- a/recipes/popgen-entropy/meta.yaml +++ b/recipes/popgen-entropy/meta.yaml @@ -9,7 +9,7 @@ source: sha1: d4e4227e5ca89223b3ea09744bd15ffa884906e8 build: - number: 8 + number: 9 requirements: build: diff --git a/recipes/poppunk/meta.yaml b/recipes/poppunk/meta.yaml index e596450103070..88a2bf49f541e 100644 --- a/recipes/poppunk/meta.yaml +++ b/recipes/poppunk/meta.yaml @@ -10,7 +10,7 @@ source: sha256: d587b77c6b38e73035f9bd1b5cfcea9a048714112391a77139bb52e0a160b968 build: - number: 0 + number: 1 skip: true # [py < 38] script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed --no-cache-dir -vvv" entry_points: diff --git a/recipes/porechop/meta.yaml b/recipes/porechop/meta.yaml index 63fb7d0a684cf..a20330c325fc0 100644 --- a/recipes/porechop/meta.yaml +++ b/recipes/porechop/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 44b499157d933be43f702cec198d1d693dcb9276e3c545669be63c2612493299 build: - number: 6 + number: 7 skip: True # [py27] entry_points: - porechop = porechop.porechop:main diff --git a/recipes/porechop_abi/build_failure.osx-64.yaml b/recipes/porechop_abi/build_failure.osx-64.yaml index 557a2b900871f..4fde06acbf4ed 100644 --- a/recipes/porechop_abi/build_failure.osx-64.yaml +++ b/recipes/porechop_abi/build_failure.osx-64.yaml @@ -1,104 +1,104 @@ -recipe_sha: 15ee7a7efb68d4c55cfb23d792f3e458ff1599e54ed802268dbd6dbe8f13b580 # The commit at which this recipe failed to build. +recipe_sha: 073726cff6842c0b9a5f40952bce9a0c41e3b02572a0e9910866971a5cd36abe # The hash of the recipe's meta.yaml at which this recipe failed to build. skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. log: |2- - - __file__ = %r - sys.argv[0] = __file__ - - if os.path.exists(__file__): - filename = __file__ - with tokenize.open(__file__) as f: - setup_py_code = f.read() - else: - filename = "" - setup_py_code = "from setuptools import setup; setup()" - - exec(compile(setup_py_code, filename, "exec")) - '"'"''"'"''"'"' % ('"'"'/opt/mambaforge/envs/bioconda/conda-bld/porechop_abi_1685393517776/work/setup.py'"'"',), "", "exec"))' bdist_wheel -d /private/tmp/pip-wheel-xaac9u1n - cwd: /opt/mambaforge/envs/bioconda/conda-bld/porechop_abi_1685393517776/work/ - ERROR: Failed building wheel for Porechop-ABI - Running command python setup.py clean - Building wheel for Porechop-ABI (setup.py): finished with status 'error' - Running setup.py clean for Porechop-ABI - usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] - or: setup.py --help [cmd1 cmd2 ...] - or: setup.py --help-commands - or: setup.py cmd --help - - error: option --all not recognized - error: subprocess-exited-with-error - - python setup.py clean did not run successfully. - exit code: 1 - > See above for output. - - note: This error originates from a subprocess, and is likely not a problem with pip. - full command: /opt/mambaforge/envs/bioconda/conda-bld/porechop_abi_1685393517776/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/bin/python -u -c ' - exec(compile('"'"''"'"''"'"' - # This is -- a caller that pip uses to run setup.py - # - # - It imports setuptools before invoking setup.py, to enable projects that directly - # import from distutils.core to work with newer packaging standards. - # - It provides a clear error message when setuptools is not installed. - # - It sets sys.argv[0] to the underlying setup.py, when invoking setup.py so - # setuptools doesn'"'"'t think the script is -c. This avoids the following warning: - # manifest_maker: standard file '"'"'-c'"'"' not found". - # - It generates a shim setup.py, for handling setup.cfg-only projects. - import os, sys, tokenize - - try: - import setuptools - except ImportError as error: - print( - Failed to build Porechop-ABI - "ERROR: Can not execute setup.py since setuptools is not available in " - "the build environment.", - file=sys.stderr, - ) - sys.exit(1) - - __file__ = %r - sys.argv[0] = __file__ - - if os.path.exists(__file__): - filename = __file__ - with tokenize.open(__file__) as f: - setup_py_code = f.read() - else: - filename = "" - setup_py_code = "from setuptools import setup; setup()" - - exec(compile(setup_py_code, filename, "exec")) - '"'"''"'"''"'"' % ('"'"'/opt/mambaforge/envs/bioconda/conda-bld/porechop_abi_1685393517776/work/setup.py'"'"',), "", "exec"))' clean --all - cwd: /opt/mambaforge/envs/bioconda/conda-bld/porechop_abi_1685393517776/work - ERROR: Failed cleaning build dir for Porechop-ABI - ERROR: Could not build wheels for Porechop-ABI, which is required to install pyproject.toml-based projects + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/porechop_abi_1717520240785/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/porechop_abi_1717520240785/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/porechop_abi_1717520240785/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/porechop_abi-0.5.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/porechop_abi_1717520240785/work/conda_build.sh']' returned non-zero exit status 1. + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/porechop_abi-0.5.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/porechop_abi-0.5.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/porechop_abi-0.5.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + Using pip 24.0 from $PREFIX/lib/python3.11/site-packages/pip (python 3.11) + Non-user install because user site-packages disabled + Ignoring indexes: https://pypi.org/simple + Created temporary directory: /private/tmp/pip-build-tracker-1pl8dy66 + Initialized build tracking at /private/tmp/pip-build-tracker-1pl8dy66 + Created build tracker: /private/tmp/pip-build-tracker-1pl8dy66 + Entered build tracker: /private/tmp/pip-build-tracker-1pl8dy66 + Created temporary directory: /private/tmp/pip-install-qlg4jful + Created temporary directory: /private/tmp/pip-ephem-wheel-cache-2judixeb + Processing $SRC_DIR + Added file://$SRC_DIR to build tracker '/private/tmp/pip-build-tracker-1pl8dy66' + Running setup.py (path:$SRC_DIR/setup.py) egg_info for package from file://$SRC_DIR + Created temporary directory: /private/tmp/pip-pip-egg-info-vx9saxas + Preparing metadata (setup.py): started + Preparing metadata (setup.py): finished with status 'done' + Source in $SRC_DIR has version 0.5.0, which satisfies requirement Porechop_ABI==0.5.0 from file://$SRC_DIR + Removed Porechop_ABI==0.5.0 from file://$SRC_DIR from build tracker '/private/tmp/pip-build-tracker-1pl8dy66' + Created temporary directory: /private/tmp/pip-unpack-04191cw_ + Building wheels for collected packages: Porechop_ABI + Created temporary directory: /private/tmp/pip-wheel-vn1qtfkb + Building wheel for Porechop_ABI (setup.py): started + Destination directory: /private/tmp/pip-wheel-vn1qtfkb + Building wheel for Porechop_ABI (setup.py): finished with status 'error' + Running setup.py clean for Porechop_ABI + Failed to build Porechop_ABI Exception information: Traceback (most recent call last): - File "$PREFIX/lib/python3.10/site-packages/pip/_internal/cli/base_command.py", line 169, in exc_logging_wrapper + File "$PREFIX/lib/python3.11/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper status = run_func(*args) - File "$PREFIX/lib/python3.10/site-packages/pip/_internal/cli/req_command.py", line 248, in wrapper + ^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.11/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper return func(self, options, args) - File "$PREFIX/lib/python3.10/site-packages/pip/_internal/commands/install.py", line 426, in run + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.11/site-packages/pip/_internal/commands/install.py", line 429, in run raise InstallationError( - pip._internal.exceptions.InstallationError: Could not build wheels for Porechop-ABI, which is required to install pyproject.toml-based projects - Removed build tracker: '/private/tmp/pip-build-tracker-v27hypz0' - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/porechop_abi_1685393517776/work/conda_build.sh']' returned non-zero exit status 1. + pip._internal.exceptions.InstallationError: Could not build wheels for Porechop_ABI, which is required to install pyproject.toml-based projects + Removed build tracker: '/private/tmp/pip-build-tracker-1pl8dy66' # Last 100 lines of the build log. diff --git a/recipes/porechop_abi/meta.yaml b/recipes/porechop_abi/meta.yaml index 3f20ec56866c6..cc54939097ef1 100644 --- a/recipes/porechop_abi/meta.yaml +++ b/recipes/porechop_abi/meta.yaml @@ -9,7 +9,7 @@ source: sha256: b5252b8fc26f750a6625353fe02fdf44c9a58bc9439933921f177735eac07ca3 build: - number: 2 + number: 3 skip: True # [py < 37] script: {{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv entry_points: diff --git a/recipes/portcullis/build_failure.linux-64.yaml b/recipes/portcullis/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..775586c1a4271 --- /dev/null +++ b/recipes/portcullis/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: d0aaa30ccc60f2562527112879403c0e6814363d9d6268da699dd6635a12b072 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/DataChar.cpp -o src/libranger_la-DataChar.o >/dev/null 2>&1 + /bin/sh ./libtool --tag=CXX --mode=compile $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c -o src/libranger_la-Data.lo test -f 'src/Data.cpp' || echo './'src/Data.cpp + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/Data.cpp -fPIC -DPIC -o src/.libs/libranger_la-Data.o + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/Data.cpp -o src/libranger_la-Data.o >/dev/null 2>&1 + /bin/sh ./libtool --tag=CXX --mode=compile $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c -o src/libranger_la-DataDouble.lo test -f 'src/DataDouble.cpp' || echo './'src/DataDouble.cpp + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/DataDouble.cpp -fPIC -DPIC -o src/.libs/libranger_la-DataDouble.o + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/DataDouble.cpp -o src/libranger_la-DataDouble.o >/dev/null 2>&1 + /bin/sh ./libtool --tag=CXX --mode=compile $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c -o src/libranger_la-DataFloat.lo test -f 'src/DataFloat.cpp' || echo './'src/DataFloat.cpp + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/DataFloat.cpp -fPIC -DPIC -o src/.libs/libranger_la-DataFloat.o + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/DataFloat.cpp -o src/libranger_la-DataFloat.o >/dev/null 2>&1 + /bin/sh ./libtool --tag=CXX --mode=compile $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c -o src/libranger_la-ForestClassification.lo test -f 'src/ForestClassification.cpp' || echo './'src/ForestClassification.cpp + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/ForestClassification.cpp -fPIC -DPIC -o src/.libs/libranger_la-ForestClassification.o + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/ForestClassification.cpp -o src/libranger_la-ForestClassification.o >/dev/null 2>&1 + /bin/sh ./libtool --tag=CXX --mode=compile $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c -o src/libranger_la-Forest.lo test -f 'src/Forest.cpp' || echo './'src/Forest.cpp + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/Forest.cpp -fPIC -DPIC -o src/.libs/libranger_la-Forest.o + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/Forest.cpp -o src/libranger_la-Forest.o >/dev/null 2>&1 + /bin/sh ./libtool --tag=CXX --mode=compile $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c -o src/libranger_la-ForestProbability.lo test -f 'src/ForestProbability.cpp' || echo './'src/ForestProbability.cpp + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/ForestProbability.cpp -fPIC -DPIC -o src/.libs/libranger_la-ForestProbability.o + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/ForestProbability.cpp -o src/libranger_la-ForestProbability.o >/dev/null 2>&1 + /bin/sh ./libtool --tag=CXX --mode=compile $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c -o src/libranger_la-ForestRegression.lo test -f 'src/ForestRegression.cpp' || echo './'src/ForestRegression.cpp + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/ForestRegression.cpp -fPIC -DPIC -o src/.libs/libranger_la-ForestRegression.o + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/ForestRegression.cpp -o src/libranger_la-ForestRegression.o >/dev/null 2>&1 + /bin/sh ./libtool --tag=CXX --mode=compile $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c -o src/libranger_la-ForestSurvival.lo test -f 'src/ForestSurvival.cpp' || echo './'src/ForestSurvival.cpp + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/ForestSurvival.cpp -fPIC -DPIC -o src/.libs/libranger_la-ForestSurvival.o + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/ForestSurvival.cpp -o src/libranger_la-ForestSurvival.o >/dev/null 2>&1 + /bin/sh ./libtool --tag=CXX --mode=compile $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c -o src/libranger_la-TreeClassification.lo test -f 'src/TreeClassification.cpp' || echo './'src/TreeClassification.cpp + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/TreeClassification.cpp -fPIC -DPIC -o src/.libs/libranger_la-TreeClassification.o + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/TreeClassification.cpp -o src/libranger_la-TreeClassification.o >/dev/null 2>&1 + /bin/sh ./libtool --tag=CXX --mode=compile $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c -o src/libranger_la-Tree.lo test -f 'src/Tree.cpp' || echo './'src/Tree.cpp + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/Tree.cpp -fPIC -DPIC -o src/.libs/libranger_la-Tree.o + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/Tree.cpp -o src/libranger_la-Tree.o >/dev/null 2>&1 + /bin/sh ./libtool --tag=CXX --mode=compile $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c -o src/libranger_la-TreeProbability.lo test -f 'src/TreeProbability.cpp' || echo './'src/TreeProbability.cpp + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/TreeProbability.cpp -fPIC -DPIC -o src/.libs/libranger_la-TreeProbability.o + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/TreeProbability.cpp -o src/libranger_la-TreeProbability.o >/dev/null 2>&1 + /bin/sh ./libtool --tag=CXX --mode=compile $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c -o src/libranger_la-TreeRegression.lo test -f 'src/TreeRegression.cpp' || echo './'src/TreeRegression.cpp + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/TreeRegression.cpp -fPIC -DPIC -o src/.libs/libranger_la-TreeRegression.o + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/TreeRegression.cpp -o src/libranger_la-TreeRegression.o >/dev/null 2>&1 + /bin/sh ./libtool --tag=CXX --mode=compile $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c -o src/libranger_la-TreeSurvival.lo test -f 'src/TreeSurvival.cpp' || echo './'src/TreeSurvival.cpp + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/TreeSurvival.cpp -fPIC -DPIC -o src/.libs/libranger_la-TreeSurvival.o + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/TreeSurvival.cpp -o src/libranger_la-TreeSurvival.o >/dev/null 2>&1 + /bin/sh ./libtool --tag=CXX --mode=compile $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c -o src/libranger_la-utility.lo test -f 'src/utility.cpp' || echo './'src/utility.cpp + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/utility.cpp -fPIC -DPIC -o src/.libs/libranger_la-utility.o + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -isystem ./include -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c src/utility.cpp -o src/libranger_la-utility.o >/dev/null 2>&1 + /bin/sh ./libtool --tag=CXX --mode=link $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -Wall -Wextra -Wno-unused-parameter -g -g3 -gdwarf-4 -I$PREFIX/include -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/portcullis-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -version-info 3:0:3 -L$PREFIX/lib -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -o libranger.la -rpath $PREFIX/lib src/libranger_la-DataChar.lo src/libranger_la-Data.lo src/libranger_la-DataDouble.lo src/libranger_la-DataFloat.lo src/libranger_la-ForestClassification.lo src/libranger_la-Forest.lo src/libranger_la-ForestProbability.lo src/libranger_la-ForestRegression.lo src/libranger_la-ForestSurvival.lo src/libranger_la-TreeClassification.lo src/libranger_la-Tree.lo src/libranger_la-TreeProbability.lo src/libranger_la-TreeRegression.lo src/libranger_la-TreeSurvival.lo src/libranger_la-utility.lo -lm $PREFIX/lib/libz.a + + *** Warning: Linking the shared library libranger.la against the + *** static library $PREFIX/lib/libz.a is not portable! + libtool: link: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -fPIC -DPIC -shared -nostdlib $BUILD_PREFIX/bin/../x86_64-conda-linux-gnu/sysroot/usr/lib/../lib/crti.o $BUILD_PREFIX/bin/../lib/gcc/x86_64-conda-linux-gnu/12.3.0/crtbeginS.o -Wl,--as-needed src/.libs/libranger_la-DataChar.o src/.libs/libranger_la-Data.o src/.libs/libranger_la-DataDouble.o src/.libs/libranger_la-DataFloat.o src/.libs/libranger_la-ForestClassification.o src/.libs/libranger_la-Forest.o src/.libs/libranger_la-ForestProbability.o src/.libs/libranger_la-ForestRegression.o src/.libs/libranger_la-ForestSurvival.o src/.libs/libranger_la-TreeClassification.o src/.libs/libranger_la-Tree.o src/.libs/libranger_la-TreeProbability.o src/.libs/libranger_la-TreeRegression.o src/.libs/libranger_la-TreeSurvival.o src/.libs/libranger_la-utility.o -L$PREFIX/lib $PREFIX/lib/libz.a -L$BUILD_PREFIX/bin/../lib/gcc/x86_64-conda-linux-gnu/12.3.0 -L$BUILD_PREFIX/bin/../lib/gcc -L$BUILD_PREFIX/bin/../lib/gcc/x86_64-conda-linux-gnu/12.3.0/../../../../x86_64-conda-linux-gnu/lib/../lib -L$BUILD_PREFIX/bin/../lib/gcc/x86_64-conda-linux-gnu/12.3.0/../../../../lib -L$BUILD_PREFIX/bin/../x86_64-conda-linux-gnu/sysroot/lib/../lib -L$BUILD_PREFIX/bin/../x86_64-conda-linux-gnu/sysroot/usr/lib/../lib -L$BUILD_PREFIX/bin/../lib/gcc/x86_64-conda-linux-gnu/12.3.0/../../../../x86_64-conda-linux-gnu/lib -L$BUILD_PREFIX/bin/../lib/gcc/x86_64-conda-linux-gnu/12.3.0/../../.. -L$BUILD_PREFIX/bin/../x86_64-conda-linux-gnu/sysroot/lib -L$BUILD_PREFIX/bin/../x86_64-conda-linux-gnu/sysroot/usr/lib -lstdc -lm -lc -lgcc_s $BUILD_PREFIX/bin/../lib/gcc/x86_64-conda-linux-gnu/12.3.0/crtendS.o $BUILD_PREFIX/bin/../x86_64-conda-linux-gnu/sysroot/usr/lib/../lib/crtn.o -g -g3 -gdwarf-4 -march=nocona -mtune=haswell -fstack-protector-strong -O2 -Wl,-O2 -Wl,--sort-common -Wl,-z -Wl,relro -Wl,-z -Wl,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath -Wl,$PREFIX/lib -Wl,-rpath-link -Wl,$PREFIX/lib -Wl,-soname -Wl,libranger.so.0 -o .libs/libranger.so.0.3.0 + libtool: link: (cd ".libs" && rm -f "libranger.so.0" && ln -s "libranger.so.0.3.0" "libranger.so.0") + libtool: link: (cd ".libs" && rm -f "libranger.so" && ln -s "libranger.so.0.3.0" "libranger.so") + libtool: link: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar cr .libs/libranger.a $PREFIX/lib/libz.a src/libranger_la-DataChar.o src/libranger_la-Data.o src/libranger_la-DataDouble.o src/libranger_la-DataFloat.o src/libranger_la-ForestClassification.o src/libranger_la-Forest.o src/libranger_la-ForestProbability.o src/libranger_la-ForestRegression.o src/libranger_la-ForestSurvival.o src/libranger_la-TreeClassification.o src/libranger_la-Tree.o src/libranger_la-TreeProbability.o src/libranger_la-TreeRegression.o src/libranger_la-TreeSurvival.o src/libranger_la-utility.o + libtool: link: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib .libs/libranger.a + libtool: link: ( cd ".libs" && rm -f "libranger.la" && ln -s "../libranger.la" "libranger.la" ) + make[3]: Leaving directory '$SRC_DIR/deps/ranger-0.3.8' + make[2]: Leaving directory '$SRC_DIR/deps/ranger-0.3.8' + Making all in lib + make[2]: Entering directory '$SRC_DIR/lib' + /bin/sh ../libtool --tag=CXX --mode=compile $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -I../deps/htslib-1.3 -I../deps/ranger-0.3.8/include -I../lib/include -DDATADIR=\"$PREFIX/share\" -I$PREFIX/include/python3.9 -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -m64 -Wno-unused-function -Wno-unused-variable -Wno-ignored-qualifiers -Wall -fPIC -g -O2 -std=c11 -c -o src/libportcullis_la-bam_master.lo test -f 'src/bam_master.cc' || echo './'src/bam_master.cc + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -I../deps/htslib-1.3 -I../deps/ranger-0.3.8/include -I../lib/include -DDATADIR=\"$PREFIX/share\" -I$PREFIX/include/python3.9 -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -m64 -Wno-unused-function -Wno-unused-variable -Wno-ignored-qualifiers -Wall -fPIC -g -O2 -std=c11 -c src/bam_master.cc -fPIC -DPIC -o src/.libs/libportcullis_la-bam_master.o + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -I../deps/htslib-1.3 -I../deps/ranger-0.3.8/include -I../lib/include -DDATADIR=\"$PREFIX/share\" -I$PREFIX/include/python3.9 -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -m64 -Wno-unused-function -Wno-unused-variable -Wno-ignored-qualifiers -Wall -fPIC -g -O2 -std=c11 -c src/bam_master.cc -o src/libportcullis_la-bam_master.o >/dev/null 2>&1 + /bin/sh ../libtool --tag=CXX --mode=compile $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -I../deps/htslib-1.3 -I../deps/ranger-0.3.8/include -I../lib/include -DDATADIR=\"$PREFIX/share\" -I$PREFIX/include/python3.9 -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -m64 -Wno-unused-function -Wno-unused-variable -Wno-ignored-qualifiers -Wall -fPIC -g -O2 -std=c11 -c -o src/libportcullis_la-bam_alignment.lo test -f 'src/bam_alignment.cc' || echo './'src/bam_alignment.cc + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -I../deps/htslib-1.3 -I../deps/ranger-0.3.8/include -I../lib/include -DDATADIR=\"$PREFIX/share\" -I$PREFIX/include/python3.9 -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -m64 -Wno-unused-function -Wno-unused-variable -Wno-ignored-qualifiers -Wall -fPIC -g -O2 -std=c11 -c src/bam_alignment.cc -fPIC -DPIC -o src/.libs/libportcullis_la-bam_alignment.o + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -I../deps/htslib-1.3 -I../deps/ranger-0.3.8/include -I../lib/include -DDATADIR=\"$PREFIX/share\" -I$PREFIX/include/python3.9 -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -m64 -Wno-unused-function -Wno-unused-variable -Wno-ignored-qualifiers -Wall -fPIC -g -O2 -std=c11 -c src/bam_alignment.cc -o src/libportcullis_la-bam_alignment.o >/dev/null 2>&1 + /bin/sh ../libtool --tag=CXX --mode=compile $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -I../deps/htslib-1.3 -I../deps/ranger-0.3.8/include -I../lib/include -DDATADIR=\"$PREFIX/share\" -I$PREFIX/include/python3.9 -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -m64 -Wno-unused-function -Wno-unused-variable -Wno-ignored-qualifiers -Wall -fPIC -g -O2 -std=c11 -c -o src/libportcullis_la-bam_reader.lo test -f 'src/bam_reader.cc' || echo './'src/bam_reader.cc + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -I../deps/htslib-1.3 -I../deps/ranger-0.3.8/include -I../lib/include -DDATADIR=\"$PREFIX/share\" -I$PREFIX/include/python3.9 -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -m64 -Wno-unused-function -Wno-unused-variable -Wno-ignored-qualifiers -Wall -fPIC -g -O2 -std=c11 -c src/bam_reader.cc -fPIC -DPIC -o src/.libs/libportcullis_la-bam_reader.o + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -I../deps/htslib-1.3 -I../deps/ranger-0.3.8/include -I../lib/include -DDATADIR=\"$PREFIX/share\" -I$PREFIX/include/python3.9 -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -m64 -Wno-unused-function -Wno-unused-variable -Wno-ignored-qualifiers -Wall -fPIC -g -O2 -std=c11 -c src/bam_reader.cc -o src/libportcullis_la-bam_reader.o >/dev/null 2>&1 + /bin/sh ../libtool --tag=CXX --mode=compile $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -I../deps/htslib-1.3 -I../deps/ranger-0.3.8/include -I../lib/include -DDATADIR=\"$PREFIX/share\" -I$PREFIX/include/python3.9 -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -m64 -Wno-unused-function -Wno-unused-variable -Wno-ignored-qualifiers -Wall -fPIC -g -O2 -std=c11 -c -o src/libportcullis_la-bam_writer.lo test -f 'src/bam_writer.cc' || echo './'src/bam_writer.cc + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -I../deps/htslib-1.3 -I../deps/ranger-0.3.8/include -I../lib/include -DDATADIR=\"$PREFIX/share\" -I$PREFIX/include/python3.9 -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -m64 -Wno-unused-function -Wno-unused-variable -Wno-ignored-qualifiers -Wall -fPIC -g -O2 -std=c11 -c src/bam_writer.cc -fPIC -DPIC -o src/.libs/libportcullis_la-bam_writer.o + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -I../deps/htslib-1.3 -I../deps/ranger-0.3.8/include -I../lib/include -DDATADIR=\"$PREFIX/share\" -I$PREFIX/include/python3.9 -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -m64 -Wno-unused-function -Wno-unused-variable -Wno-ignored-qualifiers -Wall -fPIC -g -O2 -std=c11 -c src/bam_writer.cc -o src/libportcullis_la-bam_writer.o >/dev/null 2>&1 + /bin/sh ../libtool --tag=CXX --mode=compile $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -I../deps/htslib-1.3 -I../deps/ranger-0.3.8/include -I../lib/include -DDATADIR=\"$PREFIX/share\" -I$PREFIX/include/python3.9 -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -m64 -Wno-unused-function -Wno-unused-variable -Wno-ignored-qualifiers -Wall -fPIC -g -O2 -std=c11 -c -o src/libportcullis_la-depth_parser.lo test -f 'src/depth_parser.cc' || echo './'src/depth_parser.cc + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -I../deps/htslib-1.3 -I../deps/ranger-0.3.8/include -I../lib/include -DDATADIR=\"$PREFIX/share\" -I$PREFIX/include/python3.9 -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -m64 -Wno-unused-function -Wno-unused-variable -Wno-ignored-qualifiers -Wall -fPIC -g -O2 -std=c11 -c src/depth_parser.cc -fPIC -DPIC -o src/.libs/libportcullis_la-depth_parser.o + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -I../deps/htslib-1.3 -I../deps/ranger-0.3.8/include -I../lib/include -DDATADIR=\"$PREFIX/share\" -I$PREFIX/include/python3.9 -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -m64 -Wno-unused-function -Wno-unused-variable -Wno-ignored-qualifiers -Wall -fPIC -g -O2 -std=c11 -c src/depth_parser.cc -o src/libportcullis_la-depth_parser.o >/dev/null 2>&1 + /bin/sh ../libtool --tag=CXX --mode=compile $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -I../deps/htslib-1.3 -I../deps/ranger-0.3.8/include -I../lib/include -DDATADIR=\"$PREFIX/share\" -I$PREFIX/include/python3.9 -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -m64 -Wno-unused-function -Wno-unused-variable -Wno-ignored-qualifiers -Wall -fPIC -g -O2 -std=c11 -c -o src/libportcullis_la-genome_mapper.lo test -f 'src/genome_mapper.cc' || echo './'src/genome_mapper.cc + libtool: compile: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -I../deps/htslib-1.3 -I../deps/ranger-0.3.8/include -I../lib/include -DDATADIR=\"$PREFIX/share\" -I$PREFIX/include/python3.9 -I$PREFIX/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -m64 -Wno-unused-function -Wno-unused-variable -Wno-ignored-qualifiers -Wall -fPIC -g -O2 -std=c11 -c src/genome_mapper.cc -fPIC -DPIC -o src/.libs/libportcullis_la-genome_mapper.o + In file included from src/genome_mapper.cc:39: + ../lib/include/portcullis/bam/genome_mapper.hpp: In member function 'boost::filesystem::path portcullis::bam::GenomeMapper::getFastaIndexFile() const': + ../lib/include/portcullis/bam/genome_mapper.hpp:82:74: error: 'const class boost::filesystem::path' has no member named 'leaf' + 82 | return path(genomeFile.parent_path()) /= path(genomeFile.leaf().string() ".fai"); + | ^~~~ + make[2]: *** [Makefile:692: src/libportcullis_la-genome_mapper.lo] Error 1 + make[2]: Leaving directory '$SRC_DIR/lib' + make[1]: *** [Makefile:619: all-recursive] Error 1 + make[1]: Leaving directory '$SRC_DIR' + make: *** [Makefile:478: all] Error 2 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/portcullis_1717848438558/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/portcullis/meta.yaml b/recipes/portcullis/meta.yaml index a6915e678b738..a716dec5892ff 100644 --- a/recipes/portcullis/meta.yaml +++ b/recipes/portcullis/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 9183c4e8108af1e813dbc35e537e16e5d0e13f53ed4c0a36b182c3f8bfcea438 build: - number: 1 + number: 2 skip: True # [osx or py27 or py == 310] requirements: diff --git a/recipes/ppanggolin/build_failure.osx-64.yaml b/recipes/ppanggolin/build_failure.osx-64.yaml deleted file mode 100644 index 20d757b107b46..0000000000000 --- a/recipes/ppanggolin/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 74092adcf87b13ab535378c5bc564efc75087fb2758fc115517175e5e32015f0 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - ~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~ - ppanggolin/nem/NEM/nem_exe.c:1165:18: error: incompatible pointer to integer conversion assigning to 'int' from 'void *' [-Wint-conversion] - ErrinfoP->Kr = NULL ; - ^ ~~~~ - 8 warnings and 1 error generated. - error: command '/opt/mambaforge/envs/bioconda/conda-bld/ppanggolin_1685395858204/_build_env/bin/x86_64-apple-darwin13.4.0-clang' failed with exit code 1 - error: subprocess-exited-with-error - - python setup.py bdist_wheel did not run successfully. - exit code: 1 - > See above for output. - - note: This error originates from a subprocess, and is likely not a problem with pip. - full command: /opt/mambaforge/envs/bioconda/conda-bld/ppanggolin_1685395858204/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/python -u -c ' - exec(compile('"'"''"'"''"'"' - # This is -- a caller that pip uses to run setup.py - # - # - It imports setuptools before invoking setup.py, to enable projects that directly - # import from distutils.core to work with newer packaging standards. - # - It provides a clear error message when setuptools is not installed. - # - It sets sys.argv[0] to the underlying setup.py, when invoking setup.py so - # setuptools doesn'"'"'t think the script is -c. This avoids the following warning: - Building wheel for ppanggolin (setup.py): finished with status 'error' - Running setup.py clean for ppanggolin - # manifest_maker: standard file '"'"'-c'"'"' not found". - # - It generates a shim setup.py, for handling setup.cfg-only projects. - import os, sys, tokenize - - try: - import setuptools - except ImportError as error: - print( - "ERROR: Can not execute setup.py since setuptools is not available in " - "the build environment.", - file=sys.stderr, - ) - sys.exit(1) - - __file__ = %r - sys.argv[0] = __file__ - - if os.path.exists(__file__): - filename = __file__ - with tokenize.open(__file__) as f: - setup_py_code = f.read() - else: - filename = "" - setup_py_code = "from setuptools import setup; setup()" - - exec(compile(setup_py_code, filename, "exec")) - '"'"''"'"''"'"' % ('"'"'/opt/mambaforge/envs/bioconda/conda-bld/ppanggolin_1685395858204/work/setup.py'"'"',), "", "exec"))' bdist_wheel -d /private/tmp/pip-wheel-fwjzgj1p - cwd: /opt/mambaforge/envs/bioconda/conda-bld/ppanggolin_1685395858204/work/ - ERROR: Failed building wheel for ppanggolin - Running command python setup.py clean - /opt/mambaforge/envs/bioconda/conda-bld/ppanggolin_1685395858204/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.9/site-packages/setuptools/__init__.py:84: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated. - !! - - ******************************************************************************** - Requirements should be satisfied by a PEP 517 installer. - If you are using pip, you can try pip install --use-pep517. - ******************************************************************************** - - !! - dist.fetch_build_eggs(dist.setup_requires) - running clean - removing 'build/temp.macosx-10.9-x86_64-cpython-39' (and everything under it) - removing 'build/lib.macosx-10.9-x86_64-cpython-39' (and everything under it) - 'build/bdist.macosx-10.9-x86_64' does not exist -- can't clean it - 'build/scripts-3.9' does not exist -- can't clean it - removing 'build' - Failed to build ppanggolin - ERROR: Could not build wheels for ppanggolin, which is required to install pyproject.toml-based projects - Exception information: - Traceback (most recent call last): - File "$PREFIX/lib/python3.9/site-packages/pip/_internal/cli/base_command.py", line 169, in exc_logging_wrapper - status = run_func(*args) - File "$PREFIX/lib/python3.9/site-packages/pip/_internal/cli/req_command.py", line 248, in wrapper - return func(self, options, args) - File "$PREFIX/lib/python3.9/site-packages/pip/_internal/commands/install.py", line 426, in run - raise InstallationError( - pip._internal.exceptions.InstallationError: Could not build wheels for ppanggolin, which is required to install pyproject.toml-based projects - Removed build tracker: '/private/tmp/pip-build-tracker-2ptecnpn' - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/ppanggolin_1685395858204/work/conda_build.sh']' returned non-zero exit status 1. -# Last 100 lines of the build log. diff --git a/recipes/ppanggolin/meta.yaml b/recipes/ppanggolin/meta.yaml index 8d196cd333118..0b43842899749 100644 --- a/recipes/ppanggolin/meta.yaml +++ b/recipes/ppanggolin/meta.yaml @@ -9,7 +9,7 @@ source: sha256: a0eecbb3f66df8d2df5c2b37c25696c264cd3812386e942314748a8800ecc52f build: - number: 0 + number: 1 skip: True # [py<37] run_exports: - {{ pin_subpackage("ppanggolin", max_pin="x") }} diff --git a/recipes/prequal/meta.yaml b/recipes/prequal/meta.yaml index 043f0dd9ef8cc..e9fc9dfc88731 100644 --- a/recipes/prequal/meta.yaml +++ b/recipes/prequal/meta.yaml @@ -9,7 +9,7 @@ source: sha256: a46bb03fe6831ac8435e32cbfd108b6f5761357a555b44ca91266f0d4f5422f3 build: - number: 5 + number: 6 requirements: build: diff --git a/recipes/primer3-py/meta.yaml b/recipes/primer3-py/meta.yaml index f9e5b1886a1c9..4e1a79ec38a1f 100644 --- a/recipes/primer3-py/meta.yaml +++ b/recipes/primer3-py/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 1ec6ce99ea149b1c82361c654a0eab824e698ce32d5f9ed2dd8f8f37564b3f5f build: - number: 1 + number: 2 skip: True # [py < 38] run_exports: - {{ pin_subpackage('primer3-py', max_pin="x") }} diff --git a/recipes/prinseq-plus-plus/build_failure.osx-64.yaml b/recipes/prinseq-plus-plus/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..b97154672bd28 --- /dev/null +++ b/recipes/prinseq-plus-plus/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 2090336535d2a66c3424d552d85f258d260d4d60b64855f38ee4238515d91532 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/prinseq-plus-plus-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/prinseq-plus-plus-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + checking whether the C compiler works... yes + checking for C compiler default output file name... a.out + checking for suffix of executables... + checking whether we are cross compiling... no + checking for suffix of object files... o + checking whether the compiler supports GNU C... yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes + checking for x86_64-apple-darwin13.4.0-clang option to enable C11 features... none needed + checking whether x86_64-apple-darwin13.4.0-clang supports C11 features by default... yes + checking whether the compiler supports GNU C... (cached) yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... (cached) yes + checking for x86_64-apple-darwin13.4.0-clang option to enable C11 features... (cached) none needed + checking for a BSD-compatible install... /usr/bin/install -c + checking build system type... x86_64-apple-darwin13.4.0 + checking host system type... x86_64-apple-darwin13.4.0 + checking for boostlib >= 1.41 (104100) includes in "$PREFIX/include"... yes + checking for boostlib >= 1.41 (104100) lib path in "$PREFIX/lib/x86_64-darwin13.4.0"... no + checking for boostlib >= 1.41 (104100) lib path in "$PREFIX/lib64"... no + checking for boostlib >= 1.41 (104100) lib path in "$PREFIX/libx32"... no + checking for boostlib >= 1.41 (104100) lib path in "$PREFIX/lib"... yes + checking for boostlib >= 1.41 (104100)... yes + checking for x86_64-apple-darwin13.4.0-gcc... x86_64-apple-darwin13.4.0-clang + checking whether the compiler supports GNU C... yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes + checking for x86_64-apple-darwin13.4.0-clang option to enable C11 features... none needed + checking whether the Boost::System library is available... yes + checking for exit in -lboost_system... yes + checking whether the Boost::Filesystem library is available... yes + checking for exit in -lboost_filesystem... yes + checking whether the Boost::IOStreams library is available... yes + checking for exit in -lboost_iostreams... yes + checking for stdio.h... yes + checking for stdlib.h... yes + checking for string.h... yes + checking for inttypes.h... yes + checking for stdint.h... yes + checking for strings.h... yes + checking for sys/stat.h... yes + checking for sys/types.h... yes + checking for unistd.h... yes + checking if zlib is wanted... yes + checking for inflateEnd in -lz... yes + checking for zlib.h... yes + checking for a sed that does not truncate output... /usr/bin/sed + checking how to run the C preprocessor... x86_64-apple-darwin13.4.0-clang -E + checking for grep that handles long lines and -e... /usr/bin/grep + checking for egrep... /usr/bin/grep -E + checking whether x86_64-apple-darwin13.4.0-clang is Clang... yes + checking whether Clang needs flag to prevent "argument unused" warning when linking with -pthread... no + checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE + checking whether more special flags are required for pthreads... no + checking for PTHREAD_PRIO_INHERIT... yes + checking for stdlib.h... (cached) yes + checking for unistd.h... (cached) yes + checking for _Bool... no + checking for stdbool.h that conforms to C99... yes + configure: creating ./config.status + config.status: creating Makefile + config.status: creating src/Makefile + config.status: creating README.md + config.status: creating config.h + cd src && make all + make[1]: Entering directory '$SRC_DIR/src' + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/prinseq-plus-plus-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -pthread -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -c -o main.o main.cpp + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/prinseq-plus-plus-1.2.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -pthread -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -c -o reads.o reads.cpp + make[1]: Leaving directory '$SRC_DIR/src' + cd src && make install + make[1]: Entering directory '$SRC_DIR/src' + install -d $PREFIX/bin + install -m 0775 prinseq $PREFIX/bin + make[1]: Leaving directory '$SRC_DIR/src' +# Last 100 lines of the build log. diff --git a/recipes/prinseq-plus-plus/meta.yaml b/recipes/prinseq-plus-plus/meta.yaml index eb70080fe2d7b..00785a0089dcb 100644 --- a/recipes/prinseq-plus-plus/meta.yaml +++ b/recipes/prinseq-plus-plus/meta.yaml @@ -10,7 +10,7 @@ source: sha256: {{ sha256 }} build: - number: 4 + number: 5 requirements: build: diff --git a/recipes/probeit/meta.yaml b/recipes/probeit/meta.yaml index 74a714a056acc..d58fd58c535d6 100644 --- a/recipes/probeit/meta.yaml +++ b/recipes/probeit/meta.yaml @@ -7,7 +7,7 @@ package: build: skip: true # [py2k] - number: 2 + number: 3 source: url: "https://github.com/steineggerlab/probeit/archive/refs/tags/v{{ version }}.tar.gz" diff --git a/recipes/prodigal/meta.yaml b/recipes/prodigal/meta.yaml index 70e320ad05502..054aa0a7d3ba8 100644 --- a/recipes/prodigal/meta.yaml +++ b/recipes/prodigal/meta.yaml @@ -13,7 +13,7 @@ source: - sd_motif_B.patch build: - number: 8 + number: 9 run_exports: - {{ pin_subpackage('prodigal', max_pin=None) }} diff --git a/recipes/profile_dists/meta.yaml b/recipes/profile_dists/meta.yaml index e598169faa50d..9d72ac0a11bcf 100644 --- a/recipes/profile_dists/meta.yaml +++ b/recipes/profile_dists/meta.yaml @@ -11,8 +11,9 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 noarch: python + skip: true # [ py == 312 ] run_exports: - {{ pin_subpackage("profile_dists", max_pin="x.x") }} script: {{ PYTHON }} -m pip install . --use-pep517 --no-deps -vvv diff --git a/recipes/prophyle/meta.yaml b/recipes/prophyle/meta.yaml index 6d620b30e2e04..1a06445a421e8 100644 --- a/recipes/prophyle/meta.yaml +++ b/recipes/prophyle/meta.yaml @@ -10,7 +10,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 2 skip: True # [py27] run_exports: - {{ pin_subpackage("prophyle", max_pin="x.x") }} @@ -80,4 +80,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/pxblat/build_failure.linux-64.yaml b/recipes/pxblat/build_failure.linux-64.yaml index 5b942524e2cd1..e7b37a7b731e4 100644 --- a/recipes/pxblat/build_failure.linux-64.yaml +++ b/recipes/pxblat/build_failure.linux-64.yaml @@ -1,104 +1,104 @@ -recipe_sha: 9910e8828c844b7213ab38c0600f3caa04cc87acd4497a3b3fbd44a337aefad8 # The commit at which this recipe failed to build. +recipe_sha: 4af3647b9bfd656d9bd240430c97beda5ef5bb1a2af01a13f2518974f451e4b8 # The hash of the recipe's meta.yaml at which this recipe failed to build. skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - File "/opt/conda/conda-bld/pxblat_1688740629379/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.11/site-packages/pip/_internal/cli/base_command.py", line 169, in exc_logging_wrapper +log: |- + SIZE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-size + STRINGS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strings + STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip + INFO: activate-gcc_linux-64.sh made the following environmental changes: + BUILD=x86_64-conda-linux-gnu + CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pxblat-1.2.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr + CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot + CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu + CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu + CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pxblat-1.2.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + INFO: activate-gxx_linux-64.sh made the following environmental changes: + CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pxblat-1.2.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pxblat-1.2.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-g + Using pip 24.0 from $PREFIX/lib/python3.12/site-packages/pip (python 3.12) + Non-user install because user site-packages disabled + Ignoring indexes: https://pypi.org/simple + Created temporary directory: /tmp/pip-build-tracker-wnlce67n + Initialized build tracking at /tmp/pip-build-tracker-wnlce67n + Created build tracker: /tmp/pip-build-tracker-wnlce67n + Entered build tracker: /tmp/pip-build-tracker-wnlce67n + Created temporary directory: /tmp/pip-install-jujpp588 + Created temporary directory: /tmp/pip-ephem-wheel-cache-s12l4w7q + Processing $SRC_DIR + Added file://$SRC_DIR to build tracker '/tmp/pip-build-tracker-wnlce67n' + Created temporary directory: /tmp/pip-modern-metadata-83qnmnky + Preparing metadata (pyproject.toml): started + Running command Preparing metadata (pyproject.toml) + Preparing metadata (pyproject.toml): finished with status 'done' + Source in $SRC_DIR has version 1.2.1, which satisfies requirement pxblat==1.2.1 from file://$SRC_DIR + Removed pxblat==1.2.1 from file://$SRC_DIR from build tracker '/tmp/pip-build-tracker-wnlce67n' + INFO: pip is looking at multiple versions of pxblat to determine which version is compatible with other requirements. This could take a while. + Will try a different candidate, due to conflict: + pxblat 1.2.1 depends on Python <3.12,>=3.9 + [31mERROR: Package 'pxblat' requires a different Python: 3.12.3 not in '<3.12,>=3.9'[0m[31m + [0mException information: + Traceback (most recent call last): + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 95, in resolve + result = self._result = resolver.resolve( + ^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py", line 546, in resolve + state = resolution.resolve(requirements, max_rounds=max_rounds) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py", line 439, in resolve + raise ResolutionImpossible(self.state.backtrack_causes) + pip._vendor.resolvelib.resolvers.ResolutionImpossible: [RequirementInformation(requirement=RequiresPythonRequirement('<3.12,>=3.9'), parent=LinkCandidate('file://$SRC_DIR'))] + + The above exception was the direct cause of the following exception: + + Traceback (most recent call last): + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper status = run_func(*args) ^^^^^^^^^^^^^^^ - File "/opt/conda/conda-bld/pxblat_1688740629379/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.11/site-packages/pip/_internal/cli/req_command.py", line 248, in wrapper + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper return func(self, options, args) ^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/opt/conda/conda-bld/pxblat_1688740629379/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.11/site-packages/pip/_internal/commands/install.py", line 377, in run + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/commands/install.py", line 377, in run requirement_set = resolver.resolve( ^^^^^^^^^^^^^^^^^ - File "/opt/conda/conda-bld/pxblat_1688740629379/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 73, in resolve - collected = self.factory.collect_root_requirements(root_reqs) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/opt/conda/conda-bld/pxblat_1688740629379/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 491, in collect_root_requirements - req = self._make_requirement_from_install_req( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/opt/conda/conda-bld/pxblat_1688740629379/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 453, in _make_requirement_from_install_req - cand = self._make_candidate_from_link( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/opt/conda/conda-bld/pxblat_1688740629379/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 206, in _make_candidate_from_link - self._link_candidate_cache[link] = LinkCandidate( - ^^^^^^^^^^^^^^ - File "/opt/conda/conda-bld/pxblat_1688740629379/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 293, in __init__ - super().__init__( - File "/opt/conda/conda-bld/pxblat_1688740629379/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 156, in __init__ - self.dist = self._prepare() - ^^^^^^^^^^^^^^^ - File "/opt/conda/conda-bld/pxblat_1688740629379/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 225, in _prepare - dist = self._prepare_distribution() - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/opt/conda/conda-bld/pxblat_1688740629379/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 304, in _prepare_distribution - return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/opt/conda/conda-bld/pxblat_1688740629379/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.11/site-packages/pip/_internal/operations/prepare.py", line 516, in prepare_linked_requirement - return self._prepare_linked_requirement(req, parallel_builds) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/opt/conda/conda-bld/pxblat_1688740629379/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.11/site-packages/pip/_internal/operations/prepare.py", line 631, in _prepare_linked_requirement - dist = _get_prepared_distribution( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/opt/conda/conda-bld/pxblat_1688740629379/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.11/site-packages/pip/_internal/operations/prepare.py", line 69, in _get_prepared_distribution - abstract_dist.prepare_distribution_metadata( - File "/opt/conda/conda-bld/pxblat_1688740629379/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.11/site-packages/pip/_internal/distributions/sdist.py", line 61, in prepare_distribution_metadata - self.req.prepare_metadata() - File "/opt/conda/conda-bld/pxblat_1688740629379/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.11/site-packages/pip/_internal/req/req_install.py", line 555, in prepare_metadata - self.metadata_directory = generate_metadata( - ^^^^^^^^^^^^^^^^^^ - File "/opt/conda/conda-bld/pxblat_1688740629379/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.11/site-packages/pip/_internal/operations/build/metadata.py", line 35, in generate_metadata - distinfo_dir = backend.prepare_metadata_for_build_wheel(metadata_dir) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/opt/conda/conda-bld/pxblat_1688740629379/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.11/site-packages/pip/_internal/utils/misc.py", line 713, in prepare_metadata_for_build_wheel - return super().prepare_metadata_for_build_wheel( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/opt/conda/conda-bld/pxblat_1688740629379/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_impl.py", line 186, in prepare_metadata_for_build_wheel - return self._call_hook('prepare_metadata_for_build_wheel', { - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/opt/conda/conda-bld/pxblat_1688740629379/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_impl.py", line 321, in _call_hook - raise BackendUnavailable(data.get('traceback', '')) - pip._vendor.pyproject_hooks._impl.BackendUnavailable: Traceback (most recent call last): - File "/opt/conda/conda-bld/pxblat_1688740629379/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 77, in _build_backend - obj = import_module(mod_path) - ^^^^^^^^^^^^^^^^^^^^^^^ - File "/opt/conda/conda-bld/pxblat_1688740629379/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.11/importlib/__init__.py", line 126, in import_module - return _bootstrap._gcd_import(name[level:], package, level) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "", line 1204, in _gcd_import - File "", line 1176, in _find_and_load - File "", line 1126, in _find_and_load_unlocked - File "", line 241, in _call_with_frames_removed - File "", line 1204, in _gcd_import - File "", line 1176, in _find_and_load - File "", line 1126, in _find_and_load_unlocked - File "", line 241, in _call_with_frames_removed - File "", line 1204, in _gcd_import - File "", line 1176, in _find_and_load - File "", line 1126, in _find_and_load_unlocked - File "", line 241, in _call_with_frames_removed - File "", line 1204, in _gcd_import - File "", line 1176, in _find_and_load - File "", line 1140, in _find_and_load_unlocked - ModuleNotFoundError: No module named 'poetry' - [0m[31m - [0mRemoved file://$SRC_DIR from build tracker '/tmp/pip-build-tracker-jl36fbnx' - Removed build tracker: '/tmp/pip-build-tracker-jl36fbnx' + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 104, in resolve + raise error from e + pip._internal.exceptions.UnsupportedPythonVersion: Package 'pxblat' requires a different Python: 3.12.3 not in '<3.12,>=3.9' + Removed build tracker: '/tmp/pip-build-tracker-wnlce67n' Traceback (most recent call last): - File "/opt/conda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/conda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build return build_tree( - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/conda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/conda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/pxblat_1688740629379/work/conda_build.sh']' returned non-zero exit status 2. + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/pxblat_1717553732618/work/conda_build.sh']' returned non-zero exit status 1. # Last 100 lines of the build log. diff --git a/recipes/pxblat/build_failure.osx-64.yaml b/recipes/pxblat/build_failure.osx-64.yaml index 7cf5a245e3926..bd99c92d9d5a5 100644 --- a/recipes/pxblat/build_failure.osx-64.yaml +++ b/recipes/pxblat/build_failure.osx-64.yaml @@ -1,104 +1,104 @@ -recipe_sha: 9910e8828c844b7213ab38c0600f3caa04cc87acd4497a3b3fbd44a337aefad8 # The commit at which this recipe failed to build. +recipe_sha: 4af3647b9bfd656d9bd240430c97beda5ef5bb1a2af01a13f2518974f451e4b8 # The hash of the recipe's meta.yaml at which this recipe failed to build. skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - File "/opt/mambaforge/envs/bioconda/conda-bld/pxblat_1688740225962/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.11/site-packages/pip/_internal/cli/base_command.py", line 169, in exc_logging_wrapper - status = run_func(*args) - ^^^^^^^^^^^^^^^ - File "/opt/mambaforge/envs/bioconda/conda-bld/pxblat_1688740225962/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.11/site-packages/pip/_internal/cli/req_command.py", line 248, in wrapper - return func(self, options, args) - ^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/opt/mambaforge/envs/bioconda/conda-bld/pxblat_1688740225962/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.11/site-packages/pip/_internal/commands/install.py", line 377, in run - requirement_set = resolver.resolve( - ^^^^^^^^^^^^^^^^^ - File "/opt/mambaforge/envs/bioconda/conda-bld/pxblat_1688740225962/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 73, in resolve - collected = self.factory.collect_root_requirements(root_reqs) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/opt/mambaforge/envs/bioconda/conda-bld/pxblat_1688740225962/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 491, in collect_root_requirements - req = self._make_requirement_from_install_req( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/opt/mambaforge/envs/bioconda/conda-bld/pxblat_1688740225962/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 453, in _make_requirement_from_install_req - cand = self._make_candidate_from_link( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/opt/mambaforge/envs/bioconda/conda-bld/pxblat_1688740225962/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 206, in _make_candidate_from_link - self._link_candidate_cache[link] = LinkCandidate( - ^^^^^^^^^^^^^^ - File "/opt/mambaforge/envs/bioconda/conda-bld/pxblat_1688740225962/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 293, in __init__ - super().__init__( - File "/opt/mambaforge/envs/bioconda/conda-bld/pxblat_1688740225962/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 156, in __init__ - self.dist = self._prepare() - ^^^^^^^^^^^^^^^ - File "/opt/mambaforge/envs/bioconda/conda-bld/pxblat_1688740225962/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 225, in _prepare - dist = self._prepare_distribution() - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/opt/mambaforge/envs/bioconda/conda-bld/pxblat_1688740225962/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 304, in _prepare_distribution - return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/opt/mambaforge/envs/bioconda/conda-bld/pxblat_1688740225962/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.11/site-packages/pip/_internal/operations/prepare.py", line 516, in prepare_linked_requirement - return self._prepare_linked_requirement(req, parallel_builds) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/opt/mambaforge/envs/bioconda/conda-bld/pxblat_1688740225962/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.11/site-packages/pip/_internal/operations/prepare.py", line 631, in _prepare_linked_requirement - dist = _get_prepared_distribution( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/opt/mambaforge/envs/bioconda/conda-bld/pxblat_1688740225962/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.11/site-packages/pip/_internal/operations/prepare.py", line 69, in _get_prepared_distribution - abstract_dist.prepare_distribution_metadata( - File "/opt/mambaforge/envs/bioconda/conda-bld/pxblat_1688740225962/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.11/site-packages/pip/_internal/distributions/sdist.py", line 61, in prepare_distribution_metadata - self.req.prepare_metadata() - File "/opt/mambaforge/envs/bioconda/conda-bld/pxblat_1688740225962/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.11/site-packages/pip/_internal/req/req_install.py", line 555, in prepare_metadata - self.metadata_directory = generate_metadata( - ^^^^^^^^^^^^^^^^^^ - File "/opt/mambaforge/envs/bioconda/conda-bld/pxblat_1688740225962/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.11/site-packages/pip/_internal/operations/build/metadata.py", line 35, in generate_metadata - distinfo_dir = backend.prepare_metadata_for_build_wheel(metadata_dir) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/opt/mambaforge/envs/bioconda/conda-bld/pxblat_1688740225962/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.11/site-packages/pip/_internal/utils/misc.py", line 713, in prepare_metadata_for_build_wheel - return super().prepare_metadata_for_build_wheel( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/opt/mambaforge/envs/bioconda/conda-bld/pxblat_1688740225962/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_impl.py", line 186, in prepare_metadata_for_build_wheel - return self._call_hook('prepare_metadata_for_build_wheel', { - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/opt/mambaforge/envs/bioconda/conda-bld/pxblat_1688740225962/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_impl.py", line 321, in _call_hook - raise BackendUnavailable(data.get('traceback', '')) - pip._vendor.pyproject_hooks._impl.BackendUnavailable: Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/conda-bld/pxblat_1688740225962/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 77, in _build_backend - obj = import_module(mod_path) - ^^^^^^^^^^^^^^^^^^^^^^^ - File "/opt/mambaforge/envs/bioconda/conda-bld/pxblat_1688740225962/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.11/importlib/__init__.py", line 126, in import_module - return _bootstrap._gcd_import(name[level:], package, level) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "", line 1204, in _gcd_import - File "", line 1176, in _find_and_load - File "", line 1126, in _find_and_load_unlocked - File "", line 241, in _call_with_frames_removed - File "", line 1204, in _gcd_import - File "", line 1176, in _find_and_load - File "", line 1126, in _find_and_load_unlocked - File "", line 241, in _call_with_frames_removed - File "", line 1204, in _gcd_import - File "", line 1176, in _find_and_load - File "", line 1126, in _find_and_load_unlocked - File "", line 241, in _call_with_frames_removed - File "", line 1204, in _gcd_import - File "", line 1176, in _find_and_load - File "", line 1140, in _find_and_load_unlocked - ModuleNotFoundError: No module named 'poetry' - - Removed file://$SRC_DIR from build tracker '/private/tmp/pip-build-tracker-m00ixlfd' - Removed build tracker: '/private/tmp/pip-build-tracker-m00ixlfd' +log: |- + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/pxblat_1717527808058/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/pxblat_1717527808058/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/pxblat_1717527808058/work Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pxblat-1.2.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pxblat-1.2.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pxblat-1.2.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pxblat-1.2.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + Using pip 24.0 from $PREFIX/lib/python3.9/site-packages/pip (python 3.9) + Non-user install because user site-packages disabled + Ignoring indexes: https://pypi.org/simple + Created temporary directory: /private/tmp/pip-build-tracker-qoucc5ov + Initialized build tracking at /private/tmp/pip-build-tracker-qoucc5ov + Created build tracker: /private/tmp/pip-build-tracker-qoucc5ov + Entered build tracker: /private/tmp/pip-build-tracker-qoucc5ov + Created temporary directory: /private/tmp/pip-install-tj7o4pi6 + Created temporary directory: /private/tmp/pip-ephem-wheel-cache-8r3zol2g + Processing $SRC_DIR + Added file://$SRC_DIR to build tracker '/private/tmp/pip-build-tracker-qoucc5ov' + Created temporary directory: /private/tmp/pip-modern-metadata-j60vuf7f + Preparing metadata (pyproject.toml): started + Preparing metadata (pyproject.toml): finished with status 'done' + Source in $SRC_DIR has version 1.2.1, which satisfies requirement pxblat==1.2.1 from file://$SRC_DIR + Removed pxblat==1.2.1 from file://$SRC_DIR from build tracker '/private/tmp/pip-build-tracker-qoucc5ov' + Created temporary directory: /private/tmp/pip-unpack-ha9y5yl6 + Building wheels for collected packages: pxblat + Created temporary directory: /private/tmp/pip-wheel-_z5zbrg7 + Destination directory: /private/tmp/pip-wheel-_z5zbrg7 + Building wheel for pxblat (pyproject.toml): started + Building wheel for pxblat (pyproject.toml): finished with status 'error' + Failed to build pxblat + Exception information: + Traceback (most recent call last): + File "$PREFIX/lib/python3.9/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper + status = run_func(*args) + File "$PREFIX/lib/python3.9/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper + return func(self, options, args) + File "$PREFIX/lib/python3.9/site-packages/pip/_internal/commands/install.py", line 429, in run + raise InstallationError( + pip._internal.exceptions.InstallationError: Could not build wheels for pxblat, which is required to install pyproject.toml-based projects + Removed build tracker: '/private/tmp/pip-build-tracker-qoucc5ov' + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/pxblat_1688740225962/work/conda_build.sh']' returned non-zero exit status 2. + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/pxblat_1717527808058/work/conda_build.sh']' returned non-zero exit status 1. # Last 100 lines of the build log. diff --git a/recipes/pxblat/meta.yaml b/recipes/pxblat/meta.yaml index d1b2a8af9bafd..c9fb773e49dfb 100644 --- a/recipes/pxblat/meta.yaml +++ b/recipes/pxblat/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 skip: True # [py < 39] script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv entry_points: diff --git a/recipes/py2bit/meta.yaml b/recipes/py2bit/meta.yaml index 5938010a14d20..810b068f6474a 100644 --- a/recipes/py2bit/meta.yaml +++ b/recipes/py2bit/meta.yaml @@ -3,7 +3,7 @@ package: version: "0.3.0" build: - number: 9 + number: 10 run_exports: - {{ pin_subpackage('py2bit', max_pin='x.x') }} @@ -32,4 +32,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/py_fasta_validator/meta.yaml b/recipes/py_fasta_validator/meta.yaml index 032e1d71d0605..d5cea65e8a4c2 100644 --- a/recipes/py_fasta_validator/meta.yaml +++ b/recipes/py_fasta_validator/meta.yaml @@ -10,7 +10,7 @@ source: sha256: "ca29c20e1be31ef190f923b62ddb7fccda8c1c3ba9cf699a6ccaccce10ea011a" build: - number: 3 + number: 4 skip: True # [py < 37] script: "{{ PYTHON }} -m pip install --ignore-installed --no-cache-dir -vvv ." diff --git a/recipes/pyabpoa/meta.yaml b/recipes/pyabpoa/meta.yaml index b99ebbd5a2c25..c09f3816be9bb 100644 --- a/recipes/pyabpoa/meta.yaml +++ b/recipes/pyabpoa/meta.yaml @@ -10,7 +10,7 @@ source: sha256: f0e1b41b1c9e18ecd2096df9b60ad053260ec773d70eecb307b02cca0efab89d build: - number: 1 + number: 2 script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --use-pep517 -vvv run_exports: - {{ pin_subpackage(name, max_pin="x") }} diff --git a/recipes/pybbi/meta.yaml b/recipes/pybbi/meta.yaml index 6277bd7c5c715..b7f67a6ef39f1 100644 --- a/recipes/pybbi/meta.yaml +++ b/recipes/pybbi/meta.yaml @@ -10,8 +10,8 @@ source: sha256: "afafbc23f16f789344a454fce619af5556a67a2e11b7c36de8fc6f091e2478fc" build: - number: 0 - skip: True # [py2k or osx] + number: 1 + skip: True # [osx] run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} diff --git a/recipes/pybedgraph/meta.yaml b/recipes/pybedgraph/meta.yaml index fe35c90092602..8fb405cf00569 100644 --- a/recipes/pybedgraph/meta.yaml +++ b/recipes/pybedgraph/meta.yaml @@ -10,7 +10,7 @@ source: sha256: b3064790c4b47439846ad2d121ba6f9b1b0c2b4810f5aaa7fff8138fe13c86a9 build: - number: 4 + number: 5 skip: True # [py27] script: "rm pyBedGraph/*.c; {{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv" diff --git a/recipes/pybedlite/meta.yaml b/recipes/pybedlite/meta.yaml index a8a863f8a6ae5..11f13450da28d 100644 --- a/recipes/pybedlite/meta.yaml +++ b/recipes/pybedlite/meta.yaml @@ -11,7 +11,7 @@ source: build: skip: True # [py < 38] - number: 0 + number: 1 script: {{ PYTHON }} -m pip install . -vvv --no-deps run_exports: - {{ pin_subpackage('pybedlite', max_pin="x") }} diff --git a/recipes/pybedtools/meta.yaml b/recipes/pybedtools/meta.yaml index b9fb582b6ecfb..eed3d0401005a 100644 --- a/recipes/pybedtools/meta.yaml +++ b/recipes/pybedtools/meta.yaml @@ -11,7 +11,7 @@ source: build: skip: True # [py < 36] - number: 0 + number: 1 run_exports: - {{ pin_subpackage("pybedtools", max_pin="x.x") }} diff --git a/recipes/pybigtools/build_failure.osx-64.yaml b/recipes/pybigtools/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..bd6db290ad53d --- /dev/null +++ b/recipes/pybigtools/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: b9846a21ec9bbbc46ad39d8e456cece6d42e6d609a0ff345cf122226589854ab # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-e92d517a950bccd8.rlib(addr2line-e92d517a950bccd8.addr2line.7eb29e6a0a38fefd-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-8ce93eee8bf4c86e.rlib(panic_unwind-8ce93eee8bf4c86e.panic_unwind.a3b8ea81b157ee45-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-7f42af62722c8f43.rlib(compiler_builtins-7f42af62722c8f43.compiler_builtins.19fed66cffb9e9f5-cgu.089.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + Undefined symbols for architecture x86_64: + "_getentropy", referenced from: + std::sys::pal::unix::rand::hashmap_random_keys::hcc27ed0e9fd421d6 in libstd-2ad7f97be9e16ca5.rlib(std-2ad7f97be9e16ca5.std.73125d0ae810e61b-cgu.0.rcgu.o) + ld: symbol(s) not found for architecture x86_64 + clang-16: error: linker command failed with exit code 1 (use -v to see invocation) + + + error: linking with x86_64-apple-darwin13.4.0-clang failed: exit status: 1 + | + = note: env -u IPHONEOS_DEPLOYMENT_TARGET -u TVOS_DEPLOYMENT_TARGET LC_ALL="C" PATH="/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/bin:/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/.cargo/bin:/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/bin:/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin:/opt/mambaforge/envs/bioconda/condabin:/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/bin:/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin:/opt/mambaforge/envs/bioconda/bin:/opt/mambaforge/condabin:/opt/mambaforge/bin:/usr/local/lib/ruby/gems/3.0.0/bin:/usr/local/opt/ruby@3.0/bin:/usr/local/opt/pipx_bin:/Users/runner/.cargo/bin:/usr/local/opt/curl/bin:/usr/local/bin:/usr/local/sbin:/Users/runner/bin:/Users/runner/.yarn/bin:/Users/runner/Library/Android/sdk/tools:/Users/runner/Library/Android/sdk/platform-tools:/Library/Frameworks/Python.framework/Versions/Current/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/usr/bin:/bin:/usr/sbin:/sbin:/Users/runner/.dotnet/tools" VSLANG="1033" ZERO_AR_DATE="1" "x86_64-apple-darwin13.4.0-clang" "-arch" "x86_64" "-m64" "/tmp/rustcDjA4SX/symbols.o" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/build/ring-e2a4c35a507cf1ef/build_script_build-e2a4c35a507cf1ef.build_script_build.4b1b86ea32bc8395-cgu.0.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/build/ring-e2a4c35a507cf1ef/build_script_build-e2a4c35a507cf1ef.build_script_build.4b1b86ea32bc8395-cgu.1.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/build/ring-e2a4c35a507cf1ef/build_script_build-e2a4c35a507cf1ef.build_script_build.4b1b86ea32bc8395-cgu.2.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/build/ring-e2a4c35a507cf1ef/build_script_build-e2a4c35a507cf1ef.build_script_build.4b1b86ea32bc8395-cgu.3.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/build/ring-e2a4c35a507cf1ef/build_script_build-e2a4c35a507cf1ef.build_script_build.4b1b86ea32bc8395-cgu.4.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/build/ring-e2a4c35a507cf1ef/build_script_build-e2a4c35a507cf1ef.build_script_build.4b1b86ea32bc8395-cgu.5.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/build/ring-e2a4c35a507cf1ef/build_script_build-e2a4c35a507cf1ef.vmxxw6nstdc094v.rcgu.o" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/deps" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/deps/libcc-313c0a1ebd4656a8.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libstd-2ad7f97be9e16ca5.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-8ce93eee8bf4c86e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libobject-0e1339b212cc7409.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libmemchr-925e672b3deb429c.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-e92d517a950bccd8.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libgimli-de95e5c2a2ace281.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-37f4c48e230f618e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libstd_detect-dfeb4bb0652b6b8e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-0e3ea0ec18336be2.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_alloc-39dd3003e36d7872.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libminiz_oxide-5ea1513e08ee15e0.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libadler-2967159221f4860d.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libunwind-b70656709e3eca11.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcfg_if-cc5626b2e0399737.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/liblibc-8378684dba6ab463.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/liballoc-0ff05b9b25b786cc.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_core-9a6da74aeab39c54.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcore-1638dc700d175798.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-7f42af62722c8f43.rlib" "-lSystem" "-lc" "-lm" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib" "-o" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/build/ring-e2a4c35a507cf1ef/build_script_build-e2a4c35a507cf1ef" "-Wl,-dead_strip" "-nodefaultlibs" + = note: ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libstd-2ad7f97be9e16ca5.rlib(std-2ad7f97be9e16ca5.std.73125d0ae810e61b-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcore-1638dc700d175798.rlib(core-1638dc700d175798.core.b1c2fc210f4dfff9-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/liballoc-0ff05b9b25b786cc.rlib(alloc-0ff05b9b25b786cc.alloc.9242d371e396bc4c-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-37f4c48e230f618e.rlib(rustc_demangle-37f4c48e230f618e.rustc_demangle.9fdffeb2b56169d1-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libgimli-de95e5c2a2ace281.rlib(gimli-de95e5c2a2ace281.gimli.72653df79598dcb2-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libobject-0e1339b212cc7409.rlib(object-0e1339b212cc7409.object.e3756fe3fb577255-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libmemchr-925e672b3deb429c.rlib(memchr-925e672b3deb429c.memchr.4dc4a05d80618598-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-e92d517a950bccd8.rlib(addr2line-e92d517a950bccd8.addr2line.7eb29e6a0a38fefd-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-8ce93eee8bf4c86e.rlib(panic_unwind-8ce93eee8bf4c86e.panic_unwind.a3b8ea81b157ee45-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-7f42af62722c8f43.rlib(compiler_builtins-7f42af62722c8f43.compiler_builtins.19fed66cffb9e9f5-cgu.089.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-0e3ea0ec18336be2.rlib(hashbrown-0e3ea0ec18336be2.hashbrown.febebf65344cb99d-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + Undefined symbols for architecture x86_64: + "_getentropy", referenced from: + std::sys::pal::unix::rand::hashmap_random_keys::hcc27ed0e9fd421d6 in libstd-2ad7f97be9e16ca5.rlib(std-2ad7f97be9e16ca5.std.73125d0ae810e61b-cgu.0.rcgu.o) + ld: symbol(s) not found for architecture x86_64 + clang-16: error: linker command failed with exit code 1 (use -v to see invocation) + + + error: could not compile ring (build script) due to 1 previous error + warning: build failed, waiting for other jobs to finish... + error: could not compile pyo3-build-config (build script) due to 1 previous error + maturin failed + Caused by: Failed to build a native library through cargo + Caused by: Cargo build finished with "exit status: 101": env -u CARGO PYO3_ENVIRONMENT_SIGNATURE="cpython-3.10-64bit" PYO3_PYTHON="/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/python" PYTHON_SYS_EXECUTABLE="/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/python" "cargo" "rustc" "--target" "x86_64-apple-darwin" "--message-format" "json-render-diagnostics" "--manifest-path" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/Cargo.toml" "--release" "--lib" "--" "-C" "link-arg=-undefined" "-C" "link-arg=dynamic_lookup" "-C" "link-args=-Wl,-install_name,@rpath/pybigtools.cpython-310-darwin.so" "-C" "link-arg=-s" + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pybigtools-0.1.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + CLANG=x86_64-apple-darwin13.4.0-clang + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/conda_build.sh']' returned non-zero exit status 1. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pybigtools-0.1.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 +# Last 100 lines of the build log. diff --git a/recipes/pybigtools/meta.yaml b/recipes/pybigtools/meta.yaml index 5885a7aaa49c8..3711f68418a60 100644 --- a/recipes/pybigtools/meta.yaml +++ b/recipes/pybigtools/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('pybigtools', max_pin="x.x") }} diff --git a/recipes/pybigwig/meta.yaml b/recipes/pybigwig/meta.yaml index be5c68cf5d54e..a5a9f03b5552f 100644 --- a/recipes/pybigwig/meta.yaml +++ b/recipes/pybigwig/meta.yaml @@ -9,8 +9,7 @@ source: sha256: 5d4426f754bd7b7f6dc21d6c3f93b58a96a65b6eb2e578ae03b31a71272d2243 build: - skip: True # [py < 37] - number: 2 + number: 3 run_exports: - {{ pin_subpackage('pybigwig', max_pin="x.x") }} diff --git a/recipes/pybmtools/build_failure.linux-64.yaml b/recipes/pybmtools/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..5170b97649143 --- /dev/null +++ b/recipes/pybmtools/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 4aac5815007c2a7ff67c50af7e72b07ccb7b1a78f6b6909f2110dd80a243c642 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + reading manifest file 'pybmtools.egg-info/SOURCES.txt' + reading manifest template 'MANIFEST.in' + adding license file 'LICENSE.txt' + writing manifest file 'pybmtools.egg-info/SOURCES.txt' + Copying pybmtools.egg-info to $PREFIX/lib/python3.12/site-packages/pybmtools-0.1.1-py3.12.egg-info + running install_scripts + writing list of installed files to 'record.txt' + + Resource usage statistics from building pybmtools: + Process count: 6 + CPU time: Sys=0:00:00.1, User=0:00:00.8 + Memory: 110.4M + Disk usage: 768B + Time elapsed: 0:00:04.0 + + + number of files: 6 + Warning: rpath /opt/conda/conda-bld/pybmtools_1717605226209/_build_env/lib is outside prefix /opt/conda/conda-bld/pybmtools_1717605226209/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla (removing it) + INFO: sysroot: '/opt/conda/conda-bld/pybmtools_1717605226209/_build_env/x86_64-conda-linux-gnu/sysroot/' files: '['usr/share/zoneinfo/zone.tab', 'usr/share/zoneinfo/tzdata.zi', 'usr/share/zoneinfo/right/Zulu', 'usr/share/zoneinfo/right/WET']' + INFO (pybmtools,lib/python3.12/site-packages/pybmtools.cpython-312-x86_64-linux-gnu.so): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libm.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 + INFO (pybmtools,lib/python3.12/site-packages/pybmtools.cpython-312-x86_64-linux-gnu.so): Needed DSO lib/libz.so.1 found in conda-forge/linux-64::libzlib==1.2.13=h4ab18f5_6 + INFO (pybmtools,lib/python3.12/site-packages/pybmtools.cpython-312-x86_64-linux-gnu.so): Needed DSO lib/libcurl.so.4 found in conda-forge/linux-64::libcurl==8.8.0=hca28451_0 + INFO (pybmtools,lib/python3.12/site-packages/pybmtools.cpython-312-x86_64-linux-gnu.so): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libc.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 + WARNING (pybmtools): run-exports library package conda-forge/linux-64::numpy==1.26.4=py312heda63a1_0 in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) + WARNING (pybmtools): interpreter (Python) package conda-forge/linux-64::python==3.12.3=hab00c5b_0_cpython in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) + WARNING (pybmtools): run-exports library package conda-forge/linux-64::zlib==1.2.13=h4ab18f5_6 in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) + Fixing permissions + INFO :: Time taken to mark (prefix) + 0 replacements in 0 files was 0.01 seconds + TEST START: /opt/conda/conda-bld/linux-64/pybmtools-0.1.3-py312hfa7e9eb_2.tar.bz2 + Renaming work directory '/opt/conda/conda-bld/pybmtools_1717605226209/work' to '/opt/conda/conda-bld/pybmtools_1717605226209/work_moved_pybmtools-0.1.3-py312hfa7e9eb_2_linux-64' + shutil.move(work)=/opt/conda/conda-bld/pybmtools_1717605226209/work, dest=/opt/conda/conda-bld/pybmtools_1717605226209/work_moved_pybmtools-0.1.3-py312hfa7e9eb_2_linux-64) + Reloading output folder (local): ...working... done + Solving environment (_test_env): ...working... done + + ## Package Plan ## + + environment location: /opt/conda/conda-bld/pybmtools_1717605226209/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol + + + The following NEW packages will be INSTALLED: + + _libgcc_mutex: 0.1-conda_forge conda-forge + _openmp_mutex: 4.5-2_gnu conda-forge + bzip2: 1.0.8-hd590300_5 conda-forge + c-ares: 1.28.1-hd590300_0 conda-forge + ca-certificates: 2024.6.2-hbcca054_0 conda-forge + keyutils: 1.6.1-h166bdaf_0 conda-forge + krb5: 1.21.2-h659d440_0 conda-forge + ld_impl_linux-64: 2.40-hf3520f5_2 conda-forge + libblas: 3.9.0-22_linux64_openblas conda-forge + libcblas: 3.9.0-22_linux64_openblas conda-forge + libcurl: 8.8.0-hca28451_0 conda-forge + libedit: 3.1.20191231-he28a2e2_2 conda-forge + libev: 4.33-hd590300_2 conda-forge + libexpat: 2.6.2-h59595ed_0 conda-forge + libffi: 3.4.2-h7f98852_5 conda-forge + libgcc-ng: 13.2.0-h77fa898_7 conda-forge + libgfortran-ng: 13.2.0-h69a702a_7 conda-forge + libgfortran5: 13.2.0-hca663fb_7 conda-forge + libgomp: 13.2.0-h77fa898_7 conda-forge + liblapack: 3.9.0-22_linux64_openblas conda-forge + libnghttp2: 1.58.0-h47da74e_1 conda-forge + libnsl: 2.0.1-hd590300_0 conda-forge + libopenblas: 0.3.27-pthreads_h413a1c8_0 conda-forge + libsqlite: 3.45.3-h2797004_0 conda-forge + libssh2: 1.11.0-h0841786_0 conda-forge + libstdcxx-ng: 13.2.0-hc0a3c3a_7 conda-forge + libuuid: 2.38.1-h0b41bf4_0 conda-forge + libxcrypt: 4.4.36-hd590300_1 conda-forge + libzlib: 1.3.1-h4ab18f5_1 conda-forge + ncurses: 6.5-h59595ed_0 conda-forge + numpy: 1.26.4-py312heda63a1_0 conda-forge + openssl: 3.3.1-h4ab18f5_0 conda-forge + pip: 24.0-pyhd8ed1ab_0 conda-forge + pybmtools: 0.1.3-py312hfa7e9eb_2 local + python: 3.12.3-hab00c5b_0_cpython conda-forge + python_abi: 3.12-4_cp312 conda-forge + readline: 8.2-h8228510_1 conda-forge + setuptools: 70.0.0-pyhd8ed1ab_0 conda-forge + tk: 8.6.13-noxft_h4845f30_101 conda-forge + tzdata: 2024a-h0c530f3_0 conda-forge + wheel: 0.43.0-pyhd8ed1ab_1 conda-forge + xz: 5.2.6-h166bdaf_0 conda-forge + zlib: 1.3.1-h4ab18f5_1 conda-forge + zstd: 1.5.6-ha6fb4c9_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + export PREFIX=/opt/conda/conda-bld/pybmtools_1717605226209/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol + export SRC_DIR=/opt/conda/conda-bld/pybmtools_1717605226209/test_tmp + import: 'pybmtools' + import: 'pybmtools' + python3 -c 'import pybmtools as pybm; assert(pybm.numpy == 1); assert(pybm.remote == 1)' + Traceback (most recent call last): + File "", line 1, in + AssertionError + WARNING: Tests failed for pybmtools-0.1.3-py312hfa7e9eb_2.tar.bz2 - moving package to /opt/conda/conda-bld/broken + TESTS FAILED: pybmtools-0.1.3-py312hfa7e9eb_2.tar.bz2 +# Last 100 lines of the build log. diff --git a/recipes/pybmtools/build_failure.osx-64.yaml b/recipes/pybmtools/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..502e7656f276c --- /dev/null +++ b/recipes/pybmtools/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 4aac5815007c2a7ff67c50af7e72b07ccb7b1a78f6b6909f2110dd80a243c642 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + x86_64-apple-darwin13.4.0-clang -bundle -undefined dynamic_lookup -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pybmtools-0.1.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 build/temp.macosx-10.9-x86_64-cpython-312/libbm/bmRead.o build/temp.macosx-10.9-x86_64-cpython-312/libbm/bmStats.o build/temp.macosx-10.9-x86_64-cpython-312/libbm/bmValues.o build/temp.macosx-10.9-x86_64-cpython-312/libbm/bmWrite.o build/temp.macosx-10.9-x86_64-cpython-312/libbm/io.o build/temp.macosx-10.9-x86_64-cpython-312/pybmtools.o -L$PREFIX/lib -L$PREFIX/lib/python3.12/config-3.12-darwin -L$PREFIX/lib -lm -lz -lcurl -o build/lib.macosx-10.9-x86_64-cpython-312/pybmtools.cpython-312-darwin.so + running install_lib + copying build/lib.macosx-10.9-x86_64-cpython-312/pybmtools.cpython-312-darwin.so -> $PREFIX/lib/python3.12/site-packages + running install_egg_info + running egg_info + creating pybmtools.egg-info + writing pybmtools.egg-info/PKG-INFO + writing dependency_links to pybmtools.egg-info/dependency_links.txt + writing requirements to pybmtools.egg-info/requires.txt + writing top-level names to pybmtools.egg-info/top_level.txt + writing manifest file 'pybmtools.egg-info/SOURCES.txt' + reading manifest file 'pybmtools.egg-info/SOURCES.txt' + reading manifest template 'MANIFEST.in' + adding license file 'LICENSE.txt' + writing manifest file 'pybmtools.egg-info/SOURCES.txt' + Copying pybmtools.egg-info to $PREFIX/lib/python3.12/site-packages/pybmtools-0.1.1-py3.12.egg-info + running install_scripts + writing list of installed files to 'record.txt' + + Resource usage statistics from building pybmtools: + Process count: 4 + CPU time: Sys=0:00:00.2, User=0:00:00.4 + Memory: 53.4M + Disk usage: 1.3K + Time elapsed: 0:00:04.5 + + + number of files: 6 + INFO: sysroot: '/System/Library/Frameworks/' files: '['vmnet.framework/Versions/Current', 'vmnet.framework/Versions/A/_CodeSignature/CodeResources', 'vmnet.framework/Versions/A/Resources/version.plist', 'vmnet.framework/Versions/A/Resources/InfoPlist.loctable']' + INFO: sysroot: '/usr/lib/' files: '['zsh/5.9/zsh/zselect.so', 'zsh/5.9/zsh/zpty.so', 'zsh/5.9/zsh/zprof.so', 'zsh/5.9/zsh/zleparameter.so']' + INFO: sysroot: '/opt/X11/' files: '[]' + INFO (pybmtools,lib/python3.12/site-packages/pybmtools.cpython-312-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + INFO (pybmtools,lib/python3.12/site-packages/pybmtools.cpython-312-darwin.so): Needed DSO lib/libz.1.dylib found in conda-forge/osx-64::libzlib==1.2.13=h87427d6_6 + INFO (pybmtools,lib/python3.12/site-packages/pybmtools.cpython-312-darwin.so): Needed DSO lib/libcurl.4.dylib found in conda-forge/osx-64::libcurl==8.8.0=hf9fcc65_0 + WARNING (pybmtools): run-exports library package conda-forge/osx-64::zlib==1.2.13=h87427d6_6 in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) + WARNING (pybmtools): run-exports library package conda-forge/osx-64::numpy==1.26.4=py312he3a82b2_0 in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) + WARNING (pybmtools): interpreter (Python) package conda-forge/osx-64::python==3.12.3=h1411813_0_cpython in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) + Fixing permissions + INFO :: Time taken to mark (prefix) + 0 replacements in 0 files was 0.07 seconds + TEST START: /opt/mambaforge/envs/bioconda/conda-bld/osx-64/pybmtools-0.1.3-py312h6161d9f_2.tar.bz2 + Renaming work directory '/opt/mambaforge/envs/bioconda/conda-bld/pybmtools_1717607277366/work' to '/opt/mambaforge/envs/bioconda/conda-bld/pybmtools_1717607277366/work_moved_pybmtools-0.1.3-py312h6161d9f_2_osx-64' + shutil.move(work)=/opt/mambaforge/envs/bioconda/conda-bld/pybmtools_1717607277366/work, dest=/opt/mambaforge/envs/bioconda/conda-bld/pybmtools_1717607277366/work_moved_pybmtools-0.1.3-py312h6161d9f_2_osx-64) + Reloading output folder (local): ...working... done + Solving environment (_test_env): ...working... done + + ## Package Plan ## + + environment location: /opt/mambaforge/envs/bioconda/conda-bld/pybmtools_1717607277366/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold + + + The following NEW packages will be INSTALLED: + + bzip2: 1.0.8-h10d778d_5 conda-forge + c-ares: 1.28.1-h10d778d_0 conda-forge + ca-certificates: 2024.6.2-h8857fd0_0 conda-forge + krb5: 1.21.2-hb884880_0 conda-forge + libblas: 3.9.0-22_osx64_openblas conda-forge + libcblas: 3.9.0-22_osx64_openblas conda-forge + libcurl: 8.8.0-hf9fcc65_0 conda-forge + libcxx: 17.0.6-h88467a6_0 conda-forge + libedit: 3.1.20191231-h0678c8f_2 conda-forge + libev: 4.33-h10d778d_2 conda-forge + libexpat: 2.6.2-h73e2aa4_0 conda-forge + libffi: 3.4.2-h0d85af4_5 conda-forge + libgfortran: 5.0.0-13_2_0_h97931a8_3 conda-forge + libgfortran5: 13.2.0-h2873a65_3 conda-forge + liblapack: 3.9.0-22_osx64_openblas conda-forge + libnghttp2: 1.58.0-h64cf6d3_1 conda-forge + libopenblas: 0.3.27-openmp_hfef2a42_0 conda-forge + libsqlite: 3.45.3-h92b6c6a_0 conda-forge + libssh2: 1.11.0-hd019ec5_0 conda-forge + libzlib: 1.3.1-h87427d6_1 conda-forge + llvm-openmp: 18.1.6-h15ab845_0 conda-forge + ncurses: 6.5-h5846eda_0 conda-forge + numpy: 1.26.4-py312he3a82b2_0 conda-forge + openssl: 3.3.1-h87427d6_0 conda-forge + pybmtools: 0.1.3-py312h6161d9f_2 local + python: 3.12.3-h1411813_0_cpython conda-forge + python_abi: 3.12-4_cp312 conda-forge + readline: 8.2-h9e318b2_1 conda-forge + tk: 8.6.13-h1abcd95_1 conda-forge + tzdata: 2024a-h0c530f3_0 conda-forge + xz: 5.2.6-h775f41a_0 conda-forge + zlib: 1.3.1-h87427d6_1 conda-forge + zstd: 1.5.6-h915ae27_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + python3 -c 'import pybmtools as pybm; assert(pybm.numpy == 1); assert(pybm.remote == 1)' + Traceback (most recent call last): + File "", line 1, in + AssertionError + WARNING: Tests failed for pybmtools-0.1.3-py312h6161d9f_2.tar.bz2 - moving package to /opt/mambaforge/envs/bioconda/conda-bld/broken + TESTS FAILED: pybmtools-0.1.3-py312h6161d9f_2.tar.bz2 + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/pybmtools_1717607277366/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/pybmtools_1717607277366/test_tmp + import: 'pybmtools' + import: 'pybmtools' +# Last 100 lines of the build log. diff --git a/recipes/pybmtools/meta.yaml b/recipes/pybmtools/meta.yaml index e0e1d43259ce5..f55d7d4476461 100644 --- a/recipes/pybmtools/meta.yaml +++ b/recipes/pybmtools/meta.yaml @@ -10,8 +10,7 @@ source: sha256: 1708fec1134cca044395ca7c2d8ff8f7689e3f8f6f2d83ab16e36e747cc7b63a build: - skip: True # [py2k or py36] - number: 1 + number: 2 requirements: build: diff --git a/recipes/pycluster/meta.yaml b/recipes/pycluster/meta.yaml index 57fe591abc8d3..13b39a816cc9f 100644 --- a/recipes/pycluster/meta.yaml +++ b/recipes/pycluster/meta.yaml @@ -7,7 +7,7 @@ source: md5: 9ae5425af709724e289546619d1838c8 build: - number: 7 + number: 8 script: {{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv requirements: diff --git a/recipes/pydmtools/build_failure.linux-64.yaml b/recipes/pydmtools/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..abf6a3d8b46a3 --- /dev/null +++ b/recipes/pydmtools/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 8f10b05186e148a79623596e12e53edcb2c6b717a006b7f0428a546e4daeb6fe # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + byte-compiling $PREFIX/lib/python3.12/site-packages/pydmtest/__init__.py to __init__.cpython-312.pyc + byte-compiling $PREFIX/lib/python3.12/site-packages/pydmtest/test.py to test.cpython-312.pyc + running install_egg_info + Copying pydmtools.egg-info to $PREFIX/lib/python3.12/site-packages/pydmtools-0.1.1-py3.12.egg-info + running install_scripts + writing list of installed files to 'record.txt' + + Resource usage statistics from building pydmtools: + Process count: 6 + CPU time: Sys=0:00:00.1, User=0:00:00.7 + Memory: 110.1M + Disk usage: 812B + Time elapsed: 0:00:04.0 + + + compiling .pyc files... + number of files: 12 + Warning: rpath /opt/conda/conda-bld/pydmtools_1717606541532/_build_env/lib is outside prefix /opt/conda/conda-bld/pydmtools_1717606541532/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla (removing it) + INFO: sysroot: '/opt/conda/conda-bld/pydmtools_1717606541532/_build_env/x86_64-conda-linux-gnu/sysroot/' files: '['usr/share/zoneinfo/zone.tab', 'usr/share/zoneinfo/tzdata.zi', 'usr/share/zoneinfo/right/Zulu', 'usr/share/zoneinfo/right/WET']' + INFO (pydmtools,lib/python3.12/site-packages/pydmtools.cpython-312-x86_64-linux-gnu.so): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libm.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 + INFO (pydmtools,lib/python3.12/site-packages/pydmtools.cpython-312-x86_64-linux-gnu.so): Needed DSO lib/libz.so.1 found in conda-forge/linux-64::libzlib==1.2.13=h4ab18f5_6 + INFO (pydmtools,lib/python3.12/site-packages/pydmtools.cpython-312-x86_64-linux-gnu.so): Needed DSO lib/libcurl.so.4 found in conda-forge/linux-64::libcurl==8.8.0=hca28451_0 + INFO (pydmtools,lib/python3.12/site-packages/pydmtools.cpython-312-x86_64-linux-gnu.so): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libc.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 + WARNING (pydmtools): interpreter (Python) package conda-forge/linux-64::python==3.12.3=hab00c5b_0_cpython in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) + WARNING (pydmtools): run-exports library package conda-forge/linux-64::zlib==1.2.13=h4ab18f5_6 in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) + WARNING (pydmtools): run-exports library package conda-forge/linux-64::numpy==1.26.4=py312heda63a1_0 in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) + Fixing permissions + INFO :: Time taken to mark (prefix) + 0 replacements in 0 files was 0.01 seconds + TEST START: /opt/conda/conda-bld/linux-64/pydmtools-0.1.1-py312hfa7e9eb_2.tar.bz2 + Renaming work directory '/opt/conda/conda-bld/pydmtools_1717606541532/work' to '/opt/conda/conda-bld/pydmtools_1717606541532/work_moved_pydmtools-0.1.1-py312hfa7e9eb_2_linux-64' + shutil.move(work)=/opt/conda/conda-bld/pydmtools_1717606541532/work, dest=/opt/conda/conda-bld/pydmtools_1717606541532/work_moved_pydmtools-0.1.1-py312hfa7e9eb_2_linux-64) + Reloading output folder (local, file:///opt/host-conda-bld): ...working... done + Solving environment (_test_env): ...working... done + + ## Package Plan ## + + environment location: /opt/conda/conda-bld/pydmtools_1717606541532/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol + + + The following NEW packages will be INSTALLED: + + _libgcc_mutex: 0.1-conda_forge conda-forge + _openmp_mutex: 4.5-2_gnu conda-forge + bzip2: 1.0.8-hd590300_5 conda-forge + c-ares: 1.28.1-hd590300_0 conda-forge + ca-certificates: 2024.6.2-hbcca054_0 conda-forge + keyutils: 1.6.1-h166bdaf_0 conda-forge + krb5: 1.21.2-h659d440_0 conda-forge + ld_impl_linux-64: 2.40-hf3520f5_2 conda-forge + libblas: 3.9.0-22_linux64_openblas conda-forge + libcblas: 3.9.0-22_linux64_openblas conda-forge + libcurl: 8.8.0-hca28451_0 conda-forge + libedit: 3.1.20191231-he28a2e2_2 conda-forge + libev: 4.33-hd590300_2 conda-forge + libexpat: 2.6.2-h59595ed_0 conda-forge + libffi: 3.4.2-h7f98852_5 conda-forge + libgcc-ng: 13.2.0-h77fa898_7 conda-forge + libgfortran-ng: 13.2.0-h69a702a_7 conda-forge + libgfortran5: 13.2.0-hca663fb_7 conda-forge + libgomp: 13.2.0-h77fa898_7 conda-forge + liblapack: 3.9.0-22_linux64_openblas conda-forge + libnghttp2: 1.58.0-h47da74e_1 conda-forge + libnsl: 2.0.1-hd590300_0 conda-forge + libopenblas: 0.3.27-pthreads_h413a1c8_0 conda-forge + libsqlite: 3.45.3-h2797004_0 conda-forge + libssh2: 1.11.0-h0841786_0 conda-forge + libstdcxx-ng: 13.2.0-hc0a3c3a_7 conda-forge + libuuid: 2.38.1-h0b41bf4_0 conda-forge + libxcrypt: 4.4.36-hd590300_1 conda-forge + libzlib: 1.3.1-h4ab18f5_1 conda-forge + ncurses: 6.5-h59595ed_0 conda-forge + numpy: 1.26.4-py312heda63a1_0 conda-forge + openssl: 3.3.1-h4ab18f5_0 conda-forge + pip: 24.0-pyhd8ed1ab_0 conda-forge + pydmtools: 0.1.1-py312hfa7e9eb_2 local + python: 3.12.3-hab00c5b_0_cpython conda-forge + python_abi: 3.12-4_cp312 conda-forge + readline: 8.2-h8228510_1 conda-forge + setuptools: 70.0.0-pyhd8ed1ab_0 conda-forge + tk: 8.6.13-noxft_h4845f30_101 conda-forge + tzdata: 2024a-h0c530f3_0 conda-forge + wheel: 0.43.0-pyhd8ed1ab_1 conda-forge + xz: 5.2.6-h166bdaf_0 conda-forge + zlib: 1.3.1-h4ab18f5_1 conda-forge + zstd: 1.5.6-ha6fb4c9_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + export PREFIX=/opt/conda/conda-bld/pydmtools_1717606541532/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol + export SRC_DIR=/opt/conda/conda-bld/pydmtools_1717606541532/test_tmp + import: 'pydmtools' + import: 'pydmtools' + python3 -c 'import pydmtools as pydm; assert(pydm.numpy == 1); assert(pydm.remote == 1)' + Traceback (most recent call last): + File "", line 1, in + AssertionError + WARNING: Tests failed for pydmtools-0.1.1-py312hfa7e9eb_2.tar.bz2 - moving package to /opt/conda/conda-bld/broken + TESTS FAILED: pydmtools-0.1.1-py312hfa7e9eb_2.tar.bz2 +# Last 100 lines of the build log. diff --git a/recipes/pydmtools/build_failure.osx-64.yaml b/recipes/pydmtools/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..6fde2201083aa --- /dev/null +++ b/recipes/pydmtools/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 8f10b05186e148a79623596e12e53edcb2c6b717a006b7f0428a546e4daeb6fe # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + x86_64-apple-darwin13.4.0-clang -fno-strict-overflow -DNDEBUG -O2 -Wall -fPIC -O2 -isystem $PREFIX/include -fPIC -O2 -isystem $PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pydmtools-0.1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Ilibdm -I$PREFIX/include/python3.12 -I$PREFIX/include/python3.12 -c libdm/bmWrite.c -o build/temp.macosx-10.9-x86_64-cpython-312/libdm/bmWrite.o + x86_64-apple-darwin13.4.0-clang -fno-strict-overflow -DNDEBUG -O2 -Wall -fPIC -O2 -isystem $PREFIX/include -fPIC -O2 -isystem $PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pydmtools-0.1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Ilibdm -I$PREFIX/include/python3.12 -I$PREFIX/include/python3.12 -c libdm/io.c -o build/temp.macosx-10.9-x86_64-cpython-312/libdm/io.o + x86_64-apple-darwin13.4.0-clang -fno-strict-overflow -DNDEBUG -O2 -Wall -fPIC -O2 -isystem $PREFIX/include -fPIC -O2 -isystem $PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pydmtools-0.1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -Ilibdm -I$PREFIX/include/python3.12 -I$PREFIX/include/python3.12 -c pydmtools.c -o build/temp.macosx-10.9-x86_64-cpython-312/pydmtools.o + x86_64-apple-darwin13.4.0-clang -bundle -undefined dynamic_lookup -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pydmtools-0.1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 build/temp.macosx-10.9-x86_64-cpython-312/libdm/bmRead.o build/temp.macosx-10.9-x86_64-cpython-312/libdm/bmStats.o build/temp.macosx-10.9-x86_64-cpython-312/libdm/bmValues.o build/temp.macosx-10.9-x86_64-cpython-312/libdm/bmWrite.o build/temp.macosx-10.9-x86_64-cpython-312/libdm/io.o build/temp.macosx-10.9-x86_64-cpython-312/pydmtools.o -L$PREFIX/lib -L$PREFIX/lib/python3.12/config-3.12-darwin -L$PREFIX/lib -lm -lz -lcurl -o build/lib.macosx-10.9-x86_64-cpython-312/pydmtools.cpython-312-darwin.so + running install_lib + copying build/lib.macosx-10.9-x86_64-cpython-312/pydmtools.cpython-312-darwin.so -> $PREFIX/lib/python3.12/site-packages + creating $PREFIX/lib/python3.12/site-packages/pydmtest + copying build/lib.macosx-10.9-x86_64-cpython-312/pydmtest/__init__.py -> $PREFIX/lib/python3.12/site-packages/pydmtest + copying build/lib.macosx-10.9-x86_64-cpython-312/pydmtest/test.py -> $PREFIX/lib/python3.12/site-packages/pydmtest + copying build/lib.macosx-10.9-x86_64-cpython-312/pydmtest/testnp.dm -> $PREFIX/lib/python3.12/site-packages/pydmtest + copying build/lib.macosx-10.9-x86_64-cpython-312/pydmtest/test.dm -> $PREFIX/lib/python3.12/site-packages/pydmtest + byte-compiling $PREFIX/lib/python3.12/site-packages/pydmtest/__init__.py to __init__.cpython-312.pyc + byte-compiling $PREFIX/lib/python3.12/site-packages/pydmtest/test.py to test.cpython-312.pyc + running install_egg_info + Copying pydmtools.egg-info to $PREFIX/lib/python3.12/site-packages/pydmtools-0.1.1-py3.12.egg-info + running install_scripts + writing list of installed files to 'record.txt' + + Resource usage statistics from building pydmtools: + Process count: 4 + CPU time: Sys=0:00:00.2, User=0:00:00.5 + Memory: 88.0M + Disk usage: 1.3K + Time elapsed: 0:00:04.5 + + + compiling .pyc files... + number of files: 12 + INFO: sysroot: '/System/Library/Frameworks/' files: '['vmnet.framework/Versions/Current', 'vmnet.framework/Versions/A/_CodeSignature/CodeResources', 'vmnet.framework/Versions/A/Resources/version.plist', 'vmnet.framework/Versions/A/Resources/InfoPlist.loctable']' + INFO: sysroot: '/usr/lib/' files: '['zsh/5.9/zsh/zselect.so', 'zsh/5.9/zsh/zpty.so', 'zsh/5.9/zsh/zprof.so', 'zsh/5.9/zsh/zleparameter.so']' + INFO: sysroot: '/opt/X11/' files: '[]' + INFO (pydmtools,lib/python3.12/site-packages/pydmtools.cpython-312-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + INFO (pydmtools,lib/python3.12/site-packages/pydmtools.cpython-312-darwin.so): Needed DSO lib/libz.1.dylib found in conda-forge/osx-64::libzlib==1.2.13=h87427d6_6 + INFO (pydmtools,lib/python3.12/site-packages/pydmtools.cpython-312-darwin.so): Needed DSO lib/libcurl.4.dylib found in conda-forge/osx-64::libcurl==8.8.0=hf9fcc65_0 + WARNING (pydmtools): run-exports library package conda-forge/osx-64::numpy==1.26.4=py312he3a82b2_0 in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) + WARNING (pydmtools): run-exports library package conda-forge/osx-64::zlib==1.2.13=h87427d6_6 in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) + WARNING (pydmtools): interpreter (Python) package conda-forge/osx-64::python==3.12.3=h1411813_0_cpython in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) + Fixing permissions + INFO :: Time taken to mark (prefix) + 0 replacements in 0 files was 0.07 seconds + TEST START: /opt/mambaforge/envs/bioconda/conda-bld/osx-64/pydmtools-0.1.1-py312h6161d9f_2.tar.bz2 + Renaming work directory '/opt/mambaforge/envs/bioconda/conda-bld/pydmtools_1717607914466/work' to '/opt/mambaforge/envs/bioconda/conda-bld/pydmtools_1717607914466/work_moved_pydmtools-0.1.1-py312h6161d9f_2_osx-64' + shutil.move(work)=/opt/mambaforge/envs/bioconda/conda-bld/pydmtools_1717607914466/work, dest=/opt/mambaforge/envs/bioconda/conda-bld/pydmtools_1717607914466/work_moved_pydmtools-0.1.1-py312h6161d9f_2_osx-64) + Reloading output folder (local): ...working... done + Solving environment (_test_env): ...working... done + + ## Package Plan ## + + environment location: /opt/mambaforge/envs/bioconda/conda-bld/pydmtools_1717607914466/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold + + + The following NEW packages will be INSTALLED: + + bzip2: 1.0.8-h10d778d_5 conda-forge + c-ares: 1.28.1-h10d778d_0 conda-forge + ca-certificates: 2024.6.2-h8857fd0_0 conda-forge + krb5: 1.21.2-hb884880_0 conda-forge + libblas: 3.9.0-22_osx64_openblas conda-forge + libcblas: 3.9.0-22_osx64_openblas conda-forge + libcurl: 8.8.0-hf9fcc65_0 conda-forge + libcxx: 17.0.6-h88467a6_0 conda-forge + libedit: 3.1.20191231-h0678c8f_2 conda-forge + libev: 4.33-h10d778d_2 conda-forge + libexpat: 2.6.2-h73e2aa4_0 conda-forge + libffi: 3.4.2-h0d85af4_5 conda-forge + libgfortran: 5.0.0-13_2_0_h97931a8_3 conda-forge + libgfortran5: 13.2.0-h2873a65_3 conda-forge + liblapack: 3.9.0-22_osx64_openblas conda-forge + libnghttp2: 1.58.0-h64cf6d3_1 conda-forge + libopenblas: 0.3.27-openmp_hfef2a42_0 conda-forge + libsqlite: 3.45.3-h92b6c6a_0 conda-forge + libssh2: 1.11.0-hd019ec5_0 conda-forge + libzlib: 1.3.1-h87427d6_1 conda-forge + llvm-openmp: 18.1.6-h15ab845_0 conda-forge + ncurses: 6.5-h5846eda_0 conda-forge + numpy: 1.26.4-py312he3a82b2_0 conda-forge + openssl: 3.3.1-h87427d6_0 conda-forge + pydmtools: 0.1.1-py312h6161d9f_2 local + python: 3.12.3-h1411813_0_cpython conda-forge + python_abi: 3.12-4_cp312 conda-forge + readline: 8.2-h9e318b2_1 conda-forge + tk: 8.6.13-h1abcd95_1 conda-forge + tzdata: 2024a-h0c530f3_0 conda-forge + xz: 5.2.6-h775f41a_0 conda-forge + zlib: 1.3.1-h87427d6_1 conda-forge + zstd: 1.5.6-h915ae27_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + python3 -c 'import pydmtools as pydm; assert(pydm.numpy == 1); assert(pydm.remote == 1)' + Traceback (most recent call last): + File "", line 1, in + AssertionError + WARNING: Tests failed for pydmtools-0.1.1-py312h6161d9f_2.tar.bz2 - moving package to /opt/mambaforge/envs/bioconda/conda-bld/broken + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/pydmtools_1717607914466/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/pydmtools_1717607914466/test_tmp + import: 'pydmtools' + import: 'pydmtools' + TESTS FAILED: pydmtools-0.1.1-py312h6161d9f_2.tar.bz2 +# Last 100 lines of the build log. diff --git a/recipes/pydmtools/meta.yaml b/recipes/pydmtools/meta.yaml index de50a7bfe9039..c472ca68d1c3d 100644 --- a/recipes/pydmtools/meta.yaml +++ b/recipes/pydmtools/meta.yaml @@ -10,8 +10,7 @@ source: sha256: 5f24ea5d41431509adeed1c834c4efd88c5bb01ec969fb00b30d5f6841de83a9 build: - skip: True # [py2k or py36] - number: 1 + number: 2 requirements: build: diff --git a/recipes/pydna_repeatfinder/meta.yaml b/recipes/pydna_repeatfinder/meta.yaml index 6bfa65d462c1d..23c9b137b3fbf 100644 --- a/recipes/pydna_repeatfinder/meta.yaml +++ b/recipes/pydna_repeatfinder/meta.yaml @@ -12,7 +12,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 script: "{{ PYTHON }} -m pip install --no-deps --no-build-isolation --no-cache-dir . -vvv" entry_points: - pydna_repeatfinder = pydna_repeatfinder.cli:run diff --git a/recipes/pydnase/build_failure.linux-64.yaml b/recipes/pydnase/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..e0c2bffe86dc4 --- /dev/null +++ b/recipes/pydnase/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 88fd8bc835682f62fa91454e563f504f3f4a98d0ef926d459bc495729b64c202 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + Verifying transaction: ...working... done + Executing transaction: ...working... done + Reloading output folder (local, file:///opt/host-conda-bld): ...working... done + Solving environment (_test_env): ...working... done + + ## Package Plan ## + + environment location: /opt/conda/conda-bld/pydnase_1718210159482/_build_env + + + The following NEW packages will be INSTALLED: + + _libgcc_mutex: 0.1-conda_forge conda-forge + _openmp_mutex: 4.5-2_gnu conda-forge + binutils_impl_linux-64: 2.40-ha1999f0_3 conda-forge + binutils_linux-64: 2.40-hb3c18ed_6 conda-forge + gcc_impl_linux-64: 12.3.0-h58ffeeb_7 conda-forge + gcc_linux-64: 12.3.0-h6b3dd4b_6 conda-forge + kernel-headers_linux-64: 2.6.32-he073ed8_17 conda-forge + ld_impl_linux-64: 2.40-hf3520f5_3 conda-forge + libgcc-devel_linux-64: 12.3.0-h0223996_107 conda-forge + libgcc-ng: 13.2.0-h77fa898_7 conda-forge + libgomp: 13.2.0-h77fa898_7 conda-forge + libsanitizer: 12.3.0-hb8811af_7 conda-forge + libstdcxx-ng: 13.2.0-hc0a3c3a_7 conda-forge + sysroot_linux-64: 2.12-he073ed8_17 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Found source in cache: pyDNase-0.3.0_dba03cadca.tar.gz + Extracting download + source tree in: /opt/conda/conda-bld/pydnase_1718210159482/work + export PREFIX=/opt/conda/conda-bld/pydnase_1718210159482/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place + export BUILD_PREFIX=/opt/conda/conda-bld/pydnase_1718210159482/_build_env + export SRC_DIR=/opt/conda/conda-bld/pydnase_1718210159482/work + INFO: activate-binutils_linux-64.sh made the following environmental changes: + ADDR2LINE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-addr2line + AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar + AS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-as + CXXFILT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cfilt + DWP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-dwp + ELFEDIT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-elfedit + GPROF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gprof + LD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld + LD_GOLD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld.gold + NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-nm + OBJCOPY=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objcopy + OBJDUMP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objdump + RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib + READELF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-readelf + SIZE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-size + STRINGS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strings + STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip + INFO: activate-gcc_linux-64.sh made the following environmental changes: + BUILD=x86_64-conda-linux-gnu + CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pydnase-0.3.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr + CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot + CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu + CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu + CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pydnase-0.3.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + Traceback (most recent call last): + File "/opt/conda/conda-bld/pydnase_1718210159482/work/setup.py", line 3, in + import imp + ModuleNotFoundError: No module named 'imp' + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/pydnase_1718210159482/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/pydnase/build_failure.osx-64.yaml b/recipes/pydnase/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..0f9c9f9ef2bc5 --- /dev/null +++ b/recipes/pydnase/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 88fd8bc835682f62fa91454e563f504f3f4a98d0ef926d459bc495729b64c202 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + The following NEW packages will be INSTALLED: + + ca-certificates: 2024.6.2-h8857fd0_0 conda-forge + cctools_osx-64: 986-ha1c5b94_0 conda-forge + clang: 16.0.6-default_ha3b9224_8 conda-forge + clang-16: 16.0.6-default_h4c8afb6_8 conda-forge + clang_impl_osx-64: 16.0.6-h8787910_16 conda-forge + clang_osx-64: 16.0.6-hb91bd55_16 conda-forge + clangxx: 16.0.6-default_ha3b9224_8 conda-forge + compiler-rt: 16.0.6-ha38d28d_2 conda-forge + compiler-rt_osx-64: 16.0.6-ha38d28d_2 conda-forge + icu: 73.2-hf5e326d_0 conda-forge + ld64_osx-64: 711-ha20a434_0 conda-forge + libclang-cpp16: 16.0.6-default_h4c8afb6_8 conda-forge + libcxx: 17.0.6-h88467a6_0 conda-forge + libiconv: 1.17-hd75f5a5_2 conda-forge + libllvm16: 16.0.6-hbedff68_3 conda-forge + libxml2: 2.12.7-h3e169fe_1 conda-forge + libzlib: 1.3.1-h87427d6_1 conda-forge + llvm-tools: 16.0.6-hbedff68_3 conda-forge + openssl: 3.3.1-h87427d6_0 conda-forge + sigtool: 0.1.3-h88f4db0_0 conda-forge + tapi: 1100.0.11-h9ce4665_0 conda-forge + xz: 5.2.6-h775f41a_0 conda-forge + zstd: 1.5.6-h915ae27_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache + Downloading source to cache: pyDNase-0.3.0_dba03cadca.tar.gz + Downloading https://pypi.io/packages/source/p/pyDNase/pyDNase-0.3.0.tar.gz + Success + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/conda-bld/pydnase_1718128258116/work/setup.py", line 3, in + import imp + ModuleNotFoundError: No module named 'imp' + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/pydnase_1718128258116/work + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/pydnase_1718128258116/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/pydnase_1718128258116/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/pydnase_1718128258116/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + raise subprocess.CalledProcessError(proc.returncode, _args) + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pydnase-0.3.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/pydnase_1718128258116/work/conda_build.sh']' returned non-zero exit status 1. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pydnase-0.3.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 +# Last 100 lines of the build log. diff --git a/recipes/pydnase/meta.yaml b/recipes/pydnase/meta.yaml index 05ddc3c862cce..048e6f61da7c6 100644 --- a/recipes/pydnase/meta.yaml +++ b/recipes/pydnase/meta.yaml @@ -9,7 +9,7 @@ source: sha256: dba03cadca37929a1cc41545e962136f29efc41f8e3c6de042c51c47ee04d558 build: - number: 5 + number: 6 skip: True # [py<30] requirements: diff --git a/recipes/pyfamsa/meta.yaml b/recipes/pyfamsa/meta.yaml index f0be2d59db35b..6ec6d94b4d7c6 100644 --- a/recipes/pyfamsa/meta.yaml +++ b/recipes/pyfamsa/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 9a09e04079b5d6401b62fed2b80886ffdd5626c30686697ff8c2b38e018e6e87 build: - number: 0 + number: 1 skip: True # [py2k] script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --use-pep517 -vvv" run_exports: diff --git a/recipes/pyfastani/meta.yaml b/recipes/pyfastani/meta.yaml index d85b7057c9ad7..d3da1db4f2b3b 100644 --- a/recipes/pyfastani/meta.yaml +++ b/recipes/pyfastani/meta.yaml @@ -10,7 +10,7 @@ source: sha256: ad6c28303290a2389c29ed20db8266bbc4bf89a5b1bf64a7514d1bc9c6ba2d92 build: - number: 0 + number: 1 skip: True #[py2k] script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed -vvv " run_exports: diff --git a/recipes/pyfastx/meta.yaml b/recipes/pyfastx/meta.yaml index 0dfaf051f3fb7..0abde661a1d5f 100644 --- a/recipes/pyfastx/meta.yaml +++ b/recipes/pyfastx/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 2 script: {{ PYTHON }} -m pip install . --no-deps -vvv skip: True # [py < 36] entry_points: @@ -47,4 +47,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/pyfba/build_failure.linux-64.yaml b/recipes/pyfba/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..6e83520a4a079 --- /dev/null +++ b/recipes/pyfba/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 22daaae9a7592ff986e1ec74540f0449e12bbf9b73a4166dc22affadda3c0096 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + [32mglpk 5.0.* [0m is requested and can be installed; + [32mpyglpk[0m is installable with the potential options + [32mpyglpk 0.4.6[0m would require + [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; + [31mpyglpk 0.4.6[0m would require + [31mglpk >=4.65,<4.66.0a0 [0m, which conflicts with any installable versions previously reported; + [32mpyglpk [0.4.6|0.4.7][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32mpyglpk [0.4.6|0.4.7][0m would require + [32mpython_abi 3.11.* *_cp311[0m, which can be installed; + [32mpyglpk [0.4.6|0.4.7][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mpyglpk [0.4.6|0.4.7][0m would require + [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; + [32mpyglpk [0.4.6|0.4.7][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [31mpython 3.12.* *_cpython[0m is not installable because there are no viable options + [31mpython [3.12.0|3.12.1|3.12.2|3.12.3][0m would require + [31mpython_abi 3.12.* *_cp312[0m, which conflicts with any installable versions previously reported; + [31mpython 3.12.0rc3[0m would require + [31m_python_rc[0m, which does not exist (perhaps a missing channel). + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2308, in build + output_metas = expand_outputs([(m, need_source_download, need_reparse_in_env)]) + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 916, in expand_outputs + for output_dict, m in deepcopy(_m).get_output_metadata_set( + File "/opt/conda/lib/python3.10/site-packages/conda_build/metadata.py", line 2737, in get_output_metadata_set + conda_packages = finalize_outputs_pass( + File "/opt/conda/lib/python3.10/site-packages/conda_build/metadata.py", line 1095, in finalize_outputs_pass + fm = finalize_metadata( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 650, in finalize_metadata + build_unsat, host_unsat = add_upstream_pins( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 491, in add_upstream_pins + host_deps, host_unsat, extra_run_specs_from_host = _read_upstream_pin_files( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 444, in _read_upstream_pin_files + deps, precs, unsat = get_env_dependencies( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 156, in get_env_dependencies + precs = environ.get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("_python_rc"), MatchSpec("python==3.12.0rc3=rc3_hab00c5b_1_cpython")} + Encountered problems while solving: + - nothing provides _python_rc needed by python-3.12.0rc3-rc3_hab00c5b_1_cpython + + Could not solve for environment specs + The following packages are incompatible + [32mglpk 5.0.* [0m is requested and can be installed; + [32mpyglpk[0m is installable with the potential options + [32mpyglpk 0.4.6[0m would require + [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; + [31mpyglpk 0.4.6[0m would require + [31mglpk >=4.65,<4.66.0a0 [0m, which conflicts with any installable versions previously reported; + [32mpyglpk [0.4.6|0.4.7][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32mpyglpk [0.4.6|0.4.7][0m would require + [32mpython_abi 3.11.* *_cp311[0m, which can be installed; + [32mpyglpk [0.4.6|0.4.7][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mpyglpk [0.4.6|0.4.7][0m would require + [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; + [32mpyglpk [0.4.6|0.4.7][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [31mpython 3.12.* *_cpython[0m is not installable because there are no viable options + [31mpython [3.12.0|3.12.1|3.12.2|3.12.3][0m would require + [31mpython_abi 3.12.* *_cp312[0m, which conflicts with any installable versions previously reported; + [31mpython 3.12.0rc3[0m would require + [31m_python_rc[0m, which does not exist (perhaps a missing channel). +# Last 100 lines of the build log. diff --git a/recipes/pyfba/build_failure.osx-64.yaml b/recipes/pyfba/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..6dd29856bc02f --- /dev/null +++ b/recipes/pyfba/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 22daaae9a7592ff986e1ec74540f0449e12bbf9b73a4166dc22affadda3c0096 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + glpk 5.0.* is requested and can be installed; + pyglpk is installable with the potential options + pyglpk 0.4.6 would require + python_abi 3.8 *_pypy38_pp73, which can be installed; + pyglpk 0.4.6 would require + glpk >=4.65,<4.66.0a0 , which conflicts with any installable versions previously reported; + pyglpk [0.4.6|0.4.7] would require + python_abi 3.10.* *_cp310, which can be installed; + pyglpk [0.4.6|0.4.7] would require + python_abi 3.11.* *_cp311, which can be installed; + pyglpk [0.4.6|0.4.7] would require + python_abi 3.8.* *_cp38, which can be installed; + pyglpk [0.4.6|0.4.7] would require + python_abi 3.9.* *_cp39, which can be installed; + pyglpk [0.4.6|0.4.7] would require + python_abi 3.9 *_pypy39_pp73, which can be installed; + python 3.12.* *_cpython is not installable because there are no viable options + python [3.12.0|3.12.1|3.12.2|3.12.3] would require + python_abi 3.12.* *_cp312, which conflicts with any installable versions previously reported; + python 3.12.0rc3 would require + _python_rc, which does not exist (perhaps a missing channel). + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2308, in build + output_metas = expand_outputs([(m, need_source_download, need_reparse_in_env)]) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 916, in expand_outputs + for output_dict, m in deepcopy(_m).get_output_metadata_set( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 2737, in get_output_metadata_set + conda_packages = finalize_outputs_pass( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 1095, in finalize_outputs_pass + fm = finalize_metadata( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 650, in finalize_metadata + build_unsat, host_unsat = add_upstream_pins( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 491, in add_upstream_pins + host_deps, host_unsat, extra_run_specs_from_host = _read_upstream_pin_files( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 444, in _read_upstream_pin_files + deps, precs, unsat = get_env_dependencies( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 156, in get_env_dependencies + precs = environ.get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("_python_rc"), MatchSpec("python==3.12.0rc3=rc3_h30d4d87_1_cpython")} + Encountered problems while solving: + - nothing provides _python_rc needed by python-3.12.0rc3-rc3_h30d4d87_1_cpython + + Could not solve for environment specs + The following packages are incompatible + glpk 5.0.* is requested and can be installed; + pyglpk is installable with the potential options + pyglpk 0.4.6 would require + python_abi 3.8 *_pypy38_pp73, which can be installed; + pyglpk 0.4.6 would require + glpk >=4.65,<4.66.0a0 , which conflicts with any installable versions previously reported; + pyglpk [0.4.6|0.4.7] would require + python_abi 3.10.* *_cp310, which can be installed; + pyglpk [0.4.6|0.4.7] would require + python_abi 3.11.* *_cp311, which can be installed; + pyglpk [0.4.6|0.4.7] would require + python_abi 3.8.* *_cp38, which can be installed; + pyglpk [0.4.6|0.4.7] would require + python_abi 3.9.* *_cp39, which can be installed; + pyglpk [0.4.6|0.4.7] would require + python_abi 3.9 *_pypy39_pp73, which can be installed; + python 3.12.* *_cpython is not installable because there are no viable options + python [3.12.0|3.12.1|3.12.2|3.12.3] would require + python_abi 3.12.* *_cp312, which conflicts with any installable versions previously reported; + python 3.12.0rc3 would require + _python_rc, which does not exist (perhaps a missing channel). +# Last 100 lines of the build log. diff --git a/recipes/pyfba/meta.yaml b/recipes/pyfba/meta.yaml index a43d6175a18f0..738f2847cbac4 100644 --- a/recipes/pyfba/meta.yaml +++ b/recipes/pyfba/meta.yaml @@ -11,7 +11,7 @@ source: sha256: "3f9a7c47cceb15b90eee1f8b572250919e416c2b8ee44a073a81de74342df96a" build: - number: 5 + number: 6 skip: True # [py < 38] script: "{{ PYTHON }} -m pip install --ignore-installed --no-cache-dir -vvv ." diff --git a/recipes/pygtftk/meta.yaml b/recipes/pygtftk/meta.yaml index 16ae184f0638d..c471dc44301ef 100644 --- a/recipes/pygtftk/meta.yaml +++ b/recipes/pygtftk/meta.yaml @@ -9,7 +9,7 @@ source: sha256: e31b1db156a2d20427c03b6ad868ef2e90a9a834a8842feb7fa284c9eb0690b7 build: - number: 2 + number: 3 skip: True # [py != 39] script: {{ PYTHON }} -m pip install . --no-deps -vv run_exports: @@ -68,4 +68,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/pyhmmer/meta.yaml b/recipes/pyhmmer/meta.yaml index ea675212bdbe2..3dbc2823f1048 100644 --- a/recipes/pyhmmer/meta.yaml +++ b/recipes/pyhmmer/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 8457547adaa5f570f9a360a015a968b52709634540f95c17f687916640a075d1 build: - number: 0 + number: 1 skip: True # [py2k or win] script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir --use-pep517 -vvv" run_exports: diff --git a/recipes/pylibseq/meta.yaml b/recipes/pylibseq/meta.yaml index 8168cfda3102b..1ef9f36e89e2e 100644 --- a/recipes/pylibseq/meta.yaml +++ b/recipes/pylibseq/meta.yaml @@ -12,7 +12,7 @@ source: - patch build: - number: 6 + number: 7 skip: True # [py<30 or osx] script: {{ PYTHON }} -m pip install . --no-deps -vv diff --git a/recipes/pymvpa/build_failure.linux-64.yaml b/recipes/pymvpa/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..3910a1f20ded4 --- /dev/null +++ b/recipes/pymvpa/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: ee2804e76593aadb2efc6659b5201dbf6940bd3c4e68c2618bb384d62f47b8ed # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + + + The following NEW packages will be INSTALLED: + + _libgcc_mutex: 0.1-conda_forge conda-forge + _openmp_mutex: 4.5-2_gnu conda-forge + binutils_impl_linux-64: 2.40-ha1999f0_2 conda-forge + binutils_linux-64: 2.40-hdade7a5_3 conda-forge + gcc_impl_linux-64: 12.3.0-h58ffeeb_7 conda-forge + gcc_linux-64: 12.3.0-h6477408_3 conda-forge + gxx_impl_linux-64: 12.3.0-h2a574ab_7 conda-forge + gxx_linux-64: 12.3.0-h4a1b8e8_3 conda-forge + kernel-headers_linux-64: 2.6.32-he073ed8_17 conda-forge + ld_impl_linux-64: 2.40-hf3520f5_2 conda-forge + libgcc-devel_linux-64: 12.3.0-h0223996_107 conda-forge + libgcc-ng: 13.2.0-h77fa898_7 conda-forge + libgomp: 13.2.0-h77fa898_7 conda-forge + libsanitizer: 12.3.0-hb8811af_7 conda-forge + libstdcxx-devel_linux-64: 12.3.0-h0223996_107 conda-forge + libstdcxx-ng: 13.2.0-hc0a3c3a_7 conda-forge + sysroot_linux-64: 2.12-he073ed8_17 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Found source in cache: 2.6.5_ea0f4c4f81.tar.gz + Extracting download + source tree in: /opt/conda/conda-bld/pymvpa_1717536574942/work + export PREFIX=/opt/conda/conda-bld/pymvpa_1717536574942/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh + export BUILD_PREFIX=/opt/conda/conda-bld/pymvpa_1717536574942/_build_env + export SRC_DIR=/opt/conda/conda-bld/pymvpa_1717536574942/work + INFO: activate-binutils_linux-64.sh made the following environmental changes: + ADDR2LINE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-addr2line + AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar + AS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-as + CXXFILT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cfilt + ELFEDIT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-elfedit + GPROF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gprof + LD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld + LD_GOLD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld.gold + NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-nm + OBJCOPY=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objcopy + OBJDUMP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objdump + RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib + READELF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-readelf + SIZE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-size + STRINGS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strings + STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip + INFO: activate-gcc_linux-64.sh made the following environmental changes: + BUILD=x86_64-conda-linux-gnu + CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pymvpa-2.6.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr + CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot + CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu + CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu + CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pymvpa-2.6.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + INFO: activate-gxx_linux-64.sh made the following environmental changes: + CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pymvpa-2.6.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pymvpa-2.6.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-g + Traceback (most recent call last): + File "/opt/conda/conda-bld/pymvpa_1717536574942/work/setup.py", line 12, in + from numpy.distutils.core import setup, Extension + ModuleNotFoundError: No module named 'numpy.distutils' + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/pymvpa_1717536574942/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/pymvpa/build_failure.osx-64.yaml b/recipes/pymvpa/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..9eb239e68743e --- /dev/null +++ b/recipes/pymvpa/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: ee2804e76593aadb2efc6659b5201dbf6940bd3c4e68c2618bb384d62f47b8ed # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + clang: 16.0.6-hd4457cd_7 conda-forge + clang-16: 16.0.6-default_h4c8afb6_7 conda-forge + clang_impl_osx-64: 16.0.6-h8787910_15 conda-forge + clang_osx-64: 16.0.6-hb91bd55_15 conda-forge + clangxx: 16.0.6-default_ha3b9224_7 conda-forge + clangxx_impl_osx-64: 16.0.6-h6d92fbe_15 conda-forge + clangxx_osx-64: 16.0.6-hb91bd55_15 conda-forge + compiler-rt: 16.0.6-ha38d28d_2 conda-forge + compiler-rt_osx-64: 16.0.6-ha38d28d_2 conda-forge + icu: 73.2-hf5e326d_0 conda-forge + ld64_osx-64: 711-ha20a434_0 conda-forge + libclang-cpp16: 16.0.6-default_h4c8afb6_7 conda-forge + libcxx: 17.0.6-h88467a6_0 conda-forge + libiconv: 1.17-hd75f5a5_2 conda-forge + libllvm16: 16.0.6-hbedff68_3 conda-forge + libxml2: 2.12.7-hfa5d230_0 conda-forge + libzlib: 1.3.1-h87427d6_1 conda-forge + llvm-tools: 16.0.6-hbedff68_3 conda-forge + openssl: 3.3.0-h87427d6_3 conda-forge + sigtool: 0.1.3-h88f4db0_0 conda-forge + tapi: 1100.0.11-h9ce4665_0 conda-forge + xz: 5.2.6-h775f41a_0 conda-forge + zstd: 1.5.6-h915ae27_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/conda-bld/pymvpa_1717526300423/work/setup.py", line 12, in + from numpy.distutils.core import setup, Extension + ModuleNotFoundError: No module named 'numpy.distutils' + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/pymvpa_1717526300423/work + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/pymvpa_1717526300423/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/pymvpa_1717526300423/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/pymvpa_1717526300423/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + Traceback (most recent call last): + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pymvpa-2.6.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pymvpa-2.6.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/pymvpa_1717526300423/work/conda_build.sh']' returned non-zero exit status 1. + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pymvpa-2.6.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pymvpa-2.6.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix +# Last 100 lines of the build log. diff --git a/recipes/pymvpa/meta.yaml b/recipes/pymvpa/meta.yaml index bf2a1c6560bc0..bf29f92798d59 100644 --- a/recipes/pymvpa/meta.yaml +++ b/recipes/pymvpa/meta.yaml @@ -10,7 +10,7 @@ source: sha256: '{{sha256}}' build: - number: 8 + number: 9 requirements: build: diff --git a/recipes/pyopal/build_failure.osx-64.yaml b/recipes/pyopal/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..2d7f45a8d11c0 --- /dev/null +++ b/recipes/pyopal/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 97120fb97215d81e614d54e48a5765c4bb1401d5962f33775f32d47c962fab3d # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pyopal-0.6.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pyopal-0.6.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + Using pip 24.0 from $PREFIX/lib/python3.10/site-packages/pip (python 3.10) + Non-user install because user site-packages disabled + Ignoring indexes: https://pypi.org/simple + Created temporary directory: /private/tmp/pip-build-tracker-tis4zq2n + Initialized build tracking at /private/tmp/pip-build-tracker-tis4zq2n + Created build tracker: /private/tmp/pip-build-tracker-tis4zq2n + Entered build tracker: /private/tmp/pip-build-tracker-tis4zq2n + Created temporary directory: /private/tmp/pip-install-_gf39vkr + Created temporary directory: /private/tmp/pip-ephem-wheel-cache-8_pk_ilh + Processing $SRC_DIR + Added file://$SRC_DIR to build tracker '/private/tmp/pip-build-tracker-tis4zq2n' + Created temporary directory: /private/tmp/pip-modern-metadata-8ma8_ihc + Preparing metadata (pyproject.toml): started + Preparing metadata (pyproject.toml): finished with status 'done' + Source in $SRC_DIR has version 0.6.1, which satisfies requirement pyopal==0.6.1 from file://$SRC_DIR + Removed pyopal==0.6.1 from file://$SRC_DIR from build tracker '/private/tmp/pip-build-tracker-tis4zq2n' + Created temporary directory: /private/tmp/pip-unpack-fzs6hzuk + Building wheels for collected packages: pyopal + Created temporary directory: /private/tmp/pip-wheel-njzbb_zu + Destination directory: /private/tmp/pip-wheel-njzbb_zu + Building wheel for pyopal (pyproject.toml): started + Building wheel for pyopal (pyproject.toml): finished with status 'done' + Created wheel for pyopal: filename=pyopal-0.6.1-cp310-cp310-macosx_10_13_x86_64.whl size=515862 sha256=a38f136881522e429a78dbe17e4c6cc8f971793618ddbac5d30b23cffff24a7d + Stored in directory: /private/tmp/pip-ephem-wheel-cache-8_pk_ilh/wheels/b1/80/41/acf0f7026053655891e76f1f15adb5e2a74199a76839144c8d + Successfully built pyopal + Installing collected packages: pyopal + + Successfully installed pyopal-0.6.1 + Removed build tracker: '/private/tmp/pip-build-tracker-tis4zq2n' + + Resource usage statistics from building pyopal: + Process count: 5 + CPU time: Sys=0:00:01.5, User=0:00:24.7 + Memory: 434.8M + Disk usage: 17.2K + Time elapsed: 0:00:40.0 + + + Packaging pyopal + Packaging pyopal-0.6.1-py310h04ad86b_1 + compiling .pyc files... + number of files: 40 + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2711, in build + newly_built_packages = bundlers[pkg_type](output_d, m, env, stats) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 1850, in bundle_conda + files = post_process_files(metadata, initial_files) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 1664, in post_process_files + post_build(m, new_files, build_python=python) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/post.py", line 1727, in post_build + post_process_shared_lib(m, f, prefix_files, host_prefix) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/post.py", line 1603, in post_process_shared_lib + mk_relative_osx(path, host_prefix, m, files=files, rpaths=rpaths) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/post.py", line 481, in mk_relative_osx + existing_rpaths = macho.get_rpaths(path, build_prefix=prefix) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/os_utils/macho.py", line 252, in get_rpaths + dylib_loads = otool(path, build_prefix, is_rpath) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/os_utils/macho.py", line 221, in otool + lines = check_output([otool, "-l", path], stderr=STDOUT).decode("utf-8") + File "/opt/mambaforge/envs/bioconda/lib/python3.10/subprocess.py", line 421, in check_output + return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, + File "/opt/mambaforge/envs/bioconda/lib/python3.10/subprocess.py", line 526, in run + raise CalledProcessError(retcode, process.args, + subprocess.CalledProcessError: Command '['/opt/mambaforge/envs/bioconda/conda-bld/pyopal_1718320809916/_build_env/bin/llvm-otool', '-l', '/opt/mambaforge/envs/bioconda/conda-bld/pyopal_1718320809916/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.10/site-packages/pyopal/platform/sse2.cpython-310-darwin.so']' died with . +# Last 100 lines of the build log. diff --git a/recipes/pyopal/meta.yaml b/recipes/pyopal/meta.yaml index efc7374fdc500..e7a82782a5ad7 100644 --- a/recipes/pyopal/meta.yaml +++ b/recipes/pyopal/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 039487f2ffeae29962e1ed38db401fbe2c295f894461f1dd9af09e94e1feccb0 build: - number: 0 + number: 1 skip: True #[py2k] run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} diff --git a/recipes/pyprophet/build_failure.linux-64.yaml b/recipes/pyprophet/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..875828829eff0 --- /dev/null +++ b/recipes/pyprophet/build_failure.linux-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 6602b267201208b9666efefd13f5bca891ab10e934fd108360b1f8b62947f6ec # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: compiler error +log: |- + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pyprophet-2.2.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr + CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot + CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu + CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu + CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pyprophet-2.2.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + Processing $SRC_DIR + Preparing metadata (setup.py): started + Preparing metadata (setup.py): finished with status 'error' + [1;31merror[0m: [1msubprocess-exited-with-error[0m + + [31m[0m [32mpython setup.py egg_info[0m did not run successfully. + [31m[0m exit code: [1;36m1[0m + [31m>[0m [31m[43 lines of output][0m + [31m [0m /opt/conda/conda-bld/pyprophet_1718025849813/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.11/site-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /opt/conda/conda-bld/pyprophet_1718025849813/work/pyprophet/_optimized.pyx + [31m [0m tree = Parsing.p_module(s, pxd, full_module_name) + [31m [0m + [31m [0m Error compiling Cython file: + [31m [0m ------------------------------------------------------------ + [31m [0m ... + [31m [0m best_j = low + [31m [0m elif basis[high] == sp_i: + [31m [0m best_j = high + [31m [0m else: + [31m [0m while low < high - 1: + [31m [0m mid = (low high) / 2 + [31m [0m ^ + [31m [0m ------------------------------------------------------------ + [31m [0m + [31m [0m pyprophet/_optimized.pyx:58:39: Cannot assign type 'double' to 'size_t' + [31m [0m + [31m [0m Error compiling Cython file: + [31m [0m ------------------------------------------------------------ + [31m [0m ... + [31m [0m best_j = low + [31m [0m elif basis[high] == sp_i: + [31m [0m best_j = high + [31m [0m else: + [31m [0m while low < high - 1: + [31m [0m mid = (low high) / 2 + [31m [0m ^ + [31m [0m ------------------------------------------------------------ + [31m [0m + [31m [0m pyprophet/_optimized.pyx:86:39: Cannot assign type 'double' to 'size_t' + [31m [0m Traceback (most recent call last): + [31m [0m File "", line 2, in + [31m [0m File "", line 34, in + [31m [0m File "/opt/conda/conda-bld/pyprophet_1718025849813/work/setup.py", line 18, in + [31m [0m ext_modules = cythonize(ext_modules) + [31m [0m ^^^^^^^^^^^^^^^^^^^^^^ + [31m [0m File "/opt/conda/conda-bld/pyprophet_1718025849813/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.11/site-packages/Cython/Build/Dependencies.py", line 1154, in cythonize + [31m [0m cythonize_one(*args) + [31m [0m File "/opt/conda/conda-bld/pyprophet_1718025849813/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.11/site-packages/Cython/Build/Dependencies.py", line 1321, in cythonize_one + [31m [0m raise CompileError(None, pyx_file) + [31m [0m Cython.Compiler.Errors.CompileError: pyprophet/_optimized.pyx + [31m [0m Compiling pyprophet/_optimized.pyx because it changed. + [31m [0m [1/1] Cythonizing pyprophet/_optimized.pyx + [31m [0m [31m[end of output][0m + + [1;35mnote[0m: This error originates from a subprocess, and is likely not a problem with pip. + [1;31merror[0m: [1mmetadata-generation-failed[0m + + [31m[0m Encountered error while generating package metadata. + [31m>[0m See above for output. + + [1;35mnote[0m: This is an issue with the package mentioned above, not pip. + [1;36mhint[0m: See above for details. + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/pyprophet_1718025849813/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/pyprophet/build_failure.osx-64.yaml b/recipes/pyprophet/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..ed99e2efa0521 --- /dev/null +++ b/recipes/pyprophet/build_failure.osx-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 6602b267201208b9666efefd13f5bca891ab10e934fd108360b1f8b62947f6ec # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: compiler error +log: |2- + Error compiling Cython file: + ------------------------------------------------------------ + ... + best_j = low + elif basis[high] == sp_i: + best_j = high + else: + while low < high - 1: + mid = (low high) / 2 + ^ + ------------------------------------------------------------ + + pyprophet/_optimized.pyx:86:39: Cannot assign type 'double' to 'size_t' + Traceback (most recent call last): + File "", line 2, in + File "", line 34, in + File "/opt/mambaforge/envs/bioconda/conda-bld/pyprophet_1718025344814/work/setup.py", line 18, in + ext_modules = cythonize(ext_modules) + ^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/mambaforge/envs/bioconda/conda-bld/pyprophet_1718025344814/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.11/site-packages/Cython/Build/Dependencies.py", line 1154, in cythonize + cythonize_one(*args) + File "/opt/mambaforge/envs/bioconda/conda-bld/pyprophet_1718025344814/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.11/site-packages/Cython/Build/Dependencies.py", line 1321, in cythonize_one + raise CompileError(None, pyx_file) + Cython.Compiler.Errors.CompileError: pyprophet/_optimized.pyx + [end of output] + + note: This error originates from a subprocess, and is likely not a problem with pip. + error: metadata-generation-failed + + Encountered error while generating package metadata. + > See above for output. + + note: This is an issue with the package mentioned above, not pip. + hint: See above for details. + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/pyprophet_1718025344814/work + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/pyprophet_1718025344814/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/pyprophet_1718025344814/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/pyprophet_1718025344814/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pyprophet-2.2.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/pyprophet_1718025344814/work/conda_build.sh']' returned non-zero exit status 1. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pyprophet-2.2.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + Processing $SRC_DIR + Preparing metadata (setup.py): started + Preparing metadata (setup.py): finished with status 'error' +# Last 100 lines of the build log. diff --git a/recipes/pyprophet/meta.yaml b/recipes/pyprophet/meta.yaml index bac4805e69c32..6e505ccbd1032 100644 --- a/recipes/pyprophet/meta.yaml +++ b/recipes/pyprophet/meta.yaml @@ -12,8 +12,9 @@ source: '{{ hash_type }}': '{{ hash_value }}' build: - number: 1 - skip: True # [py27] + number: 2 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} entry_points: - pyprophet=pyprophet.main:cli script: python -m pip install --no-deps --ignore-installed . diff --git a/recipes/pyrle/meta.yaml b/recipes/pyrle/meta.yaml index dbc4ce7dec49c..e8ddb549361da 100644 --- a/recipes/pyrle/meta.yaml +++ b/recipes/pyrle/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 32ccdbbe594377c7b6a2e04b11fedd7886b330468f6fa378a5e06e070763f4ba build: - number: 0 + number: 1 skip: True # [py2k] script: python setup.py install --single-version-externally-managed --record=record.txt run_exports: diff --git a/recipes/pyrodigal/meta.yaml b/recipes/pyrodigal/meta.yaml index 9334800d4ffae..5eb20b2335647 100644 --- a/recipes/pyrodigal/meta.yaml +++ b/recipes/pyrodigal/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 65963ad8cf651f408758e7fa74cbf793eae9720310f0ef8781ee1a285d435326 build: - number: 0 + number: 1 skip: True # [py < 36] script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir --use-pep517 -vvv" entry_points: diff --git a/recipes/pysais/meta.yaml b/recipes/pysais/meta.yaml index b6fe70a385acb..08fa728a516a3 100644 --- a/recipes/pysais/meta.yaml +++ b/recipes/pysais/meta.yaml @@ -11,7 +11,7 @@ source: build: script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} diff --git a/recipes/pysam/meta.yaml b/recipes/pysam/meta.yaml index ac9c338d92f61..7af1cbd2d4180 100644 --- a/recipes/pysam/meta.yaml +++ b/recipes/pysam/meta.yaml @@ -11,7 +11,7 @@ source: - arm_hwcap.patch build: - number: 0 + number: 1 skip: True # [py2k] binary_relocation: False # [linux] run_exports: diff --git a/recipes/pysamstats/meta.yaml b/recipes/pysamstats/meta.yaml index e0e59504cd7e9..632958c1c7358 100644 --- a/recipes/pysamstats/meta.yaml +++ b/recipes/pysamstats/meta.yaml @@ -7,7 +7,7 @@ source: md5: 050294fe9fe99aae3b07ea28f6cbe449 build: - number: 11 + number: 12 run_exports: - {{ pin_subpackage('pysamstats', max_pin="x") }} diff --git a/recipes/pyseq-align/meta.yaml b/recipes/pyseq-align/meta.yaml index 6cead85ee11dd..e5e77e8dde581 100644 --- a/recipes/pyseq-align/meta.yaml +++ b/recipes/pyseq-align/meta.yaml @@ -10,7 +10,7 @@ source: sha256: "d9d450269d492c9a83ea9b795b14347140f12153ea93e2e5ed409606c5ac9e4d" build: - number: 3 + number: 4 skip: True # [py2k] script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv " diff --git a/recipes/pyslow5/meta.yaml b/recipes/pyslow5/meta.yaml index 2d384bb8d3dbc..cd8f32592ff84 100644 --- a/recipes/pyslow5/meta.yaml +++ b/recipes/pyslow5/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 2926e13dbf8b1360e7628c32ebf1ad71133ed5bece548f3837b08cd5b7d79811 build: - number: 0 + number: 1 requirements: build: diff --git a/recipes/pyspoa/meta.yaml b/recipes/pyspoa/meta.yaml index 4e1d12c9e6cac..08c94cfd376ab 100644 --- a/recipes/pyspoa/meta.yaml +++ b/recipes/pyspoa/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 2 skip: True # [py < 38] script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation run_exports: diff --git a/recipes/pytabix/meta.yaml b/recipes/pytabix/meta.yaml index 32f31a6178bde..827d74ce191af 100644 --- a/recipes/pytabix/meta.yaml +++ b/recipes/pytabix/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 5 + number: 6 script: '{{ PYTHON }} -m pip install . --no-deps -vv' run_exports: - {{ pin_subpackage('pytabix', max_pin='x.x') }} @@ -40,4 +40,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/python-bioext/build_failure.linux-64.yaml b/recipes/python-bioext/build_failure.linux-64.yaml deleted file mode 100644 index 316cd5501e2f0..0000000000000 --- a/recipes/python-bioext/build_failure.linux-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 7d5acc4e24406ece2915a9b9293f2f8f8ef6e0f5e1f000a11899c0bd5e936e8c # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |- - [?25l[2K[0G[] 0.0s - opt/conda/conda-bl.. 100%[2K[1A[2K[0Gopt/conda/conda-bld/linux-64 - opt/conda/conda-bld/noarch 127.0 B @ 3.7MB/s 0.0s - [?25h - ## Package Plan ## - - environment location: /opt/conda/conda-bld/python-bioext_1685558379294/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac - - - The following NEW packages will be INSTALLED: - - _libgcc_mutex: 0.1-conda_forge conda-forge - _openmp_mutex: 4.5-2_gnu conda-forge - biopython: 1.81-py310h1fa729e_0 conda-forge - brotli: 1.0.9-h166bdaf_8 conda-forge - brotli-bin: 1.0.9-h166bdaf_8 conda-forge - bzip2: 1.0.8-h7f98852_4 conda-forge - c-ares: 1.19.1-hd590300_0 conda-forge - ca-certificates: 2023.5.7-hbcca054_0 conda-forge - certifi: 2023.5.7-pyhd8ed1ab_0 conda-forge - charset-normalizer: 3.1.0-pyhd8ed1ab_0 conda-forge - freetype: 2.12.1-hca18f0e_1 conda-forge - idna: 3.4-pyhd8ed1ab_0 conda-forge - joblib: 1.2.0-pyhd8ed1ab_0 conda-forge - keyutils: 1.6.1-h166bdaf_0 conda-forge - krb5: 1.20.1-h81ceb04_0 conda-forge - ld_impl_linux-64: 2.40-h41732ed_0 conda-forge - libblas: 3.9.0-16_linux64_openblas conda-forge - libbrotlicommon: 1.0.9-h166bdaf_8 conda-forge - libbrotlidec: 1.0.9-h166bdaf_8 conda-forge - libbrotlienc: 1.0.9-h166bdaf_8 conda-forge - libcblas: 3.9.0-16_linux64_openblas conda-forge - libcurl: 8.1.2-h409715c_0 conda-forge - libdeflate: 1.18-h0b41bf4_0 conda-forge - libedit: 3.1.20191231-he28a2e2_2 conda-forge - libev: 4.33-h516909a_1 conda-forge - libffi: 3.4.2-h7f98852_5 conda-forge - libgcc-ng: 12.2.0-h65d4601_19 conda-forge - libgfortran-ng: 12.2.0-h69a702a_19 conda-forge - libgfortran5: 12.2.0-h337968e_19 conda-forge - libgomp: 12.2.0-h65d4601_19 conda-forge - liblapack: 3.9.0-16_linux64_openblas conda-forge - libnghttp2: 1.52.0-h61bc06f_0 conda-forge - libnsl: 2.0.0-h7f98852_0 conda-forge - libopenblas: 0.3.21-pthreads_h78a6416_3 conda-forge - libpng: 1.6.39-h753d276_0 conda-forge - libsqlite: 3.42.0-h2797004_0 conda-forge - libssh2: 1.10.0-hf14f497_3 conda-forge - libstdcxx-ng: 12.2.0-h46fd767_19 conda-forge - libuuid: 2.38.1-h0b41bf4_0 conda-forge - libzlib: 1.2.13-h166bdaf_4 conda-forge - ncurses: 6.3-h27087fc_1 conda-forge - numpy: 1.24.3-py310ha4c1d20_0 conda-forge - openssl: 3.1.1-hd590300_1 conda-forge - packaging: 23.1-pyhd8ed1ab_0 conda-forge - pip: 23.1.2-pyhd8ed1ab_0 conda-forge - platformdirs: 3.5.1-pyhd8ed1ab_0 conda-forge - pooch: 1.7.0-pyha770c72_3 conda-forge - pysam: 0.21.0-py310h41dec4a_1 bioconda - pysocks: 1.7.1-pyha2e5f31_6 conda-forge - python: 3.10.11-he550d4f_0_cpython conda-forge - python-bioext: 0.20.4-py310h748d2df_4 local - python_abi: 3.10-3_cp310 conda-forge - readline: 8.2-h8228510_1 conda-forge - requests: 2.31.0-pyhd8ed1ab_0 conda-forge - scipy: 1.10.1-py310ha4c1d20_3 conda-forge - setuptools: 67.7.2-pyhd8ed1ab_0 conda-forge - six: 1.16.0-pyh6c4a22f_0 conda-forge - tk: 8.6.12-h27826a3_0 conda-forge - typing-extensions: 4.6.2-hd8ed1ab_0 conda-forge - typing_extensions: 4.6.2-pyha770c72_0 conda-forge - tzdata: 2023c-h71feb2d_0 conda-forge - urllib3: 2.0.2-pyhd8ed1ab_0 conda-forge - wheel: 0.40.0-pyhd8ed1ab_0 conda-forge - xz: 5.2.6-h166bdaf_0 conda-forge - zlib: 1.2.13-h166bdaf_4 conda-forge - zstd: 1.5.2-h3eb15da_6 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - export PREFIX=/opt/conda/conda-bld/python-bioext_1685558379294/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac - export SRC_DIR=/opt/conda/conda-bld/python-bioext_1685558379294/test_tmp - Traceback (most recent call last): - File "/opt/conda/conda-bld/python-bioext_1685558379294/test_tmp/run_test.py", line 5, in - import: 'BioExt' - import: 'BioExt.align' - import BioExt.align - File "/opt/conda/conda-bld/python-bioext_1685558379294/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.10/site-packages/BioExt/align/__init__.py", line 14, in - from BioExt.align._align import _align, _compute_codon_matrices - File "BioExt/align/_align.pyx", line 12, in init BioExt.align._align - File "/opt/conda/conda-bld/python-bioext_1685558379294/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.10/site-packages/numpy/__init__.py", line 305, in __getattr__ - raise AttributeError(__former_attrs__[attr]) - AttributeError: module 'numpy' has no attribute 'int'. - np.int was a deprecated alias for the builtin int. To avoid this error in existing code, use int by itself. Doing this will not modify any behavior and is safe. When replacing np.int, you may wish to use e.g. np.int64 or np.int32 to specify the precision. If you wish to review your current use, check the release note link for additional information. - The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at: - https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations - Tests failed for python-bioext-0.20.4-py310h748d2df_4.tar.bz2 - moving package to /opt/conda/conda-bld/broken - WARNING:conda_build.build:Tests failed for python-bioext-0.20.4-py310h748d2df_4.tar.bz2 - moving package to /opt/conda/conda-bld/broken - TESTS FAILED: python-bioext-0.20.4-py310h748d2df_4.tar.bz2 -# Last 100 lines of the build log. diff --git a/recipes/python-bioext/build_failure.osx-64.yaml b/recipes/python-bioext/build_failure.osx-64.yaml deleted file mode 100644 index 515bcc424a6f4..0000000000000 --- a/recipes/python-bioext/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 7d5acc4e24406ece2915a9b9293f2f8f8ef6e0f5e1f000a11899c0bd5e936e8c # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |- - bin/clipedge (text): Patching - bin/consensus (text): Patching - bin/msa2bam (text): Patching - bin/seqmerge (text): Patching - bin/translate (text): Patching - etc/conda/activate.d/python-bioext_activate.sh (text): Patching - TEST START: /opt/mambaforge/envs/bioconda/conda-bld/osx-64/python-bioext-0.20.4-py310hde71c8b_4.tar.bz2 - INFO:conda_build.utils:Renaming work directory '/opt/mambaforge/envs/bioconda/conda-bld/python-bioext_1685553363523/work' to '/opt/mambaforge/envs/bioconda/conda-bld/python-bioext_1685553363523/work_moved_python-bioext-0.20.4-py310hde71c8b_4_osx-64' - Renaming work directory '/opt/mambaforge/envs/bioconda/conda-bld/python-bioext_1685553363523/work' to '/opt/mambaforge/envs/bioconda/conda-bld/python-bioext_1685553363523/work_moved_python-bioext-0.20.4-py310hde71c8b_4_osx-64' - shutil.move(work)=/opt/mambaforge/envs/bioconda/conda-bld/python-bioext_1685553363523/work, dest=/opt/mambaforge/envs/bioconda/conda-bld/python-bioext_1685553363523/work_moved_python-bioext-0.20.4-py310hde71c8b_4_osx-64) - INFO:conda_build.utils:shutil.move(work)=/opt/mambaforge/envs/bioconda/conda-bld/python-bioext_1685553363523/work, dest=/opt/mambaforge/envs/bioconda/conda-bld/python-bioext_1685553363523/work_moved_python-bioext-0.20.4-py310hde71c8b_4_osx-64) - Reloading output folder: /opt/mambaforge/envs/bioconda/conda-bld - - ## Package Plan ## - - environment location: /opt/mambaforge/envs/bioconda/conda-bld/python-bioext_1685553363523/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place - - - The following NEW packages will be INSTALLED: - - biopython: 1.81-py310h90acd4f_0 conda-forge - brotli: 1.0.9-hb7f2c08_8 conda-forge - brotli-bin: 1.0.9-hb7f2c08_8 conda-forge - bzip2: 1.0.8-h0d85af4_4 conda-forge - c-ares: 1.19.1-h0dc2134_0 conda-forge - ca-certificates: 2023.5.7-h8857fd0_0 conda-forge - certifi: 2023.5.7-pyhd8ed1ab_0 conda-forge - charset-normalizer: 3.1.0-pyhd8ed1ab_0 conda-forge - freetype: 2.12.1-h3f81eb7_1 conda-forge - idna: 3.4-pyhd8ed1ab_0 conda-forge - joblib: 1.2.0-pyhd8ed1ab_0 conda-forge - krb5: 1.20.1-h049b76e_0 conda-forge - libblas: 3.9.0-16_osx64_openblas conda-forge - libbrotlicommon: 1.0.9-hb7f2c08_8 conda-forge - libbrotlidec: 1.0.9-hb7f2c08_8 conda-forge - libbrotlienc: 1.0.9-hb7f2c08_8 conda-forge - libcblas: 3.9.0-16_osx64_openblas conda-forge - libcurl: 8.1.2-hbee3ae8_0 conda-forge - libcxx: 16.0.4-hd57cbcb_0 conda-forge - libdeflate: 1.18-hac1461d_0 conda-forge - libedit: 3.1.20191231-h0678c8f_2 conda-forge - libev: 4.33-haf1e3a3_1 conda-forge - libffi: 3.4.2-h0d85af4_5 conda-forge - libgfortran: 5.0.0-11_3_0_h97931a8_31 conda-forge - libgfortran5: 12.2.0-he409387_31 conda-forge - liblapack: 3.9.0-16_osx64_openblas conda-forge - libnghttp2: 1.52.0-he2ab024_0 conda-forge - libopenblas: 0.3.21-openmp_h429af6e_3 conda-forge - libpng: 1.6.39-ha978bb4_0 conda-forge - libsqlite: 3.42.0-h58db7d2_0 conda-forge - libssh2: 1.10.0-h47af595_3 conda-forge - libzlib: 1.2.13-hfd90126_4 conda-forge - llvm-openmp: 16.0.4-hff08bdf_0 conda-forge - ncurses: 6.3-h96cf925_1 conda-forge - numpy: 1.24.3-py310h7451ae0_0 conda-forge - openssl: 3.1.1-h8a1eda9_1 conda-forge - packaging: 23.1-pyhd8ed1ab_0 conda-forge - platformdirs: 3.5.1-pyhd8ed1ab_0 conda-forge - pooch: 1.7.0-pyha770c72_3 conda-forge - pysam: 0.21.0-py310h2f18660_1 bioconda - pysocks: 1.7.1-pyha2e5f31_6 conda-forge - python: 3.10.11-he7542f4_0_cpython conda-forge - python-bioext: 0.20.4-py310hde71c8b_4 local - python_abi: 3.10-3_cp310 conda-forge - readline: 8.2-h9e318b2_1 conda-forge - requests: 2.31.0-pyhd8ed1ab_0 conda-forge - scipy: 1.10.1-py310h3900cf1_3 conda-forge - setuptools: 67.7.2-pyhd8ed1ab_0 conda-forge - six: 1.16.0-pyh6c4a22f_0 conda-forge - tk: 8.6.12-h5dbffcc_0 conda-forge - typing-extensions: 4.6.2-hd8ed1ab_0 conda-forge - typing_extensions: 4.6.2-pyha770c72_0 conda-forge - tzdata: 2023c-h71feb2d_0 conda-forge - urllib3: 2.0.2-pyhd8ed1ab_0 conda-forge - xz: 5.2.6-h775f41a_0 conda-forge - zlib: 1.2.13-hfd90126_4 conda-forge - zstd: 1.5.2-hbc0c0cd_6 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/python-bioext_1685553363523/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place - export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/python-bioext_1685553363523/test_tmp - import: 'BioExt' - import: 'BioExt.align' - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/conda-bld/python-bioext_1685553363523/test_tmp/run_test.py", line 5, in - import BioExt.align - File "/opt/mambaforge/envs/bioconda/conda-bld/python-bioext_1685553363523/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/lib/python3.10/site-packages/BioExt/align/__init__.py", line 14, in - from BioExt.align._align import _align, _compute_codon_matrices - File "BioExt/align/_align.pyx", line 12, in init BioExt.align._align - File "/opt/mambaforge/envs/bioconda/conda-bld/python-bioext_1685553363523/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/lib/python3.10/site-packages/numpy/__init__.py", line 305, in __getattr__ - raise AttributeError(__former_attrs__[attr]) - AttributeError: module 'numpy' has no attribute 'int'. - np.int was a deprecated alias for the builtin int. To avoid this error in existing code, use int by itself. Doing this will not modify any behavior and is safe. When replacing np.int, you may wish to use e.g. np.int64 or np.int32 to specify the precision. If you wish to review your current use, check the release note link for additional information. - The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at: - https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations - Tests failed for python-bioext-0.20.4-py310hde71c8b_4.tar.bz2 - moving package to /opt/mambaforge/envs/bioconda/conda-bld/broken - WARNING:conda_build.build:Tests failed for python-bioext-0.20.4-py310hde71c8b_4.tar.bz2 - moving package to /opt/mambaforge/envs/bioconda/conda-bld/broken - TESTS FAILED: python-bioext-0.20.4-py310hde71c8b_4.tar.bz2 -# Last 100 lines of the build log. diff --git a/recipes/python-bioext/meta.yaml b/recipes/python-bioext/meta.yaml index d7d4c1bc1e02f..5292f95513bbc 100644 --- a/recipes/python-bioext/meta.yaml +++ b/recipes/python-bioext/meta.yaml @@ -14,7 +14,7 @@ source: - osx-freetype.patch # [osx] build: - number: 0 + number: 1 skip: True # [py2k] run_exports: - {{ pin_subpackage("python-bioext", max_pin="x.x") }} diff --git a/recipes/python-edlib/meta.yaml b/recipes/python-edlib/meta.yaml index 54fe7588ea123..902eb1dd7f5d0 100644 --- a/recipes/python-edlib/meta.yaml +++ b/recipes/python-edlib/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 64c3dfab3ebe3e759565a0cc71eb4df23cf3ce1713fd558af3c473dddc2a3766 build: - number: 6 + number: 7 script: "EDLIB_USE_CYTHON=1 {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv" run_exports: - {{ pin_subpackage("python-edlib", max_pin="x") }} diff --git a/recipes/python-hppy/build_failure.osx-64.yaml b/recipes/python-hppy/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..2206f06c5a1d3 --- /dev/null +++ b/recipes/python-hppy/build_failure.osx-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: e93d9813de6c2fbff2b946a68f91bba2c6d0684a3eeaecaf363fba1deaa7d198 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: dependency issue +log: |- + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("python-hyphy-python==0.1.9=py27h8c18e5c_0"), MatchSpec("python[version='>=2.7,<2.8.0a0']")} + Encountered problems while solving: + - package python-hyphy-python-0.1.9-py27h8c18e5c_0 requires python >=2.7,<2.8.0a0, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + python-hyphy-python >=0.1.8 is installable with the potential options + python-hyphy-python 0.1.9 would require + python >=2.7,<2.8.0a0 , which can be installed; + python-hyphy-python [0.1.10|0.1.9] would require + python_abi 2.7.* *_cp27m, which can be installed; + python-hyphy-python [0.1.10|0.1.11|0.1.12] would require + python_abi 3.10.* *_cp310, which can be installed; + python-hyphy-python [0.1.10|0.1.11|0.1.9] would require + python_abi 3.6.* *_cp36m, which can be installed; + python-hyphy-python [0.1.10|0.1.11|0.1.9] would require + python_abi 3.7.* *_cp37m, which can be installed; + python-hyphy-python [0.1.10|0.1.11|0.1.12|0.1.9] would require + python_abi 3.8.* *_cp38, which can be installed; + python-hyphy-python [0.1.10|0.1.11|0.1.12] would require + python_abi 3.9.* *_cp39, which can be installed; + python-hyphy-python 0.1.9 would require + python >=3.5,<3.6.0a0 , which can be installed; + python-hyphy-python 0.1.9 would require + python >=3.6,<3.7.0a0 , which can be installed; + python-hyphy-python 0.1.9 would require + python >=3.7,<3.8.0a0 , which can be installed; + python >=3.11,<3.12.0a0 is not installable because it requires + python_abi 3.11.* *_cp311, which conflicts with any installable versions previously reported. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build + create_build_envs(top_level_pkg, notest) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs + raise e + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs + environ.get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("python-hyphy-python==0.1.9=py27h8c18e5c_0"), MatchSpec("python[version='>=2.7,<2.8.0a0']")} + Encountered problems while solving: + - package python-hyphy-python-0.1.9-py27h8c18e5c_0 requires python >=2.7,<2.8.0a0, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + python-hyphy-python >=0.1.8 is installable with the potential options + python-hyphy-python 0.1.9 would require + python >=2.7,<2.8.0a0 , which can be installed; + python-hyphy-python [0.1.10|0.1.9] would require + python_abi 2.7.* *_cp27m, which can be installed; + python-hyphy-python [0.1.10|0.1.11|0.1.12] would require + python_abi 3.10.* *_cp310, which can be installed; + python-hyphy-python [0.1.10|0.1.11|0.1.9] would require + python_abi 3.6.* *_cp36m, which can be installed; + python-hyphy-python [0.1.10|0.1.11|0.1.9] would require + python_abi 3.7.* *_cp37m, which can be installed; + python-hyphy-python [0.1.10|0.1.11|0.1.12|0.1.9] would require + python_abi 3.8.* *_cp38, which can be installed; + python-hyphy-python [0.1.10|0.1.11|0.1.12] would require + python_abi 3.9.* *_cp39, which can be installed; + python-hyphy-python 0.1.9 would require + python >=3.5,<3.6.0a0 , which can be installed; + python-hyphy-python 0.1.9 would require + python >=3.6,<3.7.0a0 , which can be installed; + python-hyphy-python 0.1.9 would require + python >=3.7,<3.8.0a0 , which can be installed; + python >=3.11,<3.12.0a0 is not installable because it requires + python_abi 3.11.* *_cp311, which conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/python-hppy/meta.yaml b/recipes/python-hppy/meta.yaml index 5b8be794a48af..25d0459cfe20c 100644 --- a/recipes/python-hppy/meta.yaml +++ b/recipes/python-hppy/meta.yaml @@ -11,7 +11,7 @@ source: build: script: {{ PYTHON }} -m pip install . -vv - number: 0 + number: 1 requirements: build: diff --git a/recipes/python-hyphy-python/build_failure.osx-64.yaml b/recipes/python-hyphy-python/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..c6c2a9fdf8ffb --- /dev/null +++ b/recipes/python-hyphy-python/build_failure.osx-64.yaml @@ -0,0 +1,106 @@ +recipe_sha: 9b6d23eff98464edd992ec32bd7c3ff644959f5687e570ec142d21f5676ac7eb # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + Key: + + R :: Reversible A :: Applicable + Y :: Build-prefix patch in use M :: Minimal, non-amalgamated + D :: Dry-runnable N :: Patch level (1 is preferred) + L :: Patch level not-ambiguous O :: Patch applies without offsets + V :: Patch applies without fuzz E :: Patch applies without emitting to stderr + + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/python-hyphy-python_1717954358254/work + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/python-hyphy-python_1717954358254/work/conda_build.sh']' returned non-zero exit status 1. + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/python-hyphy-python_1717954358254/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/python-hyphy-python_1717954358254/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/python-hyphy-python_1717954358254/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/python-hyphy-python-0.1.12 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/python-hyphy-python-0.1.12 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/python-hyphy-python-0.1.12 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/python-hyphy-python-0.1.12 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + Using pip 24.0 from $PREFIX/lib/python3.11/site-packages/pip (python 3.11) + Non-user install because user site-packages disabled + Ignoring indexes: https://pypi.org/simple + Created temporary directory: /private/tmp/pip-build-tracker-tzf9rnlr + Initialized build tracking at /private/tmp/pip-build-tracker-tzf9rnlr + Created build tracker: /private/tmp/pip-build-tracker-tzf9rnlr + Entered build tracker: /private/tmp/pip-build-tracker-tzf9rnlr + Created temporary directory: /private/tmp/pip-install-p_4x3igj + Created temporary directory: /private/tmp/pip-ephem-wheel-cache-16ns09mm + Processing $SRC_DIR + Added file://$SRC_DIR to build tracker '/private/tmp/pip-build-tracker-tzf9rnlr' + Running setup.py (path:$SRC_DIR/setup.py) egg_info for package from file://$SRC_DIR + Created temporary directory: /private/tmp/pip-pip-egg-info-8h0kbd0v + Preparing metadata (setup.py): started + Preparing metadata (setup.py): finished with status 'done' + Source in $SRC_DIR has version 0.1.12, which satisfies requirement hyphy-python==0.1.12 from file://$SRC_DIR + Removed hyphy-python==0.1.12 from file://$SRC_DIR from build tracker '/private/tmp/pip-build-tracker-tzf9rnlr' + Created temporary directory: /private/tmp/pip-unpack-t7w8az6b + Building wheels for collected packages: hyphy-python + Created temporary directory: /private/tmp/pip-wheel-9pwlzrmu + Building wheel for hyphy-python (setup.py): started + Destination directory: /private/tmp/pip-wheel-9pwlzrmu + Building wheel for hyphy-python (setup.py): finished with status 'error' + Running setup.py clean for hyphy-python + Failed to build hyphy-python + Exception information: + Traceback (most recent call last): + File "$PREFIX/lib/python3.11/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper + status = run_func(*args) + ^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.11/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper + return func(self, options, args) + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.11/site-packages/pip/_internal/commands/install.py", line 429, in run + raise InstallationError( + pip._internal.exceptions.InstallationError: Could not build wheels for hyphy-python, which is required to install pyproject.toml-based projects + Removed build tracker: '/private/tmp/pip-build-tracker-tzf9rnlr' +# Last 100 lines of the build log. +category: |- + compiler error diff --git a/recipes/python-hyphy-python/meta.yaml b/recipes/python-hyphy-python/meta.yaml index d202fe4e8fd30..363041fc44b05 100644 --- a/recipes/python-hyphy-python/meta.yaml +++ b/recipes/python-hyphy-python/meta.yaml @@ -12,7 +12,7 @@ source: - 0001-importlib.patch build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('python-hyphy-python', max_pin="x.x") }} diff --git a/recipes/python-libsbml/LICENSE.txt b/recipes/python-libsbml/LICENSE.txt deleted file mode 100644 index ec363e7a82a1f..0000000000000 --- a/recipes/python-libsbml/LICENSE.txt +++ /dev/null @@ -1,167 +0,0 @@ - Licensing and Distribution Terms for libSBML - -The majority of libSBML is copyrighted as follows: - -* Copyright (C) 2013-2017 jointly by the following organizations: - 1. California Institute of Technology, Pasadena, CA, USA - 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK - 3. University of Heidelberg, Heidelberg, Germany - -* Copyright (C) 2009-2013 jointly by the following organizations: - 1. California Institute of Technology, Pasadena, CA, USA - 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK - -* Copyright (C) 2006-2008 by the California Institute of Technology, - Pasadena, CA, USA - -* Copyright (C) 2002-2005 jointly by the following organizations: - 1. California Institute of Technology, Pasadena, CA, USA - 2. Japan Science and Technology Agency, Japan - -Portions of the source code comprising libSBML were copyrighted -and contributed by third parties, and placed under the same LGPL -2.1 license as the rest of libSBML. The following are their -copyright statements: - -* Copyright (C) 2004-2008 by European Media Laboratories Research - gGmbH, Heidelberg, Germany. (For the "SBML Layout" code.) - -LibSBML is free software; you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as -published by the Free Software Foundation; either version 2.1 of -the License, or any later version. - -This software is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF -MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. The software -and documentation provided hereunder is on an "as is" basis, and -the copyright holders have no obligations to provide maintenance, -support, updates, enhancements or modifications. In no event -shall the copyright holders be liable to any party for direct, -indirect, special, incidental or consequential damages, including -lost profits, arising out of the use of this software and its -documentation, even if the copyright holders have been advised of -the possibility of such damage. See the GNU Lesser General Public -License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library in the file named "COPYING.txt" -included with the software distribution. A copy is also -available online at the Internet address -http://sbml.org/software/libsbml/COPYING.html for your -convenience. You may also write to obtain a copy from the Free -Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, -MA 02110-1301, USA. - - - Third-party software incorporated into both the libSBML - binary and source-code distributions - -LibSBML incorporates an open-source compression library written by -a third party. The following is information about the copyright -and distribution terms of this library: - -* MiniZip 1.01e, copyright (C) 1998-2005 Gilles Vollant, released - under terms compatible with the LGPL. Please see the file - src/sbml/compress/00README.txt for more information about - MiniZip 1.01e and its license terms. - - - Additional third-party software incorporated only - into the libSBML source code distribution - -Additional software is used to produce the documentation of -libSBML. The binary distributions of libSBML do not include this -software; they are only present in the source code distribution -and the libSBML documentation archives. - -* Argparse 1.2.1, copyright (C) 2006-2009 Steven J. Bethard - and distributed under the Python Software - Foundation License version 2. Code downloaded from - http://code.google.com/p/argparse/ on 2012-02-10. - -* Google Code Prettify, distributed under the terms of the - Apache License Version 2.0, January 2004. Code downloaded from - http://code.google.com/p/google-code-prettify/ on 2013-10-16. - -* PrettyTable, copyright (C) 2009-2013 Luke Maurits, distributed - under the following BSD-derivative license: - - Copyright (c) 2009-2013 Luke Maurits - All rights reserved. - With contributions from: - * Chris Clark - * Christoph Robbert - * Klein Stephane - * "maartendb" - - Redistribution and use in source and binary forms, with or - without modification, are permitted provided that the - following conditions are met: - - * Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - - * The name of the author may not be used to endorse or - promote products derived from this software without - specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -* ExcludeDoclet, copyright (C) 2004 by Sun Microsystems, Inc., and - distributed under the following open-source terms: - - Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. - - Redistribution and use in source and binary forms, with or - without modification, are permitted provided that the - following conditions are met: - - - Redistribution of source code must retain the above - copyright notice, this list of conditions and the following - disclaimer. - - - Redistribution in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. Neither the name of Sun Microsystems, - Inc. nor the names of contributors may be used to endorse or - promote products derived from this software without specific - prior written permission. - - This software is provided "AS IS," without a warranty of any - kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND - WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE - HEREBY EXCLUDED. SUN MICROSYSTEMS, INC. ("SUN") AND ITS - LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY - LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS - SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS - LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR - FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR - PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY - OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE - THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY - OF SUCH DAMAGES. - - You acknowledge that this software is not designed, licensed - or intended for use in the design, construction, operation or - maintenance of any nuclear facility. diff --git a/recipes/python-libsbml/meta.yaml b/recipes/python-libsbml/meta.yaml deleted file mode 100644 index 6b837cefb8de5..0000000000000 --- a/recipes/python-libsbml/meta.yaml +++ /dev/null @@ -1,40 +0,0 @@ -{% set version = "5.18.0" %} - -package: - name: python-libsbml - version: {{ version }} - -source: - url: https://pypi.io/packages/source/p/python-libsbml/python-libsbml-{{ version }}.tar.gz - sha256: 58e36e83c3763887f56a6e51fe9ba3bb5ad903d7bc1be028b57bc147c1ab5ea1 - -build: - number: 6 - script: {{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv - -requirements: - build: - - {{ compiler('c') }} - - {{ compiler('cxx') }} - host: - - python - - pip - - libxml2 - - bzip2 - run: - - python - - bzip2 - - libxml2 - -test: - imports: - - libsbml - -about: - home: http://sbml.org - license: LGPL - license_file: LICENSE.txt - summary: 'LibSBML Python API.' - description: | - LibSBML is a library for reading, writing and manipulating - the Systems Biology Markup Language (SBML). diff --git a/recipes/python-msgpack/meta.yaml b/recipes/python-msgpack/meta.yaml index 3df723ced1e0e..ed09391704528 100644 --- a/recipes/python-msgpack/meta.yaml +++ b/recipes/python-msgpack/meta.yaml @@ -7,7 +7,7 @@ source: url: https://files.pythonhosted.org/packages/81/9c/0036c66234482044070836cc622266839e2412f8108849ab0bfdeaab8578/msgpack-{{ version }}.tar.gz sha256: 4008c72f5ef2b7936447dcb83db41d97e9791c83221be13d5e19db0796df1972 build: - number: 9 + number: 10 run_exports: - {{ pin_subpackage('python-msgpack', max_pin='x.x') }} requirements: diff --git a/recipes/pytrf/meta.yaml b/recipes/pytrf/meta.yaml index 209d0d802eb4b..024fc3a5532ef 100644 --- a/recipes/pytrf/meta.yaml +++ b/recipes/pytrf/meta.yaml @@ -11,7 +11,7 @@ source: sha256: "{{ sha256 }}" build: - number: 0 + number: 1 skip: True # [py < 36] script: "{{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv" run_exports: diff --git a/recipes/pytriangle/meta.yaml b/recipes/pytriangle/meta.yaml index 5a6acbe13a347..97e7e6f92071c 100644 --- a/recipes/pytriangle/meta.yaml +++ b/recipes/pytriangle/meta.yaml @@ -7,7 +7,7 @@ source: git_rev: f87b411 build: - number: 8 + number: 9 script: {{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv test: diff --git a/recipes/pytrimal/build_failure.osx-64.yaml b/recipes/pytrimal/build_failure.osx-64.yaml index 3e17f43f9ea65..fd387f6646163 100644 --- a/recipes/pytrimal/build_failure.osx-64.yaml +++ b/recipes/pytrimal/build_failure.osx-64.yaml @@ -1,104 +1,104 @@ -recipe_sha: 2b2448d5612a48c088b23e9e3cf84e65dbbc457f63882f0474cc0b2f61c50bf3 # The commit at which this recipe failed to build. +recipe_sha: e82086ce8ce28d6bc499d24ecfe8511786c73430b331466ae2d3b51273a9ab20 # The hash of the recipe's meta.yaml at which this recipe failed to build. skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. log: |- - Can't parse the binary at the index #0 - {} is not a Mach-O file - Can't parse the binary at the index #1 - {} is not a Mach-O file - Can't parse the binary at the index #0 - {} is not a Mach-O file - Can't parse the binary at the index #1 - {} is not a Mach-O file - Can't parse the binary at the index #0 - {} is not a Mach-O file - Can't parse the binary at the index #1 - {} is not a Mach-O file - Can't parse the binary at the index #0 - {} is not a Mach-O file - Can't parse the binary at the index #1 - {} is not a Mach-O file - Can't parse the binary at the index #0 - {} is not a Mach-O file - Can't parse the binary at the index #1 - {} is not a Mach-O file - Can't parse the binary at the index #0 - {} is not a Mach-O file - Can't parse the binary at the index #1 - {} is not a Mach-O file - Can't parse the binary at the index #2 - {} is not a Mach-O file - Can't parse the binary at the index #3 - {} is not a Mach-O file - Can't parse the binary at the index #4 - {} is not a Mach-O file - Can't parse the binary at the index #0 - {} is not a Mach-O file - Can't parse the binary at the index #1 - {} is not a Mach-O file - Can't parse the binary at the index #2 - {} is not a Mach-O file - Can't parse the binary at the index #3 - {} is not a Mach-O file - Can't parse the binary at the index #4 - {} is not a Mach-O file - Can't parse the binary at the index #0 - {} is not a Mach-O file - Can't parse the binary at the index #1 - INFO: sysroot: '/System/Library/Frameworks/' files: '['vmnet.framework/Versions/A/_CodeSignature/CodeResources', 'vmnet.framework/Versions/A/Resources/version.plist', 'vmnet.framework/Versions/A/Resources/en.lproj/InfoPlist.strings', 'vmnet.framework/Versions/A/Resources/Info.plist']' - INFO: sysroot: '/usr/lib/' files: '['zsh/5.8.1/zsh/zselect.so', 'zsh/5.8.1/zsh/zpty.so', 'zsh/5.8.1/zsh/zprof.so', 'zsh/5.8.1/zsh/zleparameter.so']' - INFO: sysroot: '/opt/X11/' files: '[]' - INFO (pytrimal,lib/python3.9/site-packages/pytrimal/_trimal.cpython-39-darwin.so): Needed DSO lib/libc.1.dylib found in conda-forge::libcxx-16.0.4-hd57cbcb_0 - INFO (pytrimal,lib/python3.9/site-packages/pytrimal/_trimal.cpython-39-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT - WARNING (pytrimal): interpreted library (Python) package conda-forge::setuptools-67.7.2-pyhd8ed1ab_0 in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) - WARNING (pytrimal): interpreter (Python) package conda-forge::python-3.9.16-h709bd14_0_cpython in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) - Fixing permissions - Packaged license file/s. - INFO :: Time taken to mark (prefix) - 0 replacements in 0 files was 0.19 seconds - TEST START: /opt/mambaforge/envs/bioconda/conda-bld/osx-64/pytrimal-0.5.5-py39had7a9fe_2.tar.bz2 - Renaming work directory '/opt/mambaforge/envs/bioconda/conda-bld/pytrimal_1685352621956/work' to '/opt/mambaforge/envs/bioconda/conda-bld/pytrimal_1685352621956/work_moved_pytrimal-0.5.5-py39had7a9fe_2_osx-64' - INFO:conda_build.utils:Renaming work directory '/opt/mambaforge/envs/bioconda/conda-bld/pytrimal_1685352621956/work' to '/opt/mambaforge/envs/bioconda/conda-bld/pytrimal_1685352621956/work_moved_pytrimal-0.5.5-py39had7a9fe_2_osx-64' - INFO:conda_build.utils:shutil.move(work)=/opt/mambaforge/envs/bioconda/conda-bld/pytrimal_1685352621956/work, dest=/opt/mambaforge/envs/bioconda/conda-bld/pytrimal_1685352621956/work_moved_pytrimal-0.5.5-py39had7a9fe_2_osx-64) - shutil.move(work)=/opt/mambaforge/envs/bioconda/conda-bld/pytrimal_1685352621956/work, dest=/opt/mambaforge/envs/bioconda/conda-bld/pytrimal_1685352621956/work_moved_pytrimal-0.5.5-py39had7a9fe_2_osx-64) - Reloading output folder: /opt/mambaforge/envs/bioconda/conda-bld - - ## Package Plan ## - - environment location: /opt/mambaforge/envs/bioconda/conda-bld/pytrimal_1685352621956/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_ - - - The following NEW packages will be INSTALLED: - - bzip2: 1.0.8-h0d85af4_4 conda-forge - ca-certificates: 2023.5.7-h8857fd0_0 conda-forge - libcxx: 16.0.4-hd57cbcb_0 conda-forge - libffi: 3.4.2-h0d85af4_5 conda-forge - libsqlite: 3.42.0-h58db7d2_0 conda-forge - libzlib: 1.2.13-hfd90126_4 conda-forge - ncurses: 6.3-h96cf925_1 conda-forge - openssl: 3.1.0-h8a1eda9_3 conda-forge - python: 3.9.16-h709bd14_0_cpython conda-forge - python_abi: 3.9-3_cp39 conda-forge - pytrimal: 0.5.5-py39had7a9fe_2 local - readline: 8.2-h9e318b2_1 conda-forge - setuptools: 67.7.2-pyhd8ed1ab_0 conda-forge - tk: 8.6.12-h5dbffcc_0 conda-forge - tzdata: 2023c-h71feb2d_0 conda-forge - xz: 5.2.6-h775f41a_0 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/pytrimal_1685352621956/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_ - export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/pytrimal_1685352621956/test_tmp - import: 'pytrimal' + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/pytrimal_1717522804579/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/pytrimal_1717522804579/_build_env Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/conda-bld/pytrimal_1685352621956/test_tmp/run_test.py", line 2, in - import pytrimal - File "/opt/mambaforge/envs/bioconda/conda-bld/pytrimal_1685352621956/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib/python3.9/site-packages/pytrimal/__init__.py", line 4, in - from . import _trimal - ImportError: dlopen(/opt/mambaforge/envs/bioconda/conda-bld/pytrimal_1685352621956/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib/python3.9/site-packages/pytrimal/_trimal.cpython-39-darwin.so, 0x0002): symbol not found in flat namespace (_GetX86Info) - Tests failed for pytrimal-0.5.5-py39had7a9fe_2.tar.bz2 - moving package to /opt/mambaforge/envs/bioconda/conda-bld/broken - WARNING:conda_build.build:Tests failed for pytrimal-0.5.5-py39had7a9fe_2.tar.bz2 - moving package to /opt/mambaforge/envs/bioconda/conda-bld/broken - TESTS FAILED: pytrimal-0.5.5-py39had7a9fe_2.tar.bz2 + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/pytrimal_1717522804579/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pytrimal-0.7.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/pytrimal_1717522804579/work/conda_build.sh']' returned non-zero exit status 1. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pytrimal-0.7.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pytrimal-0.7.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pytrimal-0.7.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + Using pip 24.0 from $PREFIX/lib/python3.8/site-packages/pip (python 3.8) + Non-user install because user site-packages disabled + Ignoring indexes: https://pypi.org/simple + Created temporary directory: /private/tmp/pip-build-tracker-xa5aes5p + Initialized build tracking at /private/tmp/pip-build-tracker-xa5aes5p + Created build tracker: /private/tmp/pip-build-tracker-xa5aes5p + Entered build tracker: /private/tmp/pip-build-tracker-xa5aes5p + Created temporary directory: /private/tmp/pip-install-r7bug1kb + Created temporary directory: /private/tmp/pip-ephem-wheel-cache-spxymxhx + Processing $SRC_DIR + Added file://$SRC_DIR to build tracker '/private/tmp/pip-build-tracker-xa5aes5p' + Created temporary directory: /private/tmp/pip-modern-metadata-qhph_27o + Preparing metadata (pyproject.toml): started + Preparing metadata (pyproject.toml): finished with status 'done' + Source in $SRC_DIR has version 0.7.0, which satisfies requirement pytrimal==0.7.0 from file://$SRC_DIR + Removed pytrimal==0.7.0 from file://$SRC_DIR from build tracker '/private/tmp/pip-build-tracker-xa5aes5p' + Created temporary directory: /private/tmp/pip-unpack-0bkomd0_ + Building wheels for collected packages: pytrimal + Created temporary directory: /private/tmp/pip-wheel-71ufbp5h + Destination directory: /private/tmp/pip-wheel-71ufbp5h + Building wheel for pytrimal (pyproject.toml): started + Building wheel for pytrimal (pyproject.toml): finished with status 'error' + Failed to build pytrimal + Exception information: + Traceback (most recent call last): + File "$PREFIX/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper + status = run_func(*args) + File "$PREFIX/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper + return func(self, options, args) + File "$PREFIX/lib/python3.8/site-packages/pip/_internal/commands/install.py", line 429, in run + raise InstallationError( + pip._internal.exceptions.InstallationError: Could not build wheels for pytrimal, which is required to install pyproject.toml-based projects + Removed build tracker: '/private/tmp/pip-build-tracker-xa5aes5p' # Last 100 lines of the build log. diff --git a/recipes/pytrimal/meta.yaml b/recipes/pytrimal/meta.yaml index 4b3fffa40641f..c135226ad4b8d 100644 --- a/recipes/pytrimal/meta.yaml +++ b/recipes/pytrimal/meta.yaml @@ -10,7 +10,7 @@ source: sha256: e80df938e83a95bf81d620f5909580f3f07b661f25b8613e67037134785b91b4 build: - number: 0 + number: 1 skip: True #[py2k] script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed -vvv " diff --git a/recipes/pywfa/build_failure.linux-64.yaml b/recipes/pywfa/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..b3f2db886eaeb --- /dev/null +++ b/recipes/pywfa/build_failure.linux-64.yaml @@ -0,0 +1,106 @@ +recipe_sha: 95c8dd202b5002f712ebb93b42c0a841958c188267059bc46cf5b75dd60613e7 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + Reloading output folder: ...working... done + Getting pinned dependencies: ...working... done + Reloading output folder: ...working... done + Getting pinned dependencies: ...working... done + BUILD START: ['pywfa-0.5.1-py39hff71179_3.tar.bz2'] + Reloading output folder: ...working... done + Solving environment (_h_env): ...working... done + + ## Package Plan ## + + environment location: /opt/conda/conda-bld/pywfa_1717953203444/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho + + + The following NEW packages will be INSTALLED: + + _libgcc_mutex: 0.1-conda_forge conda-forge + _openmp_mutex: 4.5-2_gnu conda-forge + bzip2: 1.0.8-hd590300_5 conda-forge + ca-certificates: 2024.6.2-hbcca054_0 conda-forge + cython: 3.0.10-py39h3d6467e_0 conda-forge + ld_impl_linux-64: 2.40-hf3520f5_2 conda-forge + libffi: 3.4.2-h7f98852_5 conda-forge + libgcc-ng: 13.2.0-h77fa898_7 conda-forge + libgomp: 13.2.0-h77fa898_7 conda-forge + libnsl: 2.0.1-hd590300_0 conda-forge + libsqlite: 3.45.3-h2797004_0 conda-forge + libstdcxx-ng: 13.2.0-hc0a3c3a_7 conda-forge + libuuid: 2.38.1-h0b41bf4_0 conda-forge + libxcrypt: 4.4.36-hd590300_1 conda-forge + libzlib: 1.3.1-h4ab18f5_1 conda-forge + ncurses: 6.5-h59595ed_0 conda-forge + openssl: 3.3.1-h4ab18f5_0 conda-forge + pip: 24.0-pyhd8ed1ab_0 conda-forge + python: 3.9.19-h0755675_0_cpython conda-forge + python_abi: 3.9-4_cp39 conda-forge + readline: 8.2-h8228510_1 conda-forge + setuptools: 70.0.0-pyhd8ed1ab_0 conda-forge + tk: 8.6.13-noxft_h4845f30_101 conda-forge + tzdata: 2024a-h0c530f3_0 conda-forge + wheel: 0.43.0-pyhd8ed1ab_1 conda-forge + xz: 5.2.6-h166bdaf_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Reloading output folder: ...working... done + Solving environment (_build_env): ...working... done + Reloading output folder: ...working... done + Solving environment (_test_env): ...working... done + + ## Package Plan ## + + environment location: /opt/conda/conda-bld/pywfa_1717953203444/_build_env + + + The following NEW packages will be INSTALLED: + + _libgcc_mutex: 0.1-conda_forge conda-forge + _openmp_mutex: 4.5-2_gnu conda-forge + binutils_impl_linux-64: 2.40-ha1999f0_2 conda-forge + binutils_linux-64: 2.40-hdade7a5_3 conda-forge + gcc_impl_linux-64: 12.3.0-h58ffeeb_7 conda-forge + gcc_linux-64: 12.3.0-h6477408_3 conda-forge + kernel-headers_linux-64: 2.6.32-he073ed8_17 conda-forge + ld_impl_linux-64: 2.40-hf3520f5_2 conda-forge + libgcc-devel_linux-64: 12.3.0-h0223996_107 conda-forge + libgcc-ng: 13.2.0-h77fa898_7 conda-forge + libgomp: 13.2.0-h77fa898_7 conda-forge + libsanitizer: 12.3.0-hb8811af_7 conda-forge + libstdcxx-ng: 13.2.0-hc0a3c3a_7 conda-forge + make: 4.3-hd18ef5c_1 conda-forge + sysroot_linux-64: 2.12-he073ed8_17 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Source cache directory is: /opt/conda/conda-bld/src_cache + Downloading source to cache: v0.5.1_cdfa67af3e.tar.gz + Downloading https://github.com/kcleal/pywfa/archive/v0.5.1.tar.gz + Success + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2419, in build + try_download(m, no_download_source=False, raise_error=True) + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 762, in try_download + source.provide(metadata) + File "/opt/conda/lib/python3.10/site-packages/conda_build/source.py", line 1035, in provide + unpack( + File "/opt/conda/lib/python3.10/site-packages/conda_build/source.py", line 169, in unpack + src_path, unhashed_fn = download_to_cache( + File "/opt/conda/lib/python3.10/site-packages/conda_build/source.py", line 125, in download_to_cache + raise RuntimeError( + RuntimeError: SHA256 mismatch: '455e8308dc9c61f690fab5067894bf40763b5c6dc7d209bcd475086f85a9b6bc' != 'cdfa67af3e0572a85302ef473ce49dce54d5e41b19b482f4682c1064013db8c0' +# Last 100 lines of the build log. +reason: |- + sha256 mismatch diff --git a/recipes/pywfa/build_failure.osx-64.yaml b/recipes/pywfa/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..791a4a1322747 --- /dev/null +++ b/recipes/pywfa/build_failure.osx-64.yaml @@ -0,0 +1,106 @@ +recipe_sha: 95c8dd202b5002f712ebb93b42c0a841958c188267059bc46cf5b75dd60613e7 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + Reloading output folder (local): ...working... done + Getting pinned dependencies: ...working... done + Reloading output folder (local): ...working... done + Getting pinned dependencies: ...working... done + BUILD START: ['pywfa-0.5.1-py38h51c4a30_3.tar.bz2'] + Reloading output folder (local): ...working... done + Solving environment (_h_env): ...working... done + + ## Package Plan ## + + environment location: /opt/mambaforge/envs/bioconda/conda-bld/pywfa_1717954355582/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol + + + The following NEW packages will be INSTALLED: + + bzip2: 1.0.8-h10d778d_5 conda-forge + ca-certificates: 2024.6.2-h8857fd0_0 conda-forge + cython: 3.0.10-py38h1f5f77c_0 conda-forge + libcxx: 17.0.6-h88467a6_0 conda-forge + libffi: 3.4.2-h0d85af4_5 conda-forge + libsqlite: 3.45.3-h92b6c6a_0 conda-forge + libzlib: 1.3.1-h87427d6_1 conda-forge + ncurses: 6.5-h5846eda_0 conda-forge + openssl: 3.3.1-h87427d6_0 conda-forge + pip: 24.0-pyhd8ed1ab_0 conda-forge + python: 3.8.19-h5ba8234_0_cpython conda-forge + python_abi: 3.8-4_cp38 conda-forge + readline: 8.2-h9e318b2_1 conda-forge + setuptools: 70.0.0-pyhd8ed1ab_0 conda-forge + tk: 8.6.13-h1abcd95_1 conda-forge + wheel: 0.43.0-pyhd8ed1ab_1 conda-forge + xz: 5.2.6-h775f41a_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Reloading output folder (local): ...working... done + Solving environment (_build_env): ...working... done + Reloading output folder (local): ...working... done + Solving environment (_test_env): ...working... done + + ## Package Plan ## + + environment location: /opt/mambaforge/envs/bioconda/conda-bld/pywfa_1717954355582/_build_env + + + The following NEW packages will be INSTALLED: + + ca-certificates: 2024.6.2-h8857fd0_0 conda-forge + cctools_osx-64: 986-ha1c5b94_0 conda-forge + clang: 16.0.6-hd4457cd_7 conda-forge + clang-16: 16.0.6-default_h4c8afb6_7 conda-forge + clang_impl_osx-64: 16.0.6-h8787910_16 conda-forge + clang_osx-64: 16.0.6-hb91bd55_16 conda-forge + clangxx: 16.0.6-default_ha3b9224_7 conda-forge + compiler-rt: 16.0.6-ha38d28d_2 conda-forge + compiler-rt_osx-64: 16.0.6-ha38d28d_2 conda-forge + icu: 73.2-hf5e326d_0 conda-forge + ld64_osx-64: 711-ha20a434_0 conda-forge + libclang-cpp16: 16.0.6-default_h4c8afb6_7 conda-forge + libcxx: 17.0.6-h88467a6_0 conda-forge + libiconv: 1.17-hd75f5a5_2 conda-forge + libllvm16: 16.0.6-hbedff68_3 conda-forge + libxml2: 2.12.7-h3e169fe_1 conda-forge + libzlib: 1.3.1-h87427d6_1 conda-forge + llvm-tools: 16.0.6-hbedff68_3 conda-forge + make: 4.3-h22f3db7_1 conda-forge + openssl: 3.3.1-h87427d6_0 conda-forge + sigtool: 0.1.3-h88f4db0_0 conda-forge + tapi: 1100.0.11-h9ce4665_0 conda-forge + xz: 5.2.6-h775f41a_0 conda-forge + zstd: 1.5.6-h915ae27_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache + Downloading source to cache: v0.5.1_cdfa67af3e.tar.gz + Downloading https://github.com/kcleal/pywfa/archive/v0.5.1.tar.gz + Success + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2419, in build + try_download(m, no_download_source=False, raise_error=True) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 762, in try_download + source.provide(metadata) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/source.py", line 1035, in provide + unpack( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/source.py", line 169, in unpack + src_path, unhashed_fn = download_to_cache( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/source.py", line 125, in download_to_cache + raise RuntimeError( + RuntimeError: SHA256 mismatch: '455e8308dc9c61f690fab5067894bf40763b5c6dc7d209bcd475086f85a9b6bc' != 'cdfa67af3e0572a85302ef473ce49dce54d5e41b19b482f4682c1064013db8c0' +# Last 100 lines of the build log. +category: |- + checksum mismatch diff --git a/recipes/pywfa/meta.yaml b/recipes/pywfa/meta.yaml index 3302c0942e5a9..19cbae7add344 100644 --- a/recipes/pywfa/meta.yaml +++ b/recipes/pywfa/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256hash }} build: - number: 2 + number: 3 skip: True # [py < 37 or py > 39] run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} diff --git a/recipes/pywgsim/build_failure.linux-64.yaml b/recipes/pywgsim/build_failure.linux-64.yaml index bb35561e71e73..2db726c5cbc65 100644 --- a/recipes/pywgsim/build_failure.linux-64.yaml +++ b/recipes/pywgsim/build_failure.linux-64.yaml @@ -1,7 +1,27 @@ -recipe_sha: 1e71f053caf6591572e579b0498d21a6b75b2282eac0d34ead5ceb4c5407d8de # The commit at which this recipe failed to build. +recipe_sha: 8d9e5e59c6ea28dd0859351ab4bad2461cbb730265c8d7c93e8d94a561080586 # The hash of the recipe's meta.yaml at which this recipe failed to build. skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: compiler error log: |2- - /opt/conda/conda-bld/pywgsim_1685450236902/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/lib/python3.10/site-packages/setuptools/command/build_py.py:201: _Warning: Package 'pywgsim.src' is absent from the packages configuration. + reading manifest template 'MANIFEST.in' + writing manifest file 'pywgsim.egg-info/SOURCES.txt' + copying pywgsim/wgsim_lib.c -> build/lib.linux-x86_64-cpython-38/pywgsim + copying pywgsim/wgsim_lib.pyx -> build/lib.linux-x86_64-cpython-38/pywgsim + creating build/lib.linux-x86_64-cpython-38/pywgsim/src + copying pywgsim/src/Makefile -> build/lib.linux-x86_64-cpython-38/pywgsim/src + copying pywgsim/src/kseq.h -> build/lib.linux-x86_64-cpython-38/pywgsim/src + copying pywgsim/src/wgsim_mod.c -> build/lib.linux-x86_64-cpython-38/pywgsim/src + copying pywgsim/src/wgsim_mod.h -> build/lib.linux-x86_64-cpython-38/pywgsim/src + running build_ext + building 'pywgsim.wgsim' extension + creating build/temp.linux-x86_64-cpython-38 + creating build/temp.linux-x86_64-cpython-38/pywgsim + creating build/temp.linux-x86_64-cpython-38/pywgsim/src + /opt/conda/conda-bld/pywgsim_1718134883721/_build_env/bin/x86_64-conda-linux-gnu-cc -Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/conda/conda-bld/pywgsim_1718134883721/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/include -fPIC -O2 -isystem /opt/conda/conda-bld/pywgsim_1718134883721/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /opt/conda/conda-bld/pywgsim_1718134883721/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/include -fdebug-prefix-map=/opt/conda/conda-bld/pywgsim_1718134883721/work=/usr/local/src/conda/pywgsim-0.5.2 -fdebug-prefix-map=/opt/conda/conda-bld/pywgsim_1718134883721/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place=/usr/local/src/conda-prefix -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/conda-bld/pywgsim_1718134883721/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/include -fPIC -Ipywgsim/src -I/opt/conda/conda-bld/pywgsim_1718134883721/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/include/python3.8 -c pywgsim/src/wgsim_mod.c -o build/temp.linux-x86_64-cpython-38/pywgsim/src/wgsim_mod.o + pywgsim/src/wgsim_mod.c:39:10: fatal error: zlib.h: No such file or directory + 39 | #include + | ^~~~~~~~ + compilation terminated. + /opt/conda/conda-bld/pywgsim_1718134883721/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/lib/python3.8/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'pywgsim.src' is absent from the packages configuration. !! ******************************************************************************** @@ -42,24 +62,7 @@ log: |2- !! check.warn(importable) - copying pywgsim/wgsim_lib.c -> build/lib.linux-x86_64-cpython-310/pywgsim - copying pywgsim/wgsim_lib.pyx -> build/lib.linux-x86_64-cpython-310/pywgsim - creating build/lib.linux-x86_64-cpython-310/pywgsim/src - copying pywgsim/src/Makefile -> build/lib.linux-x86_64-cpython-310/pywgsim/src - copying pywgsim/src/kseq.h -> build/lib.linux-x86_64-cpython-310/pywgsim/src - copying pywgsim/src/wgsim_mod.c -> build/lib.linux-x86_64-cpython-310/pywgsim/src - copying pywgsim/src/wgsim_mod.h -> build/lib.linux-x86_64-cpython-310/pywgsim/src - running build_ext - building 'pywgsim.wgsim' extension - creating build/temp.linux-x86_64-cpython-310 - creating build/temp.linux-x86_64-cpython-310/pywgsim - creating build/temp.linux-x86_64-cpython-310/pywgsim/src - /opt/conda/conda-bld/pywgsim_1685450236902/_build_env/bin/x86_64-conda-linux-gnu-cc -Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/conda/conda-bld/pywgsim_1685450236902/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/include -fPIC -O2 -isystem /opt/conda/conda-bld/pywgsim_1685450236902/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /opt/conda/conda-bld/pywgsim_1685450236902/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/include -fdebug-prefix-map=/opt/conda/conda-bld/pywgsim_1685450236902/work=/usr/local/src/conda/pywgsim-0.5.2 -fdebug-prefix-map=/opt/conda/conda-bld/pywgsim_1685450236902/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place=/usr/local/src/conda-prefix -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/conda-bld/pywgsim_1685450236902/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/include -fPIC -Ipywgsim/src -I/opt/conda/conda-bld/pywgsim_1685450236902/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/include/python3.10 -c pywgsim/src/wgsim_mod.c -o build/temp.linux-x86_64-cpython-310/pywgsim/src/wgsim_mod.o - pywgsim/src/wgsim_mod.c:39:10: fatal error: zlib.h: No such file or directory - 39 | #include - | ^~~~~~~~ - compilation terminated. - error: command '/opt/conda/conda-bld/pywgsim_1685450236902/_build_env/bin/x86_64-conda-linux-gnu-cc' failed with exit code 1 + error: command '/opt/conda/conda-bld/pywgsim_1718134883721/_build_env/bin/x86_64-conda-linux-gnu-cc' failed with exit code 1 [1;31merror[0m: [1msubprocess-exited-with-error[0m [31m[0m [32mBuilding wheel for pywgsim [0m[1;32m([0m[32mpyproject.toml[0m[1;32m)[0m did not run successfully. @@ -67,38 +70,36 @@ log: |2- [31m>[0m See above for output. [1;35mnote[0m: This error originates from a subprocess, and is likely not a problem with pip. - [1;35mfull command[0m: [34m/opt/conda/conda-bld/pywgsim_1685450236902/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/bin/python /opt/conda/conda-bld/pywgsim_1685450236902/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py build_wheel /tmp/tmpvt2fqpe7[0m - [1;35mcwd[0m: /opt/conda/conda-bld/pywgsim_1685450236902/work + [1;35mfull command[0m: [34m/opt/conda/conda-bld/pywgsim_1718134883721/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/bin/python /opt/conda/conda-bld/pywgsim_1718134883721/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/lib/python3.8/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py build_wheel /tmp/tmpdpqqbkrp[0m + [1;35mcwd[0m: /opt/conda/conda-bld/pywgsim_1718134883721/work Building wheel for pywgsim (pyproject.toml): finished with status 'error' [31m ERROR: Failed building wheel for pywgsim[0m[31m [0mFailed to build pywgsim [31mERROR: Could not build wheels for pywgsim, which is required to install pyproject.toml-based projects[0m[31m [0mException information: Traceback (most recent call last): - File "$PREFIX/lib/python3.10/site-packages/pip/_internal/cli/base_command.py", line 169, in exc_logging_wrapper + File "$PREFIX/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper status = run_func(*args) - File "$PREFIX/lib/python3.10/site-packages/pip/_internal/cli/req_command.py", line 248, in wrapper + File "$PREFIX/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper return func(self, options, args) - File "$PREFIX/lib/python3.10/site-packages/pip/_internal/commands/install.py", line 426, in run + File "$PREFIX/lib/python3.8/site-packages/pip/_internal/commands/install.py", line 429, in run raise InstallationError( pip._internal.exceptions.InstallationError: Could not build wheels for pywgsim, which is required to install pyproject.toml-based projects - Removed build tracker: '/tmp/pip-build-tracker-sczao82h' + Removed build tracker: '/tmp/pip-build-tracker-nmdku6cp' Traceback (most recent call last): - File "/opt/conda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/conda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build return build_tree( - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/conda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/conda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/pywgsim_1685450236902/work/conda_build.sh']' returned non-zero exit status 1. + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/pywgsim_1718134883721/work/conda_build.sh']' returned non-zero exit status 1. # Last 100 lines of the build log. diff --git a/recipes/pywgsim/meta.yaml b/recipes/pywgsim/meta.yaml index f84f552d75c1c..423f649062f80 100644 --- a/recipes/pywgsim/meta.yaml +++ b/recipes/pywgsim/meta.yaml @@ -6,11 +6,10 @@ package: version: {{ version }} build: - skip: true # [py2k] entry_points: - pywgsim=pywgsim.main:run script: {{ PYTHON }} -m pip install . -vv - number: 1 + number: 2 source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pywgsim-{{ version }}.tar.gz diff --git a/recipes/quast/meta.yaml b/recipes/quast/meta.yaml index 3557b639a865b..4b9f0a96c8548 100644 --- a/recipes/quast/meta.yaml +++ b/recipes/quast/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 3 + number: 4 source: url: diff --git a/recipes/quickbam/build_failure.linux-64.yaml b/recipes/quickbam/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..21212b271aea4 --- /dev/null +++ b/recipes/quickbam/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: b3da34dd128c62efdea363b2e91af4d63179530bdc48890193e2ccab9aa6e8bc # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + Forcing conda-build to use the recipe file. + warnings.warn( + WARNING: No numpy version specified in conda_build_config.yaml. Falling back to default numpy value of 1.22 + Adding in variants from internal_defaults + Adding in variants from /opt/host-conda-bld/conda_build_config_0_-e_conda_build_config.yaml + Adding in variants from /opt/host-conda-bld/conda_build_config_1_-e_bioconda_utils-conda_build_config.yaml + Attempting to finalize metadata for quickbam + Reloading output folder (file:///opt/host-conda-bld): ...working... done + Getting pinned dependencies: ...working... done + Reloading output folder (file:///opt/host-conda-bld): ...working... done + Getting pinned dependencies: ...working... done + Reloading output folder (file:///opt/host-conda-bld): ...working... done + Getting pinned dependencies: ...working... done + BUILD START: ['quickbam-1.0.0-ha7dfff3_2.tar.bz2'] + Reloading output folder (file:///opt/host-conda-bld): ...working... done + Solving environment (_h_env): ...working... done + + ## Package Plan ## + + environment location: /opt/conda/conda-bld/quickbam_1717512051188/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac + + + The following NEW packages will be INSTALLED: + + _libgcc_mutex: 0.1-conda_forge conda-forge + _openmp_mutex: 4.5-2_gnu conda-forge + icu: 73.2-h59595ed_0 conda-forge + libdeflate: 1.20-hd590300_0 conda-forge + libgcc-ng: 13.2.0-h77fa898_7 conda-forge + libgomp: 13.2.0-h77fa898_7 conda-forge + libhwloc: 2.10.0-default_h5622ce7_1001 conda-forge + libiconv: 1.17-hd590300_2 conda-forge + libstdcxx-ng: 13.2.0-hc0a3c3a_7 conda-forge + libxml2: 2.12.7-hc051c1a_0 conda-forge + libzlib: 1.3.1-h4ab18f5_1 conda-forge + tbb: 2021.12.0-h297d8ca_1 conda-forge + tbb-devel: 2021.12.0-h7c56ddd_1 conda-forge + xz: 5.2.6-h166bdaf_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Reloading output folder (file:///opt/host-conda-bld): ...working... done + Solving environment (_build_env): ...working... done + Reloading output folder (file:///opt/host-conda-bld): ...working... done + Solving environment (_test_env): ...working... done + + ## Package Plan ## + + environment location: /opt/conda/conda-bld/quickbam_1717512051188/_build_env + + + The following NEW packages will be INSTALLED: + + _libgcc_mutex: 0.1-conda_forge conda-forge + _openmp_mutex: 4.5-2_gnu conda-forge + binutils_impl_linux-64: 2.40-ha1999f0_1 conda-forge + binutils_linux-64: 2.40-hdade7a5_3 conda-forge + gcc_impl_linux-64: 12.3.0-h58ffeeb_7 conda-forge + gcc_linux-64: 12.3.0-h6477408_3 conda-forge + gxx_impl_linux-64: 12.3.0-h2a574ab_7 conda-forge + gxx_linux-64: 12.3.0-h4a1b8e8_3 conda-forge + kernel-headers_linux-64: 2.6.32-he073ed8_17 conda-forge + ld_impl_linux-64: 2.40-hf3520f5_1 conda-forge + libgcc-devel_linux-64: 12.3.0-h0223996_107 conda-forge + libgcc-ng: 13.2.0-h77fa898_7 conda-forge + libgomp: 13.2.0-h77fa898_7 conda-forge + libsanitizer: 12.3.0-hb8811af_7 conda-forge + libstdcxx-devel_linux-64: 12.3.0-h0223996_107 conda-forge + libstdcxx-ng: 13.2.0-hc0a3c3a_7 conda-forge + make: 4.3-hd18ef5c_1 conda-forge + sysroot_linux-64: 2.12-he073ed8_17 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Source cache directory is: /opt/conda/conda-bld/src_cache + Downloading source to cache: quickbam-v1.0.0_fed3a9a8e3.tar.gz + Downloading https://gitlab.com/api/v4/projects/30176255/packages/generic/quickbam/v1.0.0/quickbam-v1.0.0.tar.gz + Success + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2419, in build + try_download(m, no_download_source=False, raise_error=True) + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 762, in try_download + source.provide(metadata) + File "/opt/conda/lib/python3.10/site-packages/conda_build/source.py", line 1035, in provide + unpack( + File "/opt/conda/lib/python3.10/site-packages/conda_build/source.py", line 169, in unpack + src_path, unhashed_fn = download_to_cache( + File "/opt/conda/lib/python3.10/site-packages/conda_build/source.py", line 125, in download_to_cache + raise RuntimeError( + RuntimeError: SHA256 mismatch: '3a55af5335076a78ae80b64ad330d9953c96d2a8a5614bafa472ad5094b4550f' != 'fed3a9a8e3f11bc59131ecd4abd2d9b1a4addd0bc1b96a50462b4873ee6fa21b' +# Last 100 lines of the build log. diff --git a/recipes/quickbam/meta.yaml b/recipes/quickbam/meta.yaml index 7a82a15ddc244..cce87c56583e5 100644 --- a/recipes/quickbam/meta.yaml +++ b/recipes/quickbam/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 1 + number: 2 skip: true # [osx] source: diff --git a/recipes/quicksect/meta.yaml b/recipes/quicksect/meta.yaml index 1f51629608baf..397ed3e780b91 100644 --- a/recipes/quicksect/meta.yaml +++ b/recipes/quicksect/meta.yaml @@ -10,7 +10,7 @@ source: sha256: "d3e65b55b7f48e6105b11b1e1d6f37ccbf8caecfc7d7db7aba73dfaf6d732a9c" build: - number: 8 + number: 9 script: rm -f src/*.c ; {{ PYTHON }} -m pip install --no-deps --ignore-installed . requirements: diff --git a/recipes/r-ccube/meta.yaml b/recipes/r-ccube/meta.yaml index 9c8de99da6ff9..cc55304fb863c 100644 --- a/recipes/r-ccube/meta.yaml +++ b/recipes/r-ccube/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 5 + number: 6 script: R CMD INSTALL --build . rpaths: - lib/R/lib/ diff --git a/recipes/r-cssam/meta.yaml b/recipes/r-cssam/meta.yaml index 6fc71c9619016..304039fe27b53 100644 --- a/recipes/r-cssam/meta.yaml +++ b/recipes/r-cssam/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 722838845a8d3637b4c45b6a9316e70aaeccec0f68fa764ec311c24aaf915fc9 build: - number: 6 + number: 7 rpaths: - lib/R/lib/ - lib/ diff --git a/recipes/r-leidenbase/meta.yaml b/recipes/r-leidenbase/meta.yaml index fcd2ae951d297..c98059bb3464d 100644 --- a/recipes/r-leidenbase/meta.yaml +++ b/recipes/r-leidenbase/meta.yaml @@ -9,7 +9,7 @@ source: sha256: c3168a68828aacfcf78c6c39415b4771f084c5b5c3c9b2e226dcb8cf909d7b27 build: - number: 1 + number: 2 rpaths: - lib/R/lib/ - lib/ @@ -43,4 +43,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/r-saige/meta.yaml b/recipes/r-saige/meta.yaml index bfeb27810aad6..ba8176474a80c 100644 --- a/recipes/r-saige/meta.yaml +++ b/recipes/r-saige/meta.yaml @@ -13,7 +13,7 @@ source: - patches/0001-use-shared-libs-in-makevars.patch build: - number: 0 + number: 1 rpaths: - lib/R/lib/ - lib/ diff --git a/recipes/r-scdc/meta.yaml b/recipes/r-scdc/meta.yaml index a8831b36a6368..0900193d29762 100644 --- a/recipes/r-scdc/meta.yaml +++ b/recipes/r-scdc/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 1362d6303b0ab8aabce25a907b9053a74d00c3508371ba497ac12880a770dc43 build: - number: 8 + number: 9 rpaths: - lib/R/lib/ - lib/ diff --git a/recipes/r-velocyto.r/build_failure.osx-64.yaml b/recipes/r-velocyto.r/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..2052e04cf3188 --- /dev/null +++ b/recipes/r-velocyto.r/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 684e911525b5157a20979381a54332c71c824890bd5ad8633058f6d09ff19e31 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + In file included from /opt/mambaforge/envs/bioconda/conda-bld/r-velocyto.r_1717694390164/_build_env/bin/../include/c/v1/locale:202: + /opt/mambaforge/envs/bioconda/conda-bld/r-velocyto.r_1717694390164/_build_env/bin/../include/c/v1/__locale:1309:15: error: expected ';' at end of declaration list + int length(state_type& __st, const extern_type* __frm, const extern_type* __end, size_t __mx) const + ^ + 12 errors generated. + make: *** [/opt/mambaforge/envs/bioconda/conda-bld/r-velocyto.r_1717694390164/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/R/etc/Makeconf:200: points_within.o] Error 1 + ERROR: compilation failed for package velocyto.R + * removing /opt/mambaforge/envs/bioconda/conda-bld/r-velocyto.r_1717694390164/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/R/library/velocyto.R + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/r-velocyto.r_1717694390164/work + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/r-velocyto.r_1717694390164/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/r-velocyto.r_1717694390164/_build_env + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/r-velocyto.r_1717694390164/work + INFO: activate-gfortran_osx-64.sh made the following environmental changes: + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + DEBUG_FFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/r-velocyto.r-0.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -Og -g -Wall -Wextra -fcheck=all -fbacktrace -fimplicit-none -fvar-tracking-assignments + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/r-velocyto.r_1717694390164/work/conda_build.sh']' returned non-zero exit status 1. + DEBUG_FORTRANFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/r-velocyto.r-0.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -Og -g -Wall -Wextra -fcheck=all -fbacktrace -fimplicit-none -fvar-tracking-assignments + F77=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + F90=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + F95=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + FC=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + FC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + FFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/r-velocyto.r-0.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + FORTRANFLAGS=-march=core2 -mtune=haswell -ftree-vectorize -fPIC -fstack-protector -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/r-velocyto.r-0.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GFORTRAN=$PREFIX/bin/x86_64-apple-darwin13.4.0-gfortran + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/r-velocyto.r-0.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/r-velocyto.r-0.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/r-velocyto.r-0.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/r-velocyto.r-0.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + INFO: activate_clang_osx-64.sh made the following environmental changes: + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + -CC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + -CMAKE_ARGS=-DCMAKE_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + -OBJC_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + -CXX_FOR_BUILD=$PREFIX/bin/x86_64-apple-darwin13.4.0-clang + x86_64-apple-darwin13.4.0-clang -std=gnu11 -I"$PREFIX/lib/R/include" -DNDEBUG -I'$PREFIX/lib/R/library/Rcpp/include' -I'$PREFIX/lib/R/library/RcppArmadillo/include' -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I$PREFIX/include -fopenmp -fPIC -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=/Users/runner/miniforge3/conda-bld/r-base-split_1714471796105/work=/usr/local/src/conda/r-base-4.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c RcppExports.cpp -o RcppExports.o + x86_64-apple-darwin13.4.0-clang -std=gnu11 -I"$PREFIX/lib/R/include" -DNDEBUG -I'$PREFIX/lib/R/library/Rcpp/include' -I'$PREFIX/lib/R/library/RcppArmadillo/include' -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I$PREFIX/include -fopenmp -fPIC -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=/Users/runner/miniforge3/conda-bld/r-base-split_1714471796105/work=/usr/local/src/conda/r-base-4.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c points_within.cpp -o points_within.o +# Last 100 lines of the build log. diff --git a/recipes/r-velocyto.r/meta.yaml b/recipes/r-velocyto.r/meta.yaml index f911f772a1030..cb8389f9e51b0 100644 --- a/recipes/r-velocyto.r/meta.yaml +++ b/recipes/r-velocyto.r/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 7 + number: 8 script: R CMD INSTALL --build . rpaths: - lib/R/lib/ diff --git a/recipes/racon/meta.yaml b/recipes/racon/meta.yaml index f2f1e5d7e4e16..c3070387cb5d0 100644 --- a/recipes/racon/meta.yaml +++ b/recipes/racon/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 3 + number: 4 run_exports: - {{ pin_subpackage(name|lower, max_pin="x") }} @@ -42,4 +42,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/ragout/build_failure.osx-64.yaml b/recipes/ragout/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..d2b6bb9508ca5 --- /dev/null +++ b/recipes/ragout/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 29d0da4ec534ab1bb22cd54ae0e9717543925684dc6389a310402b3186f24bf3 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ragout-2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ragout-2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + running build + running build_py + creating build + creating build/lib + creating build/lib/ragout + copying ragout/__init__.py -> build/lib/ragout + copying ragout/__version__.py -> build/lib/ragout + copying ragout/six.py -> build/lib/ragout + copying ragout/main.py -> build/lib/ragout + creating build/lib/ragout/assembly_graph + copying ragout/assembly_graph/__init__.py -> build/lib/ragout/assembly_graph + copying ragout/assembly_graph/assembly_refine.py -> build/lib/ragout/assembly_graph + creating build/lib/ragout/breakpoint_graph + copying ragout/breakpoint_graph/repeat_resolver.py -> build/lib/ragout/breakpoint_graph + copying ragout/breakpoint_graph/chimera_detector.py -> build/lib/ragout/breakpoint_graph + copying ragout/breakpoint_graph/breakpoint_graph.py -> build/lib/ragout/breakpoint_graph + copying ragout/breakpoint_graph/__init__.py -> build/lib/ragout/breakpoint_graph + copying ragout/breakpoint_graph/permutation.py -> build/lib/ragout/breakpoint_graph + copying ragout/breakpoint_graph/inferer.py -> build/lib/ragout/breakpoint_graph + creating build/lib/ragout/maf2synteny + copying ragout/maf2synteny/maf2synteny.py -> build/lib/ragout/maf2synteny + copying ragout/maf2synteny/__init__.py -> build/lib/ragout/maf2synteny + creating build/lib/ragout/overlap + copying ragout/overlap/__init__.py -> build/lib/ragout/overlap + copying ragout/overlap/overlap.py -> build/lib/ragout/overlap + creating build/lib/ragout/parsers + copying ragout/parsers/recipe_parser.py -> build/lib/ragout/parsers + copying ragout/parsers/phylogeny_parser.py -> build/lib/ragout/parsers + copying ragout/parsers/fasta_parser.py -> build/lib/ragout/parsers + copying ragout/parsers/__init__.py -> build/lib/ragout/parsers + creating build/lib/ragout/phylogeny + copying ragout/phylogeny/__init__.py -> build/lib/ragout/phylogeny + copying ragout/phylogeny/phylogeny.py -> build/lib/ragout/phylogeny + copying ragout/phylogeny/inferer.py -> build/lib/ragout/phylogeny + creating build/lib/ragout/scaffolder + copying ragout/scaffolder/__init__.py -> build/lib/ragout/scaffolder + copying ragout/scaffolder/scaffolder.py -> build/lib/ragout/scaffolder + copying ragout/scaffolder/output_generator.py -> build/lib/ragout/scaffolder + copying ragout/scaffolder/merge_iters.py -> build/lib/ragout/scaffolder + creating build/lib/ragout/shared + copying ragout/shared/config.py -> build/lib/ragout/shared + copying ragout/shared/__init__.py -> build/lib/ragout/shared + copying ragout/shared/datatypes.py -> build/lib/ragout/shared + copying ragout/shared/utils.py -> build/lib/ragout/shared + copying ragout/shared/debug.py -> build/lib/ragout/shared + creating build/lib/ragout/synteny_backend + copying ragout/synteny_backend/hal.py -> build/lib/ragout/synteny_backend + copying ragout/synteny_backend/sibelia.py -> build/lib/ragout/synteny_backend + copying ragout/synteny_backend/__init__.py -> build/lib/ragout/synteny_backend + copying ragout/synteny_backend/synteny_backend.py -> build/lib/ragout/synteny_backend + copying ragout/synteny_backend/cactus.py -> build/lib/ragout/synteny_backend + copying ragout/synteny_backend/maf.py -> build/lib/ragout/synteny_backend + creating build/lib/ragout/newick + copying ragout/newick/tree.py -> build/lib/ragout/newick + copying ragout/newick/__init__.py -> build/lib/ragout/newick + copying ragout/newick/tokens.py -> build/lib/ragout/newick + copying ragout/newick/parser.py -> build/lib/ragout/newick + copying ragout/newick/lexer.py -> build/lib/ragout/newick + creating build/lib/ragout/tests + copying ragout/tests/__init__.py -> build/lib/ragout/tests + copying ragout/tests/test_toy.py -> build/lib/ragout/tests + creating build/lib/ragout/tests/data + copying ragout/tests/data/mg1655.coords -> build/lib/ragout/tests/data + copying ragout/tests/data/ecoli.rcp -> build/lib/ragout/tests/data + copying ragout/tests/data/DH1.fasta -> build/lib/ragout/tests/data + copying ragout/tests/data/mg1655_contigs.fasta -> build/lib/ragout/tests/data + make -C ragout/overlap/cpp_impl all + make[1]: Entering directory '$SRC_DIR/ragout/overlap/cpp_impl' + x86_64-apple-darwin13.4.0-clang -c -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ragout-2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c0x -stdlib=libc -Wall -O2 -DNDEBUG build_graph.cpp -o build_graph.o + x86_64-apple-darwin13.4.0-clang -c -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ragout-2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -std=c0x -stdlib=libc -Wall -O2 -DNDEBUG fasta.cpp -o fasta.o + make[1]: Leaving directory '$SRC_DIR/ragout/overlap/cpp_impl' +# Last 100 lines of the build log. diff --git a/recipes/ragout/meta.yaml b/recipes/ragout/meta.yaml index f4f6894ba46bb..085d814b11fb0 100644 --- a/recipes/ragout/meta.yaml +++ b/recipes/ragout/meta.yaml @@ -10,7 +10,7 @@ source: build: skip: True # [py > 38] - number: 6 + number: 7 requirements: build: diff --git a/recipes/rapifilt/meta.yaml b/recipes/rapifilt/meta.yaml index 6cf5a8cce9e9c..29e5d7fe32456 100644 --- a/recipes/rapifilt/meta.yaml +++ b/recipes/rapifilt/meta.yaml @@ -9,7 +9,7 @@ source: sha256: f25f93c278bbbed666351c403e37ee49d67399b0b490adb90546e325c198da3f build: - number: 5 + number: 6 skip: True # [osx] requirements: diff --git a/recipes/rapsearch/build_failure.linux-64.yaml b/recipes/rapsearch/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..f61e034332fca --- /dev/null +++ b/recipes/rapsearch/build_failure.linux-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 45b114e0405c9baae0f3a16295220bc9cddb586c23172703b26964a23a03884e # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: compiler error +log: |- + HashSearch.cpp:3051:30: warning: ISO C forbids converting a string constant to 'char*' [-Wwrite-strings] + 3051 | PrintXmlLine("Hsp_hit-from", c.nDSt); + | ^~~~~~~~~~~~~~ + HashSearch.cpp:3052:30: warning: ISO C forbids converting a string constant to 'char*' [-Wwrite-strings] + 3052 | PrintXmlLine("Hsp_hit-to", c.nDEd); + | ^~~~~~~~~~~~ + HashSearch.cpp:3053:30: warning: ISO C forbids converting a string constant to 'char*' [-Wwrite-strings] + 3053 | PrintXmlLine("Hsp_query-frame", c.nFrame); + | ^~~~~~~~~~~~~~~~~ + HashSearch.cpp:3067:30: warning: ISO C forbids converting a string constant to 'char*' [-Wwrite-strings] + 3067 | PrintXmlLine("Hsp_identity", nIdt); + | ^~~~~~~~~~~~~~ + HashSearch.cpp:3068:30: warning: ISO C forbids converting a string constant to 'char*' [-Wwrite-strings] + 3068 | PrintXmlLine("Hsp_positive", nPos); + | ^~~~~~~~~~~~~~ + HashSearch.cpp:3069:30: warning: ISO C forbids converting a string constant to 'char*' [-Wwrite-strings] + 3069 | PrintXmlLine("Hsp_align-len", c.nAlnLen); + | ^~~~~~~~~~~~~~~ + HashSearch.cpp:3072:30: warning: ISO C forbids converting a string constant to 'char*' [-Wwrite-strings] + 3072 | PrintXmlLine("Hsp_qseq", c.sQ.substr(n1, n2-n11)); + | ^~~~~~~~~~ + HashSearch.cpp:3075:30: warning: ISO C forbids converting a string constant to 'char*' [-Wwrite-strings] + 3075 | PrintXmlLine("Hsp_hseq", c.sD.substr(n1, n2-n11)); + | ^~~~~~~~~~ + HashSearch.cpp:3078:30: warning: ISO C forbids converting a string constant to 'char*' [-Wwrite-strings] + 3078 | PrintXmlLine("Hsp_midline", c.sInfo.substr(n1, n2-n11)); + | ^~~~~~~~~~~~~ + HashSearch.cpp:3079:30: warning: ISO C forbids converting a string constant to 'char*' [-Wwrite-strings] + 3079 | PrintXmlTagR("Hsp"); + | ^~~~~ + HashSearch.cpp:3080:30: warning: ISO C forbids converting a string constant to 'char*' [-Wwrite-strings] + 3080 | PrintXmlTagR("Hit_hsps"); + | ^~~~~~~~~~ + HashSearch.cpp:3081:30: warning: ISO C forbids converting a string constant to 'char*' [-Wwrite-strings] + 3081 | PrintXmlTagR("Hit"); + | ^~~~~ + HashSearch.cpp:3084:22: warning: ISO C forbids converting a string constant to 'char*' [-Wwrite-strings] + 3084 | PrintXmlTagR("Iteration_hits"); + | ^~~~~~~~~~~~~~~~ + HashSearch.cpp:3086:21: warning: ISO C forbids converting a string constant to 'char*' [-Wwrite-strings] + 3086 | PrintXmlTag("Iteration_stat"); + | ^~~~~~~~~~~~~~~~ + HashSearch.cpp:3087:21: warning: ISO C forbids converting a string constant to 'char*' [-Wwrite-strings] + 3087 | PrintXmlTag("Statistics"); + | ^~~~~~~~~~~~ + HashSearch.cpp:3088:22: warning: ISO C forbids converting a string constant to 'char*' [-Wwrite-strings] + 3088 | PrintXmlLine("Statistics_db-num", m_lnSeqNum); + | ^~~~~~~~~~~~~~~~~~~ + HashSearch.cpp:3089:22: warning: ISO C forbids converting a string constant to 'char*' [-Wwrite-strings] + 3089 | PrintXmlLine("Statistics_db-len", m_lnTotalAa); + | ^~~~~~~~~~~~~~~~~~~ + HashSearch.cpp:3090:22: warning: ISO C forbids converting a string constant to 'char*' [-Wwrite-strings] + 3090 | PrintXmlLine("Statistics_hsp-len", 0); + | ^~~~~~~~~~~~~~~~~~~~ + HashSearch.cpp:3091:22: warning: ISO C forbids converting a string constant to 'char*' [-Wwrite-strings] + 3091 | PrintXmlLine("Statistics_eff-space", 0); + | ^~~~~~~~~~~~~~~~~~~~~~ + HashSearch.cpp:3092:22: warning: ISO C forbids converting a string constant to 'char*' [-Wwrite-strings] + 3092 | PrintXmlLine("Statistics_kappa", 0.041); + | ^~~~~~~~~~~~~~~~~~ + HashSearch.cpp:3093:22: warning: ISO C forbids converting a string constant to 'char*' [-Wwrite-strings] + 3093 | PrintXmlLine("Statistics_lambda", 0.267); + | ^~~~~~~~~~~~~~~~~~~ + HashSearch.cpp:3094:22: warning: ISO C forbids converting a string constant to 'char*' [-Wwrite-strings] + 3094 | PrintXmlLine("Statistics_entropy", 0.14); + | ^~~~~~~~~~~~~~~~~~~~ + HashSearch.cpp:3095:22: warning: ISO C forbids converting a string constant to 'char*' [-Wwrite-strings] + 3095 | PrintXmlTagR("Statistics"); + | ^~~~~~~~~~~~ + HashSearch.cpp:3096:22: warning: ISO C forbids converting a string constant to 'char*' [-Wwrite-strings] + 3096 | PrintXmlTagR("Iteration_stat"); + | ^~~~~~~~~~~~~~~~ + HashSearch.cpp:3098:22: warning: ISO C forbids converting a string constant to 'char*' [-Wwrite-strings] + 3098 | PrintXmlTagR("Iteration"); + | ^~~~~~~~~~~ + HashSearch.cpp: In member function 'void CHashSearch::PrintXmlEnd()': + HashSearch.cpp:3104:22: warning: ISO C forbids converting a string constant to 'char*' [-Wwrite-strings] + 3104 | PrintXmlTagR("Output_iterations"); + | ^~~~~~~~~~~~~~~~~~~ + HashSearch.cpp:3105:22: warning: ISO C forbids converting a string constant to 'char*' [-Wwrite-strings] + 3105 | PrintXmlTagR("Output"); + | ^~~~~~~~ + make: *** [Makefile:39: HashSearch.o] Error 1 + make: Leaving directory '$SRC_DIR/Src' + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/rapsearch_1718134443387/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/rapsearch/meta.yaml b/recipes/rapsearch/meta.yaml index 9a0f1fcb29b60..f8e638d5d7bc4 100644 --- a/recipes/rapsearch/meta.yaml +++ b/recipes/rapsearch/meta.yaml @@ -4,7 +4,9 @@ package: build: skip: True #[osx] - number: 7 + number: 8 + run_exports: + - {{ pin_subpackage("rapsearch", max_pin="x") }} source: url: diff --git a/recipes/relion/build_failure.osx-64.yaml b/recipes/relion/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..332dcf6cf4df1 --- /dev/null +++ b/recipes/relion/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 51ccadfb0c6d9ab47a5361ff0dc66e90aa6b8b881a440b1157820acb6d8f25d2 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + -- Looking for shmat + -- Looking for shmat - found + -- Found FFTW + -- FFTW_PATH: $PREFIX/include + -- FFTW_INCLUDES: $PREFIX/include + -- FFTW_LIBRARIES: $PREFIX/lib/libfftw3f.dylib;$PREFIX/lib/libfftw3.dylib + -- Looking for sincos + -- Looking for sincos - not found + -- Looking for __sincos + -- Looking for __sincos - found + -- Found TIFF: $PREFIX/lib/libtiff.dylib (found version "4.0.9") + -- Found ZLIB: $PREFIX/lib/libz.dylib (found version "1.3.1") + -- Found PNG: $PREFIX/lib/libpng.dylib (found version "1.4.12") + -- Checking class ranker model file... + -- -------------------------------------------------------- + -- --------- FOUND NO LOCAL COPY OF TORCH MODELS. --------- + -- ------- WILL BE DOWNLOADED DURING COMPILE-TIME. -------- + -- -------------------------------------------------------- + -- ---- A WORKING INTERNET CONNECTION WILL BE REQUIRED. --- + -- -- TO SKIP, RECONFIGURE WITH -DFETCH_TORCH_MODELS=OFF -- + -- -------------------------------------------------------- + -- Building static libs (larger build size and binaries) + -- CMAKE_BINARY_DIR:$SRC_DIR/build + -- Found JPEG: $PREFIX/lib/libjpeg.dylib (found version "80") + -- Found OpenMP_C: -fopenmp=libomp (found version "5.0") + -- Found OpenMP_CXX: -fopenmp=libomp (found version "5.0") + -- Found OpenMP: TRUE (found version "5.0") + -- Configuring done (10.9s) + -- Generating done (1.0s) + -- Build files have been written to: $SRC_DIR/build + [ 0%] Creating directories for 'class_ranker_model_file' + [ 0%] Performing download step (download, verify and extract) for 'class_ranker_model_file' + -- Downloading... + dst='$SRC_DIR/external/torch_models/class_ranker_0.1.3_torch_1.0.1.pt.tar.gz' + timeout='none' + inactivity timeout='none' + -- Using src='ftp://ftp.mrc-lmb.cam.ac.uk/pub/dari/class_ranker_0.1.3_torch_1.0.1.pt.tar.gz' + -- [download 0% complete] + -- [download 1% complete] + -- [download 2% complete] + -- [download 5% complete] + -- [download 6% complete] + -- [download 7% complete] + -- [download 8% complete] + -- [download 9% complete] + -- [download 10% complete] + -- [download 14% complete] + -- [download 15% complete] + -- [download 16% complete] + -- [download 17% complete] + -- [download 18% complete] + -- [download 19% complete] + -- [download 22% complete] + -- [download 30% complete] + -- [download 38% complete] + -- [download 40% complete] + -- [download 48% complete] + -- [download 56% complete] + -- [download 64% complete] + -- [download 73% complete] + -- [download 74% complete] + -- [download 81% complete] + -- [download 89% complete] + -- [download 98% complete] + -- [download 100% complete] + -- verifying file... + file='$SRC_DIR/external/torch_models/class_ranker_0.1.3_torch_1.0.1.pt.tar.gz' + -- Downloading... done + -- extracting... + src='$SRC_DIR/external/torch_models/class_ranker_0.1.3_torch_1.0.1.pt.tar.gz' + dst='$SRC_DIR/external/torch_models/class_ranker' + -- extracting... [tar xfz] + -- extracting... [analysis] + -- extracting... [rename] + -- extracting... [clean up] + -- extracting... done + [ 0%] No update step for 'class_ranker_model_file' + [ 1%] No patch step for 'class_ranker_model_file' + [ 2%] No configure step for 'class_ranker_model_file' + [ 2%] No build step for 'class_ranker_model_file' + [ 2%] No install step for 'class_ranker_model_file' + [ 2%] Completed 'class_ranker_model_file' + [ 2%] Built target class_ranker_model_file + [ 2%] Built target copy_scripts + [ 3%] Building CXX object src/apps/CMakeFiles/relion_lib.dir/__/__/macros.cpp.o + [ 3%] Building CXX object src/apps/CMakeFiles/relion_lib.dir/__/CPlot2D.cpp.o + [ 3%] Building CXX object src/apps/CMakeFiles/relion_lib.dir/__/args.cpp.o + [ 3%] Building CXX object src/apps/CMakeFiles/relion_lib.dir/__/assembly.cpp.o + [ 3%] Building CXX object src/apps/CMakeFiles/relion_lib.dir/__/autopicker.cpp.o + [ 4%] Building CXX object src/apps/CMakeFiles/relion_lib.dir/__/autopicker_mpi.cpp.o + [ 4%] Building CXX object src/apps/CMakeFiles/relion_lib.dir/__/backprojector.cpp.o + [ 4%] Building CXX object src/apps/CMakeFiles/relion_lib.dir/__/batchrunner.cpp.o + [ 4%] Building CXX object src/apps/CMakeFiles/relion_lib.dir/__/batchrunner_mpi.cpp.o + [ 5%] Building CXX object src/apps/CMakeFiles/relion_lib.dir/__/class_ranker.cpp.o + [ 5%] Building CXX object src/apps/CMakeFiles/relion_lib.dir/__/complex.cpp.o + [ 5%] Building CXX object src/apps/CMakeFiles/relion_lib.dir/__/ctf.cpp.o + [ 5%] Building CXX object src/apps/CMakeFiles/relion_lib.dir/__/ctffind_runner.cpp.o + [ 5%] Building CXX object src/apps/CMakeFiles/relion_lib.dir/__/ctffind_runner_mpi.cpp.o + [ 6%] Building CXX object src/apps/CMakeFiles/relion_lib.dir/__/error.cpp.o + [ 6%] Building CXX object src/apps/CMakeFiles/relion_lib.dir/__/euler.cpp.o +# Last 100 lines of the build log. diff --git a/recipes/relion/meta.yaml b/recipes/relion/meta.yaml index ded049a524837..b790782ac6bbb 100644 --- a/recipes/relion/meta.yaml +++ b/recipes/relion/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 0ebbd94ad922d7f457e3f3b81f5660e2691a845d9a53f0f1c9fbeb4e54cd5c17 build: - number: 2 + number: 3 requirements: build: diff --git a/recipes/repdenovo/build_failure.osx-64.yaml b/recipes/repdenovo/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..b5bb78763b965 --- /dev/null +++ b/recipes/repdenovo/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 6b5663fb1507b00dd43bb94c83abab5d45e81696799bada8c2fe933065f90c6d # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + ^ + ./algorithms/local_alignment.cpp:71:26: warning: ISO C11 does not allow conversion from string literal to 'char *' [-Wwritable-strings] + char *aln_aa_rev_table = "ARNDCQEGHILKMFPSTWYV*X-"; + ^ + ./algorithms/local_alignment.cpp:81:33: warning: ISO C11 does not allow conversion from string literal to 'char *' [-Wwritable-strings] + char *aln_trans_table_eu_char = "KKNNRRSSTTTTIMIIEEDDGGGGAAAAVVVVQQHHRRRRPPPPLLLL**YY*WCCSSSSLLFFX"; + ^ + ./algorithms/local_alignment.cpp:331:2: error: ISO C17 does not allow 'register' storage class specifier [-Wregister] + register int i, j; + ^~~~~~~~~ + ./algorithms/local_alignment.cpp:331:2: error: ISO C17 does not allow 'register' storage class specifier [-Wregister] + register int i, j; + ^~~~~~~~~ + ./algorithms/local_alignment.cpp:515:2: error: ISO C17 does not allow 'register' storage class specifier [-Wregister] + register NT_LOCAL_SCORE *s; + ^~~~~~~~~ + ./algorithms/local_alignment.cpp:516:2: error: ISO C17 does not allow 'register' storage class specifier [-Wregister] + register int i; + ^~~~~~~~~ + ./algorithms/local_alignment.cpp:528:25: warning: variable 'b' set but not used [-Wunused-but-set-variable] + int gap_open, gap_ext, b; + ^ + ./algorithms/local_alignment.cpp:836:23: warning: variable 'tmp_len' set but not used [-Wunused-but-set-variable] + int q, r, qr, tmp_len; + ^ + 6 warnings and 4 errors generated. + make: *** [Makefile:22: local_alignment.o] Error 1 + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + Extracting download + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/repdenovo_1717630797899/work + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/repdenovo_1717630797899/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/repdenovo_1717630797899/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/repdenovo_1717630797899/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/repdenovo-0.0.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/repdenovo_1717630797899/work/conda_build.sh']' returned non-zero exit status 2. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/repdenovo-0.0.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/repdenovo-0.0.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/repdenovo-0.0.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + $SRC_DIR/TERefiner $SRC_DIR + x86_64-apple-darwin13.4.0-clang -O3 -Wall -I$PREFIX/include/bamtools -L$PREFIX/lib -Wl,-rpath,$PREFIX/lib -c public_func.cpp + x86_64-apple-darwin13.4.0-clang -O3 -Wall -I$PREFIX/include/bamtools -L$PREFIX/lib -Wl,-rpath,$PREFIX/lib -c StrOperation.cpp + x86_64-apple-darwin13.4.0-clang -O3 -Wall -I$PREFIX/include/bamtools -L$PREFIX/lib -Wl,-rpath,$PREFIX/lib -c ./algorithms/local_alignment.cpp +# Last 100 lines of the build log. diff --git a/recipes/repdenovo/meta.yaml b/recipes/repdenovo/meta.yaml index d6e7e1db7740e..6736d649752ef 100644 --- a/recipes/repdenovo/meta.yaml +++ b/recipes/repdenovo/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 3 + number: 4 requirements: build: diff --git a/recipes/rerconverge/meta.yaml b/recipes/rerconverge/meta.yaml index 49f08a1e63277..0af09357051c5 100644 --- a/recipes/rerconverge/meta.yaml +++ b/recipes/rerconverge/meta.yaml @@ -5,7 +5,7 @@ source: url: 'https://github.com/nclark-lab/RERconverge/archive/refs/tags/v0.3.0.tar.gz' sha256: 636e1baf64321c8bd1cd5e0c7a22b86180532d7e323e2b4d636b0059288e01bf build: - number: 1 + number: 2 rpaths: - lib/R/lib/ - lib/ diff --git a/recipes/reseq/meta.yaml b/recipes/reseq/meta.yaml index 7d29f91c534ef..194aa32bf31f2 100644 --- a/recipes/reseq/meta.yaml +++ b/recipes/reseq/meta.yaml @@ -7,7 +7,7 @@ source: sha256: 4ba3f87d0b6481a23f4af733919a071c1c9684c169f63b68f121b48be0a6c599 build: - number: 3 + number: 4 skip: True # [osx or py2k] requirements: diff --git a/recipes/resmico/build_failure.linux-64.yaml b/recipes/resmico/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..0cc1c17af72f5 --- /dev/null +++ b/recipes/resmico/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: bcd8e130b25d04ce8908e9bb33744acea1fe142d57a221dfa6ac65e7d1832114 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + [31mtensorflow [2.10.0|2.11.0|...|2.9.1][0m would require + [31mpython_abi 3.8.* *_cp38[0m, which conflicts with any installable versions previously reported; + [31mtensorflow [2.10.0|2.11.0|...|2.9.1][0m would require + [31mpython_abi 3.9.* *_cp39[0m, which conflicts with any installable versions previously reported; + [31mtensorflow [2.10.0|2.11.0|...|2.9.1][0m would require + [31m__cuda[0m, which is missing on the system; + [31mtensorflow [2.12.1|2.13.1|2.14.0|2.15.0|2.16.1][0m would require + [31mpython_abi 3.11.* *_cp311[0m, which conflicts with any installable versions previously reported. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build + create_build_envs(top_level_pkg, notest) + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs + raise e + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs + environ.get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("tensorflow==2.10.0=cuda112py310he87a039_0"), MatchSpec("__cuda")} + Encountered problems while solving: + - nothing provides __cuda needed by tensorflow-2.10.0-cuda112py310he87a039_0 + + Could not solve for environment specs + The following packages are incompatible + [32mpython_abi 3.12.* *_cp312[0m is installable and it requires + [32mpython 3.12.* *_cpython[0m, which can be installed; + [31mtensorboard <2.9.0 [0m is not installable because there are no viable options + [31mtensorboard [0.4.0rc3|1.10.0|...|2.4.1][0m conflicts with any installable versions previously reported; + [31mtensorboard [2.5.0|2.6.0|2.8.0][0m would require + [31mtensorboard-data-server >=0.6.0,<0.7.0 [0m but there are no viable options + [31mtensorboard-data-server [0.6.0|0.6.1][0m would require + [31mpython_abi 3.10.* *_cp310[0m, which conflicts with any installable versions previously reported; + [31mtensorboard-data-server [0.6.0|0.6.1][0m would require + [31mpython_abi 3.11.* *_cp311[0m, which conflicts with any installable versions previously reported; + [31mtensorboard-data-server 0.6.0[0m would require + [31mpython_abi 3.6.* *_cp36m[0m, which conflicts with any installable versions previously reported; + [31mtensorboard-data-server 0.6.0[0m would require + [31mpython_abi 3.6 *_pypy36_pp73[0m, which conflicts with any installable versions previously reported; + [31mtensorboard-data-server 0.6.0[0m would require + [31mpython_abi 3.7 *_pypy37_pp73[0m, which conflicts with any installable versions previously reported; + [31mtensorboard-data-server 0.6.0[0m would require + [31mpython_abi 3.7.* *_cp37m[0m, which conflicts with any installable versions previously reported; + [31mtensorboard-data-server [0.6.0|0.6.1][0m would require + [31mpython_abi 3.8.* *_cp38[0m, which conflicts with any installable versions previously reported; + [31mtensorboard-data-server [0.6.0|0.6.1][0m would require + [31mpython_abi 3.8 *_pypy38_pp73[0m, which conflicts with any installable versions previously reported; + [31mtensorboard-data-server [0.6.0|0.6.1][0m would require + [31mpython_abi 3.9.* *_cp39[0m, which conflicts with any installable versions previously reported; + [31mtensorboard-data-server [0.6.0|0.6.1][0m would require + [31mpython_abi 3.9 *_pypy39_pp73[0m, which conflicts with any installable versions previously reported; + [31mtensorboard [2.7.0|2.8.0][0m would require + [31mpython >=3.2,<3.10 [0m, which conflicts with any installable versions previously reported; + [32mtensorflow >=2.8.1 [0m is installable with the potential options + [32mtensorflow 2.16.1[0m would require + [32mtensorflow-base 2.16.1 cpu_py312hc526dda_0[0m, which requires + [32mtensorboard >=2.16,<2.17 [0m, which can be installed; + [31mtensorflow [2.10.0|2.11.0|...|2.9.1][0m would require + [31mpython_abi 3.10.* *_cp310[0m, which conflicts with any installable versions previously reported; + [31mtensorflow [2.10.0|2.8.1|2.9.1][0m would require + [31mpython_abi 3.7.* *_cp37m[0m, which conflicts with any installable versions previously reported; + [31mtensorflow [2.10.0|2.11.0|...|2.9.1][0m would require + [31mpython_abi 3.8.* *_cp38[0m, which conflicts with any installable versions previously reported; + [31mtensorflow [2.10.0|2.11.0|...|2.9.1][0m would require + [31mpython_abi 3.9.* *_cp39[0m, which conflicts with any installable versions previously reported; + [31mtensorflow [2.10.0|2.11.0|...|2.9.1][0m would require + [31m__cuda[0m, which is missing on the system; + [31mtensorflow [2.12.1|2.13.1|2.14.0|2.15.0|2.16.1][0m would require + [31mpython_abi 3.11.* *_cp311[0m, which conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/resmico/build_failure.osx-64.yaml b/recipes/resmico/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..537e0470c8253 --- /dev/null +++ b/recipes/resmico/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: bcd8e130b25d04ce8908e9bb33744acea1fe142d57a221dfa6ac65e7d1832114 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + python [2.7.15|3.5.5|...|3.9.7], which cannot be installed (as previously explained); + python [3.7.10|3.7.12] conflicts with any installable versions previously reported; + tensorboard [1.14.0|1.15.0] would require + python >=3.8,<3.9.0a0 but there are no viable options + python [2.7.15|3.5.5|...|3.9.7], which cannot be installed (as previously explained); + python [3.8.12|3.8.13|...|3.8.19] conflicts with any installable versions previously reported; + tensorboard [2.7.0|2.8.0] would require + python >=3.2,<3.10 but there are no viable options + python [2.7.12|2.7.13|...|3.6.2], which cannot be installed (as previously explained); + python [2.7.14|3.6.3], which cannot be installed (as previously explained); + python [2.7.14|2.7.15|...|3.6.5], which cannot be installed (as previously explained); + python [2.7.15|3.5.5|...|3.9.7], which cannot be installed (as previously explained); + python [3.5.1|3.5.2], which cannot be installed (as previously explained); + python 3.6.15 conflicts with any installable versions previously reported; + python [3.7.10|3.7.12] conflicts with any installable versions previously reported; + python [3.8.12|3.8.13|...|3.8.19] conflicts with any installable versions previously reported; + python [3.9.10|3.9.12|...|3.9.9] conflicts with any installable versions previously reported; + tensorflow >=2.8.1 is installable with the potential options + tensorflow [2.10.0|2.11.0|2.11.1|2.12.1|2.9.1] would require + python_abi 3.10.* *_cp310, which can be installed; + tensorflow [2.10.0|2.9.1] would require + python_abi 3.7.* *_cp37m, which can be installed; + tensorflow [2.10.0|2.11.0|2.11.1|2.12.1|2.9.1] would require + python_abi 3.8.* *_cp38, which can be installed; + tensorflow [2.10.0|2.11.0|2.11.1|2.12.1|2.9.1] would require + python_abi 3.9.* *_cp39, which can be installed; + tensorflow 2.8.1 would require + python_abi 3.10.* *_cp310, which can be installed; + tensorflow-base 2.8.1 cpu_py310h196d2ec_0, which requires + grpcio 1.45.* , which requires + zlib >=1.2.11,<1.3.0a0 but there are no viable options + zlib 1.2.11 conflicts with any installable versions previously reported; + zlib [1.2.12|1.2.13] conflicts with any installable versions previously reported; + zlib 1.2.13, which cannot be installed (as previously explained); + zlib 1.2.13, which cannot be installed (as previously explained); + tensorflow 2.8.1 would require + python_abi 3.7.* *_cp37m, which can be installed; + tensorflow-base 2.8.1 cpu_py37hde0f349_0, which cannot be installed (as previously explained); + tensorflow 2.8.1 would require + python_abi 3.8.* *_cp38, which can be installed; + tensorflow-base 2.8.1 cpu_py38h89fe887_0, which cannot be installed (as previously explained); + tensorflow 2.8.1 would require + python_abi 3.9.* *_cp39, which can be installed; + tensorflow-base 2.8.1 cpu_py39h69e9f8f_0, which cannot be installed (as previously explained); + tensorflow 2.12.1 would require + tensorflow-base [2.12.1 cpu_py311h0cd1a8d_1|2.12.1 cpu_py311h682096a_0], which requires + tensorboard >=2.12,<2.13 , which conflicts with any installable versions previously reported; + tensorflow 2.13.1 would require + python_abi 3.10.* *_cp310, which can be installed; + tensorflow-base 2.13.1 cpu_py310h35b30e2_1, which requires + keras >=2.13,<2.14 , which requires + tensorflow 2.13.* , which conflicts with any installable versions previously reported; + tensorflow 2.13.1 would require + tensorflow-base 2.13.1 cpu_py311h3619e24_1, which requires + keras >=2.13,<2.14 , which cannot be installed (as previously explained); + tensorboard >=2.13,<2.14 , which conflicts with any installable versions previously reported; + tensorflow 2.13.1 would require + python_abi 3.8.* *_cp38, which can be installed; + tensorflow-base 2.13.1 cpu_py38h09536c9_1, which cannot be installed (as previously explained); + tensorflow 2.13.1 would require + python_abi 3.9.* *_cp39, which can be installed; + tensorflow-base 2.13.1 cpu_py39h8cf451b_1, which cannot be installed (as previously explained); + tensorflow 2.14.0 would require + python_abi 3.10.* *_cp310, which can be installed; + tensorflow-base 2.14.0 cpu_py310h577850d_0, which requires + keras >=2.14,<2.15 , which requires + tensorflow 2.14.* , which conflicts with any installable versions previously reported; + tensorflow 2.14.0 would require + tensorflow-base 2.14.0 cpu_py311h3619e24_0, which requires + keras >=2.14,<2.15 , which cannot be installed (as previously explained); + tensorboard >=2.14,<2.15 , which conflicts with any installable versions previously reported; + tensorflow 2.14.0 would require + python_abi 3.9.* *_cp39, which can be installed; + tensorflow-base 2.14.0 cpu_py39h8cf451b_0, which cannot be installed (as previously explained); + tensorflow 2.15.0 would require + python_abi 3.10.* *_cp310, which can be installed; + tensorflow-base [2.15.0 cpu_py310h35b30e2_0|2.15.0 cpu_py310hc0a61e3_1|2.15.0 cpu_py310hc0a61e3_2], which requires + keras >=2.15,<2.16 , which requires + tensorflow 2.15.* , which conflicts with any installable versions previously reported; + tensorflow 2.15.0 would require + tensorflow-base [2.15.0 cpu_py311h3619e24_0|2.15.0 cpu_py311hbca55e7_1|2.15.0 cpu_py311hbca55e7_2], which requires + keras >=2.15,<2.16 , which cannot be installed (as previously explained); + tensorboard >=2.15,<2.16 , which conflicts with any installable versions previously reported; + tensorflow 2.15.0 would require + python_abi 3.9.* *_cp39, which can be installed; + tensorflow-base [2.15.0 cpu_py39h1d1916d_1|2.15.0 cpu_py39h1d1916d_2|2.15.0 cpu_py39h8cf451b_0], which cannot be installed (as previously explained); + tensorflow 2.16.1 would require + python_abi 3.10.* *_cp310, which can be installed; + tensorflow-base 2.16.1 cpu_py310h3690a3c_0, which requires + keras >=3.0 , which requires + tensorflow >=2.15.0,<2.17.0a , which conflicts with any installable versions previously reported; + tensorflow 2.16.1 would require + tensorflow-base 2.16.1 cpu_py311h1dba402_0, which requires + keras >=3.0 , which cannot be installed (as previously explained); + tensorboard >=2.16,<2.17 , which conflicts with any installable versions previously reported; + tensorflow 2.16.1 would require + python_abi 3.12.* *_cp312, which can be installed; + tensorflow 2.16.1 would require + python_abi 3.9.* *_cp39, which can be installed; + tensorflow-base 2.16.1 cpu_py39h7e3563a_0, which cannot be installed (as previously explained). +# Last 100 lines of the build log. diff --git a/recipes/resmico/meta.yaml b/recipes/resmico/meta.yaml index 8733a3f71f7f3..8dd19e24d8998 100644 --- a/recipes/resmico/meta.yaml +++ b/recipes/resmico/meta.yaml @@ -11,7 +11,7 @@ source: build: skip: true # [py < 38] - number: 1 + number: 2 script: "{{ PYTHON }} -m pip install . -vv" requirements: diff --git a/recipes/revoluzer/meta.yaml b/recipes/revoluzer/meta.yaml index cd6b24a8f9070..0938d952509e1 100644 --- a/recipes/revoluzer/meta.yaml +++ b/recipes/revoluzer/meta.yaml @@ -10,7 +10,7 @@ source: sha256: a3c73aa21c1f1d63e40939568bd963690a0df24ccfe7ba6df28ca7ef49dd3b94 build: - number: 0 + number: 1 skip: True # [osx] run_exports: - {{ pin_subpackage('revoluzer', max_pin="x") }} diff --git a/recipes/rgccacmd/meta.yaml b/recipes/rgccacmd/meta.yaml index 00a4704c9c42d..24fcdf390ba47 100644 --- a/recipes/rgccacmd/meta.yaml +++ b/recipes/rgccacmd/meta.yaml @@ -11,7 +11,7 @@ source: build: noarch: generic - number: 0 + number: 1 rpaths: - lib/ - lib/R/lib/ diff --git a/recipes/rhocall/meta.yaml b/recipes/rhocall/meta.yaml index ced94a6ea344f..0e4786d16e3a8 100644 --- a/recipes/rhocall/meta.yaml +++ b/recipes/rhocall/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 4d2535c90e14a2a800fa1ddcd32dc252a13e4532edba948ca61b241238bee761 build: - number: 2 + number: 3 script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed" diff --git a/recipes/rmath4/meta.yaml b/recipes/rmath4/meta.yaml index 4a32e38ee15a5..ba2b6e894fa63 100644 --- a/recipes/rmath4/meta.yaml +++ b/recipes/rmath4/meta.yaml @@ -11,7 +11,7 @@ source: build: script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin="x") }} diff --git a/recipes/rmats/build_failure.osx-64.yaml b/recipes/rmats/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..758d8e8d7dee2 --- /dev/null +++ b/recipes/rmats/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: eb225f3a61251bb54e69e31c1b3d4ffe1b70c2f7cc8c20ac6a9433238022c11d # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + [ 3%] Building CXX object src/api/CMakeFiles/BamTools.dir/BamWriter.cpp.o + [ 4%] Building CXX object src/api/CMakeFiles/BamTools.dir/SamHeader.cpp.o + [ 5%] Building CXX object src/api/CMakeFiles/BamTools.dir/SamProgram.cpp.o + [ 6%] Building CXX object src/api/CMakeFiles/BamTools.dir/SamProgramChain.cpp.o + [ 7%] Building CXX object src/api/CMakeFiles/BamTools.dir/SamReadGroup.cpp.o + [ 8%] Building CXX object src/api/CMakeFiles/BamTools.dir/SamReadGroupDictionary.cpp.o + [ 9%] Building CXX object src/api/CMakeFiles/BamTools.dir/SamSequence.cpp.o + [ 10%] Building CXX object src/api/CMakeFiles/BamTools.dir/SamSequenceDictionary.cpp.o + [ 11%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/bam/BamHeader_p.cpp.o + [ 12%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/bam/BamMultiReader_p.cpp.o + [ 13%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/bam/BamRandomAccessController_p.cpp.o + [ 14%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/bam/BamReader_p.cpp.o + [ 15%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/bam/BamWriter_p.cpp.o + [ 16%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/index/BamIndexFactory_p.cpp.o + [ 17%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/index/BamStandardIndex_p.cpp.o + [ 18%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/index/BamToolsIndex_p.cpp.o + [ 19%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/BamDeviceFactory_p.cpp.o + [ 20%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/BamFile_p.cpp.o + [ 21%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/BamFtp_p.cpp.o + [ 22%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/BamHttp_p.cpp.o + [ 23%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/BamPipe_p.cpp.o + [ 24%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/BgzfStream_p.cpp.o + [ 25%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/ByteArray_p.cpp.o + [ 26%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/HostAddress_p.cpp.o + [ 27%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/HostInfo_p.cpp.o + [ 28%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/HttpHeader_p.cpp.o + [ 29%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/ILocalIODevice_p.cpp.o + [ 30%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/RollingBuffer_p.cpp.o + [ 31%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/TcpSocket_p.cpp.o + [ 32%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/TcpSocketEngine_p.cpp.o + [ 33%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/TcpSocketEngine_unix_p.cpp.o + [ 34%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/sam/SamFormatParser_p.cpp.o + [ 35%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/sam/SamFormatPrinter_p.cpp.o + [ 36%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/sam/SamHeaderValidator_p.cpp.o + [ 37%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/utils/BamException_p.cpp.o + [ 38%] Linking CXX shared library $SRC_DIR/bamtools/lib/libbamtools.dylib + make[3]: Leaving directory '$SRC_DIR/bamtools/build' + [ 38%] Built target BamTools + make[3]: Entering directory '$SRC_DIR/bamtools/build' + make[3]: Leaving directory '$SRC_DIR/bamtools/build' + make[3]: Entering directory '$SRC_DIR/bamtools/build' + [ 39%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/BamAlignment.cpp.o + [ 40%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/BamMultiReader.cpp.o + [ 41%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/BamReader.cpp.o + [ 42%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/BamWriter.cpp.o + [ 43%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/SamHeader.cpp.o + [ 44%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/SamProgram.cpp.o + [ 45%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/SamProgramChain.cpp.o + [ 46%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/SamReadGroup.cpp.o + [ 47%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/SamReadGroupDictionary.cpp.o + [ 48%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/SamSequence.cpp.o + [ 49%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/SamSequenceDictionary.cpp.o + [ 50%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/internal/bam/BamHeader_p.cpp.o + [ 50%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/internal/bam/BamMultiReader_p.cpp.o + [ 51%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/internal/bam/BamRandomAccessController_p.cpp.o + [ 52%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/internal/bam/BamReader_p.cpp.o + [ 53%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/internal/bam/BamWriter_p.cpp.o + [ 54%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/internal/index/BamIndexFactory_p.cpp.o + [ 55%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/internal/index/BamStandardIndex_p.cpp.o + [ 56%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/internal/index/BamToolsIndex_p.cpp.o + [ 57%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/internal/io/BamDeviceFactory_p.cpp.o + [ 58%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/internal/io/BamFile_p.cpp.o + [ 59%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/internal/io/BamFtp_p.cpp.o + [ 60%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/internal/io/BamHttp_p.cpp.o + [ 61%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/internal/io/BamPipe_p.cpp.o + [ 62%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/internal/io/BgzfStream_p.cpp.o + [ 63%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/internal/io/ByteArray_p.cpp.o + [ 64%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/internal/io/HostAddress_p.cpp.o + [ 65%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/internal/io/HostInfo_p.cpp.o + [ 66%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/internal/io/HttpHeader_p.cpp.o + [ 67%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/internal/io/ILocalIODevice_p.cpp.o + [ 68%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/internal/io/RollingBuffer_p.cpp.o + [ 69%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/internal/io/TcpSocket_p.cpp.o + [ 70%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/internal/io/TcpSocketEngine_p.cpp.o + [ 71%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/internal/io/TcpSocketEngine_unix_p.cpp.o + [ 72%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/internal/sam/SamFormatParser_p.cpp.o + [ 73%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/internal/sam/SamFormatPrinter_p.cpp.o + [ 74%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/internal/sam/SamHeaderValidator_p.cpp.o + [ 75%] Building CXX object src/api/CMakeFiles/BamTools-static.dir/internal/utils/BamException_p.cpp.o + [ 76%] Linking CXX static library $SRC_DIR/bamtools/lib/libbamtools.a + make[3]: Leaving directory '$SRC_DIR/bamtools/build' + [ 76%] Built target BamTools-static + make[3]: Entering directory '$SRC_DIR/bamtools/build' + make[3]: Leaving directory '$SRC_DIR/bamtools/build' + make[3]: Entering directory '$SRC_DIR/bamtools/build' + make[3]: Leaving directory '$SRC_DIR/bamtools/build' + [ 76%] Built target APIHeaders + make[3]: Entering directory '$SRC_DIR/bamtools/build' + make[3]: Leaving directory '$SRC_DIR/bamtools/build' + make[3]: Entering directory '$SRC_DIR/bamtools/build' + make[3]: Leaving directory '$SRC_DIR/bamtools/build' + [ 76%] Built target AlgorithmsHeaders + make[3]: Entering directory '$SRC_DIR/bamtools/build' + make[3]: Leaving directory '$SRC_DIR/bamtools/build' + make[3]: Entering directory '$SRC_DIR/bamtools/build' + [ 77%] Building CXX object src/third_party/jsoncpp/CMakeFiles/jsoncpp.dir/json_reader.cpp.o + [ 78%] Building CXX object src/third_party/jsoncpp/CMakeFiles/jsoncpp.dir/json_value.cpp.o + make[3]: Leaving directory '$SRC_DIR/bamtools/build' + make[2]: Leaving directory '$SRC_DIR/bamtools/build' + make[1]: Leaving directory '$SRC_DIR/bamtools/build' +# Last 100 lines of the build log. diff --git a/recipes/rmats2sashimiplot/build_failure.linux-64.yaml b/recipes/rmats2sashimiplot/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..a1e1d2e9d247a --- /dev/null +++ b/recipes/rmats2sashimiplot/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: b220de3cd5b023b01e8cbd642ea06cecec2f1f41d179f532b63c91e21cd84dd0 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + [32mpysam 0.7.7[0m would require + [32mpython <3.0.0 [0m, which can be installed; + [31mpython >=3.11,<3.12.0a0 [0m is not installable because it requires + [31mpython_abi 3.11.* *_cp311[0m, which conflicts with any installable versions previously reported; + [31mxz [>=5.2.6,<5.3.0a0 |>=5.2.6,<6.0a0 ][0m, which conflicts with any installable versions previously reported. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build + create_build_envs(top_level_pkg, notest) + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs + raise e + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs + environ.get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("python==3.11.0=h582c2e5_0_cpython"), MatchSpec("xz[version='>=5.2.6,<5.3.0a0']")} + Encountered problems while solving: + - package python-3.11.0-h582c2e5_0_cpython requires xz >=5.2.6,<5.3.0a0, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + [32mpysam[0m is installable with the potential options + [32mpysam [0.10.0|0.11.0|...|0.9.1.4][0m would require + [32mpython [2.7* |>=2.7,<2.8.0a0 ][0m, which can be installed; + [32mpysam [0.10.0|0.15.2|...|0.9.1][0m would require + [32mpython_abi 2.7.* *_cp27mu[0m, which can be installed; + [32mpysam [0.10.0|0.11.0|...|0.9.1.4][0m would require + [32mpython 3.4* [0m, which can be installed; + [32mpysam [0.10.0|0.11.0|...|0.9.1.4][0m would require + [32mpython [3.5* |>=3.5,<3.6.0a0 ][0m with the potential options + [32mpython [3.5.1|3.5.2][0m would require + [32mxz 5.0.* [0m, which can be installed; + [32mpython [3.5.2|3.5.3|3.5.4|3.5.5][0m, which can be installed; + [32mpysam [0.10.0|0.11.1|...|0.9.1][0m would require + [32mpython 3.6* [0m, which can be installed; + [32mpysam [0.10.0|0.15.2|...|0.9.1][0m would require + [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; + [32mpysam [0.10.0|0.14.1|...|0.9.1][0m would require + [32mpython >=3.6,<3.7.0a0 [0m, which can be installed; + [31mpysam [0.15.1|0.15.2|0.15.3][0m would require + [31mlibdeflate >=1.0,<1.1.0a0 [0m, which conflicts with any installable versions previously reported; + [32mpysam [0.15.2|0.15.4|...|0.9.1][0m would require + [32mpython_abi 3.7.* *_cp37m[0m with the potential options + [32mpython_abi 3.7[0m, which can be installed; + [32mpython_abi 3.7[0m would require + [32mpython 3.7.* *_cpython[0m, which can be installed; + [32mpysam [0.15.2|0.15.3|0.15.4|0.9.1][0m would require + [32mpython >=3.7,<3.8.0a0 [0m, which can be installed; + [32mpysam [0.15.2|0.16.0.1|...|0.9.1][0m would require + [32mpython_abi 3.8.* *_cp38[0m with the potential options + [32mpython_abi 3.8[0m, which can be installed; + [32mpython_abi 3.8[0m would require + [32mpython 3.8.* *_cpython[0m, which can be installed; + [32mpysam [0.16.0.1|0.17.0|...|0.9.1][0m would require + [32mpython_abi 3.9.* *_cp39[0m with the potential options + [32mpython_abi 3.9[0m, which can be installed; + [32mpython_abi 3.9[0m would require + [32mpython 3.9.* *_cpython[0m, which can be installed; + [32mpysam [0.19.1|0.20.0|0.21.0|0.22.0|0.22.1][0m would require + [32mpython_abi 3.10.* *_cp310[0m with the potential options + [32mpython_abi 3.10[0m, which can be installed; + [32mpython_abi 3.10[0m would require + [32mpython 3.10.* *_cpython[0m, which can be installed; + [32mpysam 0.7.7[0m would require + [32mpython <3.0.0 [0m, which can be installed; + [31mpython >=3.11,<3.12.0a0 [0m is not installable because it requires + [31mpython_abi 3.11.* *_cp311[0m, which conflicts with any installable versions previously reported; + [31mxz [>=5.2.6,<5.3.0a0 |>=5.2.6,<6.0a0 ][0m, which conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/rmats2sashimiplot/meta.yaml b/recipes/rmats2sashimiplot/meta.yaml index 372775d61638b..a98be80a8bb22 100644 --- a/recipes/rmats2sashimiplot/meta.yaml +++ b/recipes/rmats2sashimiplot/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 5d8e0fa3e7c5db2e595dc08e4cdb652385c18d7f2b70468d81a0fb3d957d03ce build: - number: 0 + number: 1 entry_points: - rmats2sashimiplot=rmats2sashimiplot.rmats2sashimiplot:main - index_gff=MISO.misopy.index_gff:main diff --git a/recipes/rna-seqc/meta.yaml b/recipes/rna-seqc/meta.yaml index a823ac1fd4294..f81f069b06e8e 100644 --- a/recipes/rna-seqc/meta.yaml +++ b/recipes/rna-seqc/meta.yaml @@ -10,7 +10,7 @@ source: sha256: '{{ sha256sum }}' build: - number: 5 + number: 6 requirements: build: diff --git a/recipes/rnablueprint/build_failure.linux-64.yaml b/recipes/rnablueprint/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..929735ac9d073 --- /dev/null +++ b/recipes/rnablueprint/build_failure.linux-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 5c52cfa37bf2c5768a217cc5926ff9c75e916f7658a4a241edc0b089fcfda664 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: compiler error +log: |2- + | ~~~~~~~~~~~~^~ + | set_sequence + dependency_graph.cc: In instantiation of 'design::SolutionSizeType design::detail::DependencyGraph::sample_local_global(int, int, int) [with R = std::mersenne_twister_engine; design::SolutionSizeType = double]': + dependency_graph.cc:808:24: required from here + dependency_graph.cc:459:60: error: 'get_sequence' was not declared in this scope; did you mean 'set_sequence'? + 459 | if (*last_histentry != get_sequence()) { + | ~~~~~~~~~~~~^~ + | set_sequence + dependency_graph.cc: In instantiation of 'design::SolutionSizeType design::detail::DependencyGraph::sample_clocal(int) [with R = std::mersenne_twister_engine; design::SolutionSizeType = double]': + dependency_graph.cc:808:24: required from here + dependency_graph.cc:485:60: error: 'get_sequence' was not declared in this scope; did you mean 'set_sequence'? + 485 | if (*last_histentry != get_sequence()) { + | ~~~~~~~~~~~~^~ + | set_sequence + dependency_graph.cc: In instantiation of 'design::SolutionSizeType design::detail::DependencyGraph::sample(int) [with R = std::mersenne_twister_engine; design::SolutionSizeType = double]': + dependency_graph.cc:808:24: required from here + dependency_graph.cc:568:52: error: 'get_sequence' was not declared in this scope; did you mean 'set_sequence'? + 568 | if (*last_histentry != get_sequence()) { + | ~~~~~~~~~~~~^~ + | set_sequence + dependency_graph.cc: In instantiation of 'design::SolutionSizeType design::detail::DependencyGraph::sample(int, int) [with R = std::mersenne_twister_engine; design::SolutionSizeType = double]': + dependency_graph.cc:808:24: required from here + dependency_graph.cc:598:52: error: 'get_sequence' was not declared in this scope; did you mean 'set_sequence'? + 598 | if (*last_histentry != get_sequence()) { + | ~~~~~~~~~~~~^~ + | set_sequence + dependency_graph.cc: In instantiation of 'std::vector > design::detail::DependencyGraph::get_history() [with R = std::mersenne_twister_engine]': + dependency_graph.cc:808:24: required from here + dependency_graph.cc:802:13: error: 'begin' was not declared in this scope + 802 | for (auto& h : history) { + | ^~~ + dependency_graph.cc:802:13: note: suggested alternatives: + /opt/conda/conda-bld/rnablueprint_1718134566580/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/range_access.h:114:37: note: 'std::begin' + 114 | template const _Tp* begin(const valarray<_Tp>&) noexcept; + | ^~~~~ + /opt/conda/conda-bld/rnablueprint_1718134566580/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/boost/mpl/begin_end_fwd.hpp:22:38: note: 'boost::mpl::begin' + 22 | template< typename Sequence > struct begin; + | ^~~~~ + In file included from /opt/conda/conda-bld/rnablueprint_1718134566580/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/boost/range/functions.hpp:18: + /opt/conda/conda-bld/rnablueprint_1718134566580/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/boost/range/begin.hpp:110:61: note: 'boost::range_adl_barrier::begin' + 110 | inline BOOST_DEDUCED_TYPENAME range_iterator::type begin( const T& r ) + | ^~~~~ + /opt/conda/conda-bld/rnablueprint_1718134566580/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/boost/fusion/sequence/intrinsic/begin.hpp:92:5: note: 'boost::fusion::begin' + 92 | begin(Sequence const& seq) + | ^~~~~ + /opt/conda/conda-bld/rnablueprint_1718134566580/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/boost/foreach.hpp:696:1: note: 'boost::foreach_detail_::begin' + 696 | begin(auto_any_t col, type2type *, boost::mpl::true_ *) // null-terminated C-style strings + | ^~~~~ + /opt/conda/conda-bld/rnablueprint_1718134566580/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/boost/fusion/sequence/intrinsic_fwd.hpp:62:16: note: 'boost::fusion::result_of::begin' + 62 | struct begin; + | ^~~~~ + dependency_graph.cc:802:13: error: 'end' was not declared in this scope + 802 | for (auto& h : history) { + | ^~~ + dependency_graph.cc:802:13: note: suggested alternatives: + /opt/conda/conda-bld/rnablueprint_1718134566580/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/range_access.h:116:37: note: 'std::end' + 116 | template const _Tp* end(const valarray<_Tp>&) noexcept; + | ^~~ + /opt/conda/conda-bld/rnablueprint_1718134566580/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/boost/mpl/begin_end_fwd.hpp:23:38: note: 'boost::mpl::end' + 23 | template< typename Sequence > struct end; + | ^~~ + /opt/conda/conda-bld/rnablueprint_1718134566580/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/boost/range/end.hpp:104:61: note: 'boost::range_adl_barrier::end' + 104 | inline BOOST_DEDUCED_TYPENAME range_iterator::type end( const T& r ) + | ^~~ + /opt/conda/conda-bld/rnablueprint_1718134566580/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/boost/fusion/sequence/intrinsic/end.hpp:92:5: note: 'boost::fusion::end' + 92 | end(Sequence const& seq) + | ^~~ + /opt/conda/conda-bld/rnablueprint_1718134566580/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/boost/foreach.hpp:736:1: note: 'boost::foreach_detail_::end' + 736 | end(auto_any_t, type2type *, boost::mpl::true_ *) // null-terminated C-style strings + | ^~~ + /opt/conda/conda-bld/rnablueprint_1718134566580/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/boost/fusion/sequence/intrinsic_fwd.hpp:68:16: note: 'boost::fusion::result_of::end' + 68 | struct end; + | ^~~ + make[1]: *** [Makefile:631: printgraph.lo] Error 1 + make[1]: *** [Makefile:631: pathcoloring.lo] Error 1 + dependency_graph.cc: In member function 'bool design::detail::DependencyGraph::revert_sequence(unsigned int) [with R = std::mersenne_twister_engine]': + dependency_graph.cc:771:9: warning: control reaches end of non-void function [-Wreturn-type] + 771 | } + | ^ + make[1]: *** [Makefile:631: RNAblueprint.lo] Error 1 + make[1]: *** [Makefile:631: dependency_graph.lo] Error 1 + make[1]: *** [Makefile:631: decompose.lo] Error 1 + make[1]: Leaving directory '$SRC_DIR/lib' + make: *** [Makefile:707: all-recursive] Error 1 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/rnablueprint_1718134566580/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/rnablueprint/build_failure.osx-64.yaml b/recipes/rnablueprint/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..952cb70d036d5 --- /dev/null +++ b/recipes/rnablueprint/build_failure.osx-64.yaml @@ -0,0 +1,106 @@ +recipe_sha: 5c52cfa37bf2c5768a217cc5926ff9c75e916f7658a4a241edc0b089fcfda664 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + checking for iterator... yes + checking for limits... yes + checking for list... yes + checking for random... yes + checking for set... yes + checking for sstream... yes + checking for string... yes + checking for unordered_map... yes + checking for unordered_set... yes + checking for utility... yes + checking for vector... yes + checking for boost/config.hpp... yes + checking for boost/functional/hash.hpp... yes + checking for boost/lexical_cast.hpp... yes + checking for boost/property_map/property_map.hpp... yes + checking for boost/property_map/shared_array_property_map.hpp... yes + checking for boost/property_map/vector_property_map.hpp... yes + checking for size_t... yes + checking for swig... $BUILD_PREFIX/bin/swig + checking SWIG version... 4.2.1 + checking for SWIG library... $BUILD_PREFIX/share/swig/4.2.1 + configure: Building with Python 2.x bindings + checking for python2... no + checking for python2.7... no + checking for python2.6... no + configure: Building with Python 3.x bindings + checking for python3... $PREFIX/bin/python3 + checking for Python3 include path... $PREFIX/include/python3.10 + checking for $PREFIX/include/python3.10/Python.h... yes + checking for Python3 ldflags... -bundle -undefined dynamic_lookup + checking for Python3 extension linker... clang -bundle -undefined dynamic_lookup -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + checking for directory to install Python3 scripts in... ${prefix}/lib/python3.10/site-packages + checking for directory to install architecture dependent python3 things in... ${exec_prefix}/lib/python3.10/site-packages + checking for Python3 module extension... .cpython-310-darwin.so + checking for Python3 tag for cached compiled scripts... cpython-310 + checking for Python3 extension of cached and optimized bytecode... cpython-310.opt-1.pyc + configure: Building with Perl bindings + checking for $PREFIX/bin/perl... $PREFIX/bin/perl + checking for Perl prefix... .../.. + checking for Perl siteprefix... .../.. + checking for Perl vendorprefix... $PREFIX + checking for Perl extension include path... $PREFIX/lib/perl5/5.32/core_perl/CORE + checking for Perl extension target directory... .../../lib/perl5/5.32/site_perl + checking for architecture dependent Perl extension site target directory... .../../lib/perl5/5.32/site_perl + checking for architecture dependent Perl extension vendor target directory... .../../lib/perl5/5.32/vendor_perl + checking for architecture independent Perl extension site target directory... .../../lib/perl5/site_perl + checking for architecture independent Perl extension vendor target directory... .../../lib/perl5/vendor_perl + checking for Perl extensions C preprocessor flags... -no-cpp-precomp -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fPIE -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=/Users/runner/miniforge3/conda-bld/perl_1703310145184/work=/usr/local/src/conda/perl-5.32.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D_DARWIN_FEATURE_CLOCK_GETTIME=0 -fno-common -DPERL_DARWIN -no-cpp-precomp -Werror=partial-availability -D_DARWIN_FEATURE_CLOCK_GETTIME=0 -fno-strict-aliasing -pipe -fstack-protector-strong -DPERL_USE_SAFE_PUTENV -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + checking for Perl extensions linker flags... -Wl,-pie -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -mmacosx-version-min=10.9 -bundle -undefined dynamic_lookup -fstack-protector-strong + checking for Perl dynamic library extension... .bundle + checking that generated files are newer than configure... done + configure: creating ./config.status + config.status: creating interfaces/Python3/Makefile + config.status: creating interfaces/Python3/version.i + config.status: creating interfaces/Perl/Makefile + config.status: creating interfaces/Perl/version.i + config.status: creating doxygen.cfg + config.status: creating Makefile + config.status: creating lib/Makefile + config.status: creating src/Makefile + config.status: creating tests/Makefile + config.status: creating interfaces/Makefile + config.status: executing depfiles commands + config.status: executing libtool commands + configure: + ------------------------------------------------ + Configure successful with the following options: + + Options: + Prefix path: $PREFIX + Custom BOOST path: $PREFIX + RNAblueprint program: yes + Debug information: no + Use GMP integers: no + + SWIG enabled: yes + Perl interface: yes + Python2 interface: yes + Python3 interface: yes + + Documentation enabled: no + (HTML): no + (PDF): no + (MAN): no + (PS): no + + Unit Tests enabled: yes + + Making all in lib + make[1]: Entering directory '$SRC_DIR/lib' + CXX RNAblueprint.lo + CXX common.lo + CXX printgraph.lo + CXX decompose.lo + CXX parsestruct.lo + CXX pathcoloring.lo + CXX pairing_matrix.lo + CXX dependency_graph.lo + CXX probability_matrix.lo + make[1]: Leaving directory '$SRC_DIR/lib' +# Last 100 lines of the build log. +category: |- + compiler error diff --git a/recipes/rnablueprint/meta.yaml b/recipes/rnablueprint/meta.yaml index 0e0cce95d5bb5..b123602f9c996 100644 --- a/recipes/rnablueprint/meta.yaml +++ b/recipes/rnablueprint/meta.yaml @@ -10,7 +10,7 @@ source: sha256: {{ sha256 }} build: - number: 6 + number: 7 run_exports: - {{ pin_subpackage('rnablueprint', max_pin='x.x') }} diff --git a/recipes/rnabridge-align/meta.yaml b/recipes/rnabridge-align/meta.yaml index d6819fb49aef7..82d9d77756a3b 100644 --- a/recipes/rnabridge-align/meta.yaml +++ b/recipes/rnabridge-align/meta.yaml @@ -10,7 +10,7 @@ source: sha256: "85e93e89a06dd27834dd4b3cb46f0b281df163d83259dbc1715d0819de6f98a8" build: - number: 6 + number: 7 requirements: build: diff --git a/recipes/rpbp/meta.yaml b/recipes/rpbp/meta.yaml index 9d21197c2878d..d4c9bab5756d3 100644 --- a/recipes/rpbp/meta.yaml +++ b/recipes/rpbp/meta.yaml @@ -11,8 +11,8 @@ source: sha256: {{ sha256 }} build: - number: 0 - skip: True # [ py < 37 or py > 310 ] + number: 1 + skip: True # [py >= 311 ] script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv && compile-rpbp-models" entry_points: - extract-orf-coordinates = rpbp.reference_preprocessing.extract_orf_coordinates:main diff --git a/recipes/rrikindp/build_failure.osx-64.yaml b/recipes/rrikindp/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..17f0d029fab2a --- /dev/null +++ b/recipes/rrikindp/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 0e067df3076e62a0e6fa72ecf0654c81ddd7442b0463d16a8d755a789705b475 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("python_abi=3.10[build=*_cp310]"), MatchSpec("viennarna==2.6.2=py310pl5321hb5a725e_0")} + Encountered problems while solving: + - package viennarna-2.6.2-py310pl5321hb5a725e_0 requires python_abi 3.10.* *_cp310, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + python 3.11.* *_cpython is installable and it requires + python_abi 3.11.* *_cp311, which can be installed; + viennarna >=2.6.0 is not installable because there are no viable options + viennarna [2.6.2|2.6.3|2.6.4] would require + python_abi 3.10.* *_cp310, which conflicts with any installable versions previously reported; + viennarna [2.6.2|2.6.3|2.6.4] would require + python_abi 3.8.* *_cp38, which conflicts with any installable versions previously reported; + viennarna [2.6.2|2.6.3|2.6.4] would require + python_abi 3.9.* *_cp39, which conflicts with any installable versions previously reported. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2308, in build + output_metas = expand_outputs([(m, need_source_download, need_reparse_in_env)]) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 916, in expand_outputs + for output_dict, m in deepcopy(_m).get_output_metadata_set( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 2737, in get_output_metadata_set + conda_packages = finalize_outputs_pass( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 1095, in finalize_outputs_pass + fm = finalize_metadata( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 650, in finalize_metadata + build_unsat, host_unsat = add_upstream_pins( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 491, in add_upstream_pins + host_deps, host_unsat, extra_run_specs_from_host = _read_upstream_pin_files( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 444, in _read_upstream_pin_files + deps, precs, unsat = get_env_dependencies( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 156, in get_env_dependencies + precs = environ.get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("python_abi=3.10[build=*_cp310]"), MatchSpec("viennarna==2.6.2=py310pl5321hb5a725e_0")} + Encountered problems while solving: + - package viennarna-2.6.2-py310pl5321hb5a725e_0 requires python_abi 3.10.* *_cp310, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + python 3.11.* *_cpython is installable and it requires + python_abi 3.11.* *_cp311, which can be installed; + viennarna >=2.6.0 is not installable because there are no viable options + viennarna [2.6.2|2.6.3|2.6.4] would require + python_abi 3.10.* *_cp310, which conflicts with any installable versions previously reported; + viennarna [2.6.2|2.6.3|2.6.4] would require + python_abi 3.8.* *_cp38, which conflicts with any installable versions previously reported; + viennarna [2.6.2|2.6.3|2.6.4] would require + python_abi 3.9.* *_cp39, which conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/rrikindp/meta.yaml b/recipes/rrikindp/meta.yaml index 3e89245d087da..426d6c21432a2 100644 --- a/recipes/rrikindp/meta.yaml +++ b/recipes/rrikindp/meta.yaml @@ -11,7 +11,7 @@ source: sha256: 3bdaa7657224b90945d864d0238010cf3337975f58c41106ab60427dd52bc93f build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('rrikindp', max_pin="x.x,x") }} diff --git a/recipes/rsem/build_failure.linux-64.yaml b/recipes/rsem/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..ae01beb6fa0db --- /dev/null +++ b/recipes/rsem/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 7daeb20e9af19165bd6db84bfdf8fbed465c24a6206e85df2cd65b129f61263c # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + ./boost/numeric/conversion/detail/converter.hpp:453:47: warning: 'template struct std::unary_function' is deprecated [-Wdeprecated-declarations] + 453 | struct trivial_converter_impl : public std::unary_function< BOOST_DEDUCED_TYPENAME Traits::argument_type + | ^~~~~~~~~~~~~~ + /opt/conda/conda-bld/rsem_1717690589748/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_function.h:117:12: note: declared here + 117 | struct unary_function + | ^~~~~~~~~~~~~~ + ./boost/numeric/conversion/detail/converter.hpp:474:43: warning: 'template struct std::unary_function' is deprecated [-Wdeprecated-declarations] + 474 | struct rounding_converter : public std::unary_function< BOOST_DEDUCED_TYPENAME Traits::argument_type + | ^~~~~~~~~~~~~~ + /opt/conda/conda-bld/rsem_1717690589748/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_function.h:117:12: note: declared here + 117 | struct unary_function + | ^~~~~~~~~~~~~~ + ./boost/numeric/conversion/detail/converter.hpp:504:47: warning: 'template struct std::unary_function' is deprecated [-Wdeprecated-declarations] + 504 | struct non_rounding_converter : public std::unary_function< BOOST_DEDUCED_TYPENAME Traits::argument_type + | ^~~~~~~~~~~~~~ + /opt/conda/conda-bld/rsem_1717690589748/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_function.h:117:12: note: declared here + 117 | struct unary_function + | ^~~~~~~~~~~~~~ + In file included from ./boost/iterator/iterator_facade.hpp:10, + from ./boost/range/iterator_range_core.hpp:23, + from ./boost/lexical_cast.hpp:169: + ./boost/iterator.hpp:42:32: warning: 'template struct std::iterator' is deprecated [-Wdeprecated-declarations] + 42 | struct iterator_base : std::iterator {}; + | ^~~~~~~~ + In file included from /opt/conda/conda-bld/rsem_1717690589748/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_algobase.h:65, + from /opt/conda/conda-bld/rsem_1717690589748/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/specfun.h:45, + from /opt/conda/conda-bld/rsem_1717690589748/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/cmath:1935, + from simulation.cpp:1: + /opt/conda/conda-bld/rsem_1717690589748/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_iterator_base_types.h:127:34: note: declared here + 127 | struct _GLIBCXX17_DEPRECATED iterator + | ^~~~~~~~ + In file included from ./boost/math/special_functions/lanczos.hpp:1288, + from ./boost/math/special_functions/gamma.hpp:28: + ./boost/math/special_functions/detail/lanczos_sse2.hpp: In static member function 'static T boost::math::lanczos::lanczos13m53::lanczos_sum(const T&) [with T = double]': + ./boost/math/special_functions/detail/lanczos_sse2.hpp:54:21: warning: ISO C17 does not allow 'register' storage class specifier [-Wregister] + 54 | register __m128d vx = _mm_load1_pd(&x); + | ^~ + ./boost/math/special_functions/detail/lanczos_sse2.hpp:55:21: warning: ISO C17 does not allow 'register' storage class specifier [-Wregister] + 55 | register __m128d sum_even = _mm_load_pd(coeff); + | ^~~~~~~~ + ./boost/math/special_functions/detail/lanczos_sse2.hpp:56:21: warning: ISO C17 does not allow 'register' storage class specifier [-Wregister] + 56 | register __m128d sum_odd = _mm_load_pd(coeff2); + | ^~~~~~~ + ./boost/math/special_functions/detail/lanczos_sse2.hpp:57:21: warning: ISO C17 does not allow 'register' storage class specifier [-Wregister] + 57 | register __m128d nc_odd, nc_even; + | ^~~~~~ + ./boost/math/special_functions/detail/lanczos_sse2.hpp:57:29: warning: ISO C17 does not allow 'register' storage class specifier [-Wregister] + 57 | register __m128d nc_odd, nc_even; + | ^~~~~~~ + ./boost/math/special_functions/detail/lanczos_sse2.hpp:58:21: warning: ISO C17 does not allow 'register' storage class specifier [-Wregister] + 58 | register __m128d vx2 = _mm_mul_pd(vx, vx); + | ^~~ + ./boost/math/special_functions/detail/lanczos_sse2.hpp: In static member function 'static T boost::math::lanczos::lanczos13m53::lanczos_sum_expG_scaled(const T&) [with T = double]': + ./boost/math/special_functions/detail/lanczos_sse2.hpp:139:21: warning: ISO C17 does not allow 'register' storage class specifier [-Wregister] + 139 | register __m128d vx = _mm_load1_pd(&x); + | ^~ + ./boost/math/special_functions/detail/lanczos_sse2.hpp:140:21: warning: ISO C17 does not allow 'register' storage class specifier [-Wregister] + 140 | register __m128d sum_even = _mm_load_pd(coeff); + | ^~~~~~~~ + ./boost/math/special_functions/detail/lanczos_sse2.hpp:141:21: warning: ISO C17 does not allow 'register' storage class specifier [-Wregister] + 141 | register __m128d sum_odd = _mm_load_pd(coeff2); + | ^~~~~~~ + ./boost/math/special_functions/detail/lanczos_sse2.hpp:142:21: warning: ISO C17 does not allow 'register' storage class specifier [-Wregister] + 142 | register __m128d nc_odd, nc_even; + | ^~~~~~ + ./boost/math/special_functions/detail/lanczos_sse2.hpp:142:29: warning: ISO C17 does not allow 'register' storage class specifier [-Wregister] + 142 | register __m128d nc_odd, nc_even; + | ^~~~~~~ + ./boost/math/special_functions/detail/lanczos_sse2.hpp:143:21: warning: ISO C17 does not allow 'register' storage class specifier [-Wregister] + 143 | register __m128d vx2 = _mm_mul_pd(vx, vx); + | ^~~ + In file included from Refs.h:15, + from RSPD.h:10, + from SingleModel.h:18: + PolyARules.h: In member function 'int PolyARules::getLenAt(const std::string&)': + PolyARules.h:50:17: warning: control reaches end of non-void function [-Wreturn-type] + 50 | default : assert(false); + | ^~~~~~~ + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o rsem-simulate-reads simulation.o + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/rsem-1.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -I$PREFIX/include -I. -O2 -c -o parseIt.o parseIt.cpp + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -pthread -o rsem-parse-alignments parseIt.o $PREFIX/lib/libhts.so -lz + /opt/conda/conda-bld/rsem_1717690589748/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: cannot find -lz: No such file or directory + collect2: error: ld returned 1 exit status + make: *** [Makefile:79: rsem-parse-alignments] Error 1 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/rsem_1717690589748/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/rsem/build_failure.osx-64.yaml b/recipes/rsem/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..87cc138e46c27 --- /dev/null +++ b/recipes/rsem/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 7daeb20e9af19165bd6db84bfdf8fbed465c24a6206e85df2cd65b129f61263c # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + ^~~~~~~~~ + fatal error: too many errors emitted, stopping now [-ferror-limit=] + 4 warnings and 20 errors generated. + make: *** [Makefile:71: simulation.o] Error 1 + Extracting download + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/rsem/01_fix_cxx_11.patch + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/rsem/01_fix_cxx_11.patch with args: + ['-Np1', '-i', '/tmp/tmpuan6jr1c/01_fix_cxx_11.patch.native', '--binary'] + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/rsem/02_fix_makefile.patch + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/rsem/02_fix_makefile.patch with args: + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + ['-Np1', '-i', '/tmp/tmpsyis2uhu/02_fix_makefile.patch.native', '--binary'] + Patch analysis gives: + [[ RA-MD1LOVE ]] - [[ 01_fix_cxx_11.patch ]] + [[ RA-MD1LOVE ]] - [[ 02_fix_makefile.patch ]] + + Key: + + R :: Reversible A :: Applicable + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + Y :: Build-prefix patch in use M :: Minimal, non-amalgamated + D :: Dry-runnable N :: Patch level (1 is preferred) + L :: Patch level not-ambiguous O :: Patch applies without offsets + V :: Patch applies without fuzz E :: Patch applies without emitting to stderr + + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/rsem_1717693924788/work + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/rsem_1717693924788/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/rsem_1717693924788/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/rsem_1717693924788/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/rsem-1.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/rsem_1717693924788/work/conda_build.sh']' returned non-zero exit status 2. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/rsem-1.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/rsem-1.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/rsem-1.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/rsem-1.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I$PREFIX/include -I. -O3 -c -o extractRef.o extractRef.cpp + x86_64-apple-darwin13.4.0-clang -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o rsem-extract-reference-transcripts extractRef.o + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/rsem-1.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I$PREFIX/include -I. -O3 -c -o synthesisRef.o synthesisRef.cpp + x86_64-apple-darwin13.4.0-clang -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o rsem-synthesis-reference-transcripts synthesisRef.o + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/rsem-1.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I$PREFIX/include -I. -O3 -c -o preRef.o preRef.cpp + x86_64-apple-darwin13.4.0-clang -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o rsem-preref preRef.o + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/rsem-1.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I$PREFIX/include -I. -O3 -c -o buildReadIndex.o buildReadIndex.cpp + x86_64-apple-darwin13.4.0-clang -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -o rsem-build-read-index buildReadIndex.o + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/rsem-1.3.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I$PREFIX/include -I. -O3 -ffast-math -c -o simulation.o simulation.cpp +# Last 100 lines of the build log. diff --git a/recipes/rsem/meta.yaml b/recipes/rsem/meta.yaml index fe8775beda6ed..243aea3aa47aa 100644 --- a/recipes/rsem/meta.yaml +++ b/recipes/rsem/meta.yaml @@ -15,7 +15,7 @@ build: rpaths: - lib/R/lib/ - lib/ - number: 7 + number: 8 requirements: build: diff --git a/recipes/rseqc/meta.yaml b/recipes/rseqc/meta.yaml index 4ed0f9d60b2a8..607fedfbb9942 100644 --- a/recipes/rseqc/meta.yaml +++ b/recipes/rseqc/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 869f542e08f50c8874280d58e4f5565857b0aebac66a8eceef3f23016175061e build: - number: 1 + number: 2 skip: True # [py2k] script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --use-pep517 -vvv" run_exports: diff --git a/recipes/rustybam/build_failure.osx-64.yaml b/recipes/rustybam/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..be685e4efb964 --- /dev/null +++ b/recipes/rustybam/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 2888bb7310f298605a52471e1df6b4d045e02b863a07716f06e26d3b93cb96ca # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + = note: env -u IPHONEOS_DEPLOYMENT_TARGET -u TVOS_DEPLOYMENT_TARGET LC_ALL="C" PATH="/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/bin:/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/bin:/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/bin:/opt/mambaforge/envs/bioconda/condabin:/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/bin:/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/bin:/opt/mambaforge/envs/bioconda/bin:/opt/mambaforge/condabin:/opt/mambaforge/bin:/usr/local/lib/ruby/gems/3.0.0/bin:/usr/local/opt/ruby@3.0/bin:/usr/local/opt/pipx_bin:/Users/runner/.cargo/bin:/usr/local/opt/curl/bin:/usr/local/bin:/usr/local/sbin:/Users/runner/bin:/Users/runner/.yarn/bin:/Users/runner/Library/Android/sdk/tools:/Users/runner/Library/Android/sdk/platform-tools:/Library/Frameworks/Python.framework/Versions/Current/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/usr/bin:/bin:/usr/sbin:/sbin:/Users/runner/.dotnet/tools" VSLANG="1033" ZERO_AR_DATE="1" "cc" "-arch" "x86_64" "-m64" "/tmp/rustcIyea18/symbols.o" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/work/target/release/build/syn-83534d4a7b485fa6/build_script_build-83534d4a7b485fa6.build_script_build.9a6b01f912fb026e-cgu.0.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/work/target/release/build/syn-83534d4a7b485fa6/build_script_build-83534d4a7b485fa6.build_script_build.9a6b01f912fb026e-cgu.1.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/work/target/release/build/syn-83534d4a7b485fa6/build_script_build-83534d4a7b485fa6.build_script_build.9a6b01f912fb026e-cgu.2.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/work/target/release/build/syn-83534d4a7b485fa6/build_script_build-83534d4a7b485fa6.7b4qwoeamwdunay.rcgu.o" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/work/target/release/deps" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libstd-2ad7f97be9e16ca5.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-8ce93eee8bf4c86e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libobject-0e1339b212cc7409.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libmemchr-925e672b3deb429c.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-e92d517a950bccd8.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libgimli-de95e5c2a2ace281.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-37f4c48e230f618e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libstd_detect-dfeb4bb0652b6b8e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-0e3ea0ec18336be2.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_alloc-39dd3003e36d7872.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libminiz_oxide-5ea1513e08ee15e0.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libadler-2967159221f4860d.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libunwind-b70656709e3eca11.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcfg_if-cc5626b2e0399737.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/liblibc-8378684dba6ab463.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/liballoc-0ff05b9b25b786cc.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_core-9a6da74aeab39c54.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcore-1638dc700d175798.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-7f42af62722c8f43.rlib" "-lSystem" "-lc" "-lm" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib" "-o" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/work/target/release/build/syn-83534d4a7b485fa6/build_script_build-83534d4a7b485fa6" "-Wl,-dead_strip" "-nodefaultlibs" "-undefined" "dynamic_lookup" + = note: ld: multiple errors: unsupported mach-o filetype (only MH_OBJECT and MH_DYLIB can be linked) in '/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib/libSystem.B.dylib'; unsupported mach-o filetype (only MH_OBJECT and MH_DYLIB can be linked) in '/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib/libSystem.B.dylib'; unsupported mach-o filetype (only MH_OBJECT and MH_DYLIB can be linked) in '/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib/libSystem.B.dylib' + clang: error: linker command failed with exit code 1 (use -v to see invocation) + + + error: could not compile proc-macro2 (build script) due to 1 previous error + + Caused by: + process didn't exit successfully: rustc --crate-name build_script_build --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.85/build.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debug-assertions=off --cfg 'feature="default"' --cfg 'feature="proc-macro"' -C metadata=acbd332dc98100aa -C extra-filename=-acbd332dc98100aa --out-dir /opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/work/target/release/build/proc-macro2-acbd332dc98100aa -C strip=debuginfo -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/work/target/release/deps --cap-lints allow -C link-arg=-undefined -C link-arg=dynamic_lookup (exit status: 1) + warning: build failed, waiting for other jobs to finish... + error: could not compile syn (build script) due to 1 previous error + + Caused by: + process didn't exit successfully: rustc --crate-name build_script_build --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-1.0.109/build.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debug-assertions=off --cfg 'feature="clone-impls"' --cfg 'feature="default"' --cfg 'feature="derive"' --cfg 'feature="full"' --cfg 'feature="parsing"' --cfg 'feature="printing"' --cfg 'feature="proc-macro"' --cfg 'feature="quote"' -C metadata=83534d4a7b485fa6 -C extra-filename=-83534d4a7b485fa6 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/work/target/release/build/syn-83534d4a7b485fa6 -C strip=debuginfo -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/work/target/release/deps --cap-lints allow -C link-arg=-undefined -C link-arg=dynamic_lookup (exit status: 1) + error: could not compile libc (build script) due to 1 previous error + + Caused by: + process didn't exit successfully: rustc --crate-name build_script_build /opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.155/build.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debug-assertions=off --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=312897ad65048e13 -C extra-filename=-312897ad65048e13 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/work/target/release/build/libc-312897ad65048e13 -C strip=debuginfo -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/work/target/release/deps --cap-lints allow -C link-arg=-undefined -C link-arg=dynamic_lookup (exit status: 1) + error: linking with cc failed: exit status: 1 + | + = note: env -u IPHONEOS_DEPLOYMENT_TARGET -u TVOS_DEPLOYMENT_TARGET LC_ALL="C" PATH="/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/bin:/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/bin:/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/bin:/opt/mambaforge/envs/bioconda/condabin:/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/bin:/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/bin:/opt/mambaforge/envs/bioconda/bin:/opt/mambaforge/condabin:/opt/mambaforge/bin:/usr/local/lib/ruby/gems/3.0.0/bin:/usr/local/opt/ruby@3.0/bin:/usr/local/opt/pipx_bin:/Users/runner/.cargo/bin:/usr/local/opt/curl/bin:/usr/local/bin:/usr/local/sbin:/Users/runner/bin:/Users/runner/.yarn/bin:/Users/runner/Library/Android/sdk/tools:/Users/runner/Library/Android/sdk/platform-tools:/Library/Frameworks/Python.framework/Versions/Current/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/usr/bin:/bin:/usr/sbin:/sbin:/Users/runner/.dotnet/tools" VSLANG="1033" ZERO_AR_DATE="1" "cc" "-arch" "x86_64" "-m64" "/tmp/rustcvqN5BT/symbols.o" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/work/target/release/build/libm-0e90bdf3746d668a/build_script_build-0e90bdf3746d668a.build_script_build.c50687bd71c14a46-cgu.0.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/work/target/release/build/libm-0e90bdf3746d668a/build_script_build-0e90bdf3746d668a.4um6vnkueq6nlagc.rcgu.o" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/work/target/release/deps" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libstd-2ad7f97be9e16ca5.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-8ce93eee8bf4c86e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libobject-0e1339b212cc7409.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libmemchr-925e672b3deb429c.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-e92d517a950bccd8.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libgimli-de95e5c2a2ace281.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-37f4c48e230f618e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libstd_detect-dfeb4bb0652b6b8e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-0e3ea0ec18336be2.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_alloc-39dd3003e36d7872.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libminiz_oxide-5ea1513e08ee15e0.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libadler-2967159221f4860d.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libunwind-b70656709e3eca11.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcfg_if-cc5626b2e0399737.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/liblibc-8378684dba6ab463.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/liballoc-0ff05b9b25b786cc.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_core-9a6da74aeab39c54.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcore-1638dc700d175798.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-7f42af62722c8f43.rlib" "-lSystem" "-lc" "-lm" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/lib/rustlib/x86_64-apple-darwin/lib" "-o" "/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/work/target/release/build/libm-0e90bdf3746d668a/build_script_build-0e90bdf3746d668a" "-Wl,-dead_strip" "-nodefaultlibs" "-undefined" "dynamic_lookup" + = note: ld: multiple errors: unsupported mach-o filetype (only MH_OBJECT and MH_DYLIB can be linked) in '/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib/libSystem.B.dylib'; unsupported mach-o filetype (only MH_OBJECT and MH_DYLIB can be linked) in '/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib/libSystem.B.dylib'; unsupported mach-o filetype (only MH_OBJECT and MH_DYLIB can be linked) in '/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib/libSystem.B.dylib' + clang: error: linker command failed with exit code 1 (use -v to see invocation) + + + error: could not compile libm (build script) due to 1 previous error + + Caused by: + process didn't exit successfully: rustc --crate-name build_script_build --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env/.cargo/registry/src/index.crates.io-6f17d22bba15001f/libm-0.2.8/build.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debug-assertions=off --cfg 'feature="default"' -C metadata=0e90bdf3746d668a -C extra-filename=-0e90bdf3746d668a --out-dir /opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/work/target/release/build/libm-0e90bdf3746d668a -C strip=debuginfo -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/work/target/release/deps --cap-lints allow -C link-arg=-undefined -C link-arg=dynamic_lookup (exit status: 1) + error: failed to compile rustybam v0.1.33 (/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/work), intermediate artifacts can be found at /opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/work/target. + To reuse those artifacts with a future compilation, set the environment variable CARGO_TARGET_DIR to that path. + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/work + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/rustybam-0.1.33 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/rustybam_1717516737486/work/conda_build.sh']' returned non-zero exit status 101. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/rustybam-0.1.33 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/rustybam-0.1.33 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/rustybam-0.1.33 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix +# Last 100 lines of the build log. diff --git a/recipes/rustybam/meta.yaml b/recipes/rustybam/meta.yaml index 50a07db88c904..dd6ef05dae2cf 100644 --- a/recipes/rustybam/meta.yaml +++ b/recipes/rustybam/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 source: url: https://github.com/mrvollger/rustybam/archive/v{{ version }}.tar.gz diff --git a/recipes/ryuto/build_failure.linux-64.yaml b/recipes/ryuto/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..7d44c1af724e4 --- /dev/null +++ b/recipes/ryuto/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: f50f2dade23e19224d9f122e2886fe32b677124889408b6acc119e097348bbbe # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + 26 | logger& operator=(logger const&){}; + | ^ + | return *this; + depbase=echo Graph/flow_manager/mincost_flow_square_hcost.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';\ + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DPACKAGE_NAME=\"ttrans\" -DPACKAGE_TARNAME=\"ttrans\" -DPACKAGE_VERSION=\"1.0\" -DPACKAGE_STRING=\"ttrans\ 1.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"ttrans\" -DVERSION=\"1.0\" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_LIBZ=1 -DHAVE_BOOST=/\*\*/ -DHAVE_BOOST_PROGRAM_OPTIONS=/\*\*/ -I. -I$PREFIX/include/htslib/ -I$PREFIX/include -I$SRC_DIR/extern/libs/include/ -fopenmp -I$SRC_DIR/extern/libs/include/ -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -L/usr/lib -Wl,-rpath,/usr/lib/ -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ryuto-1.6.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -std=c14 -MT Graph/flow_manager/mincost_flow_square_hcost.o -MD -MP -MF $depbase.Tpo -c -o Graph/flow_manager/mincost_flow_square_hcost.o Graph/flow_manager/mincost_flow_square_hcost.cc &&\ + mv -f $depbase.Tpo $depbase.Po + In file included from Graph/flow_manager/../overlap_graph/range_helper.h:14, + from Graph/flow_manager/../overlap_graph/overlap_node.h:12, + from Graph/flow_manager/base_manager.h:19, + from Graph/flow_manager/mincost_flow_base.h:11, + from Graph/flow_manager/mincost_flow_square_hcost.h:11, + from Graph/flow_manager/mincost_flow_square_hcost.cc:8: + Graph/flow_manager/../overlap_graph/../../Logger/logger.h: In member function 'logger& logger::operator=(const logger&)': + Graph/flow_manager/../overlap_graph/../../Logger/logger.h:26:38: warning: no return statement in function returning non-void [-Wreturn-type] + 26 | logger& operator=(logger const&){}; + | ^ + | return *this; + In file included from Graph/flow_manager/base_manager.h:37: + Graph/flow_manager/../../Options/options.h: In member function 'options& options::operator=(const options&)': + Graph/flow_manager/../../Options/options.h:24:40: warning: no return statement in function returning non-void [-Wreturn-type] + 24 | options& operator=(options const&){}; // assignment operator is private + | ^ + | return *this; + depbase=echo Graph/flow_manager/path_finder/path_finder.o | sed 's|[^/]*$|.deps/&|;s|\.o$||';\ + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DPACKAGE_NAME=\"ttrans\" -DPACKAGE_TARNAME=\"ttrans\" -DPACKAGE_VERSION=\"1.0\" -DPACKAGE_STRING=\"ttrans\ 1.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"ttrans\" -DVERSION=\"1.0\" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_LIBZ=1 -DHAVE_BOOST=/\*\*/ -DHAVE_BOOST_PROGRAM_OPTIONS=/\*\*/ -I. -I$PREFIX/include/htslib/ -I$PREFIX/include -I$SRC_DIR/extern/libs/include/ -fopenmp -I$SRC_DIR/extern/libs/include/ -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$PREFIX/lib -L/usr/lib -Wl,-rpath,/usr/lib/ -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ryuto-1.6.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -std=c14 -MT Graph/flow_manager/path_finder/path_finder.o -MD -MP -MF $depbase.Tpo -c -o Graph/flow_manager/path_finder/path_finder.o Graph/flow_manager/path_finder/path_finder.cc &&\ + mv -f $depbase.Tpo $depbase.Po + In file included from Graph/flow_manager/path_finder/../../output/../flow_graph/../pre_graph/exon_meta.h:12, + from Graph/flow_manager/path_finder/../../output/../flow_graph/exon_edge.h:16, + from Graph/flow_manager/path_finder/../../output/transcript.h:13, + from Graph/flow_manager/path_finder/../../output/alternative_transcript_collection.h:11, + from Graph/flow_manager/path_finder/path_finder.h:14, + from Graph/flow_manager/path_finder/path_finder.cc:8: + Graph/flow_manager/path_finder/../../output/../flow_graph/../pre_graph/../../Logger/logger.h: In member function 'logger& logger::operator=(const logger&)': + Graph/flow_manager/path_finder/../../output/../flow_graph/../pre_graph/../../Logger/logger.h:26:38: warning: no return statement in function returning non-void [-Wreturn-type] + 26 | logger& operator=(logger const&){}; + | ^ + | return *this; + Graph/flow_manager/path_finder/../../output/transcript.h: At global scope: + Graph/flow_manager/path_finder/../../output/transcript.h:24:122: error: 'std::set' has not been declared + 24 | void print_count_matrix_entry(std::ostream &os, std::string &gene_id, unsigned int trans_id, int main_input_id, std::set &ids); + | ^~~ + Graph/flow_manager/path_finder/../../output/transcript.h:24:125: error: expected ',' or '...' before '<' token + 24 | void print_count_matrix_entry(std::ostream &os, std::string &gene_id, unsigned int trans_id, int main_input_id, std::set &ids); + | ^ + Graph/flow_manager/path_finder/../../output/alternative_transcript_collection.h:52:74: error: 'std::set' has not been declared + 52 | void print_count_matrix(std::ostream &os, std::string &gene_id, std::set &ids); + | ^~~ + Graph/flow_manager/path_finder/../../output/alternative_transcript_collection.h:52:77: error: expected ',' or '...' before '<' token + 52 | void print_count_matrix(std::ostream &os, std::string &gene_id, std::set &ids); + | ^ + Graph/flow_manager/path_finder/../../output/alternative_transcript_collection.h:53:74: error: 'std::set' has not been declared + 53 | void print_error_matrix(std::ostream &os, std::string &gene_id, std::set &ids); + | ^~~ + Graph/flow_manager/path_finder/../../output/alternative_transcript_collection.h:53:77: error: expected ',' or '...' before '<' token + 53 | void print_error_matrix(std::ostream &os, std::string &gene_id, std::set &ids); + | ^ + Graph/flow_manager/path_finder/../../output/alternative_transcript_collection.h:57:34: error: 'std::set' has not been declared + 57 | void filter_transcripts(std::set &ids); + | ^~~ + Graph/flow_manager/path_finder/../../output/alternative_transcript_collection.h:57:37: error: expected ',' or '...' before '<' token + 57 | void filter_transcripts(std::set &ids); + | ^ + Graph/flow_manager/path_finder/../../output/alternative_transcript_collection.h:57:10: error: 'void alternative_transcript_collection::filter_transcripts(int)' cannot be overloaded with 'void alternative_transcript_collection::filter_transcripts(int)' + 57 | void filter_transcripts(std::set &ids); + | ^~~~~~~~~~~~~~~~~~ + Graph/flow_manager/path_finder/../../output/alternative_transcript_collection.h:56:10: note: previous declaration 'void alternative_transcript_collection::filter_transcripts(int)' + 56 | void filter_transcripts(int id); + | ^~~~~~~~~~~~~~~~~~ + Graph/flow_manager/path_finder/../../output/alternative_transcript_collection.h:69:26: error: 'std::set' has not been declared + 69 | void multi_vote(std::set &ids, graph_list > &keep, std::list > ®ions); + | ^~~ + Graph/flow_manager/path_finder/../../output/alternative_transcript_collection.h:69:29: error: expected ',' or '...' before '<' token + 69 | void multi_vote(std::set &ids, graph_list > &keep, std::list > ®ions); + | ^ + In file included from Graph/flow_manager/path_finder/../base_manager.h:37, + from Graph/flow_manager/path_finder/path_finder.cc:12: + Graph/flow_manager/path_finder/../../../Options/options.h: In member function 'options& options::operator=(const options&)': + Graph/flow_manager/path_finder/../../../Options/options.h:24:40: warning: no return statement in function returning non-void [-Wreturn-type] + 24 | options& operator=(options const&){}; // assignment operator is private + | ^ + | return *this; + make[1]: *** [Makefile:808: Graph/flow_manager/path_finder/path_finder.o] Error 1 + make[1]: Leaving directory '$SRC_DIR/src' + make: *** [Makefile:367: all-recursive] Error 1 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/ryuto_1717808266359/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/ryuto/build_failure.osx-64.yaml b/recipes/ryuto/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..d55420be510e5 --- /dev/null +++ b/recipes/ryuto/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: f50f2dade23e19224d9f122e2886fe32b677124889408b6acc119e097348bbbe # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + gzip -d -c bandm.mps.gz > bandm.mps + gzip -d -c beaconfd.mps.gz > beaconfd.mps + gzip -d -c blend.mps.gz > blend.mps + gzip -d -c bnl1.mps.gz > bnl1.mps + gzip -d -c bnl2.mps.gz > bnl2.mps + gzip -d -c boeing1.mps.gz > boeing1.mps + gzip -d -c boeing2.mps.gz > boeing2.mps + gzip -d -c bore3d.mps.gz > bore3d.mps + gzip -d -c brandy.mps.gz > brandy.mps + gzip -d -c capri.mps.gz > capri.mps + gzip -d -c cycle.mps.gz > cycle.mps + gzip -d -c czprob.mps.gz > czprob.mps + gzip -d -c d2q06c.mps.gz > d2q06c.mps + gzip -d -c d6cube.mps.gz > d6cube.mps + gzip -d -c degen2.mps.gz > degen2.mps + gzip -d -c degen3.mps.gz > degen3.mps + gzip -d -c dfl001.mps.gz > dfl001.mps + gzip -d -c e226.mps.gz > e226.mps + gzip -d -c etamacro.mps.gz > etamacro.mps + gzip -d -c fffff800.mps.gz > fffff800.mps + gzip -d -c finnis.mps.gz > finnis.mps + gzip -d -c fit1d.mps.gz > fit1d.mps + gzip -d -c fit1p.mps.gz > fit1p.mps + gzip -d -c fit2d.mps.gz > fit2d.mps + gzip -d -c fit2p.mps.gz > fit2p.mps + gzip -d -c forplan.mps.gz > forplan.mps + gzip -d -c ganges.mps.gz > ganges.mps + gzip -d -c gfrd-pnc.mps.gz > gfrd-pnc.mps + gzip -d -c greenbea.mps.gz > greenbea.mps + gzip -d -c greenbeb.mps.gz > greenbeb.mps + gzip -d -c grow15.mps.gz > grow15.mps + gzip -d -c grow22.mps.gz > grow22.mps + gzip -d -c grow7.mps.gz > grow7.mps + gzip -d -c israel.mps.gz > israel.mps + gzip -d -c kb2.mps.gz > kb2.mps + gzip -d -c lotfi.mps.gz > lotfi.mps + gzip -d -c maros-r7.mps.gz > maros-r7.mps + gzip -d -c maros.mps.gz > maros.mps + gzip -d -c modszk1.mps.gz > modszk1.mps + gzip -d -c nesm.mps.gz > nesm.mps + gzip -d -c perold.mps.gz > perold.mps + gzip -d -c pilot.mps.gz > pilot.mps + gzip -d -c pilot4.mps.gz > pilot4.mps + gzip -d -c pilot87.mps.gz > pilot87.mps + gzip -d -c pilotnov.mps.gz > pilotnov.mps + gzip -d -c recipe.mps.gz > recipe.mps + gzip -d -c sc105.mps.gz > sc105.mps + gzip -d -c sc205.mps.gz > sc205.mps + gzip -d -c sc50a.mps.gz > sc50a.mps + gzip -d -c sc50b.mps.gz > sc50b.mps + gzip -d -c scagr25.mps.gz > scagr25.mps + gzip -d -c scagr7.mps.gz > scagr7.mps + gzip -d -c scfxm1.mps.gz > scfxm1.mps + gzip -d -c scfxm2.mps.gz > scfxm2.mps + gzip -d -c scfxm3.mps.gz > scfxm3.mps + gzip -d -c scorpion.mps.gz > scorpion.mps + gzip -d -c scrs8.mps.gz > scrs8.mps + gzip -d -c scsd1.mps.gz > scsd1.mps + gzip -d -c scsd6.mps.gz > scsd6.mps + gzip -d -c scsd8.mps.gz > scsd8.mps + gzip -d -c sctap1.mps.gz > sctap1.mps + gzip -d -c sctap2.mps.gz > sctap2.mps + gzip -d -c sctap3.mps.gz > sctap3.mps + gzip -d -c seba.mps.gz > seba.mps + gzip -d -c share1b.mps.gz > share1b.mps + gzip -d -c share2b.mps.gz > share2b.mps + gzip -d -c shell.mps.gz > shell.mps + gzip -d -c ship04l.mps.gz > ship04l.mps + gzip -d -c ship04s.mps.gz > ship04s.mps + gzip -d -c ship08l.mps.gz > ship08l.mps + gzip -d -c ship08s.mps.gz > ship08s.mps + gzip -d -c ship12l.mps.gz > ship12l.mps + gzip -d -c ship12s.mps.gz > ship12s.mps + gzip -d -c sierra.mps.gz > sierra.mps + gzip -d -c stair.mps.gz > stair.mps + gzip -d -c standata.mps.gz > standata.mps + gzip -d -c standgub.mps.gz > standgub.mps + gzip -d -c standmps.mps.gz > standmps.mps + gzip -d -c stocfor1.mps.gz > stocfor1.mps + gzip -d -c stocfor2.mps.gz > stocfor2.mps + gzip -d -c tuff.mps.gz > tuff.mps + gzip -d -c vtpbase.mps.gz > vtpbase.mps + gzip -d -c wood1p.mps.gz > wood1p.mps + gzip -d -c woodw.mps.gz > woodw.mps + make[1]: Leaving directory '$SRC_DIR/extern/clp_mod/Data/Netlib' + Making all in CoinUtils + make[1]: Entering directory '$SRC_DIR/extern/clp_mod/CoinUtils' + Making all in src + make[2]: Entering directory '$SRC_DIR/extern/clp_mod/CoinUtils/src' + make all-am + make[3]: Entering directory '$SRC_DIR/extern/clp_mod/CoinUtils/src' + if /bin/sh ../../libtool --tag=CXX --mode=compile x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Iecho . -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ryuto-1.6.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -DCOINUTILS_BUILD -MT CoinAlloc.lo -MD -MP -MF ".deps/CoinAlloc.Tpo" -c -o CoinAlloc.lo CoinAlloc.cpp; \ + then mv -f ".deps/CoinAlloc.Tpo" ".deps/CoinAlloc.Plo"; else rm -f ".deps/CoinAlloc.Tpo"; exit 1; fi + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I. -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ryuto-1.6.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -DCOINUTILS_BUILD -MT CoinAlloc.lo -MD -MP -MF .deps/CoinAlloc.Tpo -c CoinAlloc.cpp -o CoinAlloc.o + if /bin/sh ../../libtool --tag=CXX --mode=compile x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Iecho . -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ryuto-1.6.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -DCOINUTILS_BUILD -MT CoinBuild.lo -MD -MP -MF ".deps/CoinBuild.Tpo" -c -o CoinBuild.lo CoinBuild.cpp; \ + then mv -f ".deps/CoinBuild.Tpo" ".deps/CoinBuild.Plo"; else rm -f ".deps/CoinBuild.Tpo"; exit 1; fi + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I. -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ryuto-1.6.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -DCOINUTILS_BUILD -MT CoinBuild.lo -MD -MP -MF .deps/CoinBuild.Tpo -c CoinBuild.cpp -o CoinBuild.o + make[3]: Leaving directory '$SRC_DIR/extern/clp_mod/CoinUtils/src' + make[2]: Leaving directory '$SRC_DIR/extern/clp_mod/CoinUtils/src' + make[1]: Leaving directory '$SRC_DIR/extern/clp_mod/CoinUtils' +# Last 100 lines of the build log. diff --git a/recipes/ryuto/meta.yaml b/recipes/ryuto/meta.yaml index 9d830ccaf67c3..85dfe2e933b32 100644 --- a/recipes/ryuto/meta.yaml +++ b/recipes/ryuto/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 2 + number: 3 source: url: https://github.com/studla/RYUTO/archive/{{ version }}.tar.gz diff --git a/recipes/safesim/meta.yaml b/recipes/safesim/meta.yaml index 428dba7169d7a..9bacc7ac6062a 100644 --- a/recipes/safesim/meta.yaml +++ b/recipes/safesim/meta.yaml @@ -10,7 +10,7 @@ source: sha256: ed291fed1bd1b74dd953b7a4d9c7cf3e291572a08daf90b53544eed13fb38466 build: - number: 2 + number: 3 requirements: build: diff --git a/recipes/salmon/meta.yaml b/recipes/salmon/meta.yaml index e15f03e53f6e2..b2dcbcab2bfcc 100644 --- a/recipes/salmon/meta.yaml +++ b/recipes/salmon/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage("salmon", max_pin="x") }} diff --git a/recipes/sambamba/meta.yaml b/recipes/sambamba/meta.yaml index 483f6ea0d23ce..04704448e5319 100644 --- a/recipes/sambamba/meta.yaml +++ b/recipes/sambamba/meta.yaml @@ -12,7 +12,7 @@ source: - 0001-fix-osx-compile.patch build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} @@ -20,7 +20,7 @@ requirements: build: - make - {{ compiler('c') }} - - python >=3 + - python host: - ldc >=1.17.0 - bzip2 diff --git a/recipes/samsum/meta.yaml b/recipes/samsum/meta.yaml index 74767cb6d3564..44e818532e543 100644 --- a/recipes/samsum/meta.yaml +++ b/recipes/samsum/meta.yaml @@ -10,8 +10,7 @@ source: sha256: 36b1fc0eaa4da1b7a70d2791357c7547612c9653e4e0ea7db39ba96cdd03ffc5 build: - number: 4 - skip: True # [py2k] + number: 5 entry_points: - samsum = samsum.__main__:main script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv " diff --git a/recipes/samwell/build_failure.linux-64.yaml b/recipes/samwell/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..7f0351414c774 --- /dev/null +++ b/recipes/samwell/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 689d625fb6b06367acb3535444209289a914e0a9f6dc6501a50e1fe04f6b4558 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + [31mpysam [0.15.3|0.15.4][0m would require + [31mpython >=3.7,<3.8.0a0 [0m, which conflicts with any installable versions previously reported; + [32mpysam [0.15.4|0.16.0|...|0.21.0][0m would require + [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; + [32mpysam [0.15.4|0.16.0|...|0.21.0][0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mpysam [0.16.0.1|0.17.0|...|0.20.0][0m would require + [32mpython_abi 2.7.* *_cp27mu[0m, which can be installed; + [32mpysam [0.16.0.1|0.17.0|...|0.22.1][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mpysam [0.16.0.1|0.17.0|...|0.22.1][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mpysam [0.19.1|0.20.0|0.21.0|0.22.0|0.22.1][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [31mpython >=3.11,<3.12.0a0 [0m, which cannot be installed (as previously explained); + [31mpython_abi 3.11.* *_cp311[0m is not installable because it conflicts with any installable versions previously reported. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build + create_build_envs(top_level_pkg, notest) + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs + raise e + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs + environ.get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("libdeflate[version='>=1.0,<1.1.0a0']"), MatchSpec("pysam==0.15.3=py27h5ad169c_0")} + Encountered problems while solving: + - package pysam-0.15.3-py27h5ad169c_0 requires libdeflate >=1.0,<1.1.0a0, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + [32mpybedlite >=0.0.1 [0m is installable with the potential options + [31mpybedlite [0.0.1|0.0.2|0.0.3|0.0.4|0.1.0][0m conflicts with any installable versions previously reported; + [32mpybedlite 0.1.0[0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [31mpybedlite 0.1.0[0m would require + [31mpython >=3.11,<3.12.0a0 [0m, which requires + [31mpython_abi 3.11.* *_cp311[0m, which conflicts with any installable versions previously reported; + [32mpybedlite 0.1.0[0m would require + [32mpython_abi 3.12.* *_cp312[0m, which can be installed; + [32mpybedlite 0.1.0[0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mpybedlite 0.1.0[0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mpysam >=0.15.3 [0m is installable with the potential options + [31mpysam [0.15.3|0.15.4][0m would require + [31mpython >=2.7,<2.8.0a0 [0m, which conflicts with any installable versions previously reported; + [31mpysam 0.15.3[0m would require + [31mlibdeflate >=1.0,<1.1.0a0 [0m, which conflicts with any installable versions previously reported; + [31mpysam [0.15.3|0.15.4][0m would require + [31mpython >=3.6,<3.7.0a0 [0m, which conflicts with any installable versions previously reported; + [31mpysam [0.15.3|0.15.4][0m would require + [31mpython >=3.7,<3.8.0a0 [0m, which conflicts with any installable versions previously reported; + [32mpysam [0.15.4|0.16.0|...|0.21.0][0m would require + [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; + [32mpysam [0.15.4|0.16.0|...|0.21.0][0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mpysam [0.16.0.1|0.17.0|...|0.20.0][0m would require + [32mpython_abi 2.7.* *_cp27mu[0m, which can be installed; + [32mpysam [0.16.0.1|0.17.0|...|0.22.1][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mpysam [0.16.0.1|0.17.0|...|0.22.1][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mpysam [0.19.1|0.20.0|0.21.0|0.22.0|0.22.1][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [31mpython >=3.11,<3.12.0a0 [0m, which cannot be installed (as previously explained); + [31mpython_abi 3.11.* *_cp311[0m is not installable because it conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/samwell/build_failure.osx-64.yaml b/recipes/samwell/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..e9c72dcb9cbae --- /dev/null +++ b/recipes/samwell/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 689d625fb6b06367acb3535444209289a914e0a9f6dc6501a50e1fe04f6b4558 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("python[version='>=2.7,<2.8.0a0']"), MatchSpec("pysam==0.15.3=py27h4ace0ce_3")} + Encountered problems while solving: + - package pysam-0.15.3-py27h4ace0ce_3 requires python >=2.7,<2.8.0a0, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + pysam >=0.15.3 is installable with the potential options + pysam 0.15.3 would require + libdeflate >=1.0,<1.1.0a0 , which conflicts with any installable versions previously reported; + pysam [0.15.3|0.15.4] would require + python >=2.7,<2.8.0a0 , which can be installed; + pysam [0.15.3|0.15.4] would require + python >=3.6,<3.7.0a0 , which can be installed; + pysam [0.15.3|0.15.4] would require + python >=3.7,<3.8.0a0 , which can be installed; + pysam [0.15.4|0.16.0|...|0.21.0] would require + python_abi 3.6.* *_cp36m, which can be installed; + pysam [0.15.4|0.16.0|...|0.21.0] would require + python_abi 3.7.* *_cp37m, which can be installed; + pysam [0.16.0.1|0.17.0|...|0.20.0] would require + python_abi 2.7.* *_cp27m, which can be installed; + pysam [0.16.0.1|0.17.0|...|0.22.1] would require + python_abi 3.8.* *_cp38, which can be installed; + pysam [0.16.0.1|0.17.0|...|0.22.1] would require + python_abi 3.9.* *_cp39, which can be installed; + pysam [0.19.1|0.20.0|0.21.0|0.22.0|0.22.1] would require + python_abi 3.10.* *_cp310, which can be installed; + python_abi 3.12.* *_cp312 is not installable because it requires + python 3.12.* *_cpython, which conflicts with any installable versions previously reported. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build + create_build_envs(top_level_pkg, notest) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs + raise e + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs + environ.get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("python[version='>=2.7,<2.8.0a0']"), MatchSpec("pysam==0.15.3=py27h4ace0ce_3")} + Encountered problems while solving: + - package pysam-0.15.3-py27h4ace0ce_3 requires python >=2.7,<2.8.0a0, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + pysam >=0.15.3 is installable with the potential options + pysam 0.15.3 would require + libdeflate >=1.0,<1.1.0a0 , which conflicts with any installable versions previously reported; + pysam [0.15.3|0.15.4] would require + python >=2.7,<2.8.0a0 , which can be installed; + pysam [0.15.3|0.15.4] would require + python >=3.6,<3.7.0a0 , which can be installed; + pysam [0.15.3|0.15.4] would require + python >=3.7,<3.8.0a0 , which can be installed; + pysam [0.15.4|0.16.0|...|0.21.0] would require + python_abi 3.6.* *_cp36m, which can be installed; + pysam [0.15.4|0.16.0|...|0.21.0] would require + python_abi 3.7.* *_cp37m, which can be installed; + pysam [0.16.0.1|0.17.0|...|0.20.0] would require + python_abi 2.7.* *_cp27m, which can be installed; + pysam [0.16.0.1|0.17.0|...|0.22.1] would require + python_abi 3.8.* *_cp38, which can be installed; + pysam [0.16.0.1|0.17.0|...|0.22.1] would require + python_abi 3.9.* *_cp39, which can be installed; + pysam [0.19.1|0.20.0|0.21.0|0.22.0|0.22.1] would require + python_abi 3.10.* *_cp310, which can be installed; + python_abi 3.12.* *_cp312 is not installable because it requires + python 3.12.* *_cpython, which conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/samwell/meta.yaml b/recipes/samwell/meta.yaml index 70dcccc0a9880..7a8b8e69dda01 100644 --- a/recipes/samwell/meta.yaml +++ b/recipes/samwell/meta.yaml @@ -13,7 +13,7 @@ source: - do_not_require_cython.patch build: - number: 2 + number: 3 skip: true # [py2k] script: {{ PYTHON }} -m pip install . -vv diff --git a/recipes/sankoff/meta.yaml b/recipes/sankoff/meta.yaml index e2e37c4e8fa7d..1756c57184eae 100644 --- a/recipes/sankoff/meta.yaml +++ b/recipes/sankoff/meta.yaml @@ -10,7 +10,7 @@ source: sha256: '4e0f5308b8b2030a1643c4185ba68a8d99836b87c5cf2bfb6d3a3263b0c1b2e4' build: - number: 3 + number: 4 requirements: build: diff --git a/recipes/sansa/build_failure.osx-64.yaml b/recipes/sansa/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..f0223f40aa68a --- /dev/null +++ b/recipes/sansa/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 788a4a03f018442ca4759c62d776a93efa240672f1e911501e0ec7b926e3f3b7 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + ^ + src/markdup.h:432:38: note: in instantiation of template class 'sansa::SortSVEvents' requested here + sort(allsv.begin(), allsv.end(), SortSVEvents()); + ^ + /opt/mambaforge/envs/bioconda/conda-bld/sansa_1717639548819/_build_env/bin/../include/c/v1/__functional/binary_function.h:24:29: note: 'binary_function' has been explicitly marked deprecated here + struct _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX11 binary_function + ^ + /opt/mambaforge/envs/bioconda/conda-bld/sansa_1717639548819/_build_env/bin/../include/c/v1/__config:1037:41: note: expanded from macro '_LIBCPP_DEPRECATED_IN_CXX11' + # define _LIBCPP_DEPRECATED_IN_CXX11 _LIBCPP_DEPRECATED + ^ + /opt/mambaforge/envs/bioconda/conda-bld/sansa_1717639548819/_build_env/bin/../include/c/v1/__config:1022:49: note: expanded from macro '_LIBCPP_DEPRECATED' + # define _LIBCPP_DEPRECATED __attribute__((__deprecated__)) + ^ + In file included from src/sansa.cpp:14: + In file included from src/annotate.h:22: + src/parsedb.h:107:2: warning: ignoring return value of function declared with 'warn_unused_result' attribute [-Wunused-result] + bcf_write1(ofile, hdr_out, rec); + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + /opt/mambaforge/envs/bioconda/conda-bld/sansa_1717639548819/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/include/htslib/vcf.h:270:33: note: expanded from macro 'bcf_write1' + #define bcf_write1(fp,h,v) bcf_write((fp),(h),(v)) + ^~~~~~~~~ ~~~~~~~~~~~~ + src/annotate.h:92:10: note: in instantiation of function template specialization 'sansa::parseDB>' requested here + if (!parseDB(c, svs)) { + ^ + src/annotate.h:231:12: note: in instantiation of function template specialization 'sansa::runAnnotate' requested here + return runAnnotate(c); + ^ + 11 warnings and 1 error generated. + make: *** [Makefile:53: src/sansa] Error 1 + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/sansa_1717639548819/work + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/sansa_1717639548819/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/sansa_1717639548819/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/sansa_1717639548819/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sansa-0.2.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/sansa_1717639548819/work/conda_build.sh']' returned non-zero exit status 2. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sansa-0.2.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sansa-0.2.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sansa-0.2.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + if [ -r src/htslib/Makefile ]; then cd src/htslib && autoreconf -i && ./configure --disable-s3 --disable-gcs --disable-libcurl --disable-plugins && make && make lib-static && cd ../../ && touch .htslib; fi + x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sansa-0.2.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D__STDC_FORMAT_MACROS -std=c11 -isystem $SRC_DIR/src/htslib/ -pedantic -W -Wall -Wno-unknown-pragmas -D__STDC_LIMIT_MACROS -fno-strict-aliasing -fpermissive -O3 -fno-tree-vectorize -DNDEBUG src/sansa.cpp src/edlib.cpp -o src/sansa -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$SRC_DIR/src/htslib/ -lboost_iostreams -lboost_filesystem -lboost_system -lboost_program_options -lboost_date_time -lhts -lz -llzma -lbz2 -Wl,-rpath,$SRC_DIR/src/htslib/ +# Last 100 lines of the build log. diff --git a/recipes/sansa/meta.yaml b/recipes/sansa/meta.yaml index 50e1fa53b64ec..2673fcf314a4c 100644 --- a/recipes/sansa/meta.yaml +++ b/recipes/sansa/meta.yaml @@ -10,7 +10,7 @@ source: sha256: '{{ sha256 }}' build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('sansa', max_pin="x.x") }} diff --git a/recipes/scallop-lr/meta.yaml b/recipes/scallop-lr/meta.yaml index 59b084a930c14..d9d679e72e026 100644 --- a/recipes/scallop-lr/meta.yaml +++ b/recipes/scallop-lr/meta.yaml @@ -10,7 +10,7 @@ source: sha256: "6a073587cf82da9fb5c22e11629943293d97bf71e05b0728c6e245d99ef980d5" build: - number: 8 + number: 9 requirements: build: diff --git a/recipes/scallop/meta.yaml b/recipes/scallop/meta.yaml index 5c6063d5ddff6..ae7ec818089d5 100644 --- a/recipes/scallop/meta.yaml +++ b/recipes/scallop/meta.yaml @@ -10,7 +10,7 @@ source: sha256: "b09e3c61f1b3b1da2a96d9d8429d80326a3bb14f5fe6af9b5e87570d4b86937a" build: - number: 6 + number: 7 requirements: build: diff --git a/recipes/scallop2/meta.yaml b/recipes/scallop2/meta.yaml index 518768f6956e4..5b32155b3dad9 100644 --- a/recipes/scallop2/meta.yaml +++ b/recipes/scallop2/meta.yaml @@ -10,7 +10,7 @@ source: sha256: "1edfd369f6c8a6ea979eaf5bc4313137236338c5c98aae4648aac55b802e5fea" build: - number: 5 + number: 6 requirements: build: diff --git a/recipes/scalpel/meta.yaml b/recipes/scalpel/meta.yaml index e1fc9d05ac723..8c5bcf4b08822 100644 --- a/recipes/scalpel/meta.yaml +++ b/recipes/scalpel/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 506f731b3886def158c15fd8b74fa98390f304a507d2040972e6b09ddefac8f0 build: - number: 6 + number: 7 skip: True # [osx] run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} @@ -38,4 +38,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/scelestial/meta.yaml b/recipes/scelestial/meta.yaml index 9f1e1a9316b28..2f367c64e9274 100644 --- a/recipes/scelestial/meta.yaml +++ b/recipes/scelestial/meta.yaml @@ -10,7 +10,9 @@ source: sha256: '5c5d51a3d908c92f361219b3a5abe64bc1a0dc5e14d0736fd0e64e1c6df26680' build: - number: 2 + number: 3 + run_exports: + - {{ pin_subpackage("scelestial", max_pin="x") }} requirements: build: diff --git a/recipes/scib/meta.yaml b/recipes/scib/meta.yaml index ceedea58c4998..cc1321602adfd 100644 --- a/recipes/scib/meta.yaml +++ b/recipes/scib/meta.yaml @@ -6,7 +6,7 @@ package: version: "{{ version }}" build: - number: 0 + number: 1 script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv" skip: True # [ py < 38 or py > 311] run_exports: diff --git a/recipes/sciphi/meta.yaml b/recipes/sciphi/meta.yaml index 9c31047b74c10..b810932d715b7 100644 --- a/recipes/sciphi/meta.yaml +++ b/recipes/sciphi/meta.yaml @@ -7,7 +7,7 @@ source: url: https://github.com/cbg-ethz/SCIPhI/releases/download/v{{ version }}/SCIPhI-{{ version }}.tar.bz2 build: - number: 4 + number: 5 skip: True # [osx] package: diff --git a/recipes/sciphin/meta.yaml b/recipes/sciphin/meta.yaml index 5ab1f20cf45c1..8fe756259b851 100644 --- a/recipes/sciphin/meta.yaml +++ b/recipes/sciphin/meta.yaml @@ -7,7 +7,7 @@ source: url: https://github.com/cbg-ethz/SCIPhIN/releases/download/v{{ version }}/SCIPhIN-{{ version }}.tar.bz2 build: - number: 2 + number: 3 skip: True # [osx] package: diff --git a/recipes/scoring-matrices/meta.yaml b/recipes/scoring-matrices/meta.yaml index ca20630d74a69..cbc034c18b3fd 100644 --- a/recipes/scoring-matrices/meta.yaml +++ b/recipes/scoring-matrices/meta.yaml @@ -11,7 +11,7 @@ source: sha256: a678e047b63ca4043ec23f6f13752d6b0e78b7383a939cc6229d96f12055a511 build: - number: 0 + number: 1 skip: True # [py < 36] script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir --use-pep517 -vvv" run_exports: diff --git a/recipes/scrappie/meta.yaml b/recipes/scrappie/meta.yaml index 91623e612806f..1a58b66f92eb0 100644 --- a/recipes/scrappie/meta.yaml +++ b/recipes/scrappie/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 160f3e462a6e079e55da4de8d3bd232243ff988530cfe649038feccc9bb79797 build: - number: 5 + number: 6 skip: True # [py2k or osx] requirements: diff --git a/recipes/segemehl/0.3.1/meta.yaml b/recipes/segemehl/0.3.1/meta.yaml index 73c1714935263..0dbf86f9da19a 100644 --- a/recipes/segemehl/0.3.1/meta.yaml +++ b/recipes/segemehl/0.3.1/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 8 + number: 9 skip: True # [osx] source: diff --git a/recipes/segemehl/meta.yaml b/recipes/segemehl/meta.yaml index 9387c685d0b97..65de611f3a520 100644 --- a/recipes/segemehl/meta.yaml +++ b/recipes/segemehl/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 9 + number: 10 skip: True # [osx] source: diff --git a/recipes/selene-sdk/build_failure.linux-64.yaml b/recipes/selene-sdk/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..dc6a5fb4e2d11 --- /dev/null +++ b/recipes/selene-sdk/build_failure.linux-64.yaml @@ -0,0 +1,5 @@ +recipe_sha: 3f661deb551d83d83d454bddfb42003b0ecff6db172389f8228588a03eccc75f # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +reason: |- + The bulk GitHub Actions runner ran out of disk space. Try in a PR. +category: disk space diff --git a/recipes/selene-sdk/meta.yaml b/recipes/selene-sdk/meta.yaml index 3c85bd20b9309..1d6576f3d52da 100644 --- a/recipes/selene-sdk/meta.yaml +++ b/recipes/selene-sdk/meta.yaml @@ -9,7 +9,7 @@ source: sha256: daa7969fc99f6ffa00dda2f7657442f4a1d84771b7a83c8b3464db0221ca8b32 build: - number: 3 + number: 4 script: python setup.py install --single-version-externally-managed --record=record.txt run_exports: - {{ pin_subpackage("selene-sdk", max_pin="x.x") }} diff --git a/recipes/seqfu/build_failure.osx-64.yaml b/recipes/seqfu/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..c5f5d5bff4d23 --- /dev/null +++ b/recipes/seqfu/build_failure.osx-64.yaml @@ -0,0 +1,39 @@ +recipe_sha: 184967c871fce4a0fd9ae83e451862b416eda8d7124bf15f3c862398b46c3783 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: compiler error +log: |2- + 16:20:36 BIOCONDA INFO (ERR) 75706 lines; 4.905s; 167.559MiB peakmem; proj: /opt/mambaforge/envs/bioconda/conda-bld/seqfu_1718122533360/work/src/fu_tabcheck.nim; out: /opt/mambaforge/envs/bioconda/conda-bld/seqfu_1718122533360/work/bin/fu-tabcheck [SuccessX] + 16:20:43 BIOCONDA INFO (ERR) test/byte/count.cpp:1:10: fatal error: 'iostream' file not found + 16:20:43 BIOCONDA INFO (ERR) #include + 16:20:43 BIOCONDA INFO (ERR) ^~~~~~~~~~ + 16:20:43 BIOCONDA INFO (ERR) 1 error generated. + 16:20:44 BIOCONDA INFO (ERR) make: *** [Makefile:35: bin/SeqCountHelper] Error 1 + 16:20:45 BIOCONDA INFO (OUT) Extracting download + 16:20:45 BIOCONDA INFO (ERR) Traceback (most recent call last): + 16:20:45 BIOCONDA INFO (ERR) File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + 16:20:45 BIOCONDA INFO (ERR) sys.exit(execute()) + 16:20:45 BIOCONDA INFO (OUT) source tree in: /opt/mambaforge/envs/bioconda/conda-bld/seqfu_1718122533360/work + 16:20:45 BIOCONDA INFO (ERR) File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + 16:20:45 BIOCONDA INFO (ERR) api.build( + 16:20:45 BIOCONDA INFO (OUT) export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/seqfu_1718122533360/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol + 16:20:45 BIOCONDA INFO (ERR) File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + 16:20:45 BIOCONDA INFO (ERR) return build_tree( + 16:20:45 BIOCONDA INFO (OUT) export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/seqfu_1718122533360/_build_env + 16:20:45 BIOCONDA INFO (ERR) File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + 16:20:45 BIOCONDA INFO (ERR) packages_from_this = build( + 16:20:45 BIOCONDA INFO (OUT) export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/seqfu_1718122533360/work + 16:20:45 BIOCONDA INFO (OUT) INFO: activate_clang_osx-64.sh made the following environmental changes: + 16:20:45 BIOCONDA INFO (OUT) +AR=x86_64-apple-darwin13.4.0-ar + 16:20:45 BIOCONDA INFO (OUT) +AS=x86_64-apple-darwin13.4.0-as + 16:20:45 BIOCONDA INFO (OUT) +CC=x86_64-apple-darwin13.4.0-clang + 16:20:45 BIOCONDA INFO (OUT) +CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + 16:20:45 BIOCONDA INFO (ERR) File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + 16:20:45 BIOCONDA INFO (ERR) utils.check_call_env( + 16:20:45 BIOCONDA INFO (ERR) File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + 16:20:45 BIOCONDA INFO (ERR) return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + 16:20:45 BIOCONDA INFO (OUT) +CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/seqfu-1.20.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + 16:20:45 BIOCONDA INFO (OUT) +CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + 16:20:45 BIOCONDA INFO (OUT) +CLANG=x86_64-apple-darwin13.4.0-clang + 16:20:45 BIOCONDA INFO (ERR) File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + 16:20:45 BIOCONDA INFO (ERR) raise subprocess.CalledProcessError(proc.returncode, _args) + 16:20:45 BIOCONDA INFO (ERR) subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/seqfu_1718122533360/work/conda_build.sh']' returned non-zero exit status 2. \ No newline at end of file diff --git a/recipes/seqfu/meta.yaml b/recipes/seqfu/meta.yaml index 13b66f49d86fe..dec9c542f81cc 100644 --- a/recipes/seqfu/meta.yaml +++ b/recipes/seqfu/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} diff --git a/recipes/seqhax/meta.yaml b/recipes/seqhax/meta.yaml index 17216739a90fd..a6addef9c10bf 100644 --- a/recipes/seqhax/meta.yaml +++ b/recipes/seqhax/meta.yaml @@ -10,7 +10,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 skip: true # [not linux] run_exports: - {{ pin_subpackage('seqhax', max_pin="x") }} diff --git a/recipes/sequali/build_failure.osx-64.yaml b/recipes/sequali/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..a23733fbe04f1 --- /dev/null +++ b/recipes/sequali/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: b82be46fe70a4476baf68c386ad04ec62bab54268efc685fda61370f10059d7f # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + clangxx: 16.0.6-default_ha3b9224_7 conda-forge + compiler-rt: 16.0.6-ha38d28d_2 conda-forge + compiler-rt_osx-64: 16.0.6-ha38d28d_2 conda-forge + icu: 73.2-hf5e326d_0 conda-forge + ld64_osx-64: 711-ha20a434_0 conda-forge + libclang-cpp16: 16.0.6-default_h4c8afb6_7 conda-forge + libcxx: 17.0.6-h88467a6_0 conda-forge + libexpat: 2.6.2-h73e2aa4_0 conda-forge + libffi: 3.4.2-h0d85af4_5 conda-forge + libiconv: 1.17-hd75f5a5_2 conda-forge + libllvm16: 16.0.6-hbedff68_3 conda-forge + libsqlite: 3.45.3-h92b6c6a_0 conda-forge + libxml2: 2.12.7-hfa5d230_0 conda-forge + libzlib: 1.3.1-h87427d6_1 conda-forge + llvm-tools: 16.0.6-hbedff68_3 conda-forge + ncurses: 6.5-h5846eda_0 conda-forge + openssl: 3.3.0-h87427d6_3 conda-forge + pip: 24.0-pyhd8ed1ab_0 conda-forge + python: 3.12.3-h1411813_0_cpython conda-forge + readline: 8.2-h9e318b2_1 conda-forge + setuptools: 70.0.0-pyhd8ed1ab_0 conda-forge + sigtool: 0.1.3-h88f4db0_0 conda-forge + tapi: 1100.0.11-h9ce4665_0 conda-forge + tk: 8.6.13-h1abcd95_1 conda-forge + tzdata: 2024a-h0c530f3_0 conda-forge + wheel: 0.43.0-pyhd8ed1ab_1 conda-forge + xz: 5.2.6-h775f41a_0 conda-forge + zstd: 1.5.6-h915ae27_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache + Downloading source to cache: sequali-0.10.0_c43b38a212.tar.gz + Downloading https://pypi.io/packages/source/s/sequali/sequali-0.10.0.tar.gz + Success + /opt/mambaforge/envs/bioconda/conda-bld/sequali_1717523007406/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/bin/python: No module named pip + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/sequali_1717523007406/work + Traceback (most recent call last): + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/sequali_1717523007406/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/sequali_1717523007406/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/sequali_1717523007406/work + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + INFO: activate_clang_osx-64.sh made the following environmental changes: + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sequali-0.10.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sequali-0.10.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/sequali_1717523007406/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/sequali/meta.yaml b/recipes/sequali/meta.yaml index 0d6287bbfe78d..69fccabe0a7f7 100644 --- a/recipes/sequali/meta.yaml +++ b/recipes/sequali/meta.yaml @@ -10,7 +10,7 @@ source: sha256: c43b38a212c80bfd3f44bb0beeb37f62c9cb298698f2c876e5231cfb6faa34e1 build: - number: 0 + number: 1 entry_points: - sequali=sequali.__main__:main - sequali-report=sequali.__main__:sequali_report diff --git a/recipes/sequenza-utils/build_failure.osx-64.yaml b/recipes/sequenza-utils/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..c23418fdf5dd0 --- /dev/null +++ b/recipes/sequenza-utils/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: ad01f59bb54fb38b29ef4aeb09c87479685de7020296fce1894dc1cbded9a745 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + Destination directory: /private/tmp/pip-wheel-68a19nc9 + Building wheel for sequenza-utils (setup.py): finished with status 'done' + Created wheel for sequenza-utils: filename=sequenza_utils-3.0.0-cp312-cp312-macosx_10_9_x86_64.whl size=29834 sha256=d937fc6d0ae086acd628fc477b489f38aa978c18e6ee541083cd2953a39a64e7 + Stored in directory: /private/tmp/pip-ephem-wheel-cache-bw95prpo/wheels/ff/a3/eb/ec11dd857897d354eab45aed2e67ffbc0a64b1f49cda5a0739 + Successfully built sequenza-utils + Installing collected packages: sequenza-utils + + changing mode of $PREFIX/bin/sequenza-utils to 755 + Successfully installed sequenza-utils-3.0.0 + Removed build tracker: '/private/tmp/pip-build-tracker-p25sh0bd' + + Resource usage statistics from building sequenza-utils: + Process count: 5 + CPU time: Sys=0:00:00.9, User=0:00:00.9 + Memory: 92.0M + Disk usage: 704B + Time elapsed: 0:00:06.7 + + + compiling .pyc files... + number of files: 50 + INFO: sysroot: '/System/Library/Frameworks/' files: '['vmnet.framework/Versions/Current', 'vmnet.framework/Versions/A/_CodeSignature/CodeResources', 'vmnet.framework/Versions/A/Resources/version.plist', 'vmnet.framework/Versions/A/Resources/InfoPlist.loctable']' + INFO: sysroot: '/usr/lib/' files: '['zsh/5.9/zsh/zselect.so', 'zsh/5.9/zsh/zpty.so', 'zsh/5.9/zsh/zprof.so', 'zsh/5.9/zsh/zleparameter.so']' + INFO: sysroot: '/opt/X11/' files: '[]' + INFO (sequenza-utils,lib/python3.12/site-packages/sequenza/c_pileup.cpython-312-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + WARNING (sequenza-utils): interpreter (Python) package conda-forge/osx-64::python==3.12.3=h1411813_0_cpython in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) + WARNING (sequenza-utils): dso library package conda-forge/osx-64::libcxx==17.0.6=h88467a6_0 in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) + Fixing permissions + INFO :: Time taken to mark (prefix) + 0 replacements in 0 files was 0.09 seconds + Files containing CONDA_PREFIX + ----------------------------- + bin/sequenza-utils (text): Patching + TEST START: /opt/mambaforge/envs/bioconda/conda-bld/osx-64/sequenza-utils-3.0.0-py312h82554b9_7.tar.bz2 + Renaming work directory '/opt/mambaforge/envs/bioconda/conda-bld/sequenza-utils_1717692686269/work' to '/opt/mambaforge/envs/bioconda/conda-bld/sequenza-utils_1717692686269/work_moved_sequenza-utils-3.0.0-py312h82554b9_7_osx-64' + shutil.move(work)=/opt/mambaforge/envs/bioconda/conda-bld/sequenza-utils_1717692686269/work, dest=/opt/mambaforge/envs/bioconda/conda-bld/sequenza-utils_1717692686269/work_moved_sequenza-utils-3.0.0-py312h82554b9_7_osx-64) + Reloading output folder (local): ...working... done + Solving environment (_test_env): ...working... done + + ## Package Plan ## + + environment location: /opt/mambaforge/envs/bioconda/conda-bld/sequenza-utils_1717692686269/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac + + + The following NEW packages will be INSTALLED: + + bzip2: 1.0.8-h10d778d_5 conda-forge + c-ares: 1.28.1-h10d778d_0 conda-forge + ca-certificates: 2024.6.2-h8857fd0_0 conda-forge + htslib: 1.20-hec81eee_1 bioconda + krb5: 1.21.2-hb884880_0 conda-forge + libcurl: 8.8.0-hf9fcc65_0 conda-forge + libcxx: 17.0.6-h88467a6_0 conda-forge + libdeflate: 1.20-h49d49c5_0 conda-forge + libedit: 3.1.20191231-h0678c8f_2 conda-forge + libev: 4.33-h10d778d_2 conda-forge + libexpat: 2.6.2-h73e2aa4_0 conda-forge + libffi: 3.4.2-h0d85af4_5 conda-forge + libnghttp2: 1.58.0-h64cf6d3_1 conda-forge + libsqlite: 3.45.3-h92b6c6a_0 conda-forge + libssh2: 1.11.0-hd019ec5_0 conda-forge + libzlib: 1.2.13-h87427d6_6 conda-forge + ncurses: 6.5-h5846eda_0 conda-forge + openssl: 3.3.1-h87427d6_0 conda-forge + python: 3.12.3-h1411813_0_cpython conda-forge + python_abi: 3.12-4_cp312 conda-forge + readline: 8.2-h9e318b2_1 conda-forge + samtools: 1.20-hd510865_0 bioconda + sequenza-utils: 3.0.0-py312h82554b9_7 local + tk: 8.6.13-h1abcd95_1 conda-forge + tzdata: 2024a-h0c530f3_0 conda-forge + xz: 5.2.6-h775f41a_0 conda-forge + zstd: 1.5.6-h915ae27_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + sequenza-utils --help + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/conda-bld/sequenza-utils_1717692686269/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/bin/sequenza-utils", line 11, in + sys.exit(main()) + ^^^^^^ + File "/opt/mambaforge/envs/bioconda/conda-bld/sequenza-utils_1717692686269/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.12/site-packages/sequenza/commands.py", line 30, in main + modules = get_modules(sequenza.programs, subparsers, {}) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/mambaforge/envs/bioconda/conda-bld/sequenza-utils_1717692686269/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.12/site-packages/sequenza/misc.py", line 73, in get_modules + __import__(mod) + File "/opt/mambaforge/envs/bioconda/conda-bld/sequenza-utils_1717692686269/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.12/site-packages/sequenza/programs/bam2seqz.py", line 5, in + from sequenza.samtools import bam_mpileup, indexed_pileup, tabix_seqz + File "/opt/mambaforge/envs/bioconda/conda-bld/sequenza-utils_1717692686269/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.12/site-packages/sequenza/samtools.py", line 6, in + from distutils.spawn import find_executable + ModuleNotFoundError: No module named 'distutils' + WARNING: Tests failed for sequenza-utils-3.0.0-py312h82554b9_7.tar.bz2 - moving package to /opt/mambaforge/envs/bioconda/conda-bld/broken + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/sequenza-utils_1717692686269/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/sequenza-utils_1717692686269/test_tmp + import: 'sequenza' + import: 'sequenza.programs' + import: 'sequenza' + TESTS FAILED: sequenza-utils-3.0.0-py312h82554b9_7.tar.bz2 + import: 'sequenza.programs' +# Last 100 lines of the build log. diff --git a/recipes/sequenza-utils/meta.yaml b/recipes/sequenza-utils/meta.yaml index 35a0cdc72e3f8..4721d77e69dbd 100644 --- a/recipes/sequenza-utils/meta.yaml +++ b/recipes/sequenza-utils/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 0640f3d73e7c320b5234b86f1b94d6315b3248e1b2715c01fe44fbd23ffb2370 build: - number: 6 + number: 7 entry_points: - sequenza-utils = sequenza.commands:main script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv " diff --git a/recipes/sga/build_failure.osx-64.yaml b/recipes/sga/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..c274b38b8755b --- /dev/null +++ b/recipes/sga/build_failure.osx-64.yaml @@ -0,0 +1,106 @@ +recipe_sha: 5eea4bb110cc9e71d687892aaf69b4c4905565f4be1072f268a508f0853d54f2 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + /opt/mambaforge/envs/bioconda/conda-bld/sga_1717957120831/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/bamtools/api/algorithms/Sort.h:64:18: error: no template named 'binary_function' in namespace 'std'; did you mean '__binary_function'? + typedef std::binary_function AlignmentSortBase; + ~~~~~^~~~~~~~~~~~~~~ + __binary_function + /opt/mambaforge/envs/bioconda/conda-bld/sga_1717957120831/_build_env/bin/../include/c/v1/__functional/binary_function.h:49:1: note: '__binary_function' declared here + using __binary_function = __binary_function_keep_layout_base<_Arg1, _Arg2, _Result>; + ^ + 1 error generated. + make[2]: *** [Makefile:924: sga-rewrite-evidence-bam.o] Error 1 + make[1]: *** [Makefile:358: all-recursive] Error 1 + make: *** [Makefile:299: all] Error 2 + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Bigraph -I../Util -I../StringGraph -I../SQG -I../SuffixTools -I../Thirdparty -I../Algorithm -I../Concurrency -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT libgraphdiff_a-GraphCompare.o -MD -MP -MF .deps/libgraphdiff_a-GraphCompare.Tpo -c -o libgraphdiff_a-GraphCompare.o test -f 'GraphCompare.cpp' || echo './'GraphCompare.cpp + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + mv -f .deps/libgraphdiff_a-GraphCompare.Tpo .deps/libgraphdiff_a-GraphCompare.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Bigraph -I../Util -I../StringGraph -I../SQG -I../SuffixTools -I../Thirdparty -I../Algorithm -I../Concurrency -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT libgraphdiff_a-OverlapExtractorWithCorrection.o -MD -MP -MF .deps/libgraphdiff_a-OverlapExtractorWithCorrection.Tpo -c -o libgraphdiff_a-OverlapExtractorWithCorrection.o test -f 'OverlapExtractorWithCorrection.cpp' || echo './'OverlapExtractorWithCorrection.cpp + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + mv -f .deps/libgraphdiff_a-OverlapExtractorWithCorrection.Tpo .deps/libgraphdiff_a-OverlapExtractorWithCorrection.Po + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Bigraph -I../Util -I../StringGraph -I../SQG -I../SuffixTools -I../Thirdparty -I../Algorithm -I../Concurrency -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT libgraphdiff_a-DBGPathGuide.o -MD -MP -MF .deps/libgraphdiff_a-DBGPathGuide.Tpo -c -o libgraphdiff_a-DBGPathGuide.o test -f 'DBGPathGuide.cpp' || echo './'DBGPathGuide.cpp + mv -f .deps/libgraphdiff_a-DBGPathGuide.Tpo .deps/libgraphdiff_a-DBGPathGuide.Po + rm -f libgraphdiff.a + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/sga_1717957120831/work/conda_build.sh']' returned non-zero exit status 2. + ar cru libgraphdiff.a libgraphdiff_a-DindelUtil.o libgraphdiff_a-DindelRealignWindow.o libgraphdiff_a-DindelHMM.o libgraphdiff_a-OverlapHaplotypeBuilder.o libgraphdiff_a-StringHaplotypeBuilder.o libgraphdiff_a-DeBruijnHaplotypeBuilder.o libgraphdiff_a-PairedDeBruijnHaplotypeBuilder.o libgraphdiff_a-HapgenUtil.o libgraphdiff_a-VCFTester.o libgraphdiff_a-GraphCompare.o libgraphdiff_a-OverlapExtractorWithCorrection.o libgraphdiff_a-DBGPathGuide.o + x86_64-apple-darwin13.4.0-ranlib libgraphdiff.a + make[2]: Leaving directory '$SRC_DIR/src/GraphDiff' + Making all in SGA + make[2]: Entering directory '$SRC_DIR/src/SGA' + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-sga.o -MD -MP -MF .deps/sga-sga.Tpo -c -o sga-sga.o test -f 'sga.cpp' || echo './'sga.cpp + mv -f .deps/sga-sga.Tpo .deps/sga-sga.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-index.o -MD -MP -MF .deps/sga-index.Tpo -c -o sga-index.o test -f 'index.cpp' || echo './'index.cpp + mv -f .deps/sga-index.Tpo .deps/sga-index.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-overlap.o -MD -MP -MF .deps/sga-overlap.Tpo -c -o sga-overlap.o test -f 'overlap.cpp' || echo './'overlap.cpp + mv -f .deps/sga-overlap.Tpo .deps/sga-overlap.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-assemble.o -MD -MP -MF .deps/sga-assemble.Tpo -c -o sga-assemble.o test -f 'assemble.cpp' || echo './'assemble.cpp + mv -f .deps/sga-assemble.Tpo .deps/sga-assemble.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-correct.o -MD -MP -MF .deps/sga-correct.Tpo -c -o sga-correct.o test -f 'correct.cpp' || echo './'correct.cpp + mv -f .deps/sga-correct.Tpo .deps/sga-correct.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-oview.o -MD -MP -MF .deps/sga-oview.Tpo -c -o sga-oview.o test -f 'oview.cpp' || echo './'oview.cpp + mv -f .deps/sga-oview.Tpo .deps/sga-oview.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-preprocess.o -MD -MP -MF .deps/sga-preprocess.Tpo -c -o sga-preprocess.o test -f 'preprocess.cpp' || echo './'preprocess.cpp + mv -f .deps/sga-preprocess.Tpo .deps/sga-preprocess.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-rmdup.o -MD -MP -MF .deps/sga-rmdup.Tpo -c -o sga-rmdup.o test -f 'rmdup.cpp' || echo './'rmdup.cpp + mv -f .deps/sga-rmdup.Tpo .deps/sga-rmdup.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-merge.o -MD -MP -MF .deps/sga-merge.Tpo -c -o sga-merge.o test -f 'merge.cpp' || echo './'merge.cpp + mv -f .deps/sga-merge.Tpo .deps/sga-merge.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-subgraph.o -MD -MP -MF .deps/sga-subgraph.Tpo -c -o sga-subgraph.o test -f 'subgraph.cpp' || echo './'subgraph.cpp + mv -f .deps/sga-subgraph.Tpo .deps/sga-subgraph.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-scaffold.o -MD -MP -MF .deps/sga-scaffold.Tpo -c -o sga-scaffold.o test -f 'scaffold.cpp' || echo './'scaffold.cpp + mv -f .deps/sga-scaffold.Tpo .deps/sga-scaffold.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-scaffold2fasta.o -MD -MP -MF .deps/sga-scaffold2fasta.Tpo -c -o sga-scaffold2fasta.o test -f 'scaffold2fasta.cpp' || echo './'scaffold2fasta.cpp + mv -f .deps/sga-scaffold2fasta.Tpo .deps/sga-scaffold2fasta.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-connect.o -MD -MP -MF .deps/sga-connect.Tpo -c -o sga-connect.o test -f 'connect.cpp' || echo './'connect.cpp + mv -f .deps/sga-connect.Tpo .deps/sga-connect.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-walk.o -MD -MP -MF .deps/sga-walk.Tpo -c -o sga-walk.o test -f 'walk.cpp' || echo './'walk.cpp + mv -f .deps/sga-walk.Tpo .deps/sga-walk.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-filter.o -MD -MP -MF .deps/sga-filter.Tpo -c -o sga-filter.o test -f 'filter.cpp' || echo './'filter.cpp + mv -f .deps/sga-filter.Tpo .deps/sga-filter.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-kmer-count.o -MD -MP -MF .deps/sga-kmer-count.Tpo -c -o sga-kmer-count.o test -f 'kmer-count.cpp' || echo './'kmer-count.cpp + mv -f .deps/sga-kmer-count.Tpo .deps/sga-kmer-count.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-stats.o -MD -MP -MF .deps/sga-stats.Tpo -c -o sga-stats.o test -f 'stats.cpp' || echo './'stats.cpp + mv -f .deps/sga-stats.Tpo .deps/sga-stats.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-fm-merge.o -MD -MP -MF .deps/sga-fm-merge.Tpo -c -o sga-fm-merge.o test -f 'fm-merge.cpp' || echo './'fm-merge.cpp + mv -f .deps/sga-fm-merge.Tpo .deps/sga-fm-merge.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-gmap.o -MD -MP -MF .deps/sga-gmap.Tpo -c -o sga-gmap.o test -f 'gmap.cpp' || echo './'gmap.cpp + mv -f .deps/sga-gmap.Tpo .deps/sga-gmap.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-filterBAM.o -MD -MP -MF .deps/sga-filterBAM.Tpo -c -o sga-filterBAM.o test -f 'filterBAM.cpp' || echo './'filterBAM.cpp + mv -f .deps/sga-filterBAM.Tpo .deps/sga-filterBAM.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-cluster.o -MD -MP -MF .deps/sga-cluster.Tpo -c -o sga-cluster.o test -f 'cluster.cpp' || echo './'cluster.cpp + mv -f .deps/sga-cluster.Tpo .deps/sga-cluster.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-gen-ssa.o -MD -MP -MF .deps/sga-gen-ssa.Tpo -c -o sga-gen-ssa.o test -f 'gen-ssa.cpp' || echo './'gen-ssa.cpp + mv -f .deps/sga-gen-ssa.Tpo .deps/sga-gen-ssa.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-bwt2fa.o -MD -MP -MF .deps/sga-bwt2fa.Tpo -c -o sga-bwt2fa.o test -f 'bwt2fa.cpp' || echo './'bwt2fa.cpp + mv -f .deps/sga-bwt2fa.Tpo .deps/sga-bwt2fa.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-graph-diff.o -MD -MP -MF .deps/sga-graph-diff.Tpo -c -o sga-graph-diff.o test -f 'graph-diff.cpp' || echo './'graph-diff.cpp + mv -f .deps/sga-graph-diff.Tpo .deps/sga-graph-diff.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-graph-concordance.o -MD -MP -MF .deps/sga-graph-concordance.Tpo -c -o sga-graph-concordance.o test -f 'graph-concordance.cpp' || echo './'graph-concordance.cpp + mv -f .deps/sga-graph-concordance.Tpo .deps/sga-graph-concordance.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-gapfill.o -MD -MP -MF .deps/sga-gapfill.Tpo -c -o sga-gapfill.o test -f 'gapfill.cpp' || echo './'gapfill.cpp + mv -f .deps/sga-gapfill.Tpo .deps/sga-gapfill.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-preqc.o -MD -MP -MF .deps/sga-preqc.Tpo -c -o sga-preqc.o test -f 'preqc.cpp' || echo './'preqc.cpp + mv -f .deps/sga-preqc.Tpo .deps/sga-preqc.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-overlap-long.o -MD -MP -MF .deps/sga-overlap-long.Tpo -c -o sga-overlap-long.o test -f 'overlap-long.cpp' || echo './'overlap-long.cpp + mv -f .deps/sga-overlap-long.Tpo .deps/sga-overlap-long.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-variant-detectability.o -MD -MP -MF .deps/sga-variant-detectability.Tpo -c -o sga-variant-detectability.o test -f 'variant-detectability.cpp' || echo './'variant-detectability.cpp + mv -f .deps/sga-variant-detectability.Tpo .deps/sga-variant-detectability.Po + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -I../Util -I../Bigraph -I../SuffixTools -I../StringGraph -I../Concurrency -I../Algorithm -I../SQG -I../Scaffold -I../GraphDiff -I../Thirdparty -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -I$PREFIX/include -O3 -MT sga-rewrite-evidence-bam.o -MD -MP -MF .deps/sga-rewrite-evidence-bam.Tpo -c -o sga-rewrite-evidence-bam.o test -f 'rewrite-evidence-bam.cpp' || echo './'rewrite-evidence-bam.cpp + make[2]: Leaving directory '$SRC_DIR/src/SGA' + make[1]: Leaving directory '$SRC_DIR/src' +# Last 100 lines of the build log. +category: |- + compiler error diff --git a/recipes/sga/meta.yaml b/recipes/sga/meta.yaml index c2a1d55d62299..df98ff6102abb 100644 --- a/recipes/sga/meta.yaml +++ b/recipes/sga/meta.yaml @@ -14,7 +14,7 @@ source: - configure.patch build: - number: 8 + number: 9 requirements: build: diff --git a/recipes/shapeit4/meta.yaml b/recipes/shapeit4/meta.yaml index 2ff743e8565fe..32fb68ad82fb9 100644 --- a/recipes/shapeit4/meta.yaml +++ b/recipes/shapeit4/meta.yaml @@ -10,7 +10,7 @@ source: build: skip: True # [osx] - number: 3 + number: 4 requirements: build: diff --git a/recipes/shapeit5/build_failure.linux-64.yaml b/recipes/shapeit5/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..3a21c46c2bca5 --- /dev/null +++ b/recipes/shapeit5/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: c4e658052b91f89073b083715c202ece7eabc102ceb17983abd3710712482e01 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + source tree in: /opt/conda/conda-bld/shapeit5_1717782784593/work + export PREFIX=/opt/conda/conda-bld/shapeit5_1717782784593/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac + export BUILD_PREFIX=/opt/conda/conda-bld/shapeit5_1717782784593/_build_env + export SRC_DIR=/opt/conda/conda-bld/shapeit5_1717782784593/work + INFO: activate-binutils_linux-64.sh made the following environmental changes: + ADDR2LINE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-addr2line + AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar + AS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-as + CXXFILT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cfilt + ELFEDIT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-elfedit + GPROF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gprof + LD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld + LD_GOLD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld.gold + NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-nm + OBJCOPY=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objcopy + OBJDUMP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objdump + RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib + READELF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-readelf + SIZE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-size + STRINGS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strings + STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip + INFO: activate-gcc_linux-64.sh made the following environmental changes: + BUILD=x86_64-conda-linux-gnu + CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/shapeit5-5.1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr + CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot + CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu + CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu + CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/shapeit5-5.1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + INFO: activate-gxx_linux-64.sh made the following environmental changes: + CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/shapeit5-5.1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/shapeit5-5.1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-g + Cloning into 'xcftools'... + remote: Enumerating objects: 496, done. + remote: Counting objects: 0% (1/140) remote: Counting objects: 1% (2/140) remote: Counting objects: 2% (3/140) remote: Counting objects: 3% (5/140) remote: Counting objects: 4% (6/140) remote: Counting objects: 5% (7/140) remote: Counting objects: 6% (9/140) remote: Counting objects: 7% (10/140) remote: Counting objects: 8% (12/140) remote: Counting objects: 9% (13/140) remote: Counting objects: 10% (14/140) remote: Counting objects: 11% (16/140) remote: Counting objects: 12% (17/140) remote: Counting objects: 13% (19/140) remote: Counting objects: 14% (20/140) remote: Counting objects: 15% (21/140) remote: Counting objects: 16% (23/140) remote: Counting objects: 17% (24/140) remote: Counting objects: 18% (26/140) remote: Counting objects: 19% (27/140) remote: Counting objects: 20% (28/140) remote: Counting objects: 21% (30/140) remote: Counting objects: 22% (31/140) remote: Counting objects: 23% (33/140) remote: Counting objects: 24% (34/140) remote: Counting objects: 25% (35/140) remote: Counting objects: 26% (37/140) remote: Counting objects: 27% (38/140) remote: Counting objects: 28% (40/140) remote: Counting objects: 29% (41/140) remote: Counting objects: 30% (42/140) remote: Counting objects: 31% (44/140) remote: Counting objects: 32% (45/140) remote: Counting objects: 33% (47/140) remote: Counting objects: 34% (48/140) remote: Counting objects: 35% (49/140) remote: Counting objects: 36% (51/140) remote: Counting objects: 37% (52/140) remote: Counting objects: 38% (54/140) remote: Counting objects: 39% (55/140) remote: Counting objects: 40% (56/140) remote: Counting objects: 41% (58/140) remote: Counting objects: 42% (59/140) remote: Counting objects: 43% (61/140) remote: Counting objects: 44% (62/140) remote: Counting objects: 45% (63/140) remote: Counting objects: 46% (65/140) remote: Counting objects: 47% (66/140) remote: Counting objects: 48% (68/140) remote: Counting objects: 49% (69/140) remote: Counting objects: 50% (70/140) remote: Counting objects: 51% (72/140) remote: Counting objects: 52% (73/140) remote: Counting objects: 53% (75/140) remote: Counting objects: 54% (76/140) remote: Counting objects: 55% (77/140) remote: Counting objects: 56% (79/140) remote: Counting objects: 57% (80/140) remote: Counting objects: 58% (82/140) remote: Counting objects: 59% (83/140) remote: Counting objects: 60% (84/140) remote: Counting objects: 61% (86/140) remote: Counting objects: 62% (87/140) remote: Counting objects: 63% (89/140) remote: Counting objects: 64% (90/140) remote: Counting objects: 65% (91/140) remote: Counting objects: 66% (93/140) remote: Counting objects: 67% (94/140) remote: Counting objects: 68% (96/140) remote: Counting objects: 69% (97/140) remote: Counting objects: 70% (98/140) remote: Counting objects: 71% (100/140) remote: Counting objects: 72% (101/140) remote: Counting objects: 73% (103/140) remote: Counting objects: 74% (104/140) remote: Counting objects: 75% (105/140) remote: Counting objects: 76% (107/140) remote: Counting objects: 77% (108/140) remote: Counting objects: 78% (110/140) remote: Counting objects: 79% (111/140) remote: Counting objects: 80% (112/140) remote: Counting objects: 81% (114/140) remote: Counting objects: 82% (115/140) remote: Counting objects: 83% (117/140) remote: Counting objects: 84% (118/140) remote: Counting objects: 85% (119/140) remote: Counting objects: 86% (121/140) remote: Counting objects: 87% (122/140) remote: Counting objects: 88% (124/140) remote: Counting objects: 89% (125/140) remote: Counting objects: 90% (126/140) remote: Counting objects: 91% (128/140) remote: Counting objects: 92% (129/140) remote: Counting objects: 93% (131/140) remote: Counting objects: 94% (132/140) remote: Counting objects: 95% (133/140) remote: Counting objects: 96% (135/140) remote: Counting objects: 97% (136/140) remote: Counting objects: 98% (138/140) remote: Counting objects: 99% (139/140) remote: Counting objects: 100% (140/140) remote: Counting objects: 100% (140/140), done. + remote: Compressing objects: 1% (1/90) remote: Compressing objects: 2% (2/90) remote: Compressing objects: 3% (3/90) remote: Compressing objects: 4% (4/90) remote: Compressing objects: 5% (5/90) remote: Compressing objects: 6% (6/90) remote: Compressing objects: 7% (7/90) remote: Compressing objects: 8% (8/90) remote: Compressing objects: 10% (9/90) remote: Compressing objects: 11% (10/90) remote: Compressing objects: 12% (11/90) remote: Compressing objects: 13% (12/90) remote: Compressing objects: 14% (13/90) remote: Compressing objects: 15% (14/90) remote: Compressing objects: 16% (15/90) remote: Compressing objects: 17% (16/90) remote: Compressing objects: 18% (17/90) remote: Compressing objects: 20% (18/90) remote: Compressing objects: 21% (19/90) remote: Compressing objects: 22% (20/90) remote: Compressing objects: 23% (21/90) remote: Compressing objects: 24% (22/90) remote: Compressing objects: 25% (23/90) remote: Compressing objects: 26% (24/90) remote: Compressing objects: 27% (25/90) remote: Compressing objects: 28% (26/90) remote: Compressing objects: 30% (27/90) remote: Compressing objects: 31% (28/90) remote: Compressing objects: 32% (29/90) remote: Compressing objects: 33% (30/90) remote: Compressing objects: 34% (31/90) remote: Compressing objects: 35% (32/90) remote: Compressing objects: 36% (33/90) remote: Compressing objects: 37% (34/90) remote: Compressing objects: 38% (35/90) remote: Compressing objects: 40% (36/90) remote: Compressing objects: 41% (37/90) remote: Compressing objects: 42% (38/90) remote: Compressing objects: 43% (39/90) remote: Compressing objects: 44% (40/90) remote: Compressing objects: 45% (41/90) remote: Compressing objects: 46% (42/90) remote: Compressing objects: 47% (43/90) remote: Compressing objects: 48% (44/90) remote: Compressing objects: 50% (45/90) remote: Compressing objects: 51% (46/90) remote: Compressing objects: 52% (47/90) remote: Compressing objects: 53% (48/90) remote: Compressing objects: 54% (49/90) remote: Compressing objects: 55% (50/90) remote: Compressing objects: 56% (51/90) remote: Compressing objects: 57% (52/90) remote: Compressing objects: 58% (53/90) remote: Compressing objects: 60% (54/90) remote: Compressing objects: 61% (55/90) remote: Compressing objects: 62% (56/90) remote: Compressing objects: 63% (57/90) remote: Compressing objects: 64% (58/90) remote: Compressing objects: 65% (59/90) remote: Compressing objects: 66% (60/90) remote: Compressing objects: 67% (61/90) remote: Compressing objects: 68% (62/90) remote: Compressing objects: 70% (63/90) remote: Compressing objects: 71% (64/90) remote: Compressing objects: 72% (65/90) remote: Compressing objects: 73% (66/90) remote: Compressing objects: 74% (67/90) remote: Compressing objects: 75% (68/90) remote: Compressing objects: 76% (69/90) remote: Compressing objects: 77% (70/90) remote: Compressing objects: 78% (71/90) remote: Compressing objects: 80% (72/90) remote: Compressing objects: 81% (73/90) remote: Compressing objects: 82% (74/90) remote: Compressing objects: 83% (75/90) remote: Compressing objects: 84% (76/90) remote: Compressing objects: 85% (77/90) remote: Compressing objects: 86% (78/90) remote: Compressing objects: 87% (79/90) remote: Compressing objects: 88% (80/90) remote: Compressing objects: 90% (81/90) remote: Compressing objects: 91% (82/90) remote: Compressing objects: 92% (83/90) remote: Compressing objects: 93% (84/90) remote: Compressing objects: 94% (85/90) remote: Compressing objects: 95% (86/90) remote: Compressing objects: 96% (87/90) remote: Compressing objects: 97% (88/90) remote: Compressing objects: 98% (89/90) remote: Compressing objects: 100% (90/90) remote: Compressing objects: 100% (90/90), done. + Receiving objects: 0% (1/496)Receiving objects: 1% (5/496)Receiving objects: 2% (10/496)Receiving objects: 3% (15/496)Receiving objects: 4% (20/496)Receiving objects: 5% (25/496)Receiving objects: 6% (30/496)Receiving objects: 7% (35/496)Receiving objects: 8% (40/496)Receiving objects: 9% (45/496)Receiving objects: 10% (50/496)Receiving objects: 11% (55/496)Receiving objects: 12% (60/496)Receiving objects: 13% (65/496)Receiving objects: 14% (70/496)Receiving objects: 15% (75/496)Receiving objects: 16% (80/496)Receiving objects: 17% (85/496)Receiving objects: 18% (90/496)Receiving objects: 19% (95/496)Receiving objects: 20% (100/496)Receiving objects: 21% (105/496)Receiving objects: 22% (110/496)Receiving objects: 23% (115/496)Receiving objects: 24% (120/496)Receiving objects: 25% (124/496)Receiving objects: 26% (129/496)Receiving objects: 27% (134/496)Receiving objects: 28% (139/496)Receiving objects: 29% (144/496)Receiving objects: 30% (149/496)Receiving objects: 31% (154/496)Receiving objects: 32% (159/496)Receiving objects: 33% (164/496)Receiving objects: 34% (169/496)Receiving objects: 35% (174/496)Receiving objects: 36% (179/496)Receiving objects: 37% (184/496)Receiving objects: 38% (189/496)Receiving objects: 39% (194/496)Receiving objects: 40% (199/496)Receiving objects: 41% (204/496)Receiving objects: 42% (209/496)Receiving objects: 43% (214/496)Receiving objects: 44% (219/496)Receiving objects: 45% (224/496)Receiving objects: 46% (229/496)Receiving objects: 47% (234/496)Receiving objects: 48% (239/496)Receiving objects: 49% (244/496)Receiving objects: 50% (248/496)Receiving objects: 51% (253/496)Receiving objects: 52% (258/496)Receiving objects: 53% (263/496)Receiving objects: 54% (268/496)Receiving objects: 55% (273/496)Receiving objects: 56% (278/496)Receiving objects: 57% (283/496)Receiving objects: 58% (288/496)Receiving objects: 59% (293/496)Receiving objects: 60% (298/496)Receiving objects: 61% (303/496)Receiving objects: 62% (308/496)Receiving objects: 63% (313/496)Receiving objects: 64% (318/496)Receiving objects: 65% (323/496)Receiving objects: 66% (328/496)Receiving objects: 67% (333/496)Receiving objects: 68% (338/496)Receiving objects: 69% (343/496)Receiving objects: 70% (348/496)Receiving objects: 71% (353/496)Receiving objects: 72% (358/496)Receiving objects: 73% (363/496)Receiving objects: 74% (368/496)Receiving objects: 75% (372/496)Receiving objects: 76% (377/496)Receiving objects: 77% (382/496)Receiving objects: 78% (387/496)Receiving objects: 79% (392/496)Receiving objects: 80% (397/496)Receiving objects: 81% (402/496)Receiving objects: 82% (407/496)Receiving objects: 83% (412/496)Receiving objects: 84% (417/496)Receiving objects: 85% (422/496)Receiving objects: 86% (427/496)Receiving objects: 87% (432/496)remote: Total 496 (delta 73), reused 91 (delta 38), pack-reused 356 + Receiving objects: 88% (437/496)Receiving objects: 89% (442/496)Receiving objects: 90% (447/496)Receiving objects: 91% (452/496)Receiving objects: 92% (457/496)Receiving objects: 93% (462/496)Receiving objects: 94% (467/496)Receiving objects: 95% (472/496)Receiving objects: 96% (477/496)Receiving objects: 97% (482/496)Receiving objects: 98% (487/496)Receiving objects: 99% (492/496)Receiving objects: 100% (496/496)Receiving objects: 100% (496/496), 461.02 KiB | 9.60 MiB/s, done. + Resolving deltas: 0% (0/283)Resolving deltas: 1% (3/283)Resolving deltas: 2% (6/283)Resolving deltas: 3% (9/283)Resolving deltas: 4% (12/283)Resolving deltas: 5% (15/283)Resolving deltas: 6% (17/283)Resolving deltas: 7% (20/283)Resolving deltas: 8% (23/283)Resolving deltas: 9% (26/283)Resolving deltas: 10% (29/283)Resolving deltas: 11% (32/283)Resolving deltas: 12% (34/283)Resolving deltas: 13% (37/283)Resolving deltas: 14% (40/283)Resolving deltas: 15% (43/283)Resolving deltas: 16% (46/283)Resolving deltas: 17% (49/283)Resolving deltas: 18% (51/283)Resolving deltas: 19% (54/283)Resolving deltas: 20% (57/283)Resolving deltas: 21% (60/283)Resolving deltas: 22% (63/283)Resolving deltas: 23% (66/283)Resolving deltas: 24% (68/283)Resolving deltas: 25% (71/283)Resolving deltas: 26% (74/283)Resolving deltas: 27% (77/283)Resolving deltas: 28% (80/283)Resolving deltas: 29% (83/283)Resolving deltas: 30% (85/283)Resolving deltas: 31% (88/283)Resolving deltas: 32% (91/283)Resolving deltas: 33% (95/283)Resolving deltas: 34% (97/283)Resolving deltas: 35% (100/283)Resolving deltas: 36% (102/283)Resolving deltas: 37% (105/283)Resolving deltas: 38% (108/283)Resolving deltas: 39% (111/283)Resolving deltas: 40% (114/283)Resolving deltas: 41% (117/283)Resolving deltas: 42% (119/283)Resolving deltas: 43% (122/283)Resolving deltas: 44% (125/283)Resolving deltas: 45% (128/283)Resolving deltas: 46% (131/283)Resolving deltas: 47% (134/283)Resolving deltas: 48% (136/283)Resolving deltas: 49% (139/283)Resolving deltas: 50% (142/283)Resolving deltas: 51% (145/283)Resolving deltas: 52% (148/283)Resolving deltas: 53% (150/283)Resolving deltas: 54% (153/283)Resolving deltas: 55% (156/283)Resolving deltas: 56% (159/283)Resolving deltas: 57% (162/283)Resolving deltas: 58% (165/283)Resolving deltas: 59% (167/283)Resolving deltas: 60% (170/283)Resolving deltas: 61% (173/283)Resolving deltas: 62% (176/283)Resolving deltas: 63% (180/283)Resolving deltas: 64% (182/283)Resolving deltas: 65% (184/283)Resolving deltas: 66% (187/283)Resolving deltas: 67% (190/283)Resolving deltas: 68% (193/283)Resolving deltas: 69% (196/283)Resolving deltas: 70% (199/283)Resolving deltas: 71% (201/283)Resolving deltas: 72% (204/283)Resolving deltas: 73% (207/283)Resolving deltas: 74% (210/283)Resolving deltas: 75% (213/283)Resolving deltas: 76% (216/283)Resolving deltas: 77% (218/283)Resolving deltas: 78% (221/283)Resolving deltas: 79% (224/283)Resolving deltas: 80% (227/283)Resolving deltas: 81% (230/283)Resolving deltas: 82% (233/283)Resolving deltas: 83% (235/283)Resolving deltas: 84% (238/283)Resolving deltas: 85% (241/283)Resolving deltas: 86% (244/283)Resolving deltas: 87% (247/283)Resolving deltas: 88% (250/283)Resolving deltas: 89% (252/283)Resolving deltas: 90% (255/283)Resolving deltas: 91% (258/283)Resolving deltas: 92% (261/283)Resolving deltas: 93% (264/283)Resolving deltas: 94% (267/283)Resolving deltas: 95% (269/283)Resolving deltas: 96% (273/283)Resolving deltas: 97% (275/283)Resolving deltas: 98% (278/283)Resolving deltas: 99% (281/283)Resolving deltas: 100% (283/283)Resolving deltas: 100% (283/283), done. + LICENSE + README.md + archive + build_env_setup.sh + common + conda_build.sh + docker + docs + ligate + makefile + metadata_conda_debug.yaml + phase_common + phase_rare + resources + scripts + simulate + static_bins + switch + tasks + test + versions + xcftools + $SRC_DIR/phase_common $SRC_DIR + make: *** No rule to make target 'src/containers/bitvector.h', needed by 'obj/hmm_parameters.o'. Stop. + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/shapeit5_1717782784593/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/shapeit5/meta.yaml b/recipes/shapeit5/meta.yaml index 67dba1f38c537..542fbec7dbb87 100644 --- a/recipes/shapeit5/meta.yaml +++ b/recipes/shapeit5/meta.yaml @@ -8,7 +8,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 # TODO Fail to build on [osx] due to # error: no template named 'unary_function' in namespace 'std' skip: true #[osx] diff --git a/recipes/sherpas/build_failure.osx-64.yaml b/recipes/sherpas/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..63f24e877b930 --- /dev/null +++ b/recipes/sherpas/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 907b6b2ddd7284dea8ef850273c030b75e9184a3f0c59429f0cb37574450168e # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + [[ RA-MD1LOVE ]] - [[ patch ]] + + Key: + + R :: Reversible A :: Applicable + Y :: Build-prefix patch in use M :: Minimal, non-amalgamated + D :: Dry-runnable N :: Patch level (1 is preferred) + L :: Patch level not-ambiguous O :: Patch applies without offsets + V :: Patch applies without fuzz E :: Patch applies without emitting to stderr + + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/sherpas_1717513246162/work + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/sherpas_1717513246162/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/sherpas_1717513246162/_build_env + raise subprocess.CalledProcessError(proc.returncode, _args) + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/sherpas_1717513246162/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/sherpas_1717513246162/work/conda_build.sh']' returned non-zero exit status 2. + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sherpas-1.0.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sherpas-1.0.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sherpas-1.0.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sherpas-1.0.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + -- The CXX compiler identification is Clang 16.0.6 + -- Detecting CXX compiler ABI info + -- Detecting CXX compiler ABI info - done + -- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting CXX compile features + -- Detecting CXX compile features - done + -- Hash map option: USE_TSL_HOPSCOTCH_MAP + -- The C compiler identification is Clang 16.0.6 + -- Detecting C compiler ABI info + -- Detecting C compiler ABI info - done + -- Check for working C compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting C compile features + -- Detecting C compile features - done + -- Found Boost: $PREFIX/lib/cmake/Boost-1.85.0/BoostConfig.cmake (found version "1.85.0") found components: serialization iostreams + -- Found Boost: $PREFIX/lib/cmake/Boost-1.85.0/BoostConfig.cmake (found version "1.85.0") found components: filesystem + -- Found Boost: $PREFIX/lib/cmake/Boost-1.85.0/BoostConfig.cmake (found version "1.85.0") found components: filesystem iostreams + -- Found Boost: $PREFIX/lib/cmake/Boost-1.85.0/BoostConfig.cmake (found version "1.85.0") found components: iostreams + -- Found Boost: $PREFIX/lib/cmake/Boost-1.85.0/BoostConfig.cmake (found version "1.85.0") found components: filesystem iostreams + -- Configuring done (2.3s) + -- Generating done (0.3s) + -- Build files have been written to: $SRC_DIR + $SRC_DIR/release-build $SRC_DIR + [ 6%] Building CXX object lib/xpas/utils/CMakeFiles/utils.dir/src/utils/io/file_io.cpp.o + [ 12%] Building CXX object lib/xpas/utils/CMakeFiles/utils.dir/src/utils/io/fasta.cpp.o +# Last 100 lines of the build log. diff --git a/recipes/sherpas/meta.yaml b/recipes/sherpas/meta.yaml index 4e60b394556ed..a309c2bb9dff1 100644 --- a/recipes/sherpas/meta.yaml +++ b/recipes/sherpas/meta.yaml @@ -13,7 +13,7 @@ source: - patch build: - number: 4 + number: 5 requirements: build: diff --git a/recipes/shorah/1.1.3/build_failure.linux-64.yaml b/recipes/shorah/1.1.3/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..93c3d18b84143 --- /dev/null +++ b/recipes/shorah/1.1.3/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 467d67564f83dc4b2eaf8caa71b366442289d259ea5fdf29b1ff11f15737e1bc # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + -r REF, --ref REF reference file (default: None) + -b BAM, --bam BAM sorted bam format alignment file (default: None) + amplian.py -h + usage: amplian.py [-h] -b BAM -f REF [-r chrm:start-stop] [-d] [-m FLOAT] + [-a FLOAT] [-x INT] [-s FLOAT] + + Local haplotype reconstruction - amplicon mode + + options: + -h, --help show this help message and exit + + Input files: + Required input + + -b BAM, --bam BAM file with aligned reads in .bam format (default: None) + -f REF, --fasta REF reference genome in fasta format (default: None) + + Type of run: + You can specify a region, or look for the highest diversity region + + -r chrm:start-stop, --region chrm:start-stop + region in format 'chrm:start-stop' e.g. + 'ch3:1000-1300' (default: ) + -d, --diversity if set, automatically detects the highest entropy + region and runs there (default: False) + + Run options: + Fine tuning + + -m FLOAT, --min_overlap FLOAT + fraction of read overlap to be included (default: + 0.95) + -a FLOAT, --alpha FLOAT + alpha in dpm sampling (default: 0.5) + + More options: + Do you really want to change this? + + -x INT, --maxcov INT approximate max coverage allowed (default: 50000) + -s FLOAT, --sigma FLOAT + sigma value to use when calling SNVs (default: 0.01) + fas2read.pl -h + perl: warning: Setting locale failed. + perl: warning: Please check that your locale settings: + LANGUAGE = (unset), + LC_ALL = (unset), + LANG = "C.UTF-8" + are supported and installed on your system. + perl: warning: Falling back to the standard locale ("C"). + usage: $PREFIX/bin/fas2read.pl -f file.fas [ -h -v -o] + reads from file.fas, outputs to file.read + contain -h + Usage: contain -f basename + Expects basename.read, outputs basename.rest + b2w -h + + Usage: b2w [options] region + + Options: + -w: window length (INT) + -i: increment (INT) + -m: minimum overlap (INT) + -x: max reads starting at a position (INT) + -h: show this help + + diri_sampler -h + diri_sampler [options] + + files + -i + parameters + -j + -a + -K not compat. with -k + -k not compat. with -K + -t + -R + ----------------------------------------------------- + -h this help! + freqEst -h + Usage: freqEst -f basename [-p precision -i maxiter -r runs -h -k kill -?] + Expects basename.read and basename.geno + Outputs to basename.popl + [[ -d examples/amplicon_test/ ]] + cp -r examples/amplicon_test ./ + cd amplicon_test/ + amplian.py -f reference.fasta -b ampli_sorted.bam + /opt/conda/conda-bld/shorah_1717849150096/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/bin/amplian.py:116: UserWarning: 58.3 % of untouched objects + warnings.warn(unt_msg) + Traceback (most recent call last): + File "/opt/conda/conda-bld/shorah_1717849150096/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/bin/amplian.py", line 428, in + main(args.in_bam, args.in_fasta, args.min_overlap, args.max_coverage, args.alpha, + File "/opt/conda/conda-bld/shorah_1717849150096/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/bin/amplian.py", line 357, in main + shorah_snv.main(reference=in_fasta, bam_file=in_bam, sigma=s, increment=1) + File "/opt/conda/conda-bld/shorah_1717849150096/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.11/site-packages/shorah_snv.py", line 362, in main + snvlog.info(str(inspect.getargspec(main))) + ^^^^^^^^^^^^^^^^^^ + AttributeError: module 'inspect' has no attribute 'getargspec'. Did you mean: 'getargs'? + WARNING: Tests failed for shorah-1.1.3-py311hc19386c_12.tar.bz2 - moving package to /opt/conda/conda-bld/broken + TESTS FAILED: shorah-1.1.3-py311hc19386c_12.tar.bz2 +# Last 100 lines of the build log. diff --git a/recipes/shorah/1.1.3/build_failure.osx-64.yaml b/recipes/shorah/1.1.3/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..ef1ce0c146307 --- /dev/null +++ b/recipes/shorah/1.1.3/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 467d67564f83dc4b2eaf8caa71b366442289d259ea5fdf29b1ff11f15737e1bc # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + positional arguments: + filename Input file containing starting position and sequences + for each of the reads + + options: + -h, --help show this help message and exit + -m INT, --maxhaplo INT + keep searching until we find at least MAXGENO + haplotypes (default: 10000) + -i INT, --maxiter INT + but only look up to MAXITER rounds (default: 50) + -l INT, --length INT minimum overlap to include in graph (default: 1) + -o, --one search one path only (default: True) + -a, --all extend search to many paths (default: False) + -g, --graph output a graph? (default: False) + usage: snv.py [-h] -r REF -b BAM [-s FLOAT] [-i INT] [-x INT] + + Single nucleotide variant calling + + options: + -h, --help show this help message and exit + -s FLOAT, --sigma FLOAT + value of sigma to use when calling SNVs (default: + 0.01) + -i INT, --increment INT + value of increment to use when calling SNVs (1 used by + amplian.py) (default: 1) + -x INT, --maxcov INT Maximum coverage allowed (default: 100000) + + required named arguments: + -r REF, --ref REF reference file (default: None) + -b BAM, --bam BAM sorted bam format alignment file (default: None) + usage: amplian.py [-h] -b BAM -f REF [-r chrm:start-stop] [-d] [-m FLOAT] + [-a FLOAT] [-x INT] [-s FLOAT] + + Local haplotype reconstruction - amplicon mode + + options: + -h, --help show this help message and exit + + Input files: + Required input + + -b BAM, --bam BAM file with aligned reads in .bam format (default: None) + -f REF, --fasta REF reference genome in fasta format (default: None) + + Type of run: + You can specify a region, or look for the highest diversity region + + -r chrm:start-stop, --region chrm:start-stop + region in format 'chrm:start-stop' e.g. + 'ch3:1000-1300' (default: ) + -d, --diversity if set, automatically detects the highest entropy + region and runs there (default: False) + + Run options: + Fine tuning + + -m FLOAT, --min_overlap FLOAT + fraction of read overlap to be included (default: + 0.95) + -a FLOAT, --alpha FLOAT + alpha in dpm sampling (default: 0.5) + + More options: + Do you really want to change this? + + -x INT, --maxcov INT approximate max coverage allowed (default: 50000) + -s FLOAT, --sigma FLOAT + sigma value to use when calling SNVs (default: 0.01) + usage: $PREFIX/bin/fas2read.pl -f file.fas [ -h -v -o] + reads from file.fas, outputs to file.read + Usage: contain -f basename + Expects basename.read, outputs basename.rest + + Usage: b2w [options] region + + Options: + -w: window length (INT) + -i: increment (INT) + -m: minimum overlap (INT) + -x: max reads starting at a position (INT) + -h: show this help + + diri_sampler [options] + + files + -i + parameters + -j + -a + -K not compat. with -k + -k not compat. with -K + -t + -R + ----------------------------------------------------- + -h this help! + Usage: freqEst -f basename [-p precision -i maxiter -r runs -h -k kill -?] + Expects basename.read and basename.geno + Outputs to basename.popl +# Last 100 lines of the build log. diff --git a/recipes/shorah/1.1.3/meta.yaml b/recipes/shorah/1.1.3/meta.yaml index ad93e227c40b4..6fdff319f975b 100644 --- a/recipes/shorah/1.1.3/meta.yaml +++ b/recipes/shorah/1.1.3/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 11 + number: 12 script: - ./configure --prefix="${PREFIX}" PYTHON="${PYTHON}" PKG_CONFIG_PATH=${PREFIX}/lib/pkgconfigs - make install diff --git a/recipes/shorah/1.99.0/build_failure.linux-64.yaml b/recipes/shorah/1.99.0/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..cea6e942c86a9 --- /dev/null +++ b/recipes/shorah/1.99.0/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: f091fe275a70e208b785573adc65c48ec855e762dab729852b99642c39eda36f # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + checking whether make supports nested variables... (cached) yes + checking whether $PREFIX/bin/python version is >= 3.5... yes + checking for $PREFIX/bin/python version... 3.1 + checking for $PREFIX/bin/python platform... linux + checking for $PREFIX/bin/python script directory... ${prefix}/lib/python3.12/site-packages + checking for $PREFIX/bin/python extension module directory... ${exec_prefix}/lib/python3.12/site-packages + checking that generated files are newer than configure... done + configure: creating ./config.status + config.status: creating Makefile + config.status: executing depfiles commands + + shorah 1.99.0 + + CXX : ..................... $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c (, ) + CXXFLAGS : ................ -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/shorah-1.99.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -mpopcnt + + CPPFLAGS : ................ -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + LDFLAGS : ................. -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + + Boost_CPPFLAGS : .......... + + HTSlib_CFLAGS : ........... -I$PREFIX/include + HTSlib_LIBS : ............. -L$PREFIX/lib -lhts + + PYTHON : .................. $PREFIX/bin/python + Python version : .......... 3.1 + + make install-am + make[1]: Entering directory '$SRC_DIR' + CXX src/cpp/diri_sampler-dpm_sampler.o + : warning: "NDEBUG" redefined + : note: this is the location of the previous definition + src/cpp/dpm_sampler.cpp: In function 'void read_data(char*, std::ofstream&)': + src/cpp/dpm_sampler.cpp:619:91: warning: 'std::pair<_Tp*, long int> std::get_temporary_buffer(ptrdiff_t) [with _Tp = map<__cxx11::basic_string, int>; ptrdiff_t = long int]' is deprecated [-Wdeprecated-declarations] + 619 | std::pair read2hap_pair = std::get_temporary_buffer(n); + | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~ + In file included from /opt/conda/conda-bld/shorah_1717850009762/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_algo.h:61, + from /opt/conda/conda-bld/shorah_1717850009762/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/algorithm:61, + from src/cpp/dpm_sampler.cpp:27: + /opt/conda/conda-bld/shorah_1717850009762/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_tempbuf.h:101:5: note: declared here + 101 | get_temporary_buffer(ptrdiff_t __len) _GLIBCXX_NOEXCEPT + | ^~~~~~~~~~~~~~~~~~~~ + src/cpp/dpm_sampler.cpp: In function 'int main(int, char**)': + src/cpp/dpm_sampler.cpp:358:19: warning: ignoring return value of 'int fscanf(FILE*, const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result] + 358 | fscanf(alphafile, "%f", &alpha2); + | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ + src/cpp/dpm_sampler.cpp:366:19: warning: ignoring return value of 'int fscanf(FILE*, const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result] + 366 | fscanf(iterfile, "%ui", &iter2); + | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~ + CXXLD diri_sampler + CXX src/cpp/b2w-b2w.o + : warning: "NDEBUG" redefined + : note: this is the location of the previous definition + src/cpp/b2w.cpp: In lambda function: + src/cpp/b2w.cpp:260:21: warning: ignoring return value of 'int asprintf(char**, const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result] + 260 | asprintf(&filename, "w-%s-%u-%u.reads.fas", // read window filename + | ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 261 | header->target_name[tid], win_b 1, win_e 1); + | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CXXLD b2w + CXX src/cpp/fil-fil.o + : warning: "NDEBUG" redefined + : note: this is the location of the previous definition + CXXLD fil + /usr/bin/sed 's,#!/usr/bin/env python3,#!/usr/bin/env $PREFIX/bin/python,g' ./src/shorah/__main__.py > shorah + make[2]: Entering directory '$SRC_DIR' + /usr/bin/mkdir -p '$PREFIX/bin' + /usr/bin/install -c diri_sampler b2w fil '$PREFIX/bin' + /usr/bin/mkdir -p '$PREFIX/bin' + /usr/bin/install -c shorah '$PREFIX/bin' + /usr/bin/mkdir -p '$PREFIX/share/shorah/amplicon_test' + /usr/bin/install -c -m 644 examples/amplicon_test/README.md examples/amplicon_test/ampli_sorted.bam examples/amplicon_test/amplicon_reads.fastq examples/amplicon_test/reference.fasta '$PREFIX/share/shorah/amplicon_test' + /usr/bin/mkdir -p '$PREFIX/share/shorah' + /usr/bin/install -c -m 644 examples/ref_genome.fasta examples/sample_454.fasta '$PREFIX/share/shorah' + /usr/bin/mkdir -p '$PREFIX/lib/python3.12/site-packages/shorah' + /usr/bin/install -c -m 644 src/shorah/__main__.py src/shorah/amplicon.py src/shorah/cli.py src/shorah/shorah_snv.py src/shorah/shotgun.py '$PREFIX/lib/python3.12/site-packages/shorah' + Traceback (most recent call last): + File "", line 2, in + ModuleNotFoundError: No module named 'imp' + make[2]: *** [Makefile:669: install-dist_pkgpythonPYTHON] Error 1 + make[2]: Leaving directory '$SRC_DIR' + make[1]: *** [Makefile:1038: install-am] Error 2 + make[1]: Leaving directory '$SRC_DIR' + make: *** [Makefile:1032: install] Error 2 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/shorah_1717850009762/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/shorah/1.99.0/build_failure.osx-64.yaml b/recipes/shorah/1.99.0/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..c8412d85e626c --- /dev/null +++ b/recipes/shorah/1.99.0/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: f091fe275a70e208b785573adc65c48ec855e762dab729852b99642c39eda36f # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + checking whether configure should try to set CXXFLAGS/CPPFLAGS/LDFLAGS... no + checking whether to enable debugging... no + checking build system type... x86_64-apple-darwin13.4.0 + checking host system type... x86_64-apple-darwin13.4.0 + checking for a sed that does not truncate output... /usr/bin/sed + checking whether the C compiler works... yes + checking for C compiler default output file name... a.out + checking for suffix of executables... + checking whether we are cross compiling... no + checking for suffix of object files... o + checking whether we are using the GNU C compiler... yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes + checking for x86_64-apple-darwin13.4.0-ranlib... x86_64-apple-darwin13.4.0-ranlib + checking for x86_64-apple-darwin13.4.0-gcc... x86_64-apple-darwin13.4.0-clang + checking whether we are using the GNU C compiler... yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes + checking for x86_64-apple-darwin13.4.0-clang option to accept ISO C89... none needed + checking whether x86_64-apple-darwin13.4.0-clang understands -c and -o together... yes + checking for x86_64-apple-darwin13.4.0-ar... x86_64-apple-darwin13.4.0-ar + checking the archiver (x86_64-apple-darwin13.4.0-ar) interface... ar + checking for C compiler vendor... clang + checking for C compiler version... 16.0.6 + checking how to run the C preprocessor... x86_64-apple-darwin13.4.0-clang -E + checking for grep that handles long lines and -e... /usr/bin/grep + checking for egrep... /usr/bin/grep -E + checking whether x86_64-apple-darwin13.4.0-clang is Clang... yes + checking whether Clang needs flag to prevent "argument unused" warning when linking with -pthread... no + checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE + checking whether more special flags are required for pthreads... no + checking for PTHREAD_PRIO_INHERIT... yes + checking whether C compiler accepts -mpopcnt... yes + checking whether configure can enable POPCNT for Hamming distances... no + checking whether x86_64-apple-darwin13.4.0-clang supports C11 features by default... yes + checking for x86_64-apple-darwin13.4.0-pkg-config... $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-pkg-config + checking pkg-config is at least version 0.9.0... yes + checking for ZLIB... yes + checking for GSL... yes + checking for HTSLIB... yes + checking for boostlib >= 1.56 (105600)... yes + checking for a BSD-compatible install... /usr/bin/install -c + checking whether build environment is sane... yes + checking for a thread-safe mkdir -p... ./install-sh -c -d + checking for gawk... no + checking for mawk... no + checking for nawk... no + checking for awk... awk + checking whether make sets $(MAKE)... yes + checking whether make supports the include directive... yes (GNU style) + checking whether make supports nested variables... yes + checking dependency style of x86_64-apple-darwin13.4.0-clang... gcc3 + checking dependency style of x86_64-apple-darwin13.4.0-clang... gcc3 + checking whether make supports nested variables... (cached) yes + checking whether $PREFIX/bin/python version is >= 3.5... yes + checking for $PREFIX/bin/python version... 3.1 + checking for $PREFIX/bin/python platform... darwin + checking for $PREFIX/bin/python script directory... ${prefix}/lib/python3.12/site-packages + checking for $PREFIX/bin/python extension module directory... ${exec_prefix}/lib/python3.12/site-packages + checking that generated files are newer than configure... done + configure: creating ./config.status + config.status: creating Makefile + config.status: executing depfiles commands + + shorah 1.99.0 + + CXX : ..................... x86_64-apple-darwin13.4.0-clang (, ) + CXXFLAGS : ................ -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/shorah-1.99.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -mpopcnt + + CPPFLAGS : ................ -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + LDFLAGS : ................. -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + + Boost_CPPFLAGS : .......... + + HTSlib_CFLAGS : ........... -I$PREFIX/include + HTSlib_LIBS : ............. -L$PREFIX/lib -lhts + + PYTHON : .................. $PREFIX/bin/python + Python version : .......... 3.1 + + make install-am + make[1]: Entering directory '$SRC_DIR' + CXX src/cpp/diri_sampler-dpm_sampler.o + CXXLD diri_sampler + CXX src/cpp/b2w-b2w.o + CXXLD b2w + CXX src/cpp/fil-fil.o + CXXLD fil + /usr/bin/sed 's,#!/usr/bin/env python3,#!/usr/bin/env $PREFIX/bin/python,g' ./src/shorah/__main__.py > shorah + make[2]: Entering directory '$SRC_DIR' + ./install-sh -c -d '$PREFIX/bin' + /usr/bin/install -c diri_sampler b2w fil '$PREFIX/bin' + ./install-sh -c -d '$PREFIX/bin' + /usr/bin/install -c shorah '$PREFIX/bin' + ./install-sh -c -d '$PREFIX/share/shorah/amplicon_test' + /usr/bin/install -c -m 644 examples/amplicon_test/README.md examples/amplicon_test/ampli_sorted.bam examples/amplicon_test/amplicon_reads.fastq examples/amplicon_test/reference.fasta '$PREFIX/share/shorah/amplicon_test' + ./install-sh -c -d '$PREFIX/share/shorah' + /usr/bin/install -c -m 644 examples/ref_genome.fasta examples/sample_454.fasta '$PREFIX/share/shorah' + ./install-sh -c -d '$PREFIX/lib/python3.12/site-packages/shorah' + /usr/bin/install -c -m 644 src/shorah/__main__.py src/shorah/amplicon.py src/shorah/cli.py src/shorah/shorah_snv.py src/shorah/shotgun.py '$PREFIX/lib/python3.12/site-packages/shorah' + make[2]: Leaving directory '$SRC_DIR' + make[1]: Leaving directory '$SRC_DIR' +# Last 100 lines of the build log. diff --git a/recipes/shorah/1.99.0/meta.yaml b/recipes/shorah/1.99.0/meta.yaml index 0922b6be06621..20f78fb102ed9 100644 --- a/recipes/shorah/1.99.0/meta.yaml +++ b/recipes/shorah/1.99.0/meta.yaml @@ -12,7 +12,7 @@ source: build: skip: True # [py27] - number: 8 + number: 9 script: - ./configure --prefix="${PREFIX}" PYTHON="${PYTHON}" PKG_CONFIG_PATH=${PREFIX}/lib/pkgconfig - make install diff --git a/recipes/shorah/1.99.2/build_failure.linux-64.yaml b/recipes/shorah/1.99.2/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..6b1815d947efc --- /dev/null +++ b/recipes/shorah/1.99.2/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 9ff3f4ed803104fba80ee257c50c5b914effee7ad14c21a5729c55febbdfdeba # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + checking whether make supports nested variables... (cached) yes + checking whether $PREFIX/bin/python version is >= 3.5... yes + checking for $PREFIX/bin/python version... 3.1 + checking for $PREFIX/bin/python platform... linux + checking for $PREFIX/bin/python script directory... ${prefix}/lib/python3.12/site-packages + checking for $PREFIX/bin/python extension module directory... ${exec_prefix}/lib/python3.12/site-packages + checking that generated files are newer than configure... done + configure: creating ./config.status + config.status: creating Makefile + config.status: executing depfiles commands + + shorah 1.99.2 + + CXX : ..................... $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c (, ) + CXXFLAGS : ................ -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/shorah-1.99.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -mpopcnt + + CPPFLAGS : ................ -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + LDFLAGS : ................. -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + + Boost_CPPFLAGS : .......... + + HTSlib_CFLAGS : ........... -I$PREFIX/include + HTSlib_LIBS : ............. -L$PREFIX/lib -lhts + + PYTHON : .................. $PREFIX/bin/python + Python version : .......... 3.1 + + make install-am + make[1]: Entering directory '$SRC_DIR' + CXX src/cpp/diri_sampler-dpm_sampler.o + : warning: "NDEBUG" redefined + : note: this is the location of the previous definition + src/cpp/dpm_sampler.cpp: In function 'void read_data(char*, std::ofstream&)': + src/cpp/dpm_sampler.cpp:624:91: warning: 'std::pair<_Tp*, long int> std::get_temporary_buffer(ptrdiff_t) [with _Tp = map<__cxx11::basic_string, int>; ptrdiff_t = long int]' is deprecated [-Wdeprecated-declarations] + 624 | std::pair read2hap_pair = std::get_temporary_buffer(n); + | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~ + In file included from /opt/conda/conda-bld/shorah_1717849579459/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_algo.h:61, + from /opt/conda/conda-bld/shorah_1717849579459/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/algorithm:61, + from src/cpp/dpm_sampler.cpp:27: + /opt/conda/conda-bld/shorah_1717849579459/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_tempbuf.h:101:5: note: declared here + 101 | get_temporary_buffer(ptrdiff_t __len) _GLIBCXX_NOEXCEPT + | ^~~~~~~~~~~~~~~~~~~~ + src/cpp/dpm_sampler.cpp: In function 'int main(int, char**)': + src/cpp/dpm_sampler.cpp:361:19: warning: ignoring return value of 'int fscanf(FILE*, const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result] + 361 | fscanf(alphafile, "%f", &alpha2); + | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ + src/cpp/dpm_sampler.cpp:369:19: warning: ignoring return value of 'int fscanf(FILE*, const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result] + 369 | fscanf(iterfile, "%ui", &iter2); + | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~ + CXXLD diri_sampler + CXX src/cpp/b2w-b2w.o + : warning: "NDEBUG" redefined + : note: this is the location of the previous definition + src/cpp/b2w.cpp: In lambda function: + src/cpp/b2w.cpp:263:21: warning: ignoring return value of 'int asprintf(char**, const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result] + 263 | asprintf(&filename, "w-%s-%u-%u.reads.fas", // read window filename + | ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 264 | header->target_name[tid], win_b 1, win_e 1); + | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CXXLD b2w + CXX src/cpp/fil-fil.o + : warning: "NDEBUG" redefined + : note: this is the location of the previous definition + CXXLD fil + /usr/bin/sed 's,#!/usr/bin/env python3,#!/usr/bin/env $PREFIX/bin/python,g' ./src/shorah/__main__.py > shorah + make[2]: Entering directory '$SRC_DIR' + /usr/bin/mkdir -p '$PREFIX/bin' + /usr/bin/install -c diri_sampler b2w fil '$PREFIX/bin' + /usr/bin/mkdir -p '$PREFIX/bin' + /usr/bin/install -c shorah '$PREFIX/bin' + /usr/bin/mkdir -p '$PREFIX/share/shorah/amplicon_test' + /usr/bin/install -c -m 644 examples/amplicon_test/README.md examples/amplicon_test/ampli_sorted.bam examples/amplicon_test/amplicon_reads.fastq examples/amplicon_test/reference.fasta examples/amplicon_test/amplicon_test '$PREFIX/share/shorah/amplicon_test' + /usr/bin/mkdir -p '$PREFIX/share/shorah' + /usr/bin/install -c -m 644 examples/ref_genome.fasta examples/sample_454.fasta '$PREFIX/share/shorah' + /usr/bin/mkdir -p '$PREFIX/lib/python3.12/site-packages/shorah' + /usr/bin/install -c -m 644 src/shorah/__main__.py src/shorah/amplicon.py src/shorah/cli.py src/shorah/shorah_snv.py src/shorah/shotgun.py '$PREFIX/lib/python3.12/site-packages/shorah' + Traceback (most recent call last): + File "", line 2, in + ModuleNotFoundError: No module named 'imp' + make[2]: *** [Makefile:875: install-dist_pkgpythonPYTHON] Error 1 + make[2]: Leaving directory '$SRC_DIR' + make[1]: *** [Makefile:1437: install-am] Error 2 + make[1]: Leaving directory '$SRC_DIR' + make: *** [Makefile:1431: install] Error 2 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/shorah_1717849579459/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/shorah/1.99.2/build_failure.osx-64.yaml b/recipes/shorah/1.99.2/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..2fe66487ee14c --- /dev/null +++ b/recipes/shorah/1.99.2/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 9ff3f4ed803104fba80ee257c50c5b914effee7ad14c21a5729c55febbdfdeba # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/shorah-1.99.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + checking whether configure should try to set CXXFLAGS/CPPFLAGS/LDFLAGS... no + checking whether to enable debugging... no + checking build system type... x86_64-apple-darwin13.4.0 + checking host system type... x86_64-apple-darwin13.4.0 + checking for a sed that does not truncate output... /usr/bin/sed + checking whether the C compiler works... yes + checking for C compiler default output file name... a.out + checking for suffix of executables... + checking whether we are cross compiling... no + checking for suffix of object files... o + checking whether we are using the GNU C compiler... yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes + checking for x86_64-apple-darwin13.4.0-ranlib... x86_64-apple-darwin13.4.0-ranlib + checking for x86_64-apple-darwin13.4.0-gcc... x86_64-apple-darwin13.4.0-clang + checking whether we are using the GNU C compiler... yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes + checking for x86_64-apple-darwin13.4.0-clang option to accept ISO C89... none needed + checking whether x86_64-apple-darwin13.4.0-clang understands -c and -o together... yes + checking for x86_64-apple-darwin13.4.0-ar... x86_64-apple-darwin13.4.0-ar + checking the archiver (x86_64-apple-darwin13.4.0-ar) interface... ar + checking for C compiler vendor... clang + checking for C compiler version... 16.0.6 + checking how to run the C preprocessor... x86_64-apple-darwin13.4.0-clang -E + checking for grep that handles long lines and -e... /usr/bin/grep + checking for egrep... /usr/bin/grep -E + checking whether x86_64-apple-darwin13.4.0-clang is Clang... yes + checking whether Clang needs flag to prevent "argument unused" warning when linking with -pthread... no + checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE + checking whether more special flags are required for pthreads... no + checking for PTHREAD_PRIO_INHERIT... yes + checking whether C compiler accepts -mpopcnt... yes + checking whether configure can enable POPCNT for Hamming distances... yes + checking whether x86_64-apple-darwin13.4.0-clang supports C11 features by default... yes + checking for x86_64-apple-darwin13.4.0-pkg-config... $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-pkg-config + checking pkg-config is at least version 0.9.0... yes + checking for ZLIB... yes + checking for HTSLIB... yes + checking for boostlib >= 1.56 (105600)... yes + checking for a BSD-compatible install... /usr/bin/install -c + checking whether build environment is sane... yes + checking for a thread-safe mkdir -p... ./install-sh -c -d + checking for gawk... no + checking for mawk... no + checking for nawk... no + checking for awk... awk + checking whether make sets $(MAKE)... yes + checking whether make supports the include directive... yes (GNU style) + checking whether make supports nested variables... yes + checking dependency style of x86_64-apple-darwin13.4.0-clang... gcc3 + checking dependency style of x86_64-apple-darwin13.4.0-clang... gcc3 + checking whether make supports nested variables... (cached) yes + checking whether $PREFIX/bin/python version is >= 3.5... yes + checking for $PREFIX/bin/python version... 3.1 + checking for $PREFIX/bin/python platform... darwin + checking for $PREFIX/bin/python script directory... ${prefix}/lib/python3.12/site-packages + checking for $PREFIX/bin/python extension module directory... ${exec_prefix}/lib/python3.12/site-packages + checking that generated files are newer than configure... done + configure: creating ./config.status + config.status: creating Makefile + config.status: executing depfiles commands + + shorah 1.99.2 + + CXX : ..................... x86_64-apple-darwin13.4.0-clang (, ) + CXXFLAGS : ................ -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/shorah-1.99.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -mpopcnt + + CPPFLAGS : ................ -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + LDFLAGS : ................. -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + + Boost_CPPFLAGS : .......... + + HTSlib_CFLAGS : ........... -I$PREFIX/include + HTSlib_LIBS : ............. -L$PREFIX/lib -lhts + + PYTHON : .................. $PREFIX/bin/python + Python version : .......... 3.1 + + make install-am + make[1]: Entering directory '$SRC_DIR' + CXX src/cpp/diri_sampler-dpm_sampler.o + CXXLD diri_sampler + CXX src/cpp/b2w-b2w.o + CXXLD b2w + CXX src/cpp/fil-fil.o + CXXLD fil + /usr/bin/sed 's,#!/usr/bin/env python3,#!/usr/bin/env $PREFIX/bin/python,g' ./src/shorah/__main__.py > shorah + make[2]: Entering directory '$SRC_DIR' + ./install-sh -c -d '$PREFIX/bin' + /usr/bin/install -c diri_sampler b2w fil '$PREFIX/bin' + ./install-sh -c -d '$PREFIX/bin' + /usr/bin/install -c shorah '$PREFIX/bin' + ./install-sh -c -d '$PREFIX/share/shorah/amplicon_test' + /usr/bin/install -c -m 644 examples/amplicon_test/README.md examples/amplicon_test/ampli_sorted.bam examples/amplicon_test/amplicon_reads.fastq examples/amplicon_test/reference.fasta examples/amplicon_test/amplicon_test '$PREFIX/share/shorah/amplicon_test' + ./install-sh -c -d '$PREFIX/share/shorah' + /usr/bin/install -c -m 644 examples/ref_genome.fasta examples/sample_454.fasta '$PREFIX/share/shorah' + ./install-sh -c -d '$PREFIX/lib/python3.12/site-packages/shorah' + /usr/bin/install -c -m 644 src/shorah/__main__.py src/shorah/amplicon.py src/shorah/cli.py src/shorah/shorah_snv.py src/shorah/shotgun.py '$PREFIX/lib/python3.12/site-packages/shorah' + make[2]: Leaving directory '$SRC_DIR' + make[1]: Leaving directory '$SRC_DIR' +# Last 100 lines of the build log. diff --git a/recipes/shorah/1.99.2/meta.yaml b/recipes/shorah/1.99.2/meta.yaml index 856fbc4a70643..f530a45f0f8f4 100644 --- a/recipes/shorah/1.99.2/meta.yaml +++ b/recipes/shorah/1.99.2/meta.yaml @@ -12,7 +12,7 @@ source: build: skip: True # [py27] - number: 8 + number: 9 script: - ./configure --prefix="${PREFIX}" PYTHON="${PYTHON}" PKG_CONFIG_PATH=${PREFIX}/lib/pkgconfig - make install diff --git a/recipes/shortseq/build_failure.linux-64.yaml b/recipes/shortseq/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..3d3e334958edc --- /dev/null +++ b/recipes/shortseq/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: e75d137d9f1696aec2555e59599a4e8fa0cf1179788cbc9def01e522fbd3a35f # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + + environment location: /opt/conda/conda-bld/shortseq_1717533826680/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac + + + The following NEW packages will be INSTALLED: + + _libgcc_mutex: 0.1-conda_forge conda-forge + _openmp_mutex: 4.5-2_gnu conda-forge + bzip2: 1.0.8-hd590300_5 conda-forge + ca-certificates: 2024.6.2-hbcca054_0 conda-forge + cython: 3.0.10-py310hc6cd4ac_0 conda-forge + ld_impl_linux-64: 2.40-hf3520f5_2 conda-forge + libblas: 3.9.0-22_linux64_openblas conda-forge + libcblas: 3.9.0-22_linux64_openblas conda-forge + libffi: 3.4.2-h7f98852_5 conda-forge + libgcc-ng: 13.2.0-h77fa898_7 conda-forge + libgfortran-ng: 13.2.0-h69a702a_7 conda-forge + libgfortran5: 13.2.0-hca663fb_7 conda-forge + libgomp: 13.2.0-h77fa898_7 conda-forge + liblapack: 3.9.0-22_linux64_openblas conda-forge + libnsl: 2.0.1-hd590300_0 conda-forge + libopenblas: 0.3.27-pthreads_h413a1c8_0 conda-forge + libsqlite: 3.45.3-h2797004_0 conda-forge + libstdcxx-ng: 13.2.0-hc0a3c3a_7 conda-forge + libuuid: 2.38.1-h0b41bf4_0 conda-forge + libxcrypt: 4.4.36-hd590300_1 conda-forge + libzlib: 1.3.1-h4ab18f5_1 conda-forge + ncurses: 6.5-h59595ed_0 conda-forge + numpy: 1.22.4-py310h4ef5377_0 conda-forge + openssl: 3.3.0-h4ab18f5_3 conda-forge + pip: 24.0-pyhd8ed1ab_0 conda-forge + python: 3.10.14-hd12c33a_0_cpython conda-forge + python_abi: 3.10-4_cp310 conda-forge + readline: 8.2-h8228510_1 conda-forge + setuptools: 70.0.0-pyhd8ed1ab_0 conda-forge + tk: 8.6.13-noxft_h4845f30_101 conda-forge + tzdata: 2024a-h0c530f3_0 conda-forge + wheel: 0.43.0-pyhd8ed1ab_1 conda-forge + xz: 5.2.6-h166bdaf_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Reloading output folder (file:///opt/host-conda-bld): ...working... done + Solving environment (_build_env): ...working... done + Reloading output folder (file:///opt/host-conda-bld): ...working... done + Solving environment (_test_env): ...working... done + + ## Package Plan ## + + environment location: /opt/conda/conda-bld/shortseq_1717533826680/_build_env + + + The following NEW packages will be INSTALLED: + + _libgcc_mutex: 0.1-conda_forge conda-forge + _openmp_mutex: 4.5-2_gnu conda-forge + binutils_impl_linux-64: 2.40-ha1999f0_2 conda-forge + binutils_linux-64: 2.40-hdade7a5_3 conda-forge + gcc_impl_linux-64: 12.3.0-h58ffeeb_7 conda-forge + gcc_linux-64: 12.3.0-h6477408_3 conda-forge + gxx_impl_linux-64: 12.3.0-h2a574ab_7 conda-forge + gxx_linux-64: 12.3.0-h4a1b8e8_3 conda-forge + kernel-headers_linux-64: 2.6.32-he073ed8_17 conda-forge + ld_impl_linux-64: 2.40-hf3520f5_2 conda-forge + libgcc-devel_linux-64: 12.3.0-h0223996_107 conda-forge + libgcc-ng: 13.2.0-h77fa898_7 conda-forge + libgomp: 13.2.0-h77fa898_7 conda-forge + libsanitizer: 12.3.0-hb8811af_7 conda-forge + libstdcxx-devel_linux-64: 12.3.0-h0223996_107 conda-forge + libstdcxx-ng: 13.2.0-hc0a3c3a_7 conda-forge + sysroot_linux-64: 2.12-he073ed8_17 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Source cache directory is: /opt/conda/conda-bld/src_cache + Downloading source to cache: 0.0.1_99fa125603.tar.gz + Downloading https://github.com/AlexTate/ShortSeq/archive/0.0.1.tar.gz + Success + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2419, in build + try_download(m, no_download_source=False, raise_error=True) + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 762, in try_download + source.provide(metadata) + File "/opt/conda/lib/python3.10/site-packages/conda_build/source.py", line 1035, in provide + unpack( + File "/opt/conda/lib/python3.10/site-packages/conda_build/source.py", line 169, in unpack + src_path, unhashed_fn = download_to_cache( + File "/opt/conda/lib/python3.10/site-packages/conda_build/source.py", line 125, in download_to_cache + raise RuntimeError( + RuntimeError: SHA256 mismatch: 'fe29c789b987d300500bc23dc4f7264a904a15d66feb54cfe7986712dfcdc13c' != '99fa125603dbf5f55d80c0e42430e6a79b535ec40de51905b4b4117897022dd4' +# Last 100 lines of the build log. diff --git a/recipes/shortseq/build_failure.osx-64.yaml b/recipes/shortseq/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..c269904655899 --- /dev/null +++ b/recipes/shortseq/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: e75d137d9f1696aec2555e59599a4e8fa0cf1179788cbc9def01e522fbd3a35f # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + ## Package Plan ## + + environment location: /opt/mambaforge/envs/bioconda/conda-bld/shortseq_1717521784067/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place + + + The following NEW packages will be INSTALLED: + + bzip2: 1.0.8-h10d778d_5 conda-forge + ca-certificates: 2024.6.2-h8857fd0_0 conda-forge + cython: 3.0.10-py310h5daac23_0 conda-forge + libblas: 3.9.0-22_osx64_openblas conda-forge + libcblas: 3.9.0-22_osx64_openblas conda-forge + libcxx: 17.0.6-h88467a6_0 conda-forge + libffi: 3.4.2-h0d85af4_5 conda-forge + libgfortran: 5.0.0-13_2_0_h97931a8_3 conda-forge + libgfortran5: 13.2.0-h2873a65_3 conda-forge + liblapack: 3.9.0-22_osx64_openblas conda-forge + libopenblas: 0.3.27-openmp_hfef2a42_0 conda-forge + libsqlite: 3.45.3-h92b6c6a_0 conda-forge + libzlib: 1.3.1-h87427d6_1 conda-forge + llvm-openmp: 18.1.6-h15ab845_0 conda-forge + ncurses: 6.5-h5846eda_0 conda-forge + numpy: 1.22.4-py310hed37afb_0 conda-forge + openssl: 3.3.0-h87427d6_3 conda-forge + python: 3.10.14-h00d2728_0_cpython conda-forge + python_abi: 3.10-4_cp310 conda-forge + readline: 8.2-h9e318b2_1 conda-forge + setuptools: 70.0.0-pyhd8ed1ab_0 conda-forge + tk: 8.6.13-h1abcd95_1 conda-forge + tzdata: 2024a-h0c530f3_0 conda-forge + xz: 5.2.6-h775f41a_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Reloading output folder (local): ...working... done + Solving environment (_build_env): ...working... done + Reloading output folder (local): ...working... done + Solving environment (_test_env): ...working... done + + ## Package Plan ## + + environment location: /opt/mambaforge/envs/bioconda/conda-bld/shortseq_1717521784067/_build_env + + + The following NEW packages will be INSTALLED: + + ca-certificates: 2024.6.2-h8857fd0_0 conda-forge + cctools_osx-64: 986-ha1c5b94_0 conda-forge + clang: 16.0.6-hd4457cd_7 conda-forge + clang-16: 16.0.6-default_h4c8afb6_7 conda-forge + clang_impl_osx-64: 16.0.6-h8787910_15 conda-forge + clang_osx-64: 16.0.6-hb91bd55_15 conda-forge + clangxx: 16.0.6-default_ha3b9224_7 conda-forge + clangxx_impl_osx-64: 16.0.6-h6d92fbe_15 conda-forge + clangxx_osx-64: 16.0.6-hb91bd55_15 conda-forge + compiler-rt: 16.0.6-ha38d28d_2 conda-forge + compiler-rt_osx-64: 16.0.6-ha38d28d_2 conda-forge + icu: 73.2-hf5e326d_0 conda-forge + ld64_osx-64: 711-ha20a434_0 conda-forge + libclang-cpp16: 16.0.6-default_h4c8afb6_7 conda-forge + libcxx: 17.0.6-h88467a6_0 conda-forge + libiconv: 1.17-hd75f5a5_2 conda-forge + libllvm16: 16.0.6-hbedff68_3 conda-forge + libxml2: 2.12.7-hfa5d230_0 conda-forge + libzlib: 1.3.1-h87427d6_1 conda-forge + llvm-tools: 16.0.6-hbedff68_3 conda-forge + openssl: 3.3.0-h87427d6_3 conda-forge + sigtool: 0.1.3-h88f4db0_0 conda-forge + tapi: 1100.0.11-h9ce4665_0 conda-forge + xz: 5.2.6-h775f41a_0 conda-forge + zstd: 1.5.6-h915ae27_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache + Downloading source to cache: 0.0.1_99fa125603.tar.gz + Downloading https://github.com/AlexTate/ShortSeq/archive/0.0.1.tar.gz + Success + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2419, in build + try_download(m, no_download_source=False, raise_error=True) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 762, in try_download + source.provide(metadata) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/source.py", line 1035, in provide + unpack( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/source.py", line 169, in unpack + src_path, unhashed_fn = download_to_cache( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/source.py", line 125, in download_to_cache + raise RuntimeError( + RuntimeError: SHA256 mismatch: 'fe29c789b987d300500bc23dc4f7264a904a15d66feb54cfe7986712dfcdc13c' != '99fa125603dbf5f55d80c0e42430e6a79b535ec40de51905b4b4117897022dd4' +# Last 100 lines of the build log. diff --git a/recipes/shortseq/meta.yaml b/recipes/shortseq/meta.yaml index 5a2f1a7355ad6..23ce623d83a09 100644 --- a/recipes/shortseq/meta.yaml +++ b/recipes/shortseq/meta.yaml @@ -11,7 +11,7 @@ source: build: skip: True # [not unix] - number: 0 + number: 1 script: "{{ PYTHON }} -m pip install . -vv" run_exports: - {{ pin_subpackage('shortseq', max_pin="x.x") }} diff --git a/recipes/sicer2/build_failure.linux-64.yaml b/recipes/sicer2/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..3a92aead35dcd --- /dev/null +++ b/recipes/sicer2/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 3a8e0c339a3fa2d10aab65a73f2169a9b2f103eecf53e48e7e22776ed11be020 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + Processing $SRC_DIR + Preparing metadata (setup.py): started + Preparing metadata (setup.py): finished with status 'done' + Building wheels for collected packages: SICER2 + Building wheel for SICER2 (setup.py): started + Building wheel for SICER2 (setup.py): finished with status 'error' + [1;31merror[0m: [1msubprocess-exited-with-error[0m + + [31m[0m [32mpython setup.py bdist_wheel[0m did not run successfully. + [31m[0m exit code: [1;36m1[0m + [31m>[0m [31m[55 lines of output][0m + [31m [0m /opt/conda/conda-bld/sicer2_1717606269799/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.11/site-packages/setuptools/__init__.py:80: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated. + [31m [0m !! + [31m [0m + [31m [0m ******************************************************************************** + [31m [0m Requirements should be satisfied by a PEP 517 installer. + [31m [0m If you are using pip, you can try pip install --use-pep517. + [31m [0m ******************************************************************************** + [31m [0m + [31m [0m !! + [31m [0m dist.fetch_build_eggs(dist.setup_requires) + [31m [0m running bdist_wheel + [31m [0m running build + [31m [0m running build_py + [31m [0m creating build + [31m [0m creating build/lib.linux-x86_64-cpython-311 + [31m [0m creating build/lib.linux-x86_64-cpython-311/sicer + [31m [0m copying sicer/__init__.py -> build/lib.linux-x86_64-cpython-311/sicer + [31m [0m creating build/lib.linux-x86_64-cpython-311/sicer/lib + [31m [0m copying sicer/lib/__init__.py -> build/lib.linux-x86_64-cpython-311/sicer/lib + [31m [0m copying sicer/lib/Background_island_probscore_statistics.py -> build/lib.linux-x86_64-cpython-311/sicer/lib + [31m [0m copying sicer/lib/GenomeData.py -> build/lib.linux-x86_64-cpython-311/sicer/lib + [31m [0m copying sicer/lib/Utility.py -> build/lib.linux-x86_64-cpython-311/sicer/lib + [31m [0m copying sicer/lib/associate_tags_with_regions.py -> build/lib.linux-x86_64-cpython-311/sicer/lib + [31m [0m creating build/lib.linux-x86_64-cpython-311/sicer/utility + [31m [0m copying sicer/utility/__init__.py -> build/lib.linux-x86_64-cpython-311/sicer/utility + [31m [0m copying sicer/utility/calculate_cross_correlation_long_range.py -> build/lib.linux-x86_64-cpython-311/sicer/utility + [31m [0m copying sicer/utility/make_graph_file.py -> build/lib.linux-x86_64-cpython-311/sicer/utility + [31m [0m creating build/lib.linux-x86_64-cpython-311/sicer/src + [31m [0m copying sicer/src/compare_two_libraries_on_islands.py -> build/lib.linux-x86_64-cpython-311/sicer/src + [31m [0m copying sicer/src/filter_raw_tags_by_islands.py -> build/lib.linux-x86_64-cpython-311/sicer/src + [31m [0m copying sicer/src/__init__.py -> build/lib.linux-x86_64-cpython-311/sicer/src + [31m [0m copying sicer/src/find_islands_in_pr.py -> build/lib.linux-x86_64-cpython-311/sicer/src + [31m [0m copying sicer/src/find_union_islands.py -> build/lib.linux-x86_64-cpython-311/sicer/src + [31m [0m copying sicer/src/filter_islands_by_significance.py -> build/lib.linux-x86_64-cpython-311/sicer/src + [31m [0m copying sicer/src/remove_redundant_reads.py -> build/lib.linux-x86_64-cpython-311/sicer/src + [31m [0m copying sicer/src/make_normalized_wig.py -> build/lib.linux-x86_64-cpython-311/sicer/src + [31m [0m copying sicer/src/associate_tags_with_chip_and_control_w_fc_q.py -> build/lib.linux-x86_64-cpython-311/sicer/src + [31m [0m copying sicer/src/run_make_graph_file_by_chrom.py -> build/lib.linux-x86_64-cpython-311/sicer/src + [31m [0m creating build/lib.linux-x86_64-cpython-311/sicer/main + [31m [0m copying sicer/main/__init__.py -> build/lib.linux-x86_64-cpython-311/sicer/main + [31m [0m copying sicer/main/run_SICER.py -> build/lib.linux-x86_64-cpython-311/sicer/main + [31m [0m copying sicer/main/run_RECOGNICER_df.py -> build/lib.linux-x86_64-cpython-311/sicer/main + [31m [0m copying sicer/main/run_SICER_df.py -> build/lib.linux-x86_64-cpython-311/sicer/main + [31m [0m copying sicer/main/run_RECOGNICER.py -> build/lib.linux-x86_64-cpython-311/sicer/main + [31m [0m running build_ext + [31m [0m building 'sicer.src.coarsegraining' extension + [31m [0m creating build/temp.linux-x86_64-cpython-311 + [31m [0m creating build/temp.linux-x86_64-cpython-311/sicer + [31m [0m creating build/temp.linux-x86_64-cpython-311/sicer/src + [31m [0m /opt/conda/conda-bld/sicer2_1717606269799/_build_env/bin/x86_64-conda-linux-gnu-cc -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/conda/conda-bld/sicer2_1717606269799/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include -fPIC -O2 -isystem /opt/conda/conda-bld/sicer2_1717606269799/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /opt/conda/conda-bld/sicer2_1717606269799/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include -fdebug-prefix-map=/opt/conda/conda-bld/sicer2_1717606269799/work=/usr/local/src/conda/sicer2-1.0.3 -fdebug-prefix-map=/opt/conda/conda-bld/sicer2_1717606269799/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh=/usr/local/src/conda-prefix -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/conda-bld/sicer2_1717606269799/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include -fPIC -I/opt/conda/conda-bld/sicer2_1717606269799/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include/python3.11 -c sicer/src/coarsegraining.c -o build/temp.linux-x86_64-cpython-311/sicer/src/coarsegraining.o -w -O3 -ffast-math + [31m [0m sicer/src/coarsegraining.c:196:12: fatal error: longintrepr.h: No such file or directory + [31m [0m 196 | #include "longintrepr.h" + [31m [0m | ^~~~~~~~~~~~~~~ + [31m [0m compilation terminated. + [31m [0m error: command '/opt/conda/conda-bld/sicer2_1717606269799/_build_env/bin/x86_64-conda-linux-gnu-cc' failed with exit code 1 + [31m [0m [31m[end of output][0m + + [1;35mnote[0m: This error originates from a subprocess, and is likely not a problem with pip. + [31m ERROR: Failed building wheel for SICER2[0m[31m + [0m Running setup.py clean for SICER2 + [31mERROR: Could not build wheels for SICER2, which is required to install pyproject.toml-based projects[0m[31m + [0mFailed to build SICER2 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/sicer2_1717606269799/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/sicer2/build_failure.osx-64.yaml b/recipes/sicer2/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..1e4ba17c0f9cb --- /dev/null +++ b/recipes/sicer2/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 3a8e0c339a3fa2d10aab65a73f2169a9b2f103eecf53e48e7e22776ed11be020 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + copying sicer/utility/__init__.py -> build/lib.macosx-10.9-x86_64-cpython-312/sicer/utility + copying sicer/utility/calculate_cross_correlation_long_range.py -> build/lib.macosx-10.9-x86_64-cpython-312/sicer/utility + creating build/lib.macosx-10.9-x86_64-cpython-312/sicer/src + copying sicer/src/find_union_islands.py -> build/lib.macosx-10.9-x86_64-cpython-312/sicer/src + copying sicer/src/filter_raw_tags_by_islands.py -> build/lib.macosx-10.9-x86_64-cpython-312/sicer/src + copying sicer/src/associate_tags_with_chip_and_control_w_fc_q.py -> build/lib.macosx-10.9-x86_64-cpython-312/sicer/src + copying sicer/src/make_normalized_wig.py -> build/lib.macosx-10.9-x86_64-cpython-312/sicer/src + copying sicer/src/__init__.py -> build/lib.macosx-10.9-x86_64-cpython-312/sicer/src + copying sicer/src/run_make_graph_file_by_chrom.py -> build/lib.macosx-10.9-x86_64-cpython-312/sicer/src + copying sicer/src/filter_islands_by_significance.py -> build/lib.macosx-10.9-x86_64-cpython-312/sicer/src + copying sicer/src/find_islands_in_pr.py -> build/lib.macosx-10.9-x86_64-cpython-312/sicer/src + copying sicer/src/remove_redundant_reads.py -> build/lib.macosx-10.9-x86_64-cpython-312/sicer/src + copying sicer/src/compare_two_libraries_on_islands.py -> build/lib.macosx-10.9-x86_64-cpython-312/sicer/src + running build_ext + building 'sicer.src.coarsegraining' extension + creating build/temp.macosx-10.9-x86_64-cpython-312 + creating build/temp.macosx-10.9-x86_64-cpython-312/sicer + creating build/temp.macosx-10.9-x86_64-cpython-312/sicer/src + x86_64-apple-darwin13.4.0-clang -fno-strict-overflow -DNDEBUG -O2 -Wall -fPIC -O2 -isystem /opt/mambaforge/envs/bioconda/conda-bld/sicer2_1717609011572/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -fPIC -O2 -isystem /opt/mambaforge/envs/bioconda/conda-bld/sicer2_1717609011572/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem /opt/mambaforge/envs/bioconda/conda-bld/sicer2_1717609011572/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -fdebug-prefix-map=/opt/mambaforge/envs/bioconda/conda-bld/sicer2_1717609011572/work=/usr/local/src/conda/sicer2-1.0.3 -fdebug-prefix-map=/opt/mambaforge/envs/bioconda/conda-bld/sicer2_1717609011572/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho=/usr/local/src/conda-prefix -D_FORTIFY_SOURCE=2 -isystem /opt/mambaforge/envs/bioconda/conda-bld/sicer2_1717609011572/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -mmacosx-version-min=10.9 -I/opt/mambaforge/envs/bioconda/conda-bld/sicer2_1717609011572/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/python3.12 -c sicer/src/coarsegraining.c -o build/temp.macosx-10.9-x86_64-cpython-312/sicer/src/coarsegraining.o -w -O3 -ffast-math + sicer/src/coarsegraining.c:196:12: fatal error: 'longintrepr.h' file not found + #include "longintrepr.h" + ^~~~~~~~~~~~~~~ + 1 error generated. + error: command '/opt/mambaforge/envs/bioconda/conda-bld/sicer2_1717609011572/_build_env/bin/x86_64-apple-darwin13.4.0-clang' failed with exit code 1 + [end of output] + + note: This error originates from a subprocess, and is likely not a problem with pip. + ERROR: Failed building wheel for SICER2 + ERROR: Could not build wheels for SICER2, which is required to install pyproject.toml-based projects + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/sicer2_1717609011572/work + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/sicer2_1717609011572/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/sicer2_1717609011572/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/sicer2_1717609011572/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sicer2-1.0.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/sicer2_1717609011572/work/conda_build.sh']' returned non-zero exit status 1. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sicer2-1.0.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + Processing $SRC_DIR + Preparing metadata (setup.py): started + Preparing metadata (setup.py): finished with status 'done' + Building wheels for collected packages: SICER2 + Building wheel for SICER2 (setup.py): started + Building wheel for SICER2 (setup.py): finished with status 'error' + Running setup.py clean for SICER2 + Failed to build SICER2 +# Last 100 lines of the build log. diff --git a/recipes/sicer2/meta.yaml b/recipes/sicer2/meta.yaml index 6866d26b209f7..ea0d8644568f5 100644 --- a/recipes/sicer2/meta.yaml +++ b/recipes/sicer2/meta.yaml @@ -10,8 +10,7 @@ source: sha256: 003e0f46fb45717fa6b1c94b2c21416161f5b3a4896fbb335cf2024daf2560dd build: - number: 3 - skip: True # [py2k] + number: 4 script: "{{ PYTHON }} -m pip install --ignore-installed --no-deps ." requirements: diff --git a/recipes/simba_pbg/meta.yaml b/recipes/simba_pbg/meta.yaml index 4d04ebb090412..7bcb5313f8ca2 100644 --- a/recipes/simba_pbg/meta.yaml +++ b/recipes/simba_pbg/meta.yaml @@ -10,7 +10,7 @@ source: sha256: df97d748956f3136ace4cd899bb4362b531e568e0ccbe90e5aad3e50666fb316 build: - number: 2 + number: 3 skip: True # [py2k] script: "{{ PYTHON }} -m pip install . --ignore-installed -vv" diff --git a/recipes/simlord/build_failure.linux-64.yaml b/recipes/simlord/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..8a04c7fb0a30f --- /dev/null +++ b/recipes/simlord/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 231643e4137f1ea54da1960fde70610dac7481c5b7d8fc0c478ccb3d3ca0c4b3 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("python=3.4"), MatchSpec("dinopy==1.2.0=py34_0")} + Encountered problems while solving: + - package dinopy-1.2.0-py34_0 requires python 3.4*, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + [32mdinopy[0m is installable with the potential options + [32mdinopy [1.2.0|1.2.1|2.0.0][0m would require + [32mpython 3.4* [0m, which can be installed; + [32mdinopy [1.2.0|1.2.1|2.0.0|2.0.1][0m would require + [32mpython [3.5* |>=3.5,<3.6.0a0 ][0m, which can be installed; + [32mdinopy 2.0.0[0m would require + [32mpython 3.6* [0m, which can be installed; + [32mdinopy [2.0.0|2.0.1|2.0.2|2.0.3][0m would require + [32mpython >=3.6,<3.7.0a0 [0m, which can be installed; + [32mdinopy [2.0.1|2.0.2|2.0.3][0m would require + [32mpython >=3.7,<3.8.0a0 [0m, which can be installed; + [32mdinopy [2.1.0|2.2.0|2.2.1][0m would require + [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; + [32mdinopy [2.1.0|2.2.0|2.2.1][0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mdinopy [2.2.0|2.2.1|3.0.0][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mdinopy [2.2.0|2.2.1|3.0.0][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mdinopy [2.2.1|3.0.0][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [31mpython_abi 3.12.* *_cp312[0m is not installable because it requires + [31mpython 3.12.* *_cpython[0m, which conflicts with any installable versions previously reported. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build + create_build_envs(top_level_pkg, notest) + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs + raise e + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs + environ.get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("python=3.4"), MatchSpec("dinopy==1.2.0=py34_0")} + Encountered problems while solving: + - package dinopy-1.2.0-py34_0 requires python 3.4*, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + [32mdinopy[0m is installable with the potential options + [32mdinopy [1.2.0|1.2.1|2.0.0][0m would require + [32mpython 3.4* [0m, which can be installed; + [32mdinopy [1.2.0|1.2.1|2.0.0|2.0.1][0m would require + [32mpython [3.5* |>=3.5,<3.6.0a0 ][0m, which can be installed; + [32mdinopy 2.0.0[0m would require + [32mpython 3.6* [0m, which can be installed; + [32mdinopy [2.0.0|2.0.1|2.0.2|2.0.3][0m would require + [32mpython >=3.6,<3.7.0a0 [0m, which can be installed; + [32mdinopy [2.0.1|2.0.2|2.0.3][0m would require + [32mpython >=3.7,<3.8.0a0 [0m, which can be installed; + [32mdinopy [2.1.0|2.2.0|2.2.1][0m would require + [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; + [32mdinopy [2.1.0|2.2.0|2.2.1][0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mdinopy [2.2.0|2.2.1|3.0.0][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mdinopy [2.2.0|2.2.1|3.0.0][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mdinopy [2.2.1|3.0.0][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [31mpython_abi 3.12.* *_cp312[0m is not installable because it requires + [31mpython 3.12.* *_cpython[0m, which conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/simlord/build_failure.osx-64.yaml b/recipes/simlord/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..3352a290b2588 --- /dev/null +++ b/recipes/simlord/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 231643e4137f1ea54da1960fde70610dac7481c5b7d8fc0c478ccb3d3ca0c4b3 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("dinopy==1.2.0=py34_0"), MatchSpec("python=3.4")} + Encountered problems while solving: + - package dinopy-1.2.0-py34_0 requires python 3.4*, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + dinopy is installable with the potential options + dinopy [1.2.0|1.2.1|2.0.0] would require + python 3.4* , which can be installed; + dinopy [1.2.0|1.2.1|2.0.0|2.0.1] would require + python [3.5* |>=3.5,<3.6.0a0 ], which can be installed; + dinopy 2.0.0 would require + python 3.6* , which can be installed; + dinopy [2.0.0|2.0.1|2.0.2|2.0.3] would require + python >=3.6,<3.7.0a0 , which can be installed; + dinopy [2.0.1|2.0.2|2.0.3] would require + python >=3.7,<3.8.0a0 , which can be installed; + dinopy [2.1.0|2.2.0|2.2.1] would require + python_abi 3.6.* *_cp36m, which can be installed; + dinopy [2.1.0|2.2.0|2.2.1] would require + python_abi 3.7.* *_cp37m, which can be installed; + dinopy [2.2.0|2.2.1|3.0.0] would require + python_abi 3.8.* *_cp38, which can be installed; + dinopy [2.2.0|2.2.1|3.0.0] would require + python_abi 3.9.* *_cp39, which can be installed; + dinopy [2.2.1|3.0.0] would require + python_abi 3.10.* *_cp310, which can be installed; + python >=3.11,<3.12.0a0 is not installable because it requires + python_abi 3.11.* *_cp311, which conflicts with any installable versions previously reported. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build + create_build_envs(top_level_pkg, notest) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs + raise e + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs + environ.get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("dinopy==1.2.0=py34_0"), MatchSpec("python=3.4")} + Encountered problems while solving: + - package dinopy-1.2.0-py34_0 requires python 3.4*, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + dinopy is installable with the potential options + dinopy [1.2.0|1.2.1|2.0.0] would require + python 3.4* , which can be installed; + dinopy [1.2.0|1.2.1|2.0.0|2.0.1] would require + python [3.5* |>=3.5,<3.6.0a0 ], which can be installed; + dinopy 2.0.0 would require + python 3.6* , which can be installed; + dinopy [2.0.0|2.0.1|2.0.2|2.0.3] would require + python >=3.6,<3.7.0a0 , which can be installed; + dinopy [2.0.1|2.0.2|2.0.3] would require + python >=3.7,<3.8.0a0 , which can be installed; + dinopy [2.1.0|2.2.0|2.2.1] would require + python_abi 3.6.* *_cp36m, which can be installed; + dinopy [2.1.0|2.2.0|2.2.1] would require + python_abi 3.7.* *_cp37m, which can be installed; + dinopy [2.2.0|2.2.1|3.0.0] would require + python_abi 3.8.* *_cp38, which can be installed; + dinopy [2.2.0|2.2.1|3.0.0] would require + python_abi 3.9.* *_cp39, which can be installed; + dinopy [2.2.1|3.0.0] would require + python_abi 3.10.* *_cp310, which can be installed; + python >=3.11,<3.12.0a0 is not installable because it requires + python_abi 3.11.* *_cp311, which conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/simlord/meta.yaml b/recipes/simlord/meta.yaml index e5e642ac5c1dd..1da662c285efb 100644 --- a/recipes/simlord/meta.yaml +++ b/recipes/simlord/meta.yaml @@ -7,7 +7,7 @@ source: sha256: 8f3f018da10b91ad865c602eb3926513dcdbfd3b0108f5d5006aee4bca4a74b6 build: - number: 3 + number: 4 skip: True # [py2k] script: {{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv entry_points: diff --git a/recipes/ska2/meta.yaml b/recipes/ska2/meta.yaml index 99e4a3aa8967f..715c5a72cae5e 100644 --- a/recipes/ska2/meta.yaml +++ b/recipes/ska2/meta.yaml @@ -10,7 +10,7 @@ source: sha256: ea7234428f253638b2093abdd6c8b1e8362ecad0ba56e3b29700af9a4481d911 build: - number: 1 + number: 2 script: "cargo install --no-track --locked --verbose --root \"${PREFIX}\" --path ." run_exports: - {{ pin_subpackage("ska2", max_pin="x.x") }} diff --git a/recipes/skder/build_failure.linux-64.yaml b/recipes/skder/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..44fff03789b11 --- /dev/null +++ b/recipes/skder/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 71e743ddb5fe1ba445d3bdee7c0844e6b0aedce09ddb9a2008891a7ba50c254f # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("python_abi=3.10[build=*_cp310]"), MatchSpec("biopython==1.79=py310h5764c6d_2")} + Encountered problems while solving: + - package biopython-1.79-py310h5764c6d_2 requires python_abi 3.10.* *_cp310, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + [32mbiopython 1.79.* [0m is installable with the potential options + [32mbiopython 1.79[0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32mbiopython 1.79[0m would require + [32mpython_abi 3.11.* *_cp311[0m, which can be installed; + [32mbiopython 1.79[0m would require + [32mpython_abi 3.6 *_pypy36_pp73[0m, which can be installed; + [32mbiopython 1.79[0m would require + [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; + [32mbiopython 1.79[0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mbiopython 1.79[0m would require + [32mpython_abi 3.7 *_pypy37_pp73[0m, which can be installed; + [32mbiopython 1.79[0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mbiopython 1.79[0m would require + [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; + [32mbiopython 1.79[0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mbiopython 1.79[0m would require + [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; + [31mpython_abi 3.12.* *_cp312[0m is not installable because it conflicts with any installable versions previously reported. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build + create_build_envs(top_level_pkg, notest) + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs + raise e + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs + environ.get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("python_abi=3.10[build=*_cp310]"), MatchSpec("biopython==1.79=py310h5764c6d_2")} + Encountered problems while solving: + - package biopython-1.79-py310h5764c6d_2 requires python_abi 3.10.* *_cp310, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + [32mbiopython 1.79.* [0m is installable with the potential options + [32mbiopython 1.79[0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32mbiopython 1.79[0m would require + [32mpython_abi 3.11.* *_cp311[0m, which can be installed; + [32mbiopython 1.79[0m would require + [32mpython_abi 3.6 *_pypy36_pp73[0m, which can be installed; + [32mbiopython 1.79[0m would require + [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; + [32mbiopython 1.79[0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mbiopython 1.79[0m would require + [32mpython_abi 3.7 *_pypy37_pp73[0m, which can be installed; + [32mbiopython 1.79[0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mbiopython 1.79[0m would require + [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; + [32mbiopython 1.79[0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mbiopython 1.79[0m would require + [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; + [31mpython_abi 3.12.* *_cp312[0m is not installable because it conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/skder/build_failure.osx-64.yaml b/recipes/skder/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..02f0732422e62 --- /dev/null +++ b/recipes/skder/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 71e743ddb5fe1ba445d3bdee7c0844e6b0aedce09ddb9a2008891a7ba50c254f # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("biopython==1.79=py310h1961e1f_2"), MatchSpec("python_abi=3.10[build=*_cp310]")} + Encountered problems while solving: + - package biopython-1.79-py310h1961e1f_2 requires python_abi 3.10.* *_cp310, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + biopython 1.79.* is installable with the potential options + biopython 1.79 would require + python_abi 3.10.* *_cp310, which can be installed; + biopython 1.79 would require + python_abi 3.11.* *_cp311, which can be installed; + biopython 1.79 would require + python_abi 3.6 *_pypy36_pp73, which can be installed; + biopython 1.79 would require + python_abi 3.6.* *_cp36m, which can be installed; + biopython 1.79 would require + python_abi 3.7.* *_cp37m, which can be installed; + biopython 1.79 would require + python_abi 3.7 *_pypy37_pp73, which can be installed; + biopython 1.79 would require + python_abi 3.8 *_pypy38_pp73, which can be installed; + biopython 1.79 would require + python_abi 3.8.* *_cp38, which can be installed; + biopython 1.79 would require + python_abi 3.9 *_pypy39_pp73, which can be installed; + biopython 1.79 would require + python_abi 3.9.* *_cp39, which can be installed; + python_abi 3.12.* *_cp312 is not installable because it conflicts with any installable versions previously reported. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build + create_build_envs(top_level_pkg, notest) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs + raise e + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs + environ.get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("biopython==1.79=py310h1961e1f_2"), MatchSpec("python_abi=3.10[build=*_cp310]")} + Encountered problems while solving: + - package biopython-1.79-py310h1961e1f_2 requires python_abi 3.10.* *_cp310, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + biopython 1.79.* is installable with the potential options + biopython 1.79 would require + python_abi 3.10.* *_cp310, which can be installed; + biopython 1.79 would require + python_abi 3.11.* *_cp311, which can be installed; + biopython 1.79 would require + python_abi 3.6 *_pypy36_pp73, which can be installed; + biopython 1.79 would require + python_abi 3.6.* *_cp36m, which can be installed; + biopython 1.79 would require + python_abi 3.7.* *_cp37m, which can be installed; + biopython 1.79 would require + python_abi 3.7 *_pypy37_pp73, which can be installed; + biopython 1.79 would require + python_abi 3.8 *_pypy38_pp73, which can be installed; + biopython 1.79 would require + python_abi 3.8.* *_cp38, which can be installed; + biopython 1.79 would require + python_abi 3.9 *_pypy39_pp73, which can be installed; + biopython 1.79 would require + python_abi 3.9.* *_cp39, which can be installed; + python_abi 3.12.* *_cp312 is not installable because it conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/skder/meta.yaml b/recipes/skder/meta.yaml index e82bf3f6e0c97..e553cf16cdd95 100644 --- a/recipes/skder/meta.yaml +++ b/recipes/skder/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 486b717bca65c0efe89c9108305fe93bbf3cd4562508a6db8a3ed440de3db71c build: - number: 0 + number: 1 skip: True # [py <= 39] run_exports: - {{ pin_subpackage('skder', max_pin='x.x') }} diff --git a/recipes/slow5tools/0.2.0/meta.yaml b/recipes/slow5tools/0.2.0/meta.yaml index 7b3a0eec27f0e..6c86c96fa8d03 100644 --- a/recipes/slow5tools/0.2.0/meta.yaml +++ b/recipes/slow5tools/0.2.0/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 47c890e2742576dc1cd5fad9fd7acdcfcbab8264c0dca4b3626877a8dc021b27 build: - number: 5 + number: 6 requirements: build: diff --git a/recipes/slow5tools/0.7.0/meta.yaml b/recipes/slow5tools/0.7.0/meta.yaml index 90d35ac58c6df..e114983f4d5f8 100644 --- a/recipes/slow5tools/0.7.0/meta.yaml +++ b/recipes/slow5tools/0.7.0/meta.yaml @@ -10,7 +10,7 @@ source: sha256: a38ea6e0e1c647b6d2b333d15201d9ce5932dda52ec87537e6d982ba1bfbb595 build: - number: 2 + number: 3 requirements: build: diff --git a/recipes/slow5tools/0.8.0/meta.yaml b/recipes/slow5tools/0.8.0/meta.yaml index 2c7add15449ee..57f5e074df82d 100644 --- a/recipes/slow5tools/0.8.0/meta.yaml +++ b/recipes/slow5tools/0.8.0/meta.yaml @@ -10,7 +10,7 @@ source: sha256: f0f6bfdd8bcc633ae0ccd4e61e6d847579882be8bfd6488d1ffdba9d7db794f6 build: - number: 2 + number: 3 requirements: build: diff --git a/recipes/slow5tools/0.9.0/meta.yaml b/recipes/slow5tools/0.9.0/meta.yaml index 12a7b060c17c3..64348d550afa5 100644 --- a/recipes/slow5tools/0.9.0/meta.yaml +++ b/recipes/slow5tools/0.9.0/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 9a9a4ab2e15fd2ea3275d6d08cfb5d46bdf073207e9430b41d80801cce0de8f6 build: - number: 2 + number: 3 requirements: build: diff --git a/recipes/slow5tools/1.0.0/meta.yaml b/recipes/slow5tools/1.0.0/meta.yaml index 157c7b5b7a8a4..2f375029f4c60 100644 --- a/recipes/slow5tools/1.0.0/meta.yaml +++ b/recipes/slow5tools/1.0.0/meta.yaml @@ -10,7 +10,7 @@ source: sha256: a1c188192adfe3ccea6eaa550716f7d784985377dc7dc1e210b2ed5c968fa6b1 build: - number: 2 + number: 3 requirements: build: diff --git a/recipes/slow5tools/meta.yaml b/recipes/slow5tools/meta.yaml index 2fdea0e8f865f..1418957dd049f 100644 --- a/recipes/slow5tools/meta.yaml +++ b/recipes/slow5tools/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 94b4a1917b80f212ab8d2442f414acb82e6a7c5db25087d89cbe99e4f910caef build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('slow5tools', max_pin="x") }} diff --git a/recipes/smaca/meta.yaml b/recipes/smaca/meta.yaml index b4c5932a8e538..71fa33ffc680f 100644 --- a/recipes/smaca/meta.yaml +++ b/recipes/smaca/meta.yaml @@ -11,8 +11,10 @@ source: sha256: 1a0750ef2c58aeb997806be2c5f5c6952d8c13f95b4f4fff880e184a4fab2d43 build: - number: 4 - skip: true # [py2k or osx] + number: 5 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} + skip: true # [osx] entry_points: - smaca = smaca.cli:main script: {{ PYTHON }} -m pip install . -vv diff --git a/recipes/smhasher/meta.yaml b/recipes/smhasher/meta.yaml index 1dedb92b9c732..8b307e9116885 100644 --- a/recipes/smhasher/meta.yaml +++ b/recipes/smhasher/meta.yaml @@ -3,7 +3,7 @@ package: version: "0.150.1" build: - number: 9 + number: 10 script: {{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv source: diff --git a/recipes/smncopynumbercaller/meta.yaml b/recipes/smncopynumbercaller/meta.yaml index 6772b8ae77340..49cbbbc4b0341 100644 --- a/recipes/smncopynumbercaller/meta.yaml +++ b/recipes/smncopynumbercaller/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 64bd674f6b466821bad1b9000610a8b78db9512c73a8a5382dd31aa1ab16b154 build: - number: 0 + number: 1 noarch: generic requirements: @@ -33,4 +33,4 @@ about: license: Apache License 2.0 license_file: LICENSE.txt copyright: https://github.com/Illumina/SMNCopyNumberCaller/blob/master/COPYRIGHT.txt - summary: Call copy number of SMN1, SMN2, and SMN2Δ7–8 from a BAM file. \ No newline at end of file + summary: Call copy number of SMN1, SMN2, and SMN2Δ7–8 from a BAM file. diff --git a/recipes/smudgeplot/meta.yaml b/recipes/smudgeplot/meta.yaml index 196115f367b4b..3def4859d4580 100644 --- a/recipes/smudgeplot/meta.yaml +++ b/recipes/smudgeplot/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 3 + number: 4 skip: True # [py2k] source: diff --git a/recipes/smudgeplot_rn/meta.yaml b/recipes/smudgeplot_rn/meta.yaml index dc3606a90d5d5..2f541a11ae8d8 100644 --- a/recipes/smudgeplot_rn/meta.yaml +++ b/recipes/smudgeplot_rn/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 5 + number: 6 source: url: https://github.com/RNieuwenhuis/smudgeplot/archive/v{{ version }}.tar.gz diff --git a/recipes/snapatac2/build_failure.linux-64.yaml b/recipes/snapatac2/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..192d0da24c090 --- /dev/null +++ b/recipes/snapatac2/build_failure.linux-64.yaml @@ -0,0 +1,4 @@ +recipe_sha: 0020e1f18882dacb116e05fb00a1e435b21713b2e0a803ece479d299f8c00347 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: disk space +reason: GitHub Actions runs out of space trying to build all python versions. \ No newline at end of file diff --git a/recipes/snapatac2/build_failure.osx-64.yaml b/recipes/snapatac2/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..4a6f367e00bb0 --- /dev/null +++ b/recipes/snapatac2/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 0020e1f18882dacb116e05fb00a1e435b21713b2e0a803ece479d299f8c00347 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + = note: ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/snapatac2_1717630619008/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libproc_macro-d9904b6b430ac650.rlib(proc_macro-d9904b6b430ac650.proc_macro.f7284eae513ccf25-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/snapatac2_1717630619008/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libstd-2ad7f97be9e16ca5.rlib(std-2ad7f97be9e16ca5.std.73125d0ae810e61b-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/snapatac2_1717630619008/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcore-1638dc700d175798.rlib(core-1638dc700d175798.core.b1c2fc210f4dfff9-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/snapatac2_1717630619008/_build_env/lib/rustlib/x86_64-apple-darwin/lib/liballoc-0ff05b9b25b786cc.rlib(alloc-0ff05b9b25b786cc.alloc.9242d371e396bc4c-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/snapatac2_1717630619008/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-0e3ea0ec18336be2.rlib(hashbrown-0e3ea0ec18336be2.hashbrown.febebf65344cb99d-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/snapatac2_1717630619008/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-37f4c48e230f618e.rlib(rustc_demangle-37f4c48e230f618e.rustc_demangle.9fdffeb2b56169d1-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/snapatac2_1717630619008/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libgimli-de95e5c2a2ace281.rlib(gimli-de95e5c2a2ace281.gimli.72653df79598dcb2-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/snapatac2_1717630619008/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libobject-0e1339b212cc7409.rlib(object-0e1339b212cc7409.object.e3756fe3fb577255-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/snapatac2_1717630619008/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libmemchr-925e672b3deb429c.rlib(memchr-925e672b3deb429c.memchr.4dc4a05d80618598-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/snapatac2_1717630619008/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-e92d517a950bccd8.rlib(addr2line-e92d517a950bccd8.addr2line.7eb29e6a0a38fefd-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/snapatac2_1717630619008/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-8ce93eee8bf4c86e.rlib(panic_unwind-8ce93eee8bf4c86e.panic_unwind.a3b8ea81b157ee45-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/snapatac2_1717630619008/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-7f42af62722c8f43.rlib(compiler_builtins-7f42af62722c8f43.compiler_builtins.19fed66cffb9e9f5-cgu.089.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) + Undefined symbols for architecture x86_64: + "_getentropy", referenced from: + std::sys::pal::unix::rand::hashmap_random_keys::hcc27ed0e9fd421d6 in libstd-2ad7f97be9e16ca5.rlib(std-2ad7f97be9e16ca5.std.73125d0ae810e61b-cgu.0.rcgu.o) + ld: symbol(s) not found for architecture x86_64 + clang-16: error: linker command failed with exit code 1 (use -v to see invocation) + + + error: could not compile serde_derive (lib) due to 1 previous error + maturin failed + Caused by: Failed to build a native library through cargo + Caused by: Cargo build finished with "exit status: 101": env -u CARGO PYO3_ENVIRONMENT_SIGNATURE="cpython-3.11-64bit" PYO3_PYTHON="/opt/mambaforge/envs/bioconda/conda-bld/snapatac2_1717630619008/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/bin/python" PYTHON_SYS_EXECUTABLE="/opt/mambaforge/envs/bioconda/conda-bld/snapatac2_1717630619008/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/bin/python" "cargo" "rustc" "--features" "pyo3/extension-module" "--target" "x86_64-apple-darwin" "--message-format" "json-render-diagnostics" "--manifest-path" "/opt/mambaforge/envs/bioconda/conda-bld/snapatac2_1717630619008/work/snapatac2-python/Cargo.toml" "--release" "--lib" "--" "-C" "link-arg=-undefined" "-C" "link-arg=dynamic_lookup" "-C" "link-args=-Wl,-install_name,@rpath/snapatac2._snapatac2.cpython-311-darwin.so" "-C" "link-arg=-s" + Extracting download + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/snapatac2/cargo.toml.patch + Traceback (most recent call last): + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/snapatac2/cargo.toml.patch with args: + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + ['-Np1', '-i', '/tmp/tmpdjpsa4y_/cargo.toml.patch.native', '--binary'] + Patch analysis gives: + [[ RA-MD1LOVE ]] - [[ cargo.toml.patch ]] + + Key: + + R :: Reversible A :: Applicable + Y :: Build-prefix patch in use M :: Minimal, non-amalgamated + D :: Dry-runnable N :: Patch level (1 is preferred) + L :: Patch level not-ambiguous O :: Patch applies without offsets + V :: Patch applies without fuzz E :: Patch applies without emitting to stderr + + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/snapatac2_1717630619008/work + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/snapatac2_1717630619008/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/snapatac2_1717630619008/_build_env + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/snapatac2_1717630619008/work + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/snapatac2-2.6.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/snapatac2_1717630619008/work/conda_build.sh']' returned non-zero exit status 1. + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/snapatac2-2.6.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 +# Last 100 lines of the build log. diff --git a/recipes/snapatac2/meta.yaml b/recipes/snapatac2/meta.yaml index a846d0367ce78..8989a9d16459f 100644 --- a/recipes/snapatac2/meta.yaml +++ b/recipes/snapatac2/meta.yaml @@ -13,7 +13,7 @@ source: - cargo.toml.patch build: - number: 0 + number: 1 skip: True # [py < 39 or py > 312] run_exports: - {{ pin_subpackage('snapatac2', max_pin="x") }} diff --git a/recipes/sneep/build_failure.osx-64.yaml b/recipes/sneep/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..7b7f2b4a25dd6 --- /dev/null +++ b/recipes/sneep/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 2449a710f015e732724a6193b0447a5061f54c4661bdae62ddb48d9371b56483 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + clang: 14.0.6-h694c41f_1 conda-forge + clang-14: 14.0.6-default_hdb78580_1 conda-forge + clang_osx-64: 14.0.6-h3113cd8_6 conda-forge + clangxx: 14.0.6-default_hdb78580_1 conda-forge + clangxx_osx-64: 14.0.6-h6f97653_6 conda-forge + compiler-rt: 14.0.6-h613da45_0 conda-forge + compiler-rt_osx-64: 14.0.6-hab78ec2_0 conda-forge + ld64_osx-64: 609-hfd63004_13 conda-forge + libclang-cpp14: 14.0.6-default_hdb78580_1 conda-forge + libcxx: 17.0.6-h88467a6_0 conda-forge + libllvm14: 14.0.6-hc8e404f_4 conda-forge + libzlib: 1.3.1-h87427d6_1 conda-forge + llvm-openmp: 16.0.6-hff08bdf_0 conda-forge + llvm-tools: 14.0.6-hc8e404f_4 conda-forge + make: 4.3-h22f3db7_1 conda-forge + openssl: 3.3.1-h87427d6_0 conda-forge + sigtool: 0.1.3-h88f4db0_0 conda-forge + tapi: 1100.0.11-h9ce4665_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache + Downloading source to cache: v1.1_663a327abb.tar.gz + Downloading https://github.com/SchulzLab/SNEEP/archive/refs/tags/v1.1.tar.gz + Success + ld: warning: directory not found for option '-L/usr/local/opt/libomp/lib' + ld: library not found for -lomp + clang-14: error: linker command failed with exit code 1 (use -v to see invocation) + make: *** [Makefile:22: all] Error 1 + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/sneep_1717643045632/work + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/sneep_1717643045632/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/sneep_1717643045632/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/sneep_1717643045632/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fPIE -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sneep-1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/sneep_1717643045632/work/conda_build.sh']' returned non-zero exit status 2. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fPIE -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sneep-1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-pie -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-pie -headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fPIE -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sneep-1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fPIE -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sneep-1.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + x86_64-apple-darwin13.4.0-clang Matrix_new.cpp -std=c11 -Xpreprocessor -fopenmp -lomp -stdlib=libc "-L/usr/local/opt/libomp/lib" -o Matrix +# Last 100 lines of the build log. diff --git a/recipes/sneep/meta.yaml b/recipes/sneep/meta.yaml index 3b772e54672ed..eeae5849ea3dd 100644 --- a/recipes/sneep/meta.yaml +++ b/recipes/sneep/meta.yaml @@ -11,7 +11,7 @@ source: build: skip: True # [py2k] - number: 0 + number: 1 run_exports: - {{ pin_subpackage('sneep', max_pin="x.x") }} diff --git a/recipes/snikt/meta.yaml b/recipes/snikt/meta.yaml index 1cfad845068f7..7c2127467789c 100644 --- a/recipes/snikt/meta.yaml +++ b/recipes/snikt/meta.yaml @@ -10,7 +10,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 2 noarch: generic requirements: diff --git a/recipes/snp-pileup/meta.yaml b/recipes/snp-pileup/meta.yaml index 3c7154f34bc33..183350fbe75df 100644 --- a/recipes/snp-pileup/meta.yaml +++ b/recipes/snp-pileup/meta.yaml @@ -10,7 +10,7 @@ source: sha256: '{{sha256}}' build: - number: 5 + number: 6 skip: True # [osx] requirements: diff --git a/recipes/soapdenovo2-errorcorrection/meta.yaml b/recipes/soapdenovo2-errorcorrection/meta.yaml index 600789cf543a6..4ba9f5163c0ee 100644 --- a/recipes/soapdenovo2-errorcorrection/meta.yaml +++ b/recipes/soapdenovo2-errorcorrection/meta.yaml @@ -7,7 +7,7 @@ source: sha256: 9f4f38ec0629045d0f2da67c8221636f545f1bdd500b7e4c0ad7e95db1794a8d build: - number: 7 + number: 8 skip: True # [osx] requirements: diff --git a/recipes/solexaqa/meta.yaml b/recipes/solexaqa/meta.yaml index a111e619ac3e3..53ab33a0a0874 100644 --- a/recipes/solexaqa/meta.yaml +++ b/recipes/solexaqa/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 5 + number: 6 skip: True # [not linux] source: diff --git a/recipes/sonicparanoid/meta.yaml b/recipes/sonicparanoid/meta.yaml index 0d0dbbb675b14..b4ab92e3d8f48 100644 --- a/recipes/sonicparanoid/meta.yaml +++ b/recipes/sonicparanoid/meta.yaml @@ -16,7 +16,7 @@ source: build: - number: 3 + number: 4 skip: True # [py2k or py < 37 or py > 39] script: "{{ PYTHON }} -m pip install . --no-deps --no-cache-dir -vvv " diff --git a/recipes/sonlib/build_failure.osx-64.yaml b/recipes/sonlib/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..ad4b54678e4a7 --- /dev/null +++ b/recipes/sonlib/build_failure.osx-64.yaml @@ -0,0 +1,106 @@ +recipe_sha: b98d13e34ff1057452ff95bc6a9c0f37501cd0ffb3686635e720e8c066868b63 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + cp inc/sonLibString.h ../lib/sonLibString.h + cp inc/sonLibTreap.h ../lib/sonLibTreap.h + cp inc/sonLibTree.h ../lib/sonLibTree.h + cp inc/sonLibTuples.h ../lib/sonLibTuples.h + cp inc/sonLibTypes.h ../lib/sonLibTypes.h + cp inc/stGraph.h ../lib/stGraph.h + cp inc/stJson.h ../lib/stJson.h + cp inc/stMatrix.h ../lib/stMatrix.h + cp inc/stPhylogeny.h ../lib/stPhylogeny.h + cp inc/stPosetAlignment.h ../lib/stPosetAlignment.h + cp inc/stSafeC.h ../lib/stSafeC.h + cp inc/stSpimapLayer.h ../lib/stSpimapLayer.h + cp inc/stThreadPool.h ../lib/stThreadPool.h + cp inc/stUnionFind.h ../lib/stUnionFind.h + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/avl.o impl/avl.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/bioioC.o impl/bioioC.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/commonC.o impl/commonC.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/fastCMaths.o impl/fastCMaths.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/hashTableC.o impl/hashTableC.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/hashTableC_itr.o impl/hashTableC_itr.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/jsmn.o impl/jsmn.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/lz4.o impl/lz4.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/lz4hc.o impl/lz4hc.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/pairwiseAlignment.o impl/pairwiseAlignment.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/sonLibCache.o impl/sonLibCache.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/sonLibCommon.o impl/sonLibCommon.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/sonLibCompression.o impl/sonLibCompression.c + impl/sonLibTuples.c:16:34: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes] + stIntTuple *stIntTuple_construct0() { + ^ + void + 1 warning generated. + impl/stGraph.c:83:49: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-const-int-float-conversion] + vD->distance = (v == sourceVertex ? 0 : INT64_MAX); + ~ ^~~~~~~~~ + /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/stdint.h:75:26: note: expanded from macro 'INT64_MAX' + #define INT64_MAX 9223372036854775807LL + ^~~~~~~~~~~~~~~~~~~~~ + 1 warning generated. + impl/stSafeC.c:28:9: warning: variable 'nbytes' set but not used [-Wunused-but-set-variable] + int nbytes = write(2, buf, strlen(buf)); + ^ + 1 warning generated. + mkdir -p /opt/mambaforge/envs/bioconda/conda-bld/sonlib_1717959623386/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/bin /opt/mambaforge/envs/bioconda/conda-bld/sonlib_1717959623386/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib /opt/mambaforge/envs/bioconda/conda-bld/sonlib_1717959623386/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/sonLib + install sonLib_daemonize.py /opt/mambaforge/envs/bioconda/conda-bld/sonlib_1717959623386/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/bin/ + cp lib/avl.h lib/bioioC.h lib/commonC.h lib/fastCMaths.h lib/hashTableC.h lib/hashTableC_itr.h lib/hashTablePrivateC.h lib/jsmn.h lib/pairwiseAlignment.h lib/safesort.h lib/sonLib.h lib/sonLibCache.h lib/sonLibCommon.h lib/sonLibCompression.h lib/sonLibConnectivity.h lib/sonLibEulerTour.h lib/sonLibExcept.h lib/sonLibFile.h lib/sonLibHash.h lib/sonLibKVDatabase.h lib/sonLibKVDatabaseConf.h lib/sonLibList.h lib/sonLibMath.h lib/sonLibNaiveConnectivity.h lib/sonLibRandom.h lib/sonLibSet.h lib/sonLibSortedSet.h lib/sonLibString.h lib/sonLibTreap.h lib/sonLibTree.h lib/sonLibTuples.h lib/sonLibTypes.h lib/stGraph.h lib/stJson.h lib/stMatrix.h lib/stPhylogeny.h lib/stPosetAlignment.h lib/stSafeC.h lib/stSpimapLayer.h lib/stThreadPool.h lib/stUnionFind.h /opt/mambaforge/envs/bioconda/conda-bld/sonlib_1717959623386/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/sonLib/ + cp lib/libsonLib.so /opt/mambaforge/envs/bioconda/conda-bld/sonlib_1717959623386/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/ + /opt/mambaforge/envs/bioconda/conda-bld/sonlib_1717959623386/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/bin/python setup.py install --single-version-externally-managed --record=record.txt + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/conda-bld/sonlib_1717959623386/work/setup.py", line 3, in + from setuptools import setup, find_packages + ModuleNotFoundError: No module named 'setuptools' + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/sonLibConnectivity.o impl/sonLibConnectivity.c + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/sonlib_1717959623386/work/conda_build.sh']' returned non-zero exit status 1. + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/sonLibEulerTour.o impl/sonLibEulerTour.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/sonLibExcept.o impl/sonLibExcept.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/sonLibFile.o impl/sonLibFile.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/sonLibHash.o impl/sonLibHash.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/sonLibKVDatabase.o impl/sonLibKVDatabase.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/sonLibKVDatabaseConf.o impl/sonLibKVDatabaseConf.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/sonLibKVDatabase_BigRecordFile.o impl/sonLibKVDatabase_BigRecordFile.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/sonLibKVDatabase_MySql.o impl/sonLibKVDatabase_MySql.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/sonLibKVDatabase_Redis.o impl/sonLibKVDatabase_Redis.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/sonLibKVDatabase_TokyoCabinet.o impl/sonLibKVDatabase_TokyoCabinet.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/sonLibList.o impl/sonLibList.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/sonLibMath.o impl/sonLibMath.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/sonLibNaiveConnectivity.o impl/sonLibNaiveConnectivity.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/sonLibRandom.o impl/sonLibRandom.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/sonLibSet.o impl/sonLibSet.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/sonLibSortedSet.o impl/sonLibSortedSet.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/sonLibString.o impl/sonLibString.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/sonLibTreap.o impl/sonLibTreap.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/sonLibTree.o impl/sonLibTree.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/sonLibTuples.o impl/sonLibTuples.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/stGraph.o impl/stGraph.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/stJson.o impl/stJson.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/stMatrix.o impl/stMatrix.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/stPhylogeny.o impl/stPhylogeny.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/stPosetAlignment.o impl/stPosetAlignment.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/stSafeC.o impl/stSafeC.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/stThreadPool.o impl/stThreadPool.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -c -o impl/stUnionFind.o impl/stUnionFind.c + x86_64-apple-darwin13.4.0-clang -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -Iinc -Iimpl -fsigned-char -Iinc -Iimpl -fsigned-char -I../externalTools/quicktree_1.1/include/ -I ../externalTools/cutest -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sonlib-2.0.dev88 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -fPIC -std=c99 -fsigned-char -O3 -g -Wall --pedantic -funroll-loops -DNDEBUG -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -shared -fPIC impl/avl.o impl/bioioC.o impl/commonC.o impl/fastCMaths.o impl/hashTableC.o impl/hashTableC_itr.o impl/jsmn.o impl/lz4.o impl/lz4hc.o impl/pairwiseAlignment.o impl/sonLibCache.o impl/sonLibCommon.o impl/sonLibCompression.o impl/sonLibConnectivity.o impl/sonLibEulerTour.o impl/sonLibExcept.o impl/sonLibFile.o impl/sonLibHash.o impl/sonLibKVDatabase.o impl/sonLibKVDatabaseConf.o impl/sonLibKVDatabase_BigRecordFile.o impl/sonLibKVDatabase_MySql.o impl/sonLibKVDatabase_Redis.o impl/sonLibKVDatabase_TokyoCabinet.o impl/sonLibList.o impl/sonLibMath.o impl/sonLibNaiveConnectivity.o impl/sonLibRandom.o impl/sonLibSet.o impl/sonLibSortedSet.o impl/sonLibString.o impl/sonLibTreap.o impl/sonLibTree.o impl/sonLibTuples.o impl/stGraph.o impl/stJson.o impl/stMatrix.o impl/stPhylogeny.o impl/stPosetAlignment.o impl/stSafeC.o impl/stThreadPool.o impl/stUnionFind.o -lquicktree -lz -o libsonLib.so + mv libsonLib.so ../lib/ + make[1]: Leaving directory '$SRC_DIR/C' +# Last 100 lines of the build log. +category: |- + compiler error diff --git a/recipes/sonlib/meta.yaml b/recipes/sonlib/meta.yaml index 21f47d0c439bb..d0c56979f46d8 100644 --- a/recipes/sonlib/meta.yaml +++ b/recipes/sonlib/meta.yaml @@ -17,7 +17,7 @@ source: - patches/0002-Remove-need-for-CuTest-during-build.patch build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin="x") }} diff --git a/recipes/sorted_nearest/build_failure.osx-64.yaml b/recipes/sorted_nearest/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..b28a52d273527 --- /dev/null +++ b/recipes/sorted_nearest/build_failure.osx-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 2fa8de914f4d17ddde8039fbe1761352a875d48f192b025f668e9186e0a4edc9 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: test failure +log: |2- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WARNING: Importing conda-verify failed. Please be sure to test your packages. conda install conda-verify to make this message go away. + compiling .pyc files... + number of files: 54 + INFO: sysroot: '/System/Library/Frameworks/' files: '['vmnet.framework/Versions/Current', 'vmnet.framework/Versions/A/_CodeSignature/CodeResources', 'vmnet.framework/Versions/A/Resources/version.plist', 'vmnet.framework/Versions/A/Resources/InfoPlist.loctable']' + INFO: sysroot: '/usr/lib/' files: '['zsh/5.9/zsh/zselect.so', 'zsh/5.9/zsh/zpty.so', 'zsh/5.9/zsh/zprof.so', 'zsh/5.9/zsh/zleparameter.so']' + INFO: sysroot: '/opt/X11/' files: '[]' + INFO (sorted_nearest,lib/python3.9/site-packages/sorted_nearest/src/sorted_nearest.cpython-39-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + INFO (sorted_nearest,lib/python3.9/site-packages/sorted_nearest/src/tiles.cpython-39-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + INFO (sorted_nearest,lib/python3.9/site-packages/sorted_nearest/src/k_nearest.cpython-39-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + INFO (sorted_nearest,lib/python3.9/site-packages/sorted_nearest/src/max_disjoint_intervals.cpython-39-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + INFO (sorted_nearest,lib/python3.9/site-packages/sorted_nearest/src/clusters.cpython-39-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + INFO (sorted_nearest,lib/python3.9/site-packages/sorted_nearest/src/k_nearest_ties.cpython-39-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + INFO (sorted_nearest,lib/python3.9/site-packages/sorted_nearest/src/windows.cpython-39-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + INFO (sorted_nearest,lib/python3.9/site-packages/sorted_nearest/src/introns.cpython-39-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + INFO (sorted_nearest,lib/python3.9/site-packages/sorted_nearest/src/annotate_clusters.cpython-39-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + INFO (sorted_nearest,lib/python3.9/site-packages/sorted_nearest/src/merge_by.cpython-39-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + INFO (sorted_nearest,lib/python3.9/site-packages/sorted_nearest/src/cluster_by.cpython-39-darwin.so): Needed DSO /System/Library/Frameworks/libSystem.B.dylib found in $SYSROOT + WARNING (sorted_nearest): interpreter (Python) package conda-forge/osx-64::python==3.9.19=h7a9c478_0_cpython in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) + Fixing permissions + INFO :: Time taken to mark (prefix) + 0 replacements in 0 files was 0.06 seconds + TEST START: /opt/mambaforge/envs/bioconda/conda-bld/osx-64/sorted_nearest-0.0.39-py39h1841df5_2.tar.bz2 + Renaming work directory '/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1718121720195/work' to '/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1718121720195/work_moved_sorted_nearest-0.0.39-py39h1841df5_2_osx-64' + shutil.move(work)=/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1718121720195/work, dest=/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1718121720195/work_moved_sorted_nearest-0.0.39-py39h1841df5_2_osx-64) + Reloading output folder (local): ...working... done + Solving environment (_test_env): ...working... done + + ## Package Plan ## + + environment location: /opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1718121720195/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac + + + The following NEW packages will be INSTALLED: + + bzip2: 1.0.8-h10d778d_5 conda-forge + ca-certificates: 2024.6.2-h8857fd0_0 conda-forge + libblas: 3.9.0-22_osx64_openblas conda-forge + libcblas: 3.9.0-22_osx64_openblas conda-forge + libcxx: 17.0.6-h88467a6_0 conda-forge + libffi: 3.4.2-h0d85af4_5 conda-forge + libgfortran: 5.0.0-13_2_0_h97931a8_3 conda-forge + libgfortran5: 13.2.0-h2873a65_3 conda-forge + liblapack: 3.9.0-22_osx64_openblas conda-forge + libopenblas: 0.3.27-openmp_hfef2a42_0 conda-forge + libsqlite: 3.46.0-h1b8f9f3_0 conda-forge + libzlib: 1.3.1-h87427d6_1 conda-forge + llvm-openmp: 18.1.7-h15ab845_0 conda-forge + ncurses: 6.5-h5846eda_0 conda-forge + numpy: 1.26.4-py39h28c39a1_0 conda-forge + openssl: 3.3.1-h87427d6_0 conda-forge + python: 3.9.19-h7a9c478_0_cpython conda-forge + python_abi: 3.9-4_cp39 conda-forge + readline: 8.2-h9e318b2_1 conda-forge + sorted_nearest: 0.0.39-py39h1841df5_2 local + tk: 8.6.13-h1abcd95_1 conda-forge + tzdata: 2024a-h0c530f3_0 conda-forge + xz: 5.2.6-h775f41a_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1718121720195/test_tmp/run_test.py", line 2, in + import sorted_nearest + File "/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1718121720195/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.9/site-packages/sorted_nearest/__init__.py", line 1, in + import pkg_resources + ModuleNotFoundError: No module named 'pkg_resources' + WARNING: Tests failed for sorted_nearest-0.0.39-py39h1841df5_2.tar.bz2 - moving package to /opt/mambaforge/envs/bioconda/conda-bld/broken + TESTS FAILED: sorted_nearest-0.0.39-py39h1841df5_2.tar.bz2 + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1718121720195/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/sorted_nearest_1718121720195/test_tmp + import: 'sorted_nearest' +# Last 100 lines of the build log. diff --git a/recipes/sorted_nearest/meta.yaml b/recipes/sorted_nearest/meta.yaml index 8cd37892ae730..d6a32c10c8df0 100644 --- a/recipes/sorted_nearest/meta.yaml +++ b/recipes/sorted_nearest/meta.yaml @@ -14,8 +14,8 @@ source: '{{ hash_type }}': '{{ hash_value }}' build: - number: 1 - script: python setup.py install --single-version-externally-managed --record=record.txt + number: 2 + script: "{{ PYTHON }} setup.py install --single-version-externally-managed --record=record.txt" run_exports: - {{ pin_subpackage(name|lower, max_pin='x.x') }} @@ -41,4 +41,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/spades/build_failure.linux-aarch64.yaml b/recipes/spades/build_failure.linux-aarch64.yaml new file mode 100644 index 0000000000000..aca6e6112608e --- /dev/null +++ b/recipes/spades/build_failure.linux-aarch64.yaml @@ -0,0 +1,33 @@ +recipe_sha: 6be4333db8acfb6314096dc4462d291a25cfaa0039e0061049862257f52f80a1 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: CI unresponsive +reason: may be due to disk space +log: |- + 13:33:38 [32mBIOCONDA INFO [0m (OUT) [ 91%] Building CXX object projects/ionhammer/CMakeFiles/spades-ionhammer.dir/err_helper_table.cpp.o [0m + 13:33:38 [32mBIOCONDA INFO [0m (OUT) cd $SRC_DIR/build_spades/projects/ionhammer && $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-c++ -DBLAZE_CACHE_SIZE=33554432UL -DBLAZE_USE_CPP_THREADS -DBLAZE_USE_DEBUG_MODE=0 -DBLAZE_USE_FUNCTION_TRACES=0 -DBLAZE_USE_VECTORIZATION=1 -DUSE_GLIBCXX_PARALLEL=1 -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -I$SRC_DIR/src/projects/ionhammer -I$SRC_DIR/build_spades/_deps/zlib_ng-build -I$SRC_DIR/ext/src/zlib-ng -I$SRC_DIR/ext/src/mimalloc/include -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/ext/include/blaze/cmake/.. -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fcommon -fopenmp -O2 -g -DNDEBUG -std=gnu++17 -UNDEBUG -Wno-deprecated -g1 -O2 -Wall -Wextra -Wconversion -Wno-sign-conversion -Wno-long-long -Wwrite-strings -fopenmp -MD -MT projects/ionhammer/CMakeFiles/spades-ionhammer.dir/err_helper_table.cpp.o -MF CMakeFiles/spades-ionhammer.dir/err_helper_table.cpp.o.d -o CMakeFiles/spades-ionhammer.dir/err_helper_table.cpp.o -c $SRC_DIR/src/projects/ionhammer/err_helper_table.cpp [0m + 13:33:41 [32mBIOCONDA INFO [0m (OUT) [ 92%] Building CXX object projects/ionhammer/CMakeFiles/spades-ionhammer.dir/config_struct.cpp.o [0m + 13:33:41 [32mBIOCONDA INFO [0m (OUT) cd $SRC_DIR/build_spades/projects/ionhammer && $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-c++ -DBLAZE_CACHE_SIZE=33554432UL -DBLAZE_USE_CPP_THREADS -DBLAZE_USE_DEBUG_MODE=0 -DBLAZE_USE_FUNCTION_TRACES=0 -DBLAZE_USE_VECTORIZATION=1 -DUSE_GLIBCXX_PARALLEL=1 -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -I$SRC_DIR/src/projects/ionhammer -I$SRC_DIR/build_spades/_deps/zlib_ng-build -I$SRC_DIR/ext/src/zlib-ng -I$SRC_DIR/ext/src/mimalloc/include -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/ext/include/blaze/cmake/.. -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fcommon -fopenmp -O2 -g -DNDEBUG -std=gnu++17 -UNDEBUG -Wno-deprecated -g1 -O2 -Wall -Wextra -Wconversion -Wno-sign-conversion -Wno-long-long -Wwrite-strings -fopenmp -MD -MT projects/ionhammer/CMakeFiles/spades-ionhammer.dir/config_struct.cpp.o -MF CMakeFiles/spades-ionhammer.dir/config_struct.cpp.o.d -o CMakeFiles/spades-ionhammer.dir/config_struct.cpp.o -c $SRC_DIR/src/projects/ionhammer/config_struct.cpp [0m + 13:33:43 [32mBIOCONDA INFO [0m (OUT) In file included from /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/kmer_helpers.h:20, [0m + 13:33:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/reference.h:20, [0m + 13:33:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/subcluster.hpp:15, [0m + 13:33:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/subcluster.cpp:9: [0m + 13:33:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/valid_hkmer_generator.hpp: In instantiation of 'void ValidHKMerGenerator::Next() [with long unsigned int kK = 16]': [0m + 13:33:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/kmer_helpers.h:47:21: required from here [0m + 13:33:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/valid_hkmer_generator.hpp:227:17: warning: comparison is always true due to limited range of data type [-Wtype-limits] [0m + 13:33:43 [32mBIOCONDA INFO [0m (OUT) 227 | if (pnucl != -1) { [0m + 13:33:43 [32mBIOCONDA INFO [0m (OUT) | ~~~~~~^~~~~ [0m + 13:33:43 [32mBIOCONDA INFO [0m (OUT) In file included from /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/special_functions/detail/bernoulli_details.hpp:11, [0m + 13:33:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/special_functions/bernoulli.hpp:16, [0m + 13:33:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/special_functions/gamma.hpp:35, [0m + 13:33:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/special_functions/factorials.hpp:14, [0m + 13:33:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/special_functions/binomial.hpp:14, [0m + 13:33:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/gamma_poisson_model.hpp:16, [0m + 13:33:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/subcluster.hpp:19: [0m + 13:33:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/tools/toms748_solve.hpp: In instantiation of 'std::pair<_ForwardIterator, _ForwardIterator> boost::math::tools::bracket_and_solve_root(F, const T&, T, bool, Tol, uintmax_t&, const Policy&) [with F = boost::math::detail::beta_inv_ab_t >; T = long double; Tol = eps_tolerance; Policy = boost::math::policies::policy; uintmax_t = long unsigned int]': [0m + 13:33:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/special_functions/detail/ibeta_inv_ab.hpp:155:46: required from 'T boost::math::detail::ibeta_inv_ab_imp(const T&, const T&, const T&, const T&, bool, const Policy&) [with T = long double; Policy = boost::math::policies::policy]' [0m + 13:33:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/special_functions/detail/ibeta_inv_ab.hpp:187:31: required from 'boost::math::tools::promote_args_t boost::math::ibeta_inva(RT1, RT2, RT3, const Policy&) [with RT1 = double; RT2 = double; RT3 = double; Policy = policies::policy; tools::promote_args_t = double]' [0m + 13:33:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/special_functions/detail/ibeta_inv_ab.hpp:299:34: required from 'boost::math::tools::promote_args_t boost::math::ibeta_inva(RT1, RT2, RT3) [with RT1 = double; RT2 = double; RT3 = double; tools::promote_args_t = double]' [0m + 13:33:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/gamma_poisson_model.hpp:127:35: required from here [0m + 13:33:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/tools/toms748_solve.hpp:502:17: note: parameter passing for argument of type 'std::pair' when C++17 is enabled changed to match C++14 in GCC 10.1 [0m + 13:33:43 [32mBIOCONDA INFO [0m (OUT) 502 | std::pair bracket_and_solve_root(F f, const T& guess, T factor, bool rising, Tol tol, std::uintmax_t& max_iter, const Policy& pol) [0m + 13:33:43 [32mBIOCONDA INFO [0m (OUT) | ^~~~~~~~~~~~~~~~~~~~~~ [0m diff --git a/recipes/spades/build_failure.osx-64.yaml b/recipes/spades/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..27f700c1275b3 --- /dev/null +++ b/recipes/spades/build_failure.osx-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 6be4333db8acfb6314096dc4462d291a25cfaa0039e0061049862257f52f80a1 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: compiler error +log: |2- + this->__append(__sz - __cs); + ^ + /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/work/src/../ext/include/llvm/Support/YAMLTraits.h:1976:13: note: in instantiation of member function 'std::vector::resize' requested here + seq.resize(index1); + ^ + In file included from /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/work/ext/src/llvm/YAMLTraits.cpp:9: + In file included from /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/work/src/../ext/include/llvm/Support/YAMLTraits.h:12: + In file included from /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/work/src/../ext/include/llvm/ADT/Optional.h:22: + In file included from /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/_build_env/bin/../include/c/v1/memory:886: + /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/_build_env/bin/../include/c/v1/__memory/allocator.h:167:28: error: 'path' is unavailable: introduced in macOS 10.15 - see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk + ::new ((void*)__p) _Up(_VSTD::forward<_Args>(__args)...); + ^ + /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/_build_env/bin/../include/c/v1/__memory/allocator_traits.h:296:13: note: in instantiation of function template specialization 'std::allocator::construct' requested here + __a.construct(__p, _VSTD::forward<_Args>(__args)...); + ^ + /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/_build_env/bin/../include/c/v1/__memory/uninitialized_algorithms.h:615:31: note: in instantiation of function template specialization 'std::allocator_traits>::construct' requested here + allocator_traits<_Alloc>::construct(__alloc, std::__to_address(__first2), std::move_if_noexcept(*__first1)); + ^ + /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/_build_env/bin/../include/c/v1/vector:1035:27: note: in instantiation of function template specialization 'std::__uninitialized_allocator_move_if_noexcept, std::reverse_iterator, std::reverse_iterator, std::reverse_iterator>' requested here + __v.__begin_ = std::__uninitialized_allocator_move_if_noexcept( + ^ + /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/_build_env/bin/../include/c/v1/vector:1164:9: note: in instantiation of member function 'std::vector::__swap_out_circular_buffer' requested here + __swap_out_circular_buffer(__v); + ^ + /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/_build_env/bin/../include/c/v1/vector:1981:15: note: in instantiation of member function 'std::vector::__append' requested here + this->__append(__sz - __cs); + ^ + /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/work/src/../ext/include/llvm/Support/YAMLTraits.h:1976:13: note: in instantiation of member function 'std::vector::resize' requested here + seq.resize(index1); + ^ + /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/_build_env/bin/../include/c/v1/__filesystem/path.h:477:25: note: 'path' has been explicitly marked unavailable here + _LIBCPP_HIDE_FROM_ABI path(path&& __p) noexcept + ^ + 11 errors generated. + make[2]: *** [ext/llvm/CMakeFiles/llvm-support.dir/build.make:636: ext/llvm/CMakeFiles/llvm-support.dir/YAMLTraits.cpp.o] Error 1 + make[2]: *** Waiting for unfinished jobs.... + cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_stats.c.o -MF CMakeFiles/easel.dir/esl_stats.c.o.d -o CMakeFiles/easel.dir/esl_stats.c.o -c $SRC_DIR/ext/src/easel/esl_stats.c + [ 35%] Building C object ext/easel/CMakeFiles/easel.dir/esl_stopwatch.c.o + cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_stopwatch.c.o -MF CMakeFiles/easel.dir/esl_stopwatch.c.o.d -o CMakeFiles/easel.dir/esl_stopwatch.c.o -c $SRC_DIR/ext/src/easel/esl_stopwatch.c + [ 35%] Building C object ext/easel/CMakeFiles/easel.dir/esl_stretchexp.c.o + cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_stretchexp.c.o -MF CMakeFiles/easel.dir/esl_stretchexp.c.o.d -o CMakeFiles/easel.dir/esl_stretchexp.c.o -c $SRC_DIR/ext/src/easel/esl_stretchexp.c + [ 35%] Building CXX object ext/llvm/CMakeFiles/llvm-support.dir/WithColor.cpp.o + cd $SRC_DIR/build_spades/ext/llvm && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -I$SRC_DIR/ext/src/llvm -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fcommon -fopenmp=libomp -stdlib=libc -O2 -g -DNDEBUG -std=gnu17 -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/llvm/CMakeFiles/llvm-support.dir/WithColor.cpp.o -MF CMakeFiles/llvm-support.dir/WithColor.cpp.o.d -o CMakeFiles/llvm-support.dir/WithColor.cpp.o -c $SRC_DIR/ext/src/llvm/WithColor.cpp + [ 35%] Building C object ext/easel/CMakeFiles/easel.dir/esl_subcmd.c.o + cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_subcmd.c.o -MF CMakeFiles/easel.dir/esl_subcmd.c.o.d -o CMakeFiles/easel.dir/esl_subcmd.c.o -c $SRC_DIR/ext/src/easel/esl_subcmd.c + [ 35%] Building C object ext/easel/CMakeFiles/easel.dir/esl_threads.c.o + cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_threads.c.o -MF CMakeFiles/easel.dir/esl_threads.c.o.d -o CMakeFiles/easel.dir/esl_threads.c.o -c $SRC_DIR/ext/src/easel/esl_threads.c + [ 35%] Building C object ext/easel/CMakeFiles/easel.dir/esl_tree.c.o + cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_tree.c.o -MF CMakeFiles/easel.dir/esl_tree.c.o.d -o CMakeFiles/easel.dir/esl_tree.c.o -c $SRC_DIR/ext/src/easel/esl_tree.c + [ 37%] Building C object ext/easel/CMakeFiles/easel.dir/esl_varint.c.o + cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_varint.c.o -MF CMakeFiles/easel.dir/esl_varint.c.o.d -o CMakeFiles/easel.dir/esl_varint.c.o -c $SRC_DIR/ext/src/easel/esl_varint.c + [ 37%] Building CXX object ext/llvm/CMakeFiles/llvm-support.dir/YAMLParser.cpp.o + cd $SRC_DIR/build_spades/ext/llvm && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -I$SRC_DIR/ext/src/llvm -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fcommon -fopenmp=libomp -stdlib=libc -O2 -g -DNDEBUG -std=gnu17 -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/llvm/CMakeFiles/llvm-support.dir/YAMLParser.cpp.o -MF CMakeFiles/llvm-support.dir/YAMLParser.cpp.o.d -o CMakeFiles/llvm-support.dir/YAMLParser.cpp.o -c $SRC_DIR/ext/src/llvm/YAMLParser.cpp + [ 37%] Building C object ext/easel/CMakeFiles/easel.dir/esl_vectorops.c.o + cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_vectorops.c.o -MF CMakeFiles/easel.dir/esl_vectorops.c.o.d -o CMakeFiles/easel.dir/esl_vectorops.c.o -c $SRC_DIR/ext/src/easel/esl_vectorops.c + [ 37%] Building CXX object ext/llvm/CMakeFiles/llvm-support.dir/YAMLTraits.cpp.o + cd $SRC_DIR/build_spades/ext/llvm && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -I$SRC_DIR/ext/src/llvm -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fcommon -fopenmp=libomp -stdlib=libc -O2 -g -DNDEBUG -std=gnu17 -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/llvm/CMakeFiles/llvm-support.dir/YAMLTraits.cpp.o -MF CMakeFiles/llvm-support.dir/YAMLTraits.cpp.o.d -o CMakeFiles/llvm-support.dir/YAMLTraits.cpp.o -c $SRC_DIR/ext/src/llvm/YAMLTraits.cpp + [ 37%] Building C object ext/easel/CMakeFiles/easel.dir/esl_weibull.c.o + cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_weibull.c.o -MF CMakeFiles/easel.dir/esl_weibull.c.o.d -o CMakeFiles/easel.dir/esl_weibull.c.o -c $SRC_DIR/ext/src/easel/esl_weibull.c + [ 37%] Building C object ext/easel/CMakeFiles/easel.dir/esl_workqueue.c.o + cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_workqueue.c.o -MF CMakeFiles/easel.dir/esl_workqueue.c.o.d -o CMakeFiles/easel.dir/esl_workqueue.c.o -c $SRC_DIR/ext/src/easel/esl_workqueue.c + [ 37%] Building CXX object ext/llvm/CMakeFiles/llvm-support.dir/raw_os_ostream.cpp.o + cd $SRC_DIR/build_spades/ext/llvm && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -I$SRC_DIR/ext/src/llvm -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fcommon -fopenmp=libomp -stdlib=libc -O2 -g -DNDEBUG -std=gnu17 -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/llvm/CMakeFiles/llvm-support.dir/raw_os_ostream.cpp.o -MF CMakeFiles/llvm-support.dir/raw_os_ostream.cpp.o.d -o CMakeFiles/llvm-support.dir/raw_os_ostream.cpp.o -c $SRC_DIR/ext/src/llvm/raw_os_ostream.cpp + [ 37%] Building C object ext/easel/CMakeFiles/easel.dir/esl_wuss.c.o + make[1]: *** [CMakeFiles/Makefile2:1594: ext/llvm/CMakeFiles/llvm-support.dir/all] Error 2 + make: *** [Makefile:166: all] Error 2 + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_wuss.c.o -MF CMakeFiles/easel.dir/esl_wuss.c.o.d -o CMakeFiles/easel.dir/esl_wuss.c.o -c $SRC_DIR/ext/src/easel/esl_wuss.c + [ 37%] Building C object ext/easel/CMakeFiles/easel.dir/esl_sse.c.o + cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_sse.c.o -MF CMakeFiles/easel.dir/esl_sse.c.o.d -o CMakeFiles/easel.dir/esl_sse.c.o -c $SRC_DIR/ext/src/easel/esl_sse.c + [ 37%] Building C object ext/easel/CMakeFiles/easel.dir/esl_avx.c.o + cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_avx.c.o -MF CMakeFiles/easel.dir/esl_avx.c.o.d -o CMakeFiles/easel.dir/esl_avx.c.o -c $SRC_DIR/ext/src/easel/esl_avx.c + [ 38%] Building C object ext/easel/CMakeFiles/easel.dir/esl_avx512.c.o + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_avx512.c.o -MF CMakeFiles/easel.dir/esl_avx512.c.o.d -o CMakeFiles/easel.dir/esl_avx512.c.o -c $SRC_DIR/ext/src/easel/esl_avx512.c + [ 38%] Building C object ext/easel/CMakeFiles/easel.dir/esl_neon.c.o + cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_neon.c.o -MF CMakeFiles/easel.dir/esl_neon.c.o.d -o CMakeFiles/easel.dir/esl_neon.c.o -c $SRC_DIR/ext/src/easel/esl_neon.c + [ 38%] Linking C static library libeasel.a + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/cmake -P CMakeFiles/easel.dir/cmake_clean_target.cmake + cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/cmake -E cmake_link_script CMakeFiles/easel.dir/link.txt --verbose=1 + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar qc libeasel.a CMakeFiles/easel.dir/easel.c.o CMakeFiles/easel.dir/esl_alloc.c.o CMakeFiles/easel.dir/esl_alphabet.c.o CMakeFiles/easel.dir/esl_arr2.c.o CMakeFiles/easel.dir/esl_arr3.c.o CMakeFiles/easel.dir/esl_bitfield.c.o CMakeFiles/easel.dir/esl_buffer.c.o CMakeFiles/easel.dir/esl_cluster.c.o CMakeFiles/easel.dir/esl_composition.c.o CMakeFiles/easel.dir/esl_cpu.c.o CMakeFiles/easel.dir/esl_dirichlet.c.o CMakeFiles/easel.dir/esl_distance.c.o CMakeFiles/easel.dir/esl_dmatrix.c.o CMakeFiles/easel.dir/esl_dsqdata.c.o CMakeFiles/easel.dir/esl_exponential.c.o CMakeFiles/easel.dir/esl_fileparser.c.o CMakeFiles/easel.dir/esl_gamma.c.o CMakeFiles/easel.dir/esl_gencode.c.o CMakeFiles/easel.dir/esl_getopts.c.o CMakeFiles/easel.dir/esl_gev.c.o CMakeFiles/easel.dir/esl_graph.c.o CMakeFiles/easel.dir/esl_gumbel.c.o CMakeFiles/easel.dir/esl_heap.c.o CMakeFiles/easel.dir/esl_histogram.c.o CMakeFiles/easel.dir/esl_hmm.c.o CMakeFiles/easel.dir/esl_huffman.c.o CMakeFiles/easel.dir/esl_hyperexp.c.o CMakeFiles/easel.dir/esl_iset.c.o CMakeFiles/easel.dir/esl_json.c.o CMakeFiles/easel.dir/esl_keyhash.c.o CMakeFiles/easel.dir/esl_lognormal.c.o CMakeFiles/easel.dir/esl_matrixops.c.o CMakeFiles/easel.dir/esl_mem.c.o CMakeFiles/easel.dir/esl_minimizer.c.o CMakeFiles/easel.dir/esl_mixdchlet.c.o CMakeFiles/easel.dir/esl_mixgev.c.o CMakeFiles/easel.dir/esl_mpi.c.o CMakeFiles/easel.dir/esl_msa.c.o CMakeFiles/easel.dir/esl_msacluster.c.o CMakeFiles/easel.dir/esl_msafile.c.o CMakeFiles/easel.dir/esl_msafile2.c.o CMakeFiles/easel.dir/esl_msafile_a2m.c.o CMakeFiles/easel.dir/esl_msafile_afa.c.o CMakeFiles/easel.dir/esl_msafile_clustal.c.o CMakeFiles/easel.dir/esl_msafile_phylip.c.o CMakeFiles/easel.dir/esl_msafile_psiblast.c.o CMakeFiles/easel.dir/esl_msafile_selex.c.o CMakeFiles/easel.dir/esl_msafile_stockholm.c.o CMakeFiles/easel.dir/esl_msashuffle.c.o CMakeFiles/easel.dir/esl_msaweight.c.o CMakeFiles/easel.dir/esl_normal.c.o CMakeFiles/easel.dir/esl_paml.c.o CMakeFiles/easel.dir/esl_quicksort.c.o CMakeFiles/easel.dir/esl_random.c.o CMakeFiles/easel.dir/esl_rand64.c.o CMakeFiles/easel.dir/esl_randomseq.c.o CMakeFiles/easel.dir/esl_ratematrix.c.o CMakeFiles/easel.dir/esl_recorder.c.o CMakeFiles/easel.dir/esl_red_black.c.o CMakeFiles/easel.dir/esl_regexp.c.o CMakeFiles/easel.dir/esl_rootfinder.c.o CMakeFiles/easel.dir/esl_scorematrix.c.o CMakeFiles/easel.dir/esl_sq.c.o CMakeFiles/easel.dir/esl_sqio.c.o CMakeFiles/easel.dir/esl_sqio_ascii.c.o CMakeFiles/easel.dir/esl_sqio_ncbi.c.o CMakeFiles/easel.dir/esl_ssi.c.o CMakeFiles/easel.dir/esl_stack.c.o CMakeFiles/easel.dir/esl_stats.c.o CMakeFiles/easel.dir/esl_stopwatch.c.o CMakeFiles/easel.dir/esl_stretchexp.c.o CMakeFiles/easel.dir/esl_subcmd.c.o CMakeFiles/easel.dir/esl_threads.c.o CMakeFiles/easel.dir/esl_tree.c.o CMakeFiles/easel.dir/esl_varint.c.o CMakeFiles/easel.dir/esl_vectorops.c.o CMakeFiles/easel.dir/esl_weibull.c.o CMakeFiles/easel.dir/esl_workqueue.c.o CMakeFiles/easel.dir/esl_wuss.c.o CMakeFiles/easel.dir/esl_sse.c.o CMakeFiles/easel.dir/esl_avx.c.o CMakeFiles/easel.dir/esl_avx512.c.o CMakeFiles/easel.dir/esl_neon.c.o + $BUILD_PREFIX/bin/llvm-ranlib libeasel.a + make[2]: Leaving directory '$SRC_DIR/build_spades' + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + [ 38%] Built target easel + make[2]: Leaving directory '$SRC_DIR/build_spades' + make[1]: Leaving directory '$SRC_DIR/build_spades' + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/spades/meta.yaml b/recipes/spades/meta.yaml index a026995dfb826..bacd3f85ce2cd 100644 --- a/recipes/spades/meta.yaml +++ b/recipes/spades/meta.yaml @@ -12,7 +12,7 @@ source: - 0001-change-verbosity-remove-expr.patch build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('spades', max_pin="x") }} diff --git a/recipes/sqt/build_failure.linux-64.yaml b/recipes/sqt/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..b52ddd29dd9e6 --- /dev/null +++ b/recipes/sqt/build_failure.linux-64.yaml @@ -0,0 +1,106 @@ +recipe_sha: ebe606033ba793850dd048eb7d0d505bb7fe6bae042ee3fdeae0e3fcf8ffdc62 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + [32mcython[0m is installable with the potential options + [32mcython [0.24|0.24.1|...|0.29.9][0m, which can be installed; + [31mcython [0.24|0.24.1|0.25.1|0.25.2|0.27.3][0m would require + [31mpython_abi * *_cp34m[0m, which conflicts with any installable versions previously reported; + [32mcython [0.25.2|0.26|...|0.28.2][0m would require + [32mpython 3.6* [0m with the potential options + [32mpython [3.6.0|3.6.1|...|3.6.9][0m, which can be installed; + [32mpython [3.6.0a3|3.6.0a4|...|3.6.0rc1][0m, which can be installed; + [32mpython 3.6.12[0m, which can be installed (as previously explained); + [32mpython 3.6.9[0m, which can be installed (as previously explained); + [32mcython [0.28.3|0.28.4|...|0.29.9][0m would require + [32mpython >=3.6,<3.7.0a0 [0m with the potential options + [32mpython [3.6.0|3.6.1|...|3.6.9][0m, which can be installed; + [32mpython 3.6.12[0m, which can be installed (as previously explained); + [32mpython 3.6.9[0m, which can be installed (as previously explained); + [32mcython [0.28.4|0.28.5|...|0.29.9][0m would require + [32mpython >=3.7,<3.8.0a0 [0m with the potential options + [32mpython [3.7.0|3.7.1|...|3.7.9][0m, which can be installed; + [32mpython [3.7.10|3.7.12|3.7.9][0m, which can be installed (as previously explained); + [32mcython [0.29.14|0.29.15][0m would require + [32mpython >=3.8,<3.9.0a0 [0m with the potential options + [32mpython [3.8.0|3.8.1|...|3.8.8][0m, which can be installed; + [32mpython [3.8.12|3.8.13|3.8.16][0m would require + [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; + [32mpython 3.8.5[0m would require + [32mpython_abi 3.8.* *_graalpy223_38_native[0m, which can be installed; + [32mcython 0.29.15[0m would require + [32mpython_abi 2.7.* *_cp27mu[0m, which can be installed; + [32mcython [0.29.15|0.29.16|...|0.29.24][0m would require + [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; + [32mcython [0.29.15|0.29.16|...|0.29.21][0m would require + [32mpython_abi 3.6 *_pypy36_pp73[0m, which can be installed; + [32mcython [0.29.15|0.29.16|...|0.29.32][0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mcython [0.29.15|0.29.16|...|3.0.9][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mcython [0.29.21|0.29.22|0.29.23][0m would require + [32mpypy3.6 >=7.3.3 [0m, which can be installed; + [32mcython [0.29.21|0.29.22|...|0.29.28][0m would require + [32mpython_abi 3.7 *_pypy37_pp73[0m, which can be installed; + [32mcython [0.29.21|0.29.22|...|3.0.9][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mcython [0.29.24|0.29.25|...|3.0.9][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32mcython [0.29.28|0.29.29|...|3.0.2][0m would require + [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; + [32mcython [0.29.28|0.29.29|...|3.0.9][0m would require + [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; + [32mcython [0.29.32|0.29.33|...|3.0.9][0m would require + [32mpython_abi 3.11.* *_cp311[0m, which can be installed; + [31mcython [0.29.36|0.29.37|...|3.0.9][0m would require + [31mpython_abi 3.12.* *_cp312[0m, which cannot be installed (as previously explained); + [32mpysam[0m is installable with the potential options + [31mpysam 0.22.1[0m would require + [31mlibcurl >=8.8.0,<9.0a0 [0m, which requires + [31mzstd >=1.5.6,<1.6.0a0 [0m, which conflicts with any installable versions previously reported; + [32mpysam [0.10.0|0.11.0|...|0.9.1.4][0m would require + [32mpython [2.7* |>=2.7,<2.8.0a0 ][0m, which can be installed; + [32mpysam [0.10.0|0.15.2|...|0.9.1][0m would require + [32mpython_abi 2.7.* *_cp27mu[0m, which can be installed; + [32mpysam [0.10.0|0.11.0|...|0.9.1.4][0m would require + [32mpython 3.4* [0m, which can be installed; + [32mpysam [0.10.0|0.11.0|...|0.9.1.4][0m would require + [32mpython [3.5* |>=3.5,<3.6.0a0 ][0m, which can be installed; + [32mpysam [0.10.0|0.11.1|...|0.9.1][0m would require + [32mpython 3.6* [0m with the potential options + [32mpython [3.6.0|3.6.1|...|3.6.9][0m, which can be installed; + [32mpython [3.6.0a3|3.6.0a4|...|3.6.0rc1][0m, which can be installed; + [32mpython 3.6.12[0m, which can be installed (as previously explained); + [32mpython 3.6.9[0m, which can be installed (as previously explained); + [32mpysam [0.10.0|0.15.2|...|0.9.1][0m would require + [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; + [32mpysam [0.10.0|0.14.1|...|0.9.1][0m would require + [32mpython >=3.6,<3.7.0a0 [0m with the potential options + [32mpython [3.6.0|3.6.1|...|3.6.9][0m, which can be installed; + [32mpython 3.6.12[0m, which can be installed (as previously explained); + [32mpython 3.6.9[0m, which can be installed (as previously explained); + [31mpysam [0.15.1|0.15.2|0.15.3][0m would require + [31mlibdeflate >=1.0,<1.1.0a0 [0m, which conflicts with any installable versions previously reported; + [32mpysam [0.15.2|0.15.4|...|0.9.1][0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mpysam [0.15.2|0.15.3|0.15.4|0.9.1][0m would require + [32mpython >=3.7,<3.8.0a0 [0m with the potential options + [32mpython [3.7.0|3.7.1|...|3.7.9][0m, which can be installed; + [32mpython [3.7.10|3.7.12|3.7.9][0m, which can be installed (as previously explained); + [32mpysam [0.15.2|0.16.0.1|...|0.9.1][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mpysam [0.16.0.1|0.17.0|...|0.9.1][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mpysam [0.19.1|0.20.0|0.21.0|0.22.0|0.22.1][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32mpysam 0.22.1[0m would require + [32mpython_abi 3.11.* *_cp311[0m, which can be installed; + [32mpysam 0.7.7[0m would require + [32mpython <3.0.0 [0m, which can be installed; + [31mpython 3.12.* *_cpython[0m is not installable because there are no viable options + [31mpython [3.12.0|3.12.1|3.12.2|3.12.3][0m would require + [31mpython_abi 3.12.* *_cp312[0m, which conflicts with any installable versions previously reported; + [31mpython 3.12.0rc3[0m would require + [31m_python_rc[0m, which does not exist (perhaps a missing channel). +# Last 100 lines of the build log. +category: |- + dependency issue diff --git a/recipes/sqt/build_failure.osx-64.yaml b/recipes/sqt/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..9964140dcc5b9 --- /dev/null +++ b/recipes/sqt/build_failure.osx-64.yaml @@ -0,0 +1,106 @@ +recipe_sha: ebe606033ba793850dd048eb7d0d505bb7fe6bae042ee3fdeae0e3fcf8ffdc62 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + dnaio 1.2.0 would require + python_abi 3.11.* *_cp311, which can be installed; + dnaio 1.2.0 would require + python_abi 3.8.* *_cp38, which can be installed; + dnaio 1.2.0 would require + python_abi 3.9.* *_cp39, which can be installed; + python_abi 3.12.* *_cp312, which requires + python 3.12.* *_cpython, which conflicts with any installable versions previously reported; + cython is installable with the potential options + cython [0.24|0.24.1|...|0.29.9], which can be installed; + cython [0.24|0.24.1|0.25.1|0.25.2|0.27.3] would require + python_abi * *_cp34m, which conflicts with any installable versions previously reported; + cython [0.24|0.25.2|...|0.28.2] would require + python 3.6* with the potential options + python [3.6.0|3.6.1|...|3.6.9], which can be installed; + python [3.6.0a3|3.6.0a4|...|3.6.0rc1], which can be installed; + python [3.6.12|3.6.9], which can be installed (as previously explained); + cython [0.28.3|0.28.4|...|0.29.9] would require + python >=3.6,<3.7.0a0 with the potential options + python [3.6.0|3.6.1|...|3.6.9], which can be installed; + python [3.6.12|3.6.9], which can be installed (as previously explained); + cython [0.28.4|0.28.5|...|0.29.9] would require + python >=3.7,<3.8.0a0 with the potential options + python [3.7.0|3.7.1|...|3.7.9], which can be installed; + python [3.7.10|3.7.12|3.7.9], which can be installed (as previously explained); + cython [0.29.14|0.29.15] would require + python >=3.8,<3.9.0a0 with the potential options + python [3.8.0|3.8.1|...|3.8.8], which can be installed; + python [3.8.12|3.8.13|3.8.16] would require + python_abi 3.8 *_pypy38_pp73, which can be installed; + cython 0.29.15 would require + python_abi 2.7.* *_cp27m, which can be installed; + cython [0.29.15|0.29.16|...|0.29.24] would require + python_abi 3.6.* *_cp36m, which can be installed; + cython [0.29.15|0.29.16|...|0.29.23] would require + python_abi 3.6 *_pypy36_pp73, which can be installed; + cython [0.29.15|0.29.16|...|0.29.32] would require + python_abi 3.7.* *_cp37m, which can be installed; + cython [0.29.15|0.29.16|...|3.0.9] would require + python_abi 3.8.* *_cp38, which can be installed; + cython [0.29.21|0.29.22|...|0.29.28] would require + python_abi 3.7 *_pypy37_pp73, which can be installed; + cython [0.29.21|0.29.22|...|3.0.9] would require + python_abi 3.9.* *_cp39, which can be installed; + cython [0.29.24|0.29.25|...|3.0.9] would require + python_abi 3.10.* *_cp310, which can be installed; + cython [0.29.28|0.29.29|...|3.0.2] would require + python_abi 3.8 *_pypy38_pp73, which can be installed; + cython [0.29.28|0.29.29|...|3.0.9] would require + python_abi 3.9 *_pypy39_pp73, which can be installed; + cython [0.29.32|0.29.33|...|3.0.9] would require + python_abi 3.11.* *_cp311, which can be installed; + cython [0.29.36|0.29.37|...|3.0.9] would require + python_abi 3.12.* *_cp312, which cannot be installed (as previously explained); + pysam is installable with the potential options + pysam 0.22.1 would require + libcurl >=8.8.0,<9.0a0 , which requires + zstd >=1.5.6,<1.6.0a0 , which conflicts with any installable versions previously reported; + pysam [0.10.0|0.11.0|...|0.9.1.4] would require + python [2.7* |>=2.7,<2.8.0a0 ], which can be installed; + pysam [0.10.0|0.15.2|...|0.9.1] would require + python_abi 2.7.* *_cp27m, which can be installed; + pysam [0.10.0|0.11.0|...|0.9.1.4] would require + python 3.4* , which can be installed; + pysam [0.10.0|0.11.0|...|0.9.1.4] would require + python [3.5* |>=3.5,<3.6.0a0 ], which can be installed; + pysam [0.10.0|0.11.1|...|0.9.1] would require + python 3.6* with the potential options + python [3.6.0|3.6.1|...|3.6.9], which can be installed; + python [3.6.0a3|3.6.0a4|...|3.6.0rc1], which can be installed; + python [3.6.12|3.6.9], which can be installed (as previously explained); + pysam [0.10.0|0.14.1|...|0.9.1] would require + python >=3.6,<3.7.0a0 with the potential options + python [3.6.0|3.6.1|...|3.6.9], which can be installed; + python [3.6.12|3.6.9], which can be installed (as previously explained); + pysam [0.10.0|0.15.2|...|0.9.1] would require + python_abi 3.6.* *_cp36m, which can be installed; + pysam [0.15.1|0.15.2|0.15.3] would require + libdeflate >=1.0,<1.1.0a0 , which conflicts with any installable versions previously reported; + pysam [0.15.2|0.15.4|...|0.9.1] would require + python_abi 3.7.* *_cp37m, which can be installed; + pysam [0.15.2|0.15.3|0.15.4|0.9.1] would require + python >=3.7,<3.8.0a0 with the potential options + python [3.7.0|3.7.1|...|3.7.9], which can be installed; + python [3.7.10|3.7.12|3.7.9], which can be installed (as previously explained); + pysam [0.15.2|0.16.0.1|...|0.9.1] would require + python_abi 3.8.* *_cp38, which can be installed; + pysam [0.16.0.1|0.17.0|...|0.9.1] would require + python_abi 3.9.* *_cp39, which can be installed; + pysam [0.19.1|0.20.0|0.21.0|0.22.0|0.22.1] would require + python_abi 3.10.* *_cp310, which can be installed; + pysam 0.22.1 would require + python_abi 3.11.* *_cp311, which can be installed; + pysam 0.7.7 would require + python <3.0.0 , which can be installed; + python 3.12.* *_cpython is not installable because there are no viable options + python [3.12.0|3.12.1|3.12.2|3.12.3] would require + python_abi 3.12.* *_cp312, which conflicts with any installable versions previously reported; + python 3.12.0rc3 would require + _python_rc, which does not exist (perhaps a missing channel). +# Last 100 lines of the build log. +category: |- + dependency issue diff --git a/recipes/sqt/meta.yaml b/recipes/sqt/meta.yaml index 536f3ebac8ee2..2b63b7acebdf3 100644 --- a/recipes/sqt/meta.yaml +++ b/recipes/sqt/meta.yaml @@ -12,7 +12,7 @@ build: # remove PKG-INFO to trigger cythonize rm PKG-INFO {{ PYTHON }} -m pip install . --no-deps -vv - number: 5 + number: 6 requirements: build: diff --git a/recipes/squeakr/meta.yaml b/recipes/squeakr/meta.yaml index 510355fb28e6a..b18136c4e98dd 100644 --- a/recipes/squeakr/meta.yaml +++ b/recipes/squeakr/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 61f0493e5d27a7d629a87841052d174491018bb81e1876879f402d3b6885a9ff build: - number: 0 + number: 1 skip: True # [osx] run_exports: - {{ pin_subpackage('squeakr', max_pin="x.x") }} diff --git a/recipes/squid/meta.yaml b/recipes/squid/meta.yaml index af425a48a72ab..655d71f8ccdd7 100644 --- a/recipes/squid/meta.yaml +++ b/recipes/squid/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 7 + number: 8 # Test fails on OSX skip: True # [osx] diff --git a/recipes/staden_io_lib/meta.yaml b/recipes/staden_io_lib/meta.yaml index ed1200fa9c0ff..05414ca88e4e2 100644 --- a/recipes/staden_io_lib/meta.yaml +++ b/recipes/staden_io_lib/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ hash }} build: - number: 8 + number: 9 skip: True # [osx] run_exports: - {{ pin_subpackage('staden_io_lib', max_pin='x.x') }} @@ -45,4 +45,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/stare-abc/meta.yaml b/recipes/stare-abc/meta.yaml index e48aa6e87b1e9..77d7704286449 100644 --- a/recipes/stare-abc/meta.yaml +++ b/recipes/stare-abc/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 1 + number: 2 source: url: https://github.com/SchulzLab/STARE/archive/refs/tags/v{{ version }}.tar.gz diff --git a/recipes/starseqr/build_failure.linux-64.yaml b/recipes/starseqr/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..600ce9ff83d4e --- /dev/null +++ b/recipes/starseqr/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: c3edf197b82c62f620d5b4d6b3a841ebe86fe03da1f7f33832a64b30dc6567cd # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2308, in build + output_metas = expand_outputs([(m, need_source_download, need_reparse_in_env)]) + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 916, in expand_outputs + for output_dict, m in deepcopy(_m).get_output_metadata_set( + File "/opt/conda/lib/python3.10/site-packages/conda_build/metadata.py", line 2737, in get_output_metadata_set + conda_packages = finalize_outputs_pass( + File "/opt/conda/lib/python3.10/site-packages/conda_build/metadata.py", line 1095, in finalize_outputs_pass + fm = finalize_metadata( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 650, in finalize_metadata + build_unsat, host_unsat = add_upstream_pins( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 491, in add_upstream_pins + host_deps, host_unsat, extra_run_specs_from_host = _read_upstream_pin_files( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 444, in _read_upstream_pin_files + deps, precs, unsat = get_env_dependencies( + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 156, in get_env_dependencies + precs = environ.get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("_python_rc"), MatchSpec("python==3.12.0rc3=rc3_hab00c5b_1_cpython")} + Encountered problems while solving: + - nothing provides _python_rc needed by python-3.12.0rc3-rc3_hab00c5b_1_cpython + + Could not solve for environment specs + The following packages are incompatible + [32mnumpy 1.26.* [0m is installable with the potential options + [32mnumpy [1.26.0|1.26.2|1.26.3|1.26.4][0m would require + [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; + [32mnumpy [1.26.0|1.26.2|1.26.3|1.26.4][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32mnumpy [1.26.0|1.26.2|1.26.3|1.26.4][0m would require + [32mpython_abi 3.11.* *_cp311[0m, which can be installed; + [31mnumpy [1.26.0|1.26.2|1.26.3|1.26.4][0m would require + [31mpython_abi 3.12.* *_cp312[0m, which requires + [32mpython 3.12.* *_cpython[0m, which can be installed; + [32mnumpy [1.26.0|1.26.2|1.26.3|1.26.4][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mpysam >=0.9.1.4 [0m is installable with the potential options + [31mpysam [0.10.0|0.11.0|...|0.9.1.4][0m would require + [31mpython [2.7* |>=2.7,<2.8.0a0 ][0m, which conflicts with any installable versions previously reported; + [32mpysam [0.10.0|0.15.2|...|0.20.0][0m would require + [32mpython_abi 2.7.* *_cp27mu[0m, which can be installed; + [31mpysam [0.10.0|0.11.0|0.11.1|0.9.1.4][0m would require + [31mpython 3.4* [0m, which conflicts with any installable versions previously reported; + [31mpysam [0.10.0|0.11.0|...|0.9.1.4][0m would require + [31mpython [3.5* |>=3.5,<3.6.0a0 ][0m, which conflicts with any installable versions previously reported; + [31mpysam [0.10.0|0.11.1|...|0.14.1][0m would require + [31mpython 3.6* [0m, which conflicts with any installable versions previously reported; + [32mpysam [0.10.0|0.15.2|...|0.21.0][0m would require + [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; + [31mpysam [0.10.0|0.14.1|...|0.15.4][0m would require + [31mpython >=3.6,<3.7.0a0 [0m, which conflicts with any installable versions previously reported; + [31mpysam [0.15.1|0.15.2|0.15.3][0m would require + [31mlibdeflate >=1.0,<1.1.0a0 [0m, which conflicts with any installable versions previously reported; + [32mpysam [0.15.2|0.15.4|...|0.21.0][0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [31mpysam [0.15.2|0.15.3|0.15.4][0m would require + [31mpython >=3.7,<3.8.0a0 [0m, which conflicts with any installable versions previously reported; + [32mpysam [0.15.2|0.16.0.1|...|0.22.1][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mpysam [0.16.0.1|0.17.0|...|0.22.1][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mpysam [0.19.1|0.20.0|0.21.0|0.22.0|0.22.1][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [31mpython 3.12.* *_cpython[0m is not installable because there are no viable options + [31mpython [3.12.0|3.12.1|3.12.2|3.12.3][0m would require + [31mpython_abi 3.12.* *_cp312[0m, which conflicts with any installable versions previously reported; + [31mpython 3.12.0rc3[0m would require + [31m_python_rc[0m, which does not exist (perhaps a missing channel). +# Last 100 lines of the build log. diff --git a/recipes/starseqr/build_failure.osx-64.yaml b/recipes/starseqr/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..a79d57b89fed7 --- /dev/null +++ b/recipes/starseqr/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: c3edf197b82c62f620d5b4d6b3a841ebe86fe03da1f7f33832a64b30dc6567cd # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + libdeflate >=1.0,<1.1.0a0 , which conflicts with any installable versions previously reported; + pysam [0.15.2|0.15.4|...|0.21.0] would require + python_abi 3.7.* *_cp37m, which can be installed; + pysam [0.15.2|0.15.3|0.15.4] would require + python >=3.7,<3.8.0a0 , which can be installed; + pysam [0.15.2|0.16.0.1|...|0.22.1] would require + python_abi 3.8.* *_cp38, which can be installed; + pysam [0.16.0.1|0.17.0|...|0.22.1] would require + python_abi 3.9.* *_cp39, which can be installed; + pysam [0.19.1|0.20.0|0.21.0|0.22.0|0.22.1] would require + python_abi 3.10.* *_cp310, which can be installed; + python 3.11.* *_cpython is not installable because it requires + python_abi 3.11.* *_cp311, which conflicts with any installable versions previously reported. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2308, in build + output_metas = expand_outputs([(m, need_source_download, need_reparse_in_env)]) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 916, in expand_outputs + for output_dict, m in deepcopy(_m).get_output_metadata_set( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 2737, in get_output_metadata_set + conda_packages = finalize_outputs_pass( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 1095, in finalize_outputs_pass + fm = finalize_metadata( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 650, in finalize_metadata + build_unsat, host_unsat = add_upstream_pins( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 491, in add_upstream_pins + host_deps, host_unsat, extra_run_specs_from_host = _read_upstream_pin_files( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 444, in _read_upstream_pin_files + deps, precs, unsat = get_env_dependencies( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 156, in get_env_dependencies + precs = environ.get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("libdeflate[version='>=1.0,<1.1.0a0']"), MatchSpec("pysam==0.15.1=py27h0380709_0")} + Encountered problems while solving: + - package pysam-0.15.1-py27h0380709_0 requires libdeflate >=1.0,<1.1.0a0, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + pysam >=0.9.1.4 is installable with the potential options + pysam [0.10.0|0.11.0|...|0.9.1.4] would require + python [2.7* |>=2.7,<2.8.0a0 ], which can be installed; + pysam [0.10.0|0.15.2|...|0.20.0] would require + python_abi 2.7.* *_cp27m, which can be installed; + pysam [0.10.0|0.11.0|0.11.1|0.9.1.4] would require + python 3.4* , which can be installed; + pysam [0.10.0|0.11.0|...|0.9.1.4] would require + python [3.5* |>=3.5,<3.6.0a0 ], which can be installed; + pysam [0.10.0|0.11.1|...|0.14.1] would require + python 3.6* , which can be installed; + pysam [0.10.0|0.14.1|...|0.15.4] would require + python >=3.6,<3.7.0a0 , which can be installed; + pysam [0.10.0|0.15.2|...|0.21.0] would require + python_abi 3.6.* *_cp36m, which can be installed; + pysam [0.15.1|0.15.2|0.15.3] would require + libdeflate >=1.0,<1.1.0a0 , which conflicts with any installable versions previously reported; + pysam [0.15.2|0.15.4|...|0.21.0] would require + python_abi 3.7.* *_cp37m, which can be installed; + pysam [0.15.2|0.15.3|0.15.4] would require + python >=3.7,<3.8.0a0 , which can be installed; + pysam [0.15.2|0.16.0.1|...|0.22.1] would require + python_abi 3.8.* *_cp38, which can be installed; + pysam [0.16.0.1|0.17.0|...|0.22.1] would require + python_abi 3.9.* *_cp39, which can be installed; + pysam [0.19.1|0.20.0|0.21.0|0.22.0|0.22.1] would require + python_abi 3.10.* *_cp310, which can be installed; + python 3.11.* *_cpython is not installable because it requires + python_abi 3.11.* *_cp311, which conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/starseqr/meta.yaml b/recipes/starseqr/meta.yaml index 79cf3d6f5a053..8ecee3010d8c7 100644 --- a/recipes/starseqr/meta.yaml +++ b/recipes/starseqr/meta.yaml @@ -8,7 +8,7 @@ source: build: skip: True # [py < 37] - number: 5 + number: 6 requirements: build: diff --git a/recipes/strainge/build_failure.linux-64.yaml b/recipes/strainge/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..aff92ef2abc4c --- /dev/null +++ b/recipes/strainge/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 8d421a84b249ede354ec5b8b84c06165e973405ca4cf7997724b3633e681d5b8 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + + [1;35mnote[0m: This error originates from a subprocess, and is likely not a problem with pip. + [1;35mfull command[0m: [34m/opt/conda/conda-bld/strainge_1717901108313/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/bin/python /opt/conda/conda-bld/strainge_1717901108313/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py prepare_metadata_for_build_wheel /tmp/tmps55ogjs_[0m + [1;35mcwd[0m: /opt/conda/conda-bld/strainge_1717901108313/work + Preparing metadata (pyproject.toml): finished with status 'error' + [1;31merror[0m: [1mmetadata-generation-failed[0m + + [31m[0m Encountered error while generating package metadata. + [31m>[0m See above for output. + + [1;35mnote[0m: This is an issue with the package mentioned above, not pip. + [1;36mhint[0m: See above for details. + Exception information: + Traceback (most recent call last): + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/operations/build/metadata.py", line 35, in generate_metadata + distinfo_dir = backend.prepare_metadata_for_build_wheel(metadata_dir) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/utils/misc.py", line 766, in prepare_metadata_for_build_wheel + return super().prepare_metadata_for_build_wheel( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py", line 186, in prepare_metadata_for_build_wheel + return self._call_hook('prepare_metadata_for_build_wheel', { + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py", line 311, in _call_hook + self._subprocess_runner( + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/utils/subprocess.py", line 252, in runner + call_subprocess( + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/utils/subprocess.py", line 224, in call_subprocess + raise error + pip._internal.exceptions.InstallationSubprocessError: Preparing metadata (pyproject.toml) exited with 1 + + The above exception was the direct cause of the following exception: + + Traceback (most recent call last): + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper + status = run_func(*args) + ^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper + return func(self, options, args) + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/commands/install.py", line 377, in run + requirement_set = resolver.resolve( + ^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 76, in resolve + collected = self.factory.collect_root_requirements(root_reqs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 534, in collect_root_requirements + reqs = list( + ^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 490, in _make_requirements_from_install_req + cand = self._make_base_candidate_from_link( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 228, in _make_base_candidate_from_link + self._link_candidate_cache[link] = LinkCandidate( + ^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 290, in __init__ + super().__init__( + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 156, in __init__ + self.dist = self._prepare() + ^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 222, in _prepare + dist = self._prepare_distribution() + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 301, in _prepare_distribution + return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 525, in prepare_linked_requirement + return self._prepare_linked_requirement(req, parallel_builds) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 640, in _prepare_linked_requirement + dist = _get_prepared_distribution( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 71, in _get_prepared_distribution + abstract_dist.prepare_distribution_metadata( + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/distributions/sdist.py", line 67, in prepare_distribution_metadata + self.req.prepare_metadata() + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/req/req_install.py", line 579, in prepare_metadata + self.metadata_directory = generate_metadata( + ^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/operations/build/metadata.py", line 37, in generate_metadata + raise MetadataGenerationFailed(package_details=details) from error + pip._internal.exceptions.MetadataGenerationFailed: metadata generation failed + Removed file://$SRC_DIR from build tracker '/tmp/pip-build-tracker-dk_u9tdk' + Removed build tracker: '/tmp/pip-build-tracker-dk_u9tdk' + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/strainge_1717901108313/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/strainge/build_failure.osx-64.yaml b/recipes/strainge/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..16a4be15fc58e --- /dev/null +++ b/recipes/strainge/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 8d421a84b249ede354ec5b8b84c06165e973405ca4cf7997724b3633e681d5b8 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/strainge-1.3.8 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/strainge-1.3.8 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + Using pip 24.0 from $PREFIX/lib/python3.12/site-packages/pip (python 3.12) + Non-user install because user site-packages disabled + Ignoring indexes: https://pypi.org/simple + Created temporary directory: /private/tmp/pip-build-tracker-ka0pkz1f + Initialized build tracking at /private/tmp/pip-build-tracker-ka0pkz1f + Created build tracker: /private/tmp/pip-build-tracker-ka0pkz1f + Entered build tracker: /private/tmp/pip-build-tracker-ka0pkz1f + Created temporary directory: /private/tmp/pip-install-y6nw1c6k + Created temporary directory: /private/tmp/pip-ephem-wheel-cache-vyuojn_m + Processing $SRC_DIR + Added file://$SRC_DIR to build tracker '/private/tmp/pip-build-tracker-ka0pkz1f' + Created temporary directory: /private/tmp/pip-modern-metadata-tvd9hhrw + Preparing metadata (pyproject.toml): started + Preparing metadata (pyproject.toml): finished with status 'error' + Exception information: + Traceback (most recent call last): + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/operations/build/metadata.py", line 35, in generate_metadata + distinfo_dir = backend.prepare_metadata_for_build_wheel(metadata_dir) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/utils/misc.py", line 766, in prepare_metadata_for_build_wheel + return super().prepare_metadata_for_build_wheel( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py", line 186, in prepare_metadata_for_build_wheel + return self._call_hook('prepare_metadata_for_build_wheel', { + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py", line 311, in _call_hook + self._subprocess_runner( + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/utils/subprocess.py", line 252, in runner + call_subprocess( + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/utils/subprocess.py", line 224, in call_subprocess + raise error + pip._internal.exceptions.InstallationSubprocessError: Preparing metadata (pyproject.toml) exited with 1 + + The above exception was the direct cause of the following exception: + + Traceback (most recent call last): + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper + status = run_func(*args) + ^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper + return func(self, options, args) + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/commands/install.py", line 377, in run + requirement_set = resolver.resolve( + ^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 76, in resolve + collected = self.factory.collect_root_requirements(root_reqs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 534, in collect_root_requirements + reqs = list( + ^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 490, in _make_requirements_from_install_req + cand = self._make_base_candidate_from_link( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 228, in _make_base_candidate_from_link + self._link_candidate_cache[link] = LinkCandidate( + ^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 290, in __init__ + super().__init__( + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 156, in __init__ + self.dist = self._prepare() + ^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 222, in _prepare + dist = self._prepare_distribution() + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 301, in _prepare_distribution + return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 525, in prepare_linked_requirement + return self._prepare_linked_requirement(req, parallel_builds) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 640, in _prepare_linked_requirement + dist = _get_prepared_distribution( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 71, in _get_prepared_distribution + abstract_dist.prepare_distribution_metadata( + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/distributions/sdist.py", line 67, in prepare_distribution_metadata + self.req.prepare_metadata() + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/req/req_install.py", line 579, in prepare_metadata + self.metadata_directory = generate_metadata( + ^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/operations/build/metadata.py", line 37, in generate_metadata + raise MetadataGenerationFailed(package_details=details) from error + pip._internal.exceptions.MetadataGenerationFailed: metadata generation failed + Removed file://$SRC_DIR from build tracker '/private/tmp/pip-build-tracker-ka0pkz1f' + Removed build tracker: '/private/tmp/pip-build-tracker-ka0pkz1f' +# Last 100 lines of the build log. diff --git a/recipes/strainge/meta.yaml b/recipes/strainge/meta.yaml index 3857b0e6df44a..87bd9aeccfa3d 100644 --- a/recipes/strainge/meta.yaml +++ b/recipes/strainge/meta.yaml @@ -10,7 +10,7 @@ source: sha256: d93f1d5fea0f13519cdf19e6b0914c8ef5ce07778d653b74db267e92643e4bd1 build: - number: 0 + number: 1 skip: true # [py<38] entry_points: - strainge=strainge.cli.main:strainge_cli diff --git a/recipes/strainr2/meta.yaml b/recipes/strainr2/meta.yaml index 588aa7c636683..ee2da327887ff 100644 --- a/recipes/strainr2/meta.yaml +++ b/recipes/strainr2/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 943121e54a386bf3cf6e8278b6d443d0d3d2b0edfaff795bcc25777ad3879abb build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("strainr2", max_pin="x") }} diff --git a/recipes/strandphaser/meta.yaml b/recipes/strandphaser/meta.yaml index b7278c800b580..6295b478cdec7 100644 --- a/recipes/strandphaser/meta.yaml +++ b/recipes/strandphaser/meta.yaml @@ -9,7 +9,7 @@ source: url: https://github.com/weber8thomas/StrandPhaseR/archive/refs/tags/0.1.2.tar.gz sha256: 0aad3b6e73e63b7cefcda86711eed810244f0bbc89d3be75a5ca07fce1f6ebc6 build: - number: 0 + number: 1 rpaths: - lib/R/lib/ - lib/ diff --git a/recipes/strawc/meta.yaml b/recipes/strawc/meta.yaml index 09c8e48d2a065..b75ed7b4990ed 100644 --- a/recipes/strawc/meta.yaml +++ b/recipes/strawc/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 26d798c98bb8a08011e4c233816f6c76c66605ca09ce068d8f1952532cf22ffc build: - number: 3 + number: 4 skip: True # [py2k] requirements: diff --git a/recipes/strcount/meta.yaml b/recipes/strcount/meta.yaml index d0d477b4b6a32..c9ef152fda5aa 100644 --- a/recipes/strcount/meta.yaml +++ b/recipes/strcount/meta.yaml @@ -10,7 +10,7 @@ source: sha256: b1231f846317560f2490e2fe0f1df7eca547285a5df7f593ac80dd9f2facbe1f build: - number: 1 + number: 2 entry_points: - STRcount = STRcount.STRcount:main script: "{{ PYTHON }} -m pip install . -vv" diff --git a/recipes/stringdecomposer/meta.yaml b/recipes/stringdecomposer/meta.yaml index 11f34428dc148..d09170d075bd7 100644 --- a/recipes/stringdecomposer/meta.yaml +++ b/recipes/stringdecomposer/meta.yaml @@ -10,7 +10,7 @@ source: build: skip: True # [py27 or osx] - number: 2 + number: 3 script: {{ PYTHON }} -m pip install . -vv --ignore-installed --no-deps # script: make install PREFIX=${PREFIX} diff --git a/recipes/strling/build_failure.linux-64.yaml b/recipes/strling/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..cfd43dd6aeb0a --- /dev/null +++ b/recipes/strling/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 085df83df0de60e97d37fcffdf21a09a1e19d0fcac2406ead774210311ac1801 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + Reading official package list + Downloading https://github.com/brentp/hts-nim using git + Cloning latest tagged version: v0.3.25 + Verifying dependencies for hts@0.3.25 + Installing hts@0.3.25 + Copying file /tmp/nimble_570/githubcom_brentphtsnim/src/hts/simpleoption.nim to /home/conda/.nimble/pkgs2/hts-0.3.25-c05c9adf6b2e10a7f07edfef29110ea14bb66611/hts/simpleoption.nim + Copying file /tmp/nimble_570/githubcom_brentphtsnim/src/hts/private/hts_concat.h to /home/conda/.nimble/pkgs2/hts-0.3.25-c05c9adf6b2e10a7f07edfef29110ea14bb66611/hts/private/hts_concat.h + Copying file /tmp/nimble_570/githubcom_brentphtsnim/src/hts/private/hts_concat.nim to /home/conda/.nimble/pkgs2/hts-0.3.25-c05c9adf6b2e10a7f07edfef29110ea14bb66611/hts/private/hts_concat.nim + Copying file /tmp/nimble_570/githubcom_brentphtsnim/src/hts/csi.nim to /home/conda/.nimble/pkgs2/hts-0.3.25-c05c9adf6b2e10a7f07edfef29110ea14bb66611/hts/csi.nim + Copying file /tmp/nimble_570/githubcom_brentphtsnim/src/hts/vcf.nim to /home/conda/.nimble/pkgs2/hts-0.3.25-c05c9adf6b2e10a7f07edfef29110ea14bb66611/hts/vcf.nim + Copying file /tmp/nimble_570/githubcom_brentphtsnim/src/hts/bam.nim to /home/conda/.nimble/pkgs2/hts-0.3.25-c05c9adf6b2e10a7f07edfef29110ea14bb66611/hts/bam.nim + Copying file /tmp/nimble_570/githubcom_brentphtsnim/src/hts/value.nim to /home/conda/.nimble/pkgs2/hts-0.3.25-c05c9adf6b2e10a7f07edfef29110ea14bb66611/hts/value.nim + Copying file /tmp/nimble_570/githubcom_brentphtsnim/src/hts/files.nim to /home/conda/.nimble/pkgs2/hts-0.3.25-c05c9adf6b2e10a7f07edfef29110ea14bb66611/hts/files.nim + Copying file /tmp/nimble_570/githubcom_brentphtsnim/src/hts/utils.nim to /home/conda/.nimble/pkgs2/hts-0.3.25-c05c9adf6b2e10a7f07edfef29110ea14bb66611/hts/utils.nim + Copying file /tmp/nimble_570/githubcom_brentphtsnim/src/hts/stats.nim to /home/conda/.nimble/pkgs2/hts-0.3.25-c05c9adf6b2e10a7f07edfef29110ea14bb66611/hts/stats.nim + Copying file /tmp/nimble_570/githubcom_brentphtsnim/src/hts/bgzf.nim to /home/conda/.nimble/pkgs2/hts-0.3.25-c05c9adf6b2e10a7f07edfef29110ea14bb66611/hts/bgzf.nim + Copying file /tmp/nimble_570/githubcom_brentphtsnim/src/hts/fai.nim to /home/conda/.nimble/pkgs2/hts-0.3.25-c05c9adf6b2e10a7f07edfef29110ea14bb66611/hts/fai.nim + Copying file /tmp/nimble_570/githubcom_brentphtsnim/src/hts/bgzf/bgzi.nim to /home/conda/.nimble/pkgs2/hts-0.3.25-c05c9adf6b2e10a7f07edfef29110ea14bb66611/hts/bgzf/bgzi.nim + Copying file /tmp/nimble_570/githubcom_brentphtsnim/src/hts/bam/auxtags.nim to /home/conda/.nimble/pkgs2/hts-0.3.25-c05c9adf6b2e10a7f07edfef29110ea14bb66611/hts/bam/auxtags.nim + Copying file /tmp/nimble_570/githubcom_brentphtsnim/src/hts/bam/enums.nim to /home/conda/.nimble/pkgs2/hts-0.3.25-c05c9adf6b2e10a7f07edfef29110ea14bb66611/hts/bam/enums.nim + Copying file /tmp/nimble_570/githubcom_brentphtsnim/src/hts/bam/cigar.nim to /home/conda/.nimble/pkgs2/hts-0.3.25-c05c9adf6b2e10a7f07edfef29110ea14bb66611/hts/bam/cigar.nim + Copying file /tmp/nimble_570/githubcom_brentphtsnim/src/hts/bam/flag.nim to /home/conda/.nimble/pkgs2/hts-0.3.25-c05c9adf6b2e10a7f07edfef29110ea14bb66611/hts/bam/flag.nim + Copying file /tmp/nimble_570/githubcom_brentphtsnim/src/hts.nim to /home/conda/.nimble/pkgs2/hts-0.3.25-c05c9adf6b2e10a7f07edfef29110ea14bb66611/hts.nim + Copying file /tmp/nimble_570/githubcom_brentphtsnim/hts.nimble to /home/conda/.nimble/pkgs2/hts-0.3.25-c05c9adf6b2e10a7f07edfef29110ea14bb66611/hts.nimble + Success: hts installed successfully. + Reading official package list + Checking for itertools@any version + Installing itertools@any version + Reading official package list + Downloading https://github.com/narimiran/itertools using git + Cloning latest tagged version: v0.4.0 + Verifying dependencies for itertools@0.4.0 + Installing itertools@0.4.0 + Copying file /tmp/nimble_570/githubcom_narimiranitertools/src/itertools.nim to /home/conda/.nimble/pkgs2/itertools-0.4.0-5a3514a97e4ff2f6ca4f9fab264b3be765527c7f/itertools.nim + Copying file /tmp/nimble_570/githubcom_narimiranitertools/itertools.nimble to /home/conda/.nimble/pkgs2/itertools-0.4.0-5a3514a97e4ff2f6ca4f9fab264b3be765527c7f/itertools.nimble + Success: itertools installed successfully. + Reading official package list + Checking for argparse@>= 0.7.0 & < 1.0 + Installing argparse@>= 0.7.0 & < 1.0 + Reading official package list + Downloading https://github.com/iffy/nim-argparse using git + Cloning latest tagged version: v0.10.1 + Verifying dependencies for argparse@0.10.1 + Installing argparse@0.10.1 + Copying file /tmp/nimble_570/githubcom_iffynimargparse_0.7.0_1.0/src/argparse.nim to /home/conda/.nimble/pkgs2/argparse-0.10.1-ca6943a0561568610e27599e1e79c9b67628ee27/argparse.nim + Copying file /tmp/nimble_570/githubcom_iffynimargparse_0.7.0_1.0/src/argparse/macrohelp.nim to /home/conda/.nimble/pkgs2/argparse-0.10.1-ca6943a0561568610e27599e1e79c9b67628ee27/argparse/macrohelp.nim + Copying file /tmp/nimble_570/githubcom_iffynimargparse_0.7.0_1.0/argparse.nimble to /home/conda/.nimble/pkgs2/argparse-0.10.1-ca6943a0561568610e27599e1e79c9b67628ee27/argparse.nimble + Success: argparse installed successfully. + Reading official package list + Checking for msgpack4nim@any version + Installing msgpack4nim@any version + Reading official package list + Downloading https://github.com/jangko/msgpack4nim using git + Cloning latest tagged version: v0.4.4 + Verifying dependencies for msgpack4nim@0.4.4 + Installing msgpack4nim@0.4.4 + Copying file /tmp/nimble_570/githubcom_jangkomsgpack4nim/src/msgpack4nim.nim to /home/conda/.nimble/pkgs2/msgpack4nim-0.4.4-af47afd90e9523ea360f7c9bc0aa6b5f6bcaf786/msgpack4nim.nim + Copying file /tmp/nimble_570/githubcom_jangkomsgpack4nim/src/msgpack4nim/msgpack2json.nim to /home/conda/.nimble/pkgs2/msgpack4nim-0.4.4-af47afd90e9523ea360f7c9bc0aa6b5f6bcaf786/msgpack4nim/msgpack2json.nim + Copying file /tmp/nimble_570/githubcom_jangkomsgpack4nim/src/msgpack4nim/msgpack2any.nim to /home/conda/.nimble/pkgs2/msgpack4nim-0.4.4-af47afd90e9523ea360f7c9bc0aa6b5f6bcaf786/msgpack4nim/msgpack2any.nim + Copying file /tmp/nimble_570/githubcom_jangkomsgpack4nim/src/msgpack4nim/msgpack4collection.nim to /home/conda/.nimble/pkgs2/msgpack4nim-0.4.4-af47afd90e9523ea360f7c9bc0aa6b5f6bcaf786/msgpack4nim/msgpack4collection.nim + Copying file /tmp/nimble_570/githubcom_jangkomsgpack4nim/msgpack4nim.nimble to /home/conda/.nimble/pkgs2/msgpack4nim-0.4.4-af47afd90e9523ea360f7c9bc0aa6b5f6bcaf786/msgpack4nim.nimble + Success: msgpack4nim installed successfully. + Reading official package list + Checking for lapper@any version + Installing lapper@any version + Reading official package list + Downloading https://github.com/brentp/nim-lapper using git + Cloning latest tagged version: v0.1.7 + Verifying dependencies for lapper@0.1.7 + Installing lapper@0.1.7 + Copying file /tmp/nimble_570/githubcom_brentpnimlapper/src/lapper.nim to /home/conda/.nimble/pkgs2/lapper-0.1.7-d6b2a932f7b8f786a40c452e763a837603c119ea/lapper.nim + Copying file /tmp/nimble_570/githubcom_brentpnimlapper/lapper.nimble to /home/conda/.nimble/pkgs2/lapper-0.1.7-d6b2a932f7b8f786a40c452e763a837603c119ea/lapper.nimble + Success: lapper installed successfully. + Building strling/strling using c backend + Executing $BUILD_PREFIX/nim/bin/nim c --colors:on --noNimblePath -d:NimblePkgVersion=0.5.2 --path:/home/conda/.nimble/pkgs2/hts-0.3.25-c05c9adf6b2e10a7f07edfef29110ea14bb66611 --path:/home/conda/.nimble/pkgs2/itertools-0.4.0-5a3514a97e4ff2f6ca4f9fab264b3be765527c7f --path:/home/conda/.nimble/pkgs2/msgpack4nim-0.4.4-af47afd90e9523ea360f7c9bc0aa6b5f6bcaf786 --path:/home/conda/.nimble/pkgs2/kmer-0.2.6-2eeac4cd0bd92fefa58c442a9497ab1ed11b725b --path:/home/conda/.nimble/pkgs2/argparse-0.10.1-ca6943a0561568610e27599e1e79c9b67628ee27 --path:/home/conda/.nimble/pkgs2/lapper-0.1.7-d6b2a932f7b8f786a40c452e763a837603c119ea -o:$SRC_DIR/strling $SRC_DIR/src/strling.nim + [1m[0m[32mHint: [0mused config file '/opt/conda/conda-bld/strling_1717628771761/_build_env/nim/config/nim.cfg'[36m [Conf][0m[0m + [1m[0m[32mHint: [0mused config file '/opt/conda/conda-bld/strling_1717628771761/_build_env/nim/config/config.nims'[36m [Conf][0m[0m + [1m[0m[32mHint: [0mused config file '/opt/conda/conda-bld/strling_1717628771761/work/nim.cfg'[36m [Conf][0m[0m + ........................................................................................................................................... + [1m/home/conda/.nimble/pkgs2/lapper-0.1.7-d6b2a932f7b8f786a40c452e763a837603c119ea/lapper.nim(132, 10) [0m[31mError: [0mundeclared identifier: 'shallow'[36m[0m[0m + nimble.nim(229) buildFromDir + + Error: Build failed for the package: strling + Info: Nimble data file "/home/conda/.nimble/nimbledata2.json" has been saved. + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/strling_1717628771761/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/strling/meta.yaml b/recipes/strling/meta.yaml index 89ecced025809..2e3296bfb8c80 100644 --- a/recipes/strling/meta.yaml +++ b/recipes/strling/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 2 skip: True # [osx] requirements: diff --git a/recipes/superstr/meta.yaml b/recipes/superstr/meta.yaml index 3d4aea242ea80..28f42beb07a41 100644 --- a/recipes/superstr/meta.yaml +++ b/recipes/superstr/meta.yaml @@ -12,7 +12,7 @@ source: sha256: {{ sha256 }} build: - number: 3 + number: 4 # skip: True # [osx] requirements: diff --git a/recipes/svdb/meta.yaml b/recipes/svdb/meta.yaml index 18c20ac9579a0..55ca20eaaf5b3 100644 --- a/recipes/svdb/meta.yaml +++ b/recipes/svdb/meta.yaml @@ -13,7 +13,7 @@ build: entry_points: - svdb = svdb.__main__:main script: python -m pip install --no-deps --ignore-installed . - number: 2 + number: 3 run_exports: - {{ pin_subpackage('svdb', max_pin="x") }} diff --git a/recipes/svdss/build_failure.linux-64.yaml b/recipes/svdss/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..b79c12cae45be --- /dev/null +++ b/recipes/svdss/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 482de6cc053f5cdae93ab4c0403880b28e0261a8aecc079bf5e3678d565bab78 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + -CONDA_BUILD_SYSROOT= + INFO: activate-gxx_linux-64.sh made the following environmental changes: + CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/svdss-1.0.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/svdss-1.0.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-g + -- Using conda: -I$PREFIX/include + -- The C compiler identification is GNU 12.3.0 + -- The CXX compiler identification is GNU 12.3.0 + -- Detecting C compiler ABI info + -- Detecting C compiler ABI info - done + -- Check for working C compiler: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc - skipped + -- Detecting C compile features + -- Detecting C compile features - done + -- Detecting CXX compiler ABI info + -- Detecting CXX compiler ABI info - done + -- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c - skipped + -- Detecting CXX compile features + -- Detecting CXX compile features - done + -- Performing Test CMAKE_HAVE_LIBC_PTHREAD + -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed + -- Looking for pthread_create in pthreads + -- Looking for pthread_create in pthreads - not found + -- Looking for pthread_create in pthread + -- Looking for pthread_create in pthread - found + -- Found Threads: TRUE + -- Found OpenMP_C: -fopenmp (found version "4.5") + -- Found OpenMP_CXX: -fopenmp (found version "4.5") + -- Found OpenMP: TRUE (found version "4.5") + -- libdeflate from conda + -- htslib from conda + -- abpoa will be build from source (no -native) + -- parasail will be built from source + -- Configuring done (2.1s) + -- Generating done (0.0s) + -- Build files have been written to: $SRC_DIR/build + [ 1%] Creating directories for 'ropebwt' + [ 3%] Performing download step (git clone) for 'ropebwt' + Cloning into 'ropebwt'... + HEAD is now at bd8dbd3 Fixes compilation error (gcc 10.0.1) + [ 5%] No update step for 'ropebwt' + [ 7%] No patch step for 'ropebwt' + [ 9%] No configure step for 'ropebwt' + [ 11%] Performing build step for 'ropebwt' + mrope.c: In function 'mr_restore': + mrope.c:149:17: warning: variable 'tot' set but not used [-Wunused-but-set-variable] + 149 | int64_t tot, c[6]; + | ^~~ + In file included from mrope.c:8: + In function 'mr_get_c', + inlined from 'mr_restore' at mrope.c:156:8: + mrope.h:94:25: warning: array subscript 6 is outside array bounds of 'int64_t[6]' {aka 'long int[6]'} [-Warray-bounds] + 94 | tot = c[b]; + | ~^~~ + mrope.c: In function 'mr_restore': + mrope.c:149:22: note: at offset 48 into object 'c' of size 48 + 149 | int64_t tot, c[6]; + | ^ + In file included from main.c:10: + In function 'mr_get_c', + inlined from 'main_ropebwt2' at main.c:255:3: + mrope.h:94:25: warning: array subscript 6 is outside array bounds of 'int64_t[6]' {aka 'long int[6]'} [-Warray-bounds] + 94 | tot = c[b]; + | ~^~~ + main.c: In function 'main_ropebwt2': + main.c:253:25: note: at offset 48 into object 'c' of size 48 + 253 | int64_t c[6]; + | ^ + In function 'mr_get_c', + inlined from 'main_ropebwt2' at main.c:282:4: + mrope.h:94:25: warning: array subscript 6 is outside array bounds of 'int64_t[6]' {aka 'long int[6]'} [-Warray-bounds] + 94 | tot = c[b]; + | ~^~~ + main.c: In function 'main_ropebwt2': + main.c:279:33: note: at offset 48 into object 'c' of size 48 + 279 | int64_t c[6]; + | ^ + /opt/conda/conda-bld/svdss_1717959819873/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: cannot find -lz: No such file or directory + collect2: error: ld returned 1 exit status + make[3]: *** [Makefile:16: ropebwt2] Error 1 + make[2]: *** [CMakeFiles/ropebwt.dir/build.make:86: ropebwt-prefix/src/ropebwt-stamp/ropebwt-build] Error 2 + make[1]: *** [CMakeFiles/Makefile2:218: CMakeFiles/ropebwt.dir/all] Error 2 + make: *** [Makefile:91: all] Error 2 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/svdss_1717959819873/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/svdss/meta.yaml b/recipes/svdss/meta.yaml index f1eb16c5152f6..0939c10f7364f 100644 --- a/recipes/svdss/meta.yaml +++ b/recipes/svdss/meta.yaml @@ -10,7 +10,7 @@ source: sha256: {{ sha256 }} build: - number: 2 + number: 3 skip: True # [osx] requirements: diff --git a/recipes/svtk/meta.yaml b/recipes/svtk/meta.yaml index 6e5d36a9fb264..92d335a5746ef 100644 --- a/recipes/svtk/meta.yaml +++ b/recipes/svtk/meta.yaml @@ -9,7 +9,7 @@ source: sha256: edc661d96edbcae714f9f80546447480d0dac152c5e081c5b01355a5fc423dcd build: - number: 4 + number: 5 skip: True # [py<30] script: | touch svtk/baf/__init__.py diff --git a/recipes/syngap/meta.yaml b/recipes/syngap/meta.yaml index 157518de62353..568a9902f57c7 100644 --- a/recipes/syngap/meta.yaml +++ b/recipes/syngap/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 0b8303c0a9b681dee83cab0fecacb0a073cd19e5225d6557c4c735c88d3513c8 build: - number: 0 + number: 1 entry_points: - syngap = SynGAP:main noarch: generic diff --git a/recipes/taxonomy/build_failure.osx-64.yaml b/recipes/taxonomy/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..aac3ff66f31cb --- /dev/null +++ b/recipes/taxonomy/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 20ab377530e681d3bedb6c918d8d0a50b1566558e70e902f8cc131b1d6dba985 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + Applying patch: /Users/runner/work/bioconda-recipes/bioconda-recipes/recipes/taxonomy/pyproject.patch with args: + ['-Np1', '-i', '/tmp/tmpg0jtmin3/pyproject.patch.native', '--binary'] + Patch analysis gives: + [[ RA-MD1LOVE ]] - [[ pyproject.patch ]] + + Key: + + R :: Reversible A :: Applicable + sys.exit(execute()) + Y :: Build-prefix patch in use M :: Minimal, non-amalgamated + D :: Dry-runnable N :: Patch level (1 is preferred) + L :: Patch level not-ambiguous O :: Patch applies without offsets + V :: Patch applies without fuzz E :: Patch applies without emitting to stderr + + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/taxonomy_1717528041571/work + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/taxonomy_1717528041571/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/taxonomy_1717528041571/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/taxonomy_1717528041571/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/taxonomy-0.10.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/taxonomy_1717528041571/work/conda_build.sh']' returned non-zero exit status 1. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/taxonomy-0.10.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + allexport off + braceexpand on + emacs off + errexit on + errtrace off + functrace off + hashall on + histexpand off + history off + ignoreeof off + interactive-comments on + keyword off + monitor off + noclobber off + noexec off + noglob off + nolog off + notify off + nounset on + onecmd off + physical off + pipefail off + posix off + privileged off + verbose off + vi off + xtrace off +# Last 100 lines of the build log. diff --git a/recipes/taxonomy/meta.yaml b/recipes/taxonomy/meta.yaml index eb6ba753a1b93..50482a9b18fb9 100644 --- a/recipes/taxonomy/meta.yaml +++ b/recipes/taxonomy/meta.yaml @@ -12,7 +12,7 @@ source: - pyproject.patch build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('taxonomy', max_pin="x.x") }} diff --git a/recipes/telseq/build_failure.osx-64.yaml b/recipes/telseq/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..6536e5d2a079a --- /dev/null +++ b/recipes/telseq/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 2fd9750a1a225c0d547b8df2313002147680bfc318a7067da9e42877dba37843 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + utils.check_call_env( + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/telseq-0.0.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/telseq_1717627707943/work/conda_build.sh']' returned non-zero exit status 2. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/telseq-0.0.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/telseq-0.0.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/telseq-0.0.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + checking for a BSD-compatible install... /usr/bin/install -c + checking whether build environment is sane... yes + checking for a race-free mkdir -p... ./install-sh -c -d + checking for gawk... no + checking for mawk... no + checking for nawk... no + checking for awk... awk + checking whether make sets $(MAKE)... yes + checking whether make supports nested variables... yes + checking for x86_64-apple-darwin13.4.0-gcc... x86_64-apple-darwin13.4.0-clang + checking whether the C compiler works... yes + checking for C compiler default output file name... a.out + checking for suffix of executables... + checking whether we are cross compiling... no + checking for suffix of object files... o + checking whether the compiler supports GNU C... yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes + checking for x86_64-apple-darwin13.4.0-clang option to enable C11 features... none needed + checking whether x86_64-apple-darwin13.4.0-clang understands -c and -o together... yes + checking whether make supports the include directive... yes (GNU style) + checking dependency style of x86_64-apple-darwin13.4.0-clang... gcc3 + checking whether the compiler supports GNU C... yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes + checking for x86_64-apple-darwin13.4.0-clang option to enable C11 features... none needed + checking dependency style of x86_64-apple-darwin13.4.0-clang... gcc3 + checking for x86_64-apple-darwin13.4.0-ranlib... x86_64-apple-darwin13.4.0-ranlib + checking for stdio.h... yes + checking for stdlib.h... yes + checking for string.h... yes + checking for inttypes.h... yes + checking for stdint.h... yes + checking for strings.h... yes + checking for sys/stat.h... yes + checking for sys/types.h... yes + checking for unistd.h... yes + checking for api/BamReader.h... yes + checking that generated files are newer than configure... done + configure: creating ./config.status + config.status: creating Makefile + config.status: creating Util/Makefile + config.status: creating Telseq/Makefile + config.status: creating config.h + config.status: executing depfiles commands + make all-recursive + make[1]: Entering directory '$SRC_DIR/src' + Making all in Util + make[2]: Entering directory '$SRC_DIR/src/Util' + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I$PREFIX/include -I$PREFIX/include/bamtools -Wall -Wextra -Wno-unknown-pragmas -g -O0 -std=c11 -MT Util.o -MD -MP -MF .deps/Util.Tpo -c -o Util.o Util.cpp + make[2]: Leaving directory '$SRC_DIR/src/Util' + make[1]: Leaving directory '$SRC_DIR/src' +# Last 100 lines of the build log. diff --git a/recipes/telseq/meta.yaml b/recipes/telseq/meta.yaml index 883617fc93b9a..102fffee130f0 100644 --- a/recipes/telseq/meta.yaml +++ b/recipes/telseq/meta.yaml @@ -9,7 +9,7 @@ source: sha256: aac2477f0d01390d1603afe09cadf0f7ba0fb8864c579289dcbe363ca9bbfa1a build: - number: 6 + number: 7 requirements: build: diff --git a/recipes/tepeaks/meta.yaml b/recipes/tepeaks/meta.yaml index c377a3039c25c..3f1e556d61e26 100644 --- a/recipes/tepeaks/meta.yaml +++ b/recipes/tepeaks/meta.yaml @@ -10,7 +10,7 @@ source: sha256: unused build: - number: 5 + number: 6 skip: True # [osx] requirements: diff --git a/recipes/terrace/build_failure.linux-64.yaml b/recipes/terrace/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..91cff61d81c8c --- /dev/null +++ b/recipes/terrace/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 08d1979fd5bb1d72e19339c9a896ed198415ef98d443d540030963c3d8ef91b3 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + BUILD START: ['terrace-1.1.2-hdbdd923_1.tar.bz2'] + Reloading output folder (file:///opt/host-conda-bld): ...working... done + Solving environment (_h_env): ...working... done + + ## Package Plan ## + + environment location: /opt/conda/conda-bld/terrace_1717787510676/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place + + + The following NEW packages will be INSTALLED: + + _libgcc_mutex: 0.1-conda_forge conda-forge + _openmp_mutex: 4.5-2_gnu conda-forge + boost-cpp: 1.85.0-h44aadfe_1 conda-forge + bzip2: 1.0.8-hd590300_5 conda-forge + c-ares: 1.28.1-hd590300_0 conda-forge + ca-certificates: 2024.6.2-hbcca054_0 conda-forge + htslib: 1.20-h5efdd21_1 bioconda + icu: 73.2-h59595ed_0 conda-forge + keyutils: 1.6.1-h166bdaf_0 conda-forge + krb5: 1.21.2-h659d440_0 conda-forge + libboost: 1.85.0-hba137d9_1 conda-forge + libboost-devel: 1.85.0-h00ab1b0_1 conda-forge + libboost-headers: 1.85.0-ha770c72_1 conda-forge + libcurl: 8.8.0-hca28451_0 conda-forge + libdeflate: 1.20-hd590300_0 conda-forge + libedit: 3.1.20191231-he28a2e2_2 conda-forge + libev: 4.33-hd590300_2 conda-forge + libgcc-ng: 13.2.0-h77fa898_7 conda-forge + libgomp: 13.2.0-h77fa898_7 conda-forge + libnghttp2: 1.58.0-h47da74e_1 conda-forge + libssh2: 1.11.0-h0841786_0 conda-forge + libstdcxx-ng: 13.2.0-hc0a3c3a_7 conda-forge + libzlib: 1.3.1-h4ab18f5_1 conda-forge + ncurses: 6.5-h59595ed_0 conda-forge + openssl: 3.3.1-h4ab18f5_0 conda-forge + xz: 5.2.6-h166bdaf_0 conda-forge + zstd: 1.5.6-ha6fb4c9_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Reloading output folder (file:///opt/host-conda-bld): ...working... done + Solving environment (_build_env): ...working... done + Reloading output folder (file:///opt/host-conda-bld): ...working... done + Solving environment (_test_env): ...working... done + + ## Package Plan ## + + environment location: /opt/conda/conda-bld/terrace_1717787510676/_build_env + + + The following NEW packages will be INSTALLED: + + _libgcc_mutex: 0.1-conda_forge conda-forge + _openmp_mutex: 4.5-2_gnu conda-forge + binutils_impl_linux-64: 2.40-ha1999f0_2 conda-forge + binutils_linux-64: 2.40-hdade7a5_3 conda-forge + gcc_impl_linux-64: 12.3.0-h58ffeeb_7 conda-forge + gcc_linux-64: 12.3.0-h6477408_3 conda-forge + gxx_impl_linux-64: 12.3.0-h2a574ab_7 conda-forge + gxx_linux-64: 12.3.0-h4a1b8e8_3 conda-forge + kernel-headers_linux-64: 2.6.32-he073ed8_17 conda-forge + ld_impl_linux-64: 2.40-hf3520f5_2 conda-forge + libgcc-devel_linux-64: 12.3.0-h0223996_107 conda-forge + libgcc-ng: 13.2.0-h77fa898_7 conda-forge + libgomp: 13.2.0-h77fa898_7 conda-forge + libsanitizer: 12.3.0-hb8811af_7 conda-forge + libstdcxx-devel_linux-64: 12.3.0-h0223996_107 conda-forge + libstdcxx-ng: 13.2.0-hc0a3c3a_7 conda-forge + make: 4.3-hd18ef5c_1 conda-forge + sysroot_linux-64: 2.12-he073ed8_17 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Source cache directory is: /opt/conda/conda-bld/src_cache + Downloading source to cache: terrace-1.1.2_cac4e9ae9e.tar.gz + Downloading https://github.com/Shao-Group/TERRACE/releases/download/v1.1.2/terrace-1.1.2.tar.gz + Success + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2419, in build + try_download(m, no_download_source=False, raise_error=True) + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 762, in try_download + source.provide(metadata) + File "/opt/conda/lib/python3.10/site-packages/conda_build/source.py", line 1035, in provide + unpack( + File "/opt/conda/lib/python3.10/site-packages/conda_build/source.py", line 169, in unpack + src_path, unhashed_fn = download_to_cache( + File "/opt/conda/lib/python3.10/site-packages/conda_build/source.py", line 125, in download_to_cache + raise RuntimeError( + RuntimeError: SHA256 mismatch: '8ce51497f6f34acc1f391d70e922ec27eddc986bfea81ae123338ab55c396985' != 'cac4e9ae9ec61f49089c898f8c9484057ff16534fa1b12b02a5a06346dc56e8c' +# Last 100 lines of the build log. diff --git a/recipes/terrace/build_failure.osx-64.yaml b/recipes/terrace/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..06863a650dfa7 --- /dev/null +++ b/recipes/terrace/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 08d1979fd5bb1d72e19339c9a896ed198415ef98d443d540030963c3d8ef91b3 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + + ## Package Plan ## + + environment location: /opt/mambaforge/envs/bioconda/conda-bld/terrace_1717630994812/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh + + + The following NEW packages will be INSTALLED: + + boost-cpp: 1.85.0-h07eb623_1 conda-forge + bzip2: 1.0.8-h10d778d_5 conda-forge + c-ares: 1.28.1-h10d778d_0 conda-forge + ca-certificates: 2024.6.2-h8857fd0_0 conda-forge + htslib: 1.20-hec81eee_1 bioconda + icu: 73.2-hf5e326d_0 conda-forge + krb5: 1.21.2-hb884880_0 conda-forge + libboost: 1.85.0-h739af76_1 conda-forge + libboost-devel: 1.85.0-h2b186f8_1 conda-forge + libboost-headers: 1.85.0-h694c41f_1 conda-forge + libcurl: 8.8.0-hf9fcc65_0 conda-forge + libcxx: 17.0.6-h88467a6_0 conda-forge + libdeflate: 1.20-h49d49c5_0 conda-forge + libedit: 3.1.20191231-h0678c8f_2 conda-forge + libev: 4.33-h10d778d_2 conda-forge + libnghttp2: 1.58.0-h64cf6d3_1 conda-forge + libssh2: 1.11.0-hd019ec5_0 conda-forge + libzlib: 1.3.1-h87427d6_1 conda-forge + ncurses: 6.5-h5846eda_0 conda-forge + openssl: 3.3.1-h87427d6_0 conda-forge + xz: 5.2.6-h775f41a_0 conda-forge + zstd: 1.5.6-h915ae27_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Reloading output folder (local): ...working... done + Solving environment (_build_env): ...working... done + Reloading output folder (local): ...working... done + Solving environment (_test_env): ...working... done + + ## Package Plan ## + + environment location: /opt/mambaforge/envs/bioconda/conda-bld/terrace_1717630994812/_build_env + + + The following NEW packages will be INSTALLED: + + ca-certificates: 2024.6.2-h8857fd0_0 conda-forge + cctools_osx-64: 986-ha1c5b94_0 conda-forge + clang: 16.0.6-hd4457cd_7 conda-forge + clang-16: 16.0.6-default_h4c8afb6_7 conda-forge + clang_impl_osx-64: 16.0.6-h8787910_15 conda-forge + clang_osx-64: 16.0.6-hb91bd55_15 conda-forge + clangxx: 16.0.6-default_ha3b9224_7 conda-forge + clangxx_impl_osx-64: 16.0.6-h6d92fbe_15 conda-forge + clangxx_osx-64: 16.0.6-hb91bd55_15 conda-forge + compiler-rt: 16.0.6-ha38d28d_2 conda-forge + compiler-rt_osx-64: 16.0.6-ha38d28d_2 conda-forge + icu: 73.2-hf5e326d_0 conda-forge + ld64_osx-64: 711-ha20a434_0 conda-forge + libclang-cpp16: 16.0.6-default_h4c8afb6_7 conda-forge + libcxx: 17.0.6-h88467a6_0 conda-forge + libiconv: 1.17-hd75f5a5_2 conda-forge + libllvm16: 16.0.6-hbedff68_3 conda-forge + libxml2: 2.12.7-h3e169fe_1 conda-forge + libzlib: 1.3.1-h87427d6_1 conda-forge + llvm-tools: 16.0.6-hbedff68_3 conda-forge + make: 4.3-h22f3db7_1 conda-forge + openssl: 3.3.1-h87427d6_0 conda-forge + sigtool: 0.1.3-h88f4db0_0 conda-forge + tapi: 1100.0.11-h9ce4665_0 conda-forge + xz: 5.2.6-h775f41a_0 conda-forge + zstd: 1.5.6-h915ae27_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache + Downloading source to cache: terrace-1.1.2_cac4e9ae9e.tar.gz + Downloading https://github.com/Shao-Group/TERRACE/releases/download/v1.1.2/terrace-1.1.2.tar.gz + Success + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2419, in build + try_download(m, no_download_source=False, raise_error=True) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 762, in try_download + source.provide(metadata) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/source.py", line 1035, in provide + unpack( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/source.py", line 169, in unpack + src_path, unhashed_fn = download_to_cache( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/source.py", line 125, in download_to_cache + raise RuntimeError( + RuntimeError: SHA256 mismatch: '8ce51497f6f34acc1f391d70e922ec27eddc986bfea81ae123338ab55c396985' != 'cac4e9ae9ec61f49089c898f8c9484057ff16534fa1b12b02a5a06346dc56e8c' +# Last 100 lines of the build log. diff --git a/recipes/terrace/meta.yaml b/recipes/terrace/meta.yaml index 6def5bd34e555..99bbb2b09b071 100644 --- a/recipes/terrace/meta.yaml +++ b/recipes/terrace/meta.yaml @@ -10,7 +10,7 @@ source: sha256: "cac4e9ae9ec61f49089c898f8c9484057ff16534fa1b12b02a5a06346dc56e8c" build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('terrace', max_pin="x") }} diff --git a/recipes/tiddit/meta.yaml b/recipes/tiddit/meta.yaml index 6a01cfa4faf91..1f3bce3e17e76 100644 --- a/recipes/tiddit/meta.yaml +++ b/recipes/tiddit/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 0b88391f15b6bf854f6f62179c6a8c8c6cda8c87964259602ab8d42bc6dd5d0f build: - number: 1 + number: 2 entry_points: - tiddit = tiddit.__main__:main script: python -m pip install --no-deps --ignore-installed . diff --git a/recipes/tigmint/meta.yaml b/recipes/tigmint/meta.yaml index 5f68d655ca4f6..7c4c77a4824a0 100644 --- a/recipes/tigmint/meta.yaml +++ b/recipes/tigmint/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 8e7b5d424ff69d5da7b117bef9996463b02205078ce0fb6e3074ca6c9933efa9 build: - number: 1 + number: 2 skip: True # [py<38] diff --git a/recipes/tinyalign/meta.yaml b/recipes/tinyalign/meta.yaml index 2f93e3baeabb8..f9afc31f9b9f0 100644 --- a/recipes/tinyalign/meta.yaml +++ b/recipes/tinyalign/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 9c6dc91ae4a886ab9369a106115add04c71fb62b45f706247d494e43ccf7a588 build: - number: 0 + number: 1 script: "{{ PYTHON }} -m pip install . --no-deps -vv" skip: True # [py < 37] run_exports: diff --git a/recipes/tiptoft/build_failure.linux-64.yaml b/recipes/tiptoft/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..bce002edc44d9 --- /dev/null +++ b/recipes/tiptoft/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: d64eb0afcb957606c8a2582ee382b367d9e63af84cd27659d25ad04659e40a2d # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + LD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld + LD_GOLD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld.gold + NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-nm + OBJCOPY=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objcopy + OBJDUMP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objdump + RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib + READELF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-readelf + SIZE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-size + STRINGS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strings + STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip + INFO: activate-gcc_linux-64.sh made the following environmental changes: + BUILD=x86_64-conda-linux-gnu + CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/tiptoft-1.0.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr + CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot + CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu + CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu + CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/tiptoft-1.0.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + Processing $SRC_DIR + Preparing metadata (setup.py): started + Preparing metadata (setup.py): finished with status 'done' + Building wheels for collected packages: tiptoft + Building wheel for tiptoft (setup.py): started + Building wheel for tiptoft (setup.py): finished with status 'error' + [1;31merror[0m: [1msubprocess-exited-with-error[0m + + [31m[0m [32mpython setup.py bdist_wheel[0m did not run successfully. + [31m[0m exit code: [1;36m1[0m + [31m>[0m [31m[30 lines of output][0m + [31m [0m running bdist_wheel + [31m [0m running build + [31m [0m running build_py + [31m [0m creating build + [31m [0m creating build/lib.linux-x86_64-cpython-311 + [31m [0m creating build/lib.linux-x86_64-cpython-311/tiptoft + [31m [0m copying tiptoft/TipToft.py -> build/lib.linux-x86_64-cpython-311/tiptoft + [31m [0m copying tiptoft/__init__.py -> build/lib.linux-x86_64-cpython-311/tiptoft + [31m [0m copying tiptoft/Gene.py -> build/lib.linux-x86_64-cpython-311/tiptoft + [31m [0m copying tiptoft/Kmers.py -> build/lib.linux-x86_64-cpython-311/tiptoft + [31m [0m copying tiptoft/Fastq.py -> build/lib.linux-x86_64-cpython-311/tiptoft + [31m [0m copying tiptoft/RefGenesGetter.py -> build/lib.linux-x86_64-cpython-311/tiptoft + [31m [0m copying tiptoft/Blocks.py -> build/lib.linux-x86_64-cpython-311/tiptoft + [31m [0m copying tiptoft/TipToftDatabaseDownloader.py -> build/lib.linux-x86_64-cpython-311/tiptoft + [31m [0m copying tiptoft/Fasta.py -> build/lib.linux-x86_64-cpython-311/tiptoft + [31m [0m copying tiptoft/InputTypes.py -> build/lib.linux-x86_64-cpython-311/tiptoft + [31m [0m copying tiptoft/Read.py -> build/lib.linux-x86_64-cpython-311/tiptoft + [31m [0m creating build/lib.linux-x86_64-cpython-311/tiptoft/data + [31m [0m copying tiptoft/data/20180928.txt -> build/lib.linux-x86_64-cpython-311/tiptoft/data + [31m [0m copying tiptoft/data/plasmid_data.tsv -> build/lib.linux-x86_64-cpython-311/tiptoft/data + [31m [0m copying tiptoft/data/plasmid_data.fa -> build/lib.linux-x86_64-cpython-311/tiptoft/data + [31m [0m running build_ext + [31m [0m building 'homopolymer_compression' extension + [31m [0m creating build/temp.linux-x86_64-cpython-311 + [31m [0m /opt/conda/conda-bld/tiptoft_1717683962987/_build_env/bin/x86_64-conda-linux-gnu-cc -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/conda/conda-bld/tiptoft_1717683962987/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/include -fPIC -O2 -isystem /opt/conda/conda-bld/tiptoft_1717683962987/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /opt/conda/conda-bld/tiptoft_1717683962987/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/include -fdebug-prefix-map=/opt/conda/conda-bld/tiptoft_1717683962987/work=/usr/local/src/conda/tiptoft-1.0.2 -fdebug-prefix-map=/opt/conda/conda-bld/tiptoft_1717683962987/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place=/usr/local/src/conda-prefix -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/conda-bld/tiptoft_1717683962987/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/include -fPIC -I/opt/conda/conda-bld/tiptoft_1717683962987/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/include/python3.11 -c homopolymer_compression.c -o build/temp.linux-x86_64-cpython-311/homopolymer_compression.o + [31m [0m homopolymer_compression.c:193:12: fatal error: longintrepr.h: No such file or directory + [31m [0m 193 | #include "longintrepr.h" + [31m [0m | ^~~~~~~~~~~~~~~ + [31m [0m compilation terminated. + [31m [0m error: command '/opt/conda/conda-bld/tiptoft_1717683962987/_build_env/bin/x86_64-conda-linux-gnu-cc' failed with exit code 1 + [31m [0m [31m[end of output][0m + + [1;35mnote[0m: This error originates from a subprocess, and is likely not a problem with pip. + [31m ERROR: Failed building wheel for tiptoft[0m[31m + [0m Running setup.py clean for tiptoft + Failed to build tiptoft + [31mERROR: Could not build wheels for tiptoft, which is required to install pyproject.toml-based projects[0m[31m + [0mTraceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/tiptoft_1717683962987/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/tiptoft/build_failure.osx-64.yaml b/recipes/tiptoft/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..aecfd9c26e122 --- /dev/null +++ b/recipes/tiptoft/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: d64eb0afcb957606c8a2582ee382b367d9e63af84cd27659d25ad04659e40a2d # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + copying tiptoft/Kmers.py -> build/lib.macosx-10.9-x86_64-cpython-312/tiptoft + copying tiptoft/RefGenesGetter.py -> build/lib.macosx-10.9-x86_64-cpython-312/tiptoft + copying tiptoft/__init__.py -> build/lib.macosx-10.9-x86_64-cpython-312/tiptoft + copying tiptoft/Fastq.py -> build/lib.macosx-10.9-x86_64-cpython-312/tiptoft + copying tiptoft/TipToft.py -> build/lib.macosx-10.9-x86_64-cpython-312/tiptoft + copying tiptoft/TipToftDatabaseDownloader.py -> build/lib.macosx-10.9-x86_64-cpython-312/tiptoft + copying tiptoft/InputTypes.py -> build/lib.macosx-10.9-x86_64-cpython-312/tiptoft + copying tiptoft/Gene.py -> build/lib.macosx-10.9-x86_64-cpython-312/tiptoft + copying tiptoft/Blocks.py -> build/lib.macosx-10.9-x86_64-cpython-312/tiptoft + copying tiptoft/Fasta.py -> build/lib.macosx-10.9-x86_64-cpython-312/tiptoft + copying tiptoft/Read.py -> build/lib.macosx-10.9-x86_64-cpython-312/tiptoft + creating build/lib.macosx-10.9-x86_64-cpython-312/tiptoft/data + copying tiptoft/data/plasmid_data.fa -> build/lib.macosx-10.9-x86_64-cpython-312/tiptoft/data + copying tiptoft/data/20180928.txt -> build/lib.macosx-10.9-x86_64-cpython-312/tiptoft/data + copying tiptoft/data/plasmid_data.tsv -> build/lib.macosx-10.9-x86_64-cpython-312/tiptoft/data + running build_ext + building 'homopolymer_compression' extension + creating build/temp.macosx-10.9-x86_64-cpython-312 + x86_64-apple-darwin13.4.0-clang -fno-strict-overflow -DNDEBUG -O2 -Wall -fPIC -O2 -isystem /opt/mambaforge/envs/bioconda/conda-bld/tiptoft_1717629899359/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include -fPIC -O2 -isystem /opt/mambaforge/envs/bioconda/conda-bld/tiptoft_1717629899359/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem /opt/mambaforge/envs/bioconda/conda-bld/tiptoft_1717629899359/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include -fdebug-prefix-map=/opt/mambaforge/envs/bioconda/conda-bld/tiptoft_1717629899359/work=/usr/local/src/conda/tiptoft-1.0.2 -fdebug-prefix-map=/opt/mambaforge/envs/bioconda/conda-bld/tiptoft_1717629899359/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh=/usr/local/src/conda-prefix -D_FORTIFY_SOURCE=2 -isystem /opt/mambaforge/envs/bioconda/conda-bld/tiptoft_1717629899359/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include -mmacosx-version-min=10.9 -I/opt/mambaforge/envs/bioconda/conda-bld/tiptoft_1717629899359/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include/python3.12 -c homopolymer_compression.c -o build/temp.macosx-10.9-x86_64-cpython-312/homopolymer_compression.o + homopolymer_compression.c:193:12: fatal error: 'longintrepr.h' file not found + #include "longintrepr.h" + ^~~~~~~~~~~~~~~ + 1 error generated. + error: command '/opt/mambaforge/envs/bioconda/conda-bld/tiptoft_1717629899359/_build_env/bin/x86_64-apple-darwin13.4.0-clang' failed with exit code 1 + [end of output] + + note: This error originates from a subprocess, and is likely not a problem with pip. + ERROR: Failed building wheel for tiptoft + ERROR: Could not build wheels for tiptoft, which is required to install pyproject.toml-based projects + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/tiptoft_1717629899359/work + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/tiptoft_1717629899359/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/tiptoft_1717629899359/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/tiptoft_1717629899359/work + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/tiptoft-1.0.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/tiptoft_1717629899359/work/conda_build.sh']' returned non-zero exit status 1. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/tiptoft-1.0.2 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + Processing $SRC_DIR + Preparing metadata (setup.py): started + Preparing metadata (setup.py): finished with status 'done' + Building wheels for collected packages: tiptoft + Building wheel for tiptoft (setup.py): started + Building wheel for tiptoft (setup.py): finished with status 'error' + Running setup.py clean for tiptoft + Failed to build tiptoft +# Last 100 lines of the build log. diff --git a/recipes/tiptoft/meta.yaml b/recipes/tiptoft/meta.yaml index 5c3827172cedd..53ad6045c39cb 100644 --- a/recipes/tiptoft/meta.yaml +++ b/recipes/tiptoft/meta.yaml @@ -10,7 +10,7 @@ source: sha256: {{ hash_value }} build: - number: 4 + number: 5 skip: True # [py<30] script: python -m pip install --no-deps --ignore-installed . diff --git a/recipes/tksm/meta.yaml b/recipes/tksm/meta.yaml index f1d6d883e248a..33ed879f901ef 100644 --- a/recipes/tksm/meta.yaml +++ b/recipes/tksm/meta.yaml @@ -10,7 +10,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 skip: True # [py < 3.8 or osx] run_exports: - {{ pin_subpackage('tksm', max_pin="x.x") }} diff --git a/recipes/tobias/build_failure.osx-64.yaml b/recipes/tobias/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..f47826a03c2a2 --- /dev/null +++ b/recipes/tobias/build_failure.osx-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: fd2f56c64b4fe9cdd52bb0038f4f3b522df14f7c8557b4cf9427fee88c66bea8 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: compiler error +log: |2- + ERROR: Failed building wheel for tobias + ERROR: Could not build wheels for tobias, which is required to install pyproject.toml-based projects + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/tobias_1718205251034/work + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/tobias_1718205251034/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/tobias_1718205251034/_build_env + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/tobias_1718205251034/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/tobias_1718205251034/work/conda_build.sh']' returned non-zero exit status 1. + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/tobias-0.16.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/tobias-0.16.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + Using pip 24.0 from $PREFIX/lib/python3.12/site-packages/pip (python 3.12) + Non-user install because user site-packages disabled + Ignoring indexes: https://pypi.org/simple + Created temporary directory: /private/tmp/pip-build-tracker-gr863o_8 + Initialized build tracking at /private/tmp/pip-build-tracker-gr863o_8 + Created build tracker: /private/tmp/pip-build-tracker-gr863o_8 + Entered build tracker: /private/tmp/pip-build-tracker-gr863o_8 + Created temporary directory: /private/tmp/pip-install-2n_t78tp + Created temporary directory: /private/tmp/pip-ephem-wheel-cache-_q8qaso5 + Processing $SRC_DIR + Added file://$SRC_DIR to build tracker '/private/tmp/pip-build-tracker-gr863o_8' + Created temporary directory: /private/tmp/pip-modern-metadata-2xqken65 + Preparing metadata (pyproject.toml): started + Preparing metadata (pyproject.toml): finished with status 'done' + Source in $SRC_DIR has version 0.16.1, which satisfies requirement tobias==0.16.1 from file://$SRC_DIR + Removed tobias==0.16.1 from file://$SRC_DIR from build tracker '/private/tmp/pip-build-tracker-gr863o_8' + Created temporary directory: /private/tmp/pip-unpack-pkeotrt5 + Building wheels for collected packages: tobias + Created temporary directory: /private/tmp/pip-wheel-s259fm0q + Destination directory: /private/tmp/pip-wheel-s259fm0q + Building wheel for tobias (pyproject.toml): started + Building wheel for tobias (pyproject.toml): finished with status 'error' + Failed to build tobias + Exception information: + Traceback (most recent call last): + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper + status = run_func(*args) + ^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper + return func(self, options, args) + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "$PREFIX/lib/python3.12/site-packages/pip/_internal/commands/install.py", line 429, in run + raise InstallationError( + pip._internal.exceptions.InstallationError: Could not build wheels for tobias, which is required to install pyproject.toml-based projects + Removed build tracker: '/private/tmp/pip-build-tracker-gr863o_8' +# Last 100 lines of the build log. diff --git a/recipes/tobias/meta.yaml b/recipes/tobias/meta.yaml index f2c9e5143b87b..b15a6c6c83076 100644 --- a/recipes/tobias/meta.yaml +++ b/recipes/tobias/meta.yaml @@ -11,8 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 - skip: True # [py < 37] + number: 1 script: {{ PYTHON }} -m pip install . --use-pep517 --no-deps --no-build-isolation -vvv entry_points: - TOBIAS=tobias.TOBIAS:main diff --git a/recipes/tpmcalculator/build_failure.osx-64.yaml b/recipes/tpmcalculator/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..6b070ece14b79 --- /dev/null +++ b/recipes/tpmcalculator/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 3faa63bcf060e6dacc00629f337e94b84d15aff1a58cc1c9aa80b3de4f4a71ee # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + /opt/mambaforge/envs/bioconda/conda-bld/tpmcalculator_1717627549089/_build_env/bin/../include/c/v1/__config:1022:49: note: expanded from macro '_LIBCPP_DEPRECATED' + # define _LIBCPP_DEPRECATED __attribute__((__deprecated__)) + ^ + 2 warnings and 1 error generated. + make[2]: *** [nbproject/Makefile-Release.mk:119: build/Release/GNU-MacOSX/src/TextParser.o] Error 1 + make[1]: *** [nbproject/Makefile-Release.mk:85: .build-conf] Error 2 + make: *** [nbproject/Makefile-impl.mk:40: .build-impl] Error 2 + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/tpmcalculator_1717627549089/work + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/tpmcalculator_1717627549089/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_ + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/tpmcalculator_1717627549089/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/tpmcalculator_1717627549089/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/tpmcalculator-0.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/tpmcalculator-0.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/tpmcalculator_1717627549089/work/conda_build.sh']' returned non-zero exit status 2. + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/tpmcalculator-0.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/tpmcalculator-0.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + "make" -f nbproject/Makefile-Release.mk QMAKE= SUBPROJECTS= .build-conf + make[1]: Entering directory '$SRC_DIR' + "make" -f nbproject/Makefile-Release.mk bin/TPMCalculator + make[2]: Entering directory '$SRC_DIR' + mkdir -p build/Release/GNU-MacOSX/src + rm -f "build/Release/GNU-MacOSX/src/DiffExpIR.o.d" + x86_64-apple-darwin13.4.0-clang -g -I$PREFIX/include/bamtools -c -O2 -Iincludes -I../../bamtools/include/bamtools -std=c14 -MMD -MP -MF "build/Release/GNU-MacOSX/src/DiffExpIR.o.d" -o build/Release/GNU-MacOSX/src/DiffExpIR.o src/DiffExpIR.cpp + mkdir -p build/Release/GNU-MacOSX/src + rm -f "build/Release/GNU-MacOSX/src/FastaFactory.o.d" + x86_64-apple-darwin13.4.0-clang -g -I$PREFIX/include/bamtools -c -O2 -Iincludes -I../../bamtools/include/bamtools -std=c14 -MMD -MP -MF "build/Release/GNU-MacOSX/src/FastaFactory.o.d" -o build/Release/GNU-MacOSX/src/FastaFactory.o src/FastaFactory.cpp + mkdir -p build/Release/GNU-MacOSX/src + rm -f "build/Release/GNU-MacOSX/src/RandomFactory.o.d" + x86_64-apple-darwin13.4.0-clang -g -I$PREFIX/include/bamtools -c -O2 -Iincludes -I../../bamtools/include/bamtools -std=c14 -MMD -MP -MF "build/Release/GNU-MacOSX/src/RandomFactory.o.d" -o build/Release/GNU-MacOSX/src/RandomFactory.o src/RandomFactory.cpp + mkdir -p build/Release/GNU-MacOSX/src + rm -f "build/Release/GNU-MacOSX/src/ReadFactory.o.d" + x86_64-apple-darwin13.4.0-clang -g -I$PREFIX/include/bamtools -c -O2 -Iincludes -I../../bamtools/include/bamtools -std=c14 -MMD -MP -MF "build/Release/GNU-MacOSX/src/ReadFactory.o.d" -o build/Release/GNU-MacOSX/src/ReadFactory.o src/ReadFactory.cpp + mkdir -p build/Release/GNU-MacOSX/src + rm -f "build/Release/GNU-MacOSX/src/Stats.o.d" + x86_64-apple-darwin13.4.0-clang -g -I$PREFIX/include/bamtools -c -O2 -Iincludes -I../../bamtools/include/bamtools -std=c14 -MMD -MP -MF "build/Release/GNU-MacOSX/src/Stats.o.d" -o build/Release/GNU-MacOSX/src/Stats.o src/Stats.cpp + mkdir -p build/Release/GNU-MacOSX/src + rm -f "build/Release/GNU-MacOSX/src/TextParser.o.d" + x86_64-apple-darwin13.4.0-clang -g -I$PREFIX/include/bamtools -c -O2 -Iincludes -I../../bamtools/include/bamtools -std=c14 -MMD -MP -MF "build/Release/GNU-MacOSX/src/TextParser.o.d" -o build/Release/GNU-MacOSX/src/TextParser.o src/TextParser.cpp + make[2]: Leaving directory '$SRC_DIR' + make[1]: Leaving directory '$SRC_DIR' +# Last 100 lines of the build log. diff --git a/recipes/tpmcalculator/meta.yaml b/recipes/tpmcalculator/meta.yaml index f396e5ce74e01..c18dbdb83154d 100644 --- a/recipes/tpmcalculator/meta.yaml +++ b/recipes/tpmcalculator/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 1a4c891b30f51e46752f5ca7b28944a993f94e9983a3a5eced241b45e9e459de build: - number: 3 + number: 4 requirements: build: diff --git a/recipes/tracy/meta.yaml b/recipes/tracy/meta.yaml index 65264cff150a4..ee530f591de05 100644 --- a/recipes/tracy/meta.yaml +++ b/recipes/tracy/meta.yaml @@ -13,7 +13,7 @@ source: git_rev: a654b57 build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage("tracy", max_pin="x.x") }} diff --git a/recipes/treemix/build_failure.osx-64.yaml b/recipes/treemix/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..6b120cb1a7881 --- /dev/null +++ b/recipes/treemix/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 3cdff620ea62dbf5a358af7054630871b262837c1810d1a11593c4faa7cf88ea # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/treemix_1717518490688/work + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/treemix_1717518490688/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/treemix_1717518490688/_build_env + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/treemix_1717518490688/work/conda_build.sh']' returned non-zero exit status 2. + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/treemix_1717518490688/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/treemix-1.13 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/treemix-1.13 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/treemix-1.13 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/treemix-1.13 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + checking whether the C compiler works... yes + checking for C compiler default output file name... a.out + checking for suffix of executables... + checking whether we are cross compiling... no + checking for suffix of object files... o + checking whether we are using the GNU C compiler... yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes + checking for a BSD-compatible install... /usr/bin/install -c + checking whether build environment is sane... yes + checking for a thread-safe mkdir -p... ./install-sh -c -d + checking for gawk... no + checking for mawk... no + checking for nawk... no + checking for awk... awk + checking whether make sets $(MAKE)... yes + checking for style of include used by make... GNU + checking whether make supports nested variables... yes + checking dependency style of x86_64-apple-darwin13.4.0-clang... gcc3 + checking for x86_64-apple-darwin13.4.0-gcc... x86_64-apple-darwin13.4.0-clang + checking whether we are using the GNU C compiler... yes + checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes + checking for x86_64-apple-darwin13.4.0-clang option to accept ISO C89... none needed + checking whether x86_64-apple-darwin13.4.0-clang understands -c and -o together... yes + checking dependency style of x86_64-apple-darwin13.4.0-clang... gcc3 + checking for gzopen in -lz... yes + checking for cos in -lm... yes + checking for cblas_dgemm in -lgslcblas... yes + checking for gsl_blas_dgemm in -lgsl... yes + checking for boostlib >= 1.42... yes + checking that generated files are newer than configure... done + configure: creating ./config.status + config.status: creating Makefile + config.status: creating src/Makefile + config.status: creating config.h + config.status: executing depfiles commands + make all-recursive + make[1]: Entering directory '$SRC_DIR' + Making all in src + make[2]: Entering directory '$SRC_DIR/src' + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/treemix-1.13 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT TreeMix.o -MD -MP -MF .deps/TreeMix.Tpo -c -o TreeMix.o TreeMix.cpp + x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -I.. -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -I$PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/treemix-1.13 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT gzstream.o -MD -MP -MF .deps/gzstream.Tpo -c -o gzstream.o gzstream.cpp + mv -f .deps/TreeMix.Tpo .deps/TreeMix.Po + make[2]: Leaving directory '$SRC_DIR/src' + make[1]: Leaving directory '$SRC_DIR' +# Last 100 lines of the build log. diff --git a/recipes/treemix/meta.yaml b/recipes/treemix/meta.yaml index ae5ed468e6315..ea21b86229cca 100644 --- a/recipes/treemix/meta.yaml +++ b/recipes/treemix/meta.yaml @@ -3,7 +3,7 @@ package: version: 1.13 build: - number: 8 + number: 9 source: url: https://bitbucket.org/nygcresearch/treemix/downloads/treemix-1.13.tar.gz diff --git a/recipes/trumicount/meta.yaml b/recipes/trumicount/meta.yaml index a265848c6e08f..2e8b10e602cc5 100644 --- a/recipes/trumicount/meta.yaml +++ b/recipes/trumicount/meta.yaml @@ -10,7 +10,7 @@ source: build: noarch: generic - number: 1 + number: 2 script: | install -d "${PREFIX}/bin" install trumicount "${PREFIX}/bin/" diff --git a/recipes/tssar/meta.yaml b/recipes/tssar/meta.yaml index 5db241480aeda..1c82fdc3dc84b 100644 --- a/recipes/tssar/meta.yaml +++ b/recipes/tssar/meta.yaml @@ -7,7 +7,7 @@ source: md5: 22f3c1fe591a566b0c31877fff6c31b9 build: - number: 7 + number: 8 skip: True # [osx] rpaths: diff --git a/recipes/tssv/meta.yaml b/recipes/tssv/meta.yaml index 5fd98daf04df6..7315d9a6e4479 100644 --- a/recipes/tssv/meta.yaml +++ b/recipes/tssv/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 28b0b5071bcb50362841a053e94d860be371bc0fc1420c28678399b3abb22383 build: - number: 3 + number: 4 skip: True # [py2k] script: "{{ PYTHON }} -m pip install . -vv" diff --git a/recipes/ucsc-blat/meta.yaml b/recipes/ucsc-blat/meta.yaml index f6a0012a3072e..ec96d9d1c1285 100644 --- a/recipes/ucsc-blat/meta.yaml +++ b/recipes/ucsc-blat/meta.yaml @@ -14,7 +14,7 @@ source: - include.patch build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('ucsc-blat', max_pin=None) }} diff --git a/recipes/ucsc-pslcdnafilter/meta.yaml b/recipes/ucsc-pslcdnafilter/meta.yaml index 4249161267e5a..8807ae5634842 100644 --- a/recipes/ucsc-pslcdnafilter/meta.yaml +++ b/recipes/ucsc-pslcdnafilter/meta.yaml @@ -15,7 +15,7 @@ source: build: skip: True # [osx] - number: 0 + number: 1 requirements: build: diff --git a/recipes/ultraplex/meta.yaml b/recipes/ultraplex/meta.yaml index 86c0708b1c4f0..49c1dae9563dc 100644 --- a/recipes/ultraplex/meta.yaml +++ b/recipes/ultraplex/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 7b1efa09a421590907c7e5177eb9e4837deade89c237b961bcf2f7edfa9f2e90 build: - number: 1 + number: 2 skip: True # [py < 37 or py > 39] script: - "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --use-pep517 -vvv" diff --git a/recipes/umi_tools/meta.yaml b/recipes/umi_tools/meta.yaml index c7f05cab66524..8176d7e0607eb 100644 --- a/recipes/umi_tools/meta.yaml +++ b/recipes/umi_tools/meta.yaml @@ -11,9 +11,10 @@ source: sha256: {{ sha256hash }} build: - number: 1 + number: 2 script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed --no-cache-dir -vvv" - skip: True # [py27] + # python 3.12: error: 'PyLongObject' {aka 'struct _longobject'} has no member named 'ob_digit' + skip: true # [py == 312 ] entry_points: - umi_tools = umi_tools.umi_tools:main run_exports: diff --git a/recipes/umis/build_failure.linux-64.yaml b/recipes/umis/build_failure.linux-64.yaml deleted file mode 100644 index a3914ef686593..0000000000000 --- a/recipes/umis/build_failure.linux-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 6aa33d40e0949fe002642210ecb069ce7b8dc7b3a34fd49ea81ffb4102485b07 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |- - ## Package Plan ## - - environment location: /opt/conda/conda-bld/umis_1685523839323/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol - - - The following NEW packages will be INSTALLED: - - _libgcc_mutex: 0.1-conda_forge conda-forge - _openmp_mutex: 4.5-2_gnu conda-forge - bzip2: 1.0.8-h7f98852_4 conda-forge - ca-certificates: 2023.5.7-hbcca054_0 conda-forge - cython: 0.29.35-py310hc6cd4ac_0 conda-forge - ld_impl_linux-64: 2.40-h41732ed_0 conda-forge - libffi: 3.4.2-h7f98852_5 conda-forge - libgcc-ng: 12.2.0-h65d4601_19 conda-forge - libgomp: 12.2.0-h65d4601_19 conda-forge - libnsl: 2.0.0-h7f98852_0 conda-forge - libsqlite: 3.42.0-h2797004_0 conda-forge - libstdcxx-ng: 12.2.0-h46fd767_19 conda-forge - libuuid: 2.38.1-h0b41bf4_0 conda-forge - libzlib: 1.2.13-h166bdaf_4 conda-forge - ncurses: 6.3-h27087fc_1 conda-forge - openssl: 3.1.1-hd590300_1 conda-forge - pip: 23.1.2-pyhd8ed1ab_0 conda-forge - python: 3.10.11-he550d4f_0_cpython conda-forge - python_abi: 3.10-3_cp310 conda-forge - readline: 8.2-h8228510_1 conda-forge - setuptools: 67.7.2-pyhd8ed1ab_0 conda-forge - tk: 8.6.12-h27826a3_0 conda-forge - tzdata: 2023c-h71feb2d_0 conda-forge - wheel: 0.40.0-pyhd8ed1ab_0 conda-forge - xz: 5.2.6-h166bdaf_0 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - [34mReloading output folder: [0m[34m/opt/conda/[0m[34mconda-bld[0m - [?25l[2K[0G[] 0.0s - opt/conda/conda-bl.. [2K[1A[2K[0Gopt/conda/conda-bld/linux-64 - opt/conda/conda-bld/noarch 127.0 B @ 522.6kB/s 0.0s - [?25h[34mReloading output folder: [0m[34m/opt/conda/[0m[34mconda-bld[0m - [?25l[2K[0G[] 0.0s - opt/conda/conda-bl.. [2K[1A[2K[0Gopt/conda/conda-bld/linux-64 - opt/conda/conda-bld/noarch 127.0 B @ 3.0MB/s 0.0s - [?25h - ## Package Plan ## - - environment location: /opt/conda/conda-bld/umis_1685523839323/_build_env - - - The following NEW packages will be INSTALLED: - - _libgcc_mutex: 0.1-conda_forge conda-forge - _openmp_mutex: 4.5-2_gnu conda-forge - binutils_impl_linux-64: 2.39-he00db2b_1 conda-forge - binutils_linux-64: 2.39-h5fc0e48_13 conda-forge - gcc_impl_linux-64: 12.2.0-hcc96c02_19 conda-forge - gcc_linux-64: 12.2.0-h4798a0e_13 conda-forge - kernel-headers_linux-64: 2.6.32-he073ed8_15 conda-forge - ld_impl_linux-64: 2.39-hcc3a1bd_1 conda-forge - libgcc-devel_linux-64: 12.2.0-h3b97bd3_19 conda-forge - libgcc-ng: 12.2.0-h65d4601_19 conda-forge - libgomp: 12.2.0-h65d4601_19 conda-forge - libsanitizer: 12.2.0-h46fd767_19 conda-forge - libstdcxx-ng: 12.2.0-h46fd767_19 conda-forge - sysroot_linux-64: 2.12-he073ed8_15 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - Source cache directory is: /opt/conda/conda-bld/src_cache - INFO:conda_build.source:Source cache directory is: /opt/conda/conda-bld/src_cache - Downloading source to cache: v1.0.9_a471522ccd.tar.gz - INFO:conda_build.source:Downloading source to cache: v1.0.9_a471522ccd.tar.gz - Downloading https://github.com/vals/umis/archive/refs/tags/v1.0.9.tar.gz - INFO:conda_build.source:Downloading https://github.com/vals/umis/archive/refs/tags/v1.0.9.tar.gz - Success - INFO:conda_build.source:Success - Traceback (most recent call last): - File "/opt/conda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/conda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 2125, in build - try_download(m, no_download_source=False, raise_error=True) - File "/opt/conda/lib/python3.8/site-packages/conda_build/render.py", line 650, in try_download - source.provide(metadata) - File "/opt/conda/lib/python3.8/site-packages/conda_build/source.py", line 871, in provide - unpack(source_dict, src_dir, metadata.config.src_cache, recipe_path=metadata.path, - File "/opt/conda/lib/python3.8/site-packages/conda_build/source.py", line 146, in unpack - src_path, unhashed_fn = download_to_cache(cache_folder, recipe_path, source_dict, verbose) - File "/opt/conda/lib/python3.8/site-packages/conda_build/source.py", line 111, in download_to_cache - raise RuntimeError("%s mismatch: '%s' != '%s'" % - RuntimeError: SHA256 mismatch: '7d446da4cc31f075e539db6b6d7b31a3309e0c4c708875981d61780c2de7ed82' != 'a471522ccd2ad6d86cb9ae4cbb61f27ace8da80ca75d1f7f3faf980790424179' -# Last 100 lines of the build log. diff --git a/recipes/umis/build_failure.osx-64.yaml b/recipes/umis/build_failure.osx-64.yaml index 4f1a86ddc13aa..156eb183093d2 100644 --- a/recipes/umis/build_failure.osx-64.yaml +++ b/recipes/umis/build_failure.osx-64.yaml @@ -1,104 +1,104 @@ -recipe_sha: 6aa33d40e0949fe002642210ecb069ce7b8dc7b3a34fd49ea81ffb4102485b07 # The commit at which this recipe failed to build. +recipe_sha: db16a0980e9904f8ba53514b8333744e1c9d1e29c19bfa250e06ecc2916beea4 # The hash of the recipe's meta.yaml at which this recipe failed to build. skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. log: |- - bioconda/osx-64 Using cache - bioconda/noarch Using cache - Reloading output folder: /opt/mambaforge/envs/bioconda/conda-bld - Reloading output folder: /opt/mambaforge/envs/bioconda/conda-bld - Reloading output folder: /opt/mambaforge/envs/bioconda/conda-bld - BUILD START: ['umis-1.0.9-py38h604ca31_1.tar.bz2'] - Reloading output folder: /opt/mambaforge/envs/bioconda/conda-bld + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/umis-1.0.9 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + running install + running build + running build_py + creating build + post_process_shared_lib(m, f, prefix_files, host_prefix) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/post.py", line 1603, in post_process_shared_lib + mk_relative_osx(path, host_prefix, m, files=files, rpaths=rpaths) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/post.py", line 470, in mk_relative_osx + names = macho.otool(path, prefix) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/os_utils/macho.py", line 221, in otool + lines = check_output([otool, "-l", path], stderr=STDOUT).decode("utf-8") + File "/opt/mambaforge/envs/bioconda/lib/python3.10/subprocess.py", line 421, in check_output + return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, + File "/opt/mambaforge/envs/bioconda/lib/python3.10/subprocess.py", line 526, in run + raise CalledProcessError(retcode, process.args, + subprocess.CalledProcessError: Command '['/opt/mambaforge/envs/bioconda/conda-bld/umis_1717900414497/_build_env/bin/llvm-otool', '-l', '/opt/mambaforge/envs/bioconda/conda-bld/umis_1717900414497/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.9/site-packages/utils.cpython-39-darwin.so']' died with . + creating build/lib.macosx-10.9-x86_64-cpython-39 + creating build/lib.macosx-10.9-x86_64-cpython-39/umis + copying umis/__init__.py -> build/lib.macosx-10.9-x86_64-cpython-39/umis + copying umis/umis.py -> build/lib.macosx-10.9-x86_64-cpython-39/umis + copying umis/barcodes.py -> build/lib.macosx-10.9-x86_64-cpython-39/umis + running build_ext + Compiling umis/utils.pyx because it changed. + [1/1] Cythonizing umis/utils.pyx + building 'utils' extension + creating build/temp.macosx-10.9-x86_64-cpython-39 + creating build/temp.macosx-10.9-x86_64-cpython-39/umis + x86_64-apple-darwin13.4.0-clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem $PREFIX/include -fPIC -O2 -isystem $PREFIX/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/umis-1.0.9 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 -I$PREFIX/include/python3.9 -c umis/utils.c -o build/temp.macosx-10.9-x86_64-cpython-39/umis/utils.o + x86_64-apple-darwin13.4.0-clang -bundle -undefined dynamic_lookup -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/umis-1.0.9 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 build/temp.macosx-10.9-x86_64-cpython-39/umis/utils.o -o build/lib.macosx-10.9-x86_64-cpython-39/utils.cpython-39-darwin.so + running install_lib + creating $PREFIX/lib/python3.9/site-packages/umis + copying build/lib.macosx-10.9-x86_64-cpython-39/umis/__init__.py -> $PREFIX/lib/python3.9/site-packages/umis + copying build/lib.macosx-10.9-x86_64-cpython-39/umis/umis.py -> $PREFIX/lib/python3.9/site-packages/umis + copying build/lib.macosx-10.9-x86_64-cpython-39/umis/barcodes.py -> $PREFIX/lib/python3.9/site-packages/umis + copying build/lib.macosx-10.9-x86_64-cpython-39/utils.cpython-39-darwin.so -> $PREFIX/lib/python3.9/site-packages + byte-compiling $PREFIX/lib/python3.9/site-packages/umis/__init__.py to __init__.cpython-39.pyc + byte-compiling $PREFIX/lib/python3.9/site-packages/umis/umis.py to umis.cpython-39.pyc + byte-compiling $PREFIX/lib/python3.9/site-packages/umis/barcodes.py to barcodes.cpython-39.pyc + running install_egg_info + running egg_info + creating umis.egg-info + writing umis.egg-info/PKG-INFO + writing dependency_links to umis.egg-info/dependency_links.txt + writing entry points to umis.egg-info/entry_points.txt + writing requirements to umis.egg-info/requires.txt + writing top-level names to umis.egg-info/top_level.txt + writing manifest file 'umis.egg-info/SOURCES.txt' + reading manifest file 'umis.egg-info/SOURCES.txt' + reading manifest template 'MANIFEST.in' + adding license file 'LICENSE.md' + writing manifest file 'umis.egg-info/SOURCES.txt' + Copying umis.egg-info to $PREFIX/lib/python3.9/site-packages/umis-1.0.9-py3.9.egg-info + running install_scripts + Installing umis script to $PREFIX/bin + writing list of installed files to 'record.txt' - ## Package Plan ## + Resource usage statistics from building umis: + Process count: 3 + CPU time: Sys=0:00:00.2, User=0:00:00.6 + Memory: 162.6M + Disk usage: 3.8K + Time elapsed: 0:00:04.4 - environment location: /opt/mambaforge/envs/bioconda/conda-bld/umis_1685363418606/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold - - The following NEW packages will be INSTALLED: - - bzip2: 1.0.8-h0d85af4_4 conda-forge - ca-certificates: 2023.5.7-h8857fd0_0 conda-forge - cython: 0.29.35-py38h940360d_0 conda-forge - libcxx: 16.0.4-hd57cbcb_0 conda-forge - libffi: 3.4.2-h0d85af4_5 conda-forge - libsqlite: 3.42.0-h58db7d2_0 conda-forge - libzlib: 1.2.13-hfd90126_4 conda-forge - ncurses: 6.3-h96cf925_1 conda-forge - openssl: 3.1.0-h8a1eda9_3 conda-forge - python: 3.8.16-hf9b03c3_1_cpython conda-forge - python_abi: 3.8-3_cp38 conda-forge - readline: 8.2-h9e318b2_1 conda-forge - setuptools: 67.7.2-pyhd8ed1ab_0 conda-forge - tk: 8.6.12-h5dbffcc_0 conda-forge - xz: 5.2.6-h775f41a_0 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - Reloading output folder: /opt/mambaforge/envs/bioconda/conda-bld - Reloading output folder: /opt/mambaforge/envs/bioconda/conda-bld - - ## Package Plan ## - - environment location: /opt/mambaforge/envs/bioconda/conda-bld/umis_1685363418606/_build_env - - - The following NEW packages will be INSTALLED: - - ca-certificates: 2023.5.7-h8857fd0_0 conda-forge - cctools_osx-64: 973.0.1-h48a5a9d_13 conda-forge - clang: 15.0.7-h694c41f_2 conda-forge - clang-15: 15.0.7-default_hdb78580_2 conda-forge - clang_osx-64: 15.0.7-h03d6864_3 conda-forge - clangxx: 15.0.7-default_hdb78580_2 conda-forge - compiler-rt: 15.0.7-he1888fc_1 conda-forge - compiler-rt_osx-64: 15.0.7-he1888fc_1 conda-forge - icu: 72.1-h7336db1_0 conda-forge - ld64_osx-64: 609-h8ce0179_13 conda-forge - libclang-cpp15: 15.0.7-default_hdb78580_2 conda-forge - libcxx: 16.0.4-hd57cbcb_0 conda-forge - libiconv: 1.17-hac89ed1_0 conda-forge - libllvm15: 15.0.7-he4b1e75_2 conda-forge - libxml2: 2.11.4-hd95e348_0 conda-forge - libzlib: 1.2.13-hfd90126_4 conda-forge - llvm-tools: 15.0.7-he4b1e75_2 conda-forge - openssl: 3.1.0-h8a1eda9_3 conda-forge - sigtool: 0.1.3-h88f4db0_0 conda-forge - tapi: 1100.0.11-h9ce4665_0 conda-forge - xz: 5.2.6-h775f41a_0 conda-forge - zstd: 1.5.2-hbc0c0cd_6 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache - INFO:conda_build.source:Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache - INFO:conda_build.source:Downloading source to cache: v1.0.9_a471522ccd.tar.gz - INFO:conda_build.source:Downloading https://github.com/vals/umis/archive/refs/tags/v1.0.9.tar.gz - Downloading source to cache: v1.0.9_a471522ccd.tar.gz - Downloading https://github.com/vals/umis/archive/refs/tags/v1.0.9.tar.gz - Success - INFO:conda_build.source:Success - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 2125, in build - try_download(m, no_download_source=False, raise_error=True) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/render.py", line 650, in try_download - source.provide(metadata) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/source.py", line 871, in provide - unpack(source_dict, src_dir, metadata.config.src_cache, recipe_path=metadata.path, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/source.py", line 146, in unpack - src_path, unhashed_fn = download_to_cache(cache_folder, recipe_path, source_dict, verbose) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/source.py", line 111, in download_to_cache - raise RuntimeError("%s mismatch: '%s' != '%s'" % - RuntimeError: SHA256 mismatch: '7d446da4cc31f075e539db6b6d7b31a3309e0c4c708875981d61780c2de7ed82' != 'a471522ccd2ad6d86cb9ae4cbb61f27ace8da80ca75d1f7f3faf980790424179' + compiling .pyc files... + number of files: 14 # Last 100 lines of the build log. diff --git a/recipes/umis/meta.yaml b/recipes/umis/meta.yaml index 3c7b4ddff3e27..5a028eaffa3c6 100644 --- a/recipes/umis/meta.yaml +++ b/recipes/umis/meta.yaml @@ -6,7 +6,7 @@ package: version: "{{ version }}" build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage('umis', max_pin='x') }} diff --git a/recipes/unicycler/0.4.4/meta.yaml b/recipes/unicycler/0.4.4/meta.yaml index 485f2d7dec4ea..4e471674d0a6b 100644 --- a/recipes/unicycler/0.4.4/meta.yaml +++ b/recipes/unicycler/0.4.4/meta.yaml @@ -13,7 +13,7 @@ source: - misc.py.patch build: - number: 6 + number: 7 skip: True # [py<34] requirements: diff --git a/recipes/unicycler/meta.yaml b/recipes/unicycler/meta.yaml index d1d68fd1328ab..15496f2541cc7 100644 --- a/recipes/unicycler/meta.yaml +++ b/recipes/unicycler/meta.yaml @@ -14,7 +14,7 @@ source: build: number: 5 - skip: True # [py<34 or osx] + skip: True # [osx] run_exports: - {{ pin_subpackage('unicycler', max_pin='x.x') }} diff --git a/recipes/unifrac/build_failure.linux-64.yaml b/recipes/unifrac/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..b04c8474bd411 --- /dev/null +++ b/recipes/unifrac/build_failure.linux-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 0c3fb5d570dc4b66dc35de9ba850a12bc8cf40c159b78490d6fc3af5302176ca # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: test failure +log: |- + usage: faithpd -i -t -o + + -i The input BIOM table. + -t The input phylogeny in newick. + -o The output series. + + Citations: + For Faith's PD, please see: + Faith Biological Conservation 1992; DOI: 10.1016/0006-3207(92)91201-3 + + python -m unittest unifrac.tests.test_methods + ......... + ---------------------------------------------------------------------- + Ran 9 tests in 0.018s + + OK + python -m unittest unifrac.tests.test_api + ....................................EEEE + ====================================================================== + ERROR: test_unweighted_fp32_inmem (unifrac.tests.test_api.UnifracAPITests) + ---------------------------------------------------------------------- + Traceback (most recent call last): + File "/opt/conda/conda-bld/unifrac_1717780005364/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib/python3.8/site-packages/skbio/diversity/_util.py", line 137, in _get_phylogenetic_kwargs + taxa = kwargs.pop("taxa") + KeyError: 'taxa' + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/conda-bld/unifrac_1717780005364/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib/python3.8/site-packages/unifrac/tests/test_api.py", line 59, in test_unweighted_fp32_inmem + exp = skbio.diversity.beta_diversity('unweighted_unifrac', cnts, + File "/opt/conda/conda-bld/unifrac_1717780005364/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib/python3.8/site-packages/skbio/diversity/_driver.py", line 439, in beta_diversity + taxa, tree, kwargs = _get_phylogenetic_kwargs(counts, **kwargs) + File "/opt/conda/conda-bld/unifrac_1717780005364/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib/python3.8/site-packages/skbio/diversity/_util.py", line 139, in _get_phylogenetic_kwargs + raise ValueError("taxa is required for phylogenetic diversity " "metrics.") + ValueError: taxa is required for phylogenetic diversity metrics. + + ====================================================================== + ERROR: test_unweighted_fp64_inmem (unifrac.tests.test_api.UnifracAPITests) + ---------------------------------------------------------------------- + Traceback (most recent call last): + File "/opt/conda/conda-bld/unifrac_1717780005364/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib/python3.8/site-packages/skbio/diversity/_util.py", line 137, in _get_phylogenetic_kwargs + taxa = kwargs.pop("taxa") + KeyError: 'taxa' + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/conda-bld/unifrac_1717780005364/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib/python3.8/site-packages/unifrac/tests/test_api.py", line 79, in test_unweighted_fp64_inmem + exp = skbio.diversity.beta_diversity('unweighted_unifrac', cnts, + File "/opt/conda/conda-bld/unifrac_1717780005364/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib/python3.8/site-packages/skbio/diversity/_driver.py", line 439, in beta_diversity + taxa, tree, kwargs = _get_phylogenetic_kwargs(counts, **kwargs) + File "/opt/conda/conda-bld/unifrac_1717780005364/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib/python3.8/site-packages/skbio/diversity/_util.py", line 139, in _get_phylogenetic_kwargs + raise ValueError("taxa is required for phylogenetic diversity " "metrics.") + ValueError: taxa is required for phylogenetic diversity metrics. + + ====================================================================== + ERROR: test_unweighted_inmem (unifrac.tests.test_api.UnifracAPITests) + ---------------------------------------------------------------------- + Traceback (most recent call last): + File "/opt/conda/conda-bld/unifrac_1717780005364/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib/python3.8/site-packages/skbio/diversity/_util.py", line 137, in _get_phylogenetic_kwargs + taxa = kwargs.pop("taxa") + KeyError: 'taxa' + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/conda-bld/unifrac_1717780005364/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib/python3.8/site-packages/unifrac/tests/test_api.py", line 39, in test_unweighted_inmem + exp = skbio.diversity.beta_diversity('unweighted_unifrac', cnts, + File "/opt/conda/conda-bld/unifrac_1717780005364/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib/python3.8/site-packages/skbio/diversity/_driver.py", line 439, in beta_diversity + taxa, tree, kwargs = _get_phylogenetic_kwargs(counts, **kwargs) + File "/opt/conda/conda-bld/unifrac_1717780005364/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib/python3.8/site-packages/skbio/diversity/_util.py", line 139, in _get_phylogenetic_kwargs + raise ValueError("taxa is required for phylogenetic diversity " "metrics.") + ValueError: taxa is required for phylogenetic diversity metrics. + + ====================================================================== + ERROR: test_unweighted_root_eval_issue_46 (unifrac.tests.test_api.UnifracAPITests) + ---------------------------------------------------------------------- + Traceback (most recent call last): + File "/opt/conda/conda-bld/unifrac_1717780005364/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib/python3.8/site-packages/skbio/diversity/_util.py", line 137, in _get_phylogenetic_kwargs + taxa = kwargs.pop("taxa") + KeyError: 'taxa' + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/conda-bld/unifrac_1717780005364/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib/python3.8/site-packages/unifrac/tests/test_api.py", line 104, in test_unweighted_root_eval_issue_46 + exp = skbio.diversity.beta_diversity('unweighted_unifrac', cnts, + File "/opt/conda/conda-bld/unifrac_1717780005364/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib/python3.8/site-packages/skbio/diversity/_driver.py", line 439, in beta_diversity + taxa, tree, kwargs = _get_phylogenetic_kwargs(counts, **kwargs) + File "/opt/conda/conda-bld/unifrac_1717780005364/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib/python3.8/site-packages/skbio/diversity/_util.py", line 139, in _get_phylogenetic_kwargs + raise ValueError("taxa is required for phylogenetic diversity " "metrics.") + ValueError: taxa is required for phylogenetic diversity metrics. + + ---------------------------------------------------------------------- + Ran 40 tests in 3.379s + + FAILED (errors=4) + WARNING: Tests failed for unifrac-1.3-py38h0020b31_1.tar.bz2 - moving package to /opt/conda/conda-bld/broken + TESTS FAILED: unifrac-1.3-py38h0020b31_1.tar.bz2 +# Last 100 lines of the build log. diff --git a/recipes/unifrac/build_failure.osx-64.yaml b/recipes/unifrac/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..79ea51c1d81ee --- /dev/null +++ b/recipes/unifrac/build_failure.osx-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 0c3fb5d570dc4b66dc35de9ba850a12bc8cf40c159b78490d6fc3af5302176ca # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: test failure +log: |- + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/conda-bld/unifrac_1717780701288/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.12/site-packages/unifrac/tests/test_api.py", line 104, in test_unweighted_root_eval_issue_46 + exp = skbio.diversity.beta_diversity('unweighted_unifrac', cnts, + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/mambaforge/envs/bioconda/conda-bld/unifrac_1717780701288/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.12/site-packages/skbio/diversity/_driver.py", line 439, in beta_diversity + taxa, tree, kwargs = _get_phylogenetic_kwargs(counts, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/mambaforge/envs/bioconda/conda-bld/unifrac_1717780701288/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.12/site-packages/skbio/diversity/_util.py", line 139, in _get_phylogenetic_kwargs + raise ValueError("taxa is required for phylogenetic diversity " "metrics.") + ValueError: taxa is required for phylogenetic diversity metrics. + + ---------------------------------------------------------------------- + Ran 40 tests in 4.773s + + FAILED (errors=4) + WARNING: Tests failed for unifrac-1.3-py312h68c8633_1.tar.bz2 - moving package to /opt/mambaforge/envs/bioconda/conda-bld/broken + TESTS FAILED: unifrac-1.3-py312h68c8633_1.tar.bz2 + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/unifrac_1717780701288/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/unifrac_1717780701288/test_tmp + import: 'unifrac' + import: 'unifrac' + usage: ssu -i -o -m [METHOD] -t [-a alpha] [-f] [--vaw] + [--mode MODE] [--start starting-stripe] [--stop stopping-stripe] [--partial-pattern ] + [--n-partials number_of_partitions] [--report-bare] [--format|-r out-mode] + [--n-substeps n] [--pcoa dims] [--diskbuf path] + + -i The input BIOM table. + -t The input phylogeny in newick. + -m The method, [unweighted | weighted_normalized | weighted_unnormalized | generalized | + unweighted_fp64 | weighted_normalized_fp64 | weighted_unnormalized_fp64 | generalized_fp64 | + unweighted_fp32 | weighted_normalized_fp32 | weighted_unnormalized_fp32 | generalized_fp32]. + -o The output distance matrix. + -g [OPTIONAL] The input grouping in TSV. + -c [OPTIONAL] The columns(s) to use for grouping, multiple values comma separated. + -a [OPTIONAL] Generalized UniFrac alpha, default is 1. + -f [OPTIONAL] Bypass tips, reduces compute by about 50%. + --vaw [OPTIONAL] Variance adjusted, default is to not adjust for variance. + --mode [OPTIONAL] Mode of operation: + one-off : [DEFAULT] compute UniFrac. + partial : Compute UniFrac over a subset of stripes. + partial-report : Start and stop suggestions for partial compute. + merge-partial : Merge partial UniFrac results. + check-partial : Check partial UniFrac results. + multi : compute UniFrac multiple times. + --start [OPTIONAL] If mode==partial, the starting stripe. + --stop [OPTIONAL] If mode==partial, the stopping stripe. + --partial-pattern [OPTIONAL] If mode==merge-partial or check-partial, a glob pattern for partial outputs to merge. + --n-partials [OPTIONAL] If mode==partial-report, the number of partitions to compute. + --report-bare [OPTIONAL] If mode==partial-report, produce barebones output. + --n-substeps [OPTIONAL] Internally split the problem in n substeps for reduced memory footprint, default is 1. + --format|-r [OPTIONAL] Output format: + ascii : Original ASCII format. (default if mode==one-off) + hdf5 : HFD5 format. May be fp32 or fp64, depending on method. + hdf5_fp32 : HFD5 format, using fp32 precision. + hdf5_fp64 : HFD5 format, using fp64 precision. + hdf5_nodist : HFD5 format, no distance matrix. (default if mode==multi) + --subsample-depth Depth of subsampling of the input BIOM before computing unifrac (required for mode==multi, optional for one-off) + --subsample-replacement [OPTIONAL] Subsample with or without replacement (default is with) + --n-subsamples [OPTIONAL] if mode==multi, number of subsampled UniFracs to compute (default: 100) + --permanova [OPTIONAL] Number of PERMANOVA permutations to compute (default: 999 with -g, do not compute if 0) + --pcoa [OPTIONAL] Number of PCoA dimensions to compute (default: 10, do not compute if 0) + --seed [OPTIONAL] Seed to use for initializing the random gnerator + --diskbuf [OPTIONAL] Use a disk buffer to reduce memory footprint. Provide path to a fast partition (ideally NVMe). + -n [OPTIONAL] DEPRECATED, no-op. + + Environment variables: + CPU parallelism is controlled by OMP_NUM_THREADS. If not defined, all detected core will be used. + GPU offload can be disabled with UNIFRAC_USE_GPU=N. By default, if a NVIDIA GPU is detected, it will be used. + A specific GPU can be selected with ACC_DEVICE_NUM. If not defined, the first GPU will be used. + + Citations: + For UniFrac, please see: + Sfiligoi et al. mSystems 2022; DOI: 10.1128/msystems.00028-22 + McDonald et al. Nature Methods 2018; DOI: 10.1038/s41592-018-0187-8 + Lozupone and Knight Appl Environ Microbiol 2005; DOI: 10.1128/AEM.71.12.8228-8235.2005 + Lozupone et al. Appl Environ Microbiol 2007; DOI: 10.1128/AEM.01996-06 + Hamady et al. ISME 2010; DOI: 10.1038/ismej.2009.97 + Lozupone et al. ISME 2011; DOI: 10.1038/ismej.2010.133 + For Generalized UniFrac, please see: + Chen et al. Bioinformatics 2012; DOI: 10.1093/bioinformatics/bts342 + For Variance Adjusted UniFrac, please see: + Chang et al. BMC Bioinformatics 2011; DOI: 10.1186/1471-2105-12-118 + + Runtime progress can be obtained by issuing a SIGUSR1 signal. If running with + multiple threads, this signal will only be honored if issued to the master PID. + The report will yield the following information: + + tid: start: stop: k: total: + + The proportion of the tree that has been evaluated can be determined from (k / total). + + usage: faithpd -i -t -o + + -i The input BIOM table. + -t The input phylogeny in newick. + -o The output series. + + Citations: + For Faith's PD, please see: + Faith Biological Conservation 1992; DOI: 10.1016/0006-3207(92)91201-3 +# Last 100 lines of the build log. diff --git a/recipes/unifrac/meta.yaml b/recipes/unifrac/meta.yaml index 29e467401d333..306a2c2f8cf1b 100644 --- a/recipes/unifrac/meta.yaml +++ b/recipes/unifrac/meta.yaml @@ -9,8 +9,9 @@ source: sha256: e8cc37c3d5aaa31494c218df8a336eae135049d6840023d057da4fda8c4a4377 build: - number: 0 - skip: True # [py<38] + number: 1 + run_exports: + - {{ pin_subpackage("unifrac", max_pin="x") }} requirements: build: diff --git a/recipes/unitig-caller/meta.yaml b/recipes/unitig-caller/meta.yaml index 67bcd0abf6cb4..452f64908f5c4 100644 --- a/recipes/unitig-caller/meta.yaml +++ b/recipes/unitig-caller/meta.yaml @@ -12,7 +12,7 @@ source: - 0001-No-experimental.patch build: - number: 3 + number: 4 skip: True # [py27] entry_points: - unitig-caller = unitig_caller.__main__:main diff --git a/recipes/usher/build_failure.linux-64.yaml b/recipes/usher/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..01961226669db --- /dev/null +++ b/recipes/usher/build_failure.linux-64.yaml @@ -0,0 +1,106 @@ +recipe_sha: abd321a497022feaaaa9e3428b461c51998b1389a7780219f2a10092039d764f # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + [ 35%] Building CXX object CMakeFiles/usher-sampled.dir/src/matOptimize/reassign_states.cpp.o + [ 36%] Building CXX object CMakeFiles/usher-sampled.dir/src/matOptimize/check_samples.cpp.o + [ 36%] Building CXX object CMakeFiles/usher-sampled.dir/src/matOptimize/optimize_tree.cpp.o + [ 37%] Building CXX object CMakeFiles/usher-sampled.dir/src/matOptimize/condense.cpp.o + [ 37%] Building CXX object CMakeFiles/usher-sampled.dir/src/matOptimize/Fitch_Sankoff.cpp.o + [ 38%] Building CXX object CMakeFiles/usher-sampled.dir/src/matOptimize/main_load_tree.cpp.o + [ 38%] Building CXX object CMakeFiles/usher-sampled.dir/src/matOptimize/priority_conflict_resolver.cpp.o + [ 39%] Building CXX object CMakeFiles/usher-sampled.dir/src/usher-sampled/driver/main.cpp.o + /opt/conda/conda-bld/usher_1717952675556/work/src/usher-sampled/driver/main.cpp: In function 'void leader_thread_optimization(Mutation_Annotated_Tree::Tree&, std::vector > >&, std::atomic_size_t&, int&, size_t, FILE*, float, bool)': + /opt/conda/conda-bld/usher_1717952675556/work/src/usher-sampled/driver/main.cpp:159:39: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'long unsigned int'} [-Wsign-compare] + 159 | if(optimization_radius>tree.max_level){ + | ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~ + /opt/conda/conda-bld/usher_1717952675556/work/src/usher-sampled/driver/main.cpp: In function 'int leader_thread(int, Leader_Thread_Options&)': + /opt/conda/conda-bld/usher_1717952675556/work/src/usher-sampled/driver/main.cpp:250:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] + 250 | for (int position=1; position + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/usher_1717952675556/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. +category: |- + compiler error diff --git a/recipes/usher/build_failure.linux-aarch64.yaml b/recipes/usher/build_failure.linux-aarch64.yaml new file mode 100644 index 0000000000000..96096dbaa5bab --- /dev/null +++ b/recipes/usher/build_failure.linux-aarch64.yaml @@ -0,0 +1,106 @@ +recipe_sha: abd321a497022feaaaa9e3428b461c51998b1389a7780219f2a10092039d764f # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + [ 35%] Building CXX object CMakeFiles/usher-sampled.dir/src/matOptimize/reassign_states.cpp.o + [ 36%] Building CXX object CMakeFiles/usher-sampled.dir/src/matOptimize/check_samples.cpp.o + [ 36%] Building CXX object CMakeFiles/usher-sampled.dir/src/matOptimize/optimize_tree.cpp.o + [ 37%] Building CXX object CMakeFiles/usher-sampled.dir/src/matOptimize/condense.cpp.o + [ 37%] Building CXX object CMakeFiles/usher-sampled.dir/src/matOptimize/Fitch_Sankoff.cpp.o + [ 38%] Building CXX object CMakeFiles/usher-sampled.dir/src/matOptimize/main_load_tree.cpp.o + [ 38%] Building CXX object CMakeFiles/usher-sampled.dir/src/matOptimize/priority_conflict_resolver.cpp.o + [ 39%] Building CXX object CMakeFiles/usher-sampled.dir/src/usher-sampled/driver/main.cpp.o + /opt/conda/conda-bld/usher_1717807896639/work/src/usher-sampled/driver/main.cpp: In function 'void leader_thread_optimization(Mutation_Annotated_Tree::Tree&, std::vector > >&, std::atomic_size_t&, int&, size_t, FILE*, float, bool)': + /opt/conda/conda-bld/usher_1717807896639/work/src/usher-sampled/driver/main.cpp:159:39: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'long unsigned int'} [-Wsign-compare] + 159 | if(optimization_radius>tree.max_level){ + | ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~ + /opt/conda/conda-bld/usher_1717807896639/work/src/usher-sampled/driver/main.cpp: In function 'int leader_thread(int, Leader_Thread_Options&)': + /opt/conda/conda-bld/usher_1717807896639/work/src/usher-sampled/driver/main.cpp:250:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] + 250 | for (int position=1; position + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/usher_1717807896639/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. +category: |- + compiler error diff --git a/recipes/usher/build_failure.osx-64.yaml b/recipes/usher/build_failure.osx-64.yaml index 6658bf9600334..f66eba443d9de 100644 --- a/recipes/usher/build_failure.osx-64.yaml +++ b/recipes/usher/build_failure.osx-64.yaml @@ -1,13 +1,68 @@ -recipe_sha: e41ecda1353c0477405b417039e9d3b5c6f4c624505f73657974203d8cee0127 # The commit at which this recipe failed to build. +recipe_sha: abd321a497022feaaaa9e3428b461c51998b1389a7780219f2a10092039d764f # The hash of the recipe's meta.yaml at which this recipe failed to build. skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. log: |- + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/usher-0.6.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/usher-0.6.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/usher-0.6.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + $SRC_DIR/build $SRC_DIR + -- The C compiler identification is Clang 16.0.6 + -- The CXX compiler identification is Clang 16.0.6 + -- Detecting C compiler ABI info + -- Detecting C compiler ABI info - done + -- Check for working C compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting C compile features + -- Detecting C compile features - done + -- Detecting CXX compiler ABI info + -- Detecting CXX compiler ABI info - done + -- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped + -- Detecting CXX compile features + -- Detecting CXX compile features - done + -- 0.6.3 + -- Found Protobuf: $PREFIX/lib/libprotobuf.dylib (found version "4.25.3") + -- Using Protocol Buffers 4.25.3 -- Found MPI_C: $PREFIX/lib/libmpi.dylib (found version "3.1") -- Found MPI_CXX: $PREFIX/lib/libmpi.dylib (found version "3.1") -- Found MPI: TRUE (found version "3.1") -- Intel TBB can not be built: Makefile or src directory was not found in $SRC_DIR/build/../tbb2019_20191006oss - -- Found Boost: $PREFIX/lib/cmake/Boost-1.78.0/BoostConfig.cmake (found version "1.78.0") found components: program_options iostreams filesystem date_time + -- Found Boost: $PREFIX/lib/cmake/Boost-1.85.0/BoostConfig.cmake (found version "1.85.0") found components: program_options iostreams filesystem date_time -- Found ZLIB: $PREFIX/lib/libz.dylib (found version "1.2.13") - -- Configuring done (9.8s) + -- Configuring done (7.3s) -- Generating done (0.2s) -- Build files have been written to: $SRC_DIR/build [ 0%] Running cpp protocol buffer compiler on parsimony.proto @@ -17,9 +72,6 @@ log: |- [ 66%] Building CXX object CMakeFiles/usher.dir/src/usher.cpp.o [100%] Building CXX object CMakeFiles/usher.dir/parsimony.pb.cc.o [100%] Linking CXX executable usher - ld: warning: dylib (/opt/mambaforge/envs/bioconda/conda-bld/usher_1685398205346/work/tbb2019_20191006oss/lib/libtbbmalloc_proxy.dylib) was built for newer macOS version (10.11) than being linked (10.9) - ld: warning: dylib (/opt/mambaforge/envs/bioconda/conda-bld/usher_1685398205346/work/tbb2019_20191006oss/lib/libtbb_preview.dylib) was built for newer macOS version (10.11) than being linked (10.9) - ld: warning: dylib (/opt/mambaforge/envs/bioconda/conda-bld/usher_1685398205346/work/tbb2019_20191006oss/lib/libtbbmalloc.dylib) was built for newer macOS version (10.11) than being linked (10.9) [100%] Built target usher [ 10%] Running cpp protocol buffer compiler on taxodium.proto [ 10%] Building CXX object CMakeFiles/matUtils.dir/src/mutation_annotated_tree.cpp.o @@ -30,40 +82,16 @@ log: |- [ 40%] Building CXX object CMakeFiles/matUtils.dir/src/matUtils/extract.cpp.o [ 40%] Building CXX object CMakeFiles/matUtils.dir/src/matUtils/filter.cpp.o [ 50%] Building CXX object CMakeFiles/matUtils.dir/src/matUtils/introduce.cpp.o - /opt/mambaforge/envs/bioconda/conda-bld/usher_1685398205346/work/src/matUtils/introduce.cpp:137:12: warning: variable 'permuted_inc' set but not used [-Wunused-but-set-variable] - size_t permuted_inc = 0; - ^ - /opt/mambaforge/envs/bioconda/conda-bld/usher_1685398205346/work/src/matUtils/introduce.cpp:630:25: warning: use of bitwise '&' with boolean operands [-Wbitwise-instead-of-logical] - if ((region_assignments.size() > 1) & (!a->is_root())) { - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - && - /opt/mambaforge/envs/bioconda/conda-bld/usher_1685398205346/work/src/matUtils/introduce.cpp:630:25: note: cast one or both operands to int to silence this warning - 2 warnings generated. [ 50%] Building CXX object CMakeFiles/matUtils.dir/src/matUtils/main.cpp.o [ 60%] Building CXX object CMakeFiles/matUtils.dir/src/matUtils/mask.cpp.o - /opt/mambaforge/envs/bioconda/conda-bld/usher_1685398205346/work/src/matUtils/mask.cpp:231:16: warning: variable 'instances_masked' set but not used [-Wunused-but-set-variable] - size_t instances_masked = 0; - ^ - 1 warning generated. [ 60%] Building CXX object CMakeFiles/matUtils.dir/src/matUtils/merge.cpp.o [ 70%] Building CXX object CMakeFiles/matUtils.dir/src/matUtils/select.cpp.o - /opt/mambaforge/envs/bioconda/conda-bld/usher_1685398205346/work/src/matUtils/select.cpp:682:24: warning: unused variable 'child_branch_length' [-Wunused-variable] - size_t child_branch_length = child_and_dist.second; - ^ - 1 warning generated. [ 70%] Building CXX object CMakeFiles/matUtils.dir/src/matUtils/summary.cpp.o [ 80%] Building CXX object CMakeFiles/matUtils.dir/src/matUtils/translate.cpp.o - /opt/mambaforge/envs/bioconda/conda-bld/usher_1685398205346/work/src/matUtils/translate.cpp:51:9: warning: variable 'curr_line' set but not used [-Wunused-but-set-variable] - int curr_line = -1; - ^ - 1 warning generated. [ 90%] Building CXX object CMakeFiles/matUtils.dir/src/matUtils/uncertainty.cpp.o [ 90%] Building CXX object CMakeFiles/matUtils.dir/parsimony.pb.cc.o [100%] Building CXX object CMakeFiles/matUtils.dir/taxodium.pb.cc.o [100%] Linking CXX executable matUtils - ld: warning: dylib (/opt/mambaforge/envs/bioconda/conda-bld/usher_1685398205346/work/tbb2019_20191006oss/lib/libtbbmalloc_proxy.dylib) was built for newer macOS version (10.11) than being linked (10.9) - ld: warning: dylib (/opt/mambaforge/envs/bioconda/conda-bld/usher_1685398205346/work/tbb2019_20191006oss/lib/libtbb_preview.dylib) was built for newer macOS version (10.11) than being linked (10.9) - ld: warning: dylib (/opt/mambaforge/envs/bioconda/conda-bld/usher_1685398205346/work/tbb2019_20191006oss/lib/libtbbmalloc.dylib) was built for newer macOS version (10.11) than being linked (10.9) [100%] Built target matUtils [ 0%] Running cpp protocol buffer compiler on mutation_detailed.proto [ 4%] Building CXX object CMakeFiles/matOptimize.dir/src/matOptimize/mutation_annotated_tree.cpp.o @@ -73,32 +101,6 @@ log: |- [ 12%] Building CXX object CMakeFiles/matOptimize.dir/src/matOptimize/detailed_mutations_load.cpp.o [ 12%] Building CXX object CMakeFiles/matOptimize.dir/src/matOptimize/mutation_annotated_tree_nuc_util.cpp.o [ 16%] Building CXX object CMakeFiles/matOptimize.dir/src/matOptimize/main.cpp.o - In file included from /opt/mambaforge/envs/bioconda/conda-bld/usher_1685398205346/work/src/matOptimize/main.cpp:3: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/usher_1685398205346/work/src/matOptimize/Profitable_Moves_Enumerators/Profitable_Moves_Enumerators.hpp:8: - /opt/mambaforge/envs/bioconda/conda-bld/usher_1685398205346/work/src/matOptimize/Profitable_Moves_Enumerators/../stack_allocator.hpp:17:74: error: use of undeclared identifier 'MAP_ANONYMOUS' - start_addr=(T*) mmap(0,ALLOC_LEN,PROT_READ|PROT_WRITE,MAP_SHARED|MAP_ANONYMOUS,-1,0); - ^ - 1 error generated. - make[3]: *** [CMakeFiles/matOptimize.dir/build.make:176: CMakeFiles/matOptimize.dir/src/matOptimize/main.cpp.o] Error 1 - make[2]: *** [CMakeFiles/Makefile2:317: CMakeFiles/matOptimize.dir/all] Error 2 - make[1]: *** [CMakeFiles/Makefile2:324: CMakeFiles/matOptimize.dir/rule] Error 2 - make: *** [Makefile:273: matOptimize] Error 2 - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/usher_1685398205346/work/conda_build.sh']' returned non-zero exit status 2. # Last 100 lines of the build log. +category: |- + compiler error diff --git a/recipes/usher/meta.yaml b/recipes/usher/meta.yaml index 107664cd88018..310b1c1c8dd40 100644 --- a/recipes/usher/meta.yaml +++ b/recipes/usher/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 95aba8f748599915f21f7bdf883c2e532f2d821138f06cb2e4e58d7323019946 build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('usher', max_pin="x.x") }} diff --git a/recipes/ushuffle/meta.yaml b/recipes/ushuffle/meta.yaml index b44b9d42f701f..60cc87d270dce 100644 --- a/recipes/ushuffle/meta.yaml +++ b/recipes/ushuffle/meta.yaml @@ -8,7 +8,7 @@ about: summary: uShuffle---a useful tool for shuffling biological sequences while preserving the k-let counts build: - number: 7 + number: 8 source: url: https://github.com/s-will/ushuffle/archive/v1.2.2.tar.gz diff --git a/recipes/vamos/meta.yaml b/recipes/vamos/meta.yaml index 42b12ab950026..f682f257b4f28 100644 --- a/recipes/vamos/meta.yaml +++ b/recipes/vamos/meta.yaml @@ -11,7 +11,7 @@ source: build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin='x') }} diff --git a/recipes/velocyto.py/meta.yaml b/recipes/velocyto.py/meta.yaml index 3df9377746c6a..d562d51c97a22 100644 --- a/recipes/velocyto.py/meta.yaml +++ b/recipes/velocyto.py/meta.yaml @@ -9,9 +9,10 @@ source: sha256: 2461eabf2ec6b152240c95f7ad8a0a5768a83c72822d9398beec2981732b890d build: - number: 6 + number: 7 + run_exports: + - {{ pin_subpackage("velocyto.py", max_pin="x.x") }} script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed -vvv" - skip: True # [py2k] entry_points: - velocyto = velocyto.commands.velocyto:cli diff --git a/recipes/verifybamid2/build_failure.osx-64.yaml b/recipes/verifybamid2/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..c211e26887045 --- /dev/null +++ b/recipes/verifybamid2/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 719e48692e845e21d83868b9c295678d5c3c8132b4b4e2502617109015fae933 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + libexpat: 2.6.2-h73e2aa4_0 conda-forge + libiconv: 1.17-hd75f5a5_2 conda-forge + libllvm16: 16.0.6-hbedff68_3 conda-forge + libnghttp2: 1.58.0-h64cf6d3_1 conda-forge + libssh2: 1.11.0-hd019ec5_0 conda-forge + libuv: 1.48.0-h67532ce_0 conda-forge + libxml2: 2.12.7-h3e169fe_1 conda-forge + libzlib: 1.3.1-h87427d6_1 conda-forge + llvm-tools: 16.0.6-hbedff68_3 conda-forge + m4: 1.4.18-haf1e3a3_1001 conda-forge + make: 4.3-h22f3db7_1 conda-forge + ncurses: 6.5-h5846eda_0 conda-forge + openssl: 3.3.1-h87427d6_0 conda-forge + perl: 5.32.1-7_h10d778d_perl5 conda-forge + rhash: 1.4.4-h0dc2134_0 conda-forge + sigtool: 0.1.3-h88f4db0_0 conda-forge + tapi: 1100.0.11-h9ce4665_0 conda-forge + xz: 5.2.6-h775f41a_0 conda-forge + zstd: 1.5.6-h915ae27_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache + Downloading source to cache: 2.0.1_03c85fa871.tar.gz + Downloading https://github.com/Griffan/VerifyBamID/archive/2.0.1.tar.gz + Success + dyld[65511]: Library not loaded: @rpath/librhash.1.dylib + Referenced from: <35DD3714-1FE0-3722-8243-CAF393FEE8B7> /opt/mambaforge/envs/bioconda/pkgs/cmake-3.29.5-h749d262_0/bin/cmake + Reason: tried: '/opt/mambaforge/envs/bioconda/pkgs/cmake-3.29.5-h749d262_0/bin/../lib/librhash.1.dylib' (no such file), '/opt/mambaforge/envs/bioconda/pkgs/cmake-3.29.5-h749d262_0/bin/../lib/librhash.1.dylib' (no such file), '/usr/local/lib/librhash.1.dylib' (no such file), '/usr/lib/librhash.1.dylib' (no such file, not in dyld cache) + /opt/mambaforge/envs/bioconda/conda-bld/verifybamid2_1718297263210/work/conda_build.sh: line 15: 65511 Abort trap: 6 cmake -DCMAKE_INSTALL_PREFIX=${PREFIX} .. + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/verifybamid2_1718297263210/work + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/verifybamid2_1718297263210/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/verifybamid2_1718297263210/_build_env + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/verifybamid2_1718297263210/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/verifybamid2-2.0.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/verifybamid2_1718297263210/work/conda_build.sh']' returned non-zero exit status 134. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/verifybamid2-2.0.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/verifybamid2-2.0.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/verifybamid2-2.0.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix +# Last 100 lines of the build log. diff --git a/recipes/verifybamid2/meta.yaml b/recipes/verifybamid2/meta.yaml index df8fd831d7f62..10426dc8cce54 100644 --- a/recipes/verifybamid2/meta.yaml +++ b/recipes/verifybamid2/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 10 + number: 11 source: url: https://github.com/Griffan/VerifyBamID/archive/{{ version }}.tar.gz diff --git a/recipes/verifyidintensity/meta.yaml b/recipes/verifyidintensity/meta.yaml index bbebf8c09f975..6b34fdce99fe1 100644 --- a/recipes/verifyidintensity/meta.yaml +++ b/recipes/verifyidintensity/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 4 + number: 5 source: url: https://github.com/gjun/verifyIDintensity/archive/master.zip diff --git a/recipes/viennarna/meta.yaml b/recipes/viennarna/meta.yaml index e8213a5142c1e..97a42e3956325 100644 --- a/recipes/viennarna/meta.yaml +++ b/recipes/viennarna/meta.yaml @@ -7,7 +7,7 @@ package: build: skip: True # [osx] - number: 1 + number: 2 run_exports: # Ronny said VRNA is stable in x.x releases - {{ pin_subpackage('viennarna', max_pin='x.x') }} diff --git a/recipes/viromeqc/build_failure.linux-64.yaml b/recipes/viromeqc/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..260290753ee71 --- /dev/null +++ b/recipes/viromeqc/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: d174c3082a9332788afc765e41c08050872a506bc099a0e666c9aa3a42457aea # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + 2024-06-07T16:45:59 linux-64 Writing patched repodata + 2024-06-07T16:45:59 linux-64 Building current_repodata subset + 2024-06-07T16:45:59 linux-64 Writing current_repodata subset + 2024-06-07T16:45:59 linux-64 Writing index HTML + 2024-06-07T16:45:59 Subdir: linux-aarch64 Gathering repodata + 2024-06-07T16:45:59 linux-aarch64 Writing pre-patch repodata + 2024-06-07T16:45:59 linux-aarch64 Applying patch instructions + 2024-06-07T16:45:59 linux-aarch64 Writing patched repodata + 2024-06-07T16:45:59 linux-aarch64 Building current_repodata subset + 2024-06-07T16:45:59 linux-aarch64 Writing current_repodata subset + 2024-06-07T16:45:59 linux-aarch64 Writing index HTML + 2024-06-07T16:45:59 Subdir: noarch Gathering repodata + 2024-06-07T16:45:59 noarch Writing pre-patch repodata + 2024-06-07T16:45:59 noarch Applying patch instructions + 2024-06-07T16:45:59 noarch Writing patched repodata + 2024-06-07T16:45:59 noarch Building current_repodata subset + 2024-06-07T16:45:59 noarch Writing current_repodata subset + 2024-06-07T16:45:59 noarch Writing index HTML + /opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py:501: UserWarning: RECIPE_PATH received is a file (/opt/recipe/meta.yaml). + It should be a path to a folder. + Forcing conda-build to use the recipe file. + warnings.warn( + WARNING: No numpy version specified in conda_build_config.yaml. Falling back to default numpy value of 1.22 + Adding in variants from internal_defaults + Adding in variants from /opt/host-conda-bld/conda_build_config_0_-e_conda_build_config.yaml + Adding in variants from /opt/host-conda-bld/conda_build_config_1_-e_bioconda_utils-conda_build_config.yaml + Attempting to finalize metadata for viromeqc + Reloading output folder (file:///opt/host-conda-bld): ...working... done + Getting pinned dependencies: ...working... done + Reloading output folder (file:///opt/host-conda-bld): ...working... done + Getting pinned dependencies: ...working... done + BUILD START: ['viromeqc-1.0.2-py312h7e72e81_1.tar.bz2'] + Reloading output folder (file:///opt/host-conda-bld): ...working... done + Solving environment (_h_env): ...working... done + + ## Package Plan ## + + environment location: /opt/conda/conda-bld/viromeqc_1717778760216/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac + + + The following NEW packages will be INSTALLED: + + _libgcc_mutex: 0.1-conda_forge conda-forge + _openmp_mutex: 4.5-2_gnu conda-forge + bzip2: 1.0.8-hd590300_5 conda-forge + ca-certificates: 2024.6.2-hbcca054_0 conda-forge + ld_impl_linux-64: 2.40-hf3520f5_2 conda-forge + libexpat: 2.6.2-h59595ed_0 conda-forge + libffi: 3.4.2-h7f98852_5 conda-forge + libgcc-ng: 13.2.0-h77fa898_7 conda-forge + libgomp: 13.2.0-h77fa898_7 conda-forge + libnsl: 2.0.1-hd590300_0 conda-forge + libsqlite: 3.45.3-h2797004_0 conda-forge + libuuid: 2.38.1-h0b41bf4_0 conda-forge + libxcrypt: 4.4.36-hd590300_1 conda-forge + libzlib: 1.3.1-h4ab18f5_1 conda-forge + ncurses: 6.5-h59595ed_0 conda-forge + openssl: 3.3.1-h4ab18f5_0 conda-forge + pip: 24.0-pyhd8ed1ab_0 conda-forge + python: 3.12.3-hab00c5b_0_cpython conda-forge + readline: 8.2-h8228510_1 conda-forge + setuptools: 70.0.0-pyhd8ed1ab_0 conda-forge + tk: 8.6.13-noxft_h4845f30_101 conda-forge + tzdata: 2024a-h0c530f3_0 conda-forge + wheel: 0.43.0-pyhd8ed1ab_1 conda-forge + xz: 5.2.6-h166bdaf_0 conda-forge + + Preparing transaction: ...working... done + Verifying transaction: ...working... done + Executing transaction: ...working... done + Reloading output folder (file:///opt/host-conda-bld): ...working... done + Solving environment (_test_env): ...working... done + Source cache directory is: /opt/conda/conda-bld/src_cache + Downloading source to cache: viromeqc1.0.2_e4da8944f6.tar.gz + Downloading https://github.com/CarsonJM/viromeqc/releases/download/1.0.2/viromeqc1.0.2.tar.gz + WARNING: Error: HTTP 404 NOT FOUND for url + Elapsed: 00:00.190235 + + An HTTP error occurred when trying to retrieve this URL. + HTTP errors are often intermittent, and a simple retry will get you on your way. + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2419, in build + try_download(m, no_download_source=False, raise_error=True) + File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 762, in try_download + source.provide(metadata) + File "/opt/conda/lib/python3.10/site-packages/conda_build/source.py", line 1035, in provide + unpack( + File "/opt/conda/lib/python3.10/site-packages/conda_build/source.py", line 169, in unpack + src_path, unhashed_fn = download_to_cache( + File "/opt/conda/lib/python3.10/site-packages/conda_build/source.py", line 116, in download_to_cache + raise RuntimeError(f"Could not download {url}") + RuntimeError: Could not download https://github.com/CarsonJM/viromeqc/releases/download/1.0.2/viromeqc1.0.2.tar.gz +# Last 100 lines of the build log. diff --git a/recipes/viromeqc/meta.yaml b/recipes/viromeqc/meta.yaml index 94681c672736a..b3479061accd0 100644 --- a/recipes/viromeqc/meta.yaml +++ b/recipes/viromeqc/meta.yaml @@ -10,7 +10,9 @@ source: sha256: e4da8944f6213a1a4a0dfaab3cf2661b4b54f53be8a37f06e3c088c660052189 build: - number: 0 + number: 1 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} noarch: generic requirements: diff --git a/recipes/vphaser2/meta.yaml b/recipes/vphaser2/meta.yaml index 062382ca7673c..564a6bc38b562 100644 --- a/recipes/vphaser2/meta.yaml +++ b/recipes/vphaser2/meta.yaml @@ -7,7 +7,7 @@ source: md5: fd22b1c4403903576e62defb51b6ae32 build: - number: 13 + number: 14 skip: True # [osx] requirements: diff --git a/recipes/vt/meta.yaml b/recipes/vt/meta.yaml index d4d1cefbc1bdc..2132b3ae295e9 100644 --- a/recipes/vt/meta.yaml +++ b/recipes/vt/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 8f06d464ec5458539cfa30f81a034f47fe7f801146fe8ca80c14a3816b704e17 build: - number: 10 + number: 11 run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} @@ -43,4 +43,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 diff --git a/recipes/vtools/meta.yaml b/recipes/vtools/meta.yaml index 71f1a2d58b33a..8b2dcd71211c4 100644 --- a/recipes/vtools/meta.yaml +++ b/recipes/vtools/meta.yaml @@ -12,7 +12,7 @@ source: - patch build: - number: 5 + number: 6 entry_points: - vtools-filter = vtools.cli:filter_cli - vtools-stats = vtools.cli:stats_cli diff --git a/recipes/w4mclassfilter/meta.yaml b/recipes/w4mclassfilter/meta.yaml index c33c71c19a82b..7f78f51857138 100644 --- a/recipes/w4mclassfilter/meta.yaml +++ b/recipes/w4mclassfilter/meta.yaml @@ -11,7 +11,7 @@ source: build: noarch: generic - number: 3 + number: 4 rpaths: - lib/R/lib/ - lib/ diff --git a/recipes/wally/build_failure.linux-64.yaml b/recipes/wally/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..c65f87709d7fd --- /dev/null +++ b/recipes/wally/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: d48576ae8fde1a2e33ae3eb308cf274506b9c7e8cb9287b6ead7d7532ee0e9d8 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |- + Verifying transaction: ...working... done + Executing transaction: ...working... done + Source cache directory is: /opt/conda/conda-bld/src_cache + Downloading source to cache: v0.5.8_ddd3376ad4.tar.gz + Downloading https://github.com/tobiasrausch/wally/archive/v0.5.8.tar.gz + Success + Extracting download + source tree in: /opt/conda/conda-bld/wally_1717808847579/work + export PREFIX=/opt/conda/conda-bld/wally_1717808847579/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho + export BUILD_PREFIX=/opt/conda/conda-bld/wally_1717808847579/_build_env + export SRC_DIR=/opt/conda/conda-bld/wally_1717808847579/work + INFO: activate-binutils_linux-64.sh made the following environmental changes: + ADDR2LINE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-addr2line + AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar + AS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-as + CXXFILT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cfilt + ELFEDIT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-elfedit + GPROF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gprof + LD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld + LD_GOLD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld.gold + NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-nm + OBJCOPY=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objcopy + OBJDUMP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objdump + RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib + READELF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-readelf + SIZE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-size + STRINGS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strings + STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip + INFO: activate-gcc_linux-64.sh made the following environmental changes: + BUILD=x86_64-conda-linux-gnu + CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc + CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/wally-0.5.8 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr + CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot + CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu + CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu + CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp + CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include + DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/wally-0.5.8 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include + GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc + GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar + GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm + GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib + HOST=x86_64-conda-linux-gnu + LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu + build_alias=x86_64-conda-linux-gnu + host_alias=x86_64-conda-linux-gnu + -BUILD=x86_64-conda_cos6-linux-gnu + -CONDA_BUILD_SYSROOT= + INFO: activate-gxx_linux-64.sh made the following environmental changes: + CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/wally-0.5.8 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c + DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/wally-0.5.8 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + GXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-g + if [ -r src/htslib/Makefile ]; then cd src/htslib && autoreconf -i && ./configure --disable-s3 --disable-gcs --disable-libcurl --disable-plugins && make && make lib-static && cd ../../ && touch .htslib; fi + if [ -f src/opencv/CMakeLists.txt ]; then cd src/opencv/ && mkdir build && cd build/ && cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=$SRC_DIR/src/ocv -D BUILD_SHARED_LIBS="ON" -DOPENCV_GENERATE_PKGCONFIG=ON -D BUILD_ZLIB=ON -D BUILD_PNG=ON -D BUILD_OPENJPEG=ON -D WITH_OPENEXR=OFF -D WITH_JPEG=OFF -D WITH_JASPER=OFF -D WITH_TIFF=OFF -D WITH_WEBP=OFF -D WITH_OPENCL=OFF -D WITH_GTK="ON" -D WITH_FFMPEG=OFF -D WITH_1394=OFF -D WITH_IPP=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_opencv_apps=OFF .. && make -j 4 && make install && cd ../ && rm -rf build/ && cd ../../ && touch .opencv; fi + $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -D__STDC_FORMAT_MACROS -I$PREFIX/include -L$PREFIX/lib -I$PREFIX/include/opencv4 src/wally.cpp -o src/wally -L$PREFIX/lib -lopencv_gapi -lopencv_stitching -lopencv_alphamat -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_cvv -lopencv_dnn_objdetect -lopencv_dnn_superres -lopencv_dpm -lopencv_face -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_hfs -lopencv_img_hash -lopencv_intensity_transform -lopencv_line_descriptor -lopencv_mcc -lopencv_quality -lopencv_rapid -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_signal -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_highgui -lopencv_datasets -lopencv_text -lopencv_plot -lopencv_videostab -lopencv_videoio -lopencv_wechat_qrcode -lopencv_xfeatures2d -lopencv_shape -lopencv_ml -lopencv_ximgproc -lopencv_video -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_imgcodecs -lopencv_features2d -lopencv_dnn -lopencv_flann -lopencv_xphoto -lopencv_photo -lopencv_imgproc -lopencv_core -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -L$SRC_DIR/src/htslib/ -lboost_iostreams -lboost_filesystem -lboost_system -lboost_program_options -lboost_date_time -pthread -lhts -lz -llzma -lbz2 -Wl,-rpath,$SRC_DIR/src/htslib/ -Wl,-rpath,$SRC_DIR/src/ocv/lib/ -Wl,-rpath,$SRC_DIR/src/ocv/lib64/ + In file included from src/region.h:29, + from src/wally.cpp:13: + src/util.h:114:37: warning: 'template struct std::binary_function' is deprecated [-Wdeprecated-declarations] + 114 | struct SortMappings : public std::binary_function + | ^~~~~~~~~~~~~~~ + In file included from /opt/conda/conda-bld/wally_1717808847579/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/string:48, + from /opt/conda/conda-bld/wally_1717808847579/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/locale_classes.h:40, + from /opt/conda/conda-bld/wally_1717808847579/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/ios_base.h:41, + from /opt/conda/conda-bld/wally_1717808847579/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/ios:42, + from /opt/conda/conda-bld/wally_1717808847579/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/ostream:38, + from /opt/conda/conda-bld/wally_1717808847579/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/iostream:39, + from src/wally.cpp:3: + /opt/conda/conda-bld/wally_1717808847579/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_function.h:131:12: note: declared here + 131 | struct binary_function + | ^~~~~~~~~~~~~~~ + In file included from src/wally.cpp:15: + src/dotplot.h: In function 'int wallysworld::dotplotRun(TConfigStruct&)': + src/dotplot.h:500:74: error: 'boost::filesystem::copy_option' has not been declared + 500 | boost::filesystem::copy_file(c.file, c.seqfile, boost::filesystem::copy_option::overwrite_if_exists); + | ^~~~~~~~~~~ + make: *** [Makefile:67: src/wally] Error 1 + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/wally_1717808847579/work/conda_build.sh']' returned non-zero exit status 2. +# Last 100 lines of the build log. diff --git a/recipes/wally/build_failure.osx-64.yaml b/recipes/wally/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..c79f6688d6ab9 --- /dev/null +++ b/recipes/wally/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: d48576ae8fde1a2e33ae3eb308cf274506b9c7e8cb9287b6ead7d7532ee0e9d8 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + ~~~~~^~~~~~~~~~~~~~~ + __binary_function + /opt/mambaforge/envs/bioconda/conda-bld/wally_1717635453488/_build_env/bin/../include/c/v1/__functional/binary_function.h:49:1: note: '__binary_function' declared here + using __binary_function = __binary_function_keep_layout_base<_Arg1, _Arg2, _Result>; + ^ + In file included from src/wally.cpp:15: + src/dotplot.h:500:74: error: no member named 'copy_option' in namespace 'boost::filesystem'; did you mean 'copy_options'? + boost::filesystem::copy_file(c.file, c.seqfile, boost::filesystem::copy_option::overwrite_if_exists); + ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ + copy_options + /opt/mambaforge/envs/bioconda/conda-bld/wally_1717635453488/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/include/boost/filesystem/operations.hpp:44:12: note: 'copy_options' declared here + enum class copy_options : unsigned int + ^ + In file included from src/wally.cpp:15: + src/dotplot.h:500:87: error: no member named 'overwrite_if_exists' in 'boost::filesystem::copy_options'; did you mean 'overwrite_existing'? + boost::filesystem::copy_file(c.file, c.seqfile, boost::filesystem::copy_option::overwrite_if_exists); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~ + overwrite_existing + /opt/mambaforge/envs/bioconda/conda-bld/wally_1717635453488/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/include/boost/filesystem/operations.hpp:50:5: note: 'overwrite_existing' declared here + overwrite_existing = 1u << 1u, // Overwrite existing file + ^ + In file included from src/wally.cpp:18: + In file included from src/gfa.h:36: + src/gfadraw.h:103:10: error: no member named 'random_shuffle' in namespace 'std' + std::random_shuffle(sf.begin(), sf.end()); + ~~~~~^ + 5 errors generated. + make: *** [Makefile:67: src/wally] Error 1 + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/wally_1717635453488/work + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/wally_1717635453488/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/wally_1717635453488/_build_env + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/wally_1717635453488/work + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + api.build( + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/wally-0.5.8 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/wally_1717635453488/work/conda_build.sh']' returned non-zero exit status 2. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/wally-0.5.8 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + INFO: activate_clangxx_osx-64.sh made the following environmental changes: + CLANGXX=x86_64-apple-darwin13.4.0-clang + CXX=x86_64-apple-darwin13.4.0-clang + CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/wally-0.5.8 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/wally-0.5.8 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + if [ -r src/htslib/Makefile ]; then cd src/htslib && autoreconf -i && ./configure --disable-s3 --disable-gcs --disable-libcurl --disable-plugins && make && make lib-static && cd ../../ && touch .htslib; fi + if [ -f src/opencv/CMakeLists.txt ]; then cd src/opencv/ && mkdir build && cd build/ && cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=$SRC_DIR/src/ocv -D BUILD_SHARED_LIBS="ON" -DOPENCV_GENERATE_PKGCONFIG=ON -D BUILD_ZLIB=ON -D BUILD_PNG=ON -D BUILD_OPENJPEG=ON -D WITH_OPENEXR=OFF -D WITH_JPEG=OFF -D WITH_JASPER=OFF -D WITH_TIFF=OFF -D WITH_WEBP=OFF -D WITH_OPENCL=OFF -D WITH_GTK="ON" -D WITH_FFMPEG=OFF -D WITH_1394=OFF -D WITH_IPP=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_opencv_apps=OFF .. && make -j 4 && make install && cd ../ && rm -rf build/ && cd ../../ && touch .opencv; fi + x86_64-apple-darwin13.4.0-clang -D__STDC_FORMAT_MACROS -I$PREFIX/include -L$PREFIX/lib -I$PREFIX/include/opencv4 src/wally.cpp -o src/wally -L$PREFIX/lib -lopencv_gapi -lopencv_stitching -lopencv_alphamat -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dnn_superres -lopencv_dpm -lopencv_face -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_hfs -lopencv_img_hash -lopencv_intensity_transform -lopencv_line_descriptor -lopencv_mcc -lopencv_quality -lopencv_rapid -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_highgui -lopencv_datasets -lopencv_text -lopencv_plot -lopencv_videostab -lopencv_videoio -lopencv_wechat_qrcode -lopencv_xfeatures2d -lopencv_shape -lopencv_ml -lopencv_ximgproc -lopencv_video -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_imgcodecs -lopencv_features2d -lopencv_dnn -lopencv_flann -lopencv_xphoto -lopencv_photo -lopencv_imgproc -lopencv_core -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$SRC_DIR/src/htslib/ -lboost_iostreams -lboost_filesystem -lboost_system -lboost_program_options -lboost_date_time -pthread -lhts -lz -llzma -lbz2 -Wl,-rpath,$SRC_DIR/src/htslib/ -Wl,-rpath,$SRC_DIR/src/ocv/lib/ -Wl,-rpath,$SRC_DIR/src/ocv/lib64/ +# Last 100 lines of the build log. diff --git a/recipes/wally/meta.yaml b/recipes/wally/meta.yaml index bf0f6c9d37dc6..035f146190cf1 100644 --- a/recipes/wally/meta.yaml +++ b/recipes/wally/meta.yaml @@ -10,7 +10,7 @@ source: sha256: '{{ sha256 }}' build: - number: 2 + number: 3 requirements: build: diff --git a/recipes/whatshap/build_failure.linux-64.yaml b/recipes/whatshap/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..0c20579f0ddd7 --- /dev/null +++ b/recipes/whatshap/build_failure.linux-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 9b572de4ff8373a2d807ddec40dc17bf503ae9bc41ed9e9afa694c1b3fc643d8 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: dependency issue +log: |2- + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("zstandard"), MatchSpec("xopen==1.7.0=py312h7900ff3_3")} + Encountered problems while solving: + - package xopen-1.7.0-py312h7900ff3_3 requires zstandard, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + [32mpysam >=0.18 [0m is installable with the potential options + [32mpysam 0.22.1[0m would require + [32mlibcurl >=8.8.0,<9.0a0 [0m, which requires + [32mzstd >=1.5.6,<1.6.0a0 [0m, which can be installed; + [32mpysam [0.18.0|0.19.0|0.19.1|0.20.0][0m would require + [32mpython_abi 2.7.* *_cp27mu[0m, which can be installed; + [32mpysam [0.18.0|0.19.0|0.19.1|0.20.0|0.21.0][0m would require + [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; + [32mpysam [0.18.0|0.19.0|0.19.1|0.20.0|0.21.0][0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mpysam [0.18.0|0.19.0|...|0.22.1][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mpysam [0.18.0|0.19.0|...|0.22.1][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mpysam [0.19.1|0.20.0|0.21.0|0.22.0|0.22.1][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32mpysam 0.22.1[0m would require + [32mpython_abi 3.11.* *_cp311[0m, which can be installed; + [31mpython_abi 3.12.* *_cp312[0m is not installable because it conflicts with any installable versions previously reported; + [32mxopen >=1.2.0 [0m is installable with the potential options + [32mxopen 1.2.0[0m would require + [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; + [32mxopen [1.2.0|1.2.1|...|1.6.0][0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mxopen [1.2.0|1.2.1|...|1.6.0][0m would require + [32mpython_abi 3.7 *_pypy37_pp73[0m, which can be installed; + [32mxopen [1.2.0|1.2.1|...|2.0.1][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mxopen [1.2.0|1.2.1|...|2.0.1][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mxopen [1.2.1|1.3.0|...|2.0.1][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32mxopen [1.6.0|1.7.0|1.8.0|1.9.0|2.0.1][0m would require + [32mpython_abi 3.11.* *_cp311[0m, which can be installed; + [32mxopen [1.7.0|1.8.0|1.9.0|2.0.1][0m would require + [32mzstandard[0m with the potential options + [32mzstandard [0.10.2|0.11.0|...|0.8.1][0m would require + [32mpython_abi * *_cp27mu[0m, which can be installed; + [32mzstandard [0.10.2|0.11.0|...|0.8.1][0m would require + [32mpython_abi * *_cp36m[0m, which can be installed; + [32mzstandard [0.10.2|0.11.0|0.11.1|0.12.0|0.13.0][0m would require + [32mpython_abi * *_cp37m[0m, which can be installed; + [32mzstandard [0.12.0|0.13.0][0m would require + [32mpython_abi * *_cp38[0m, which can be installed; + [32mzstandard [0.14.0|0.14.1|0.15.1|0.15.2][0m would require + [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; + [32mzstandard [0.14.0|0.14.1|0.15.1|0.15.2][0m would require + [32mpython_abi 3.6 *_pypy36_pp73[0m, which can be installed; + [32mzstandard [0.14.0|0.14.1|...|0.18.0][0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mzstandard [0.14.0|0.14.1|...|0.22.0][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mzstandard [0.14.0|0.14.1|...|0.22.0][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mzstandard [0.14.1|0.15.1|0.15.2|0.16.0|0.17.0][0m would require + [32mpython_abi 3.7 *_pypy37_pp73[0m, which can be installed; + [32mzstandard [0.16.0|0.17.0|...|0.22.0][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32mzstandard [0.17.0|0.18.0|0.19.0][0m would require + [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; + [32mzstandard [0.17.0|0.18.0|0.19.0|0.21.0|0.22.0][0m would require + [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; + [32mzstandard [0.18.0|0.19.0|0.21.0|0.22.0][0m would require + [32mpython_abi 3.11.* *_cp311[0m, which can be installed; + [32mzstandard 0.8.1[0m would require + [32mpython_abi * *_cp35m[0m, which can be installed; + [31mzstandard [0.21.0|0.22.0][0m would require + [31mzstd >=1.5.5,<1.5.6.0a0 [0m, which conflicts with any installable versions previously reported; + [32mxopen 1.7.0[0m would require + [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; + [32mxopen [1.7.0|1.8.0|1.9.0|2.0.1][0m would require + [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed. +# Last 100 lines of the build log. diff --git a/recipes/whatshap/build_failure.linux-aarch64.yaml b/recipes/whatshap/build_failure.linux-aarch64.yaml new file mode 100644 index 0000000000000..286d834638539 --- /dev/null +++ b/recipes/whatshap/build_failure.linux-aarch64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 9b572de4ff8373a2d807ddec40dc17bf503ae9bc41ed9e9afa694c1b3fc643d8 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: dependency issue +log: |2- + + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build + create_build_envs(top_level_pkg, notest) + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs + raise e + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs + environ.get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-aarch64: {MatchSpec("xopen==1.7.0=py312h8025657_3"), MatchSpec("zstandard")} + Encountered problems while solving: + - package xopen-1.7.0-py312h8025657_3 requires zstandard, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + [32mpysam >=0.18 [0m is installable with the potential options + [32mpysam 0.22.1[0m would require + [32mlibcurl >=8.8.0,<9.0a0 [0m, which requires + [32mzstd >=1.5.6,<1.6.0a0 [0m, which can be installed; + [32mpysam [0.22.0|0.22.1][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32mpysam [0.22.0|0.22.1][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mpysam [0.22.0|0.22.1][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mpysam 0.22.1[0m would require + [32mpython_abi 3.11.* *_cp311[0m, which can be installed; + [31mpython_abi 3.12.* *_cp312[0m is not installable because it conflicts with any installable versions previously reported; + [32mxopen >=1.2.0 [0m is installable with the potential options + [32mxopen [1.7.0|1.8.0|1.9.0|2.0.1][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32mxopen [1.7.0|1.8.0|1.9.0|2.0.1][0m would require + [32mpython_abi 3.11.* *_cp311[0m, which can be installed; + [32mxopen [1.7.0|1.8.0|1.9.0|2.0.1][0m would require + [32mzstandard[0m with the potential options + [32mzstandard [0.12.0|0.13.0][0m would require + [32mpython_abi * *_cp36m[0m, which can be installed; + [32mzstandard [0.12.0|0.13.0][0m would require + [32mpython_abi * *_cp37m[0m, which can be installed; + [32mzstandard [0.12.0|0.13.0][0m would require + [32mpython_abi * *_cp38[0m, which can be installed; + [32mzstandard [0.14.0|0.14.1|0.15.1|0.15.2][0m would require + [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; + [32mzstandard [0.14.0|0.14.1|0.15.1|0.15.2][0m would require + [32mpython_abi 3.6 *_pypy36_pp73[0m, which can be installed; + [32mzstandard [0.14.0|0.14.1|...|0.18.0][0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mzstandard [0.14.0|0.14.1|...|0.22.0][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mzstandard [0.14.0|0.14.1|...|0.22.0][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mzstandard [0.14.1|0.15.1|0.15.2|0.16.0|0.17.0][0m would require + [32mpython_abi 3.7 *_pypy37_pp73[0m, which can be installed; + [32mzstandard [0.16.0|0.17.0|...|0.22.0][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32mzstandard [0.17.0|0.18.0|0.19.0][0m would require + [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; + [32mzstandard [0.17.0|0.18.0|0.19.0|0.21.0|0.22.0][0m would require + [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; + [32mzstandard [0.18.0|0.19.0|0.21.0|0.22.0][0m would require + [32mpython_abi 3.11.* *_cp311[0m, which can be installed; + [31mzstandard [0.21.0|0.22.0][0m would require + [31mzstd >=1.5.5,<1.5.6.0a0 [0m, which conflicts with any installable versions previously reported; + [32mxopen [1.7.0|1.8.0|1.9.0|2.0.1][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mxopen [1.7.0|1.8.0|1.9.0][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mxopen [1.7.0|1.8.0|1.9.0][0m would require + [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed. +# Last 100 lines of the build log. diff --git a/recipes/whatshap/meta.yaml b/recipes/whatshap/meta.yaml index a1beb335da415..bf85a3c4c3e1f 100644 --- a/recipes/whatshap/meta.yaml +++ b/recipes/whatshap/meta.yaml @@ -7,7 +7,7 @@ source: sha256: 1f7ac47b18784b213492e4b92dddc63132d371b2f353660462536bcadc15e62e build: - number: 0 + number: 1 # Unexplicable CI failure, feel free to try to make this work again skip: true # [osx] script: python -m pip install --no-deps --ignore-installed . diff --git a/recipes/wiggletools/meta.yaml b/recipes/wiggletools/meta.yaml index 0f9b40782a183..07025114233ed 100644 --- a/recipes/wiggletools/meta.yaml +++ b/recipes/wiggletools/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 6 + number: 7 source: url: https://github.com/Ensembl/WiggleTools/archive/v{{ version }}.tar.gz diff --git a/recipes/xatlas/meta.yaml b/recipes/xatlas/meta.yaml index e68aea7b08dea..09cbbc7ed87ed 100644 --- a/recipes/xatlas/meta.yaml +++ b/recipes/xatlas/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 3 + number: 4 skip: True # [osx] source: diff --git a/recipes/yahmm/build_failure.linux-64.yaml b/recipes/yahmm/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..da1376670b799 --- /dev/null +++ b/recipes/yahmm/build_failure.linux-64.yaml @@ -0,0 +1,122 @@ +recipe_sha: 89d6a965f4a9b74d87364eade30096aa1b7c2a66a546356f7a99730acf50cf71 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: compiler error +log: |2- + 6:03:41 BIOCONDA INFO (OUT) Error compiling Cython file: + 16:03:41 BIOCONDA INFO (OUT) ------------------------------------------------------------ + 16:03:41 BIOCONDA INFO (OUT) ... + 16:03:41 BIOCONDA INFO (OUT) if self.in_edge_count[i] == 0: + 16:03:41 BIOCONDA INFO (OUT) merge_count += 1 + 16:03:41 BIOCONDA INFO (OUT) self.graph.remove_node( prestates[i] ) + 16:03:41 BIOCONDA INFO (OUT) + 16:03:41 BIOCONDA INFO (OUT) if verbose: + 16:03:41 BIOCONDA INFO (OUT) print "Orphan state {} removed due to no edges \ + 16:03:41 BIOCONDA INFO (OUT) ^ + 16:03:41 BIOCONDA INFO (OUT) ------------------------------------------------------------ + 16:03:41 BIOCONDA INFO (OUT) + 16:03:41 BIOCONDA INFO (OUT) yahmm/yahmm.pyx:2348:12: Syntax error in simple statement list + 16:03:41 BIOCONDA INFO (OUT) Traceback (most recent call last): + 16:03:41 BIOCONDA INFO (OUT) File "", line 2, in + 16:03:41 BIOCONDA INFO (OUT) File "", line 34, in + 16:03:41 BIOCONDA INFO (OUT) File "/opt/conda/conda-bld/yahmm_1718121715058/work/setup.py", line 24, in + cmd_obj.run() + File "/opt/conda/conda-bld/yahmm_1718121715058/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.8/site-packages/setuptools/_distutils/command/build.py", line 132, in run + self.run_command(cmd_name) + File "/opt/conda/conda-bld/yahmm_1718121715058/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 316, in run_command + self.distribution.run_command(command) + File "/opt/conda/conda-bld/yahmm_1718121715058/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.8/site-packages/setuptools/dist.py", line 968, in run_command + super().run_command(command) + File "/opt/conda/conda-bld/yahmm_1718121715058/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 988, in run_command + cmd_obj.run() + File "/opt/conda/conda-bld/yahmm_1718121715058/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 359, in run + self.build_extensions() + File "/opt/conda/conda-bld/yahmm_1718121715058/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 479, in build_extensions + self._build_extensions_serial() + File "/opt/conda/conda-bld/yahmm_1718121715058/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 505, in _build_extensions_serial + self.build_extension(ext) + File "/opt/conda/conda-bld/yahmm_1718121715058/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.8/site-packages/Cython/Distutils/build_ext.py", line 130, in build_extension + new_ext = cythonize( + File "/opt/conda/conda-bld/yahmm_1718121715058/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.8/site-packages/Cython/Build/Dependencies.py", line 1154, in cythonize + cythonize_one(*args) + File "/opt/conda/conda-bld/yahmm_1718121715058/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.8/site-packages/Cython/Build/Dependencies.py", line 1321, in cythonize_one + raise CompileError(None, pyx_file) + Cython.Compiler.Errors.CompileError: yahmm/yahmm.pyx + [1;31merror[0m: [1msubprocess-exited-with-error[0m + + [31m[0m [32mpython setup.py bdist_wheel[0m did not run successfully. + [31m[0m exit code: [1;36m1[0m + [31m>[0m See above for output. + + [1;35mnote[0m: This error originates from a subprocess, and is likely not a problem with pip. + [1;35mfull command[0m: [34m/opt/conda/conda-bld/yahmm_1718121715058/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/bin/python -u -c '[0m + [34m exec(compile('"'"''"'"''"'"'[0m + [34m # This is -- a caller that pip uses to run setup.py[0m + [34m #[0m + [34m # - It imports setuptools before invoking setup.py, to enable projects that directly[0m + [34m # import from distutils.core to work with newer packaging standards.[0m + [34m # - It provides a clear error message when setuptools is not installed.[0m + [34m # - It sets sys.argv[0] to the underlying setup.py, when invoking setup.py so[0m + [34m # setuptools doesn'"'"'t think the script is -c. This avoids the following warning:[0m + [34m # manifest_maker: standard file '"'"'-c'"'"' not found".[0m + [34m # - It generates a shim setup.py, for handling setup.cfg-only projects.[0m + [34m import os, sys, tokenize[0m + [34m [0m + [34m try:[0m + [34m import setuptools[0m + [34m except ImportError as error:[0m + [34m print([0m + [34m "ERROR: Can not execute setup.py since setuptools is not available in "[0m + [34m "the build environment.",[0m + [34m file=sys.stderr,[0m + [34m )[0m + [34m sys.exit(1)[0m + [34m [0m + [34m __file__ = %r[0m + [34m sys.argv[0] = __file__[0m + [34m [0m + [34m if os.path.exists(__file__):[0m + [34m filename = __file__[0m + [34m with tokenize.open(__file__) as f:[0m + [34m setup_py_code = f.read()[0m + [34m else:[0m + [34m filename = ""[0m + [34m setup_py_code = "from setuptools import setup; setup()"[0m + [34m [0m + [34m exec(compile(setup_py_code, filename, "exec"))[0m + [34m '"'"''"'"''"'"' % ('"'"'/opt/conda/conda-bld/yahmm_1718121715058/work/setup.py'"'"',), "", "exec"))' bdist_wheel -d /tmp/pip-wheel-72fnr0kj[0m + [1;35mcwd[0m: /opt/conda/conda-bld/yahmm_1718121715058/work/ + Building wheel for yahmm (setup.py): finished with status 'error' + [31m ERROR: Failed building wheel for yahmm[0m[31m + [0m Running setup.py clean for yahmm + Running command python setup.py clean + 'build/bdist.linux-x86_64' does not exist -- can't clean it + 'build/scripts-3.8' does not exist -- can't clean it + Failed to build yahmm + [31mERROR: Could not build wheels for yahmm, which is required to install pyproject.toml-based projects[0m[31m + [0mException information: + Traceback (most recent call last): + File "$PREFIX/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper + status = run_func(*args) + File "$PREFIX/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper + return func(self, options, args) + File "$PREFIX/lib/python3.8/site-packages/pip/_internal/commands/install.py", line 429, in run + raise InstallationError( + pip._internal.exceptions.InstallationError: Could not build wheels for yahmm, which is required to install pyproject.toml-based projects + Removed build tracker: '/tmp/pip-build-tracker-dk6gx091' + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/yahmm_1718121715058/work/conda_build.sh']' returned non-zero exit status 1. +# Last 100 lines of the build log. diff --git a/recipes/yahmm/build_failure.osx-64.yaml b/recipes/yahmm/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..3cb29bb5d53aa --- /dev/null +++ b/recipes/yahmm/build_failure.osx-64.yaml @@ -0,0 +1,105 @@ +recipe_sha: 89d6a965f4a9b74d87364eade30096aa1b7c2a66a546356f7a99730acf50cf71 # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +category: compiler error +log: |2- + 'build/scripts-3.9' does not exist -- can't clean it + ERROR: Could not build wheels for yahmm, which is required to install pyproject.toml-based projects + Extracting download + source tree in: /opt/mambaforge/envs/bioconda/conda-bld/yahmm_1718122048816/work + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/yahmm_1718122048816/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol + export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/yahmm_1718122048816/_build_env + return build_tree( + export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/yahmm_1718122048816/work + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build + utils.check_call_env( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env + return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ + raise subprocess.CalledProcessError(proc.returncode, _args) + INFO: activate_clang_osx-64.sh made the following environmental changes: + AR=x86_64-apple-darwin13.4.0-ar + AS=x86_64-apple-darwin13.4.0-as + CC=x86_64-apple-darwin13.4.0-clang + CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/yahmm-1.1.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms + CLANG=x86_64-apple-darwin13.4.0-clang + subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/yahmm_1718122048816/work/conda_build.sh']' returned non-zero exit status 1. + CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin + CMAKE_PREFIX_PATH=:$PREFIX + CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 + CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 + CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 + DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/yahmm-1.1.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix + HOST=x86_64-apple-darwin13.4.0 + INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool + LD=x86_64-apple-darwin13.4.0-ld + LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib + LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib + LIBTOOL=x86_64-apple-darwin13.4.0-libtool + LIPO=x86_64-apple-darwin13.4.0-lipo + MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib + NM=x86_64-apple-darwin13.4.0-nm + NMEDIT=x86_64-apple-darwin13.4.0-nmedit + OBJC=x86_64-apple-darwin13.4.0-clang + OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang + OTOOL=x86_64-apple-darwin13.4.0-otool + PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff + RANLIB=x86_64-apple-darwin13.4.0-ranlib + REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding + SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk + SEGEDIT=x86_64-apple-darwin13.4.0-segedit + SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table + SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack + SIZE=x86_64-apple-darwin13.4.0-size + STRINGS=x86_64-apple-darwin13.4.0-strings + STRIP=x86_64-apple-darwin13.4.0-strip + _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 + ac_cv_func_malloc_0_nonnull=yes + ac_cv_func_realloc_0_nonnull=yes + build_alias=x86_64-apple-darwin13.4.0 + host_alias=x86_64-apple-darwin13.4.0 + Using pip 24.0 from $PREFIX/lib/python3.9/site-packages/pip (python 3.9) + Non-user install because user site-packages disabled + Ignoring indexes: https://pypi.org/simple + Created temporary directory: /private/tmp/pip-build-tracker-3ipzv77c + Initialized build tracking at /private/tmp/pip-build-tracker-3ipzv77c + Created build tracker: /private/tmp/pip-build-tracker-3ipzv77c + Entered build tracker: /private/tmp/pip-build-tracker-3ipzv77c + Created temporary directory: /private/tmp/pip-install-gxe18bl5 + Created temporary directory: /private/tmp/pip-ephem-wheel-cache-54ja9u3k + Processing $SRC_DIR + Added file://$SRC_DIR to build tracker '/private/tmp/pip-build-tracker-3ipzv77c' + Running setup.py (path:$SRC_DIR/setup.py) egg_info for package from file://$SRC_DIR + Created temporary directory: /private/tmp/pip-pip-egg-info-l2q6h51q + Preparing metadata (setup.py): started + Preparing metadata (setup.py): finished with status 'done' + Source in $SRC_DIR has version 1.1.3, which satisfies requirement yahmm==1.1.3 from file://$SRC_DIR + Removed yahmm==1.1.3 from file://$SRC_DIR from build tracker '/private/tmp/pip-build-tracker-3ipzv77c' + Created temporary directory: /private/tmp/pip-unpack-dsefgft3 + Building wheels for collected packages: yahmm + Created temporary directory: /private/tmp/pip-wheel-kvbv_9y_ + Building wheel for yahmm (setup.py): started + Destination directory: /private/tmp/pip-wheel-kvbv_9y_ + Building wheel for yahmm (setup.py): finished with status 'error' + Running setup.py clean for yahmm + Failed to build yahmm + Exception information: + Traceback (most recent call last): + File "$PREFIX/lib/python3.9/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper + status = run_func(*args) + File "$PREFIX/lib/python3.9/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper + return func(self, options, args) + File "$PREFIX/lib/python3.9/site-packages/pip/_internal/commands/install.py", line 429, in run + raise InstallationError( + pip._internal.exceptions.InstallationError: Could not build wheels for yahmm, which is required to install pyproject.toml-based projects + Removed build tracker: '/private/tmp/pip-build-tracker-3ipzv77c' +# Last 100 lines of the build log. diff --git a/recipes/yahmm/meta.yaml b/recipes/yahmm/meta.yaml index e2b6ee76b0a71..7086a95db96b5 100644 --- a/recipes/yahmm/meta.yaml +++ b/recipes/yahmm/meta.yaml @@ -7,7 +7,7 @@ source: md5: 022158915e79a41ff36327a02a3c2265 build: - number: 9 + number: 10 script: {{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv skip: true # [py <= 36] diff --git a/recipes/zol/build_failure.linux-64.yaml b/recipes/zol/build_failure.linux-64.yaml new file mode 100644 index 0000000000000..e41e8093e2c86 --- /dev/null +++ b/recipes/zol/build_failure.linux-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 73d1967c85e3d7352bc7911468e2d69a9404a57ea581d74ba1acf86db3c0be9f # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + [31mpython_abi 3.12.* *_cp312[0m is not installable because it conflicts with any installable versions previously reported. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/conda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build + create_build_envs(top_level_pkg, notest) + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs + raise e + File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs + environ.get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("biopython==1.79=py310h6acc77f_1"), MatchSpec("python_abi=3.10[build=*_cp310]"), MatchSpec("pomegranate==0.13.3=py310h91b1402_3")} + Encountered problems while solving: + - package pomegranate-0.13.3-py310h91b1402_3 requires python_abi 3.10.* *_cp310, but none of the providers can be installed + - package biopython-1.79-py310h6acc77f_1 requires python_abi 3.10.* *_cp310, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + [32mbiopython 1.79.* [0m is installable with the potential options + [32mbiopython 1.79[0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32mbiopython 1.79[0m would require + [32mpython_abi 3.11.* *_cp311[0m, which can be installed; + [32mbiopython 1.79[0m would require + [32mpython_abi 3.6 *_pypy36_pp73[0m, which can be installed; + [32mbiopython 1.79[0m would require + [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; + [32mbiopython 1.79[0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mbiopython 1.79[0m would require + [32mpython_abi 3.7 *_pypy37_pp73[0m, which can be installed; + [32mbiopython 1.79[0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mbiopython 1.79[0m would require + [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; + [32mbiopython 1.79[0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mbiopython 1.79[0m would require + [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; + [32mpandas >=2.0 [0m is installable with the potential options + [32mpandas [2.0.0|2.0.1|...|2.2.2][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32mpandas [2.0.0|2.0.1|...|2.2.2][0m would require + [32mpython_abi 3.11.* *_cp311[0m, which can be installed; + [32mpandas [2.0.0|2.0.1|2.0.2|2.0.3][0m would require + [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; + [32mpandas [2.0.0|2.0.1|2.0.2|2.0.3][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mpandas [2.0.0|2.0.1|...|2.2.2][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [32mpandas [2.0.0|2.0.1|...|2.2.2][0m would require + [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; + [31mpandas [2.1.1|2.1.2|...|2.2.2][0m would require + [31mpython_abi 3.12.* *_cp312[0m, which conflicts with any installable versions previously reported; + [32mpomegranate >0.13,<=0.14.8 [0m is installable with the potential options + [32mpomegranate [0.13.3|0.14.8][0m would require + [32mpython_abi 3.10.* *_cp310[0m, which can be installed; + [32mpomegranate 0.13.3[0m would require + [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; + [32mpomegranate [0.13.3|0.14.8][0m would require + [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; + [32mpomegranate [0.13.3|0.14.8][0m would require + [32mpython_abi 3.8.* *_cp38[0m, which can be installed; + [32mpomegranate [0.13.3|0.14.8][0m would require + [32mpython_abi 3.9.* *_cp39[0m, which can be installed; + [31mpython >=3.12,<3.13.0a0 [0m is not installable because it requires + [31mpython_abi 3.12.* *_cp312[0m, which conflicts with any installable versions previously reported; + [31mpython_abi 3.12.* *_cp312[0m is not installable because it conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/zol/build_failure.osx-64.yaml b/recipes/zol/build_failure.osx-64.yaml new file mode 100644 index 0000000000000..6c896971a0cd6 --- /dev/null +++ b/recipes/zol/build_failure.osx-64.yaml @@ -0,0 +1,104 @@ +recipe_sha: 73d1967c85e3d7352bc7911468e2d69a9404a57ea581d74ba1acf86db3c0be9f # The hash of the recipe's meta.yaml at which this recipe failed to build. +skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. +log: |2- + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("python=3.10"), MatchSpec("python_abi=3.10[build=*_cp310]"), MatchSpec("codoff==1.0.0=pyh7cba7a3_0"), MatchSpec("pomegranate==0.13.3=py310h2fea185_3")} + Encountered problems while solving: + - package pomegranate-0.13.3-py310h2fea185_3 requires python_abi 3.10.* *_cp310, but none of the providers can be installed + - package codoff-1.0.0-pyh7cba7a3_0 requires python 3.10.*, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + codoff is installable with the potential options + codoff 1.0.0 would require + python_abi 3.10.* *_cp310, which can be installed; + codoff [1.0.0|1.1.0] would require + python 3.10.* , which requires + python_abi 3.10.* *_cp310, which can be installed; + pomegranate >0.13,<=0.14.8 is installable with the potential options + pomegranate [0.13.3|0.14.8] would require + python_abi 3.10.* *_cp310, which can be installed; + pomegranate 0.13.3 would require + python_abi 3.6.* *_cp36m, which can be installed; + pomegranate [0.13.3|0.14.8] would require + python_abi 3.7.* *_cp37m, which can be installed; + pomegranate [0.13.3|0.14.8] would require + python_abi 3.8.* *_cp38, which can be installed; + pomegranate [0.13.3|0.14.8] would require + python_abi 3.9.* *_cp39, which can be installed; + python >=3.11,<3.12.0a0 is not installable because it requires + python_abi 3.11.* *_cp311, which conflicts with any installable versions previously reported; + python_abi 3.11.* *_cp311 is not installable because it conflicts with any installable versions previously reported. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in + sys.exit(execute()) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute + api.build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build + return build_tree( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree + packages_from_this = build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build + create_build_envs(top_level_pkg, notest) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs + raise e + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs + environ.get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions + precs = get_package_records( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions + precs = _install_actions(prefix, index, specs)["LINK"] + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions + txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction + unlink_precs, link_precs = self.solve_for_diff( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff + final_precs = self.solve_final_state( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state + out_state = self._solving_loop(in_state, out_state, index) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop + solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt + new_conflicts = self._maybe_raise_for_problems( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems + self._maybe_raise_for_conda_build( + File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build + raise exc + conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("python=3.10"), MatchSpec("python_abi=3.10[build=*_cp310]"), MatchSpec("codoff==1.0.0=pyh7cba7a3_0"), MatchSpec("pomegranate==0.13.3=py310h2fea185_3")} + Encountered problems while solving: + - package pomegranate-0.13.3-py310h2fea185_3 requires python_abi 3.10.* *_cp310, but none of the providers can be installed + - package codoff-1.0.0-pyh7cba7a3_0 requires python 3.10.*, but none of the providers can be installed + + Could not solve for environment specs + The following packages are incompatible + codoff is installable with the potential options + codoff 1.0.0 would require + python_abi 3.10.* *_cp310, which can be installed; + codoff [1.0.0|1.1.0] would require + python 3.10.* , which requires + python_abi 3.10.* *_cp310, which can be installed; + pomegranate >0.13,<=0.14.8 is installable with the potential options + pomegranate [0.13.3|0.14.8] would require + python_abi 3.10.* *_cp310, which can be installed; + pomegranate 0.13.3 would require + python_abi 3.6.* *_cp36m, which can be installed; + pomegranate [0.13.3|0.14.8] would require + python_abi 3.7.* *_cp37m, which can be installed; + pomegranate [0.13.3|0.14.8] would require + python_abi 3.8.* *_cp38, which can be installed; + pomegranate [0.13.3|0.14.8] would require + python_abi 3.9.* *_cp39, which can be installed; + python >=3.11,<3.12.0a0 is not installable because it requires + python_abi 3.11.* *_cp311, which conflicts with any installable versions previously reported; + python_abi 3.11.* *_cp311 is not installable because it conflicts with any installable versions previously reported. +# Last 100 lines of the build log. diff --git a/recipes/zol/meta.yaml b/recipes/zol/meta.yaml index edf9288d7b0b3..c67937d62bf00 100644 --- a/recipes/zol/meta.yaml +++ b/recipes/zol/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 316a7703d1f2bd027a0907652712dda84bfdcd672133665ddbda3dff5976a2e5 build: - number: 0 + number: 1 skip: True # [py <= 39] run_exports: - {{ pin_subpackage('zol', max_pin='x.x') }} From f2b53b8f8a9bbdbf27a6508a71bb2cb60ec17e2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gen=C3=ADs=20Bayarri?= Date: Mon, 17 Jun 2024 17:28:24 +0200 Subject: [PATCH 0002/1514] [biobb_dna] update 4.2.2 (#48511) --- recipes/biobb_dna/meta.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/recipes/biobb_dna/meta.yaml b/recipes/biobb_dna/meta.yaml index fff6c2b7b8813..0c6d18adc96f8 100644 --- a/recipes/biobb_dna/meta.yaml +++ b/recipes/biobb_dna/meta.yaml @@ -1,5 +1,5 @@ {% set name = "biobb_dna" %} -{% set version = "4.2.1" %} +{% set version = "4.2.2" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 341f2ea64af78d7247c72b11c0bc1923fb0431ae8be479241a7cda5c13cfd2b3 + sha256: c635df2957606b24611f6133c9ed2d9108eb9c6e70440a99b9025cb629b07df5 build: number: 0 @@ -22,15 +22,15 @@ requirements: - setuptools - biobb_common ==4.2.0 - pandas >=1.3.0 - - scikit-learn ==0.24.2 - - curves ==3.0.0 + - scikit-learn >=0.24.2 + - curves ==3.0.2 run: - python >=3.8 - biobb_common ==4.2.0 - pandas >=1.3.0 - - scikit-learn ==0.24.2 - - curves ==3.0.0 + - scikit-learn >=0.24.2 + - curves ==3.0.2 test: imports: From 384520c3eb709a985135be9cec79fbc08abf3c78 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 17 Jun 2024 11:28:55 -0400 Subject: [PATCH 0003/1514] Update pybiolib to 1.1.2155 (#48520) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index 1c5b00ab39d4e..5affe24ebf801 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.1.2145" %} +{% set version = "1.1.2155" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 9c2789951fb82f4c8eafc72286753a5438fcdb2f7cb0e8ec75ec77255f9ade50 + sha256: 0c239511abed70319bdc6a54ea0581505f7c07c2b006d67f73ed53a4641d4f29 build: noarch: python From 70c583cae8dbc63a02a074924b33741593fcc88c Mon Sep 17 00:00:00 2001 From: Yan Gao Date: Mon, 17 Jun 2024 11:32:02 -0400 Subject: [PATCH 0004/1514] Rebuild tidehunter (#48518) * Update tidehunter to 1.5.5 * add run_exports * Update meta.yaml * Update meta.yaml --------- Co-authored-by: BiocondaBot <47040946+BiocondaBot@users.noreply.github.com> Co-authored-by: mencian --- recipes/tidehunter/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/tidehunter/meta.yaml b/recipes/tidehunter/meta.yaml index 4341c1d4db84f..227c438e5450b 100644 --- a/recipes/tidehunter/meta.yaml +++ b/recipes/tidehunter/meta.yaml @@ -7,10 +7,10 @@ package: source: url: https://github.com/yangao07/TideHunter/releases/download/v{{ version }}/TideHunter-v{{ version }}.tar.gz - sha256: 3821c41f123bea4711d64806313f31698a0176b277b2495f26e942c5d33f50d4 + sha256: b4ba87f4500b24f47da98a06a1d1e185ef05764a7d747099148d898b6b6bc054 build: - number: 0 + number: 2 run_exports: - {{ pin_subpackage('tidehunter', max_pin="x") }} From 01557c04fc28bde20d48e7f53559d9d8c603543c Mon Sep 17 00:00:00 2001 From: Carl Mathias Kobel Date: Mon, 17 Jun 2024 17:40:20 +0200 Subject: [PATCH 0005/1514] Add CompareM2 (#48516) * done * tar.gz not zip * thought that dependency error was fixed upstream? * external problem --- recipes/comparem2/build.sh | 15 +++++++++++++ recipes/comparem2/meta.yaml | 42 +++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 recipes/comparem2/build.sh create mode 100644 recipes/comparem2/meta.yaml diff --git a/recipes/comparem2/build.sh b/recipes/comparem2/build.sh new file mode 100644 index 0000000000000..ec6073d16ee3c --- /dev/null +++ b/recipes/comparem2/build.sh @@ -0,0 +1,15 @@ +#!/bin/bash -euo + +# Set up dir +mkdir -p ${PREFIX}/bin +export PACKAGE_HOME="${PREFIX}/share/${PKG_NAME}-${PKG_VERSION}-${PKG_BUILDNUM}" + +# Copy files +mkdir -p "${PACKAGE_HOME}" +chmod 755 comparem2 +cp -f comparem2 LICENSE "${PACKAGE_HOME}" +cp -rf config docs dynamic_report profile resources tests workflow "${PACKAGE_HOME}" + +# Make links +ln -sf ${PACKAGE_HOME}/comparem2 ${PREFIX}/bin/comparem2 +ln -sf ${PACKAGE_HOME}/comparem2 ${PREFIX}/bin/asscom2 # Legacy diff --git a/recipes/comparem2/meta.yaml b/recipes/comparem2/meta.yaml new file mode 100644 index 0000000000000..749d3fe7b00ca --- /dev/null +++ b/recipes/comparem2/meta.yaml @@ -0,0 +1,42 @@ +{% set name = "comparem2" %} +{% set version = "2.8.1" %} +{% set sha256 = "8e135f59d3dd48b9977374d30b2666ba8e4922ede1f0397e6a0cae0ff1f9bb92" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/cmkobel/comparem2/archive/refs/tags/v{{ version }}.tar.gz + sha256: {{ sha256 }} + +build: + number: 0 + noarch: generic + run_exports: + - {{ pin_subpackage('comparem2', max_pin="x") }} + +requirements: + run: + - snakemake-minimal <8 + - pulp <2.8 + - python <3.12 + - mamba # Necessary for snakemake to install child environments during development. + - pandas + +test: + commands: + - "touch dummy.fa; comparem2 --help" + +about: + home: "https://github.com/cmkobel/comparem2" + summary: 'CompareM2 genomes-to-report pipeline' + license_family: GPL3 + license: "GPL-3.0-or-later" + license_file: LICENSE + dev_url: "https://github.com/cmkobel/comparem2" + doc_url: "https://comparem2.readthedocs.io" + +extra: + recipe-maintainers: + - cmkobel From 3055152dc8434ddc6b560ad3cba919d08878cff4 Mon Sep 17 00:00:00 2001 From: Benjamin Wingfield Date: Mon, 17 Jun 2024 17:10:34 +0100 Subject: [PATCH 0006/1514] Add fraposa-pgsc (#48512) * add fraposa * bump patch version * drop LICENSE --- recipes/fraposa-pgsc/meta.yaml | 54 ++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 recipes/fraposa-pgsc/meta.yaml diff --git a/recipes/fraposa-pgsc/meta.yaml b/recipes/fraposa-pgsc/meta.yaml new file mode 100644 index 0000000000000..f70b5b8a05465 --- /dev/null +++ b/recipes/fraposa-pgsc/meta.yaml @@ -0,0 +1,54 @@ +{% set name = "fraposa-pgsc" %} +{% set version = "0.1.1" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/fraposa_pgsc-{{ version }}.tar.gz + sha256: 51292cc691422edb54264b3820e93041ae7bbad5f18ee20e7e478063ae0b9424 + +build: + entry_points: + - fraposa = fraposa_pgsc.fraposa_runner:main + - fraposa_pred = fraposa_pgsc.predstupopu:main + - fraposa_plot = fraposa_pgsc.plotpcs:main + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + run_exports: + - {{ pin_subpackage('fraposa-pgsc', max_pin="x.x") }} + +requirements: + host: + - python >=3.10,<4.0 + - poetry-core + - pip + run: + - python >=3.10.0,<4.0.0 + - pandas >=1.5.3,<2.0.0 + - scikit-learn >=1.2.1,<2.0.0 + - pyplink >=1.3.5,<2.0.0 + - numpy >=1.24.2,<2.0.0 + - matplotlib-base >=3.7.1,<4.0.0 + +test: + imports: + - fraposa_pgsc + commands: + - pip check + - fraposa --help + - fraposa_pred --help + - fraposa_plot --help + requires: + - pip + +about: + home: https://github.com/PGScatalog/fraposa_pgsc + summary: Tools to perform ancestry projection to a reference dataset within the calculator pipeline (pgsc_calc) + license: MIT + +extra: + recipe-maintainers: + - nebfield From 9a2576e606bcb93efabfcd78732c58323fbaeaad Mon Sep 17 00:00:00 2001 From: Louison <61231354+TheLokj@users.noreply.github.com> Date: Mon, 17 Jun 2024 18:17:32 +0200 Subject: [PATCH 0007/1514] Add DeepMicroClass recipe (#48517) * Add the DeepMicroClass recipe * Update versioning * fix subpackage pinning * simplify deps; setuptools and wheels are pulled in by python --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/deepmicroclass/meta.yaml | 44 ++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 recipes/deepmicroclass/meta.yaml diff --git a/recipes/deepmicroclass/meta.yaml b/recipes/deepmicroclass/meta.yaml new file mode 100644 index 0000000000000..35f9eff5c19ac --- /dev/null +++ b/recipes/deepmicroclass/meta.yaml @@ -0,0 +1,44 @@ +{% set name = "DeepMicroClass" %} +{% set version = "1.0.3" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/DeepMicroClass-{{ version }}.tar.gz + sha256: 58da320f516b547966d53dc662dad0d9adaddd575b394baf2f37e4cc1ca48bdc + +build: + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + run_exports: + - {{ pin_subpackage('deepmicroclass', max_pin="x") }} + +requirements: + host: + - python >=3.8 + - pip + run: + - python >=3.8 + - pandas + - numpy + - biopython + - ete3 + - pytorch + - pytorch-lightning + - torchmetrics + - tensorboard + - tqdm + - scikit-learn + +test: + imports: + - DeepMicroClass + +about: + home: https://github.com/chengsly/DeepMicroClass + summary: DeepMicroClass, a deep learning based contig prediction tool + license: BSD-2-Clause + license_file: LICENSE \ No newline at end of file From 871509b0981ec56c990e7effd31e2c30237fb3fa Mon Sep 17 00:00:00 2001 From: Benjamin Wingfield Date: Mon, 17 Jun 2024 17:49:28 +0100 Subject: [PATCH 0008/1514] Add pgscatalog.calc recipe (#48521) * add pgscatalog.calc * drop LICENSE --- recipes/pgscatalog.calc/meta.yaml | 53 +++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 recipes/pgscatalog.calc/meta.yaml diff --git a/recipes/pgscatalog.calc/meta.yaml b/recipes/pgscatalog.calc/meta.yaml new file mode 100644 index 0000000000000..0665ea2148648 --- /dev/null +++ b/recipes/pgscatalog.calc/meta.yaml @@ -0,0 +1,53 @@ +{% set name = "pgscatalog.calc" %} +{% set version = "0.2.1" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pgscatalog_calc-{{ version }}.tar.gz + sha256: 66c661a2b8a1b4c46db6f0377b31077053251123b46d31b3b51d54c8ea0dd4d8 + +build: + entry_points: + - pgscatalog-aggregate = pgscatalog.calc.cli.aggregate_cli:run_aggregate + - pgscatalog-ancestry-adjust = pgscatalog.calc.cli.ancestry_cli:run_ancestry + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + run_exports: + - {{ pin_subpackage('pgscatalog.calc', max_pin="x.x") }} + +requirements: + host: + - python >=3.10 + - poetry-core + - pip + run: + - python >=3.10 + - pgscatalog.core >=0.2.1,<0.3.0 + - numpy >=1.26.4,<2.0.0 + - pandas >=2.2.0,<3.0.0 + - pyarrow >=15.0.0,<16.0.0 + - scikit-learn >=1.4.0,<2.0.0 + - scipy >=1.12.0,<2.0.0 + +test: + imports: + - pgscatalog.calc + commands: + - pip check + - pgscatalog-aggregate --help + - pgscatalog-ancestry-adjust --help + requires: + - pip + +about: + home: https://github.com/PGScatalog/pygscatalog/ + summary: Libraries and applications for working with calculated polygenic scores + license: Apache-2.0 + +extra: + recipe-maintainers: + - nebfield From 1e444100a9ec13b99e7522a70c31ea6b153b4ecd Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 17 Jun 2024 12:02:05 -0500 Subject: [PATCH 0009/1514] Update select ucsc tools to 466 (#48461) * Update select ucsc tools to 466 * edit blacklist * skip ucsc-bedsort * skip ucsc-bedsort * revert ucsc-bedclip * revert ucsc-bedclip --- build-fail-blacklist | 3 --- recipes/ucsc-bedsort/build.sh | 21 +++++++++------ recipes/ucsc-bedsort/include.patch | 14 +++++----- recipes/ucsc-bedsort/meta.yaml | 29 +++++++++++--------- recipes/ucsc-fetchchromsizes/build.sh | 6 +++-- recipes/ucsc-fetchchromsizes/include.patch | 14 +++++----- recipes/ucsc-fetchchromsizes/meta.yaml | 31 +++++++++++++--------- recipes/ucsc-ixixx/build.sh | 21 +++++++++------ recipes/ucsc-ixixx/include.patch | 14 +++++----- recipes/ucsc-ixixx/meta.yaml | 30 ++++++++++++--------- 10 files changed, 105 insertions(+), 78 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 64bb8a094db8f..2ffeebf31cd48 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -789,7 +789,6 @@ recipes/ucsc-bedjointaboffset recipes/ucsc-bedpileups recipes/ucsc-bedremoveoverlap recipes/ucsc-bedrestricttopositions -recipes/ucsc-bedsort recipes/ucsc-bedtogenepred recipes/ucsc-bedtopsl recipes/ucsc-bedweedoverlapping @@ -843,7 +842,6 @@ recipes/ucsc-fatofastq recipes/ucsc-fatotab recipes/ucsc-fatrans recipes/ucsc-featurebits -recipes/ucsc-fetchchromsizes recipes/ucsc-findmotif recipes/ucsc-gaptolift recipes/ucsc-genepredfilter @@ -877,7 +875,6 @@ recipes/ucsc-hgvstovcf recipes/ucsc-htmlcheck recipes/ucsc-hubcheck recipes/ucsc-hubpubliccheck -recipes/ucsc-ixixx recipes/ucsc-lavtoaxt recipes/ucsc-lavtopsl recipes/ucsc-ldhggene diff --git a/recipes/ucsc-bedsort/build.sh b/recipes/ucsc-bedsort/build.sh index 56702a51622c8..7a161baafe158 100644 --- a/recipes/ucsc-bedsort/build.sh +++ b/recipes/ucsc-bedsort/build.sh @@ -1,13 +1,18 @@ #!/bin/bash mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/bedSort && make) -cp bin/bedSort "$PREFIX/bin" -chmod +x "$PREFIX/bin/bedSort" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && USE_HIC=0 make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/bedSort && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/bedSort "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/bedSort" diff --git a/recipes/ucsc-bedsort/include.patch b/recipes/ucsc-bedsort/include.patch index eb32b88d8f358..1646de15a38f7 100644 --- a/recipes/ucsc-bedsort/include.patch +++ b/recipes/ucsc-bedsort/include.patch @@ -1,24 +1,24 @@ ---- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 +--- a/kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 ++++ b/kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- a/kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ b/kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python import logging, sys, optparse, string from collections import defaultdict ---- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +--- a/kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 ++++ b/kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-bedsort/meta.yaml b/recipes/ucsc-bedsort/meta.yaml index bc375983579dc..832d257a70c12 100644 --- a/recipes/ucsc-bedsort/meta.yaml +++ b/recipes/ucsc-bedsort/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bedsort" %} {% set program = "bedSort" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -14,8 +14,9 @@ source: - "include.patch" build: - skip: True # [osx] - number: 5 + number: 0 + run_exports: + - {{ pin_subpackage('ucsc-bedsort', max_pin=None) }} requirements: build: @@ -25,22 +26,26 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib - run: - libpng - libuuid - mysql-connector-c - - openssl - - zlib + - libopenssl-static test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see https://genome.ucsc.edu/license" summary: "Sort a .bed file by chrom,chromStart" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-fetchchromsizes/build.sh b/recipes/ucsc-fetchchromsizes/build.sh index 502e537cac181..60cb967c7e192 100644 --- a/recipes/ucsc-fetchchromsizes/build.sh +++ b/recipes/ucsc-fetchchromsizes/build.sh @@ -1,4 +1,6 @@ #!/bin/bash -cp kent/src/utils/userApps/fetchChromSizes $PREFIX/bin -chmod +x $PREFIX/bin/fetchChromSizes +mkdir -p $PREFIX/bin + +cp -f kent/src/utils/userApps/fetchChromSizes $PREFIX/bin +chmod 0755 $PREFIX/bin/fetchChromSizes diff --git a/recipes/ucsc-fetchchromsizes/include.patch b/recipes/ucsc-fetchchromsizes/include.patch index eb32b88d8f358..1646de15a38f7 100644 --- a/recipes/ucsc-fetchchromsizes/include.patch +++ b/recipes/ucsc-fetchchromsizes/include.patch @@ -1,24 +1,24 @@ ---- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 +--- a/kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 ++++ b/kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- a/kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ b/kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python import logging, sys, optparse, string from collections import defaultdict ---- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +--- a/kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 ++++ b/kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-fetchchromsizes/meta.yaml b/recipes/ucsc-fetchchromsizes/meta.yaml index 9a4eabd87dba0..e93d20580f61f 100644 --- a/recipes/ucsc-fetchchromsizes/meta.yaml +++ b/recipes/ucsc-fetchchromsizes/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-fetchchromsizes" %} {% set program = "fetchChromSizes" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -14,34 +14,41 @@ source: - "include.patch" build: - skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage('ucsc-fetchchromsizes', max_pin=None) }} requirements: build: + - make - {{ compiler('c') }} + - {{ compiler('cxx') }} host: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib - run: - libpng - libuuid - mysql-connector-c - - openssl - - zlib + - libopenssl-static test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see https://genome.ucsc.edu/license" summary: " used to fetch chrom.sizes information from UCSC for the given " + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 diff --git a/recipes/ucsc-ixixx/build.sh b/recipes/ucsc-ixixx/build.sh index 7a31123d74c8f..e4ce4fe68f1ae 100644 --- a/recipes/ucsc-ixixx/build.sh +++ b/recipes/ucsc-ixixx/build.sh @@ -1,13 +1,18 @@ #!/bin/bash mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/index/ixIxx && make) -cp bin/ixIxx "$PREFIX/bin" -chmod +x "$PREFIX/bin/ixIxx" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && USE_HIC=0 make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/index/ixIxx && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/ixIxx "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/ixIxx" diff --git a/recipes/ucsc-ixixx/include.patch b/recipes/ucsc-ixixx/include.patch index eb32b88d8f358..1646de15a38f7 100644 --- a/recipes/ucsc-ixixx/include.patch +++ b/recipes/ucsc-ixixx/include.patch @@ -1,24 +1,24 @@ ---- kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 -+++ kent/src/inc/common.mk.new 2017-11-13 17:44:51.017090255 -0500 +--- a/kent/src/inc/common.mk 2017-11-07 17:46:00.000000000 -0500 ++++ b/kent/src/inc/common.mk 2017-11-13 17:44:51.017090255 -0500 @@ -17,7 +17,7 @@ endif HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- a/kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ b/kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python import logging, sys, optparse, string from collections import defaultdict ---- kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 +--- a/kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 ++++ b/kent/src/utils/expMatrixToBarchartBed/expMatrixToBarchartBed 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-ixixx/meta.yaml b/recipes/ucsc-ixixx/meta.yaml index e1ea15efb22ca..67d8022a455c2 100644 --- a/recipes/ucsc-ixixx/meta.yaml +++ b/recipes/ucsc-ixixx/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-ixixx" %} {% set program = "ixIxx" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -14,33 +14,39 @@ source: - "include.patch" build: - skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage('ucsc-ixixx', max_pin=None) }} requirements: build: - make - {{ compiler('c') }} + - {{ compiler('cxx') }} host: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib - run: - libpng - libuuid - mysql-connector-c - - openssl - - zlib + - libopenssl-static test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see https://genome.ucsc.edu/license" summary: "Create indices for simple line-oriented file of format " + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 From 786d117f0f7bdd0f309d137a491779642bf9fadc Mon Sep 17 00:00:00 2001 From: Nico Trummer <52698566+nictru@users.noreply.github.com> Date: Mon, 17 Jun 2024 21:59:40 +0200 Subject: [PATCH 0010/1514] Add jccirc (#48519) * Add jccirc * Fix linting * Remove unnecessary dependencies * minor edit to pin_subpackage --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/jccirc/build.sh | 11 ++++++++++ recipes/jccirc/jccirc.patch | 20 ++++++++++++++++++ recipes/jccirc/meta.yaml | 42 +++++++++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+) create mode 100644 recipes/jccirc/build.sh create mode 100644 recipes/jccirc/jccirc.patch create mode 100644 recipes/jccirc/meta.yaml diff --git a/recipes/jccirc/build.sh b/recipes/jccirc/build.sh new file mode 100644 index 0000000000000..9f15d23a48316 --- /dev/null +++ b/recipes/jccirc/build.sh @@ -0,0 +1,11 @@ +#!/bin/bash -euo + +mkdir -p $PREFIX/bin + +cp JCcirc.pl CircSimu.pl $PREFIX/bin + +ln -s $PREFIX/bin/JCcirc.pl $PREFIX/bin/JCcirc +chmod a+x $PREFIX/bin/JCcirc.pl + +ln -s $PREFIX/bin/CircSimu.pl $PREFIX/bin/CircSimu +chmod a+x $PREFIX/bin/CircSimu.pl diff --git a/recipes/jccirc/jccirc.patch b/recipes/jccirc/jccirc.patch new file mode 100644 index 0000000000000..b87026d12b5e2 --- /dev/null +++ b/recipes/jccirc/jccirc.patch @@ -0,0 +1,20 @@ +diff --git a/CircSimu.pl b/CircSimu.pl +index 5a86f48..f5651fa 100644 +--- a/CircSimu.pl ++++ b/CircSimu.pl +@@ -1,3 +1,5 @@ ++#!/usr/bin/env perl ++ + use 5.012; + use Getopt::Long; + my ($fq1, $fq2, $out, $gtf, $coverage, $coverage2, $rand_mode, $rand_mode2, $read_length, $seq_err, $insert_length, $insert_length2, $perc_minor, $sigma, $sigma2, $ref_dir, $help, $if_chr, $exon_skipping, $psi, $circ_read); +diff --git a/JCcirc.pl b/JCcirc.pl +index 9c9bfd7..14f8dc4 100644 +--- a/JCcirc.pl ++++ b/JCcirc.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl ++#!/usr/bin/env perl + + =begin SUMMARY + Main steps: diff --git a/recipes/jccirc/meta.yaml b/recipes/jccirc/meta.yaml new file mode 100644 index 0000000000000..e5eb2c9ba5f24 --- /dev/null +++ b/recipes/jccirc/meta.yaml @@ -0,0 +1,42 @@ +{% set name = "jccirc" %} +{% set version = "1.0.0" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/cbbzhang/JCcirc/archive/cc254e930854f868c8382bf0d0055df5157bcd6a.zip + sha256: 3828c78cfcb78e71af9a00ff86d8523f25f7fcf3f6c4d7bf492ea0aca86741ce + patches: jccirc.patch + +build: + number: 0 + noarch: generic + run_exports: + - {{ pin_subpackage('jccirc', max_pin="x") }} + +requirements: + run: + - perl + - bwa + +test: + commands: + - type JCcirc + - type CircSimu + +about: + home: "https://github.com/cbbzhang/JCcirc" + summary: "circRNA assembler through integrated junction contigs" + license: unknown + dev_url: "https://github.com/cbbzhang/JCcirc" + doc_url: "https://github.com/cbbzhang/JCcirc/blob/master/README.md" + +extra: + additional-platforms: + - linux-aarch64 + identifiers: + - doi:10.1093/bib/bbae062 + recipe-maintainers: + - nictru From 6bb1809a4eece0e0acbf2abba645917a409792d1 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 17 Jun 2024 15:20:03 -0500 Subject: [PATCH 0011/1514] Add recipe for pgscatalog.match v0.2.1 (#48534) --- recipes/pgscatalog.match/meta.yaml | 47 ++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 recipes/pgscatalog.match/meta.yaml diff --git a/recipes/pgscatalog.match/meta.yaml b/recipes/pgscatalog.match/meta.yaml new file mode 100644 index 0000000000000..758245eb75a7f --- /dev/null +++ b/recipes/pgscatalog.match/meta.yaml @@ -0,0 +1,47 @@ +{% set name = "pgscatalog.match" %} +{% set version = "0.2.1" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pgscatalog_match-{{ version }}.tar.gz + sha256: 509628df5a2819c29ff2a04f47ce8f285c672cf1a1c56db2e06db2bc6fdade04 + +build: + number: 0 + noarch: python + entry_points: + - pgscatalog-match = pgscatalog.match.cli.match_cli:run_match + - pgscatalog-matchmerge = pgscatalog.match.cli.merge_cli:run_merge + - pgscatalog-intersect = pgscatalog.match.cli.intersect_cli:run_intersect + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + run_exports: + - {{ pin_subpackage('pgscatalog.match', max_pin="x.x") }} + +requirements: + host: + - python >=3.10 + - poetry-core + - pip + run: + - python >=3.10 + - polars 0.20.30 + - pyarrow >=15.0.0,<16.0.0 + - pgscatalog.core >=0.2.1,<0.3.0 + +test: + imports: + - pgscatalog.match + commands: + - pgscatalog-match --help + - pgscatalog-matchmerge --help + - pgscatalog-intersect --help + +about: + home: https://github.com/PGScatalog/pygscatalog + summary: "Tools for matching variants in PGS scoring files and target variant information files." + license: MIT + license_family: MIT + doc_url: https://pygscatalog.readthedocs.io From 5a47a883b5d5a4a6973c7939ae4dfcf10c9edad9 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 17 Jun 2024 15:23:59 -0500 Subject: [PATCH 0012/1514] Update last to 1548 (#48532) --- recipes/last/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/last/meta.yaml b/recipes/last/meta.yaml index 9b4b0ad30eb22..621a10a4deea4 100644 --- a/recipes/last/meta.yaml +++ b/recipes/last/meta.yaml @@ -1,13 +1,13 @@ {% set name = "LAST" %} -{% set version = "1544" %} +{% set version = "1548" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://gitlab.com/mcfrith/last/-/archive/{{ version }}/last-{{ version }}.tar.gz - sha256: 6decf0698c0dab61c76af1b8a2594238f747e5c559c66ae93535c9efd07addc7 + url: "https://gitlab.com/mcfrith/last/-/archive/{{ version }}/last-{{ version }}.tar.gz" + sha256: bb1cab9586e7fed1dad6c101f1e0a44e053c52b7db417aa37769f1f8d0cba237 build: number: 0 From 14bb4ae383aca168001832494c6b1ed21a8c0330 Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Mon, 17 Jun 2024 14:00:34 -0700 Subject: [PATCH 0013/1514] update ntlink: bump build to rebuild after bulk failure (#48530) * update ntlink: bump build to rebuild after bulk failure * Fix btllib version --- recipes/ntlink/build_failure.linux-64.yaml | 105 --------------------- recipes/ntlink/meta.yaml | 6 +- 2 files changed, 3 insertions(+), 108 deletions(-) delete mode 100644 recipes/ntlink/build_failure.linux-64.yaml diff --git a/recipes/ntlink/build_failure.linux-64.yaml b/recipes/ntlink/build_failure.linux-64.yaml deleted file mode 100644 index defd330f3c1c2..0000000000000 --- a/recipes/ntlink/build_failure.linux-64.yaml +++ /dev/null @@ -1,105 +0,0 @@ -recipe_sha: b6b2ca37fdc32d50f4e2ed31248eda567e31fed8b43aecb273b79566000faa7f # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -category: dependency issue -log: |2- - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff - final_precs = self.solve_final_state( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state - out_state = self._solving_loop(in_state, out_state, index) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop - solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("_python_rc"), MatchSpec("python==3.12.0rc3=rc3_hab00c5b_1_cpython")} - Encountered problems while solving: - - nothing provides _python_rc needed by python-3.12.0rc3-rc3_hab00c5b_1_cpython - - Could not solve for environment specs - The following packages are incompatible - [32mbtllib <1.7.0 [0m is installable with the potential options - [32mbtllib [1.4.10|1.4.3|...|1.6.2][0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [32mbtllib [1.4.10|1.4.3|...|1.6.2][0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mbtllib [1.4.10|1.4.3|...|1.6.2][0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [31mpython 3.12.* *_cpython[0m is not installable because there are no viable options - [31mpython [3.12.0|3.12.1|3.12.2|3.12.3][0m would require - [31mpython_abi 3.12.* *_cp312[0m, which conflicts with any installable versions previously reported; - [31mpython 3.12.0rc3[0m would require - [31m_python_rc[0m, which does not exist (perhaps a missing channel). - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/conda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2308, in build - output_metas = expand_outputs([(m, need_source_download, need_reparse_in_env)]) - File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 916, in expand_outputs - for output_dict, m in deepcopy(_m).get_output_metadata_set( - File "/opt/conda/lib/python3.10/site-packages/conda_build/metadata.py", line 2737, in get_output_metadata_set - conda_packages = finalize_outputs_pass( - File "/opt/conda/lib/python3.10/site-packages/conda_build/metadata.py", line 1095, in finalize_outputs_pass - fm = finalize_metadata( - File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 650, in finalize_metadata - build_unsat, host_unsat = add_upstream_pins( - File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 491, in add_upstream_pins - host_deps, host_unsat, extra_run_specs_from_host = _read_upstream_pin_files( - File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 444, in _read_upstream_pin_files - deps, precs, unsat = get_env_dependencies( - File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 156, in get_env_dependencies - precs = environ.get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions - precs = _install_actions(prefix, index, specs)["LINK"] - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions - txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction - unlink_precs, link_precs = self.solve_for_diff( - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff - final_precs = self.solve_final_state( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state - out_state = self._solving_loop(in_state, out_state, index) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop - solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("_python_rc"), MatchSpec("python==3.12.0rc3=rc3_hab00c5b_1_cpython")} - Encountered problems while solving: - - nothing provides _python_rc needed by python-3.12.0rc3-rc3_hab00c5b_1_cpython - - Could not solve for environment specs - The following packages are incompatible - [32mbtllib <1.7.0 [0m is installable with the potential options - [32mbtllib [1.4.10|1.4.3|...|1.6.2][0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [32mbtllib [1.4.10|1.4.3|...|1.6.2][0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mbtllib [1.4.10|1.4.3|...|1.6.2][0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [31mpython 3.12.* *_cpython[0m is not installable because there are no viable options - [31mpython [3.12.0|3.12.1|3.12.2|3.12.3][0m would require - [31mpython_abi 3.12.* *_cp312[0m, which conflicts with any installable versions previously reported; - [31mpython 3.12.0rc3[0m would require - [31m_python_rc[0m, which does not exist (perhaps a missing channel). -# Last 100 lines of the build log. diff --git a/recipes/ntlink/meta.yaml b/recipes/ntlink/meta.yaml index d0fda74828d0e..9cc35a33686b1 100644 --- a/recipes/ntlink/meta.yaml +++ b/recipes/ntlink/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 248ccae217dd7ed2e4664c6b48235f8db2ba24d8896b8315f6e657f19d5f7085 build: - number: 1 + number: 2 noarch: generic run_exports: - {{ pin_subpackage('ntlink', max_pin="x") }} @@ -20,7 +20,7 @@ requirements: - python - pip - zlib - - btllib <1.7.0 + - btllib >=1.7.1 run: - python - zlib @@ -28,7 +28,7 @@ requirements: - numpy - python-igraph - abyss >=2.3.0 - - btllib <1.7.0 + - btllib >=1.7.1 test: From e895413bd691346376090e8e32459f7388b4e1c9 Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Mon, 17 Jun 2024 14:08:55 -0700 Subject: [PATCH 0014/1514] update ntsynt - fix build failure with bulk build (#48533) --- recipes/ntsynt/build_failure.linux-64.yaml | 106 --------------------- recipes/ntsynt/build_failure.osx-64.yaml | 106 --------------------- recipes/ntsynt/meta.yaml | 6 +- 3 files changed, 3 insertions(+), 215 deletions(-) delete mode 100644 recipes/ntsynt/build_failure.linux-64.yaml delete mode 100644 recipes/ntsynt/build_failure.osx-64.yaml diff --git a/recipes/ntsynt/build_failure.linux-64.yaml b/recipes/ntsynt/build_failure.linux-64.yaml deleted file mode 100644 index 30360b3f6838a..0000000000000 --- a/recipes/ntsynt/build_failure.linux-64.yaml +++ /dev/null @@ -1,106 +0,0 @@ -recipe_sha: 7eb5af9293834f34d7bf103754fe7603342d296e92fac534cf8f31fbed63c4cc # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -category: dependency issue -reason: constrained to an old version of btllib -log: |2- - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions - precs = _install_actions(prefix, index, specs)["LINK"] - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions - txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction - unlink_precs, link_precs = self.solve_for_diff( - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff - final_precs = self.solve_final_state( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state - out_state = self._solving_loop(in_state, out_state, index) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop - solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("python_abi=3.10[build=*_cp310]"), MatchSpec("btllib==1.4.3=py310h9f5acd7_0")} - Encountered problems while solving: - - package btllib-1.4.3-py310h9f5acd7_0 requires python_abi 3.10.* *_cp310, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - [32mbtllib <1.7.0 [0m is installable with the potential options - [32mbtllib [1.4.10|1.4.3|...|1.6.2][0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [32mbtllib [1.4.10|1.4.3|...|1.6.2][0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mbtllib [1.4.10|1.4.3|...|1.6.2][0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [31mpython 3.11.* *_cpython[0m is not installable because it requires - [31mpython_abi 3.11.* *_cp311[0m, which conflicts with any installable versions previously reported. - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/conda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2308, in build - output_metas = expand_outputs([(m, need_source_download, need_reparse_in_env)]) - File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 916, in expand_outputs - for output_dict, m in deepcopy(_m).get_output_metadata_set( - File "/opt/conda/lib/python3.10/site-packages/conda_build/metadata.py", line 2737, in get_output_metadata_set - conda_packages = finalize_outputs_pass( - File "/opt/conda/lib/python3.10/site-packages/conda_build/metadata.py", line 1095, in finalize_outputs_pass - fm = finalize_metadata( - File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 650, in finalize_metadata - build_unsat, host_unsat = add_upstream_pins( - File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 491, in add_upstream_pins - host_deps, host_unsat, extra_run_specs_from_host = _read_upstream_pin_files( - File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 444, in _read_upstream_pin_files - deps, precs, unsat = get_env_dependencies( - File "/opt/conda/lib/python3.10/site-packages/conda_build/render.py", line 156, in get_env_dependencies - precs = environ.get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions - precs = _install_actions(prefix, index, specs)["LINK"] - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions - txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction - unlink_precs, link_precs = self.solve_for_diff( - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff - final_precs = self.solve_final_state( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state - out_state = self._solving_loop(in_state, out_state, index) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop - solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("python_abi=3.10[build=*_cp310]"), MatchSpec("btllib==1.4.3=py310h9f5acd7_0")} - Encountered problems while solving: - - package btllib-1.4.3-py310h9f5acd7_0 requires python_abi 3.10.* *_cp310, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - [32mbtllib <1.7.0 [0m is installable with the potential options - [32mbtllib [1.4.10|1.4.3|...|1.6.2][0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [32mbtllib [1.4.10|1.4.3|...|1.6.2][0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mbtllib [1.4.10|1.4.3|...|1.6.2][0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [31mpython 3.11.* *_cpython[0m is not installable because it requires - [31mpython_abi 3.11.* *_cp311[0m, which conflicts with any installable versions previously reported. -# Last 100 lines of the build log. diff --git a/recipes/ntsynt/build_failure.osx-64.yaml b/recipes/ntsynt/build_failure.osx-64.yaml deleted file mode 100644 index 1f9c14d8c50b7..0000000000000 --- a/recipes/ntsynt/build_failure.osx-64.yaml +++ /dev/null @@ -1,106 +0,0 @@ -recipe_sha: 7eb5af9293834f34d7bf103754fe7603342d296e92fac534cf8f31fbed63c4cc # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -category: dependency issue -reason: constrained to an old version of btllib -log: |2- - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff - final_precs = self.solve_final_state( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state - out_state = self._solving_loop(in_state, out_state, index) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop - solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("python==3.12.0rc3=rc3_h30d4d87_1_cpython"), MatchSpec("_python_rc")} - Encountered problems while solving: - - nothing provides _python_rc needed by python-3.12.0rc3-rc3_h30d4d87_1_cpython - - Could not solve for environment specs - The following packages are incompatible - btllib <1.7.0 is installable with the potential options - btllib [1.4.10|1.4.3|...|1.6.2] would require - python_abi 3.10.* *_cp310, which can be installed; - btllib [1.4.10|1.4.3|...|1.6.2] would require - python_abi 3.8.* *_cp38, which can be installed; - btllib [1.4.10|1.4.3|...|1.6.2] would require - python_abi 3.9.* *_cp39, which can be installed; - python 3.12.* *_cpython is not installable because there are no viable options - python [3.12.0|3.12.1|3.12.2|3.12.3] would require - python_abi 3.12.* *_cp312, which conflicts with any installable versions previously reported; - python 3.12.0rc3 would require - _python_rc, which does not exist (perhaps a missing channel). - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2308, in build - output_metas = expand_outputs([(m, need_source_download, need_reparse_in_env)]) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 916, in expand_outputs - for output_dict, m in deepcopy(_m).get_output_metadata_set( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 2737, in get_output_metadata_set - conda_packages = finalize_outputs_pass( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 1095, in finalize_outputs_pass - fm = finalize_metadata( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 650, in finalize_metadata - build_unsat, host_unsat = add_upstream_pins( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 491, in add_upstream_pins - host_deps, host_unsat, extra_run_specs_from_host = _read_upstream_pin_files( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 444, in _read_upstream_pin_files - deps, precs, unsat = get_env_dependencies( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 156, in get_env_dependencies - precs = environ.get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions - precs = _install_actions(prefix, index, specs)["LINK"] - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions - txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction - unlink_precs, link_precs = self.solve_for_diff( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff - final_precs = self.solve_final_state( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state - out_state = self._solving_loop(in_state, out_state, index) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop - solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("python==3.12.0rc3=rc3_h30d4d87_1_cpython"), MatchSpec("_python_rc")} - Encountered problems while solving: - - nothing provides _python_rc needed by python-3.12.0rc3-rc3_h30d4d87_1_cpython - - Could not solve for environment specs - The following packages are incompatible - btllib <1.7.0 is installable with the potential options - btllib [1.4.10|1.4.3|...|1.6.2] would require - python_abi 3.10.* *_cp310, which can be installed; - btllib [1.4.10|1.4.3|...|1.6.2] would require - python_abi 3.8.* *_cp38, which can be installed; - btllib [1.4.10|1.4.3|...|1.6.2] would require - python_abi 3.9.* *_cp39, which can be installed; - python 3.12.* *_cpython is not installable because there are no viable options - python [3.12.0|3.12.1|3.12.2|3.12.3] would require - python_abi 3.12.* *_cp312, which conflicts with any installable versions previously reported; - python 3.12.0rc3 would require - _python_rc, which does not exist (perhaps a missing channel). -# Last 100 lines of the build log. diff --git a/recipes/ntsynt/meta.yaml b/recipes/ntsynt/meta.yaml index 452ed34955f11..44809b03ae3c3 100644 --- a/recipes/ntsynt/meta.yaml +++ b/recipes/ntsynt/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 71fa06c73481313518a504586b86a2a32cd49006ce6728b40eef0d455b9bb409 build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage("ntsynt", max_pin="x") }} @@ -24,10 +24,10 @@ requirements: - ninja - llvm-openmp # [osx] - libgomp # [linux] - - btllib <1.7.0 + - btllib >=1.7.1 run: - python - - btllib <1.7.0 + - btllib >=1.7.1 - intervaltree - pybedtools - ncls From b2250b65b0ebe46e4c68fa329867563a537896a3 Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Mon, 17 Jun 2024 14:09:48 -0700 Subject: [PATCH 0015/1514] update goldrush - re-build after bulk failure (#48531) --- recipes/goldrush/build_failure.osx-64.yaml | 104 --------------------- recipes/goldrush/meta.yaml | 2 +- 2 files changed, 1 insertion(+), 105 deletions(-) delete mode 100644 recipes/goldrush/build_failure.osx-64.yaml diff --git a/recipes/goldrush/build_failure.osx-64.yaml b/recipes/goldrush/build_failure.osx-64.yaml deleted file mode 100644 index 68bbf74be2cfa..0000000000000 --- a/recipes/goldrush/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 54f3d70cb88503230e5439d30fdb4f23fb1fbb5fa91e1646640a4a8aedffe36c # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |- - In file included from ../subprojects/goldpolish/subprojects/sealer/Graph/ConstrainedBidiBFSVisitor.h:8: - ../subprojects/goldpolish/subprojects/sealer/Graph/HashGraph.h:298:17: warning: 'iterator>' is deprecated [-Wdeprecated-declarations] - : public std::iterator - ^ - $BUILD_PREFIX/bin/../include/c/v1/__utility/pair.h:89:9: note: in instantiation of member class 'boost::graph_traits>::out_edge_iterator' requested here - _T1 first; - ^ - ../subprojects/goldpolish/subprojects/sealer/Graph/AllPathsSearch.h:47:20: note: in instantiation of template class 'std::pair>::out_edge_iterator, boost::graph_traits>::out_edge_iterator>' requested here - eiStack.push_back(out_edges(start, g)); - ^ - ../subprojects/goldpolish/subprojects/sealer/Graph/ConstrainedBidiBFSVisitor.h:441:40: note: in instantiation of function template specialization 'allPathsSearch>' requested here - AllPathsSearchResult leftResult = allPathsSearch( - ^ - ../subprojects/goldpolish/subprojects/sealer/Graph/ConstrainedBidiBFSVisitor.h:411:30: note: in instantiation of member function 'ConstrainedBidiBFSVisitor>::buildPaths' requested here - PathSearchResult result = buildPaths(*i); - ^ - ../subprojects/goldpolish/subprojects/sealer/Graph/ConstrainedBidiBFSVisitor.h:247:29: note: in instantiation of member function 'ConstrainedBidiBFSVisitor>::buildPaths' requested here - PathSearchResult result = buildPaths(); - ^ - ../subprojects/goldpolish/subprojects/sealer/Konnector/konnector.h:323:30: note: in instantiation of member function 'ConstrainedBidiBFSVisitor>::pathsToGoal' requested here - result.pathResult = visitor.pathsToGoal(paths); - ^ - ../subprojects/goldpolish/subprojects/sealer/sealer.cpp:434:30: note: in instantiation of function template specialization 'connectPairs>' requested here - ConnectPairsResult result = connectPairs(k, read1, read2, g, params); - ^ - ../subprojects/goldpolish/subprojects/sealer/sealer.cpp:624:21: note: in instantiation of function template specialization 'merge>' requested here - string tempSeq = merge(g, k, read2_it->second, read1, read2, params, g_count); - ^ - ../subprojects/goldpolish/subprojects/sealer/sealer.cpp:1056:3: note: in instantiation of function template specialization 'kRun>' requested here - kRun(params, opt::k, g, allmerged, flanks, gapsclosed); - ^ - $BUILD_PREFIX/bin/../include/c/v1/__iterator/iterator.h:24:29: note: 'iterator>' has been explicitly marked deprecated here - struct _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX17 iterator - ^ - $BUILD_PREFIX/bin/../include/c/v1/__config:1049:41: note: expanded from macro '_LIBCPP_DEPRECATED_IN_CXX17' - # define _LIBCPP_DEPRECATED_IN_CXX17 _LIBCPP_DEPRECATED - ^ - $BUILD_PREFIX/bin/../include/c/v1/__config:1022:49: note: expanded from macro '_LIBCPP_DEPRECATED' - # define _LIBCPP_DEPRECATED __attribute__((__deprecated__)) - ^ - 7 warnings generated. - [57/57] Linking target subprojects/goldpolish/subprojects/sealer/sealer-gr - [0/1] Installing files. - Installing goldrush_path/goldrush-path to $PREFIX/bin - Skipping RPATH fixing - Installing subprojects/goldpolish/src/goldpolish-index to $PREFIX/bin - Skipping RPATH fixing - Installing subprojects/goldpolish/src/goldpolish-targeted-bfs to $PREFIX/bin - Skipping RPATH fixing - Installing subprojects/goldpolish/src/goldpolish-hold to $PREFIX/bin - Skipping RPATH fixing - Installing subprojects/goldpolish/subprojects/ntedit/ntedit-gr to $PREFIX/bin - Skipping RPATH fixing - Installing subprojects/goldpolish/subprojects/sealer/sealer-gr to $PREFIX/bin - Skipping RPATH fixing - Installing $SRC_DIR/bin/goldrush to $PREFIX/bin - Installing $SRC_DIR/bin/goldrush-ulimit to $PREFIX/bin - Installing $SRC_DIR/subprojects/goldpolish/scripts/goldpolish_utils.py to $PREFIX/bin - Installing $SRC_DIR/subprojects/goldpolish/scripts/goldpolish to $PREFIX/bin - Installing $SRC_DIR/subprojects/goldpolish/scripts/goldpolish-autoclean to $PREFIX/bin - Installing $SRC_DIR/subprojects/goldpolish/scripts/goldpolish-make to $PREFIX/bin - Installing $SRC_DIR/subprojects/goldpolish/scripts/goldpolish-mask to $PREFIX/bin - Installing $SRC_DIR/subprojects/goldpolish/scripts/goldpolish-ntedit to $PREFIX/bin - Installing $SRC_DIR/subprojects/goldpolish/scripts/goldpolish-polish-batch to $PREFIX/bin - Installing $SRC_DIR/subprojects/goldpolish/scripts/goldpolish-reaper to $PREFIX/bin - Installing $SRC_DIR/subprojects/goldpolish/scripts/goldpolish-to-upper to $PREFIX/bin - - Resource usage statistics from building goldrush: - Process count: 9 - CPU time: Sys=0:00:04.3, User=0:01:02.5 - Memory: 791.1M - Disk usage: 92.5K - Time elapsed: 0:00:38.4 - - - number of files: 18 - api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2711, in build - newly_built_packages = bundlers[pkg_type](output_d, m, env, stats) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 1850, in bundle_conda - files = post_process_files(metadata, initial_files) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 1664, in post_process_files - post_build(m, new_files, build_python=python) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/post.py", line 1727, in post_build - post_process_shared_lib(m, f, prefix_files, host_prefix) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/post.py", line 1603, in post_process_shared_lib - mk_relative_osx(path, host_prefix, m, files=files, rpaths=rpaths) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/post.py", line 470, in mk_relative_osx - names = macho.otool(path, prefix) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/os_utils/macho.py", line 221, in otool - lines = check_output([otool, "-l", path], stderr=STDOUT).decode("utf-8") - File "/opt/mambaforge/envs/bioconda/lib/python3.10/subprocess.py", line 421, in check_output - return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, - File "/opt/mambaforge/envs/bioconda/lib/python3.10/subprocess.py", line 526, in run - raise CalledProcessError(retcode, process.args, - subprocess.CalledProcessError: Command '['/opt/mambaforge/envs/bioconda/conda-bld/goldrush_1718131614419/_build_env/bin/llvm-otool', '-l', '/opt/mambaforge/envs/bioconda/conda-bld/goldrush_1718131614419/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/bin/sealer-gr']' died with . -# Last 100 lines of the build log. diff --git a/recipes/goldrush/meta.yaml b/recipes/goldrush/meta.yaml index eae6980bbcdfb..9b911daa07b38 100644 --- a/recipes/goldrush/meta.yaml +++ b/recipes/goldrush/meta.yaml @@ -11,7 +11,7 @@ source: build: skip: true # [py < 38 or win or py > 39] - number: 1 + number: 2 run_exports: {{ pin_subpackage("goldrush", max_pin="x") }} requirements: From 32c54ea557a4466adb46e3b0c774403523c1c684 Mon Sep 17 00:00:00 2001 From: M Bernt Date: Mon, 17 Jun 2024 23:11:35 +0200 Subject: [PATCH 0016/1514] Merge maaslin2 and bioc-maaslin2 (#48229) * merge maaslin2 and bioc-maaslin2 I guess we should not have two packages with the same name. Question is if the R script Maaslin2 will survive the automatic update of the bioc recipe. * copy additional R scripts --- recipes/bioconductor-maaslin2/build.sh | 6 +- recipes/bioconductor-maaslin2/meta.yaml | 5 +- .../rpath.patch | 0 recipes/maaslin2/build.sh | 11 --- recipes/maaslin2/meta.yaml | 83 ------------------- 5 files changed, 9 insertions(+), 96 deletions(-) rename recipes/{maaslin2 => bioconductor-maaslin2}/rpath.patch (100%) delete mode 100644 recipes/maaslin2/build.sh delete mode 100644 recipes/maaslin2/meta.yaml diff --git a/recipes/bioconductor-maaslin2/build.sh b/recipes/bioconductor-maaslin2/build.sh index c1d13421f5f1e..396fc876989fc 100644 --- a/recipes/bioconductor-maaslin2/build.sh +++ b/recipes/bioconductor-maaslin2/build.sh @@ -8,4 +8,8 @@ CXX=$CXX CXX98=$CXX CXX11=$CXX CXX14=$CXX" > ~/.R/Makevars -$R CMD INSTALL --build . \ No newline at end of file +$R CMD INSTALL --build . + +# copy additional scripts +chmod +x R/*.R +cp R/*.R ${PREFIX}/bin/ diff --git a/recipes/bioconductor-maaslin2/meta.yaml b/recipes/bioconductor-maaslin2/meta.yaml index 344540a1fbdb1..49d89ae9eb4e0 100644 --- a/recipes/bioconductor-maaslin2/meta.yaml +++ b/recipes/bioconductor-maaslin2/meta.yaml @@ -12,8 +12,10 @@ source: - 'https://bioarchive.galaxyproject.org/{{ name }}_{{ version }}.tar.gz' - 'https://depot.galaxyproject.org/software/bioconductor-{{ name|lower }}/bioconductor-{{ name|lower }}_{{ version }}_src_all.tar.gz' md5: 0f92778b2d59935191e2ac58621da8f5 + patches: + - rpath.patch build: - number: 0 + number: 1 rpaths: - lib/R/lib/ - lib/ @@ -74,6 +76,7 @@ requirements: test: commands: - '$R -e "library(''{{ name }}'')"' + - Maaslin2.R --help about: home: 'https://bioconductor.org/packages/{{ bioc }}/bioc/html/{{ name }}.html' license: 'MIT + file LICENSE' diff --git a/recipes/maaslin2/rpath.patch b/recipes/bioconductor-maaslin2/rpath.patch similarity index 100% rename from recipes/maaslin2/rpath.patch rename to recipes/bioconductor-maaslin2/rpath.patch diff --git a/recipes/maaslin2/build.sh b/recipes/maaslin2/build.sh deleted file mode 100644 index 8e52142966bad..0000000000000 --- a/recipes/maaslin2/build.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -# R refuses to build packages that mark themselves as Priority: Recommended -mv DESCRIPTION DESCRIPTION.old -grep -v '^Priority: ' DESCRIPTION.old > DESCRIPTION - -$R CMD INSTALL --build . - -# copy additional scripts -chmod +x R/*.R -cp R/*.R ${PREFIX}/bin/ diff --git a/recipes/maaslin2/meta.yaml b/recipes/maaslin2/meta.yaml deleted file mode 100644 index faa14bf9d455a..0000000000000 --- a/recipes/maaslin2/meta.yaml +++ /dev/null @@ -1,83 +0,0 @@ -{% set name = "MaAsLin2" %} -{% set version = "1.16.0" %} -{% set sha256 = "38261a85db7dce552590110eed241e679307f5e6c0b67f1667d68c65c86e25b5" %} - -package: - name: {{ name|lower }} - version: {{ version }} - -source: - url: https://www.bioconductor.org/packages/release/bioc/src/contrib/Maaslin2_{{ version }}.tar.gz - sha256: {{ sha256 }} - patches: - - rpath.patch - -build: - run_exports: - - {{ pin_subpackage(name|lower, max_pin="x") }} - number: 0 - noarch: generic - # This is required to make R link correctly on Linux. - rpaths: - - lib/R/lib/ - - lib/ - -requirements: - host: - - r-base - - bioconductor-edger - - bioconductor-metagenomeseq - - r-lmertest - - r-pscl - - r-pbapply - - r-car - - r-dplyr - - r-vegan - - r-chemometrics - - r-ggplot2 - - r-pheatmap - - r-logging - - r-data.table - - r-mass - - r-mumin - - r-optparse - - r-hash - - r-cplm - - r-glmmtmb - run: - - r-base - - bioconductor-edger - - bioconductor-metagenomeseq - - r-lmertest - - r-pscl - - r-pbapply - - r-car - - r-dplyr - - r-vegan - - r-chemometrics - - r-ggplot2 - - r-pheatmap - - r-logging - - r-data.table - - r-mass - - r-mumin - - r-optparse - - r-hash - - r-cplm - - r-glmmtmb - -test: - commands: - - $R -e "library('Maaslin2')" - - Maaslin2.R --help - -about: - home: http://huttenhower.sph.harvard.edu/maaslin2 - license: Custom OSS - license_file: LICENSE - summary: "MaAsLin2 is comprehensive R package for efficiently determining multivariable association between microbial meta'omic features and clinical metadata." - -extra: - maintainers: - - npavlovikj - - ljmciver From ce2db29be27fd059df25592f4ef2c78ca7794a2e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 17 Jun 2024 22:18:03 -0400 Subject: [PATCH 0017/1514] Update goldrush to 1.1.2 (#48541) --- recipes/goldrush/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/goldrush/meta.yaml b/recipes/goldrush/meta.yaml index 9b911daa07b38..d922f93a62226 100644 --- a/recipes/goldrush/meta.yaml +++ b/recipes/goldrush/meta.yaml @@ -1,5 +1,5 @@ {% set name = "goldrush" %} -{% set version = "1.1.1" %} +{% set version = "1.1.2" %} package: name: {{ name|lower }} @@ -7,11 +7,11 @@ package: source: url: https://github.com/bcgsc/goldrush/releases/download/{{ version }}/{{ name|lower }}-{{ version }}.tar.xz - sha256: f9847c3bed5bb16494789661d4e12137537b1987c6bb19a0932ae0dd90b6e3ed + sha256: a502a90f1d3a0039fb6c00485f9de64f6f25b4f92ecdf8f977e7f3cf106e948f build: skip: true # [py < 38 or win or py > 39] - number: 2 + number: 0 run_exports: {{ pin_subpackage("goldrush", max_pin="x") }} requirements: From 152229e37316e1b84ed75ddb9423a765a0293a67 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 17 Jun 2024 22:18:18 -0400 Subject: [PATCH 0018/1514] Update bioframe to 0.7.1 (#48538) --- recipes/bioframe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/bioframe/meta.yaml b/recipes/bioframe/meta.yaml index 3ffa68380d383..6d9e0f9b0eca2 100644 --- a/recipes/bioframe/meta.yaml +++ b/recipes/bioframe/meta.yaml @@ -1,5 +1,5 @@ {% set name = "bioframe" %} -{% set version = "0.7.0" %} +{% set version = "0.7.1" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: c843c41e5657c16a580a041d1dff7964a6ee2bf0e732e396fbc0ebbd05329c58 + sha256: 40032655d227e957fcc52e178d26b8791eb4b435ccae35b9bf4341f69e96e064 build: noarch: python From 7abf142e37ab21f17efc911bbf8e081ec72cc43f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 17 Jun 2024 22:19:06 -0400 Subject: [PATCH 0019/1514] Update phykit to 1.19.8 (#48537) --- recipes/phykit/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/phykit/meta.yaml b/recipes/phykit/meta.yaml index c03723b7203bc..53632cb89e08a 100644 --- a/recipes/phykit/meta.yaml +++ b/recipes/phykit/meta.yaml @@ -1,5 +1,5 @@ {% set name = "phykit" %} -{% set version = "1.19.6" %} +{% set version = "1.19.8" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 5f3086427036036912e87f7e314a992e6f7907d13879bb6e7d9b10d1905d23e1 + sha256: 1cbcc9d52fc8feaa386c0cc690d74713a8a068cffa9b5f5fe19c302e973fd739 build: noarch: python From be1d7c599aba5e5190d20c5cc730cf62584ca4f0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 17 Jun 2024 22:21:19 -0400 Subject: [PATCH 0020/1514] Update pybiolib to 1.1.2173 (#48540) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index 5affe24ebf801..2a917bb020cfe 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.1.2155" %} +{% set version = "1.1.2173" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 0c239511abed70319bdc6a54ea0581505f7c07c2b006d67f73ed53a4641d4f29 + sha256: 49eabcf0037be6c726dabc0b12e3e79bda4a127e87742c8b9fc43882251a858f build: noarch: python From 5b85ba15530f61d2c73ac7425f86d34189c20ae2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 17 Jun 2024 22:29:50 -0400 Subject: [PATCH 0021/1514] Update perl-dbd-pg to 3.18.0 (#48527) --- recipes/perl-dbd-pg/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/perl-dbd-pg/meta.yaml b/recipes/perl-dbd-pg/meta.yaml index d56a97aba1981..f56c4c929513b 100644 --- a/recipes/perl-dbd-pg/meta.yaml +++ b/recipes/perl-dbd-pg/meta.yaml @@ -1,17 +1,17 @@ {% set name = "perl-dbd-pg" %} -{% set version = "3.16.0" %} -{% set sha256 = "2c31163d8bdaaf8beaef9c97b8f260432d67a534bc7b69e7265c21cb841432b8" %} +{% set version = "3.18.0" %} +{% set sha256 = "92bbe8a363040f8ce6a3f1963f128132e245861a9b4dc5a84178b42d625a7807" %} package: name: {{ name }} version: {{ version }} source: - url: https://cpan.metacpan.org/authors/id/T/TU/TURNSTEP/DBD-Pg-3.16.0.tar.gz + url: https://cpan.metacpan.org/authors/id/T/TU/TURNSTEP/DBD-Pg-3.18.0.tar.gz sha256: {{ sha256 }} build: - number: 3 + number: 0 run_exports: weak: - {{ name }} ={{ version }} From 220e8c63a23c3f06a0a8f3a8a0d93e6996473a98 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 18 Jun 2024 00:23:00 -0400 Subject: [PATCH 0022/1514] Update cooler to 0.10.2 (#48536) * Update cooler to 0.10.2 * pin numpy to <2 --------- Co-authored-by: mencian --- recipes/cooler/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/cooler/meta.yaml b/recipes/cooler/meta.yaml index 1f31a27fa5bab..201eccd3b1085 100644 --- a/recipes/cooler/meta.yaml +++ b/recipes/cooler/meta.yaml @@ -1,5 +1,5 @@ {% set name = "cooler" %} -{% set version = "0.10.0" %} +{% set version = "0.10.2" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.python.org/packages/source/c/cooler/cooler-{{ version }}.tar.gz - sha256: 09526f71263a49273a8bec72948027d08aa66da89b785e4d517e61ad174b3531 + sha256: 3780a2e69b2ec89882dfc2775de5d9b54ccb79569dc5f042b4851599388112dc build: number: 0 @@ -31,7 +31,7 @@ requirements: - dask - h5py >=2.5 - multiprocess - - numpy >=1.9 + - numpy <2 - pairix - pandas >1.5 - pyfaidx From 830a41f270fff58c8f8b2211899d5debbe56dd99 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 18 Jun 2024 02:44:27 -0400 Subject: [PATCH 0023/1514] Update reneo to 0.4.0 (#48542) --- recipes/reneo/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/reneo/meta.yaml b/recipes/reneo/meta.yaml index f2e346bfc2ebc..1e51b31b26f33 100644 --- a/recipes/reneo/meta.yaml +++ b/recipes/reneo/meta.yaml @@ -1,5 +1,5 @@ {% set name = "reneo" %} -{% set version = "0.3.1" %} +{% set version = "0.4.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://github.com/Vini2/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz" - sha256: ff5eab551e7b50599d0058b7bcfeb37cf492c05dcdd4cf24d4272e148fde91a1 + sha256: b74cdf3fca658b00c15db2e52e24877aa58fa43ba242323cc4d8f8fb292fbab7 build: number: 0 From 7724430e57c9db08892c5d0fe9359083920e7774 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 18 Jun 2024 02:44:58 -0400 Subject: [PATCH 0024/1514] Update oakvar to 2.10.3 (#48543) --- recipes/oakvar/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/oakvar/meta.yaml b/recipes/oakvar/meta.yaml index 18d91f073ce8f..3449353ebe137 100644 --- a/recipes/oakvar/meta.yaml +++ b/recipes/oakvar/meta.yaml @@ -1,6 +1,6 @@ {% set name = "OakVar" %} -{% set version = "2.10.2" %} -{% set sha256 = "fc37eb66911966ce83b872ebd27c88e99c4c5132d6ce3f756beb46bb9c6d877b" %} +{% set version = "2.10.3" %} +{% set sha256 = "b65faaa3f3dd9ae1430607a49f7cfd5af3b2aa6d6e74a0d6129931ec59e13ce8" %} package: name: {{ name|lower }} From 04438c2c905183b382c1b2a0ad8dab8362ae57fb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 18 Jun 2024 02:45:23 -0400 Subject: [PATCH 0025/1514] Update open-cravat to 2.7.2 (#48545) --- recipes/open-cravat/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/open-cravat/meta.yaml b/recipes/open-cravat/meta.yaml index f1d04d252873f..c703efa45c0b4 100644 --- a/recipes/open-cravat/meta.yaml +++ b/recipes/open-cravat/meta.yaml @@ -1,5 +1,5 @@ {% set name = "open-cravat" %} -{% set version = "2.7.1" %} +{% set version = "2.7.2" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: b3ed7cbef2ad9019d5c4e97e17f9a5b2623cc8f5fe01af35ccddbc8f9c96ba4d + sha256: ada09a79bcc26ea74c705a4d3787d84219cf81b798b6662081e079c2b0d94256 build: number: 0 From e26d59635443c31ea29bb9c174aa1df7fe2a31bc Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Tue, 18 Jun 2024 00:15:28 -0700 Subject: [PATCH 0026/1514] Update biobloomtools - rebuild after bulk failure (#48535) * Update biobloomtools - rebuild after bulk failure * Update CXXFLAGS --- recipes/biobloomtools/build.sh | 2 +- recipes/biobloomtools/meta.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/biobloomtools/build.sh b/recipes/biobloomtools/build.sh index 0653b95be8ea0..813448a194189 100644 --- a/recipes/biobloomtools/build.sh +++ b/recipes/biobloomtools/build.sh @@ -3,7 +3,7 @@ export CFLAGS="-I$PREFIX/include -O3" export LDFLAGS="-L$PREFIX/lib" export CPATH="${PREFIX}/include" -export CXXFLAGS="-I${PREFIX}/include -O3" +export CXXFLAGS="-I${PREFIX}/include -O3 -std=c++17" export CPPFLAGS="-isystem/${PREFIX}/include" ./configure --prefix=${PREFIX} --with-sparsehash="${PREFIX}" --with-sdsl="${PREFIX}" --disable-dependency-tracking --disable-silent-rules diff --git a/recipes/biobloomtools/meta.yaml b/recipes/biobloomtools/meta.yaml index d4fd45e841e16..387cdf6e7cd71 100644 --- a/recipes/biobloomtools/meta.yaml +++ b/recipes/biobloomtools/meta.yaml @@ -10,7 +10,7 @@ source: build: skip: true # [osx or win] - number: 3 + number: 4 run_exports: - {{ pin_subpackage("biobloomtools", max_pin="x") }} From dd8f19860622c9679b056433a43ba81b09b0edf2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 18 Jun 2024 06:14:48 -0400 Subject: [PATCH 0027/1514] Update pybiolib to 1.1.2175 (#48551) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index 2a917bb020cfe..d3b07a26c1e76 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.1.2173" %} +{% set version = "1.1.2175" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 49eabcf0037be6c726dabc0b12e3e79bda4a127e87742c8b9fc43882251a858f + sha256: 9b689c0cd1378299243396239e36d914596beb87910ef33e9188199c923a5c63 build: noarch: python From 7ddcb7595c10d6c0990e5eab148a9e790e6c0c44 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 18 Jun 2024 08:58:41 -0400 Subject: [PATCH 0028/1514] Update pybiolib to 1.1.2180 (#48557) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index d3b07a26c1e76..82aa37e7a174d 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.1.2175" %} +{% set version = "1.1.2180" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 9b689c0cd1378299243396239e36d914596beb87910ef33e9188199c923a5c63 + sha256: 0bff84111971dbe2d22ec832c007b6fc16af43b00a545d262d64c2747de71a00 build: noarch: python From d7701f05dfe995e74ce20a175b3b244c405e57ce Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 18 Jun 2024 09:34:14 -0400 Subject: [PATCH 0029/1514] Update pybiolib to 1.1.2184 (#48558) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index 82aa37e7a174d..2f81907e525f5 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.1.2180" %} +{% set version = "1.1.2184" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 0bff84111971dbe2d22ec832c007b6fc16af43b00a545d262d64c2747de71a00 + sha256: 9b044ed37d6b9ac81e262d718009367eabfd7164a7c91e79b77bd211504358a3 build: noarch: python From 528e088a8bdd32798bc471d628558f3f8c9b25cf Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Tue, 18 Jun 2024 09:41:52 -0400 Subject: [PATCH 0030/1514] Selene SDK: rebuild after build failure (#48529) * rebuild selene-sdk * bump build number --- recipes/selene-sdk/build_failure.linux-64.yaml | 5 ----- recipes/selene-sdk/meta.yaml | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) delete mode 100644 recipes/selene-sdk/build_failure.linux-64.yaml diff --git a/recipes/selene-sdk/build_failure.linux-64.yaml b/recipes/selene-sdk/build_failure.linux-64.yaml deleted file mode 100644 index dc6a5fb4e2d11..0000000000000 --- a/recipes/selene-sdk/build_failure.linux-64.yaml +++ /dev/null @@ -1,5 +0,0 @@ -recipe_sha: 3f661deb551d83d83d454bddfb42003b0ecff6db172389f8228588a03eccc75f # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -reason: |- - The bulk GitHub Actions runner ran out of disk space. Try in a PR. -category: disk space diff --git a/recipes/selene-sdk/meta.yaml b/recipes/selene-sdk/meta.yaml index 1d6576f3d52da..acaeef01b7fab 100644 --- a/recipes/selene-sdk/meta.yaml +++ b/recipes/selene-sdk/meta.yaml @@ -9,7 +9,7 @@ source: sha256: daa7969fc99f6ffa00dda2f7657442f4a1d84771b7a83c8b3464db0221ca8b32 build: - number: 4 + number: 5 script: python setup.py install --single-version-externally-managed --record=record.txt run_exports: - {{ pin_subpackage("selene-sdk", max_pin="x.x") }} From e1c55186ca610b3f36f5252fb864a0e5b92b7d02 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 18 Jun 2024 16:45:42 +0300 Subject: [PATCH 0031/1514] biobloomtools: add linux-aarch64 build (#48546) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/biobloomtools/build.sh | 4 +- .../biobloomtools/build_failure.linux-64.yaml | 105 ------------------ recipes/biobloomtools/meta.yaml | 6 +- 3 files changed, 8 insertions(+), 107 deletions(-) delete mode 100644 recipes/biobloomtools/build_failure.linux-64.yaml diff --git a/recipes/biobloomtools/build.sh b/recipes/biobloomtools/build.sh index 813448a194189..6133f989c8f0c 100644 --- a/recipes/biobloomtools/build.sh +++ b/recipes/biobloomtools/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + export CFLAGS="-I$PREFIX/include -O3" export LDFLAGS="-L$PREFIX/lib" export CPATH="${PREFIX}/include" @@ -8,5 +10,5 @@ export CPPFLAGS="-isystem/${PREFIX}/include" ./configure --prefix=${PREFIX} --with-sparsehash="${PREFIX}" --with-sdsl="${PREFIX}" --disable-dependency-tracking --disable-silent-rules -make +make -j ${CPU_COUNT} make install diff --git a/recipes/biobloomtools/build_failure.linux-64.yaml b/recipes/biobloomtools/build_failure.linux-64.yaml deleted file mode 100644 index 6278f2355f943..0000000000000 --- a/recipes/biobloomtools/build_failure.linux-64.yaml +++ /dev/null @@ -1,105 +0,0 @@ -recipe_sha: 671354106cba831cba3c07e3c3b15b5c3cc1d722f324bf25bb29ebf244791776 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -category: compiler error -log: |- - checking whether make supports the include directive... yes (GNU style) - checking dependency style of $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c... none - checking for x86_64-conda-linux-gnu-gcc... $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc - checking whether we are using the GNU C compiler... yes - checking whether $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc accepts -g... yes - checking for $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc option to accept ISO C89... none needed - checking whether $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc understands -c and -o together... yes - checking dependency style of $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc... none - checking for dlopen in -ldl... yes - checking how to run the C preprocessor... $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp - checking for grep that handles long lines and -e... /usr/bin/grep - checking for egrep... /usr/bin/grep -E - checking for ANSI C header files... yes - checking for sys/types.h... yes - checking for sys/stat.h... yes - checking for stdlib.h... yes - checking for string.h... yes - checking for memory.h... yes - checking for strings.h... yes - checking for inttypes.h... yes - checking for stdint.h... yes - checking for unistd.h... yes - checking for size_t... yes - checking how to run the C preprocessor... $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -E - checking boost/property_tree/ptree.hpp usability... yes - checking boost/property_tree/ptree.hpp presence... yes - checking for boost/property_tree/ptree.hpp... yes - checking boost/property_tree/ini_parser.hpp usability... yes - checking boost/property_tree/ini_parser.hpp presence... yes - checking for boost/property_tree/ini_parser.hpp... yes - checking btl_bloomfilter/BloomFilter.hpp usability... yes - checking btl_bloomfilter/BloomFilter.hpp presence... yes - checking for btl_bloomfilter/BloomFilter.hpp... yes - checking zlib.h usability... yes - checking zlib.h presence... yes - checking for zlib.h... yes - checking google/dense_hash_map usability... yes - checking google/dense_hash_map presence... yes - checking for google/dense_hash_map... yes - checking sdsl/bit_vector_il.hpp usability... yes - checking sdsl/bit_vector_il.hpp presence... yes - checking for sdsl/bit_vector_il.hpp... yes - checking for $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c option to support OpenMP... -fopenmp - checking that generated files are newer than configure... done - configure: creating ./config.status - config.status: creating Makefile - config.status: creating Common/Makefile - config.status: creating BioBloomMaker/Makefile - config.status: creating BioBloomCategorizer/Makefile - config.status: creating Tests/Makefile - config.status: creating config.h - config.status: executing depfiles commands - make all-recursive - make[1]: Entering directory '$SRC_DIR' - Making all in Common - make[2]: Entering directory '$SRC_DIR/Common' - $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -I$SRC_DIR -I$SRC_DIR -isystem$PREFIX -isystem$PREFIX/include -isystem/$PREFIX/include -Wall -Wextra -Werror -std=c11 -I$PREFIX/include -O3 -c -o libcommon_a-BloomFilterInfo.o test -f 'BloomFilterInfo.cpp' || echo '$SRC_DIR/Common/'BloomFilterInfo.cpp - $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -I$SRC_DIR -I$SRC_DIR -isystem$PREFIX -isystem$PREFIX/include -isystem/$PREFIX/include -Wall -Wextra -Werror -std=c11 -I$PREFIX/include -O3 -c -o libcommon_a-Dynamicofstream.o test -f 'Dynamicofstream.cpp' || echo '$SRC_DIR/Common/'Dynamicofstream.cpp - $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -I$SRC_DIR -I$SRC_DIR -isystem$PREFIX -isystem$PREFIX/include -isystem/$PREFIX/include -Wall -Wextra -Werror -std=c11 -I$PREFIX/include -O3 -c -o libcommon_a-gzstream.o test -f 'gzstream.C' || echo '$SRC_DIR/Common/'gzstream.C - $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -I$SRC_DIR -I$SRC_DIR -isystem$PREFIX -isystem$PREFIX/include -isystem/$PREFIX/include -Wall -Wextra -Werror -std=c11 -I$PREFIX/include -O3 -c -o libcommon_a-Options.o test -f 'Options.cpp' || echo '$SRC_DIR/Common/'Options.cpp - $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -DHAVE_CONFIG_H -I. -I.. -I$SRC_DIR -I$SRC_DIR -isystem$PREFIX -isystem$PREFIX/include -isystem/$PREFIX/include -I$PREFIX/include -O3 -c -o libcommon_a-sdust.o test -f 'sdust.c' || echo '$SRC_DIR/Common/'sdust.c - rm -f libcommon.a - ar cru libcommon.a libcommon_a-BloomFilterInfo.o libcommon_a-Dynamicofstream.o libcommon_a-gzstream.o libcommon_a-Options.o libcommon_a-sdust.o - $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib libcommon.a - make[2]: Leaving directory '$SRC_DIR/Common' - Making all in BioBloomMaker - make[2]: Entering directory '$SRC_DIR/BioBloomMaker' - $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -DHAVE_CONFIG_H -I. -I.. -I$SRC_DIR/BioBloomMaker -I$SRC_DIR/Common -I$SRC_DIR -I$SRC_DIR -isystem$PREFIX -isystem$PREFIX/include -isystem/$PREFIX/include -Wall -Wextra -Werror -fopenmp -std=c11 -I$PREFIX/include -O3 -c -o biobloommaker-BioBloomMaker.o test -f 'BioBloomMaker.cpp' || echo '$SRC_DIR/BioBloomMaker/'BioBloomMaker.cpp - In file included from /opt/conda/conda-bld/biobloomtools_1718025002732/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include/boost/math/special_functions/detail/round_fwd.hpp:11, - from /opt/conda/conda-bld/biobloomtools_1718025002732/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include/boost/math/special_functions/math_fwd.hpp:29, - from /opt/conda/conda-bld/biobloomtools_1718025002732/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include/boost/math/special_functions/beta.hpp:13, - from /opt/conda/conda-bld/biobloomtools_1718025002732/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include/boost/math/distributions/binomial.hpp:83, - from ../Common/SeqEval.h:21, - from BloomFilterGenerator.h:14, - from BioBloomMaker.cpp:12: - /opt/conda/conda-bld/biobloomtools_1718025002732/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include/boost/math/tools/config.hpp:26:6: error: #warning "Boost.Math requires C14" [-Werror=cpp] - 26 | # warning "Boost.Math requires C14" - | ^~~~~~~ - cc1plus: all warnings being treated as errors - make[2]: *** [Makefile:429: biobloommaker-BioBloomMaker.o] Error 1 - make[2]: Leaving directory '$SRC_DIR/BioBloomMaker' - make[1]: *** [Makefile:430: all-recursive] Error 1 - make[1]: Leaving directory '$SRC_DIR' - make: *** [Makefile:350: all] Error 2 - Traceback (most recent call last): - File "/opt/conda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/biobloomtools_1718025002732/work/conda_build.sh']' returned non-zero exit status 2. -# Last 100 lines of the build log. diff --git a/recipes/biobloomtools/meta.yaml b/recipes/biobloomtools/meta.yaml index 387cdf6e7cd71..c3805666e6ca3 100644 --- a/recipes/biobloomtools/meta.yaml +++ b/recipes/biobloomtools/meta.yaml @@ -10,7 +10,7 @@ source: build: skip: true # [osx or win] - number: 4 + number: 5 run_exports: - {{ pin_subpackage("biobloomtools", max_pin="x") }} @@ -42,3 +42,7 @@ about: license: GPL-3.0 license_file: LICENSE summary: Building Bloom filters and using them for categorizing sequences + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 85634a325ab1c2753f73de1db5a845f40a04edf9 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 18 Jun 2024 17:11:41 +0300 Subject: [PATCH 0032/1514] porechop: add linux-aarch64 build (#48556) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/porechop/meta.yaml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/recipes/porechop/meta.yaml b/recipes/porechop/meta.yaml index a20330c325fc0..09a59721d8130 100644 --- a/recipes/porechop/meta.yaml +++ b/recipes/porechop/meta.yaml @@ -9,8 +9,9 @@ source: sha256: 44b499157d933be43f702cec198d1d693dcb9276e3c545669be63c2612493299 build: - number: 7 - skip: True # [py27] + number: 8 + run_exports: + - {{ pin_subpackage("porechop", max_pin="x.x") }} entry_points: - porechop = porechop.porechop:main @@ -30,6 +31,13 @@ test: about: home: https://github.com/rrwick/Porechop - license: GPL3 + license: GPL-3.0-only license_file: LICENSE + license_family: GPL3 summary: Adapter removal and demultiplexing of Oxford Nanopore reads + dev_url: https://github.com/rrwick/Porechop + doc_url: https://github.com/rrwick/Porechop?tab=readme-ov-file#how-it-works + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From aedfe8411fa683fb0fe86ab383bb4ec5e8b0561c Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 18 Jun 2024 17:34:29 +0300 Subject: [PATCH 0033/1514] concoct: add linux-aarch64 build (#48553) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/concoct/meta.yaml | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/recipes/concoct/meta.yaml b/recipes/concoct/meta.yaml index 1dbd2af74470f..2a375f46c6a5b 100644 --- a/recipes/concoct/meta.yaml +++ b/recipes/concoct/meta.yaml @@ -1,15 +1,20 @@ +{% set name = "concoct" %} +{% set version = "1.1.0" %} + package: - name: concoct - version: "1.1.0" + name: {{ name }} + version: {{ version }} source: - url: https://github.com/BinPro/CONCOCT/archive/1.1.0.tar.gz + url: https://github.com/BinPro/CONCOCT/archive/{{ version }}.tar.gz sha256: 00aecacb4b720ac123a63e65072c61e0b5a8690d844c869aaee4dbf287c82888 build: preserve_egg_dir: True - number: 4 + number: 5 skip: True # [osx] + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} requirements: build: @@ -29,7 +34,7 @@ requirements: - pandas >=0.11.0 - biopython >=1.62b - pytz >=2013.9 - - scikit-learn ==1.1.3 + - scikit-learn >=1.1.3 - nose >=1.3.0 - gsl - samtools @@ -47,6 +52,8 @@ about: license_family: BSD extra: + additional-platforms: + - linux-aarch64 skip-lints: - uses_setuptools # concoct uses pkg_resources - cython_must_be_in_host # Cython needs to be in run as well currently From 23eb6215395445deb4cae1814eee1820394f049c Mon Sep 17 00:00:00 2001 From: Nico Trummer <52698566+nictru@users.noreply.github.com> Date: Tue, 18 Jun 2024 16:36:09 +0200 Subject: [PATCH 0034/1514] Add r-circrnafull recipe (#48544) * Add r-circrnafull * Add "extra" section * Add run dependencies * Add missing dependencies --- recipes/r-circrnafull/build.sh | 1 + recipes/r-circrnafull/meta.yaml | 46 +++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 recipes/r-circrnafull/build.sh create mode 100644 recipes/r-circrnafull/meta.yaml diff --git a/recipes/r-circrnafull/build.sh b/recipes/r-circrnafull/build.sh new file mode 100644 index 0000000000000..bec411402e62f --- /dev/null +++ b/recipes/r-circrnafull/build.sh @@ -0,0 +1 @@ +$R CMD INSTALL --build . \ No newline at end of file diff --git a/recipes/r-circrnafull/meta.yaml b/recipes/r-circrnafull/meta.yaml new file mode 100644 index 0000000000000..eff04362d5797 --- /dev/null +++ b/recipes/r-circrnafull/meta.yaml @@ -0,0 +1,46 @@ +package: + name: r-circrnafull + version: 1.0.0 + +source: + url: https://github.com/tofazzalh/circRNAFull/archive/85dd5479cd24ef6464c601048d68718eecad1c8c.zip + sha256: d5d7ab6c83d65d23dda52f339d42b27232480516f9ac14a9dd43a78012fe7032 + +build: + number: 0 + noarch: generic + run_exports: '{{ pin_compatible("r-circrnafull", max_pin="x") }}' + rpaths: + - lib/R/lib + - lib + +requirements: + host: + - r-base + - r-seqinr + - r-stringi + - bioconductor-biostrings + - bioconductor-rsamtools + run: + - r-base + - r-seqinr + - r-stringi + - bioconductor-biostrings + - bioconductor-rsamtools + +test: + commands: + - $R -e "library(circRNAFull)" + +about: + home: https://github.com/tofazzalh/circRNAFull + license: unknown + summary: An R package for reconstruction of full length circRNA sequence using chimeric alignment information + +extra: + additional-platforms: + - linux-aarch64 + identifiers: + - doi:10.3390/ijms23126776 + recipe-maintainers: + - nictru From 09755a350222926da57254f190a78aa8f3c9931e Mon Sep 17 00:00:00 2001 From: Benjamin Wingfield Date: Tue, 18 Jun 2024 15:50:49 +0100 Subject: [PATCH 0035/1514] Add pgscatalog-utils (#48451) * pgscatalog-utils initial commit * drop LICENSE * bump version --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Co-authored-by: mencian --- recipes/pgscatalog-utils/meta.yaml | 53 ++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 recipes/pgscatalog-utils/meta.yaml diff --git a/recipes/pgscatalog-utils/meta.yaml b/recipes/pgscatalog-utils/meta.yaml new file mode 100644 index 0000000000000..f471e166e45f1 --- /dev/null +++ b/recipes/pgscatalog-utils/meta.yaml @@ -0,0 +1,53 @@ +{% set name = "pgscatalog-utils" %} +{% set version = "1.1.1" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pgscatalog_utils-{{ version }}.tar.gz + sha256: 7ab12d2a6e3912ecfa628a695e40a7e7e3a803d49c47826c107550774310fc2d + +build: + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + number: 0 + run_exports: + - {{ pin_subpackage('pgscatalog-utils', max_pin='x.x') }} + +requirements: + host: + - python >=3.10,<4.0 + - poetry-core + - pip + run: + - python >=3.10.0,<4.0.0 + - pgscatalog.calc >=0.2.1,<0.3.0 + - pgscatalog.core >=0.2.1,<0.3.0 + - pgscatalog.match >=0.2.1,<0.3.0 + +test: + imports: + - pgscatalog.match + - pgscatalog.calc + - pgscatalog.core + commands: + - pgscatalog-download --help + - pgscatalog-combine --help + - pgscatalog-match --help + - pgscatalog-matchmerge --help + - pgscatalog-relabel --help + - pgscatalog-aggregate --help + - pgscatalog-ancestry-adjust --help + +about: + home: https://github.com/PGScatalog/pygscatalog + summary: Utilities for working with PGS Catalog API and scoring files + license: Apache-2.0 + license_family: Apache + doc_url: https://pygscatalog.readthedocs.io/en/latest/ + +extra: + recipe-maintainers: + - nebfield From 3e5f4d81aaab336711795c5481b58e26ee10db82 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 18 Jun 2024 17:51:03 +0300 Subject: [PATCH 0036/1514] r-hemdag: add linux-aarch64 build (#48503) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/r-hemdag/meta.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/recipes/r-hemdag/meta.yaml b/recipes/r-hemdag/meta.yaml index 04cb8f1a139b4..7981395d2be28 100644 --- a/recipes/r-hemdag/meta.yaml +++ b/recipes/r-hemdag/meta.yaml @@ -11,7 +11,9 @@ source: sha256: bb51b308659f431482211c1ae914cfec6e983e1a110c721a59b24abb56f1aeb6 build: - number: 6 + number: 7 + run_exports: + - {{ pin_subpackage('r-hemdag', max_pin="x") }} rpaths: - lib/R/lib/ - lib/ @@ -54,6 +56,8 @@ about: dev_url: https://github.com/marconotaro/hemdag extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - marconotaro - visze From 79c373ee8bc76e30346f1878b97c51cfc7c5938b Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 18 Jun 2024 17:51:56 +0300 Subject: [PATCH 0037/1514] clever-toolkit: add linux-aarch64 build (#48547) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/clever-toolkit/build.sh | 4 +++- recipes/clever-toolkit/meta.yaml | 12 ++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/recipes/clever-toolkit/build.sh b/recipes/clever-toolkit/build.sh index fa3b7590b12ce..53f4ac043f208 100644 --- a/recipes/clever-toolkit/build.sh +++ b/recipes/clever-toolkit/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + cmake -DCMAKE_INSTALL_PREFIX=$PREFIX -DBOOST_ROOT=$PREFIX -DBoost_NO_SYSTEM_PATHS=ON -DCMAKE_CXX_COMPILER=${CXX} . -VERBOSE=TRUE make +VERBOSE=TRUE make -j ${CPU_COUNT} make install diff --git a/recipes/clever-toolkit/meta.yaml b/recipes/clever-toolkit/meta.yaml index 3492589f79b43..a39ea2bc78283 100644 --- a/recipes/clever-toolkit/meta.yaml +++ b/recipes/clever-toolkit/meta.yaml @@ -5,8 +5,9 @@ package: version: {{ version }} build: - number: 12 + number: 13 run_exports: + - {{ pin_subpackage("clever-toolkit", max_pin="x") }} - {{ pin_compatible('boost-cpp', max_pin='x.x') }} - {{ pin_compatible('zlib', max_pin='x.x') }} @@ -39,7 +40,14 @@ test: about: home: https://bitbucket.org/tobiasmarschall/clever-toolkit - license: GPL3 + license: GPL-3.0-only license_file: LICENSE + license_family: GPL3 summary: The CLEVER Toolkit description: CTK is a suite of tools to analyze next-generation sequencing data and, in particular, to discover and genotype insertions and deletions from paired-end reads. + dev_url: https://bitbucket.org/tobiasmarschall/clever-toolkit + doc_url: https://bitbucket.org/tobiasmarschall/clever-toolkit/wiki/Home + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From f0544137bbf4603b0445357c369b53748255d207 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 18 Jun 2024 17:52:10 +0300 Subject: [PATCH 0038/1514] fraggenescan: add linux-aarch64 build (#48548) * fraggenescan: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Use Clang 15 for osx Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/fraggenescan/build.sh | 6 ++++-- recipes/fraggenescan/conda_build_config.yaml | 5 +++++ recipes/fraggenescan/meta.yaml | 8 ++++++-- 3 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 recipes/fraggenescan/conda_build_config.yaml diff --git a/recipes/fraggenescan/build.sh b/recipes/fraggenescan/build.sh index c612190e366be..5812532184690 100644 --- a/recipes/fraggenescan/build.sh +++ b/recipes/fraggenescan/build.sh @@ -1,10 +1,12 @@ #!/bin/bash +set -xe + mkdir -p $PREFIX/bin/ make clean # There are .o files in the tarball! -make CC=${CC} -make fgs CC=${CC} +make CC=${CC} -j ${CPU_COUNT} +make fgs CC=${CC} -j ${CPU_COUNT} sed -i.bak '1 s|^.*$|#!/usr/bin/env perl|g' $SRC_DIR/run_FragGeneScan.pl chmod a+x $SRC_DIR/*FragGeneScan* diff --git a/recipes/fraggenescan/conda_build_config.yaml b/recipes/fraggenescan/conda_build_config.yaml new file mode 100644 index 0000000000000..152ca169f84fa --- /dev/null +++ b/recipes/fraggenescan/conda_build_config.yaml @@ -0,0 +1,5 @@ +c_compiler: + - clangxx # [osx] +c_compiler_version: + - 15 #[osx] + diff --git a/recipes/fraggenescan/meta.yaml b/recipes/fraggenescan/meta.yaml index 4ee4f6773a923..a4006302e1b72 100644 --- a/recipes/fraggenescan/meta.yaml +++ b/recipes/fraggenescan/meta.yaml @@ -11,7 +11,9 @@ source: sha256: {{ sha256 }} build: - number: 6 + number: 7 + run_exports: + - {{ pin_subpackage(name|lower, max_pin="x") }} requirements: build: @@ -35,8 +37,10 @@ about: assemblies or complete genomes. extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - keuv-grvl identifiers: - doi:10.1093/nar/gkq747 - - biotools:fraggenescan + - biotools:fraggenescan \ No newline at end of file From 29c6d036a7975713e7089e0c0f66651e970ed791 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 18 Jun 2024 17:52:56 +0300 Subject: [PATCH 0039/1514] phyml: add linux-aarch64 build (#48554) * phyml: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Use sse2neon.h to translate Intel SSE to ARM NEON for linux-aarch64 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/phyml/build.sh | 14 +- recipes/phyml/meta.yaml | 7 +- recipes/phyml/phyml-aarch64.patch | 9368 +++++++++++++++++++++++++++++ 3 files changed, 9385 insertions(+), 4 deletions(-) create mode 100644 recipes/phyml/phyml-aarch64.patch diff --git a/recipes/phyml/build.sh b/recipes/phyml/build.sh index a8d59034a33fb..c745e54cb28c4 100644 --- a/recipes/phyml/build.sh +++ b/recipes/phyml/build.sh @@ -1,6 +1,5 @@ #!/bin/bash -set -x -set +e +set -xe export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" @@ -20,6 +19,15 @@ autoupdate # - phyml-beagle -- doesn't compile in this release # - phyrex -- crashes with segfault +case $(uname -m) in + x86_64) + ARCH_OPTS="-msse4.1" + ;; + *) + ARCH_OPTS="" + ;; +esac + # Adding -v to make breaks compilation on Microsoft Azure CI for binary in phyml-mpi phyml phytime; do echo ${binary} @@ -28,7 +36,7 @@ for binary in phyml-mpi phyml phytime; do --prefix="${PREFIX}" \ --enable-${binary} \ LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" - make -j"${CPU_COUNT}" CFLAGS="${CFLAGS} -msse4.1" + make -j"${CPU_COUNT}" CFLAGS="${CFLAGS} ${ARCH_OPTS}" make install make clean done diff --git a/recipes/phyml/meta.yaml b/recipes/phyml/meta.yaml index f09bca4f1653d..e09590285ebc7 100644 --- a/recipes/phyml/meta.yaml +++ b/recipes/phyml/meta.yaml @@ -12,9 +12,12 @@ source: patches: - phytime.patch - Makefile.patch + - phyml-aarch64.patch # [linux and aarch64] build: - number: 1 + number: 2 + run_exports: + - {{ pin_subpackage(name|lower, max_pin="x") }} requirements: build: @@ -59,6 +62,8 @@ about: across partition elements. extra: + additional-platforms: + - linux-aarch64 identifiers: - biotools:phyml - doi:10.1093/sysbio/syq010 diff --git a/recipes/phyml/phyml-aarch64.patch b/recipes/phyml/phyml-aarch64.patch new file mode 100644 index 0000000000000..bb8219483b6aa --- /dev/null +++ b/recipes/phyml/phyml-aarch64.patch @@ -0,0 +1,9368 @@ +diff --git c/src/sse.c i/src/sse.c +index a1a2ed3..4229139 100644 +--- c/src/sse.c ++++ i/src/sse.c +@@ -12,11 +12,12 @@ the GNU public licence. See http://www.opensource.org for details. + + #include "assert.h" + #include "sse.h" ++#include "sse2neon.h" + + ////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////// + +-#if ((defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__)) && !((defined __AVX__ || defined __AVX2__))) ++#if ((defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__) || defined(__ARM_NEON)) && !((defined __AVX__ || defined __AVX2__))) + + void SSE_Update_Eigen_Lr(t_edge *b, t_tree *tree) + { +diff --git c/src/sse.h i/src/sse.h +index f3e9f37..ff1fad9 100644 +--- c/src/sse.h ++++ i/src/sse.h +@@ -21,8 +21,9 @@ the GNU public licence. See http://www.opensource.org for details. + #include "free.h" + #include "times.h" + #include "mixt.h" ++#include "sse2neon.h" + +-#if (defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__)) ++#if (defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__) || defined(__ARM_NEON)) + + void SSE_Update_Partial_Lk(t_tree *tree,t_edge *b_fcus,t_node *n); + void SSE_Update_Eigen_Lr(t_edge *b, t_tree *tree); +diff --git c/src/sse2neon.h i/src/sse2neon.h +new file mode 100644 +index 0000000..7bbf4e1 +--- /dev/null ++++ i/src/sse2neon.h +@@ -0,0 +1,9289 @@ ++#ifndef SSE2NEON_H ++#define SSE2NEON_H ++ ++/* ++ * sse2neon is freely redistributable under the MIT License. ++ * ++ * Copyright (c) 2015-2024 SSE2NEON Contributors. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a copy ++ * of this software and associated documentation files (the "Software"), to deal ++ * in the Software without restriction, including without limitation the rights ++ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ++ * copies of the Software, and to permit persons to whom the Software is ++ * furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be included in ++ * all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++ * SOFTWARE. ++ */ ++ ++// This header file provides a simple API translation layer ++// between SSE intrinsics to their corresponding Arm/Aarch64 NEON versions ++// ++// Contributors to this work are: ++// John W. Ratcliff ++// Brandon Rowlett ++// Ken Fast ++// Eric van Beurden ++// Alexander Potylitsin ++// Hasindu Gamaarachchi ++// Jim Huang ++// Mark Cheng ++// Malcolm James MacLeod ++// Devin Hussey (easyaspi314) ++// Sebastian Pop ++// Developer Ecosystem Engineering ++// Danila Kutenin ++// François Turban (JishinMaster) ++// Pei-Hsuan Hung ++// Yang-Hao Yuan ++// Syoyo Fujita ++// Brecht Van Lommel ++// Jonathan Hue ++// Cuda Chen ++// Aymen Qader ++// Anthony Roberts ++ ++/* Tunable configurations */ ++ ++/* Enable precise implementation of math operations ++ * This would slow down the computation a bit, but gives consistent result with ++ * x86 SSE. (e.g. would solve a hole or NaN pixel in the rendering result) ++ */ ++/* _mm_min|max_ps|ss|pd|sd */ ++#ifndef SSE2NEON_PRECISE_MINMAX ++#define SSE2NEON_PRECISE_MINMAX (0) ++#endif ++/* _mm_rcp_ps */ ++#ifndef SSE2NEON_PRECISE_DIV ++#define SSE2NEON_PRECISE_DIV (0) ++#endif ++/* _mm_sqrt_ps and _mm_rsqrt_ps */ ++#ifndef SSE2NEON_PRECISE_SQRT ++#define SSE2NEON_PRECISE_SQRT (0) ++#endif ++/* _mm_dp_pd */ ++#ifndef SSE2NEON_PRECISE_DP ++#define SSE2NEON_PRECISE_DP (0) ++#endif ++ ++/* Enable inclusion of windows.h on MSVC platforms ++ * This makes _mm_clflush functional on windows, as there is no builtin. ++ */ ++#ifndef SSE2NEON_INCLUDE_WINDOWS_H ++#define SSE2NEON_INCLUDE_WINDOWS_H (0) ++#endif ++ ++/* compiler specific definitions */ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma push_macro("FORCE_INLINE") ++#pragma push_macro("ALIGN_STRUCT") ++#define FORCE_INLINE static inline __attribute__((always_inline)) ++#define ALIGN_STRUCT(x) __attribute__((aligned(x))) ++#define _sse2neon_likely(x) __builtin_expect(!!(x), 1) ++#define _sse2neon_unlikely(x) __builtin_expect(!!(x), 0) ++#elif defined(_MSC_VER) ++#if _MSVC_TRADITIONAL ++#error Using the traditional MSVC preprocessor is not supported! Use /Zc:preprocessor instead. ++#endif ++#ifndef FORCE_INLINE ++#define FORCE_INLINE static inline ++#endif ++#ifndef ALIGN_STRUCT ++#define ALIGN_STRUCT(x) __declspec(align(x)) ++#endif ++#define _sse2neon_likely(x) (x) ++#define _sse2neon_unlikely(x) (x) ++#else ++#pragma message("Macro name collisions may happen with unsupported compilers.") ++#endif ++ ++#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ < 10 ++#warning "GCC versions earlier than 10 are not supported." ++#endif ++ ++/* C language does not allow initializing a variable with a function call. */ ++#ifdef __cplusplus ++#define _sse2neon_const static const ++#else ++#define _sse2neon_const const ++#endif ++ ++#include ++#include ++ ++#if defined(_WIN32) ++/* Definitions for _mm_{malloc,free} are provided by ++ * from both MinGW-w64 and MSVC. ++ */ ++#define SSE2NEON_ALLOC_DEFINED ++#endif ++ ++/* If using MSVC */ ++#ifdef _MSC_VER ++#include ++#if SSE2NEON_INCLUDE_WINDOWS_H ++#include ++#include ++#endif ++ ++#if !defined(__cplusplus) ++#error SSE2NEON only supports C++ compilation with this compiler ++#endif ++ ++#ifdef SSE2NEON_ALLOC_DEFINED ++#include ++#endif ++ ++#if (defined(_M_AMD64) || defined(__x86_64__)) || \ ++ (defined(_M_ARM64) || defined(__arm64__)) ++#define SSE2NEON_HAS_BITSCAN64 ++#endif ++#endif ++ ++#if defined(__GNUC__) || defined(__clang__) ++#define _sse2neon_define0(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define1(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define2(type, a, b, body) \ ++ __extension__({ \ ++ type _a = (a), _b = (b); \ ++ body \ ++ }) ++#define _sse2neon_return(ret) (ret) ++#else ++#define _sse2neon_define0(type, a, body) [=](type _a) { body }(a) ++#define _sse2neon_define1(type, a, body) [](type _a) { body }(a) ++#define _sse2neon_define2(type, a, b, body) \ ++ [](type _a, type _b) { body }((a), (b)) ++#define _sse2neon_return(ret) return ret ++#endif ++ ++#define _sse2neon_init(...) \ ++ { \ ++ __VA_ARGS__ \ ++ } ++ ++/* Compiler barrier */ ++#if defined(_MSC_VER) ++#define SSE2NEON_BARRIER() _ReadWriteBarrier() ++#else ++#define SSE2NEON_BARRIER() \ ++ do { \ ++ __asm__ __volatile__("" ::: "memory"); \ ++ (void) 0; \ ++ } while (0) ++#endif ++ ++/* Memory barriers ++ * __atomic_thread_fence does not include a compiler barrier; instead, ++ * the barrier is part of __atomic_load/__atomic_store's "volatile-like" ++ * semantics. ++ */ ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) ++#include ++#endif ++ ++FORCE_INLINE void _sse2neon_smp_mb(void) ++{ ++ SSE2NEON_BARRIER(); ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \ ++ !defined(__STDC_NO_ATOMICS__) ++ atomic_thread_fence(memory_order_seq_cst); ++#elif defined(__GNUC__) || defined(__clang__) ++ __atomic_thread_fence(__ATOMIC_SEQ_CST); ++#else /* MSVC */ ++ __dmb(_ARM64_BARRIER_ISH); ++#endif ++} ++ ++/* Architecture-specific build options */ ++/* FIXME: #pragma GCC push_options is only available on GCC */ ++#if defined(__GNUC__) ++#if defined(__arm__) && __ARM_ARCH == 7 ++/* According to ARM C Language Extensions Architecture specification, ++ * __ARM_NEON is defined to a value indicating the Advanced SIMD (NEON) ++ * architecture supported. ++ */ ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error "You must enable NEON instructions (e.g. -mfpu=neon) to use SSE2NEON." ++#endif ++#if !defined(__clang__) ++#pragma GCC push_options ++#pragma GCC target("fpu=neon") ++#endif ++#elif defined(__aarch64__) || defined(_M_ARM64) ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#pragma GCC target("+simd") ++#endif ++#elif __ARM_ARCH == 8 ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error \ ++ "You must enable NEON instructions (e.g. -mfpu=neon-fp-armv8) to use SSE2NEON." ++#endif ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#endif ++#else ++#error \ ++ "Unsupported target. Must be either ARMv7-A+NEON or ARMv8-A \ ++(you could try setting target explicitly with -march or -mcpu)" ++#endif ++#endif ++ ++#include ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) && (__ARM_ARCH == 8) ++#if defined __has_include && __has_include() ++#include ++#endif ++#endif ++ ++/* Apple Silicon cache lines are double of what is commonly used by Intel, AMD ++ * and other Arm microarchitectures use. ++ * From sysctl -a on Apple M1: ++ * hw.cachelinesize: 128 ++ */ ++#if defined(__APPLE__) && (defined(__aarch64__) || defined(__arm64__)) ++#define SSE2NEON_CACHELINE_SIZE 128 ++#else ++#define SSE2NEON_CACHELINE_SIZE 64 ++#endif ++ ++/* Rounding functions require either Aarch64 instructions or libm fallback */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#include ++#endif ++ ++/* On ARMv7, some registers, such as PMUSERENR and PMCCNTR, are read-only ++ * or even not accessible in user mode. ++ * To write or access to these registers in user mode, ++ * we have to perform syscall instead. ++ */ ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) ++#include ++#endif ++ ++/* "__has_builtin" can be used to query support for built-in functions ++ * provided by gcc/clang and other compilers that support it. ++ */ ++#ifndef __has_builtin /* GCC prior to 10 or non-clang compilers */ ++/* Compatibility with gcc <= 9 */ ++#if defined(__GNUC__) && (__GNUC__ <= 9) ++#define __has_builtin(x) HAS##x ++#define HAS__builtin_popcount 1 ++#define HAS__builtin_popcountll 1 ++ ++// __builtin_shuffle introduced in GCC 4.7.0 ++#if (__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) ++#define HAS__builtin_shuffle 1 ++#else ++#define HAS__builtin_shuffle 0 ++#endif ++ ++#define HAS__builtin_shufflevector 0 ++#define HAS__builtin_nontemporal_store 0 ++#else ++#define __has_builtin(x) 0 ++#endif ++#endif ++ ++/** ++ * MACRO for shuffle parameter for _mm_shuffle_ps(). ++ * Argument fp3 is a digit[0123] that represents the fp from argument "b" ++ * of mm_shuffle_ps that will be placed in fp3 of result. fp2 is the same ++ * for fp2 in result. fp1 is a digit[0123] that represents the fp from ++ * argument "a" of mm_shuffle_ps that will be places in fp1 of result. ++ * fp0 is the same for fp0 of result. ++ */ ++#define _MM_SHUFFLE(fp3, fp2, fp1, fp0) \ ++ (((fp3) << 6) | ((fp2) << 4) | ((fp1) << 2) | ((fp0))) ++ ++#if __has_builtin(__builtin_shufflevector) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __builtin_shufflevector(a, b, __VA_ARGS__) ++#elif __has_builtin(__builtin_shuffle) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __extension__({ \ ++ type tmp = {__VA_ARGS__}; \ ++ __builtin_shuffle(a, b, tmp); \ ++ }) ++#endif ++ ++#ifdef _sse2neon_shuffle ++#define vshuffle_s16(a, b, ...) _sse2neon_shuffle(int16x4_t, a, b, __VA_ARGS__) ++#define vshuffleq_s16(a, b, ...) _sse2neon_shuffle(int16x8_t, a, b, __VA_ARGS__) ++#define vshuffle_s32(a, b, ...) _sse2neon_shuffle(int32x2_t, a, b, __VA_ARGS__) ++#define vshuffleq_s32(a, b, ...) _sse2neon_shuffle(int32x4_t, a, b, __VA_ARGS__) ++#define vshuffle_s64(a, b, ...) _sse2neon_shuffle(int64x1_t, a, b, __VA_ARGS__) ++#define vshuffleq_s64(a, b, ...) _sse2neon_shuffle(int64x2_t, a, b, __VA_ARGS__) ++#endif ++ ++/* Rounding mode macros. */ ++#define _MM_FROUND_TO_NEAREST_INT 0x00 ++#define _MM_FROUND_TO_NEG_INF 0x01 ++#define _MM_FROUND_TO_POS_INF 0x02 ++#define _MM_FROUND_TO_ZERO 0x03 ++#define _MM_FROUND_CUR_DIRECTION 0x04 ++#define _MM_FROUND_NO_EXC 0x08 ++#define _MM_FROUND_RAISE_EXC 0x00 ++#define _MM_FROUND_NINT (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_FLOOR (_MM_FROUND_TO_NEG_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_CEIL (_MM_FROUND_TO_POS_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_TRUNC (_MM_FROUND_TO_ZERO | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_RINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_NEARBYINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_NO_EXC) ++#define _MM_ROUND_NEAREST 0x0000 ++#define _MM_ROUND_DOWN 0x2000 ++#define _MM_ROUND_UP 0x4000 ++#define _MM_ROUND_TOWARD_ZERO 0x6000 ++/* Flush zero mode macros. */ ++#define _MM_FLUSH_ZERO_MASK 0x8000 ++#define _MM_FLUSH_ZERO_ON 0x8000 ++#define _MM_FLUSH_ZERO_OFF 0x0000 ++/* Denormals are zeros mode macros. */ ++#define _MM_DENORMALS_ZERO_MASK 0x0040 ++#define _MM_DENORMALS_ZERO_ON 0x0040 ++#define _MM_DENORMALS_ZERO_OFF 0x0000 ++ ++/* indicate immediate constant argument in a given range */ ++#define __constrange(a, b) const ++ ++/* A few intrinsics accept traditional data types like ints or floats, but ++ * most operate on data types that are specific to SSE. ++ * If a vector type ends in d, it contains doubles, and if it does not have ++ * a suffix, it contains floats. An integer vector type can contain any type ++ * of integer, from chars to shorts to unsigned long longs. ++ */ ++typedef int64x1_t __m64; ++typedef float32x4_t __m128; /* 128-bit vector containing 4 floats */ ++// On ARM 32-bit architecture, the float64x2_t is not supported. ++// The data type __m128d should be represented in a different way for related ++// intrinsic conversion. ++#if defined(__aarch64__) || defined(_M_ARM64) ++typedef float64x2_t __m128d; /* 128-bit vector containing 2 doubles */ ++#else ++typedef float32x4_t __m128d; ++#endif ++typedef int64x2_t __m128i; /* 128-bit vector containing integers */ ++ ++// Some intrinsics operate on unaligned data types. ++typedef int16_t ALIGN_STRUCT(1) unaligned_int16_t; ++typedef int32_t ALIGN_STRUCT(1) unaligned_int32_t; ++typedef int64_t ALIGN_STRUCT(1) unaligned_int64_t; ++ ++// __int64 is defined in the Intrinsics Guide which maps to different datatype ++// in different data model ++#if !(defined(_WIN32) || defined(_WIN64) || defined(__int64)) ++#if (defined(__x86_64__) || defined(__i386__)) ++#define __int64 long long ++#else ++#define __int64 int64_t ++#endif ++#endif ++ ++/* type-safe casting between types */ ++ ++#define vreinterpretq_m128_f16(x) vreinterpretq_f32_f16(x) ++#define vreinterpretq_m128_f32(x) (x) ++#define vreinterpretq_m128_f64(x) vreinterpretq_f32_f64(x) ++ ++#define vreinterpretq_m128_u8(x) vreinterpretq_f32_u8(x) ++#define vreinterpretq_m128_u16(x) vreinterpretq_f32_u16(x) ++#define vreinterpretq_m128_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128_s8(x) vreinterpretq_f32_s8(x) ++#define vreinterpretq_m128_s16(x) vreinterpretq_f32_s16(x) ++#define vreinterpretq_m128_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_f16_m128(x) vreinterpretq_f16_f32(x) ++#define vreinterpretq_f32_m128(x) (x) ++#define vreinterpretq_f64_m128(x) vreinterpretq_f64_f32(x) ++ ++#define vreinterpretq_u8_m128(x) vreinterpretq_u8_f32(x) ++#define vreinterpretq_u16_m128(x) vreinterpretq_u16_f32(x) ++#define vreinterpretq_u32_m128(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_s8_m128(x) vreinterpretq_s8_f32(x) ++#define vreinterpretq_s16_m128(x) vreinterpretq_s16_f32(x) ++#define vreinterpretq_s32_m128(x) vreinterpretq_s32_f32(x) ++#define vreinterpretq_s64_m128(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_m128i_s8(x) vreinterpretq_s64_s8(x) ++#define vreinterpretq_m128i_s16(x) vreinterpretq_s64_s16(x) ++#define vreinterpretq_m128i_s32(x) vreinterpretq_s64_s32(x) ++#define vreinterpretq_m128i_s64(x) (x) ++ ++#define vreinterpretq_m128i_u8(x) vreinterpretq_s64_u8(x) ++#define vreinterpretq_m128i_u16(x) vreinterpretq_s64_u16(x) ++#define vreinterpretq_m128i_u32(x) vreinterpretq_s64_u32(x) ++#define vreinterpretq_m128i_u64(x) vreinterpretq_s64_u64(x) ++ ++#define vreinterpretq_f32_m128i(x) vreinterpretq_f32_s64(x) ++#define vreinterpretq_f64_m128i(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_s8_m128i(x) vreinterpretq_s8_s64(x) ++#define vreinterpretq_s16_m128i(x) vreinterpretq_s16_s64(x) ++#define vreinterpretq_s32_m128i(x) vreinterpretq_s32_s64(x) ++#define vreinterpretq_s64_m128i(x) (x) ++ ++#define vreinterpretq_u8_m128i(x) vreinterpretq_u8_s64(x) ++#define vreinterpretq_u16_m128i(x) vreinterpretq_u16_s64(x) ++#define vreinterpretq_u32_m128i(x) vreinterpretq_u32_s64(x) ++#define vreinterpretq_u64_m128i(x) vreinterpretq_u64_s64(x) ++ ++#define vreinterpret_m64_s8(x) vreinterpret_s64_s8(x) ++#define vreinterpret_m64_s16(x) vreinterpret_s64_s16(x) ++#define vreinterpret_m64_s32(x) vreinterpret_s64_s32(x) ++#define vreinterpret_m64_s64(x) (x) ++ ++#define vreinterpret_m64_u8(x) vreinterpret_s64_u8(x) ++#define vreinterpret_m64_u16(x) vreinterpret_s64_u16(x) ++#define vreinterpret_m64_u32(x) vreinterpret_s64_u32(x) ++#define vreinterpret_m64_u64(x) vreinterpret_s64_u64(x) ++ ++#define vreinterpret_m64_f16(x) vreinterpret_s64_f16(x) ++#define vreinterpret_m64_f32(x) vreinterpret_s64_f32(x) ++#define vreinterpret_m64_f64(x) vreinterpret_s64_f64(x) ++ ++#define vreinterpret_u8_m64(x) vreinterpret_u8_s64(x) ++#define vreinterpret_u16_m64(x) vreinterpret_u16_s64(x) ++#define vreinterpret_u32_m64(x) vreinterpret_u32_s64(x) ++#define vreinterpret_u64_m64(x) vreinterpret_u64_s64(x) ++ ++#define vreinterpret_s8_m64(x) vreinterpret_s8_s64(x) ++#define vreinterpret_s16_m64(x) vreinterpret_s16_s64(x) ++#define vreinterpret_s32_m64(x) vreinterpret_s32_s64(x) ++#define vreinterpret_s64_m64(x) (x) ++ ++#define vreinterpret_f32_m64(x) vreinterpret_f32_s64(x) ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f64_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f64_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) vreinterpretq_f64_f32(x) ++#define vreinterpretq_m128d_f64(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f64(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f64(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f64(x) ++ ++#define vreinterpretq_f64_m128d(x) (x) ++#define vreinterpretq_f32_m128d(x) vreinterpretq_f32_f64(x) ++#else ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_m128d_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_f32_m128d(x) (x) ++#endif ++ ++// A struct is defined in this header file called 'SIMDVec' which can be used ++// by applications which attempt to access the contents of an __m128 struct ++// directly. It is important to note that accessing the __m128 struct directly ++// is bad coding practice by Microsoft: @see: ++// https://learn.microsoft.com/en-us/cpp/cpp/m128 ++// ++// However, some legacy source code may try to access the contents of an __m128 ++// struct directly so the developer can use the SIMDVec as an alias for it. Any ++// casting must be done manually by the developer, as you cannot cast or ++// otherwise alias the base NEON data type for intrinsic operations. ++// ++// union intended to allow direct access to an __m128 variable using the names ++// that the MSVC compiler provides. This union should really only be used when ++// trying to access the members of the vector as integer values. GCC/clang ++// allow native access to the float members through a simple array access ++// operator (in C since 4.6, in C++ since 4.8). ++// ++// Ideally direct accesses to SIMD vectors should not be used since it can cause ++// a performance hit. If it really is needed however, the original __m128 ++// variable can be aliased with a pointer to this union and used to access ++// individual components. The use of this union should be hidden behind a macro ++// that is used throughout the codebase to access the members instead of always ++// declaring this type of variable. ++typedef union ALIGN_STRUCT(16) SIMDVec { ++ float m128_f32[4]; // as floats - DON'T USE. Added for convenience. ++ int8_t m128_i8[16]; // as signed 8-bit integers. ++ int16_t m128_i16[8]; // as signed 16-bit integers. ++ int32_t m128_i32[4]; // as signed 32-bit integers. ++ int64_t m128_i64[2]; // as signed 64-bit integers. ++ uint8_t m128_u8[16]; // as unsigned 8-bit integers. ++ uint16_t m128_u16[8]; // as unsigned 16-bit integers. ++ uint32_t m128_u32[4]; // as unsigned 32-bit integers. ++ uint64_t m128_u64[2]; // as unsigned 64-bit integers. ++} SIMDVec; ++ ++// casting using SIMDVec ++#define vreinterpretq_nth_u64_m128i(x, n) (((SIMDVec *) &x)->m128_u64[n]) ++#define vreinterpretq_nth_u32_m128i(x, n) (((SIMDVec *) &x)->m128_u32[n]) ++#define vreinterpretq_nth_u8_m128i(x, n) (((SIMDVec *) &x)->m128_u8[n]) ++ ++/* SSE macros */ ++#define _MM_GET_FLUSH_ZERO_MODE _sse2neon_mm_get_flush_zero_mode ++#define _MM_SET_FLUSH_ZERO_MODE _sse2neon_mm_set_flush_zero_mode ++#define _MM_GET_DENORMALS_ZERO_MODE _sse2neon_mm_get_denormals_zero_mode ++#define _MM_SET_DENORMALS_ZERO_MODE _sse2neon_mm_set_denormals_zero_mode ++ ++// Function declaration ++// SSE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void); ++FORCE_INLINE __m128 _mm_move_ss(__m128, __m128); ++FORCE_INLINE __m128 _mm_or_ps(__m128, __m128); ++FORCE_INLINE __m128 _mm_set_ps1(float); ++FORCE_INLINE __m128 _mm_setzero_ps(void); ++// SSE2 ++FORCE_INLINE __m128i _mm_and_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_castps_si128(__m128); ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128); ++FORCE_INLINE __m128d _mm_move_sd(__m128d, __m128d); ++FORCE_INLINE __m128i _mm_or_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_set_epi32(int, int, int, int); ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t, int64_t); ++FORCE_INLINE __m128d _mm_set_pd(double, double); ++FORCE_INLINE __m128i _mm_set1_epi32(int); ++FORCE_INLINE __m128i _mm_setzero_si128(void); ++// SSE4.1 ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d); ++FORCE_INLINE __m128 _mm_ceil_ps(__m128); ++FORCE_INLINE __m128d _mm_floor_pd(__m128d); ++FORCE_INLINE __m128 _mm_floor_ps(__m128); ++FORCE_INLINE __m128d _mm_round_pd(__m128d, int); ++FORCE_INLINE __m128 _mm_round_ps(__m128, int); ++// SSE4.2 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t, uint8_t); ++ ++/* Backwards compatibility for compilers with lack of specific type support */ ++ ++// Older gcc does not define vld1q_u8_x4 type ++#if defined(__GNUC__) && !defined(__clang__) && \ ++ ((__GNUC__ <= 13 && defined(__arm__)) || \ ++ (__GNUC__ == 10 && __GNUC_MINOR__ < 3 && defined(__aarch64__)) || \ ++ (__GNUC__ <= 9 && defined(__aarch64__))) ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ uint8x16x4_t ret; ++ ret.val[0] = vld1q_u8(p + 0); ++ ret.val[1] = vld1q_u8(p + 16); ++ ret.val[2] = vld1q_u8(p + 32); ++ ret.val[3] = vld1q_u8(p + 48); ++ return ret; ++} ++#else ++// Wraps vld1q_u8_x4 ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ return vld1q_u8_x4(p); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddv u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ const uint64x1_t v1 = vpaddl_u32(vpaddl_u16(vpaddl_u8(v8))); ++ return vget_lane_u8(vreinterpret_u8_u64(v1), 0); ++} ++#else ++// Wraps vaddv_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ return vaddv_u8(v8); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ uint8x8_t tmp = vpadd_u8(vget_low_u8(a), vget_high_u8(a)); ++ uint8_t res = 0; ++ for (int i = 0; i < 8; ++i) ++ res += tmp[i]; ++ return res; ++} ++#else ++// Wraps vaddvq_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ return vaddvq_u8(a); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u16 variant */ ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ uint32x4_t m = vpaddlq_u16(a); ++ uint64x2_t n = vpaddlq_u32(m); ++ uint64x1_t o = vget_low_u64(n) + vget_high_u64(n); ++ ++ return vget_lane_u32((uint32x2_t) o, 0); ++} ++#else ++// Wraps vaddvq_u16 ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ return vaddvq_u16(a); ++} ++#endif ++ ++/* Function Naming Conventions ++ * The naming convention of SSE intrinsics is straightforward. A generic SSE ++ * intrinsic function is given as follows: ++ * _mm__ ++ * ++ * The parts of this format are given as follows: ++ * 1. describes the operation performed by the intrinsic ++ * 2. identifies the data type of the function's primary arguments ++ * ++ * This last part, , is a little complicated. It identifies the ++ * content of the input values, and can be set to any of the following values: ++ * + ps - vectors contain floats (ps stands for packed single-precision) ++ * + pd - vectors contain doubles (pd stands for packed double-precision) ++ * + epi8/epi16/epi32/epi64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * signed integers ++ * + epu8/epu16/epu32/epu64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * unsigned integers ++ * + si128 - unspecified 128-bit vector or 256-bit vector ++ * + m128/m128i/m128d - identifies input vector types when they are different ++ * than the type of the returned vector ++ * ++ * For example, _mm_setzero_ps. The _mm implies that the function returns ++ * a 128-bit vector. The _ps at the end implies that the argument vectors ++ * contain floats. ++ * ++ * A complete example: Byte Shuffle - pshufb (_mm_shuffle_epi8) ++ * // Set packed 16-bit integers. 128 bits, 8 short, per 16 bits ++ * __m128i v_in = _mm_setr_epi16(1, 2, 3, 4, 5, 6, 7, 8); ++ * // Set packed 8-bit integers ++ * // 128 bits, 16 chars, per 8 bits ++ * __m128i v_perm = _mm_setr_epi8(1, 0, 2, 3, 8, 9, 10, 11, ++ * 4, 5, 12, 13, 6, 7, 14, 15); ++ * // Shuffle packed 8-bit integers ++ * __m128i v_out = _mm_shuffle_epi8(v_in, v_perm); // pshufb ++ */ ++ ++/* Constants for use with _mm_prefetch. */ ++enum _mm_hint { ++ _MM_HINT_NTA = 0, /* load data to L1 and L2 cache, mark it as NTA */ ++ _MM_HINT_T0 = 1, /* load data to L1 and L2 cache */ ++ _MM_HINT_T1 = 2, /* load data to L2 cache only */ ++ _MM_HINT_T2 = 3, /* load data to L2 cache only, mark it as NTA */ ++}; ++ ++// The bit field mapping to the FPCR(floating-point control register) ++typedef struct { ++ uint16_t res0; ++ uint8_t res1 : 6; ++ uint8_t bit22 : 1; ++ uint8_t bit23 : 1; ++ uint8_t bit24 : 1; ++ uint8_t res2 : 7; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32_t res3; ++#endif ++} fpcr_bitfield; ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of b and places it into the high end of the result. ++FORCE_INLINE __m128 _mm_shuffle_ps_1032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in high ++// end of result takes the higher two 32 bit values from b and swaps them and ++// places in low end of result. ++FORCE_INLINE __m128 _mm_shuffle_ps_2301(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b23 = vrev64_f32(vget_high_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b23)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0321(__m128 a, __m128 b) ++{ ++ float32x2_t a21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a21, b03)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2103(__m128 a, __m128 b) ++{ ++ float32x2_t a03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a03, b21)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0101(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b01)); ++} ++ ++// keeps the low 64 bits of b in the low and puts the high 64 bits of a in the ++// high ++FORCE_INLINE __m128 _mm_shuffle_ps_3210(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0011(__m128 a, __m128 b) ++{ ++ float32x2_t a11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a11, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0022(__m128 a, __m128 b) ++{ ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a22, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2200(__m128 a, __m128 b) ++{ ++ float32x2_t a00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a00, b22)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_3202(__m128 a, __m128 b) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t a02 = vset_lane_f32(a0, a22, 1); /* TODO: use vzip ?*/ ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a02, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1133(__m128 a, __m128 b) ++{ ++ float32x2_t a33 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a33, b11)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b20)); ++} ++ ++// For MSVC, we check only if it is ARM64, as every single ARM64 processor ++// supported by WoA has crypto extensions. If this changes in the future, ++// this can be verified via the runtime-only method of: ++// IsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE) ++#if (defined(_M_ARM64) && !defined(__clang__)) || \ ++ (defined(__ARM_FEATURE_CRYPTO) && \ ++ (defined(__aarch64__) || __has_builtin(__builtin_arm_crypto_vmullp64))) ++// Wraps vmull_p64 ++FORCE_INLINE uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly64_t a = vget_lane_p64(vreinterpret_p64_u64(_a), 0); ++ poly64_t b = vget_lane_p64(vreinterpret_p64_u64(_b), 0); ++#if defined(_MSC_VER) ++ __n64 a1 = {a}, b1 = {b}; ++ return vreinterpretq_u64_p128(vmull_p64(a1, b1)); ++#else ++ return vreinterpretq_u64_p128(vmull_p64(a, b)); ++#endif ++} ++#else // ARMv7 polyfill ++// ARMv7/some A64 lacks vmull_p64, but it has vmull_p8. ++// ++// vmull_p8 calculates 8 8-bit->16-bit polynomial multiplies, but we need a ++// 64-bit->128-bit polynomial multiply. ++// ++// It needs some work and is somewhat slow, but it is still faster than all ++// known scalar methods. ++// ++// Algorithm adapted to C from ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/, which is adapted ++// from "Fast Software Polynomial Multiplication on ARM Processors Using the ++// NEON Engine" by Danilo Camara, Conrado Gouvea, Julio Lopez and Ricardo Dahab ++// (https://hal.inria.fr/hal-01506572) ++static uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly8x8_t a = vreinterpret_p8_u64(_a); ++ poly8x8_t b = vreinterpret_p8_u64(_b); ++ ++ // Masks ++ uint8x16_t k48_32 = vcombine_u8(vcreate_u8(0x0000ffffffffffff), ++ vcreate_u8(0x00000000ffffffff)); ++ uint8x16_t k16_00 = vcombine_u8(vcreate_u8(0x000000000000ffff), ++ vcreate_u8(0x0000000000000000)); ++ ++ // Do the multiplies, rotating with vext to get all combinations ++ uint8x16_t d = vreinterpretq_u8_p16(vmull_p8(a, b)); // D = A0 * B0 ++ uint8x16_t e = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 1))); // E = A0 * B1 ++ uint8x16_t f = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 1), b)); // F = A1 * B0 ++ uint8x16_t g = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 2))); // G = A0 * B2 ++ uint8x16_t h = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 2), b)); // H = A2 * B0 ++ uint8x16_t i = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 3))); // I = A0 * B3 ++ uint8x16_t j = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 3), b)); // J = A3 * B0 ++ uint8x16_t k = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 4))); // L = A0 * B4 ++ ++ // Add cross products ++ uint8x16_t l = veorq_u8(e, f); // L = E + F ++ uint8x16_t m = veorq_u8(g, h); // M = G + H ++ uint8x16_t n = veorq_u8(i, j); // N = I + J ++ ++ // Interleave. Using vzip1 and vzip2 prevents Clang from emitting TBL ++ // instructions. ++#if defined(__aarch64__) ++ uint8x16_t lm_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t lm_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t nk_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++ uint8x16_t nk_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++#else ++ uint8x16_t lm_p0 = vcombine_u8(vget_low_u8(l), vget_low_u8(m)); ++ uint8x16_t lm_p1 = vcombine_u8(vget_high_u8(l), vget_high_u8(m)); ++ uint8x16_t nk_p0 = vcombine_u8(vget_low_u8(n), vget_low_u8(k)); ++ uint8x16_t nk_p1 = vcombine_u8(vget_high_u8(n), vget_high_u8(k)); ++#endif ++ // t0 = (L) (P0 + P1) << 8 ++ // t1 = (M) (P2 + P3) << 16 ++ uint8x16_t t0t1_tmp = veorq_u8(lm_p0, lm_p1); ++ uint8x16_t t0t1_h = vandq_u8(lm_p1, k48_32); ++ uint8x16_t t0t1_l = veorq_u8(t0t1_tmp, t0t1_h); ++ ++ // t2 = (N) (P4 + P5) << 24 ++ // t3 = (K) (P6 + P7) << 32 ++ uint8x16_t t2t3_tmp = veorq_u8(nk_p0, nk_p1); ++ uint8x16_t t2t3_h = vandq_u8(nk_p1, k16_00); ++ uint8x16_t t2t3_l = veorq_u8(t2t3_tmp, t2t3_h); ++ ++ // De-interleave ++#if defined(__aarch64__) ++ uint8x16_t t0 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t1 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t2 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++ uint8x16_t t3 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++#else ++ uint8x16_t t1 = vcombine_u8(vget_high_u8(t0t1_l), vget_high_u8(t0t1_h)); ++ uint8x16_t t0 = vcombine_u8(vget_low_u8(t0t1_l), vget_low_u8(t0t1_h)); ++ uint8x16_t t3 = vcombine_u8(vget_high_u8(t2t3_l), vget_high_u8(t2t3_h)); ++ uint8x16_t t2 = vcombine_u8(vget_low_u8(t2t3_l), vget_low_u8(t2t3_h)); ++#endif ++ // Shift the cross products ++ uint8x16_t t0_shift = vextq_u8(t0, t0, 15); // t0 << 8 ++ uint8x16_t t1_shift = vextq_u8(t1, t1, 14); // t1 << 16 ++ uint8x16_t t2_shift = vextq_u8(t2, t2, 13); // t2 << 24 ++ uint8x16_t t3_shift = vextq_u8(t3, t3, 12); // t3 << 32 ++ ++ // Accumulate the products ++ uint8x16_t cross1 = veorq_u8(t0_shift, t1_shift); ++ uint8x16_t cross2 = veorq_u8(t2_shift, t3_shift); ++ uint8x16_t mix = veorq_u8(d, cross1); ++ uint8x16_t r = veorq_u8(mix, cross2); ++ return vreinterpretq_u64_u8(r); ++} ++#endif // ARMv7 polyfill ++ ++// C equivalent: ++// __m128i _mm_shuffle_epi32_default(__m128i a, ++// __constrange(0, 255) int imm) { ++// __m128i ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = a[(imm >> 4) & 0x03]; ret[3] = a[(imm >> 6) & 0x03]; ++// return ret; ++// } ++#define _mm_shuffle_epi32_default(a, imm) \ ++ vreinterpretq_m128i_s32(vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), \ ++ ((imm) >> 2) & 0x3), \ ++ vmovq_n_s32(vgetq_lane_s32( \ ++ vreinterpretq_s32_m128i(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of a and places it into the high end of the result. ++FORCE_INLINE __m128i _mm_shuffle_epi_1032(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in low end ++// of result takes the higher two 32 bit values from a and swaps them and places ++// in high end of result. ++FORCE_INLINE __m128i _mm_shuffle_epi_2301(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a23 = vrev64_s32(vget_high_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a23)); ++} ++ ++// rotates the least significant 32 bits into the most significant 32 bits, and ++// shifts the rest down ++FORCE_INLINE __m128i _mm_shuffle_epi_0321(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 1)); ++} ++ ++// rotates the most significant 32 bits into the least significant 32 bits, and ++// shifts the rest up ++FORCE_INLINE __m128i _mm_shuffle_epi_2103(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 3)); ++} ++ ++// gets the lower 64 bits of a, and places it in the upper 64 bits ++// gets the lower 64 bits of a and places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1010(__m128i a) ++{ ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a10, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements, and places it in the ++// lower 64 bits gets the lower 64 bits of a, and places it in the upper 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1001(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements and places it in the ++// upper 64 bits gets the lower 64 bits of a, swaps the 0 and 1 elements, and ++// places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_0101(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_2211(__m128i a) ++{ ++ int32x2_t a11 = vdup_lane_s32(vget_low_s32(vreinterpretq_s32_m128i(a)), 1); ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ return vreinterpretq_m128i_s32(vcombine_s32(a11, a22)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_0122(__m128i a) ++{ ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a22, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_3332(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a33 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 1); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a33)); ++} ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32(vdupq_laneq_s32(vreinterpretq_s32_m128i(a), (imm))) ++#else ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vdupq_n_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)))) ++#endif ++ ++// NEON does not support a general purpose permute intrinsic. ++// Shuffle single-precision (32-bit) floating-point elements in a using the ++// control in imm8, and store the results in dst. ++// ++// C equivalent: ++// __m128 _mm_shuffle_ps_default(__m128 a, __m128 b, ++// __constrange(0, 255) int imm) { ++// __m128 ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = b[(imm >> 4) & 0x03]; ret[3] = b[(imm >> 6) & 0x03]; ++// return ret; ++// } ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_ps ++#define _mm_shuffle_ps_default(a, b, imm) \ ++ vreinterpretq_m128_f32(vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), ((imm) >> 2) & 0x3), \ ++ vmovq_n_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Shuffle 16-bit integers in the low 64 bits of a using the control in imm8. ++// Store the results in the low 64 bits of dst, with the high 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflelo_epi16 ++#define _mm_shufflelo_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t lowBits = vget_low_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, (imm) & (0x3)), ret, 0); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++// Shuffle 16-bit integers in the high 64 bits of a using the control in imm8. ++// Store the results in the high 64 bits of dst, with the low 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflehi_epi16 ++#define _mm_shufflehi_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t highBits = vget_high_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, (imm) & (0x3)), ret, 4); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 2) & 0x3), ret, \ ++ 5); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 4) & 0x3), ret, \ ++ 6); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 6) & 0x3), ret, \ ++ 7); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++/* MMX */ ++ ++//_mm_empty is a no-op on arm ++FORCE_INLINE void _mm_empty(void) {} ++ ++/* SSE */ ++ ++// Add packed single-precision (32-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ps ++FORCE_INLINE __m128 _mm_add_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Add the lower single-precision (32-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ss ++FORCE_INLINE __m128 _mm_add_ss(__m128 a, __m128 b) ++{ ++ float32_t b0 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++ float32x4_t value = vsetq_lane_f32(b0, vdupq_n_f32(0), 0); ++ // the upper values in the result must be the remnants of . ++ return vreinterpretq_m128_f32(vaddq_f32(a, value)); ++} ++ ++// Compute the bitwise AND of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_ps ++FORCE_INLINE __m128 _mm_and_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vandq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Compute the bitwise NOT of packed single-precision (32-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_ps ++FORCE_INLINE __m128 _mm_andnot_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vbicq_s32(vreinterpretq_s32_m128(b), ++ vreinterpretq_s32_m128(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu16 ++FORCE_INLINE __m64 _mm_avg_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16( ++ vrhadd_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu8 ++FORCE_INLINE __m64 _mm_avg_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vrhadd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ps ++FORCE_INLINE __m128 _mm_cmpeq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ss ++FORCE_INLINE __m128 _mm_cmpeq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpeq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ps ++FORCE_INLINE __m128 _mm_cmpge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ss ++FORCE_INLINE __m128 _mm_cmpge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ps ++FORCE_INLINE __m128 _mm_cmpgt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ss ++FORCE_INLINE __m128 _mm_cmpgt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpgt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ps ++FORCE_INLINE __m128 _mm_cmple_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ss ++FORCE_INLINE __m128 _mm_cmple_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmple_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ps ++FORCE_INLINE __m128 _mm_cmplt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ss ++FORCE_INLINE __m128 _mm_cmplt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmplt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ps ++FORCE_INLINE __m128 _mm_cmpneq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ss ++FORCE_INLINE __m128 _mm_cmpneq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpneq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ps ++FORCE_INLINE __m128 _mm_cmpnge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ss ++FORCE_INLINE __m128 _mm_cmpnge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ps ++FORCE_INLINE __m128 _mm_cmpngt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ss ++FORCE_INLINE __m128 _mm_cmpngt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpngt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ps ++FORCE_INLINE __m128 _mm_cmpnle_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ss ++FORCE_INLINE __m128 _mm_cmpnle_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnle_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ps ++FORCE_INLINE __m128 _mm_cmpnlt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ss ++FORCE_INLINE __m128 _mm_cmpnlt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnlt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ps ++// ++// See also: ++// http://stackoverflow.com/questions/8627331/what-does-ordered-unordered-comparison-mean ++// http://stackoverflow.com/questions/29349621/neon-isnanval-intrinsics ++FORCE_INLINE __m128 _mm_cmpord_ps(__m128 a, __m128 b) ++{ ++ // Note: NEON does not have ordered compare builtin ++ // Need to compare a eq a and b eq b to check for NaN ++ // Do AND of results to get final ++ uint32x4_t ceqaa = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t ceqbb = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vandq_u32(ceqaa, ceqbb)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ss ++FORCE_INLINE __m128 _mm_cmpord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpord_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ps ++FORCE_INLINE __m128 _mm_cmpunord_ps(__m128 a, __m128 b) ++{ ++ uint32x4_t f32a = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t f32b = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vmvnq_u32(vandq_u32(f32a, f32b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ss ++FORCE_INLINE __m128 _mm_cmpunord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpunord_ps(a, b)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_ss ++FORCE_INLINE int _mm_comieq_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_eq_b = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_eq_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_ss ++FORCE_INLINE int _mm_comige_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_ge_b = ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_ge_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_ss ++FORCE_INLINE int _mm_comigt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_gt_b = ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_gt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_ss ++FORCE_INLINE int _mm_comile_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_le_b = ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_le_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_ss ++FORCE_INLINE int _mm_comilt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_lt_b = ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_lt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_ss ++FORCE_INLINE int _mm_comineq_ss(__m128 a, __m128 b) ++{ ++ return !_mm_comieq_ss(a, b); ++} ++ ++// Convert packed signed 32-bit integers in b to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, and copy the upper 2 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_pi2ps ++FORCE_INLINE __m128 _mm_cvt_pi2ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ps2pi ++FORCE_INLINE __m64 _mm_cvt_ps2pi(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))))); ++#else ++ return vreinterpret_m64_s32(vcvt_s32_f32(vget_low_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION))))); ++#endif ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_si2ss ++FORCE_INLINE __m128 _mm_cvt_si2ss(__m128 a, int b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ss2si ++FORCE_INLINE int _mm_cvt_ss2si(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vgetq_lane_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))), ++ 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int32_t) data; ++#endif ++} ++ ++// Convert packed 16-bit integers in a to packed single-precision (32-bit) ++// floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi16_ps ++FORCE_INLINE __m128 _mm_cvtpi16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vmovl_s16(vreinterpret_s16_m64(a)))); ++} ++ ++// Convert packed 32-bit integers in b to packed single-precision (32-bit) ++// floating-point elements, store the results in the lower 2 elements of dst, ++// and copy the upper 2 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_ps ++FORCE_INLINE __m128 _mm_cvtpi32_ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, then convert the packed signed 32-bit integers in b to ++// single-precision (32-bit) floating-point element, and store the results in ++// the upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32x2_ps ++FORCE_INLINE __m128 _mm_cvtpi32x2_ps(__m64 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vcombine_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b)))); ++} ++ ++// Convert the lower packed 8-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi8_ps ++FORCE_INLINE __m128 _mm_cvtpi8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vmovl_s16(vget_low_s16(vmovl_s8(vreinterpret_s8_m64(a)))))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 16-bit integers, and store the results in dst. Note: this intrinsic ++// will generate 0x7FFF, rather than 0x8000, for input values between 0x7FFF and ++// 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi16 ++FORCE_INLINE __m64 _mm_cvtps_pi16(__m128 a) ++{ ++ return vreinterpret_m64_s16( ++ vqmovn_s32(vreinterpretq_s32_m128i(_mm_cvtps_epi32(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi32 ++#define _mm_cvtps_pi32(a) _mm_cvt_ps2pi(a) ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 8-bit integers, and store the results in lower 4 elements of dst. ++// Note: this intrinsic will generate 0x7F, rather than 0x80, for input values ++// between 0x7F and 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi8 ++FORCE_INLINE __m64 _mm_cvtps_pi8(__m128 a) ++{ ++ return vreinterpret_m64_s8(vqmovn_s16( ++ vcombine_s16(vreinterpret_s16_m64(_mm_cvtps_pi16(a)), vdup_n_s16(0)))); ++} ++ ++// Convert packed unsigned 16-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu16_ps ++FORCE_INLINE __m128 _mm_cvtpu16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_u32(vmovl_u16(vreinterpret_u16_m64(a)))); ++} ++ ++// Convert the lower packed unsigned 8-bit integers in a to packed ++// single-precision (32-bit) floating-point elements, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu8_ps ++FORCE_INLINE __m128 _mm_cvtpu8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_u32( ++ vmovl_u16(vget_low_u16(vmovl_u8(vreinterpret_u8_m64(a)))))); ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_ss ++#define _mm_cvtsi32_ss(a, b) _mm_cvt_si2ss(a, b) ++ ++// Convert the signed 64-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_ss ++FORCE_INLINE __m128 _mm_cvtsi64_ss(__m128 a, int64_t b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Copy the lower single-precision (32-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_f32 ++FORCE_INLINE float _mm_cvtss_f32(__m128 a) ++{ ++ return vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si32 ++#define _mm_cvtss_si32(a) _mm_cvt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si64 ++FORCE_INLINE int64_t _mm_cvtss_si64(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return (int64_t) vgetq_lane_f32(vrndiq_f32(vreinterpretq_f32_m128(a)), 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int64_t) data; ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ps2pi ++FORCE_INLINE __m64 _mm_cvtt_ps2pi(__m128 a) ++{ ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ss2si ++FORCE_INLINE int _mm_cvtt_ss2si(__m128 a) ++{ ++ return vgetq_lane_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)), 0); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_pi32 ++#define _mm_cvttps_pi32(a) _mm_cvtt_ps2pi(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si32 ++#define _mm_cvttss_si32(a) _mm_cvtt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si64 ++FORCE_INLINE int64_t _mm_cvttss_si64(__m128 a) ++{ ++ return (int64_t) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Divide packed single-precision (32-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise division intrinsic, we implement ++// division by multiplying a by b's reciprocal before using the Newton-Raphson ++// method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ps ++FORCE_INLINE __m128 _mm_div_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vdivq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(b)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(a), recip)); ++#endif ++} ++ ++// Divide the lower single-precision (32-bit) floating-point element in a by the ++// lower single-precision (32-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper 3 packed elements from a to ++// the upper elements of dst. ++// Warning: ARMv7-A does not produce the same result compared to Intel and not ++// IEEE-compliant. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ss ++FORCE_INLINE __m128 _mm_div_ss(__m128 a, __m128 b) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_div_ps(a, b)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_pi16 ++#define _mm_extract_pi16(a, imm) \ ++ (int32_t) vget_lane_u16(vreinterpret_u16_m64(a), (imm)) ++ ++// Free aligned memory that was allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_free ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void _mm_free(void *addr) ++{ ++ free(addr); ++} ++#endif ++ ++FORCE_INLINE uint64_t _sse2neon_get_fpcr(void) ++{ ++ uint64_t value; ++#if defined(_MSC_VER) ++ value = _ReadStatusReg(ARM64_FPCR); ++#else ++ __asm__ __volatile__("mrs %0, FPCR" : "=r"(value)); /* read */ ++#endif ++ return value; ++} ++ ++FORCE_INLINE void _sse2neon_set_fpcr(uint64_t value) ++{ ++#if defined(_MSC_VER) ++ _WriteStatusReg(ARM64_FPCR, value); ++#else ++ __asm__ __volatile__("msr FPCR, %0" ::"r"(value)); /* write */ ++#endif ++} ++ ++// Macro: Get the flush zero bits from the MXCSR control and status register. ++// The flush zero may contain any of the following flags: _MM_FLUSH_ZERO_ON or ++// _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_FLUSH_ZERO_MODE ++FORCE_INLINE unsigned int _sse2neon_mm_get_flush_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_FLUSH_ZERO_ON : _MM_FLUSH_ZERO_OFF; ++} ++ ++// Macro: Get the rounding mode bits from the MXCSR control and status register. ++// The rounding mode may contain any of the following flags: _MM_ROUND_NEAREST, ++// _MM_ROUND_DOWN, _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_ROUNDING_MODE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ if (r.field.bit22) { ++ return r.field.bit23 ? _MM_ROUND_TOWARD_ZERO : _MM_ROUND_UP; ++ } else { ++ return r.field.bit23 ? _MM_ROUND_DOWN : _MM_ROUND_NEAREST; ++ } ++} ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_pi16 ++#define _mm_insert_pi16(a, b, imm) \ ++ vreinterpret_m64_s16(vset_lane_s16((b), vreinterpret_s16_m64(a), (imm))) ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps ++FORCE_INLINE __m128 _mm_load_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// ++// dst[31:0] := MEM[mem_addr+31:mem_addr] ++// dst[63:32] := MEM[mem_addr+31:mem_addr] ++// dst[95:64] := MEM[mem_addr+31:mem_addr] ++// dst[127:96] := MEM[mem_addr+31:mem_addr] ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps1 ++#define _mm_load_ps1 _mm_load1_ps ++ ++// Load a single-precision (32-bit) floating-point element from memory into the ++// lower of dst, and zero the upper 3 elements. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ss ++FORCE_INLINE __m128 _mm_load_ss(const float *p) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(*p, vdupq_n_f32(0), 0)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_ps ++FORCE_INLINE __m128 _mm_load1_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_dup_f32(p)); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// upper 2 elements of dst, and copy the lower 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pi ++FORCE_INLINE __m128 _mm_loadh_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vget_low_f32(a), vld1_f32((const float32_t *) p))); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// lower 2 elements of dst, and copy the upper 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pi ++FORCE_INLINE __m128 _mm_loadl_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vld1_f32((const float32_t *) p), vget_high_f32(a))); ++} ++ ++// Load 4 single-precision (32-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_ps ++FORCE_INLINE __m128 _mm_loadr_ps(const float *p) ++{ ++ float32x4_t v = vrev64q_f32(vld1q_f32(p)); ++ return vreinterpretq_m128_f32(vextq_f32(v, v, 2)); ++} ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_ps ++FORCE_INLINE __m128 _mm_loadu_ps(const float *p) ++{ ++ // for neon, alignment doesn't matter, so _mm_load_ps and _mm_loadu_ps are ++ // equivalent for neon ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load unaligned 16-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si16 ++FORCE_INLINE __m128i _mm_loadu_si16(const void *p) ++{ ++ return vreinterpretq_m128i_s16( ++ vsetq_lane_s16(*(const unaligned_int16_t *) p, vdupq_n_s16(0), 0)); ++} ++ ++// Load unaligned 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si64 ++FORCE_INLINE __m128i _mm_loadu_si64(const void *p) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(*(const unaligned_int64_t *) p, vdupq_n_s64(0), 0)); ++} ++ ++// Allocate size bytes of memory, aligned to the alignment specified in align, ++// and return a pointer to the allocated memory. _mm_free should be used to free ++// memory that is allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_malloc ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void *_mm_malloc(size_t size, size_t align) ++{ ++ void *ptr; ++ if (align == 1) ++ return malloc(size); ++ if (align == 2 || (sizeof(void *) == 8 && align == 4)) ++ align = sizeof(void *); ++ if (!posix_memalign(&ptr, align, size)) ++ return ptr; ++ return NULL; ++} ++#endif ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmove_si64 ++FORCE_INLINE void _mm_maskmove_si64(__m64 a, __m64 mask, char *mem_addr) ++{ ++ int8x8_t shr_mask = vshr_n_s8(vreinterpret_s8_m64(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x8_t masked = ++ vbsl_s8(vreinterpret_u8_s8(shr_mask), vreinterpret_s8_m64(a), ++ vreinterpret_s8_u64(vget_low_u64(vreinterpretq_u64_m128(b)))); ++ vst1_s8((int8_t *) mem_addr, masked); ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_maskmovq ++#define _m_maskmovq(a, mask, mem_addr) _mm_maskmove_si64(a, mask, mem_addr) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pi16 ++FORCE_INLINE __m64 _mm_max_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmax_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) maximum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ps ++FORCE_INLINE __m128 _mm_max_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcgtq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vmaxq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pu8 ++FORCE_INLINE __m64 _mm_max_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmax_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) maximum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ss ++FORCE_INLINE __m128 _mm_max_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_max_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pi16 ++FORCE_INLINE __m64 _mm_min_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmin_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) minimum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ps ++FORCE_INLINE __m128 _mm_min_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcltq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vminq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pu8 ++FORCE_INLINE __m64 _mm_min_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmin_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) minimum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ss ++FORCE_INLINE __m128 _mm_min_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_min_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the lower single-precision (32-bit) floating-point element from b to the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_ss ++FORCE_INLINE __m128 _mm_move_ss(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(vgetq_lane_f32(vreinterpretq_f32_m128(b), 0), ++ vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the upper 2 single-precision (32-bit) floating-point elements from b to ++// the lower 2 elements of dst, and copy the upper 2 elements from a to the ++// upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehl_ps ++FORCE_INLINE __m128 _mm_movehl_ps(__m128 a, __m128 b) ++{ ++#if defined(aarch64__) ++ return vreinterpretq_m128_u64( ++ vzip2q_u64(vreinterpretq_u64_m128(b), vreinterpretq_u64_m128(a))); ++#else ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(b32, a32)); ++#endif ++} ++ ++// Move the lower 2 single-precision (32-bit) floating-point elements from b to ++// the upper 2 elements of dst, and copy the lower 2 elements from a to the ++// lower 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movelh_ps ++FORCE_INLINE __m128 _mm_movelh_ps(__m128 __A, __m128 __B) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(__A)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(__B)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pi8 ++FORCE_INLINE int _mm_movemask_pi8(__m64 a) ++{ ++ uint8x8_t input = vreinterpret_u8_m64(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int8_t shift[8] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint8x8_t tmp = vshr_n_u8(input, 7); ++ return vaddv_u8(vshl_u8(tmp, vld1_s8(shift))); ++#else ++ // Refer the implementation of `_mm_movemask_epi8` ++ uint16x4_t high_bits = vreinterpret_u16_u8(vshr_n_u8(input, 7)); ++ uint32x2_t paired16 = ++ vreinterpret_u32_u16(vsra_n_u16(high_bits, high_bits, 7)); ++ uint8x8_t paired32 = ++ vreinterpret_u8_u32(vsra_n_u32(paired16, paired16, 14)); ++ return vget_lane_u8(paired32, 0) | ((int) vget_lane_u8(paired32, 4) << 4); ++#endif ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed single-precision (32-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_ps ++FORCE_INLINE int _mm_movemask_ps(__m128 a) ++{ ++ uint32x4_t input = vreinterpretq_u32_m128(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int32_t shift[4] = {0, 1, 2, 3}; ++ uint32x4_t tmp = vshrq_n_u32(input, 31); ++ return vaddvq_u32(vshlq_u32(tmp, vld1q_s32(shift))); ++#else ++ // Uses the exact same method as _mm_movemask_epi8, see that for details. ++ // Shift out everything but the sign bits with a 32-bit unsigned shift ++ // right. ++ uint64x2_t high_bits = vreinterpretq_u64_u32(vshrq_n_u32(input, 31)); ++ // Merge the two pairs together with a 64-bit unsigned shift right + add. ++ uint8x16_t paired = ++ vreinterpretq_u8_u64(vsraq_n_u64(high_bits, high_bits, 31)); ++ // Extract the result. ++ return vgetq_lane_u8(paired, 0) | (vgetq_lane_u8(paired, 8) << 2); ++#endif ++} ++ ++// Multiply packed single-precision (32-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ps ++FORCE_INLINE __m128 _mm_mul_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vmulq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Multiply the lower single-precision (32-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ss ++FORCE_INLINE __m128 _mm_mul_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_mul_ps(a, b)); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_pu16 ++FORCE_INLINE __m64 _mm_mulhi_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16(vshrn_n_u32( ++ vmull_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b)), 16)); ++} ++ ++// Compute the bitwise OR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_ps ++FORCE_INLINE __m128 _mm_or_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vorrq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgb ++#define _m_pavgb(a, b) _mm_avg_pu8(a, b) ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgw ++#define _m_pavgw(a, b) _mm_avg_pu16(a, b) ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pextrw ++#define _m_pextrw(a, imm) _mm_extract_pi16(a, imm) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_pinsrw ++#define _m_pinsrw(a, i, imm) _mm_insert_pi16(a, i, imm) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxsw ++#define _m_pmaxsw(a, b) _mm_max_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxub ++#define _m_pmaxub(a, b) _mm_max_pu8(a, b) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminsw ++#define _m_pminsw(a, b) _mm_min_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminub ++#define _m_pminub(a, b) _mm_min_pu8(a, b) ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmovmskb ++#define _m_pmovmskb(a) _mm_movemask_pi8(a) ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmulhuw ++#define _m_pmulhuw(a, b) _mm_mulhi_pu16(a, b) ++ ++// Fetch the line of data from memory that contains address p to a location in ++// the cache hierarchy specified by the locality hint i. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_prefetch ++FORCE_INLINE void _mm_prefetch(char const *p, int i) ++{ ++ (void) i; ++#if defined(_MSC_VER) ++ switch (i) { ++ case _MM_HINT_NTA: ++ __prefetch2(p, 1); ++ break; ++ case _MM_HINT_T0: ++ __prefetch2(p, 0); ++ break; ++ case _MM_HINT_T1: ++ __prefetch2(p, 2); ++ break; ++ case _MM_HINT_T2: ++ __prefetch2(p, 4); ++ break; ++ } ++#else ++ switch (i) { ++ case _MM_HINT_NTA: ++ __builtin_prefetch(p, 0, 0); ++ break; ++ case _MM_HINT_T0: ++ __builtin_prefetch(p, 0, 3); ++ break; ++ case _MM_HINT_T1: ++ __builtin_prefetch(p, 0, 2); ++ break; ++ case _MM_HINT_T2: ++ __builtin_prefetch(p, 0, 1); ++ break; ++ } ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_psadbw ++#define _m_psadbw(a, b) _mm_sad_pu8(a, b) ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pshufw ++#define _m_pshufw(a, imm) _mm_shuffle_pi16(a, imm) ++ ++// Compute the approximate reciprocal of packed single-precision (32-bit) ++// floating-point elements in a, and store the results in dst. The maximum ++// relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ps ++FORCE_INLINE __m128 _mm_rcp_ps(__m128 in) ++{ ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(in)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#if SSE2NEON_PRECISE_DIV ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#endif ++ return vreinterpretq_m128_f32(recip); ++} ++ ++// Compute the approximate reciprocal of the lower single-precision (32-bit) ++// floating-point element in a, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ss ++FORCE_INLINE __m128 _mm_rcp_ss(__m128 a) ++{ ++ return _mm_move_ss(a, _mm_rcp_ps(a)); ++} ++ ++// Compute the approximate reciprocal square root of packed single-precision ++// (32-bit) floating-point elements in a, and store the results in dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ps ++FORCE_INLINE __m128 _mm_rsqrt_ps(__m128 in) ++{ ++ float32x4_t out = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Generate masks for detecting whether input has any 0.0f/-0.0f ++ // (which becomes positive/negative infinity by IEEE-754 arithmetic rules). ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t neg_inf = vdupq_n_u32(0xFF800000); ++ const uint32x4_t has_pos_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(out)); ++ const uint32x4_t has_neg_zero = ++ vceqq_u32(neg_inf, vreinterpretq_u32_f32(out)); ++ ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#if SSE2NEON_PRECISE_SQRT ++ // Additional Netwon-Raphson iteration for accuracy ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#endif ++ ++ // Set output vector element to infinity/negative-infinity if ++ // the corresponding input vector element is 0.0f/-0.0f. ++ out = vbslq_f32(has_pos_zero, (float32x4_t) pos_inf, out); ++ out = vbslq_f32(has_neg_zero, (float32x4_t) neg_inf, out); ++ ++ return vreinterpretq_m128_f32(out); ++} ++ ++// Compute the approximate reciprocal square root of the lower single-precision ++// (32-bit) floating-point element in a, store the result in the lower element ++// of dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ss ++FORCE_INLINE __m128 _mm_rsqrt_ss(__m128 in) ++{ ++ return vsetq_lane_f32(vgetq_lane_f32(_mm_rsqrt_ps(in), 0), in, 0); ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_pu8 ++FORCE_INLINE __m64 _mm_sad_pu8(__m64 a, __m64 b) ++{ ++ uint64x1_t t = vpaddl_u32(vpaddl_u16( ++ vpaddl_u8(vabd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))))); ++ return vreinterpret_m64_u16( ++ vset_lane_u16((int) vget_lane_u64(t, 0), vdup_n_u16(0), 0)); ++} ++ ++// Macro: Set the flush zero bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The flush zero may contain any of the ++// following flags: _MM_FLUSH_ZERO_ON or _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_FLUSH_ZERO_MODE ++FORCE_INLINE void _sse2neon_mm_set_flush_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_FLUSH_ZERO_MASK) == _MM_FLUSH_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps ++FORCE_INLINE __m128 _mm_set_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {x, y, z, w}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps1 ++FORCE_INLINE __m128 _mm_set_ps1(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Macro: Set the rounding mode bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The rounding mode may contain any of ++// the following flags: _MM_ROUND_NEAREST, _MM_ROUND_DOWN, _MM_ROUND_UP, ++// _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_ROUNDING_MODE ++FORCE_INLINE void _MM_SET_ROUNDING_MODE(int rounding) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ switch (rounding) { ++ case _MM_ROUND_TOWARD_ZERO: ++ r.field.bit22 = 1; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_DOWN: ++ r.field.bit22 = 0; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_UP: ++ r.field.bit22 = 1; ++ r.field.bit23 = 0; ++ break; ++ default: //_MM_ROUND_NEAREST ++ r.field.bit22 = 0; ++ r.field.bit23 = 0; ++ } ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Copy single-precision (32-bit) floating-point element a to the lower element ++// of dst, and zero the upper 3 elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ss ++FORCE_INLINE __m128 _mm_set_ss(float a) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(a, vdupq_n_f32(0), 0)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_ps ++FORCE_INLINE __m128 _mm_set1_ps(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Set the MXCSR control and status register with the value in unsigned 32-bit ++// integer a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setcsr ++// FIXME: _mm_setcsr() implementation supports changing the rounding mode only. ++FORCE_INLINE void _mm_setcsr(unsigned int a) ++{ ++ _MM_SET_ROUNDING_MODE(a); ++} ++ ++// Get the unsigned 32-bit value of the MXCSR control and status register. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_getcsr ++// FIXME: _mm_getcsr() implementation supports reading the rounding mode only. ++FORCE_INLINE unsigned int _mm_getcsr(void) ++{ ++ return _MM_GET_ROUNDING_MODE(); ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_ps ++FORCE_INLINE __m128 _mm_setr_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {w, z, y, x}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Return vector of type __m128 with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_ps ++FORCE_INLINE __m128 _mm_setzero_ps(void) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(0)); ++} ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi16 ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pi16(a, imm) \ ++ vreinterpret_m64_s16(vshuffle_s16( \ ++ vreinterpret_s16_m64(a), vreinterpret_s16_m64(a), (imm & 0x3), \ ++ ((imm >> 2) & 0x3), ((imm >> 4) & 0x3), ((imm >> 6) & 0x3))) ++#else ++#define _mm_shuffle_pi16(a, imm) \ ++ _sse2neon_define1( \ ++ __m64, a, int16x4_t ret; \ ++ ret = vmov_n_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), (imm) & (0x3))); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpret_m64_s16(ret));) ++#endif ++ ++// Perform a serializing operation on all store-to-memory instructions that were ++// issued prior to this instruction. Guarantees that every store instruction ++// that precedes, in program order, is globally visible before any store ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sfence ++FORCE_INLINE void _mm_sfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory and store-to-memory ++// instructions that were issued prior to this instruction. Guarantees that ++// every memory access that precedes, in program order, the memory fence ++// instruction is globally visible before any memory instruction which follows ++// the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mfence ++FORCE_INLINE void _mm_mfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory instructions that ++// were issued prior to this instruction. Guarantees that every load instruction ++// that precedes, in program order, is globally visible before any load ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lfence ++FORCE_INLINE void _mm_lfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// FORCE_INLINE __m128 _mm_shuffle_ps(__m128 a, __m128 b, __constrange(0,255) ++// int imm) ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_ps(a, b, imm) \ ++ __extension__({ \ ++ float32x4_t _input1 = vreinterpretq_f32_m128(a); \ ++ float32x4_t _input2 = vreinterpretq_f32_m128(b); \ ++ float32x4_t _shuf = \ ++ vshuffleq_s32(_input1, _input2, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ (((imm) >> 4) & 0x3) + 4, (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128_f32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_ps(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128, a, b, __m128 ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_1032(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_ps_2301(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_ps_0321(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_ps_2103(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_movelh_ps(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_1001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_ps_0101(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 1, 0): \ ++ ret = _mm_shuffle_ps_3210(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 1, 1): \ ++ ret = _mm_shuffle_ps_0011(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 2, 2): \ ++ ret = _mm_shuffle_ps_0022(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 0, 0): \ ++ ret = _mm_shuffle_ps_2200(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 0, 2): \ ++ ret = _mm_shuffle_ps_3202(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 3, 2): \ ++ ret = _mm_movehl_ps(_b, _a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 3, 3): \ ++ ret = _mm_shuffle_ps_1133(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 1, 0): \ ++ ret = _mm_shuffle_ps_2010(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_2001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_2032(_a, _b); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_ps_default(_a, _b, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Compute the square root of packed single-precision (32-bit) floating-point ++// elements in a, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise square root intrinsic, we implement ++// square root by multiplying input in with its reciprocal square root before ++// using the Newton-Raphson method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ps ++FORCE_INLINE __m128 _mm_sqrt_ps(__m128 in) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) && !SSE2NEON_PRECISE_SQRT ++ return vreinterpretq_m128_f32(vsqrtq_f32(vreinterpretq_f32_m128(in))); ++#else ++ float32x4_t recip = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Test for vrsqrteq_f32(0) -> positive infinity case. ++ // Change to zero, so that s * 1/sqrt(s) result is zero too. ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t div_by_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(recip)); ++ recip = vreinterpretq_f32_u32( ++ vandq_u32(vmvnq_u32(div_by_zero), vreinterpretq_u32_f32(recip))); ++ ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ ++ // sqrt(s) = s * 1/sqrt(s) ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(in), recip)); ++#endif ++} ++ ++// Compute the square root of the lower single-precision (32-bit) floating-point ++// element in a, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ss ++FORCE_INLINE __m128 _mm_sqrt_ss(__m128 in) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_sqrt_ps(in)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(in), 0)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps ++FORCE_INLINE void _mm_store_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps1 ++FORCE_INLINE void _mm_store_ps1(float *p, __m128 a) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ vst1q_f32(p, vdupq_n_f32(a0)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ss ++FORCE_INLINE void _mm_store_ss(float *p, __m128 a) ++{ ++ vst1q_lane_f32(p, vreinterpretq_f32_m128(a), 0); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store1_ps ++#define _mm_store1_ps _mm_store_ps1 ++ ++// Store the upper 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pi ++FORCE_INLINE void _mm_storeh_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_high_f32(a)); ++} ++ ++// Store the lower 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pi ++FORCE_INLINE void _mm_storel_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_low_f32(a)); ++} ++ ++// Store 4 single-precision (32-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_ps ++FORCE_INLINE void _mm_storer_ps(float *p, __m128 a) ++{ ++ float32x4_t tmp = vrev64q_f32(vreinterpretq_f32_m128(a)); ++ float32x4_t rev = vextq_f32(tmp, tmp, 2); ++ vst1q_f32(p, rev); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_ps ++FORCE_INLINE void _mm_storeu_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Stores 16-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si16 ++FORCE_INLINE void _mm_storeu_si16(void *p, __m128i a) ++{ ++ vst1q_lane_s16((int16_t *) p, vreinterpretq_s16_m128i(a), 0); ++} ++ ++// Stores 64-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si64 ++FORCE_INLINE void _mm_storeu_si64(void *p, __m128i a) ++{ ++ vst1q_lane_s64((int64_t *) p, vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Store 64-bits of integer data from a into memory using a non-temporal memory ++// hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pi ++FORCE_INLINE void _mm_stream_pi(__m64 *p, __m64 a) ++{ ++ vst1_s64((int64_t *) p, vreinterpret_s64_m64(a)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating- ++// point elements) from a into memory using a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_ps ++FORCE_INLINE void _mm_stream_ps(float *p, __m128 a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (float32x4_t *) p); ++#else ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++#endif ++} ++ ++// Subtract packed single-precision (32-bit) floating-point elements in b from ++// packed single-precision (32-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ps ++FORCE_INLINE __m128 _mm_sub_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Subtract the lower single-precision (32-bit) floating-point element in b from ++// the lower single-precision (32-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper 3 packed elements from ++// a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ss ++FORCE_INLINE __m128 _mm_sub_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_sub_ps(a, b)); ++} ++ ++// Macro: Transpose the 4x4 matrix formed by the 4 rows of single-precision ++// (32-bit) floating-point elements in row0, row1, row2, and row3, and store the ++// transposed matrix in these vectors (row0 now contains column 0, etc.). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=MM_TRANSPOSE4_PS ++#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \ ++ do { \ ++ float32x4x2_t ROW01 = vtrnq_f32(row0, row1); \ ++ float32x4x2_t ROW23 = vtrnq_f32(row2, row3); \ ++ row0 = vcombine_f32(vget_low_f32(ROW01.val[0]), \ ++ vget_low_f32(ROW23.val[0])); \ ++ row1 = vcombine_f32(vget_low_f32(ROW01.val[1]), \ ++ vget_low_f32(ROW23.val[1])); \ ++ row2 = vcombine_f32(vget_high_f32(ROW01.val[0]), \ ++ vget_high_f32(ROW23.val[0])); \ ++ row3 = vcombine_f32(vget_high_f32(ROW01.val[1]), \ ++ vget_high_f32(ROW23.val[1])); \ ++ } while (0) ++ ++// according to the documentation, these intrinsics behave the same as the ++// non-'u' versions. We'll just alias them here. ++#define _mm_ucomieq_ss _mm_comieq_ss ++#define _mm_ucomige_ss _mm_comige_ss ++#define _mm_ucomigt_ss _mm_comigt_ss ++#define _mm_ucomile_ss _mm_comile_ss ++#define _mm_ucomilt_ss _mm_comilt_ss ++#define _mm_ucomineq_ss _mm_comineq_ss ++ ++// Return vector of type __m128i with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_undefined_si128 ++FORCE_INLINE __m128i _mm_undefined_si128(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128i a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_si128(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Return vector of type __m128 with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_ps ++FORCE_INLINE __m128 _mm_undefined_ps(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128 a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_ps(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the high half a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_ps ++FORCE_INLINE __m128 _mm_unpackhi_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_ps ++FORCE_INLINE __m128 _mm_unpacklo_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Compute the bitwise XOR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_ps ++FORCE_INLINE __m128 _mm_xor_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ veorq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++/* SSE2 */ ++ ++// Add packed 16-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi16 ++FORCE_INLINE __m128i _mm_add_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed 32-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi32 ++FORCE_INLINE __m128i _mm_add_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vaddq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Add packed 64-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi64 ++FORCE_INLINE __m128i _mm_add_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vaddq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Add packed 8-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi8 ++FORCE_INLINE __m128i _mm_add_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed double-precision (64-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_pd ++FORCE_INLINE __m128d _mm_add_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1] + db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add the lower double-precision (64-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper element from ++// a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_sd ++FORCE_INLINE __m128d _mm_add_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_add_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add 64-bit integers a and b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_si64 ++FORCE_INLINE __m64 _mm_add_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vadd_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Add packed signed 16-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi16 ++FORCE_INLINE __m128i _mm_adds_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed signed 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi8 ++FORCE_INLINE __m128i _mm_adds_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed unsigned 16-bit integers in a and b using saturation, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu16 ++FORCE_INLINE __m128i _mm_adds_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqaddq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Add packed unsigned 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu8 ++FORCE_INLINE __m128i _mm_adds_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compute the bitwise AND of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_pd ++FORCE_INLINE __m128d _mm_and_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vandq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_si128 ++FORCE_INLINE __m128i _mm_and_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vandq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compute the bitwise NOT of packed double-precision (64-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_pd ++FORCE_INLINE __m128d _mm_andnot_pd(__m128d a, __m128d b) ++{ ++ // *NOTE* argument swap ++ return vreinterpretq_m128d_s64( ++ vbicq_s64(vreinterpretq_s64_m128d(b), vreinterpretq_s64_m128d(a))); ++} ++ ++// Compute the bitwise NOT of 128 bits (representing integer data) in a and then ++// AND with b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_si128 ++FORCE_INLINE __m128i _mm_andnot_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vbicq_s32(vreinterpretq_s32_m128i(b), ++ vreinterpretq_s32_m128i(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu16 ++FORCE_INLINE __m128i _mm_avg_epu16(__m128i a, __m128i b) ++{ ++ return (__m128i) vrhaddq_u16(vreinterpretq_u16_m128i(a), ++ vreinterpretq_u16_m128i(b)); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu8 ++FORCE_INLINE __m128i _mm_avg_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vrhaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bslli_si128 ++#define _mm_bslli_si128(a, imm) _mm_slli_si128(a, imm) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bsrli_si128 ++#define _mm_bsrli_si128(a, imm) _mm_srli_si128(a, imm) ++ ++// Cast vector of type __m128d to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_ps ++FORCE_INLINE __m128 _mm_castpd_ps(__m128d a) ++{ ++ return vreinterpretq_m128_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128d to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_si128 ++FORCE_INLINE __m128i _mm_castpd_si128(__m128d a) ++{ ++ return vreinterpretq_m128i_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128 to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_pd ++FORCE_INLINE __m128d _mm_castps_pd(__m128 a) ++{ ++ return vreinterpretq_m128d_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128 to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_si128 ++FORCE_INLINE __m128i _mm_castps_si128(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128i to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_pd ++FORCE_INLINE __m128d _mm_castsi128_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vreinterpretq_f64_m128i(a)); ++#else ++ return vreinterpretq_m128d_f32(vreinterpretq_f32_m128i(a)); ++#endif ++} ++ ++// Cast vector of type __m128i to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_ps ++FORCE_INLINE __m128 _mm_castsi128_ps(__m128i a) ++{ ++ return vreinterpretq_m128_s32(vreinterpretq_s32_m128i(a)); ++} ++ ++// Invalidate and flush the cache line that contains p from all levels of the ++// cache hierarchy. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clflush ++#if defined(__APPLE__) ++#include ++#endif ++FORCE_INLINE void _mm_clflush(void const *p) ++{ ++ (void) p; ++ ++ /* sys_icache_invalidate is supported since macOS 10.5. ++ * However, it does not work on non-jailbroken iOS devices, although the ++ * compilation is successful. ++ */ ++#if defined(__APPLE__) ++ sys_icache_invalidate((void *) (uintptr_t) p, SSE2NEON_CACHELINE_SIZE); ++#elif defined(__GNUC__) || defined(__clang__) ++ uintptr_t ptr = (uintptr_t) p; ++ __builtin___clear_cache((char *) ptr, ++ (char *) ptr + SSE2NEON_CACHELINE_SIZE); ++#elif (_MSC_VER) && SSE2NEON_INCLUDE_WINDOWS_H ++ FlushInstructionCache(GetCurrentProcess(), p, SSE2NEON_CACHELINE_SIZE); ++#endif ++} ++ ++// Compare packed 16-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi16 ++FORCE_INLINE __m128i _mm_cmpeq_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vceqq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed 32-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi32 ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vceqq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed 8-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi8 ++FORCE_INLINE __m128i _mm_cmpeq_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vceqq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_pd ++FORCE_INLINE __m128d _mm_cmpeq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_sd ++FORCE_INLINE __m128d _mm_cmpeq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpeq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_pd ++FORCE_INLINE __m128d _mm_cmpge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) >= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_sd ++FORCE_INLINE __m128d _mm_cmpge_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpge_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi16 ++FORCE_INLINE __m128i _mm_cmpgt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcgtq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi32 ++FORCE_INLINE __m128i _mm_cmpgt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcgtq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi8 ++FORCE_INLINE __m128i _mm_cmpgt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcgtq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_pd ++FORCE_INLINE __m128d _mm_cmpgt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_sd ++FORCE_INLINE __m128d _mm_cmpgt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpgt_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_pd ++FORCE_INLINE __m128d _mm_cmple_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) <= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_sd ++FORCE_INLINE __m128d _mm_cmple_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmple_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtw instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi16 ++FORCE_INLINE __m128i _mm_cmplt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcltq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtd instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi32 ++FORCE_INLINE __m128i _mm_cmplt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcltq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtb instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi8 ++FORCE_INLINE __m128i _mm_cmplt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcltq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_pd ++FORCE_INLINE __m128d _mm_cmplt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_sd ++FORCE_INLINE __m128d _mm_cmplt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmplt_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_pd ++FORCE_INLINE __m128d _mm_cmpneq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_s32(vmvnq_s32(vreinterpretq_s32_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vmvnq_u32(vandq_u32(cmp, swapped))); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_sd ++FORCE_INLINE __m128d _mm_cmpneq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpneq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_pd ++FORCE_INLINE __m128d _mm_cmpnge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) >= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) >= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_sd ++FORCE_INLINE __m128d _mm_cmpnge_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnge_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_cmpngt_pd ++FORCE_INLINE __m128d _mm_cmpngt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) > (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) > (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_sd ++FORCE_INLINE __m128d _mm_cmpngt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpngt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_pd ++FORCE_INLINE __m128d _mm_cmpnle_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) <= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) <= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_sd ++FORCE_INLINE __m128d _mm_cmpnle_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnle_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_pd ++FORCE_INLINE __m128d _mm_cmpnlt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) < (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) < (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_sd ++FORCE_INLINE __m128d _mm_cmpnlt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnlt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_pd ++FORCE_INLINE __m128d _mm_cmpord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Excluding NaNs, any two floating point numbers can be compared. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_u64(vandq_u64(not_nan_a, not_nan_b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_sd ++FORCE_INLINE __m128d _mm_cmpord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_pd ++FORCE_INLINE __m128d _mm_cmpunord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Two NaNs are not equal in comparison operation. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_s32( ++ vmvnq_s32(vreinterpretq_s32_u64(vandq_u64(not_nan_a, not_nan_b)))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_sd ++FORCE_INLINE __m128d _mm_cmpunord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpunord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_sd ++FORCE_INLINE int _mm_comige_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgeq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 >= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_sd ++FORCE_INLINE int _mm_comigt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgtq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 > *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_sd ++FORCE_INLINE int _mm_comile_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcleq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 <= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_sd ++FORCE_INLINE int _mm_comilt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcltq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 < *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_sd ++FORCE_INLINE int _mm_comieq_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vceqq_f64(a, b), 0) & 0x1; ++#else ++ uint32x4_t a_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(a)); ++ uint32x4_t b_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(b), vreinterpretq_u32_m128d(b)); ++ uint32x4_t a_and_b_not_nan = vandq_u32(a_not_nan, b_not_nan); ++ uint32x4_t a_eq_b = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint64x2_t and_results = vandq_u64(vreinterpretq_u64_u32(a_and_b_not_nan), ++ vreinterpretq_u64_u32(a_eq_b)); ++ return vgetq_lane_u64(and_results, 0) & 0x1; ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_sd ++FORCE_INLINE int _mm_comineq_sd(__m128d a, __m128d b) ++{ ++ return !_mm_comieq_sd(a, b); ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_pd ++FORCE_INLINE __m128d _mm_cvtepi32_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a))))); ++#else ++ double a0 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++ double a1 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_ps ++FORCE_INLINE __m128 _mm_cvtepi32_ps(__m128i a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_epi32 ++FORCE_INLINE __m128i _mm_cvtpd_epi32(__m128d a) ++{ ++// vrnd32xq_f64 not supported on clang ++#if defined(__ARM_FEATURE_FRINT) && !defined(__clang__) ++ float64x2_t rounded = vrnd32xq_f64(vreinterpretq_f64_m128d(a)); ++ int64x2_t integers = vcvtq_s64_f64(rounded); ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vmovn_s64(integers), vdup_n_s32(0))); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) d1, (int32_t) d0); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_pi32 ++FORCE_INLINE __m64 _mm_cvtpd_pi32(__m128d a) ++{ ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) d0, (int32_t) d1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed single-precision (32-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_ps ++FORCE_INLINE __m128 _mm_cvtpd_ps(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float32x2_t tmp = vcvt_f32_f64(vreinterpretq_f64_m128d(a)); ++ return vreinterpretq_m128_f32(vcombine_f32(tmp, vdup_n_f32(0))); ++#else ++ float a0 = (float) ((double *) &a)[0]; ++ float a1 = (float) ((double *) &a)[1]; ++ return _mm_set_ps(0, 0, a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_pd ++FORCE_INLINE __m128d _mm_cvtpi32_pd(__m64 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vreinterpret_s32_m64(a)))); ++#else ++ double a0 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 0); ++ double a1 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_epi32 ++// *NOTE*. The default rounding mode on SSE is 'round to even', which ARMv7-A ++// does not support! It is supported on ARMv8-A however. ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128 a) ++{ ++#if defined(__ARM_FEATURE_FRINT) ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vrnd32xq_f32(a))); ++#elif (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: ++ return vreinterpretq_m128i_s32(vcvtnq_s32_f32(a)); ++ case _MM_ROUND_DOWN: ++ return vreinterpretq_m128i_s32(vcvtmq_s32_f32(a)); ++ case _MM_ROUND_UP: ++ return vreinterpretq_m128i_s32(vcvtpq_s32_f32(a)); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(a)); ++ } ++#else ++ float *f = (float *) &a; ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128i_s32( ++ vbslq_s32(is_delta_half, r_even, r_normal)); ++ } ++ case _MM_ROUND_DOWN: ++ return _mm_set_epi32(floorf(f[3]), floorf(f[2]), floorf(f[1]), ++ floorf(f[0])); ++ case _MM_ROUND_UP: ++ return _mm_set_epi32(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ++ ceilf(f[0])); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return _mm_set_epi32((int32_t) f[3], (int32_t) f[2], (int32_t) f[1], ++ (int32_t) f[0]); ++ } ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed double-precision (64-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pd ++FORCE_INLINE __m128d _mm_cvtps_pd(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvt_f64_f32(vget_low_f32(vreinterpretq_f32_m128(a)))); ++#else ++ double a0 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ double a1 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Copy the lower double-precision (64-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_f64 ++FORCE_INLINE double _mm_cvtsd_f64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (double) vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0); ++#else ++ return ((double *) &a)[0]; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si32 ++FORCE_INLINE int32_t _mm_cvtsd_si32(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int32_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int32_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64 ++FORCE_INLINE int64_t _mm_cvtsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int64_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64x ++#define _mm_cvtsd_si64x _mm_cvtsd_si64 ++ ++// Convert the lower double-precision (64-bit) floating-point element in b to a ++// single-precision (32-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_ss ++FORCE_INLINE __m128 _mm_cvtsd_ss(__m128 a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32(vsetq_lane_f32( ++ vget_lane_f32(vcvt_f32_f64(vreinterpretq_f64_m128d(b)), 0), ++ vreinterpretq_f32_m128(a), 0)); ++#else ++ return vreinterpretq_m128_f32(vsetq_lane_f32((float) ((double *) &b)[0], ++ vreinterpretq_f32_m128(a), 0)); ++#endif ++} ++ ++// Copy the lower 32-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si32 ++FORCE_INLINE int _mm_cvtsi128_si32(__m128i a) ++{ ++ return vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64 ++FORCE_INLINE int64_t _mm_cvtsi128_si64(__m128i a) ++{ ++ return vgetq_lane_s64(vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Convert the signed 32-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_sd ++FORCE_INLINE __m128d _mm_cvtsi32_sd(__m128d a, int32_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Copy 32-bit integer a to the lower elements of dst, and zero the upper ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_si128 ++FORCE_INLINE __m128i _mm_cvtsi32_si128(int a) ++{ ++ return vreinterpretq_m128i_s32(vsetq_lane_s32(a, vdupq_n_s32(0), 0)); ++} ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_sd ++FORCE_INLINE __m128d _mm_cvtsi64_sd(__m128d a, int64_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_si128 ++FORCE_INLINE __m128i _mm_cvtsi64_si128(int64_t a) ++{ ++ return vreinterpretq_m128i_s64(vsetq_lane_s64(a, vdupq_n_s64(0), 0)); ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_si128 ++#define _mm_cvtsi64x_si128(a) _mm_cvtsi64_si128(a) ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_sd ++#define _mm_cvtsi64x_sd(a, b) _mm_cvtsi64_sd(a, b) ++ ++// Convert the lower single-precision (32-bit) floating-point element in b to a ++// double-precision (64-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_sd ++FORCE_INLINE __m128d _mm_cvtss_sd(__m128d a, __m128 b) ++{ ++ double d = (double) vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(d, vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &d, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_epi32 ++FORCE_INLINE __m128i _mm_cvttpd_epi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) a1, (int32_t) a0); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_pi32 ++FORCE_INLINE __m64 _mm_cvttpd_pi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) a0, (int32_t) a1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_epi32 ++FORCE_INLINE __m128i _mm_cvttps_epi32(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a))); ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si32 ++FORCE_INLINE int32_t _mm_cvttsd_si32(__m128d a) ++{ ++ double ret = *((double *) &a); ++ return (int32_t) ret; ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64 ++FORCE_INLINE int64_t _mm_cvttsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_s64(vcvtq_s64_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ double ret = *((double *) &a); ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64x ++#define _mm_cvttsd_si64x(a) _mm_cvttsd_si64(a) ++ ++// Divide packed double-precision (64-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_pd ++FORCE_INLINE __m128d _mm_div_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] / db[0]; ++ c[1] = da[1] / db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Divide the lower double-precision (64-bit) floating-point element in a by the ++// lower double-precision (64-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper element from a to the upper ++// element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_sd ++FORCE_INLINE __m128d _mm_div_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t tmp = ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1), tmp, 1)); ++#else ++ return _mm_move_sd(a, _mm_div_pd(a, b)); ++#endif ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi16 ++// FORCE_INLINE int _mm_extract_epi16(__m128i a, __constrange(0,8) int imm) ++#define _mm_extract_epi16(a, imm) \ ++ vgetq_lane_u16(vreinterpretq_u16_m128i(a), (imm)) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi16 ++// FORCE_INLINE __m128i _mm_insert_epi16(__m128i a, int b, ++// __constrange(0,8) int imm) ++#define _mm_insert_epi16(a, b, imm) \ ++ vreinterpretq_m128i_s16( \ ++ vsetq_lane_s16((b), vreinterpretq_s16_m128i(a), (imm))) ++ ++// Load 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd ++FORCE_INLINE __m128d _mm_load_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64(p)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], fp[2], fp[3]}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd1 ++#define _mm_load_pd1 _mm_load1_pd ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower of dst, and zero the upper element. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_sd ++FORCE_INLINE __m128d _mm_load_sd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(*p, vdupq_n_f64(0), 0)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], 0, 0}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_si128 ++FORCE_INLINE __m128i _mm_load_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const int32_t *) p)); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_pd ++FORCE_INLINE __m128d _mm_load1_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_dup_f64(p)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(const int64_t *) p)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// upper element of dst, and copy the lower element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pd ++FORCE_INLINE __m128d _mm_loadh_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vget_low_f64(vreinterpretq_f64_m128d(a)), vld1_f64(p))); ++#else ++ return vreinterpretq_m128d_f32(vcombine_f32( ++ vget_low_f32(vreinterpretq_f32_m128d(a)), vld1_f32((const float *) p))); ++#endif ++} ++ ++// Load 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_epi64 ++FORCE_INLINE __m128i _mm_loadl_epi64(__m128i const *p) ++{ ++ /* Load the lower 64 bits of the value pointed to by p into the ++ * lower 64 bits of the result, zeroing the upper 64 bits of the result. ++ */ ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vld1_s32((int32_t const *) p), vcreate_s32(0))); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower element of dst, and copy the upper element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pd ++FORCE_INLINE __m128d _mm_loadl_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vld1_f64(p), vget_high_f64(vreinterpretq_f64_m128d(a)))); ++#else ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vld1_f32((const float *) p), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++#endif ++} ++ ++// Load 2 double-precision (64-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_pd ++FORCE_INLINE __m128d _mm_loadr_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t v = vld1q_f64(p); ++ return vreinterpretq_m128d_f64(vextq_f64(v, v, 1)); ++#else ++ int64x2_t v = vld1q_s64((const int64_t *) p); ++ return vreinterpretq_m128d_s64(vextq_s64(v, v, 1)); ++#endif ++} ++ ++// Loads two double-precision from unaligned memory, floating-point values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_pd ++FORCE_INLINE __m128d _mm_loadu_pd(const double *p) ++{ ++ return _mm_load_pd(p); ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si128 ++FORCE_INLINE __m128i _mm_loadu_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const unaligned_int32_t *) p)); ++} ++ ++// Load unaligned 32-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si32 ++FORCE_INLINE __m128i _mm_loadu_si32(const void *p) ++{ ++ return vreinterpretq_m128i_s32( ++ vsetq_lane_s32(*(const unaligned_int32_t *) p, vdupq_n_s32(0), 0)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Horizontally add adjacent pairs of intermediate ++// 32-bit integers, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_madd_epi16 ++FORCE_INLINE __m128i _mm_madd_epi16(__m128i a, __m128i b) ++{ ++ int32x4_t low = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t high = ++ vmull_high_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)); ++ ++ return vreinterpretq_m128i_s32(vpaddq_s32(low, high)); ++#else ++ int32x4_t high = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ int32x2_t low_sum = vpadd_s32(vget_low_s32(low), vget_high_s32(low)); ++ int32x2_t high_sum = vpadd_s32(vget_low_s32(high), vget_high_s32(high)); ++ ++ return vreinterpretq_m128i_s32(vcombine_s32(low_sum, high_sum)); ++#endif ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. mem_addr does not need to be aligned ++// on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmoveu_si128 ++FORCE_INLINE void _mm_maskmoveu_si128(__m128i a, __m128i mask, char *mem_addr) ++{ ++ int8x16_t shr_mask = vshrq_n_s8(vreinterpretq_s8_m128i(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x16_t masked = ++ vbslq_s8(vreinterpretq_u8_s8(shr_mask), vreinterpretq_s8_m128i(a), ++ vreinterpretq_s8_m128(b)); ++ vst1q_s8((int8_t *) mem_addr, masked); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi16 ++FORCE_INLINE __m128i _mm_max_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmaxq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu8 ++FORCE_INLINE __m128i _mm_max_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vmaxq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pd ++FORCE_INLINE __m128d _mm_max_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcgtq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vmaxq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? a1 : b1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_sd ++FORCE_INLINE __m128d _mm_max_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_max_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] > db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi16 ++FORCE_INLINE __m128i _mm_min_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vminq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu8 ++FORCE_INLINE __m128i _mm_min_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vminq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pd ++FORCE_INLINE __m128d _mm_min_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcltq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vminq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? a1 : b1; ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_sd ++FORCE_INLINE __m128d _mm_min_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_min_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] < db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to the lower element of dst, and zero the ++// upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_epi64 ++FORCE_INLINE __m128i _mm_move_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(0, vreinterpretq_s64_m128i(a), 1)); ++} ++ ++// Move the lower double-precision (64-bit) floating-point element from b to the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_sd ++FORCE_INLINE __m128d _mm_move_sd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vget_low_f32(vreinterpretq_f32_m128d(b)), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_epi8 ++FORCE_INLINE int _mm_movemask_epi8(__m128i a) ++{ ++ // Use increasingly wide shifts+adds to collect the sign bits ++ // together. ++ // Since the widening shifts would be rather confusing to follow in little ++ // endian, everything will be illustrated in big endian order instead. This ++ // has a different result - the bits would actually be reversed on a big ++ // endian machine. ++ ++ // Starting input (only half the elements are shown): ++ // 89 ff 1d c0 00 10 99 33 ++ uint8x16_t input = vreinterpretq_u8_m128i(a); ++ ++ // Shift out everything but the sign bits with an unsigned shift right. ++ // ++ // Bytes of the vector:: ++ // 89 ff 1d c0 00 10 99 33 ++ // \ \ \ \ \ \ \ \ high_bits = (uint16x4_t)(input >> 7) ++ // | | | | | | | | ++ // 01 01 00 01 00 00 01 00 ++ // ++ // Bits of first important lane(s): ++ // 10001001 (89) ++ // \______ ++ // | ++ // 00000001 (01) ++ uint16x8_t high_bits = vreinterpretq_u16_u8(vshrq_n_u8(input, 7)); ++ ++ // Merge the even lanes together with a 16-bit unsigned shift right + add. ++ // 'xx' represents garbage data which will be ignored in the final result. ++ // In the important bytes, the add functions like a binary OR. ++ // ++ // 01 01 00 01 00 00 01 00 ++ // \_ | \_ | \_ | \_ | paired16 = (uint32x4_t)(input + (input >> 7)) ++ // \| \| \| \| ++ // xx 03 xx 01 xx 00 xx 02 ++ // ++ // 00000001 00000001 (01 01) ++ // \_______ | ++ // \| ++ // xxxxxxxx xxxxxx11 (xx 03) ++ uint32x4_t paired16 = ++ vreinterpretq_u32_u16(vsraq_n_u16(high_bits, high_bits, 7)); ++ ++ // Repeat with a wider 32-bit shift + add. ++ // xx 03 xx 01 xx 00 xx 02 ++ // \____ | \____ | paired32 = (uint64x1_t)(paired16 + (paired16 >> ++ // 14)) ++ // \| \| ++ // xx xx xx 0d xx xx xx 02 ++ // ++ // 00000011 00000001 (03 01) ++ // \\_____ || ++ // '----.\|| ++ // xxxxxxxx xxxx1101 (xx 0d) ++ uint64x2_t paired32 = ++ vreinterpretq_u64_u32(vsraq_n_u32(paired16, paired16, 14)); ++ ++ // Last, an even wider 64-bit shift + add to get our result in the low 8 bit ++ // lanes. xx xx xx 0d xx xx xx 02 ++ // \_________ | paired64 = (uint8x8_t)(paired32 + (paired32 >> ++ // 28)) ++ // \| ++ // xx xx xx xx xx xx xx d2 ++ // ++ // 00001101 00000010 (0d 02) ++ // \ \___ | | ++ // '---. \| | ++ // xxxxxxxx 11010010 (xx d2) ++ uint8x16_t paired64 = ++ vreinterpretq_u8_u64(vsraq_n_u64(paired32, paired32, 28)); ++ ++ // Extract the low 8 bits from each 64-bit lane with 2 8-bit extracts. ++ // xx xx xx xx xx xx xx d2 ++ // || return paired64[0] ++ // d2 ++ // Note: Little endian would return the correct value 4b (01001011) instead. ++ return vgetq_lane_u8(paired64, 0) | ((int) vgetq_lane_u8(paired64, 8) << 8); ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed double-precision (64-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pd ++FORCE_INLINE int _mm_movemask_pd(__m128d a) ++{ ++ uint64x2_t input = vreinterpretq_u64_m128d(a); ++ uint64x2_t high_bits = vshrq_n_u64(input, 63); ++ return (int) (vgetq_lane_u64(high_bits, 0) | ++ (vgetq_lane_u64(high_bits, 1) << 1)); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movepi64_pi64 ++FORCE_INLINE __m64 _mm_movepi64_pi64(__m128i a) ++{ ++ return vreinterpret_m64_s64(vget_low_s64(vreinterpretq_s64_m128i(a))); ++} ++ ++// Copy the 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movpi64_epi64 ++FORCE_INLINE __m128i _mm_movpi64_epi64(__m64 a) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vreinterpret_s64_m64(a), vdup_n_s64(0))); ++} ++ ++// Multiply the low unsigned 32-bit integers from each packed 64-bit element in ++// a and b, and store the unsigned 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epu32 ++FORCE_INLINE __m128i _mm_mul_epu32(__m128i a, __m128i b) ++{ ++ // vmull_u32 upcasts instead of masking, so we downcast. ++ uint32x2_t a_lo = vmovn_u64(vreinterpretq_u64_m128i(a)); ++ uint32x2_t b_lo = vmovn_u64(vreinterpretq_u64_m128i(b)); ++ return vreinterpretq_m128i_u64(vmull_u32(a_lo, b_lo)); ++} ++ ++// Multiply packed double-precision (64-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_pd ++FORCE_INLINE __m128d _mm_mul_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vmulq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] * db[0]; ++ c[1] = da[1] * db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Multiply the lower double-precision (64-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper element ++// from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_mul_sd ++FORCE_INLINE __m128d _mm_mul_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_mul_pd(a, b)); ++} ++ ++// Multiply the low unsigned 32-bit integers from a and b, and store the ++// unsigned 64-bit result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_su32 ++FORCE_INLINE __m64 _mm_mul_su32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u64(vget_low_u64( ++ vmull_u32(vreinterpret_u32_m64(a), vreinterpret_u32_m64(b)))); ++} ++ ++// Multiply the packed signed 16-bit integers in a and b, producing intermediate ++// 32-bit integers, and store the high 16 bits of the intermediate integers in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epi16 ++FORCE_INLINE __m128i _mm_mulhi_epi16(__m128i a, __m128i b) ++{ ++ /* FIXME: issue with large values because of result saturation */ ++ // int16x8_t ret = vqdmulhq_s16(vreinterpretq_s16_m128i(a), ++ // vreinterpretq_s16_m128i(b)); /* =2*a*b */ return ++ // vreinterpretq_m128i_s16(vshrq_n_s16(ret, 1)); ++ int16x4_t a3210 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b3210 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab3210 = vmull_s16(a3210, b3210); /* 3333222211110000 */ ++ int16x4_t a7654 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b7654 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab7654 = vmull_s16(a7654, b7654); /* 7777666655554444 */ ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_s32(ab3210), vreinterpretq_u16_s32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epu16 ++FORCE_INLINE __m128i _mm_mulhi_epu16(__m128i a, __m128i b) ++{ ++ uint16x4_t a3210 = vget_low_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b3210 = vget_low_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab3210 = vmull_u16(a3210, b3210); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32x4_t ab7654 = ++ vmull_high_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ uint16x8_t r = vuzp2q_u16(vreinterpretq_u16_u32(ab3210), ++ vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r); ++#else ++ uint16x4_t a7654 = vget_high_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b7654 = vget_high_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab7654 = vmull_u16(a7654, b7654); ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_u32(ab3210), vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++#endif ++} ++ ++// Multiply the packed 16-bit integers in a and b, producing intermediate 32-bit ++// integers, and store the low 16 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi16 ++FORCE_INLINE __m128i _mm_mullo_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmulq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compute the bitwise OR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_or_pd ++FORCE_INLINE __m128d _mm_or_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vorrq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise OR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_si128 ++FORCE_INLINE __m128i _mm_or_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vorrq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi16 ++FORCE_INLINE __m128i _mm_packs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vqmovn_s16(vreinterpretq_s16_m128i(a)), ++ vqmovn_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi32 ++FORCE_INLINE __m128i _mm_packs_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vqmovn_s32(vreinterpretq_s32_m128i(a)), ++ vqmovn_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi16 ++FORCE_INLINE __m128i _mm_packus_epi16(const __m128i a, const __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcombine_u8(vqmovun_s16(vreinterpretq_s16_m128i(a)), ++ vqmovun_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Pause the processor. This is typically used in spin-wait loops and depending ++// on the x86 processor typical values are in the 40-100 cycle range. The ++// 'yield' instruction isn't a good fit because it's effectively a nop on most ++// Arm cores. Experience with several databases has shown has shown an 'isb' is ++// a reasonable approximation. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_pause ++FORCE_INLINE void _mm_pause(void) ++{ ++#if defined(_MSC_VER) ++ __isb(_ARM64_BARRIER_SY); ++#else ++ __asm__ __volatile__("isb\n"); ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce two ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of 64-bit elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_epu8 ++FORCE_INLINE __m128i _mm_sad_epu8(__m128i a, __m128i b) ++{ ++ uint16x8_t t = vpaddlq_u8(vabdq_u8((uint8x16_t) a, (uint8x16_t) b)); ++ return vreinterpretq_m128i_u64(vpaddlq_u32(vpaddlq_u16(t))); ++} ++ ++// Set packed 16-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi16 ++FORCE_INLINE __m128i _mm_set_epi16(short i7, ++ short i6, ++ short i5, ++ short i4, ++ short i3, ++ short i2, ++ short i1, ++ short i0) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {i0, i1, i2, i3, i4, i5, i6, i7}; ++ return vreinterpretq_m128i_s16(vld1q_s16(data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi32 ++FORCE_INLINE __m128i _mm_set_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i0, i1, i2, i3}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64 ++FORCE_INLINE __m128i _mm_set_epi64(__m64 i1, __m64 i2) ++{ ++ return _mm_set_epi64x(vget_lane_s64(i1, 0), vget_lane_s64(i2, 0)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64x ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t i1, int64_t i2) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vcreate_s64(i2), vcreate_s64(i1))); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi8 ++FORCE_INLINE __m128i _mm_set_epi8(signed char b15, ++ signed char b14, ++ signed char b13, ++ signed char b12, ++ signed char b11, ++ signed char b10, ++ signed char b9, ++ signed char b8, ++ signed char b7, ++ signed char b6, ++ signed char b5, ++ signed char b4, ++ signed char b3, ++ signed char b2, ++ signed char b1, ++ signed char b0) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd ++FORCE_INLINE __m128d _mm_set_pd(double e1, double e0) ++{ ++ double ALIGN_STRUCT(16) data[2] = {e0, e1}; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64((float64_t *) data)); ++#else ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) data)); ++#endif ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd1 ++#define _mm_set_pd1 _mm_set1_pd ++ ++// Copy double-precision (64-bit) floating-point element a to the lower element ++// of dst, and zero the upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_sd ++FORCE_INLINE __m128d _mm_set_sd(double a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(a, vdupq_n_f64(0), 0)); ++#else ++ return _mm_set_pd(0, a); ++#endif ++} ++ ++// Broadcast 16-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi16 ++FORCE_INLINE __m128i _mm_set1_epi16(short w) ++{ ++ return vreinterpretq_m128i_s16(vdupq_n_s16(w)); ++} ++ ++// Broadcast 32-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi32 ++FORCE_INLINE __m128i _mm_set1_epi32(int _i) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(_i)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64 ++FORCE_INLINE __m128i _mm_set1_epi64(__m64 _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_lane_s64(_i, 0)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64x ++FORCE_INLINE __m128i _mm_set1_epi64x(int64_t _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_n_s64(_i)); ++} ++ ++// Broadcast 8-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi8 ++FORCE_INLINE __m128i _mm_set1_epi8(signed char w) ++{ ++ return vreinterpretq_m128i_s8(vdupq_n_s8(w)); ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_pd ++FORCE_INLINE __m128d _mm_set1_pd(double d) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(d)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(int64_t *) &d)); ++#endif ++} ++ ++// Set packed 16-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi16 ++FORCE_INLINE __m128i _mm_setr_epi16(short w0, ++ short w1, ++ short w2, ++ short w3, ++ short w4, ++ short w5, ++ short w6, ++ short w7) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {w0, w1, w2, w3, w4, w5, w6, w7}; ++ return vreinterpretq_m128i_s16(vld1q_s16((int16_t *) data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi32 ++FORCE_INLINE __m128i _mm_setr_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i3, i2, i1, i0}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi64 ++FORCE_INLINE __m128i _mm_setr_epi64(__m64 e1, __m64 e0) ++{ ++ return vreinterpretq_m128i_s64(vcombine_s64(e1, e0)); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi8 ++FORCE_INLINE __m128i _mm_setr_epi8(signed char b0, ++ signed char b1, ++ signed char b2, ++ signed char b3, ++ signed char b4, ++ signed char b5, ++ signed char b6, ++ signed char b7, ++ signed char b8, ++ signed char b9, ++ signed char b10, ++ signed char b11, ++ signed char b12, ++ signed char b13, ++ signed char b14, ++ signed char b15) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_pd ++FORCE_INLINE __m128d _mm_setr_pd(double e1, double e0) ++{ ++ return _mm_set_pd(e0, e1); ++} ++ ++// Return vector of type __m128d with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_pd ++FORCE_INLINE __m128d _mm_setzero_pd(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(0)); ++#else ++ return vreinterpretq_m128d_f32(vdupq_n_f32(0)); ++#endif ++} ++ ++// Return vector of type __m128i with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_si128 ++FORCE_INLINE __m128i _mm_setzero_si128(void) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(0)); ++} ++ ++// Shuffle 32-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi32 ++// FORCE_INLINE __m128i _mm_shuffle_epi32(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shuffle_epi32(a, imm) \ ++ __extension__({ \ ++ int32x4_t _input = vreinterpretq_s32_m128i(a); \ ++ int32x4_t _shuf = \ ++ vshuffleq_s32(_input, _input, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ ((imm) >> 4) & 0x3, ((imm) >> 6) & 0x3); \ ++ vreinterpretq_m128i_s32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_epi32(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, __m128i ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_epi_1032(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_epi_2301(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_epi_0321(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_epi_2103(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_shuffle_epi_1010(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_epi_1001(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_epi_0101(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 1, 1): \ ++ ret = _mm_shuffle_epi_2211(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 2, 2): \ ++ ret = _mm_shuffle_epi_0122(_a); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 2): \ ++ ret = _mm_shuffle_epi_3332(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 0, 0): \ ++ ret = _mm_shuffle_epi32_splat(_a, 0); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 1, 1): \ ++ ret = _mm_shuffle_epi32_splat(_a, 1); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 2, 2): \ ++ ret = _mm_shuffle_epi32_splat(_a, 2); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 3): \ ++ ret = _mm_shuffle_epi32_splat(_a, 3); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_epi32_default(_a, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Shuffle double-precision (64-bit) floating-point elements using the control ++// in imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pd ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pd(a, b, imm8) \ ++ vreinterpretq_m128d_s64( \ ++ vshuffleq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b), \ ++ imm8 & 0x1, ((imm8 & 0x2) >> 1) + 2)) ++#else ++#define _mm_shuffle_pd(a, b, imm8) \ ++ _mm_castsi128_pd(_mm_set_epi64x( \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(b), (imm8 & 0x2) >> 1), \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(a), imm8 & 0x1))) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflehi_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflehi_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = \ ++ vshuffleq_s16(_input, _input, 0, 1, 2, 3, ((imm) & (0x3)) + 4, \ ++ (((imm) >> 2) & 0x3) + 4, (((imm) >> 4) & 0x3) + 4, \ ++ (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflehi_epi16(a, imm) _mm_shufflehi_epi16_function((a), (imm)) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflelo_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflelo_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = vshuffleq_s16( \ ++ _input, _input, ((imm) & (0x3)), (((imm) >> 2) & 0x3), \ ++ (((imm) >> 4) & 0x3), (((imm) >> 6) & 0x3), 4, 5, 6, 7); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflelo_epi16(a, imm) _mm_shufflelo_epi16_function((a), (imm)) ++#endif ++ ++// Shift packed 16-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi16 ++FORCE_INLINE __m128i _mm_sll_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16((int16_t) c); ++ return vreinterpretq_m128i_s16(vshlq_s16(vreinterpretq_s16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi32 ++FORCE_INLINE __m128i _mm_sll_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32((int32_t) c); ++ return vreinterpretq_m128i_s32(vshlq_s32(vreinterpretq_s32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi64 ++FORCE_INLINE __m128i _mm_sll_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64((int64_t) c); ++ return vreinterpretq_m128i_s64(vshlq_s64(vreinterpretq_s64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi16 ++FORCE_INLINE __m128i _mm_slli_epi16(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~15)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16(vreinterpretq_s16_m128i(a), vdupq_n_s16(imm))); ++} ++ ++// Shift packed 32-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi32 ++FORCE_INLINE __m128i _mm_slli_epi32(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~31)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32(vreinterpretq_s32_m128i(a), vdupq_n_s32(imm))); ++} ++ ++// Shift packed 64-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi64 ++FORCE_INLINE __m128i _mm_slli_epi64(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~63)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s64( ++ vshlq_s64(vreinterpretq_s64_m128i(a), vdupq_n_s64(imm))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_si128 ++#define _mm_slli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely(imm == 0)) ret = vreinterpretq_s8_m128i(_a); \ ++ else if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vdupq_n_s8(0), vreinterpretq_s8_m128i(_a), \ ++ ((imm <= 0 || imm > 15) ? 0 : (16 - imm))); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Compute the square root of packed double-precision (64-bit) floating-point ++// elements in a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_pd ++FORCE_INLINE __m128d _mm_sqrt_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsqrtq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double a0 = sqrt(((double *) &a)[0]); ++ double a1 = sqrt(((double *) &a)[1]); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Compute the square root of the lower double-precision (64-bit) floating-point ++// element in b, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_sd ++FORCE_INLINE __m128d _mm_sqrt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_sqrt_pd(b)); ++#else ++ return _mm_set_pd(((double *) &a)[1], sqrt(((double *) &b)[0])); ++#endif ++} ++ ++// Shift packed 16-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi16 ++FORCE_INLINE __m128i _mm_sra_epi16(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_cmplt_epi16(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16((int16x8_t) a, vdupq_n_s16((int) -c))); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi32 ++FORCE_INLINE __m128i _mm_sra_epi32(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_cmplt_epi32(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32((int32x4_t) a, vdupq_n_s32((int) -c))); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in sign ++// bits, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi16 ++FORCE_INLINE __m128i _mm_srai_epi16(__m128i a, int imm) ++{ ++ const int count = (imm & ~15) ? 15 : imm; ++ return (__m128i) vshlq_s16((int16x8_t) a, vdupq_n_s16(-count)); ++} ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi32 ++// FORCE_INLINE __m128i _mm_srai_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srai_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) == 0)) { \ ++ ret = _a; \ ++ } else if (_sse2neon_likely(0 < (imm) && (imm) < 32)) { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshlq_s32(vreinterpretq_s32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } else { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshrq_n_s32(vreinterpretq_s32_m128i(_a), 31)); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 16-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi16 ++FORCE_INLINE __m128i _mm_srl_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16(-(int16_t) c); ++ return vreinterpretq_m128i_u16(vshlq_u16(vreinterpretq_u16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi32 ++FORCE_INLINE __m128i _mm_srl_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32(-(int32_t) c); ++ return vreinterpretq_m128i_u32(vshlq_u32(vreinterpretq_u32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi64 ++FORCE_INLINE __m128i _mm_srl_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64(-(int64_t) c); ++ return vreinterpretq_m128i_u64(vshlq_u64(vreinterpretq_u64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi16 ++#define _mm_srli_epi16(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~15)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u16( \ ++ vshlq_u16(vreinterpretq_u16_m128i(_a), vdupq_n_s16(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi32 ++// FORCE_INLINE __m128i _mm_srli_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srli_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~31)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u32( \ ++ vshlq_u32(vreinterpretq_u32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 64-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi64 ++#define _mm_srli_epi64(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~63)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u64( \ ++ vshlq_u64(vreinterpretq_u64_m128i(_a), vdupq_n_s64(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_si128 ++#define _mm_srli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vreinterpretq_s8_m128i(_a), vdupq_n_s8(0), \ ++ (imm > 15 ? 0 : imm)); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd ++FORCE_INLINE void _mm_store_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64((float64_t *) mem_addr, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_f32((float32_t *) mem_addr, vreinterpretq_f32_m128d(a)); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd1 ++FORCE_INLINE void _mm_store_pd1(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x1_t a_low = vget_low_f64(vreinterpretq_f64_m128d(a)); ++ vst1q_f64((float64_t *) mem_addr, ++ vreinterpretq_f64_m128d(vcombine_f64(a_low, a_low))); ++#else ++ float32x2_t a_low = vget_low_f32(vreinterpretq_f32_m128d(a)); ++ vst1q_f32((float32_t *) mem_addr, ++ vreinterpretq_f32_m128d(vcombine_f32(a_low, a_low))); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_store_sd ++FORCE_INLINE void _mm_store_sd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_u64((uint64_t *) mem_addr, vget_low_u64(vreinterpretq_u64_m128d(a))); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_si128 ++FORCE_INLINE void _mm_store_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#expand=9,526,5601&text=_mm_store1_pd ++#define _mm_store1_pd _mm_store_pd1 ++ ++// Store the upper double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pd ++FORCE_INLINE void _mm_storeh_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_high_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_high_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 64-bit integer from the first element of a into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_epi64 ++FORCE_INLINE void _mm_storel_epi64(__m128i *a, __m128i b) ++{ ++ vst1_u64((uint64_t *) a, vget_low_u64(vreinterpretq_u64_m128i(b))); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pd ++FORCE_INLINE void _mm_storel_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_low_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 2 double-precision (64-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_pd ++FORCE_INLINE void _mm_storer_pd(double *mem_addr, __m128d a) ++{ ++ float32x4_t f = vreinterpretq_f32_m128d(a); ++ _mm_store_pd(mem_addr, vreinterpretq_m128d_f32(vextq_f32(f, f, 2))); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_pd ++FORCE_INLINE void _mm_storeu_pd(double *mem_addr, __m128d a) ++{ ++ _mm_store_pd(mem_addr, a); ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si128 ++FORCE_INLINE void _mm_storeu_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store 32-bit integer from the first element of a into memory. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si32 ++FORCE_INLINE void _mm_storeu_si32(void *p, __m128i a) ++{ ++ vst1q_lane_s32((int32_t *) p, vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory using a non-temporal memory hint. mem_addr must ++// be aligned on a 16-byte boundary or a general-protection exception may be ++// generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pd ++FORCE_INLINE void _mm_stream_pd(double *p, __m128d a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (__m128d *) p); ++#elif defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64(p, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128d(a)); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory using a non-temporal memory ++// hint. mem_addr must be aligned on a 16-byte boundary or a general-protection ++// exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si128 ++FORCE_INLINE void _mm_stream_si128(__m128i *p, __m128i a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, p); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128i(a)); ++#endif ++} ++ ++// Store 32-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si32 ++FORCE_INLINE void _mm_stream_si32(int *p, int a) ++{ ++ vst1q_lane_s32((int32_t *) p, vdupq_n_s32(a), 0); ++} ++ ++// Store 64-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si64 ++FORCE_INLINE void _mm_stream_si64(__int64 *p, __int64 a) ++{ ++ vst1_s64((int64_t *) p, vdup_n_s64((int64_t) a)); ++} ++ ++// Subtract packed 16-bit integers in b from packed 16-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi16 ++FORCE_INLINE __m128i _mm_sub_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed 32-bit integers in b from packed 32-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi32 ++FORCE_INLINE __m128i _mm_sub_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Subtract packed 64-bit integers in b from packed 64-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi64 ++FORCE_INLINE __m128i _mm_sub_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vsubq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Subtract packed 8-bit integers in b from packed 8-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi8 ++FORCE_INLINE __m128i _mm_sub_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed double-precision (64-bit) floating-point elements in b from ++// packed double-precision (64-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_sub_pd ++FORCE_INLINE __m128d _mm_sub_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] - db[0]; ++ c[1] = da[1] - db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Subtract the lower double-precision (64-bit) floating-point element in b from ++// the lower double-precision (64-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_sd ++FORCE_INLINE __m128d _mm_sub_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_sub_pd(a, b)); ++} ++ ++// Subtract 64-bit integer b from 64-bit integer a, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_si64 ++FORCE_INLINE __m64 _mm_sub_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vsub_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Subtract packed signed 16-bit integers in b from packed 16-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi16 ++FORCE_INLINE __m128i _mm_subs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed signed 8-bit integers in b from packed 8-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi8 ++FORCE_INLINE __m128i _mm_subs_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed unsigned 16-bit integers in b from packed unsigned 16-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu16 ++FORCE_INLINE __m128i _mm_subs_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqsubq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Subtract packed unsigned 8-bit integers in b from packed unsigned 8-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu8 ++FORCE_INLINE __m128i _mm_subs_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqsubq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++#define _mm_ucomieq_sd _mm_comieq_sd ++#define _mm_ucomige_sd _mm_comige_sd ++#define _mm_ucomigt_sd _mm_comigt_sd ++#define _mm_ucomile_sd _mm_comile_sd ++#define _mm_ucomilt_sd _mm_comilt_sd ++#define _mm_ucomineq_sd _mm_comineq_sd ++ ++// Return vector of type __m128d with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_pd ++FORCE_INLINE __m128d _mm_undefined_pd(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128d a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_pd(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi16 ++FORCE_INLINE __m128i _mm_unpackhi_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip2q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi32 ++FORCE_INLINE __m128i _mm_unpackhi_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip2q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_high_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi64 ++FORCE_INLINE __m128i _mm_unpackhi_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip2q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_h = vget_high_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_h = vget_high_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_h, b_h)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the high half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi8 ++FORCE_INLINE __m128i _mm_unpackhi_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip2q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the high half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_pd ++FORCE_INLINE __m128d _mm_unpackhi_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip2q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_high_s64(vreinterpretq_s64_m128d(a)), ++ vget_high_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi16 ++FORCE_INLINE __m128i _mm_unpacklo_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip1q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi32 ++FORCE_INLINE __m128i _mm_unpacklo_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip1q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_low_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi64 ++FORCE_INLINE __m128i _mm_unpacklo_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip1q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_l = vget_low_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_l = vget_low_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_l, b_l)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi8 ++FORCE_INLINE __m128i _mm_unpacklo_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip1q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_pd ++FORCE_INLINE __m128d _mm_unpacklo_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip1q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_low_s64(vreinterpretq_s64_m128d(a)), ++ vget_low_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Compute the bitwise XOR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_pd ++FORCE_INLINE __m128d _mm_xor_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ veorq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise XOR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_si128 ++FORCE_INLINE __m128i _mm_xor_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ veorq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++/* SSE3 */ ++ ++// Alternatively add and subtract packed double-precision (64-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_addsub_pd ++FORCE_INLINE __m128d _mm_addsub_pd(__m128d a, __m128d b) ++{ ++ _sse2neon_const __m128d mask = _mm_set_pd(1.0f, -1.0f); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vfmaq_f64(vreinterpretq_f64_m128d(a), ++ vreinterpretq_f64_m128d(b), ++ vreinterpretq_f64_m128d(mask))); ++#else ++ return _mm_add_pd(_mm_mul_pd(b, mask), a); ++#endif ++} ++ ++// Alternatively add and subtract packed single-precision (32-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=addsub_ps ++FORCE_INLINE __m128 _mm_addsub_ps(__m128 a, __m128 b) ++{ ++ _sse2neon_const __m128 mask = _mm_setr_ps(-1.0f, 1.0f, -1.0f, 1.0f); ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_FMA) /* VFPv4+ */ ++ return vreinterpretq_m128_f32(vfmaq_f32(vreinterpretq_f32_m128(a), ++ vreinterpretq_f32_m128(mask), ++ vreinterpretq_f32_m128(b))); ++#else ++ return _mm_add_ps(_mm_mul_ps(b, mask), a); ++#endif ++} ++ ++// Horizontally add adjacent pairs of double-precision (64-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pd ++FORCE_INLINE __m128d _mm_hadd_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vpaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[] = {da[0] + da[1], db[0] + db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of single-precision (32-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_ps ++FORCE_INLINE __m128 _mm_hadd_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vpaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vpadd_f32(a10, a32), vpadd_f32(b10, b32))); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of double-precision (64-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pd ++FORCE_INLINE __m128d _mm_hsub_pd(__m128d _a, __m128d _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vuzp1q_f64(a, b), vuzp2q_f64(a, b))); ++#else ++ double *da = (double *) &_a; ++ double *db = (double *) &_b; ++ double c[] = {da[0] - da[1], db[0] - db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of single-precision (32-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_ps ++FORCE_INLINE __m128 _mm_hsub_ps(__m128 _a, __m128 _b) ++{ ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vuzp1q_f32(a, b), vuzp2q_f32(a, b))); ++#else ++ float32x4x2_t c = vuzpq_f32(a, b); ++ return vreinterpretq_m128_f32(vsubq_f32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Load 128-bits of integer data from unaligned memory into dst. This intrinsic ++// may perform better than _mm_loadu_si128 when the data crosses a cache line ++// boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lddqu_si128 ++#define _mm_lddqu_si128 _mm_loadu_si128 ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loaddup_pd ++#define _mm_loaddup_pd _mm_load1_pd ++ ++// Duplicate the low double-precision (64-bit) floating-point element from a, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movedup_pd ++FORCE_INLINE __m128d _mm_movedup_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdupq_laneq_f64(vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_u64( ++ vdupq_n_u64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0))); ++#endif ++} ++ ++// Duplicate odd-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehdup_ps ++FORCE_INLINE __m128 _mm_movehdup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 1, 1, 3, 3)); ++#else ++ float32_t a1 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ float32_t a3 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 3); ++ float ALIGN_STRUCT(16) data[4] = {a1, a1, a3, a3}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Duplicate even-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_moveldup_ps ++FORCE_INLINE __m128 _mm_moveldup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 0, 0, 2, 2)); ++#else ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32_t a2 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 2); ++ float ALIGN_STRUCT(16) data[4] = {a0, a0, a2, a2}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++/* SSSE3 */ ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi16 ++FORCE_INLINE __m128i _mm_abs_epi16(__m128i a) ++{ ++ return vreinterpretq_m128i_s16(vabsq_s16(vreinterpretq_s16_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi32 ++FORCE_INLINE __m128i _mm_abs_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32(vabsq_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi8 ++FORCE_INLINE __m128i _mm_abs_epi8(__m128i a) ++{ ++ return vreinterpretq_m128i_s8(vabsq_s8(vreinterpretq_s8_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi16 ++FORCE_INLINE __m64 _mm_abs_pi16(__m64 a) ++{ ++ return vreinterpret_m64_s16(vabs_s16(vreinterpret_s16_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi32 ++FORCE_INLINE __m64 _mm_abs_pi32(__m64 a) ++{ ++ return vreinterpret_m64_s32(vabs_s32(vreinterpret_s32_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi8 ++FORCE_INLINE __m64 _mm_abs_pi8(__m64 a) ++{ ++ return vreinterpret_m64_s8(vabs_s8(vreinterpret_s8_m64(a))); ++} ++ ++// Concatenate 16-byte blocks in a and b into a 32-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 16 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_epi8 ++#if defined(__GNUC__) && !defined(__clang__) ++#define _mm_alignr_epi8(a, b, imm) \ ++ __extension__({ \ ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); \ ++ uint8x16_t _b = vreinterpretq_u8_m128i(b); \ ++ __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) \ ++ ret = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) \ ++ ret = _mm_srli_si128(a, imm >= 16 ? imm - 16 : 0); \ ++ else \ ++ ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(_b, _a, imm < 16 ? imm : 0)); \ ++ ret; \ ++ }) ++ ++#else ++#define _mm_alignr_epi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, uint8x16_t __a = vreinterpretq_u8_m128i(_a); \ ++ uint8x16_t __b = vreinterpretq_u8_m128i(_b); __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) ret = \ ++ vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) ret = \ ++ _mm_srli_si128(_a, imm >= 16 ? imm - 16 : 0); \ ++ else ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(__b, __a, imm < 16 ? imm : 0)); \ ++ _sse2neon_return(ret);) ++ ++#endif ++ ++// Concatenate 8-byte blocks in a and b into a 16-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 8 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_pi8 ++#define _mm_alignr_pi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m64, a, b, __m64 ret; if (_sse2neon_unlikely((imm) >= 16)) { \ ++ ret = vreinterpret_m64_s8(vdup_n_s8(0)); \ ++ } else { \ ++ uint8x8_t tmp_low; \ ++ uint8x8_t tmp_high; \ ++ if ((imm) >= 8) { \ ++ const int idx = (imm) -8; \ ++ tmp_low = vreinterpret_u8_m64(_a); \ ++ tmp_high = vdup_n_u8(0); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } else { \ ++ const int idx = (imm); \ ++ tmp_low = vreinterpret_u8_m64(_b); \ ++ tmp_high = vreinterpret_u8_m64(_a); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } \ ++ } _sse2neon_return(ret);) ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi16 ++FORCE_INLINE __m128i _mm_hadd_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16(vpaddq_s16(a, b)); ++#else ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(vget_low_s16(a), vget_high_s16(a)), ++ vpadd_s16(vget_low_s16(b), vget_high_s16(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi32 ++FORCE_INLINE __m128i _mm_hadd_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32(vpaddq_s32(a, b)); ++#else ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vpadd_s32(vget_low_s32(a), vget_high_s32(a)), ++ vpadd_s32(vget_low_s32(b), vget_high_s32(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi16 ++FORCE_INLINE __m64 _mm_hadd_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vpadd_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi32 ++FORCE_INLINE __m64 _mm_hadd_pi32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s32( ++ vpadd_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_epi16 ++FORCE_INLINE __m128i _mm_hadds_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ return vreinterpretq_s64_s16( ++ vqaddq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ // Interleave using vshrn/vmovn ++ // [a0|a2|a4|a6|b0|b2|b4|b6] ++ // [a1|a3|a5|a7|b1|b3|b5|b7] ++ int16x8_t ab0246 = vcombine_s16(vmovn_s32(a), vmovn_s32(b)); ++ int16x8_t ab1357 = vcombine_s16(vshrn_n_s32(a, 16), vshrn_n_s32(b, 16)); ++ // Saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(ab0246, ab1357)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_pi16 ++FORCE_INLINE __m64 _mm_hadds_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_s64_s16(vqadd_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t res = vuzp_s16(a, b); ++ return vreinterpret_s64_s16(vqadd_s16(res.val[0], res.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi16 ++FORCE_INLINE __m128i _mm_hsub_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi32 ++FORCE_INLINE __m128i _mm_hsub_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vuzp1q_s32(a, b), vuzp2q_s32(a, b))); ++#else ++ int32x4x2_t c = vuzpq_s32(a, b); ++ return vreinterpretq_m128i_s32(vsubq_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pi16 ++FORCE_INLINE __m64 _mm_hsub_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_hsub_pi32 ++FORCE_INLINE __m64 _mm_hsub_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s32(vsub_s32(vuzp1_s32(a, b), vuzp2_s32(a, b))); ++#else ++ int32x2x2_t c = vuzp_s32(a, b); ++ return vreinterpret_m64_s32(vsub_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_epi16 ++FORCE_INLINE __m128i _mm_hsubs_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vqsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_pi16 ++FORCE_INLINE __m64 _mm_hsubs_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vqsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vqsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, ++// and pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_epi16 ++FORCE_INLINE __m128i _mm_maddubs_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ int16x8_t tl = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_low_u8(a))), ++ vmovl_s8(vget_low_s8(b))); ++ int16x8_t th = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_high_u8(a))), ++ vmovl_s8(vget_high_s8(b))); ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vuzp1q_s16(tl, th), vuzp2q_s16(tl, th))); ++#else ++ // This would be much simpler if x86 would choose to zero extend OR sign ++ // extend, not both. This could probably be optimized better. ++ uint16x8_t a = vreinterpretq_u16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // Zero extend a ++ int16x8_t a_odd = vreinterpretq_s16_u16(vshrq_n_u16(a, 8)); ++ int16x8_t a_even = vreinterpretq_s16_u16(vbicq_u16(a, vdupq_n_u16(0xff00))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x8_t b_even = vshrq_n_s16(vshlq_n_s16(b, 8), 8); ++ int16x8_t b_odd = vshrq_n_s16(b, 8); ++ ++ // multiply ++ int16x8_t prod1 = vmulq_s16(a_even, b_even); ++ int16x8_t prod2 = vmulq_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(prod1, prod2)); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, and ++// pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_pi16 ++FORCE_INLINE __m64 _mm_maddubs_pi16(__m64 _a, __m64 _b) ++{ ++ uint16x4_t a = vreinterpret_u16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // Zero extend a ++ int16x4_t a_odd = vreinterpret_s16_u16(vshr_n_u16(a, 8)); ++ int16x4_t a_even = vreinterpret_s16_u16(vand_u16(a, vdup_n_u16(0xff))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x4_t b_even = vshr_n_s16(vshl_n_s16(b, 8), 8); ++ int16x4_t b_odd = vshr_n_s16(b, 8); ++ ++ // multiply ++ int16x4_t prod1 = vmul_s16(a_even, b_even); ++ int16x4_t prod2 = vmul_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpret_m64_s16(vqadd_s16(prod1, prod2)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Shift right by 15 bits while rounding up, and store ++// the packed 16-bit integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_epi16 ++FORCE_INLINE __m128i _mm_mulhrs_epi16(__m128i a, __m128i b) ++{ ++ // Has issues due to saturation ++ // return vreinterpretq_m128i_s16(vqrdmulhq_s16(a, b)); ++ ++ // Multiply ++ int32x4_t mul_lo = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int32x4_t mul_hi = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ // Rounding narrowing shift right ++ // narrow = (int16_t)((mul + 16384) >> 15); ++ int16x4_t narrow_lo = vrshrn_n_s32(mul_lo, 15); ++ int16x4_t narrow_hi = vrshrn_n_s32(mul_hi, 15); ++ ++ // Join together ++ return vreinterpretq_m128i_s16(vcombine_s16(narrow_lo, narrow_hi)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Truncate each intermediate integer to the 18 most ++// significant bits, round by adding 1, and store bits [16:1] to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_pi16 ++FORCE_INLINE __m64 _mm_mulhrs_pi16(__m64 a, __m64 b) ++{ ++ int32x4_t mul_extend = ++ vmull_s16((vreinterpret_s16_m64(a)), (vreinterpret_s16_m64(b))); ++ ++ // Rounding narrowing shift right ++ return vreinterpret_m64_s16(vrshrn_n_s32(mul_extend, 15)); ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi8 ++FORCE_INLINE __m128i _mm_shuffle_epi8(__m128i a, __m128i b) ++{ ++ int8x16_t tbl = vreinterpretq_s8_m128i(a); // input a ++ uint8x16_t idx = vreinterpretq_u8_m128i(b); // input b ++ uint8x16_t idx_masked = ++ vandq_u8(idx, vdupq_n_u8(0x8F)); // avoid using meaningless bits ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8(vqtbl1q_s8(tbl, idx_masked)); ++#elif defined(__GNUC__) ++ int8x16_t ret; ++ // %e and %f represent the even and odd D registers ++ // respectively. ++ __asm__ __volatile__( ++ "vtbl.8 %e[ret], {%e[tbl], %f[tbl]}, %e[idx]\n" ++ "vtbl.8 %f[ret], {%e[tbl], %f[tbl]}, %f[idx]\n" ++ : [ret] "=&w"(ret) ++ : [tbl] "w"(tbl), [idx] "w"(idx_masked)); ++ return vreinterpretq_m128i_s8(ret); ++#else ++ // use this line if testing on aarch64 ++ int8x8x2_t a_split = {vget_low_s8(tbl), vget_high_s8(tbl)}; ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vtbl2_s8(a_split, vget_low_u8(idx_masked)), ++ vtbl2_s8(a_split, vget_high_u8(idx_masked)))); ++#endif ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi8 ++FORCE_INLINE __m64 _mm_shuffle_pi8(__m64 a, __m64 b) ++{ ++ const int8x8_t controlMask = ++ vand_s8(vreinterpret_s8_m64(b), vdup_n_s8((int8_t) (0x1 << 7 | 0x07))); ++ int8x8_t res = vtbl1_s8(vreinterpret_s8_m64(a), controlMask); ++ return vreinterpret_m64_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed ++// 16-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi16 ++FORCE_INLINE __m128i _mm_sign_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x8_t ltMask = vreinterpretq_u16_s16(vshrq_n_s16(b, 15)); ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqzq_s16(b)); ++#else ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqq_s16(b, vdupq_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s16(a) equals to negative ++ // 'a') based on ltMask ++ int16x8_t masked = vbslq_s16(ltMask, vnegq_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x8_t res = vbicq_s16(masked, zeroMask); ++ return vreinterpretq_m128i_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed ++// 32-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi32 ++FORCE_INLINE __m128i _mm_sign_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x4_t ltMask = vreinterpretq_u32_s32(vshrq_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqzq_s32(b)); ++#else ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqq_s32(b, vdupq_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s32(a) equals to negative ++ // 'a') based on ltMask ++ int32x4_t masked = vbslq_s32(ltMask, vnegq_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x4_t res = vbicq_s32(masked, zeroMask); ++ return vreinterpretq_m128i_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed ++// 8-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi8 ++FORCE_INLINE __m128i _mm_sign_epi8(__m128i _a, __m128i _b) ++{ ++ int8x16_t a = vreinterpretq_s8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x16_t ltMask = vreinterpretq_u8_s8(vshrq_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqzq_s8(b)); ++#else ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqq_s8(b, vdupq_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s8(a) return negative 'a') ++ // based on ltMask ++ int8x16_t masked = vbslq_s8(ltMask, vnegq_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x16_t res = vbicq_s8(masked, zeroMask); ++ ++ return vreinterpretq_m128i_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed 16-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi16 ++FORCE_INLINE __m64 _mm_sign_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x4_t ltMask = vreinterpret_u16_s16(vshr_n_s16(b, 15)); ++ ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceqz_s16(b)); ++#else ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceq_s16(b, vdup_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s16(a) return negative 'a') ++ // based on ltMask ++ int16x4_t masked = vbsl_s16(ltMask, vneg_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x4_t res = vbic_s16(masked, zeroMask); ++ ++ return vreinterpret_m64_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed 32-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi32 ++FORCE_INLINE __m64 _mm_sign_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x2_t ltMask = vreinterpret_u32_s32(vshr_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceqz_s32(b)); ++#else ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceq_s32(b, vdup_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s32(a) return negative 'a') ++ // based on ltMask ++ int32x2_t masked = vbsl_s32(ltMask, vneg_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x2_t res = vbic_s32(masked, zeroMask); ++ ++ return vreinterpret_m64_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed 8-bit integer ++// in b is negative, and store the results in dst. Element in dst are zeroed out ++// when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi8 ++FORCE_INLINE __m64 _mm_sign_pi8(__m64 _a, __m64 _b) ++{ ++ int8x8_t a = vreinterpret_s8_m64(_a); ++ int8x8_t b = vreinterpret_s8_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x8_t ltMask = vreinterpret_u8_s8(vshr_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceqz_s8(b)); ++#else ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceq_s8(b, vdup_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s8(a) return negative 'a') ++ // based on ltMask ++ int8x8_t masked = vbsl_s8(ltMask, vneg_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x8_t res = vbic_s8(masked, zeroMask); ++ ++ return vreinterpret_m64_s8(res); ++} ++ ++/* SSE4.1 */ ++ ++// Blend packed 16-bit integers from a and b using control mask imm8, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_epi16 ++// FORCE_INLINE __m128i _mm_blend_epi16(__m128i a, __m128i b, ++// __constrange(0,255) int imm) ++#define _mm_blend_epi16(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, \ ++ const uint16_t _mask[8] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 1)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 2)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 3)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 4)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 5)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 6)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 7)) ? (uint16_t) -1 : 0x0); \ ++ uint16x8_t _mask_vec = vld1q_u16(_mask); \ ++ uint16x8_t __a = vreinterpretq_u16_m128i(_a); \ ++ uint16x8_t __b = vreinterpretq_u16_m128i(_b); _sse2neon_return( \ ++ vreinterpretq_m128i_u16(vbslq_u16(_mask_vec, __b, __a)));) ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using control mask imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_pd ++#define _mm_blend_pd(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128d, a, b, \ ++ const uint64_t _mask[2] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? ~UINT64_C(0) : UINT64_C(0), \ ++ ((imm) & (1 << 1)) ? ~UINT64_C(0) : UINT64_C(0)); \ ++ uint64x2_t _mask_vec = vld1q_u64(_mask); \ ++ uint64x2_t __a = vreinterpretq_u64_m128d(_a); \ ++ uint64x2_t __b = vreinterpretq_u64_m128d(_b); _sse2neon_return( \ ++ vreinterpretq_m128d_u64(vbslq_u64(_mask_vec, __b, __a)));) ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_ps ++FORCE_INLINE __m128 _mm_blend_ps(__m128 _a, __m128 _b, const char imm8) ++{ ++ const uint32_t ALIGN_STRUCT(16) ++ data[4] = {((imm8) & (1 << 0)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0}; ++ uint32x4_t mask = vld1q_u32(data); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Blend packed 8-bit integers from a and b using mask, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_epi8 ++FORCE_INLINE __m128i _mm_blendv_epi8(__m128i _a, __m128i _b, __m128i _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint8x16_t mask = ++ vreinterpretq_u8_s8(vshrq_n_s8(vreinterpretq_s8_m128i(_mask), 7)); ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ uint8x16_t b = vreinterpretq_u8_m128i(_b); ++ return vreinterpretq_m128i_u8(vbslq_u8(mask, b, a)); ++} ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_pd ++FORCE_INLINE __m128d _mm_blendv_pd(__m128d _a, __m128d _b, __m128d _mask) ++{ ++ uint64x2_t mask = ++ vreinterpretq_u64_s64(vshrq_n_s64(vreinterpretq_s64_m128d(_mask), 63)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64(vbslq_f64(mask, b, a)); ++#else ++ uint64x2_t a = vreinterpretq_u64_m128d(_a); ++ uint64x2_t b = vreinterpretq_u64_m128d(_b); ++ return vreinterpretq_m128d_u64(vbslq_u64(mask, b, a)); ++#endif ++} ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_ps ++FORCE_INLINE __m128 _mm_blendv_ps(__m128 _a, __m128 _b, __m128 _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint32x4_t mask = ++ vreinterpretq_u32_s32(vshrq_n_s32(vreinterpretq_s32_m128(_mask), 31)); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a up ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_pd ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndpq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(ceil(f[1]), ceil(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a up to ++// an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ps ++FORCE_INLINE __m128 _mm_ceil_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndpq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ceilf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b up to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_sd ++FORCE_INLINE __m128d _mm_ceil_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_ceil_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b up to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ss ++FORCE_INLINE __m128 _mm_ceil_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_ceil_ps(b)); ++} ++ ++// Compare packed 64-bit integers in a and b for equality, and store the results ++// in dst ++FORCE_INLINE __m128i _mm_cmpeq_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vceqq_u64(vreinterpretq_u64_m128i(a), vreinterpretq_u64_m128i(b))); ++#else ++ // ARMv7 lacks vceqq_u64 ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128i_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Sign extend packed 16-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi32 ++FORCE_INLINE __m128i _mm_cvtepi16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vmovl_s16(vget_low_s16(vreinterpretq_s16_m128i(a)))); ++} ++ ++// Sign extend packed 16-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi64 ++FORCE_INLINE __m128i _mm_cvtepi16_epi64(__m128i a) ++{ ++ int16x8_t s16x8 = vreinterpretq_s16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Sign extend packed 32-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_epi64 ++FORCE_INLINE __m128i _mm_cvtepi32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a)))); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 16-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi16 ++FORCE_INLINE __m128i _mm_cvtepi8_epi16(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ return vreinterpretq_m128i_s16(s16x8); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi32 ++FORCE_INLINE __m128i _mm_cvtepi8_epi32(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_s32(s32x4); ++} ++ ++// Sign extend packed 8-bit integers in the low 8 bytes of a to packed 64-bit ++// integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi64 ++FORCE_INLINE __m128i _mm_cvtepi8_epi64(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi32 ++FORCE_INLINE __m128i _mm_cvtepu16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_u32( ++ vmovl_u16(vget_low_u16(vreinterpretq_u16_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi64 ++FORCE_INLINE __m128i _mm_cvtepu16_epi64(__m128i a) ++{ ++ uint16x8_t u16x8 = vreinterpretq_u16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Zero extend packed unsigned 32-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu32_epi64 ++FORCE_INLINE __m128i _mm_cvtepu32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_u64( ++ vmovl_u32(vget_low_u32(vreinterpretq_u32_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 16-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi16 ++FORCE_INLINE __m128i _mm_cvtepu8_epi16(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx HGFE DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0H0G 0F0E 0D0C 0B0A */ ++ return vreinterpretq_m128i_u16(u16x8); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi32 ++FORCE_INLINE __m128i _mm_cvtepu8_epi32(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_u32(u32x4); ++} ++ ++// Zero extend packed unsigned 8-bit integers in the low 8 bytes of a to packed ++// 64-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi64 ++FORCE_INLINE __m128i _mm_cvtepu8_epi64(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Conditionally multiply the packed double-precision (64-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, and ++// conditionally store the sum in dst using the low 4 bits of imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_pd ++FORCE_INLINE __m128d _mm_dp_pd(__m128d a, __m128d b, const int imm) ++{ ++ // Generate mask value from constant immediate bit value ++ const int64_t bit0Mask = imm & 0x01 ? UINT64_MAX : 0; ++ const int64_t bit1Mask = imm & 0x02 ? UINT64_MAX : 0; ++#if !SSE2NEON_PRECISE_DP ++ const int64_t bit4Mask = imm & 0x10 ? UINT64_MAX : 0; ++ const int64_t bit5Mask = imm & 0x20 ? UINT64_MAX : 0; ++#endif ++ // Conditional multiplication ++#if !SSE2NEON_PRECISE_DP ++ __m128d mul = _mm_mul_pd(a, b); ++ const __m128d mulMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit5Mask, bit4Mask)); ++ __m128d tmp = _mm_and_pd(mul, mulMask); ++#else ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double d0 = (imm & 0x10) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 0) ++ : 0; ++ double d1 = (imm & 0x20) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 1) ++ : 0; ++#else ++ double d0 = (imm & 0x10) ? ((double *) &a)[0] * ((double *) &b)[0] : 0; ++ double d1 = (imm & 0x20) ? ((double *) &a)[1] * ((double *) &b)[1] : 0; ++#endif ++ __m128d tmp = _mm_set_pd(d1, d0); ++#endif ++ // Sum the products ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double sum = vpaddd_f64(vreinterpretq_f64_m128d(tmp)); ++#else ++ double sum = *((double *) &tmp) + *(((double *) &tmp) + 1); ++#endif ++ // Conditionally store the sum ++ const __m128d sumMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit1Mask, bit0Mask)); ++ __m128d res = _mm_and_pd(_mm_set_pd1(sum), sumMask); ++ return res; ++} ++ ++// Conditionally multiply the packed single-precision (32-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, ++// and conditionally store the sum in dst using the low 4 bits of imm. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_ps ++FORCE_INLINE __m128 _mm_dp_ps(__m128 a, __m128 b, const int imm) ++{ ++ float32x4_t elementwise_prod = _mm_mul_ps(a, b); ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ /* shortcuts */ ++ if (imm == 0xFF) { ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++ ++ if ((imm & 0x0F) == 0x0F) { ++ if (!(imm & (1 << 4))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 0); ++ if (!(imm & (1 << 5))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 1); ++ if (!(imm & (1 << 6))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 2); ++ if (!(imm & (1 << 7))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 3); ++ ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++#endif ++ ++ float s = 0.0f; ++ ++ if (imm & (1 << 4)) ++ s += vgetq_lane_f32(elementwise_prod, 0); ++ if (imm & (1 << 5)) ++ s += vgetq_lane_f32(elementwise_prod, 1); ++ if (imm & (1 << 6)) ++ s += vgetq_lane_f32(elementwise_prod, 2); ++ if (imm & (1 << 7)) ++ s += vgetq_lane_f32(elementwise_prod, 3); ++ ++ const float32_t res[4] = { ++ (imm & 0x1) ? s : 0.0f, ++ (imm & 0x2) ? s : 0.0f, ++ (imm & 0x4) ? s : 0.0f, ++ (imm & 0x8) ? s : 0.0f, ++ }; ++ return vreinterpretq_m128_f32(vld1q_f32(res)); ++} ++ ++// Extract a 32-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi32 ++// FORCE_INLINE int _mm_extract_epi32(__m128i a, __constrange(0,4) int imm) ++#define _mm_extract_epi32(a, imm) \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)) ++ ++// Extract a 64-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi64 ++// FORCE_INLINE __int64 _mm_extract_epi64(__m128i a, __constrange(0,2) int imm) ++#define _mm_extract_epi64(a, imm) \ ++ vgetq_lane_s64(vreinterpretq_s64_m128i(a), (imm)) ++ ++// Extract an 8-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. FORCE_INLINE int _mm_extract_epi8(__m128i a, ++// __constrange(0,16) int imm) ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi8 ++#define _mm_extract_epi8(a, imm) vgetq_lane_u8(vreinterpretq_u8_m128i(a), (imm)) ++ ++// Extracts the selected single-precision (32-bit) floating-point from a. ++// FORCE_INLINE int _mm_extract_ps(__m128 a, __constrange(0,4) int imm) ++#define _mm_extract_ps(a, imm) vgetq_lane_s32(vreinterpretq_s32_m128(a), (imm)) ++ ++// Round the packed double-precision (64-bit) floating-point elements in a down ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_pd ++FORCE_INLINE __m128d _mm_floor_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndmq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(floor(f[1]), floor(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a down ++// to an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ps ++FORCE_INLINE __m128 _mm_floor_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndmq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(floorf(f[3]), floorf(f[2]), floorf(f[1]), floorf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b down to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_sd ++FORCE_INLINE __m128d _mm_floor_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_floor_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b down to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ss ++FORCE_INLINE __m128 _mm_floor_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_floor_ps(b)); ++} ++ ++// Copy a to dst, and insert the 32-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi32 ++// FORCE_INLINE __m128i _mm_insert_epi32(__m128i a, int b, ++// __constrange(0,4) int imm) ++#define _mm_insert_epi32(a, b, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vsetq_lane_s32((b), vreinterpretq_s32_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the 64-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi64 ++// FORCE_INLINE __m128i _mm_insert_epi64(__m128i a, __int64 b, ++// __constrange(0,2) int imm) ++#define _mm_insert_epi64(a, b, imm) \ ++ vreinterpretq_m128i_s64( \ ++ vsetq_lane_s64((b), vreinterpretq_s64_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the lower 8-bit integer from i into dst at the ++// location specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi8 ++// FORCE_INLINE __m128i _mm_insert_epi8(__m128i a, int b, ++// __constrange(0,16) int imm) ++#define _mm_insert_epi8(a, b, imm) \ ++ vreinterpretq_m128i_s8(vsetq_lane_s8((b), vreinterpretq_s8_m128i(a), (imm))) ++ ++// Copy a to tmp, then insert a single-precision (32-bit) floating-point ++// element from b into tmp using the control in imm8. Store tmp to dst using ++// the mask in imm8 (elements are zeroed out when the corresponding bit is set). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=insert_ps ++#define _mm_insert_ps(a, b, imm8) \ ++ _sse2neon_define2( \ ++ __m128, a, b, \ ++ float32x4_t tmp1 = \ ++ vsetq_lane_f32(vgetq_lane_f32(_b, (imm8 >> 6) & 0x3), \ ++ vreinterpretq_f32_m128(_a), 0); \ ++ float32x4_t tmp2 = \ ++ vsetq_lane_f32(vgetq_lane_f32(tmp1, 0), \ ++ vreinterpretq_f32_m128(_a), ((imm8 >> 4) & 0x3)); \ ++ const uint32_t data[4] = \ ++ _sse2neon_init(((imm8) & (1 << 0)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0); \ ++ uint32x4_t mask = vld1q_u32(data); \ ++ float32x4_t all_zeros = vdupq_n_f32(0); \ ++ \ ++ _sse2neon_return(vreinterpretq_m128_f32( \ ++ vbslq_f32(mask, all_zeros, vreinterpretq_f32_m128(tmp2))));) ++ ++// Compare packed signed 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi32 ++FORCE_INLINE __m128i _mm_max_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmaxq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi8 ++FORCE_INLINE __m128i _mm_max_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vmaxq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu16 ++FORCE_INLINE __m128i _mm_max_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vmaxq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_max_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vmaxq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi32 ++FORCE_INLINE __m128i _mm_min_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vminq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi8 ++FORCE_INLINE __m128i _mm_min_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vminq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu16 ++FORCE_INLINE __m128i _mm_min_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vminq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_min_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vminq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Horizontally compute the minimum amongst the packed unsigned 16-bit integers ++// in a, store the minimum and index in dst, and zero the remaining bits in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_minpos_epu16 ++FORCE_INLINE __m128i _mm_minpos_epu16(__m128i a) ++{ ++ __m128i dst; ++ uint16_t min, idx = 0; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Find the minimum value ++ min = vminvq_u16(vreinterpretq_u16_m128i(a)); ++ ++ // Get the index of the minimum value ++ static const uint16_t idxv[] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint16x8_t minv = vdupq_n_u16(min); ++ uint16x8_t cmeq = vceqq_u16(minv, vreinterpretq_u16_m128i(a)); ++ idx = vminvq_u16(vornq_u16(vld1q_u16(idxv), cmeq)); ++#else ++ // Find the minimum value ++ __m64 tmp; ++ tmp = vreinterpret_m64_u16( ++ vmin_u16(vget_low_u16(vreinterpretq_u16_m128i(a)), ++ vget_high_u16(vreinterpretq_u16_m128i(a)))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ min = vget_lane_u16(vreinterpret_u16_m64(tmp), 0); ++ // Get the index of the minimum value ++ int i; ++ for (i = 0; i < 8; i++) { ++ if (min == vgetq_lane_u16(vreinterpretq_u16_m128i(a), 0)) { ++ idx = (uint16_t) i; ++ break; ++ } ++ a = _mm_srli_si128(a, 2); ++ } ++#endif ++ // Generate result ++ dst = _mm_setzero_si128(); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(min, vreinterpretq_u16_m128i(dst), 0)); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(idx, vreinterpretq_u16_m128i(dst), 1)); ++ return dst; ++} ++ ++// Compute the sum of absolute differences (SADs) of quadruplets of unsigned ++// 8-bit integers in a compared to those in b, and store the 16-bit results in ++// dst. Eight SADs are performed using one quadruplet from b and eight ++// quadruplets from a. One quadruplet is selected from b starting at on the ++// offset specified in imm8. Eight quadruplets are formed from sequential 8-bit ++// integers selected from a starting at the offset specified in imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mpsadbw_epu8 ++FORCE_INLINE __m128i _mm_mpsadbw_epu8(__m128i a, __m128i b, const int imm) ++{ ++ uint8x16_t _a, _b; ++ ++ switch (imm & 0x4) { ++ case 0: ++ // do nothing ++ _a = vreinterpretq_u8_m128i(a); ++ break; ++ case 4: ++ _a = vreinterpretq_u8_u32(vextq_u32(vreinterpretq_u32_m128i(a), ++ vreinterpretq_u32_m128i(a), 1)); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ switch (imm & 0x3) { ++ case 0: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 0))); ++ break; ++ case 1: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 1))); ++ break; ++ case 2: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 2))); ++ break; ++ case 3: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 3))); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ int16x8_t c04, c15, c26, c37; ++ uint8x8_t low_b = vget_low_u8(_b); ++ c04 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a), low_b)); ++ uint8x16_t _a_1 = vextq_u8(_a, _a, 1); ++ c15 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_1), low_b)); ++ uint8x16_t _a_2 = vextq_u8(_a, _a, 2); ++ c26 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_2), low_b)); ++ uint8x16_t _a_3 = vextq_u8(_a, _a, 3); ++ c37 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_3), low_b)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // |0|4|2|6| ++ c04 = vpaddq_s16(c04, c26); ++ // |1|5|3|7| ++ c15 = vpaddq_s16(c15, c37); ++ ++ int32x4_t trn1_c = ++ vtrn1q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ int32x4_t trn2_c = ++ vtrn2q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ return vreinterpretq_m128i_s16(vpaddq_s16(vreinterpretq_s16_s32(trn1_c), ++ vreinterpretq_s16_s32(trn2_c))); ++#else ++ int16x4_t c01, c23, c45, c67; ++ c01 = vpadd_s16(vget_low_s16(c04), vget_low_s16(c15)); ++ c23 = vpadd_s16(vget_low_s16(c26), vget_low_s16(c37)); ++ c45 = vpadd_s16(vget_high_s16(c04), vget_high_s16(c15)); ++ c67 = vpadd_s16(vget_high_s16(c26), vget_high_s16(c37)); ++ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(c01, c23), vpadd_s16(c45, c67))); ++#endif ++} ++ ++// Multiply the low signed 32-bit integers from each packed 64-bit element in ++// a and b, and store the signed 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epi32 ++FORCE_INLINE __m128i _mm_mul_epi32(__m128i a, __m128i b) ++{ ++ // vmull_s32 upcasts instead of masking, so we downcast. ++ int32x2_t a_lo = vmovn_s64(vreinterpretq_s64_m128i(a)); ++ int32x2_t b_lo = vmovn_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vmull_s32(a_lo, b_lo)); ++} ++ ++// Multiply the packed 32-bit integers in a and b, producing intermediate 64-bit ++// integers, and store the low 32 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi32 ++FORCE_INLINE __m128i _mm_mullo_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmulq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi32 ++FORCE_INLINE __m128i _mm_packus_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcombine_u16(vqmovun_s32(vreinterpretq_s32_m128i(a)), ++ vqmovun_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_pd ++FORCE_INLINE __m128d _mm_round_pd(__m128d a, int rounding) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndnq_f64(vreinterpretq_f64_m128d(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_pd(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_pd(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndq_f64(vreinterpretq_f64_m128d(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128d_f64(vrndiq_f64(vreinterpretq_f64_m128d(a))); ++ } ++#else ++ double *v_double = (double *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ double res[2], tmp; ++ for (int i = 0; i < 2; i++) { ++ tmp = (v_double[i] < 0) ? -v_double[i] : v_double[i]; ++ double roundDown = floor(tmp); // Round down value ++ double roundUp = ceil(tmp); // Round up value ++ double diffDown = tmp - roundDown; ++ double diffUp = roundUp - tmp; ++ if (diffDown < diffUp) { ++ /* If it's closer to the round down value, then use it */ ++ res[i] = roundDown; ++ } else if (diffDown > diffUp) { ++ /* If it's closer to the round up value, then use it */ ++ res[i] = roundUp; ++ } else { ++ /* If it's equidistant between round up and round down value, ++ * pick the one which is an even number */ ++ double half = roundDown / 2; ++ if (half != floor(half)) { ++ /* If the round down value is odd, return the round up value ++ */ ++ res[i] = roundUp; ++ } else { ++ /* If the round up value is odd, return the round down value ++ */ ++ res[i] = roundDown; ++ } ++ } ++ res[i] = (v_double[i] < 0) ? -res[i] : res[i]; ++ } ++ return _mm_set_pd(res[1], res[0]); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_pd(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_pd(a); ++ } ++ return _mm_set_pd(v_double[1] > 0 ? floor(v_double[1]) : ceil(v_double[1]), ++ v_double[0] > 0 ? floor(v_double[0]) : ceil(v_double[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed single-precision ++// floating-point elements in dst. ++// software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_round_ps ++FORCE_INLINE __m128 _mm_round_ps(__m128 a, int rounding) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndnq_f32(vreinterpretq_f32_m128(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_ps(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_ps(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndq_f32(vreinterpretq_f32_m128(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128_f32(vrndiq_f32(vreinterpretq_f32_m128(a))); ++ } ++#else ++ float *v_float = (float *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vbslq_s32(is_delta_half, r_even, r_normal))); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_ps(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_ps(a); ++ } ++ return _mm_set_ps(v_float[3] > 0 ? floorf(v_float[3]) : ceilf(v_float[3]), ++ v_float[2] > 0 ? floorf(v_float[2]) : ceilf(v_float[2]), ++ v_float[1] > 0 ? floorf(v_float[1]) : ceilf(v_float[1]), ++ v_float[0] > 0 ? floorf(v_float[0]) : ceilf(v_float[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b using ++// the rounding parameter, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_sd ++FORCE_INLINE __m128d _mm_round_sd(__m128d a, __m128d b, int rounding) ++{ ++ return _mm_move_sd(a, _mm_round_pd(b, rounding)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b using ++// the rounding parameter, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. Rounding is done according to the ++// rounding[3:0] parameter, which can be one of: ++// (_MM_FROUND_TO_NEAREST_INT |_MM_FROUND_NO_EXC) // round to nearest, and ++// suppress exceptions ++// (_MM_FROUND_TO_NEG_INF |_MM_FROUND_NO_EXC) // round down, and ++// suppress exceptions ++// (_MM_FROUND_TO_POS_INF |_MM_FROUND_NO_EXC) // round up, and suppress ++// exceptions ++// (_MM_FROUND_TO_ZERO |_MM_FROUND_NO_EXC) // truncate, and suppress ++// exceptions _MM_FROUND_CUR_DIRECTION // use MXCSR.RC; see ++// _MM_SET_ROUNDING_MODE ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_ss ++FORCE_INLINE __m128 _mm_round_ss(__m128 a, __m128 b, int rounding) ++{ ++ return _mm_move_ss(a, _mm_round_ps(b, rounding)); ++} ++ ++// Load 128-bits of integer data from memory into dst using a non-temporal ++// memory hint. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_load_si128 ++FORCE_INLINE __m128i _mm_stream_load_si128(__m128i *p) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ return __builtin_nontemporal_load(p); ++#else ++ return vreinterpretq_m128i_s64(vld1q_s64((int64_t *) p)); ++#endif ++} ++ ++// Compute the bitwise NOT of a and then AND with a 128-bit vector containing ++// all 1's, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_ones ++FORCE_INLINE int _mm_test_all_ones(__m128i a) ++{ ++ return (uint64_t) (vgetq_lane_s64(a, 0) & vgetq_lane_s64(a, 1)) == ++ ~(uint64_t) 0; ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_zeros ++FORCE_INLINE int _mm_test_all_zeros(__m128i a, __m128i mask) ++{ ++ int64x2_t a_and_mask = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(mask)); ++ return !(vgetq_lane_s64(a_and_mask, 0) | vgetq_lane_s64(a_and_mask, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute ++// the bitwise NOT of a and then AND with mask, and set CF to 1 if the result is ++// zero, otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_test_mix_ones_zero ++// Note: Argument names may be wrong in the Intel intrinsics guide. ++FORCE_INLINE int _mm_test_mix_ones_zeros(__m128i a, __m128i mask) ++{ ++ uint64x2_t v = vreinterpretq_u64_m128i(a); ++ uint64x2_t m = vreinterpretq_u64_m128i(mask); ++ ++ // find ones (set-bits) and zeros (clear-bits) under clip mask ++ uint64x2_t ones = vandq_u64(m, v); ++ uint64x2_t zeros = vbicq_u64(m, v); ++ ++ // If both 128-bit variables are populated (non-zero) then return 1. ++ // For comparision purposes, first compact each var down to 32-bits. ++ uint32x2_t reduced = vpmax_u32(vqmovn_u64(ones), vqmovn_u64(zeros)); ++ ++ // if folding minimum is non-zero then both vars must be non-zero ++ return (vget_lane_u32(vpmin_u32(reduced, reduced), 0) != 0); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the CF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testc_si128 ++FORCE_INLINE int _mm_testc_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vbicq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testnzc_si128 ++#define _mm_testnzc_si128(a, b) _mm_test_mix_ones_zeros(a, b) ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the ZF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testz_si128 ++FORCE_INLINE int _mm_testz_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++/* SSE4.2 */ ++ ++static const uint16_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask16b[8] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++static const uint8_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask8b[16] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++ ++/* specify the source data format */ ++#define _SIDD_UBYTE_OPS 0x00 /* unsigned 8-bit characters */ ++#define _SIDD_UWORD_OPS 0x01 /* unsigned 16-bit characters */ ++#define _SIDD_SBYTE_OPS 0x02 /* signed 8-bit characters */ ++#define _SIDD_SWORD_OPS 0x03 /* signed 16-bit characters */ ++ ++/* specify the comparison operation */ ++#define _SIDD_CMP_EQUAL_ANY 0x00 /* compare equal any: strchr */ ++#define _SIDD_CMP_RANGES 0x04 /* compare ranges */ ++#define _SIDD_CMP_EQUAL_EACH 0x08 /* compare equal each: strcmp */ ++#define _SIDD_CMP_EQUAL_ORDERED 0x0C /* compare equal ordered */ ++ ++/* specify the polarity */ ++#define _SIDD_POSITIVE_POLARITY 0x00 ++#define _SIDD_MASKED_POSITIVE_POLARITY 0x20 ++#define _SIDD_NEGATIVE_POLARITY 0x10 /* negate results */ ++#define _SIDD_MASKED_NEGATIVE_POLARITY \ ++ 0x30 /* negate results only before end of string */ ++ ++/* specify the output selection in _mm_cmpXstri */ ++#define _SIDD_LEAST_SIGNIFICANT 0x00 ++#define _SIDD_MOST_SIGNIFICANT 0x40 ++ ++/* specify the output selection in _mm_cmpXstrm */ ++#define _SIDD_BIT_MASK 0x00 ++#define _SIDD_UNIT_MASK 0x40 ++ ++/* Pattern Matching for C macros. ++ * https://github.com/pfultz2/Cloak/wiki/C-Preprocessor-tricks,-tips,-and-idioms ++ */ ++ ++/* catenate */ ++#define SSE2NEON_PRIMITIVE_CAT(a, ...) a##__VA_ARGS__ ++#define SSE2NEON_CAT(a, b) SSE2NEON_PRIMITIVE_CAT(a, b) ++ ++#define SSE2NEON_IIF(c) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_IIF_, c) ++/* run the 2nd parameter */ ++#define SSE2NEON_IIF_0(t, ...) __VA_ARGS__ ++/* run the 1st parameter */ ++#define SSE2NEON_IIF_1(t, ...) t ++ ++#define SSE2NEON_COMPL(b) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_COMPL_, b) ++#define SSE2NEON_COMPL_0 1 ++#define SSE2NEON_COMPL_1 0 ++ ++#define SSE2NEON_DEC(x) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_DEC_, x) ++#define SSE2NEON_DEC_1 0 ++#define SSE2NEON_DEC_2 1 ++#define SSE2NEON_DEC_3 2 ++#define SSE2NEON_DEC_4 3 ++#define SSE2NEON_DEC_5 4 ++#define SSE2NEON_DEC_6 5 ++#define SSE2NEON_DEC_7 6 ++#define SSE2NEON_DEC_8 7 ++#define SSE2NEON_DEC_9 8 ++#define SSE2NEON_DEC_10 9 ++#define SSE2NEON_DEC_11 10 ++#define SSE2NEON_DEC_12 11 ++#define SSE2NEON_DEC_13 12 ++#define SSE2NEON_DEC_14 13 ++#define SSE2NEON_DEC_15 14 ++#define SSE2NEON_DEC_16 15 ++ ++/* detection */ ++#define SSE2NEON_CHECK_N(x, n, ...) n ++#define SSE2NEON_CHECK(...) SSE2NEON_CHECK_N(__VA_ARGS__, 0, ) ++#define SSE2NEON_PROBE(x) x, 1, ++ ++#define SSE2NEON_NOT(x) SSE2NEON_CHECK(SSE2NEON_PRIMITIVE_CAT(SSE2NEON_NOT_, x)) ++#define SSE2NEON_NOT_0 SSE2NEON_PROBE(~) ++ ++#define SSE2NEON_BOOL(x) SSE2NEON_COMPL(SSE2NEON_NOT(x)) ++#define SSE2NEON_IF(c) SSE2NEON_IIF(SSE2NEON_BOOL(c)) ++ ++#define SSE2NEON_EAT(...) ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++#define SSE2NEON_WHEN(c) SSE2NEON_IF(c)(SSE2NEON_EXPAND, SSE2NEON_EAT) ++ ++/* recursion */ ++/* deferred expression */ ++#define SSE2NEON_EMPTY() ++#define SSE2NEON_DEFER(id) id SSE2NEON_EMPTY() ++#define SSE2NEON_OBSTRUCT(...) __VA_ARGS__ SSE2NEON_DEFER(SSE2NEON_EMPTY)() ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++ ++#define SSE2NEON_EVAL(...) \ ++ SSE2NEON_EVAL1(SSE2NEON_EVAL1(SSE2NEON_EVAL1(__VA_ARGS__))) ++#define SSE2NEON_EVAL1(...) \ ++ SSE2NEON_EVAL2(SSE2NEON_EVAL2(SSE2NEON_EVAL2(__VA_ARGS__))) ++#define SSE2NEON_EVAL2(...) \ ++ SSE2NEON_EVAL3(SSE2NEON_EVAL3(SSE2NEON_EVAL3(__VA_ARGS__))) ++#define SSE2NEON_EVAL3(...) __VA_ARGS__ ++ ++#define SSE2NEON_REPEAT(count, macro, ...) \ ++ SSE2NEON_WHEN(count) \ ++ (SSE2NEON_OBSTRUCT(SSE2NEON_REPEAT_INDIRECT)()( \ ++ SSE2NEON_DEC(count), macro, \ ++ __VA_ARGS__) SSE2NEON_OBSTRUCT(macro)(SSE2NEON_DEC(count), \ ++ __VA_ARGS__)) ++#define SSE2NEON_REPEAT_INDIRECT() SSE2NEON_REPEAT ++ ++#define SSE2NEON_SIZE_OF_byte 8 ++#define SSE2NEON_NUMBER_OF_LANES_byte 16 ++#define SSE2NEON_SIZE_OF_word 16 ++#define SSE2NEON_NUMBER_OF_LANES_word 8 ++ ++#define SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE(i, type) \ ++ mtx[i] = vreinterpretq_m128i_##type(vceqq_##type( \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)), \ ++ vreinterpretq_##type##_m128i(a))); ++ ++#define SSE2NEON_FILL_LANE(i, type) \ ++ vec_b[i] = \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)); ++ ++#define PCMPSTR_RANGES(a, b, mtx, data_type_prefix, type_prefix, size, \ ++ number_of_lanes, byte_or_word) \ ++ do { \ ++ SSE2NEON_CAT( \ ++ data_type_prefix, \ ++ SSE2NEON_CAT(size, \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(number_of_lanes, _t)))) \ ++ vec_b[number_of_lanes]; \ ++ __m128i mask = SSE2NEON_IIF(byte_or_word)( \ ++ vreinterpretq_m128i_u16(vdupq_n_u16(0xff)), \ ++ vreinterpretq_m128i_u32(vdupq_n_u32(0xffff))); \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, SSE2NEON_FILL_LANE, \ ++ SSE2NEON_CAT(type_prefix, size))) \ ++ for (int i = 0; i < number_of_lanes; i++) { \ ++ mtx[i] = SSE2NEON_CAT(vreinterpretq_m128i_u, \ ++ size)(SSE2NEON_CAT(vbslq_u, size)( \ ++ SSE2NEON_CAT(vreinterpretq_u, \ ++ SSE2NEON_CAT(size, _m128i))(mask), \ ++ SSE2NEON_CAT(vcgeq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))), \ ++ SSE2NEON_CAT(vcleq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))))); \ ++ } \ ++ } while (0) ++ ++#define PCMPSTR_EQ(a, b, mtx, size, number_of_lanes) \ ++ do { \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, \ ++ SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE, \ ++ SSE2NEON_CAT(u, size))) \ ++ } while (0) ++ ++#define SSE2NEON_CMP_EQUAL_ANY_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_any(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_any_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_RANGES_IMPL(type, data_type, us, byte_or_word) \ ++ static int _sse2neon_cmp_##us##type##_ranges(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_RANGES( \ ++ a, b, mtx, data_type, us, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), byte_or_word); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_ranges_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_EQUAL_ORDERED_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_ordered(__m128i a, int la, \ ++ __m128i b, int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_ordered_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type))))( \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), la, lb, mtx); \ ++ } ++ ++static int _sse2neon_aggregate_equal_any_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ int tmp = _sse2neon_vaddvq_u8(vreinterpretq_u8_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_equal_any_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ int tmp = _sse2neon_vaddvq_u16(vreinterpretq_u16_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ANY(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ANY(SSE2NEON_CMP_EQUAL_ANY_) ++ ++static int _sse2neon_aggregate_ranges_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ __m128i tmp = vreinterpretq_m128i_u32( ++ vshrq_n_u32(vreinterpretq_u32_m128i(mtx[j]), 16)); ++ uint32x4_t vec_res = vandq_u32(vreinterpretq_u32_m128i(mtx[j]), ++ vreinterpretq_u32_m128i(tmp)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int t = vaddvq_u32(vec_res) ? 1 : 0; ++#else ++ uint64x2_t sumh = vpaddlq_u32(vec_res); ++ int t = vgetq_lane_u64(sumh, 0) + vgetq_lane_u64(sumh, 1); ++#endif ++ res |= (t << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_ranges_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ __m128i tmp = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 8)); ++ uint16x8_t vec_res = vandq_u16(vreinterpretq_u16_m128i(mtx[j]), ++ vreinterpretq_u16_m128i(tmp)); ++ int t = _sse2neon_vaddvq_u16(vec_res) ? 1 : 0; ++ res |= (t << j); ++ } ++ return res; ++} ++ ++#define SSE2NEON_CMP_RANGES_IS_BYTE 1 ++#define SSE2NEON_CMP_RANGES_IS_WORD 0 ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_RANGES(prefix) \ ++ prefix##IMPL(byte, uint, u, prefix##IS_BYTE) \ ++ prefix##IMPL(byte, int, s, prefix##IS_BYTE) \ ++ prefix##IMPL(word, uint, u, prefix##IS_WORD) \ ++ prefix##IMPL(word, int, s, prefix##IS_WORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_RANGES(SSE2NEON_CMP_RANGES_) ++ ++#undef SSE2NEON_CMP_RANGES_IS_BYTE ++#undef SSE2NEON_CMP_RANGES_IS_WORD ++ ++static int _sse2neon_cmp_byte_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint8x16_t mtx = ++ vceqq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x10000 - (1 << la); ++ int tb = 0x10000 - (1 << lb); ++ uint8x8_t vec_mask, vec0_lo, vec0_hi, vec1_lo, vec1_hi; ++ uint8x8_t tmp_lo, tmp_hi, res_lo, res_hi; ++ vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ vec0_lo = vtst_u8(vdup_n_u8(m0), vec_mask); ++ vec0_hi = vtst_u8(vdup_n_u8(m0 >> 8), vec_mask); ++ vec1_lo = vtst_u8(vdup_n_u8(m1), vec_mask); ++ vec1_hi = vtst_u8(vdup_n_u8(m1 >> 8), vec_mask); ++ tmp_lo = vtst_u8(vdup_n_u8(tb), vec_mask); ++ tmp_hi = vtst_u8(vdup_n_u8(tb >> 8), vec_mask); ++ ++ res_lo = vbsl_u8(vec0_lo, vdup_n_u8(0), vget_low_u8(mtx)); ++ res_hi = vbsl_u8(vec0_hi, vdup_n_u8(0), vget_high_u8(mtx)); ++ res_lo = vbsl_u8(vec1_lo, tmp_lo, res_lo); ++ res_hi = vbsl_u8(vec1_hi, tmp_hi, res_hi); ++ res_lo = vand_u8(res_lo, vec_mask); ++ res_hi = vand_u8(res_hi, vec_mask); ++ ++ int res = _sse2neon_vaddv_u8(res_lo) + (_sse2neon_vaddv_u8(res_hi) << 8); ++ return res; ++} ++ ++static int _sse2neon_cmp_word_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint16x8_t mtx = ++ vceqq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x100 - (1 << la); ++ int tb = 0x100 - (1 << lb); ++ uint16x8_t vec_mask = vld1q_u16(_sse2neon_cmpestr_mask16b); ++ uint16x8_t vec0 = vtstq_u16(vdupq_n_u16(m0), vec_mask); ++ uint16x8_t vec1 = vtstq_u16(vdupq_n_u16(m1), vec_mask); ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(tb), vec_mask); ++ mtx = vbslq_u16(vec0, vdupq_n_u16(0), mtx); ++ mtx = vbslq_u16(vec1, tmp, mtx); ++ mtx = vandq_u16(mtx, vec_mask); ++ return _sse2neon_vaddvq_u16(mtx); ++} ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE 1 ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD 0 ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IMPL(size, number_of_lanes, data_type) \ ++ static int _sse2neon_aggregate_equal_ordered_##size##x##number_of_lanes( \ ++ int bound, int la, int lb, __m128i mtx[16]) \ ++ { \ ++ int res = 0; \ ++ int m1 = SSE2NEON_IIF(data_type)(0x10000, 0x100) - (1 << la); \ ++ uint##size##x8_t vec_mask = SSE2NEON_IIF(data_type)( \ ++ vld1_u##size(_sse2neon_cmpestr_mask##size##b), \ ++ vld1q_u##size(_sse2neon_cmpestr_mask##size##b)); \ ++ uint##size##x##number_of_lanes##_t vec1 = SSE2NEON_IIF(data_type)( \ ++ vcombine_u##size(vtst_u##size(vdup_n_u##size(m1), vec_mask), \ ++ vtst_u##size(vdup_n_u##size(m1 >> 8), vec_mask)), \ ++ vtstq_u##size(vdupq_n_u##size(m1), vec_mask)); \ ++ uint##size##x##number_of_lanes##_t vec_minusone = vdupq_n_u##size(-1); \ ++ uint##size##x##number_of_lanes##_t vec_zero = vdupq_n_u##size(0); \ ++ for (int j = 0; j < lb; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size(vbslq_u##size( \ ++ vec1, vec_minusone, vreinterpretq_u##size##_m128i(mtx[j]))); \ ++ } \ ++ for (int j = lb; j < bound; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size( \ ++ vbslq_u##size(vec1, vec_minusone, vec_zero)); \ ++ } \ ++ unsigned SSE2NEON_IIF(data_type)(char, short) *ptr = \ ++ (unsigned SSE2NEON_IIF(data_type)(char, short) *) mtx; \ ++ for (int i = 0; i < bound; i++) { \ ++ int val = 1; \ ++ for (int j = 0, k = i; j < bound - i && k < bound; j++, k++) \ ++ val &= ptr[k * bound + j]; \ ++ res += val << i; \ ++ } \ ++ return res; \ ++ } ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(prefix) \ ++ prefix##IMPL(8, 16, prefix##IS_UBYTE) \ ++ prefix##IMPL(16, 8, prefix##IS_UWORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(SSE2NEON_AGGREGATE_EQUAL_ORDER_) ++ ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(SSE2NEON_CMP_EQUAL_ORDERED_) ++ ++#define SSE2NEON_CMPESTR_LIST \ ++ _(CMP_UBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_UWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_SBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_SWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_UBYTE_RANGES, cmp_ubyte_ranges) \ ++ _(CMP_UWORD_RANGES, cmp_uword_ranges) \ ++ _(CMP_SBYTE_RANGES, cmp_sbyte_ranges) \ ++ _(CMP_SWORD_RANGES, cmp_sword_ranges) \ ++ _(CMP_UBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_UWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_SBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_SWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_UBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_UWORD_EQUAL_ORDERED, cmp_word_equal_ordered) \ ++ _(CMP_SBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_SWORD_EQUAL_ORDERED, cmp_word_equal_ordered) ++ ++enum { ++#define _(name, func_suffix) name, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++typedef int (*cmpestr_func_t)(__m128i a, int la, __m128i b, int lb); ++static cmpestr_func_t _sse2neon_cmpfunc_table[] = { ++#define _(name, func_suffix) _sse2neon_##func_suffix, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++ ++FORCE_INLINE int _sse2neon_sido_negative(int res, int lb, int imm8, int bound) ++{ ++ switch (imm8 & 0x30) { ++ case _SIDD_NEGATIVE_POLARITY: ++ res ^= 0xffffffff; ++ break; ++ case _SIDD_MASKED_NEGATIVE_POLARITY: ++ res ^= (1 << lb) - 1; ++ break; ++ default: ++ break; ++ } ++ ++ return res & ((bound == 8) ? 0xFF : 0xFFFF); ++} ++ ++FORCE_INLINE int _sse2neon_clz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanReverse(&cnt, x)) ++ return 31 - cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_clz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanForward(&cnt, x)) ++ return cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_ctz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctzll(unsigned long long x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt; ++#if defined(SSE2NEON_HAS_BITSCAN64) ++ if (_BitScanForward64(&cnt, x)) ++ return (int) (cnt); ++#else ++ if (_BitScanForward(&cnt, (unsigned long) (x))) ++ return (int) cnt; ++ if (_BitScanForward(&cnt, (unsigned long) (x >> 32))) ++ return (int) (cnt + 32); ++#endif /* SSE2NEON_HAS_BITSCAN64 */ ++ return 64; ++#else /* assume GNU compatible compilers */ ++ return x != 0 ? __builtin_ctzll(x) : 64; ++#endif ++} ++ ++#define SSE2NEON_MIN(x, y) (x) < (y) ? (x) : (y) ++ ++#define SSE2NEON_CMPSTR_SET_UPPER(var, imm) \ ++ const int var = (imm & 0x01) ? 8 : 16 ++ ++#define SSE2NEON_CMPESTRX_LEN_PAIR(a, b, la, lb) \ ++ int tmp1 = la ^ (la >> 31); \ ++ la = tmp1 - (la >> 31); \ ++ int tmp2 = lb ^ (lb >> 31); \ ++ lb = tmp2 - (lb >> 31); \ ++ la = SSE2NEON_MIN(la, bound); \ ++ lb = SSE2NEON_MIN(lb, bound) ++ ++// Compare all pairs of character in string a and b, ++// then aggregate the result. ++// As the only difference of PCMPESTR* and PCMPISTR* is the way to calculate the ++// length of string, we use SSE2NEON_CMP{I,E}STRX_GET_LEN to get the length of ++// string a and b. ++#define SSE2NEON_COMP_AGG(a, b, la, lb, imm8, IE) \ ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); \ ++ SSE2NEON_##IE##_LEN_PAIR(a, b, la, lb); \ ++ int r2 = (_sse2neon_cmpfunc_table[imm8 & 0x0f])(a, la, b, lb); \ ++ r2 = _sse2neon_sido_negative(r2, lb, imm8, bound) ++ ++#define SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8) \ ++ return (r2 == 0) ? bound \ ++ : ((imm8 & 0x40) ? (31 - _sse2neon_clz(r2)) \ ++ : _sse2neon_ctz(r2)) ++ ++#define SSE2NEON_CMPSTR_GENERATE_MASK(dst) \ ++ __m128i dst = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ if (imm8 & 0x40) { \ ++ if (bound == 8) { \ ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(r2), \ ++ vld1q_u16(_sse2neon_cmpestr_mask16b)); \ ++ dst = vreinterpretq_m128i_u16(vbslq_u16( \ ++ tmp, vdupq_n_u16(-1), vreinterpretq_u16_m128i(dst))); \ ++ } else { \ ++ uint8x16_t vec_r2 = \ ++ vcombine_u8(vdup_n_u8(r2), vdup_n_u8(r2 >> 8)); \ ++ uint8x16_t tmp = \ ++ vtstq_u8(vec_r2, vld1q_u8(_sse2neon_cmpestr_mask8b)); \ ++ dst = vreinterpretq_m128i_u8( \ ++ vbslq_u8(tmp, vdupq_n_u8(-1), vreinterpretq_u8_m128i(dst))); \ ++ } \ ++ } else { \ ++ if (bound == 16) { \ ++ dst = vreinterpretq_m128i_u16( \ ++ vsetq_lane_u16(r2 & 0xffff, vreinterpretq_u16_m128i(dst), 0)); \ ++ } else { \ ++ dst = vreinterpretq_m128i_u8( \ ++ vsetq_lane_u8(r2 & 0xff, vreinterpretq_u8_m128i(dst), 0)); \ ++ } \ ++ } \ ++ return dst ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and returns 1 if b did not contain a null character and the ++// resulting mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestra ++FORCE_INLINE int _mm_cmpestra(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ int lb_cpy = lb; ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return !r2 & (lb_cpy > bound); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrc ++FORCE_INLINE int _mm_cmpestrc(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestri ++FORCE_INLINE int _mm_cmpestri(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrm ++FORCE_INLINE __m128i ++_mm_cmpestrm(__m128i a, int la, __m128i b, int lb, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestro ++FORCE_INLINE int _mm_cmpestro(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrs ++FORCE_INLINE int _mm_cmpestrs(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) lb; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrz ++FORCE_INLINE int _mm_cmpestrz(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) la; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return lb <= (bound - 1); ++} ++ ++#define SSE2NEON_CMPISTRX_LENGTH(str, len, imm8) \ ++ do { \ ++ if (imm8 & 0x01) { \ ++ uint16x8_t equal_mask_##str = \ ++ vceqq_u16(vreinterpretq_u16_m128i(str), vdupq_n_u16(0)); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 3; \ ++ } else { \ ++ uint16x8_t equal_mask_##str = vreinterpretq_u16_u8( \ ++ vceqq_u8(vreinterpretq_u8_m128i(str), vdupq_n_u8(0))); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 2; \ ++ } \ ++ } while (0) ++ ++#define SSE2NEON_CMPISTRX_LEN_PAIR(a, b, la, lb) \ ++ int la, lb; \ ++ do { \ ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); \ ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); \ ++ } while (0) ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if b did not contain a null character and the resulting ++// mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistra ++FORCE_INLINE int _mm_cmpistra(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return !r2 & (lb >= bound); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrc ++FORCE_INLINE int _mm_cmpistrc(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistri ++FORCE_INLINE int _mm_cmpistri(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrm ++FORCE_INLINE __m128i _mm_cmpistrm(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistro ++FORCE_INLINE int _mm_cmpistro(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrs ++FORCE_INLINE int _mm_cmpistrs(__m128i a, __m128i b, const int imm8) ++{ ++ (void) b; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int la; ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrz ++FORCE_INLINE int _mm_cmpistrz(__m128i a, __m128i b, const int imm8) ++{ ++ (void) a; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int lb; ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); ++ return lb <= (bound - 1); ++} ++ ++// Compares the 2 signed 64-bit integers in a and the 2 signed 64-bit integers ++// in b for greater than. ++FORCE_INLINE __m128i _mm_cmpgt_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vcgtq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ return vreinterpretq_m128i_s64(vshrq_n_s64( ++ vqsubq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)), ++ 63)); ++#endif ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 16-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u16 ++FORCE_INLINE uint32_t _mm_crc32_u16(uint32_t crc, uint16_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32ch %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32ch(crc, v); ++#else ++ crc = _mm_crc32_u8(crc, v & 0xff); ++ crc = _mm_crc32_u8(crc, (v >> 8) & 0xff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 32-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u32 ++FORCE_INLINE uint32_t _mm_crc32_u32(uint32_t crc, uint32_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cw %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cw(crc, v); ++#else ++ crc = _mm_crc32_u16(crc, v & 0xffff); ++ crc = _mm_crc32_u16(crc, (v >> 16) & 0xffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 64-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u64 ++FORCE_INLINE uint64_t _mm_crc32_u64(uint64_t crc, uint64_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cx %w[c], %w[c], %x[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cd((uint32_t) crc, v); ++#else ++ crc = _mm_crc32_u32((uint32_t) (crc), v & 0xffffffff); ++ crc = _mm_crc32_u32((uint32_t) (crc), (v >> 32) & 0xffffffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 8-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u8 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t crc, uint8_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cb %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cb(crc, v); ++#else ++ crc ^= v; ++#if defined(__ARM_FEATURE_CRYPTO) ++ // Adapted from: https://mary.rs/lab/crc32/ ++ // Barrent reduction ++ uint64x2_t orig = ++ vcombine_u64(vcreate_u64((uint64_t) (crc) << 24), vcreate_u64(0x0)); ++ uint64x2_t tmp = orig; ++ ++ // Polynomial P(x) of CRC32C ++ uint64_t p = 0x105EC76F1; ++ // Barrett Reduction (in bit-reflected form) constant mu_{64} = \lfloor ++ // 2^{64} / P(x) \rfloor = 0x11f91caf6 ++ uint64_t mu = 0x1dea713f1; ++ ++ // Multiply by mu_{64} ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(mu)); ++ // Divide by 2^{64} (mask away the unnecessary bits) ++ tmp = ++ vandq_u64(tmp, vcombine_u64(vcreate_u64(0xFFFFFFFF), vcreate_u64(0x0))); ++ // Multiply by P(x) (shifted left by 1 for alignment reasons) ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(p)); ++ // Subtract original from result ++ tmp = veorq_u64(tmp, orig); ++ ++ // Extract the 'lower' (in bit-reflected sense) 32 bits ++ crc = vgetq_lane_u32(vreinterpretq_u32_u64(tmp), 1); ++#else // Fall back to the generic table lookup approach ++ // Adapted from: https://create.stephan-brumme.com/crc32/ ++ // Apply half-byte comparision algorithm for the best ratio between ++ // performance and lookup table. ++ ++ // The lookup table just needs to store every 16th entry ++ // of the standard look-up table. ++ static const uint32_t crc32_half_byte_tbl[] = { ++ 0x00000000, 0x105ec76f, 0x20bd8ede, 0x30e349b1, 0x417b1dbc, 0x5125dad3, ++ 0x61c69362, 0x7198540d, 0x82f63b78, 0x92a8fc17, 0xa24bb5a6, 0xb21572c9, ++ 0xc38d26c4, 0xd3d3e1ab, 0xe330a81a, 0xf36e6f75, ++ }; ++ ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++#endif ++#endif ++ return crc; ++} ++ ++/* AES */ ++ ++#if !defined(__ARM_FEATURE_CRYPTO) && (!defined(_M_ARM64) || defined(__clang__)) ++/* clang-format off */ ++#define SSE2NEON_AES_SBOX(w) \ ++ { \ ++ w(0x63), w(0x7c), w(0x77), w(0x7b), w(0xf2), w(0x6b), w(0x6f), \ ++ w(0xc5), w(0x30), w(0x01), w(0x67), w(0x2b), w(0xfe), w(0xd7), \ ++ w(0xab), w(0x76), w(0xca), w(0x82), w(0xc9), w(0x7d), w(0xfa), \ ++ w(0x59), w(0x47), w(0xf0), w(0xad), w(0xd4), w(0xa2), w(0xaf), \ ++ w(0x9c), w(0xa4), w(0x72), w(0xc0), w(0xb7), w(0xfd), w(0x93), \ ++ w(0x26), w(0x36), w(0x3f), w(0xf7), w(0xcc), w(0x34), w(0xa5), \ ++ w(0xe5), w(0xf1), w(0x71), w(0xd8), w(0x31), w(0x15), w(0x04), \ ++ w(0xc7), w(0x23), w(0xc3), w(0x18), w(0x96), w(0x05), w(0x9a), \ ++ w(0x07), w(0x12), w(0x80), w(0xe2), w(0xeb), w(0x27), w(0xb2), \ ++ w(0x75), w(0x09), w(0x83), w(0x2c), w(0x1a), w(0x1b), w(0x6e), \ ++ w(0x5a), w(0xa0), w(0x52), w(0x3b), w(0xd6), w(0xb3), w(0x29), \ ++ w(0xe3), w(0x2f), w(0x84), w(0x53), w(0xd1), w(0x00), w(0xed), \ ++ w(0x20), w(0xfc), w(0xb1), w(0x5b), w(0x6a), w(0xcb), w(0xbe), \ ++ w(0x39), w(0x4a), w(0x4c), w(0x58), w(0xcf), w(0xd0), w(0xef), \ ++ w(0xaa), w(0xfb), w(0x43), w(0x4d), w(0x33), w(0x85), w(0x45), \ ++ w(0xf9), w(0x02), w(0x7f), w(0x50), w(0x3c), w(0x9f), w(0xa8), \ ++ w(0x51), w(0xa3), w(0x40), w(0x8f), w(0x92), w(0x9d), w(0x38), \ ++ w(0xf5), w(0xbc), w(0xb6), w(0xda), w(0x21), w(0x10), w(0xff), \ ++ w(0xf3), w(0xd2), w(0xcd), w(0x0c), w(0x13), w(0xec), w(0x5f), \ ++ w(0x97), w(0x44), w(0x17), w(0xc4), w(0xa7), w(0x7e), w(0x3d), \ ++ w(0x64), w(0x5d), w(0x19), w(0x73), w(0x60), w(0x81), w(0x4f), \ ++ w(0xdc), w(0x22), w(0x2a), w(0x90), w(0x88), w(0x46), w(0xee), \ ++ w(0xb8), w(0x14), w(0xde), w(0x5e), w(0x0b), w(0xdb), w(0xe0), \ ++ w(0x32), w(0x3a), w(0x0a), w(0x49), w(0x06), w(0x24), w(0x5c), \ ++ w(0xc2), w(0xd3), w(0xac), w(0x62), w(0x91), w(0x95), w(0xe4), \ ++ w(0x79), w(0xe7), w(0xc8), w(0x37), w(0x6d), w(0x8d), w(0xd5), \ ++ w(0x4e), w(0xa9), w(0x6c), w(0x56), w(0xf4), w(0xea), w(0x65), \ ++ w(0x7a), w(0xae), w(0x08), w(0xba), w(0x78), w(0x25), w(0x2e), \ ++ w(0x1c), w(0xa6), w(0xb4), w(0xc6), w(0xe8), w(0xdd), w(0x74), \ ++ w(0x1f), w(0x4b), w(0xbd), w(0x8b), w(0x8a), w(0x70), w(0x3e), \ ++ w(0xb5), w(0x66), w(0x48), w(0x03), w(0xf6), w(0x0e), w(0x61), \ ++ w(0x35), w(0x57), w(0xb9), w(0x86), w(0xc1), w(0x1d), w(0x9e), \ ++ w(0xe1), w(0xf8), w(0x98), w(0x11), w(0x69), w(0xd9), w(0x8e), \ ++ w(0x94), w(0x9b), w(0x1e), w(0x87), w(0xe9), w(0xce), w(0x55), \ ++ w(0x28), w(0xdf), w(0x8c), w(0xa1), w(0x89), w(0x0d), w(0xbf), \ ++ w(0xe6), w(0x42), w(0x68), w(0x41), w(0x99), w(0x2d), w(0x0f), \ ++ w(0xb0), w(0x54), w(0xbb), w(0x16) \ ++ } ++#define SSE2NEON_AES_RSBOX(w) \ ++ { \ ++ w(0x52), w(0x09), w(0x6a), w(0xd5), w(0x30), w(0x36), w(0xa5), \ ++ w(0x38), w(0xbf), w(0x40), w(0xa3), w(0x9e), w(0x81), w(0xf3), \ ++ w(0xd7), w(0xfb), w(0x7c), w(0xe3), w(0x39), w(0x82), w(0x9b), \ ++ w(0x2f), w(0xff), w(0x87), w(0x34), w(0x8e), w(0x43), w(0x44), \ ++ w(0xc4), w(0xde), w(0xe9), w(0xcb), w(0x54), w(0x7b), w(0x94), \ ++ w(0x32), w(0xa6), w(0xc2), w(0x23), w(0x3d), w(0xee), w(0x4c), \ ++ w(0x95), w(0x0b), w(0x42), w(0xfa), w(0xc3), w(0x4e), w(0x08), \ ++ w(0x2e), w(0xa1), w(0x66), w(0x28), w(0xd9), w(0x24), w(0xb2), \ ++ w(0x76), w(0x5b), w(0xa2), w(0x49), w(0x6d), w(0x8b), w(0xd1), \ ++ w(0x25), w(0x72), w(0xf8), w(0xf6), w(0x64), w(0x86), w(0x68), \ ++ w(0x98), w(0x16), w(0xd4), w(0xa4), w(0x5c), w(0xcc), w(0x5d), \ ++ w(0x65), w(0xb6), w(0x92), w(0x6c), w(0x70), w(0x48), w(0x50), \ ++ w(0xfd), w(0xed), w(0xb9), w(0xda), w(0x5e), w(0x15), w(0x46), \ ++ w(0x57), w(0xa7), w(0x8d), w(0x9d), w(0x84), w(0x90), w(0xd8), \ ++ w(0xab), w(0x00), w(0x8c), w(0xbc), w(0xd3), w(0x0a), w(0xf7), \ ++ w(0xe4), w(0x58), w(0x05), w(0xb8), w(0xb3), w(0x45), w(0x06), \ ++ w(0xd0), w(0x2c), w(0x1e), w(0x8f), w(0xca), w(0x3f), w(0x0f), \ ++ w(0x02), w(0xc1), w(0xaf), w(0xbd), w(0x03), w(0x01), w(0x13), \ ++ w(0x8a), w(0x6b), w(0x3a), w(0x91), w(0x11), w(0x41), w(0x4f), \ ++ w(0x67), w(0xdc), w(0xea), w(0x97), w(0xf2), w(0xcf), w(0xce), \ ++ w(0xf0), w(0xb4), w(0xe6), w(0x73), w(0x96), w(0xac), w(0x74), \ ++ w(0x22), w(0xe7), w(0xad), w(0x35), w(0x85), w(0xe2), w(0xf9), \ ++ w(0x37), w(0xe8), w(0x1c), w(0x75), w(0xdf), w(0x6e), w(0x47), \ ++ w(0xf1), w(0x1a), w(0x71), w(0x1d), w(0x29), w(0xc5), w(0x89), \ ++ w(0x6f), w(0xb7), w(0x62), w(0x0e), w(0xaa), w(0x18), w(0xbe), \ ++ w(0x1b), w(0xfc), w(0x56), w(0x3e), w(0x4b), w(0xc6), w(0xd2), \ ++ w(0x79), w(0x20), w(0x9a), w(0xdb), w(0xc0), w(0xfe), w(0x78), \ ++ w(0xcd), w(0x5a), w(0xf4), w(0x1f), w(0xdd), w(0xa8), w(0x33), \ ++ w(0x88), w(0x07), w(0xc7), w(0x31), w(0xb1), w(0x12), w(0x10), \ ++ w(0x59), w(0x27), w(0x80), w(0xec), w(0x5f), w(0x60), w(0x51), \ ++ w(0x7f), w(0xa9), w(0x19), w(0xb5), w(0x4a), w(0x0d), w(0x2d), \ ++ w(0xe5), w(0x7a), w(0x9f), w(0x93), w(0xc9), w(0x9c), w(0xef), \ ++ w(0xa0), w(0xe0), w(0x3b), w(0x4d), w(0xae), w(0x2a), w(0xf5), \ ++ w(0xb0), w(0xc8), w(0xeb), w(0xbb), w(0x3c), w(0x83), w(0x53), \ ++ w(0x99), w(0x61), w(0x17), w(0x2b), w(0x04), w(0x7e), w(0xba), \ ++ w(0x77), w(0xd6), w(0x26), w(0xe1), w(0x69), w(0x14), w(0x63), \ ++ w(0x55), w(0x21), w(0x0c), w(0x7d) \ ++ } ++/* clang-format on */ ++ ++/* X Macro trick. See https://en.wikipedia.org/wiki/X_Macro */ ++#define SSE2NEON_AES_H0(x) (x) ++static const uint8_t _sse2neon_sbox[256] = SSE2NEON_AES_SBOX(SSE2NEON_AES_H0); ++static const uint8_t _sse2neon_rsbox[256] = SSE2NEON_AES_RSBOX(SSE2NEON_AES_H0); ++#undef SSE2NEON_AES_H0 ++ ++/* x_time function and matrix multiply function */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#define SSE2NEON_XT(x) (((x) << 1) ^ ((((x) >> 7) & 1) * 0x1b)) ++#define SSE2NEON_MULTIPLY(x, y) \ ++ (((y & 1) * x) ^ ((y >> 1 & 1) * SSE2NEON_XT(x)) ^ \ ++ ((y >> 2 & 1) * SSE2NEON_XT(SSE2NEON_XT(x))) ^ \ ++ ((y >> 3 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))) ^ \ ++ ((y >> 4 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))))) ++#endif ++ ++// In the absence of crypto extensions, implement aesenc using regular NEON ++// intrinsics instead. See: ++// https://www.workofard.com/2017/01/accelerated-aes-for-the-arm64-linux-kernel/ ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/ and ++// for more information. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ /* shift rows */ ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ /* sub bytes */ ++ // Here, we separate the whole 256-bytes table into 4 64-bytes tables, and ++ // look up each of the table. After each lookup, we load the next table ++ // which locates at the next 64-bytes. In the meantime, the index in the ++ // table would be smaller than it was, so the index parameters of ++ // `vqtbx4q_u8()` need to be added the same constant as the loaded tables. ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ // 'w-0x40' equals to 'vsubq_u8(w, vdupq_n_u8(0x40))' ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ /* mix columns */ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ /* add round key */ ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A implementation for a table-based AES */ ++#define SSE2NEON_AES_B2W(b0, b1, b2, b3) \ ++ (((uint32_t) (b3) << 24) | ((uint32_t) (b2) << 16) | \ ++ ((uint32_t) (b1) << 8) | (uint32_t) (b0)) ++// muliplying 'x' by 2 in GF(2^8) ++#define SSE2NEON_AES_F2(x) ((x << 1) ^ (((x >> 7) & 1) * 0x011b /* WPOLY */)) ++// muliplying 'x' by 3 in GF(2^8) ++#define SSE2NEON_AES_F3(x) (SSE2NEON_AES_F2(x) ^ x) ++#define SSE2NEON_AES_U0(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F2(p), p, p, SSE2NEON_AES_F3(p)) ++#define SSE2NEON_AES_U1(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p, p) ++#define SSE2NEON_AES_U2(p) \ ++ SSE2NEON_AES_B2W(p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p) ++#define SSE2NEON_AES_U3(p) \ ++ SSE2NEON_AES_B2W(p, p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p)) ++ ++ // this generates a table containing every possible permutation of ++ // shift_rows() and sub_bytes() with mix_columns(). ++ static const uint32_t ALIGN_STRUCT(16) aes_table[4][256] = { ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U0), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U1), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U2), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U3), ++ }; ++#undef SSE2NEON_AES_B2W ++#undef SSE2NEON_AES_F2 ++#undef SSE2NEON_AES_F3 ++#undef SSE2NEON_AES_U0 ++#undef SSE2NEON_AES_U1 ++#undef SSE2NEON_AES_U2 ++#undef SSE2NEON_AES_U3 ++ ++ uint32_t x0 = _mm_cvtsi128_si32(a); // get a[31:0] ++ uint32_t x1 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); // get a[63:32] ++ uint32_t x2 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xAA)); // get a[95:64] ++ uint32_t x3 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); // get a[127:96] ++ ++ // finish the modulo addition step in mix_columns() ++ __m128i out = _mm_set_epi32( ++ (aes_table[0][x3 & 0xff] ^ aes_table[1][(x0 >> 8) & 0xff] ^ ++ aes_table[2][(x1 >> 16) & 0xff] ^ aes_table[3][x2 >> 24]), ++ (aes_table[0][x2 & 0xff] ^ aes_table[1][(x3 >> 8) & 0xff] ^ ++ aes_table[2][(x0 >> 16) & 0xff] ^ aes_table[3][x1 >> 24]), ++ (aes_table[0][x1 & 0xff] ^ aes_table[1][(x2 >> 8) & 0xff] ^ ++ aes_table[2][(x3 >> 16) & 0xff] ^ aes_table[3][x0 >> 24]), ++ (aes_table[0][x0 & 0xff] ^ aes_table[1][(x1 >> 8) & 0xff] ^ ++ aes_table[2][(x2 >> 16) & 0xff] ^ aes_table[3][x3 >> 24])); ++ ++ return _mm_xor_si128(out, RoundKey); ++#endif ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // inverse mix columns ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & ++ 0x1b); // muliplying 'v' by 2 in GF(2^8) ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ // inverse mix columns ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ // sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A implementation */ ++ uint8_t v[16] = { ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 0)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 5)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 10)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 15)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 4)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 9)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 14)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 3)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 8)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 13)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 2)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 7)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 12)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 1)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 6)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 11)], ++ }; ++ ++ return vreinterpretq_m128i_u8(vld1q_u8(v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (int i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++#if defined(__aarch64__) ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ uint8x16_t v = vreinterpretq_u8_m128i(a); ++ uint8x16_t w; ++ ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ // multiplying 'v' by 2 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ return vreinterpretq_m128i_u8(w); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ vst1q_u8((uint8_t *) v, vreinterpretq_u8_m128i(a)); ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)); ++#endif ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++// ++// Emits the Advanced Encryption Standard (AES) instruction aeskeygenassist. ++// This instruction generates a round key for AES encryption. See ++// https://kazakov.life/2017/11/01/cryptocurrency-mining-on-ios-devices/ ++// for details. ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++#if defined(__aarch64__) ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); ++ uint8x16_t v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), _a); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), _a - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), _a - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), _a - 0xc0); ++ ++ uint32x4_t v_u32 = vreinterpretq_u32_u8(v); ++ uint32x4_t ror_v = vorrq_u32(vshrq_n_u32(v_u32, 8), vshlq_n_u32(v_u32, 24)); ++ uint32x4_t ror_xor_v = veorq_u32(ror_v, vdupq_n_u32(rcon)); ++ ++ return vreinterpretq_m128i_u32(vtrn2q_u32(v_u32, ror_xor_v)); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint32_t X1 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); ++ uint32_t X3 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); ++ for (int i = 0; i < 4; ++i) { ++ ((uint8_t *) &X1)[i] = _sse2neon_sbox[((uint8_t *) &X1)[i]]; ++ ((uint8_t *) &X3)[i] = _sse2neon_sbox[((uint8_t *) &X3)[i]]; ++ } ++ return _mm_set_epi32(((X3 >> 8) | (X3 << 24)) ^ rcon, X3, ++ ((X1 >> 8) | (X1 << 24)) ^ rcon, X1); ++#endif ++} ++#undef SSE2NEON_AES_SBOX ++#undef SSE2NEON_AES_RSBOX ++ ++#if defined(__aarch64__) ++#undef SSE2NEON_XT ++#undef SSE2NEON_MULTIPLY ++#endif ++ ++#else /* __ARM_FEATURE_CRYPTO */ ++// Implements equivalent of 'aesenc' by combining AESE (with an empty key) and ++// AESMC and then manually applying the real key as an xor operation. This ++// unfortunately means an additional xor op; the compiler should be able to ++// optimize this away for repeated calls however. See ++// https://blog.michaelbrase.com/2018/05/08/emulating-x86-aes-intrinsics-on-armv8-a ++// for more details. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesmcq_u8(vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(b))); ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesimcq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return _mm_xor_si128(vreinterpretq_m128i_u8(vaeseq_u8( ++ vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ RoundKey); ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8( ++ veorq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++ return vreinterpretq_m128i_u8(vaesimcq_u8(vreinterpretq_u8_m128i(a))); ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst." ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++ // AESE does ShiftRows and SubBytes on A ++ uint8x16_t u8 = vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)); ++ ++#ifndef _MSC_VER ++ uint8x16_t dest = { ++ // Undo ShiftRows step from AESE and extract X1 and X3 ++ u8[0x4], u8[0x1], u8[0xE], u8[0xB], // SubBytes(X1) ++ u8[0x1], u8[0xE], u8[0xB], u8[0x4], // ROT(SubBytes(X1)) ++ u8[0xC], u8[0x9], u8[0x6], u8[0x3], // SubBytes(X3) ++ u8[0x9], u8[0x6], u8[0x3], u8[0xC], // ROT(SubBytes(X3)) ++ }; ++ uint32x4_t r = {0, (unsigned) rcon, 0, (unsigned) rcon}; ++ return vreinterpretq_m128i_u8(dest) ^ vreinterpretq_m128i_u32(r); ++#else ++ // We have to do this hack because MSVC is strictly adhering to the CPP ++ // standard, in particular C++03 8.5.1 sub-section 15, which states that ++ // unions must be initialized by their first member type. ++ ++ // As per the Windows ARM64 ABI, it is always little endian, so this works ++ __n128 dest{ ++ ((uint64_t) u8.n128_u8[0x4] << 0) | ((uint64_t) u8.n128_u8[0x1] << 8) | ++ ((uint64_t) u8.n128_u8[0xE] << 16) | ++ ((uint64_t) u8.n128_u8[0xB] << 24) | ++ ((uint64_t) u8.n128_u8[0x1] << 32) | ++ ((uint64_t) u8.n128_u8[0xE] << 40) | ++ ((uint64_t) u8.n128_u8[0xB] << 48) | ++ ((uint64_t) u8.n128_u8[0x4] << 56), ++ ((uint64_t) u8.n128_u8[0xC] << 0) | ((uint64_t) u8.n128_u8[0x9] << 8) | ++ ((uint64_t) u8.n128_u8[0x6] << 16) | ++ ((uint64_t) u8.n128_u8[0x3] << 24) | ++ ((uint64_t) u8.n128_u8[0x9] << 32) | ++ ((uint64_t) u8.n128_u8[0x6] << 40) | ++ ((uint64_t) u8.n128_u8[0x3] << 48) | ++ ((uint64_t) u8.n128_u8[0xC] << 56)}; ++ ++ dest.n128_u32[1] = dest.n128_u32[1] ^ rcon; ++ dest.n128_u32[3] = dest.n128_u32[3] ^ rcon; ++ ++ return dest; ++#endif ++} ++#endif ++ ++/* Others */ ++ ++// Perform a carry-less multiplication of two 64-bit integers, selected from a ++// and b according to imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clmulepi64_si128 ++FORCE_INLINE __m128i _mm_clmulepi64_si128(__m128i _a, __m128i _b, const int imm) ++{ ++ uint64x2_t a = vreinterpretq_u64_m128i(_a); ++ uint64x2_t b = vreinterpretq_u64_m128i(_b); ++ switch (imm & 0x11) { ++ case 0x00: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_low_u64(b))); ++ case 0x01: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_low_u64(b))); ++ case 0x10: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_high_u64(b))); ++ case 0x11: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_high_u64(b))); ++ default: ++ abort(); ++ } ++} ++ ++FORCE_INLINE unsigned int _sse2neon_mm_get_denormals_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_DENORMALS_ZERO_ON : _MM_DENORMALS_ZERO_OFF; ++} ++ ++// Count the number of bits set to 1 in unsigned 32-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u32 ++FORCE_INLINE int _mm_popcnt_u32(unsigned int a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcount) ++ return __builtin_popcount(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits(a); ++#else ++ return (int) vaddlv_u8(vcnt_u8(vcreate_u8((uint64_t) a))); ++#endif ++#else ++ uint32_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ ++ vst1_u32(&count, count32x2_val); ++ return count; ++#endif ++} ++ ++// Count the number of bits set to 1 in unsigned 64-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u64 ++FORCE_INLINE int64_t _mm_popcnt_u64(uint64_t a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcountll) ++ return __builtin_popcountll(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits64(a); ++#else ++ return (int64_t) vaddlv_u8(vcnt_u8(vcreate_u8(a))); ++#endif ++#else ++ uint64_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ uint64x1_t count64x1_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ count64x1_val = vpaddl_u32(count32x2_val); ++ vst1_u64(&count, count64x1_val); ++ return count; ++#endif ++} ++ ++FORCE_INLINE void _sse2neon_mm_set_denormals_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_DENORMALS_ZERO_MASK) == _MM_DENORMALS_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Return the current 64-bit value of the processor's time-stamp counter. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=rdtsc ++FORCE_INLINE uint64_t _rdtsc(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t val; ++ ++ /* According to ARM DDI 0487F.c, from Armv8.0 to Armv8.5 inclusive, the ++ * system counter is at least 56 bits wide; from Armv8.6, the counter ++ * must be 64 bits wide. So the system counter could be less than 64 ++ * bits wide and it is attributed with the flag 'cap_user_time_short' ++ * is true. ++ */ ++#if defined(_MSC_VER) ++ val = _ReadStatusReg(ARM64_SYSREG(3, 3, 14, 0, 2)); ++#else ++ __asm__ __volatile__("mrs %0, cntvct_el0" : "=r"(val)); ++#endif ++ ++ return val; ++#else ++ uint32_t pmccntr, pmuseren, pmcntenset; ++ // Read the user mode Performance Monitoring Unit (PMU) ++ // User Enable Register (PMUSERENR) access permissions. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c14, 0" : "=r"(pmuseren)); ++ if (pmuseren & 1) { // Allows reading PMUSERENR for user mode code. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c12, 1" : "=r"(pmcntenset)); ++ if (pmcntenset & 0x80000000UL) { // Is it counting? ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c13, 0" : "=r"(pmccntr)); ++ // The counter is set up to count every 64th cycle ++ return (uint64_t) (pmccntr) << 6; ++ } ++ } ++ ++ // Fallback to syscall as we can't enable PMUSERENR in user mode. ++ struct timeval tv; ++ gettimeofday(&tv, NULL); ++ return (uint64_t) (tv.tv_sec) * 1000000 + tv.tv_usec; ++#endif ++} ++ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma pop_macro("ALIGN_STRUCT") ++#pragma pop_macro("FORCE_INLINE") ++#endif ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma GCC pop_options ++#endif ++ ++#endif +diff --git c/src/utilities.h i/src/utilities.h +index c578730..38c3d2b 100644 +--- c/src/utilities.h ++++ i/src/utilities.h +@@ -38,6 +38,8 @@ the GNU public licence. See http://www.opensource.org for details. + #include + #include + #include ++#elif defined(__ARM_NEON) ++#include "sse2neon.h" + #elif (defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__)) + #include + #include +@@ -122,7 +124,7 @@ static inline int isinf_ld (long double x) { return isnan (x - x); } + + #if (defined __AVX__ || defined __AVX2__) + #define BYTE_ALIGN 32 +-#elif (defined(__SSE__) || defined(__SSE2__) || defined __SSE3__) ++#elif (defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__) || defined(__ARM_NEON)) + #define BYTE_ALIGN 16 + #else + #define BYTE_ALIGN 1 +@@ -772,7 +774,7 @@ typedef struct __Tree{ + + #if (defined(__AVX__) || defined(__AVX2__)) + __m256d *_tPij1,*_tPij2,*_pmat1plk1,*_pmat2plk2,*_plk0,*_l_ev,*_r_ev,*_prod_left,*_prod_rght; +-#elif (defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__)) ++#elif (defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__) || defined(__ARM_NEON)) + __m128d *_tPij1,*_tPij2,*_pmat1plk1,*_pmat2plk2,*_plk0,*_l_ev,*_r_ev,*_prod_left,*_prod_rght; + #endif + +@@ -2559,7 +2561,7 @@ void Set_Bl_From_Rt(int yesno, t_tree *tree); + + #if (defined(__AVX__) || defined(__AVX2__)) + #include "avx.h" +-#elif (defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__)) ++#elif (defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__) || defined(__ARM_NEON)) + #include "sse.h" + #endif + From 5a83add7afd04f9364957d04710a295aaa39371a Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Tue, 18 Jun 2024 11:14:48 -0400 Subject: [PATCH 0040/1514] blockclust: rebuild after bulk build failure (#48539) * remove build failures * change meta to get a build --- recipes/blockclust/build_failure.linux-64.yaml | 4 ---- recipes/blockclust/meta.yaml | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) delete mode 100644 recipes/blockclust/build_failure.linux-64.yaml diff --git a/recipes/blockclust/build_failure.linux-64.yaml b/recipes/blockclust/build_failure.linux-64.yaml deleted file mode 100644 index 35d56373c6ef8..0000000000000 --- a/recipes/blockclust/build_failure.linux-64.yaml +++ /dev/null @@ -1,4 +0,0 @@ -recipe_sha: a83f2429694887a6971d15f772139cb5ce13db02eca2b889b6c2620ed1db56ae # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -category: disk space -reason: GitHub Actions runs out of space trying to build all python versions. diff --git a/recipes/blockclust/meta.yaml b/recipes/blockclust/meta.yaml index 155fa43879a8b..37a9ec34be55b 100644 --- a/recipes/blockclust/meta.yaml +++ b/recipes/blockclust/meta.yaml @@ -47,3 +47,4 @@ about: extra: identifiers: - doi:10.1093/bioinformatics/btu270 + From ce9e2d44313370e4ce9421c5cb9c8589fb736b76 Mon Sep 17 00:00:00 2001 From: Louison <61231354+TheLokj@users.noreply.github.com> Date: Tue, 18 Jun 2024 17:17:15 +0200 Subject: [PATCH 0041/1514] Update DeepMicroClass recipe (#48561) * Update DeepMicroClass recipe * Update DeepMicroClass recipe --- recipes/deepmicroclass/meta.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/deepmicroclass/meta.yaml b/recipes/deepmicroclass/meta.yaml index 35f9eff5c19ac..94104b1c1791a 100644 --- a/recipes/deepmicroclass/meta.yaml +++ b/recipes/deepmicroclass/meta.yaml @@ -12,7 +12,7 @@ source: build: noarch: python script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation - number: 0 + number: 1 run_exports: - {{ pin_subpackage('deepmicroclass', max_pin="x") }} @@ -36,9 +36,11 @@ requirements: test: imports: - DeepMicroClass + commands: + - DeepMicroClass -h about: home: https://github.com/chengsly/DeepMicroClass - summary: DeepMicroClass, a deep learning based contig prediction tool + summary: DeepMicroClass, a deep learning based contig prediction tool (CPU version) license: BSD-2-Clause license_file: LICENSE \ No newline at end of file From 14041959de5aaf664deef63b3912c61614696788 Mon Sep 17 00:00:00 2001 From: Thanh Lee Date: Tue, 18 Jun 2024 17:18:32 +0100 Subject: [PATCH 0042/1514] add usearch (#48562) * add usearch * fix lint * fix dash in version * fix typo --- recipes/usearch/meta.yaml | 42 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 recipes/usearch/meta.yaml diff --git a/recipes/usearch/meta.yaml b/recipes/usearch/meta.yaml new file mode 100644 index 0000000000000..401155627a899 --- /dev/null +++ b/recipes/usearch/meta.yaml @@ -0,0 +1,42 @@ +{% set name = "usearch" %} +{% set version = "12.0-beta" %} + +package: + name: "{{ name|lower }}" + version: "{{ version |replace("-", "_") }}" + +source: + - url: https://github.com/rcedgar/{{ name }}12/releases/download/v{{ version }}1/usearch_linux_x86_{{ version }} # [linux and x86_64] + sha256: 4193abead8c7e1609dd28148bb36ad9667c67647c6f784f2bdd72af9de27f3dc # [linux and x86_64] + - url: https://github.com/rcedgar/{{ name }}12/releases/download/v{{ version }}1/usearch_linux_arch64_{{ version }} # [linux and aarch64] + sha256: 435ac47a1eb1e555b3c7cdfda706f0d01e8b1fe517fb18bf6732a91a6ce9b6ba # [linux and aarch64] + - url: https://github.com/rcedgar/{{ name }}12/releases/download/v{{ version }}1/usearch_osx_x86_{{ version }} # [osx] + sha256: 49e50a72707ae81be960e1b3dbba5b4cf82e7d73511a23a35497a60b926cb100 # [osx] + +build: + number: 0 + script: + - mkdir -p ${PREFIX}/bin + - cp usearch_* ${PREFIX}/bin/usearch + - chmod +x ${PREFIX}/bin/usearch + run_exports: + - {{ pin_subpackage('usearch', max_pin="x") }} + +test: + commands: + - usearch -closed_ref 2>&1 | grep -o 'missing value' + +about: + home: "https://github.com/rcedgar/usearch12" + license: GPL-3.0-or-later + summary: USEARCH is a unique sequence analysis tool which offers search and clustering algorithms that are often orders of magnitude faster than BLAST. + +extra: + additional-platforms: + - linux-aarch64 + skip-lints: + - should_be_noarch_generic + - gpl_requires_license_distributed + - long_summary + recipe-maintainers: + - thanhleviet \ No newline at end of file From 89ec100b5018db9a210302b6cc38de25d094d033 Mon Sep 17 00:00:00 2001 From: vpepe Date: Tue, 18 Jun 2024 12:53:32 -0400 Subject: [PATCH 0043/1514] Update SeqVerify to v1.3.0 (#48564) * Update meta.yaml * Update build.sh * Update meta.yaml * Add bracken as a dependency * Update meta.yaml * Update meta.yaml --- recipes/seqverify/meta.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/recipes/seqverify/meta.yaml b/recipes/seqverify/meta.yaml index 44980311a7974..c0ce83872301b 100644 --- a/recipes/seqverify/meta.yaml +++ b/recipes/seqverify/meta.yaml @@ -1,12 +1,12 @@ -{% set version = "1.2.1" %} +{% set version = "1.3.0" %} package: name: seqverify version: {{ version }} source: - url: https://github.com/mpiersonsmela/SeqVerify/archive/refs/tags/v1.2.1.tar.gz - sha256: 5c0f3080d64b99dff593276e1efe362b60c435f7e08b6a16ed8588f7dd5b5bf4 + url: https://github.com/mpiersonsmela/SeqVerify/archive/refs/tags/v1.3.0.tar.gz + sha256: 9641b1e5f69aef270e81a82f636c413cec2bd7767c482e534e27206bf2213a03 build: noarch: generic @@ -18,6 +18,7 @@ requirements: run: - bcftools - blast + - bracken - bwa - cnvpytor - htslib From 44238844418d7a4730848ac00fcfae9f9edd523e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 18 Jun 2024 14:20:58 -0400 Subject: [PATCH 0044/1514] Update open-cravat to 2.7.3 (#48567) --- recipes/open-cravat/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/open-cravat/meta.yaml b/recipes/open-cravat/meta.yaml index c703efa45c0b4..4575700fc40ea 100644 --- a/recipes/open-cravat/meta.yaml +++ b/recipes/open-cravat/meta.yaml @@ -1,5 +1,5 @@ {% set name = "open-cravat" %} -{% set version = "2.7.2" %} +{% set version = "2.7.3" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: ada09a79bcc26ea74c705a4d3787d84219cf81b798b6662081e079c2b0d94256 + sha256: e052ab00c04c1db9f45cd1ec2d7d774279fb1fe4d5763ab13d6fcb7e6d1d7df9 build: number: 0 From 6955a1e6ab1f20c58206663f07e5aae86e8d2f8d Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Tue, 18 Jun 2024 14:28:14 -0400 Subject: [PATCH 0045/1514] iqtree: rebuild after build failure (#48528) * bump iqtree * re-add circleci limit * Make use of the JOBS variable * try building with large machine --------- Co-authored-by: Martin Grigorov Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- .circleci/config.yml | 2 +- recipes/iqtree/build.sh | 11 ++++++++++- recipes/iqtree/meta.yaml | 2 +- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 4631c4c8db830..c4a3117dd6022 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -9,7 +9,7 @@ executors: linux-aarch64: machine: image: ubuntu-2204:current - resource_class: arm.medium + resource_class: arm.large jobs: # a basic unit of work in a run build_and_test: diff --git a/recipes/iqtree/build.sh b/recipes/iqtree/build.sh index 6673820d69098..775b3c1099a17 100644 --- a/recipes/iqtree/build.sh +++ b/recipes/iqtree/build.sh @@ -17,7 +17,16 @@ cmake -S . -B build -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DCMAKE_BUILD_TYPE=Releas -DUSE_LSD2=ON -DIQTREE_FLAGS=omp -DCMAKE_CXX_COMPILER="${CXX}" \ -DCMAKE_CXX_FLAGS="${CXXFLAGS}" -Wno-dev -Wno-deprecated --no-warn-unused-cli -cmake --build build --target install -j 1 +case $(uname -m) in + aarch64) + JOBS=1 # CircleCI's arm.medium VM runs out of memory with higher values + ;; + *) + JOBS=${CPU_COUNT} + ;; +esac + +cmake --build build --target install -j ${JOBS} chmod 755 "${PREFIX}/bin/iqtree2" cp -f "${PREFIX}"/bin/iqtree2 "${PREFIX}"/bin/iqtree diff --git a/recipes/iqtree/meta.yaml b/recipes/iqtree/meta.yaml index 82dbbe3b9fc43..2b9c52c9fef99 100644 --- a/recipes/iqtree/meta.yaml +++ b/recipes/iqtree/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version | replace("-", "_") }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('iqtree', max_pin="x") }} From 6a7992f3ea3d46d512b64a7b0d96ebaf37850009 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 18 Jun 2024 23:01:54 +0300 Subject: [PATCH 0046/1514] alignlib_lite: add linux-aarch64 build (#48555) * alignlib_lite: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Try with Cython 0.x Signed-off-by: Martin Tzvetanov Grigorov * The license_file is not included in the sources tarball * Disable the test for Linux ARM64 to be able to test/debug locally Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- .../alignlib-lite/build_failure.linux-64.yaml | 106 ------------------ .../alignlib-lite/build_failure.osx-64.yaml | 106 ------------------ recipes/alignlib-lite/meta.yaml | 17 ++- 3 files changed, 12 insertions(+), 217 deletions(-) delete mode 100644 recipes/alignlib-lite/build_failure.linux-64.yaml delete mode 100644 recipes/alignlib-lite/build_failure.osx-64.yaml diff --git a/recipes/alignlib-lite/build_failure.linux-64.yaml b/recipes/alignlib-lite/build_failure.linux-64.yaml deleted file mode 100644 index c26f5d54f84af..0000000000000 --- a/recipes/alignlib-lite/build_failure.linux-64.yaml +++ /dev/null @@ -1,106 +0,0 @@ -recipe_sha: 2ddf24065fcdbf61d820063dc1db8ed110b38b66740e2bedb79abf6f9f9008df # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |- - CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu - CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu - CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp - CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include - DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/alignlib-lite-0.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include - GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc - GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar - GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm - GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib - HOST=x86_64-conda-linux-gnu - LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib - MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu - build_alias=x86_64-conda-linux-gnu - host_alias=x86_64-conda-linux-gnu - -BUILD=x86_64-conda_cos6-linux-gnu - -CONDA_BUILD_SYSROOT= - INFO: activate-gxx_linux-64.sh made the following environmental changes: - CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c - CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/alignlib-lite-0.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c - DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/alignlib-lite-0.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - GXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-g - Processing $SRC_DIR - Preparing metadata (setup.py): started - Preparing metadata (setup.py): finished with status 'done' - Building wheels for collected packages: alignlib-lite - Building wheel for alignlib-lite (setup.py): started - Building wheel for alignlib-lite (setup.py): finished with status 'error' - [1;31merror[0m: [1msubprocess-exited-with-error[0m - - [31m[0m [32mpython setup.py bdist_wheel[0m did not run successfully. - [31m[0m exit code: [1;36m1[0m - [31m>[0m [31m[42 lines of output][0m - [31m [0m /opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.9/site-packages/setuptools/_distutils/extension.py:134: UserWarning: Unknown Extension options: 'cmdclass' - [31m [0m warnings.warn(msg) - [31m [0m Warning: 'classifiers' should be a list, got type 'filter' - [31m [0m running bdist_wheel - [31m [0m running build - [31m [0m running build_ext - [31m [0m Compiling alignlib_lite.pyx because it changed. - [31m [0m [1/1] Cythonizing alignlib_lite.pyx - [31m [0m /opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.9/site-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /opt/conda/conda-bld/alignlib-lite_1717952287919/work/alignlib_lite.pyx - [31m [0m tree = Parsing.p_module(s, pxd, full_module_name) - [31m [0m warning: alignlib_lite.pyx:125:4: 'HAlignment' redeclared - [31m [0m building 'alignlib_lite' extension - [31m [0m creating build - [31m [0m creating build/temp.linux-x86_64-cpython-39 - [31m [0m creating build/temp.linux-x86_64-cpython-39/alignlib_src - [31m [0m /opt/conda/conda-bld/alignlib-lite_1717952287919/_build_env/bin/x86_64-conda-linux-gnu-cc -Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include -fPIC -O2 -isystem /opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include -fdebug-prefix-map=/opt/conda/conda-bld/alignlib-lite_1717952287919/work=/usr/local/src/conda/alignlib-lite-0.3 -fdebug-prefix-map=/opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold=/usr/local/src/conda-prefix -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include -fPIC -Ialignlib_src -I/opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include/python3.9 -c alignlib_lite.cpp -o build/temp.linux-x86_64-cpython-39/alignlib_lite.o - [31m [0m alignlib_lite.cpp:148:26: warning: "/*" within comment [-Wcomment] - [31m [0m 148 | "alignlib_src/*.cpp" - [31m [0m | - [31m [0m In file included from alignlib_src/alignlib_interfaces.h:38, - [31m [0m from alignlib_src/alignlib.h:37, - [31m [0m from alignlib_lite.cpp:1413: - [31m [0m alignlib_src/Iterator2D.h:40:46: warning: 'template struct std::iterator' is deprecated [-Wdeprecated-declarations] - [31m [0m 40 | class const_countable_iterator : public std::iterator< std::random_access_iterator_tag, T> - [31m [0m | ^~~~~~~~ - [31m [0m In file included from /opt/conda/conda-bld/alignlib-lite_1717952287919/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_algobase.h:65, - [31m [0m from /opt/conda/conda-bld/alignlib-lite_1717952287919/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/specfun.h:45, - [31m [0m from /opt/conda/conda-bld/alignlib-lite_1717952287919/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/cmath:1935, - [31m [0m from /opt/conda/conda-bld/alignlib-lite_1717952287919/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/math.h:36, - [31m [0m from /opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include/python3.9/pyport.h:205, - [31m [0m from /opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include/python3.9/Python.h:50, - [31m [0m from alignlib_lite.cpp:168: - [31m [0m /opt/conda/conda-bld/alignlib-lite_1717952287919/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_iterator_base_types.h:127:34: note: declared here - [31m [0m 127 | struct _GLIBCXX17_DEPRECATED iterator - [31m [0m | ^~~~~~~~ - [31m [0m alignlib_lite.cpp:4490:18: warning: 'PyObject* __pyx_f_13alignlib_lite__forceBytes(PyObject*)' defined but not used [-Wunused-function] - [31m [0m 4490 | static PyObject *__pyx_f_13alignlib_lite__forceBytes(PyObject *__pyx_v_s) { - [31m [0m | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - [31m [0m /opt/conda/conda-bld/alignlib-lite_1717952287919/_build_env/bin/x86_64-conda-linux-gnu-cc -Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include -fPIC -O2 -isystem /opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include -fdebug-prefix-map=/opt/conda/conda-bld/alignlib-lite_1717952287919/work=/usr/local/src/conda/alignlib-lite-0.3 -fdebug-prefix-map=/opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold=/usr/local/src/conda-prefix -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include -fPIC -Ialignlib_src -I/opt/conda/conda-bld/alignlib-lite_1717952287919/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include/python3.9 -c alignlib_src/*.cpp -o build/temp.linux-x86_64-cpython-39/alignlib_src/*.o - [31m [0m cc1plus: fatal error: alignlib_src/*.cpp: No such file or directory - [31m [0m compilation terminated. - [31m [0m error: command '/opt/conda/conda-bld/alignlib-lite_1717952287919/_build_env/bin/x86_64-conda-linux-gnu-cc' failed with exit code 1 - [31m [0m [31m[end of output][0m - - [1;35mnote[0m: This error originates from a subprocess, and is likely not a problem with pip. - [31m ERROR: Failed building wheel for alignlib-lite[0m[31m - [0m Running setup.py clean for alignlib-lite - Failed to build alignlib-lite - [31mERROR: Could not build wheels for alignlib-lite, which is required to install pyproject.toml-based projects[0m[31m - [0mTraceback (most recent call last): - File "/opt/conda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/alignlib-lite_1717952287919/work/conda_build.sh']' returned non-zero exit status 1. -# Last 100 lines of the build log. -category: |- - compiler error diff --git a/recipes/alignlib-lite/build_failure.osx-64.yaml b/recipes/alignlib-lite/build_failure.osx-64.yaml deleted file mode 100644 index b99b1d3e60373..0000000000000 --- a/recipes/alignlib-lite/build_failure.osx-64.yaml +++ /dev/null @@ -1,106 +0,0 @@ -recipe_sha: 2ddf24065fcdbf61d820063dc1db8ed110b38b66740e2bedb79abf6f9f9008df # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - /* DISABLES CODE */ ( ) - alignlib_lite.cpp:16616:5: warning: 'tp_print' is deprecated [-Wdeprecated-declarations] - 0, - ^ - /opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here - Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int); - ^ - /opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED' - #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__)) - ^ - alignlib_lite.cpp:4490:18: warning: unused function '__pyx_f_13alignlib_lite__forceBytes' [-Wunused-function] - static PyObject *__pyx_f_13alignlib_lite__forceBytes(PyObject *__pyx_v_s) { - ^ - 11 warnings generated. - x86_64-apple-darwin13.4.0-clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include -fPIC -O2 -isystem /opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem /opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include -fdebug-prefix-map=/opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/work=/usr/local/src/conda/alignlib-lite-0.3 -fdebug-prefix-map=/opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_=/usr/local/src/conda-prefix -D_FORTIFY_SOURCE=2 -isystem /opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include -mmacosx-version-min=10.9 -Ialignlib_src -I/opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/include/python3.8 -c alignlib_src/*.cpp -o build/temp.macosx-10.9-x86_64-cpython-38/alignlib_src/*.o - clang-16: error: no such file or directory: 'alignlib_src/*.cpp' - clang-16: error: no input files - error: command '/opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/_build_env/bin/x86_64-apple-darwin13.4.0-clang' failed with exit code 1 - [end of output] - - note: This error originates from a subprocess, and is likely not a problem with pip. - ERROR: Failed building wheel for alignlib-lite - ERROR: Could not build wheels for alignlib-lite, which is required to install pyproject.toml-based projects - Extracting download - source tree in: /opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/work - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_ - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/_build_env - export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/work - INFO: activate_clang_osx-64.sh made the following environmental changes: - AR=x86_64-apple-darwin13.4.0-ar - AS=x86_64-apple-darwin13.4.0-as - CC=x86_64-apple-darwin13.4.0-clang - CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - packages_from_this = build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/alignlib-lite-0.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms - CLANG=x86_64-apple-darwin13.4.0-clang - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/alignlib-lite_1717795808954/work/conda_build.sh']' returned non-zero exit status 1. - CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin - CMAKE_PREFIX_PATH=:$PREFIX - CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 - CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 - CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 - DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/alignlib-lite-0.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - HOST=x86_64-apple-darwin13.4.0 - INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool - LD=x86_64-apple-darwin13.4.0-ld - LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib - LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib - LIBTOOL=x86_64-apple-darwin13.4.0-libtool - LIPO=x86_64-apple-darwin13.4.0-lipo - MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib - NM=x86_64-apple-darwin13.4.0-nm - NMEDIT=x86_64-apple-darwin13.4.0-nmedit - OBJC=x86_64-apple-darwin13.4.0-clang - OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - OTOOL=x86_64-apple-darwin13.4.0-otool - PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff - RANLIB=x86_64-apple-darwin13.4.0-ranlib - REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding - SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk - SEGEDIT=x86_64-apple-darwin13.4.0-segedit - SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table - SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack - SIZE=x86_64-apple-darwin13.4.0-size - STRINGS=x86_64-apple-darwin13.4.0-strings - STRIP=x86_64-apple-darwin13.4.0-strip - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 - ac_cv_func_malloc_0_nonnull=yes - ac_cv_func_realloc_0_nonnull=yes - build_alias=x86_64-apple-darwin13.4.0 - host_alias=x86_64-apple-darwin13.4.0 - INFO: activate_clangxx_osx-64.sh made the following environmental changes: - CLANGXX=x86_64-apple-darwin13.4.0-clang - CXX=x86_64-apple-darwin13.4.0-clang - CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/alignlib-lite-0.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/alignlib-lite-0.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - Processing $SRC_DIR - Preparing metadata (setup.py): started - Preparing metadata (setup.py): finished with status 'done' - Building wheels for collected packages: alignlib-lite - Building wheel for alignlib-lite (setup.py): started - Building wheel for alignlib-lite (setup.py): finished with status 'error' - Running setup.py clean for alignlib-lite - Failed to build alignlib-lite -# Last 100 lines of the build log. -category: |- - compiler error diff --git a/recipes/alignlib-lite/meta.yaml b/recipes/alignlib-lite/meta.yaml index 11515ed74523c..989202d6153e4 100644 --- a/recipes/alignlib-lite/meta.yaml +++ b/recipes/alignlib-lite/meta.yaml @@ -10,9 +10,10 @@ source: sha256: {{ sha256 }} build: - number: 7 - skip: True # [py2k] + number: 8 script: python -m pip install --no-deps --ignore-installed . + run_exports: + - {{ pin_subpackage("alignlib-lite", max_pin="x.x") }} requirements: build: @@ -21,16 +22,22 @@ requirements: host: - python - pip - - cython + - cython <1 - boost-cpp run: - python test: imports: - - alignlib_lite + - alignlib_lite # [not aarch64] about: - home: http://sourceforge.net/projects/alignlib/ + home: https://github.com/AndreasHeger/alignlib license: GPL-2.0-or-later + license_family: GPL summary: "Simple wrapper around alignlib C++ library for sequence alignment" + dev_url: https://github.com/AndreasHeger/alignlib + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 987b7c292e0707baffa2b46d283e6c8c4934553a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 18 Jun 2024 16:02:03 -0400 Subject: [PATCH 0047/1514] Update seqchromloader to 0.7.5 (#48568) --- recipes/seqchromloader/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/seqchromloader/meta.yaml b/recipes/seqchromloader/meta.yaml index 5b7038b06d976..ec89ee7eb03ce 100644 --- a/recipes/seqchromloader/meta.yaml +++ b/recipes/seqchromloader/meta.yaml @@ -1,5 +1,5 @@ {% set name = "seqchromloader" %} -{% set version = "0.7.4" %} +{% set version = "0.7.5" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 52fa5403fa3f6447c1bf78fc52829054af98a12f0cd60a2ff356209c9ee6459e + sha256: 151335f3197a16140106ec55733321f7a01c3571ffaeaa968618cc88ac21393a build: number: 0 From edd7575835147ceb12014dcc688410291224bf0e Mon Sep 17 00:00:00 2001 From: mencian Date: Tue, 18 Jun 2024 15:08:50 -0500 Subject: [PATCH 0048/1514] Revert to medium linux-aarch64 resource_class --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c4a3117dd6022..4631c4c8db830 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -9,7 +9,7 @@ executors: linux-aarch64: machine: image: ubuntu-2204:current - resource_class: arm.large + resource_class: arm.medium jobs: # a basic unit of work in a run build_and_test: From ed43cf0d8db27d07f8c51e54e6e66faf45b763bb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 18 Jun 2024 16:43:48 -0400 Subject: [PATCH 0049/1514] Update ipyrad to 0.9.96 (#48572) --- recipes/ipyrad/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ipyrad/meta.yaml b/recipes/ipyrad/meta.yaml index dc31ad13e636f..9b46a7831e71e 100644 --- a/recipes/ipyrad/meta.yaml +++ b/recipes/ipyrad/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ipyrad" %} -{% set version = "0.9.95" %} -{% set sha256 = "c0a25f057cf5a6e812c4ff180291212b33bc50cd76f014b4d37337fd7ac0c335" %} +{% set version = "0.9.96" %} +{% set sha256 = "88bbaa820ad8b3626553c9d114a3a3f09fb35b15bff33b4b9a5b3d4e69ddb8cd" %} package: name: {{ name }} From a9dce8a16e922a920d315cd1c92c4529dcc64e16 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 18 Jun 2024 16:43:55 -0400 Subject: [PATCH 0050/1514] Update easypqp to 0.1.45 (#48569) --- recipes/easypqp/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/easypqp/meta.yaml b/recipes/easypqp/meta.yaml index f0b936a4e2f60..c94b956bafdf3 100644 --- a/recipes/easypqp/meta.yaml +++ b/recipes/easypqp/meta.yaml @@ -1,6 +1,6 @@ {% set name = "easypqp" %} -{% set version = "0.1.44" %} -{% set sha256 = "63b40374eea5518ba962dd0794cdd30e2ae19c920c87a8ed4c63df81e860fec8" %} +{% set version = "0.1.45" %} +{% set sha256 = "09d17e3ec961a32b6f36d328a18a7e753b0bc6fe27ec2a7003b2de3ad738f199" %} package: name: {{ name|lower }} From 83d8c18eb315a8306e87f79d5c7ee45c3b7a6beb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 18 Jun 2024 21:52:39 -0400 Subject: [PATCH 0051/1514] Update ndex2 to 3.9.0 (#48574) --- recipes/ndex2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ndex2/meta.yaml b/recipes/ndex2/meta.yaml index b3b3536e16221..81605623595b9 100644 --- a/recipes/ndex2/meta.yaml +++ b/recipes/ndex2/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ndex2" %} -{% set version = "3.8.0" %} +{% set version = "3.9.0" %} package: @@ -8,7 +8,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/ndex2-{{ version }}.tar.gz" - sha256: "9f4d7f4b9594664191fba5c6512e315ed47b13bc416df5769802f87a7c22d1c8" + sha256: "388b2f110b2eb1ba787298bc4210ca0cea821c462ec71a4ec4cb6eb0e1b74f70" build: noarch: python From 03cb4160bb4618d988f2cf210399fb610b79c473 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 18 Jun 2024 21:52:48 -0400 Subject: [PATCH 0052/1514] Update oakvar to 2.10.4 (#48576) --- recipes/oakvar/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/oakvar/meta.yaml b/recipes/oakvar/meta.yaml index 3449353ebe137..64ee60d2feac1 100644 --- a/recipes/oakvar/meta.yaml +++ b/recipes/oakvar/meta.yaml @@ -1,6 +1,6 @@ {% set name = "OakVar" %} -{% set version = "2.10.3" %} -{% set sha256 = "b65faaa3f3dd9ae1430607a49f7cfd5af3b2aa6d6e74a0d6129931ec59e13ce8" %} +{% set version = "2.10.4" %} +{% set sha256 = "87d31bd94ed991678c4c916ccd5f0fa0e450654308db301cabddcd76a9c465aa" %} package: name: {{ name|lower }} From 157d242c4ad18c2db005f41b12b4ff61c21b243f Mon Sep 17 00:00:00 2001 From: Roberto Rossini <71787608+robomics@users.noreply.github.com> Date: Wed, 19 Jun 2024 04:02:24 +0200 Subject: [PATCH 0053/1514] Update hictk to v1.0.0 (#48087) * Bump to v0.0.13 * Debugging * Bugfix * Update patch * Update version * Update URL and sha256 --- recipes/hictk/build.sh | 4 +- recipes/hictk/conanfile.py.patch | 90 +++++++++++++++++++++++++++++++ recipes/hictk/conanfile.txt.patch | 38 ------------- recipes/hictk/meta.yaml | 10 ++-- 4 files changed, 98 insertions(+), 44 deletions(-) create mode 100644 recipes/hictk/conanfile.py.patch delete mode 100644 recipes/hictk/conanfile.txt.patch diff --git a/recipes/hictk/build.sh b/recipes/hictk/build.sh index 237a19ba2e1ad..dcf141266bc79 100755 --- a/recipes/hictk/build.sh +++ b/recipes/hictk/build.sh @@ -32,10 +32,10 @@ mkdir -p "$CONAN_HOME/profiles/" ln -s "${RECIPE_DIR}/conan_profiles/$conan_profile" "$CONAN_HOME/profiles/$conan_profile" # Remove unnecessary dependencies from conanfile.txt -patch conanfile.txt < "${RECIPE_DIR}/conanfile.txt.patch" +patch conanfile.py < "${RECIPE_DIR}/conanfile.py.patch" # Install header-only deps -conan install conanfile.txt \ +conan install conanfile.py \ --build="*" \ -pr:b "$conan_profile" \ -pr:h "$conan_profile" \ diff --git a/recipes/hictk/conanfile.py.patch b/recipes/hictk/conanfile.py.patch new file mode 100644 index 0000000000000..78d2295831839 --- /dev/null +++ b/recipes/hictk/conanfile.py.patch @@ -0,0 +1,90 @@ +diff --git a/conanfile.py b/conanfile.py +index 29fc114..93f6940 100644 +--- a/conanfile.py ++++ b/conanfile.py +@@ -36,23 +36,11 @@ class HictkConan(ConanFile): + return 17 + + def requirements(self): +- self.requires("arrow/16.1.0#f484da4c4c27c1eb3ead5d61b70635cd") +- self.requires("boost/1.85.0#d9ae7996a5b917e0cfd4b738aa976dee", force=True) + self.requires("bshoshany-thread-pool/4.1.0#be1802a8768416a6c9b1393cf0ce5e9c") +- self.requires("catch2/3.6.0#819bc5a82c2cb626916fc18ee1dbc45f") +- self.requires("cli11/2.4.2#1b431bda2fb2cd3efed633899abcd8cc") + self.requires("concurrentqueue/1.0.4#1e48e1c712bcfd892087c9c622a51502") +- self.requires("eigen/3.4.0#2e192482a8acff96fe34766adca2b24c") +- self.requires("fast_float/6.1.1#e29acaa3d0543dee343abe3f6815346e") +- self.requires("fmt/10.2.1#9199a7a0611866dea5c8849a77467b25") +- self.requires("hdf5/1.14.3#31ccd8d4de83844f5db48471df1944a1") +- self.requires("highfive/2.9.0#c57477beed8b0110fadeb6da8f48bcc5") +- self.requires("libdeflate/1.20#3bd86e0160becf992346aa68b4938c40") + self.requires("parallel-hashmap/1.3.12#dc7755096d8a1fac7792fdd85760b6ca") + self.requires("readerwriterqueue/1.0.6#aaa5ff6fac60c2aee591e9e51b063b83") + self.requires("span-lite/0.11.0#519fd49fff711674cfed8cd17d4ed422") +- self.requires("spdlog/1.14.1#972bbf70be1da4bc57ea589af0efde03") +- self.requires("zstd/1.5.6#afefe79a309bc2a7b9f56c2093504c8b") + + def validate(self): + if self.settings.get_safe("compiler.cppstd"): +@@ -61,61 +49,3 @@ class HictkConan(ConanFile): + def configure(self): + if self.settings.compiler in ["clang", "gcc"]: + self.settings.compiler.libcxx = "libstdc++11" +- +- self.options["arrow"].compute = True +- self.options["arrow"].parquet = False +- self.options["arrow"].with_boost = True +- self.options["arrow"].with_re2 = True +- self.options["arrow"].with_thrift = False +- self.options["boost"].system_no_deprecated = True +- self.options["boost"].asio_no_deprecated = True +- self.options["boost"].filesystem_no_deprecated = True +- self.options["boost"].filesystem_version = 4 +- self.options["boost"].zlib = False +- self.options["boost"].bzip2 = False +- self.options["boost"].lzma = False +- self.options["boost"].zstd = False +- self.options["boost"].without_atomic = False +- self.options["boost"].without_charconv = True +- self.options["boost"].without_chrono = True +- self.options["boost"].without_container = True +- self.options["boost"].without_context = True +- self.options["boost"].without_contract = True +- self.options["boost"].without_coroutine = True +- self.options["boost"].without_date_time = True +- self.options["boost"].without_exception = True +- self.options["boost"].without_fiber = True +- self.options["boost"].without_filesystem = False +- self.options["boost"].without_graph = True +- self.options["boost"].without_graph_parallel = True +- self.options["boost"].without_iostreams = True +- self.options["boost"].without_json = True +- self.options["boost"].without_locale = True +- self.options["boost"].without_log = True +- self.options["boost"].without_math = True +- self.options["boost"].without_mpi = True +- self.options["boost"].without_nowide = True +- self.options["boost"].without_program_options = True +- self.options["boost"].without_python = True +- self.options["boost"].without_random = True +- self.options["boost"].without_regex = True +- self.options["boost"].without_serialization = True +- self.options["boost"].without_stacktrace = True +- self.options["boost"].without_system = False +- self.options["boost"].without_test = True +- self.options["boost"].without_thread = True +- self.options["boost"].without_timer = True +- self.options["boost"].without_type_erasure = True +- self.options["boost"].without_url = True +- self.options["boost"].without_wave = True +- self.options["fmt"].header_only = True +- self.options["hdf5"].enable_cxx = False +- self.options["hdf5"].hl = False +- self.options["hdf5"].threadsafe = False +- self.options["hdf5"].parallel = False +- self.options["highfive"].with_boost = False +- self.options["highfive"].with_eigen = False +- self.options["highfive"].with_opencv = False +- self.options["highfive"].with_xtensor = False +- self.options["spdlog"].header_only = True +- self.options["zstd"].build_programs = False diff --git a/recipes/hictk/conanfile.txt.patch b/recipes/hictk/conanfile.txt.patch deleted file mode 100644 index 294d8196b80d7..0000000000000 --- a/recipes/hictk/conanfile.txt.patch +++ /dev/null @@ -1,38 +0,0 @@ -diff --git a/conanfile.txt b/conanfile.txt -index c76a83a..434833d 100644 ---- a/conanfile.txt -+++ b/conanfile.txt -@@ -4,33 +4,12 @@ - - [requires] - bshoshany-thread-pool/4.1.0#be1802a8768416a6c9b1393cf0ce5e9c --catch2/3.5.4#d346ca291f8f62040fd9c1a891654711 --cli11/2.4.1#afacffd31f631bbb8b7c7d6425fe7a66 - concurrentqueue/1.0.4#1e48e1c712bcfd892087c9c622a51502 --eigen/3.4.0#2e192482a8acff96fe34766adca2b24c --fast_float/6.1.1#e29acaa3d0543dee343abe3f6815346e --fmt/10.2.1#9199a7a0611866dea5c8849a77467b25 --hdf5/1.14.3#31ccd8d4de83844f5db48471df1944a1 --highfive/2.9.0#c57477beed8b0110fadeb6da8f48bcc5 --libdeflate/1.19#3ea74a4549efc14d4b1202dc4bfbf602 - parallel-hashmap/1.3.11#1e67f4855a3f7cdeb977cc472113baf7 - readerwriterqueue/1.0.6#aaa5ff6fac60c2aee591e9e51b063b83 - span-lite/0.11.0#519fd49fff711674cfed8cd17d4ed422 --spdlog/1.13.0#8e88198fd5b9ee31d329431a6d0ccaa2 --zstd/1.5.6#67383dae85d33f43823e7751a6745ea1 - - [generators] - CMakeDeps - - [options] --fmt*:header_only=True --hdf5*:enable_cxx=False --hdf5*:hl=False --hdf5*:threadsafe=False --hdf5*:parallel=False --highfive*:with_boost=False --highfive*:with_eigen=False --highfive*:with_opencv=False --highfive*:with_xtensor=False --spdlog*:header_only=True --zstd*:build_programs=False diff --git a/recipes/hictk/meta.yaml b/recipes/hictk/meta.yaml index 12709d66117ba..81caca7eeab03 100644 --- a/recipes/hictk/meta.yaml +++ b/recipes/hictk/meta.yaml @@ -1,15 +1,15 @@ {% set name = "hictk" %} -{% set version = "0.0.12" %} -{% set sha256 = "03e8f7c0076ea6209fdfee1580658e871895f6a59b895407c4a25512b9558fb7" %} +{% set version = "1.0.0" %} +{% set sha256 = "e337f52658a257eb6265e211dd3cef6b73db40bdc5b5a6433b47ce4faa6006fb" %} package: name: {{ name|lower }} version: {{ version }} build: - number: 1 + number: 0 run_exports: - - {{ pin_subpackage('hictk', max_pin='x.x') }} + - {{ pin_subpackage('hictk', max_pin='x') }} source: url: https://github.com/paulsengroup/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz @@ -32,11 +32,13 @@ requirements: host: - hdf5 >=1.12 + - libarrow >=16 - libdeflate - zstd >=1.5 run: - hdf5 >=1.12 + - libarrow >=16 - libdeflate - zstd >=1.5 From 9cb55c8bec77f57a398e9974fa9b33f93e9313e7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 18 Jun 2024 22:27:16 -0400 Subject: [PATCH 0054/1514] Update pyclone-vi to 0.1.4 (#48573) * Update pyclone-vi to 0.1.4 * add run_exports * fix typo --------- Co-authored-by: mencian --- recipes/pyclone-vi/meta.yaml | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/recipes/pyclone-vi/meta.yaml b/recipes/pyclone-vi/meta.yaml index cbbafa0d83645..168ae35534378 100644 --- a/recipes/pyclone-vi/meta.yaml +++ b/recipes/pyclone-vi/meta.yaml @@ -1,29 +1,27 @@ -{% set version = "0.1.3" %} +{% set name = "pyclone-vi" %} +{% set version = "0.1.4" %} package: - name: pyclone-vi - version: '{{ version }}' + name: {{ name }} + version: {{ version }} source: url: https://github.com/Roth-Lab/pyclone-vi/archive/{{ version }}.tar.gz - sha256: 747887041252ecf7ef830f23ab0238a50215a853a154c8f76119bb995d543219 + sha256: 80e3125b0da21af8b5eed9fd81cdef17055aad3291cd9be9ca4b7b3a29a4c04d build: number: 0 noarch: python - script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed --no-cache-dir -vvv " + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" + entry_points: + - pyclone-vi= pyclone_vi.cli:main + run_exports: + - {{ pin_subpackage('pyclone-vi', max_pin="x.x") }} requirements: host: - python >=3.7 - pip - - click - - h5py - - numba - - numpy - - pandas - - scipy - run: - python >=3.7 - click @@ -41,15 +39,14 @@ test: about: home: https://github.com/Roth-Lab/pyclone-vi - license: GPLv3 - license_file: LICENSE.txt + license: "GPL-3.0-or-later" + license_file: "LICENSE.txt" summary: 'A fast method for inferring clonal population structure' license_family: GPL3 + dev_url: https://github.com/Roth-Lab/pyclone-vi extra: - maintainers: - - aroth85 + recipe-maintainers: + - aroth85 identifiers: - - doi:10.1186/s12859-020-03919-2 - container: - extended-base: true + - doi:10.1186/s12859-020-03919-2 From e08d23f8185084885c12185185c21197519c00e5 Mon Sep 17 00:00:00 2001 From: Jens Luebeck Date: Tue, 18 Jun 2024 20:32:23 -0700 Subject: [PATCH 0055/1514] Update ampliconsuite (#48577) * Update meta.yaml * Update meta.yaml --- recipes/ampliconsuite/meta.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/recipes/ampliconsuite/meta.yaml b/recipes/ampliconsuite/meta.yaml index 41257912601be..5916971d38193 100644 --- a/recipes/ampliconsuite/meta.yaml +++ b/recipes/ampliconsuite/meta.yaml @@ -1,7 +1,7 @@ {% set name="ampliconsuite" %} -{% set AS_version="1.3.2" %} -{% set AA_version="1.4.r1" %} -{% set AC_version="1.1.4" %} +{% set AS_version="1.3.3" %} +{% set AA_version="1.4.r2" %} +{% set AC_version="1.2.0" %} package: name: {{ name }} @@ -11,12 +11,12 @@ source: # the sha256 sum is generated by doing # $ wget -O- [URL] | shasum -a 256 - url: https://github.com/AmpliconSuite/AmpliconSuite-pipeline/archive/v{{ AS_version }}.tar.gz - sha256: 02b75970104d2f58b12297cf0cae1122415d38bdfb53db05ce1cbcb370c029aa + sha256: c29f159cb641068b5c38529eeb49a975d63b3369407603cf30f3d8cf49a380d5 - url: https://github.com/AmpliconSuite/AmpliconArchitect/archive/v{{ AA_version }}.tar.gz - sha256: d62e30999c69b994691c8a61b09255a0b223906fd76709febc0ae8387164f208 + sha256: 987390d7a32a6c118e6c7fea5c7a5aba2db1b3e64fc3ece5f68f50c7cabf01fa folder: ampliconarchitectlib - url: https://github.com/AmpliconSuite/AmpliconClassifier/archive/v{{ AC_version }}.tar.gz - sha256: bb5250d75e19ab7ece6d3ca554bc736a7b7b173743a4ea933e10a4084442eb2c + sha256: 85052324376756ca3558325dce45635276af3f41dd292601f673abaf9990790a build: noarch: python From efab7d6d90e04f0f681ae3bb9e89f98e8b492db2 Mon Sep 17 00:00:00 2001 From: Nico Trummer <52698566+nictru@users.noreply.github.com> Date: Wed, 19 Jun 2024 05:33:45 +0200 Subject: [PATCH 0056/1514] Add CIRI-full recipe (#48563) * Add ciri-full recipe * Use latest commit * Make output is now in bin/ --- recipes/ciri-full/CIRI-full.patch | 10 +++++++ recipes/ciri-full/build.sh | 25 ++++++++++++++++ recipes/ciri-full/meta.yaml | 47 +++++++++++++++++++++++++++++++ 3 files changed, 82 insertions(+) create mode 100644 recipes/ciri-full/CIRI-full.patch create mode 100644 recipes/ciri-full/build.sh create mode 100644 recipes/ciri-full/meta.yaml diff --git a/recipes/ciri-full/CIRI-full.patch b/recipes/ciri-full/CIRI-full.patch new file mode 100644 index 0000000000000..c3deb3e8ad4ad --- /dev/null +++ b/recipes/ciri-full/CIRI-full.patch @@ -0,0 +1,10 @@ +diff --git a/bin/CIRI_AS_v1.2/CIRI_AS_v1.2.pl b/bin/CIRI_AS_v1.2/CIRI_AS_v1.2.pl +index b551610..adf6628 100755 +--- a/bin/CIRI_AS_v1.2/CIRI_AS_v1.2.pl ++++ b/bin/CIRI_AS_v1.2/CIRI_AS_v1.2.pl +@@ -1,3 +1,5 @@ ++#!/usr/bin/env perl ++ + ############################################################################ + # Copyright (c) 2011-2015 BIOLS, CAS + # All Rights Reserved diff --git a/recipes/ciri-full/build.sh b/recipes/ciri-full/build.sh new file mode 100644 index 0000000000000..cba7a0a8f6349 --- /dev/null +++ b/recipes/ciri-full/build.sh @@ -0,0 +1,25 @@ +#!/bin/bash -euo + +make + +mkdir -p $PREFIX/bin + +cp bin/CIRI-Full_v2.1.2.jar $PREFIX/bin/CIRI-full.jar + +# Create a wrapper script to run the jar file +# Command is java -jar $PREFIX/bin/CIRI-full.jar +# Use /usr/bin/env java +cat > $PREFIX/bin/CIRI-full < Date: Tue, 18 Jun 2024 22:35:50 -0500 Subject: [PATCH 0057/1514] Add recipe for BLAZE2 v2.2.1 (#48579) * Add recipe for BLAZE v2.2.1 * edit typo * add summary * edit folder * edit sha256 --- recipes/blaze2/meta.yaml | 50 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 recipes/blaze2/meta.yaml diff --git a/recipes/blaze2/meta.yaml b/recipes/blaze2/meta.yaml new file mode 100644 index 0000000000000..90649b463cac0 --- /dev/null +++ b/recipes/blaze2/meta.yaml @@ -0,0 +1,50 @@ +{% set name = "BLAZE2" %} +{% set version = "2.2.1" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/shimlab/BLAZE/archive/refs/tags/v{{ version }}.tar.gz + sha256: 30a3f7ede0237d5fbb1e1fa7155c2505d0ce560ba92ea61654ae0ff18f7453e4 + +build: + number: 0 + noarch: python + entry_points: + - blaze = blaze:_pipeline + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + run_exports: + - {{ pin_subpackage('blaze2', max_pin="x") }} + +requirements: + host: + - python >=3 + - pip + run: + - python >=3 + - fast-edit-distance ==1.2.1 + - matplotlib-base + - tqdm + - numpy + - pandas + +test: + imports: + - blaze + commands: + - blaze --help + +about: + home: "https://github.com/shimlab/BLAZE" + license: "GPL-3.0-or-later" + license_family: GPL3 + license_file: LICENSE + summary: "Barcode identification from (Nanopore) Long reads for AnalyZing single-cell gene Expression." + dev_url: "https://github.com/shimlab/BLAZE" + doc_url: "https://github.com/shimlab/BLAZE/blob/v{{ version }}/README.md" + +extra: + identifiers: + - doi:10.1186/s13059-023-02907-y From 8ff764a789672e23c9d5faa28209e10c0c14800e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 19 Jun 2024 04:55:07 -0400 Subject: [PATCH 0058/1514] Update varfish-server-worker to 0.12.0 (#48584) --- recipes/varfish-server-worker/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/varfish-server-worker/meta.yaml b/recipes/varfish-server-worker/meta.yaml index dc77bd2febe35..607e7a5b58f63 100644 --- a/recipes/varfish-server-worker/meta.yaml +++ b/recipes/varfish-server-worker/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.11.0" %} +{% set version = "0.12.0" %} package: name: varfish-server-worker @@ -12,7 +12,7 @@ build: source: url: https://github.com/varfish-org/varfish-server-worker/archive/refs/tags/v{{ version }}.tar.gz - sha256: 81e7c2a35115989eef9e71bd08b56837fea73ac5fe4e6b09115f687d3013915a + sha256: da36b0cb9138adb4c30d1957f1d7d0e577fc49fc4b8bbad90fdd4d7f0f1e3b38 requirements: build: From dc6eb3ebfc04f6cf63a1f71073d119213fcdf572 Mon Sep 17 00:00:00 2001 From: Nextstrain bot <78992647+nextstrain-bot@users.noreply.github.com> Date: Wed, 19 Jun 2024 02:08:49 -0700 Subject: [PATCH 0059/1514] Update nextclade to 3.7.3 (#48583) Co-authored-by: nextstrain-bot --- recipes/nextclade/meta.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/recipes/nextclade/meta.yaml b/recipes/nextclade/meta.yaml index 0bb0aebedf889..313f99a39851b 100644 --- a/recipes/nextclade/meta.yaml +++ b/recipes/nextclade/meta.yaml @@ -1,5 +1,5 @@ {% set name = "nextclade" %} -{% set version = "3.7.1" %} +{% set version = "3.7.3" %} package: name: "{{ name|lower }}" @@ -7,13 +7,13 @@ package: source: - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-x86_64-unknown-linux-gnu # [linux64] - sha256: b318fe4b8152f432fce04b1a0e81c8913cfa4e59b50998739d6aa944cf6bafa2 # [linux64] + sha256: a1d0744bb7202f82582ea8f86af27dabf429275ece5e9ab26899a18d65733476 # [linux64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-aarch64-unknown-linux-gnu # [aarch64] - sha256: 187a507cb9c20bf1eda1e22379e67385dd0ac4e0ca0fb90a98dbfc83b0ccfc5c # [aarch64] + sha256: 31077e76b81af3d07e0c787f82dda56e086c4a8a1661c0888f2fcdba5d4eca6a # [aarch64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-x86_64-apple-darwin # [osx and x86_64] - sha256: 44059b1733503ba027777fee33a3266caf2d2959ced5a79c63e2178d5c635cd4 # [osx and x86_64] + sha256: 0f94a676556c8befa84847129a080a45002a7785f34588f013630e95d6791ae2 # [osx and x86_64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-aarch64-apple-darwin # [osx and arm64] - sha256: 197d5b480b683891fc3445a143b4cd29b3f5456b0a3725c831b36df782dc2391 # [osx and arm64] + sha256: 6e961751ffd953f7c1c09eac8b3bb931c244bfa04a102f0b3182154e9ec761c3 # [osx and arm64] build: number: 0 From 29de5faf77839287c26aa4f390c319edf0af6213 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 19 Jun 2024 13:09:23 +0300 Subject: [PATCH 0060/1514] Build again usearch for linux-aarch64 artifact (#48582) * Build again usearch for linux-aarch64 artifact Signed-off-by: Martin Tzvetanov Grigorov * Fail the build at CircleCI if the recipe's meta.yaml cannot be parsed Signed-off-by: Martin Tzvetanov Grigorov * Fix Bash syntax Signed-off-by: Martin Tzvetanov Grigorov * Fix usearch's meta.yaml syntax in "package > version" field Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- .circleci/check-for-additional-platforms.sh | 7 +++++++ recipes/usearch/meta.yaml | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.circleci/check-for-additional-platforms.sh b/.circleci/check-for-additional-platforms.sh index 9a0fcd6a304e6..50641d2b63052 100755 --- a/.circleci/check-for-additional-platforms.sh +++ b/.circleci/check-for-additional-platforms.sh @@ -28,6 +28,13 @@ for file in $files; do | sed -E 's/(.*)\{%(.*)%\}(.*)/# \1\2\3/g' \ | tr -d '{{' | tr -d '}}' \ | ${HOME}/bin/yq '.extra.additional-platforms[]') + + parsing_status=$? + if [ $parsing_status -gt 0 ]; then + echo "An error occurred while reading/parsing ${file}" + exit $parsing_status + fi + # Check if any additional platforms match this job for additional_platform in $additional_platforms; do if [ "${CIRCLE_JOB}" = "${job_name}-${additional_platform}" ] diff --git a/recipes/usearch/meta.yaml b/recipes/usearch/meta.yaml index 401155627a899..9a4c9a9cecfa9 100644 --- a/recipes/usearch/meta.yaml +++ b/recipes/usearch/meta.yaml @@ -3,7 +3,7 @@ package: name: "{{ name|lower }}" - version: "{{ version |replace("-", "_") }}" + version: {{ version |replace("-", "_") }} source: - url: https://github.com/rcedgar/{{ name }}12/releases/download/v{{ version }}1/usearch_linux_x86_{{ version }} # [linux and x86_64] @@ -14,7 +14,7 @@ source: sha256: 49e50a72707ae81be960e1b3dbba5b4cf82e7d73511a23a35497a60b926cb100 # [osx] build: - number: 0 + number: 1 script: - mkdir -p ${PREFIX}/bin - cp usearch_* ${PREFIX}/bin/usearch @@ -29,6 +29,7 @@ test: about: home: "https://github.com/rcedgar/usearch12" license: GPL-3.0-or-later + license_family: GPL3 summary: USEARCH is a unique sequence analysis tool which offers search and clustering algorithms that are often orders of magnitude faster than BLAST. extra: From 8e2fbbe953d9507ef1243ed2e2df8f0079242eac Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 19 Jun 2024 06:42:14 -0400 Subject: [PATCH 0061/1514] Update parascopy to 1.16.0 (#48585) --- recipes/parascopy/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/parascopy/meta.yaml b/recipes/parascopy/meta.yaml index 31fd2a45e6b80..0f24f33fe767f 100644 --- a/recipes/parascopy/meta.yaml +++ b/recipes/parascopy/meta.yaml @@ -1,12 +1,12 @@ {% set name = "parascopy" %} -{% set version = "1.15.1" %} +{% set version = "1.16.0" %} package: name: {{ name|lower }} version: {{ version }} build: - number: 2 + number: 0 entry_points: - parascopy=parascopy.entry_point:main run_exports: @@ -14,7 +14,7 @@ build: source: url: https://github.com/tprodanov/{{ name }}/archive/v{{ version }}.tar.gz - sha256: 36eb9f6956e4d58e6a70523f8f489436bac4eff93ba1b656d7e2a24eb333840b + sha256: 72b4874990d19a85fe98dafc74808bb9d9357148d8dda6ed3aa80bf943de6167 requirements: build: From 56b5db2a443abceafc6a532afb0163a7b3677a08 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 19 Jun 2024 15:07:52 +0300 Subject: [PATCH 0062/1514] mummer4: add linux-aarch64 build (#48590) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/mummer4/build.sh | 4 +++- recipes/mummer4/meta.yaml | 8 +++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/recipes/mummer4/build.sh b/recipes/mummer4/build.sh index 94a1d588d5e5c..d55e804e2c424 100644 --- a/recipes/mummer4/build.sh +++ b/recipes/mummer4/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + ./configure --prefix=$PREFIX -make +make -j ${CPU_COUNT} make install diff --git a/recipes/mummer4/meta.yaml b/recipes/mummer4/meta.yaml index a79a58dbee0ab..fdfe98e2ce29b 100644 --- a/recipes/mummer4/meta.yaml +++ b/recipes/mummer4/meta.yaml @@ -14,7 +14,9 @@ source: - 0001-sort-mgaps-file-before-postpro.-on-behalf-of-jervied.patch # fixes https://github.com/mummer4/mummer/issues/55 build: - number: 6 + number: 7 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} requirements: build: @@ -39,3 +41,7 @@ about: home: 'https://mummer4.github.io/' license: "The Artistic License 2.0" summary: "MUMmer is a system for rapidly aligning entire genomes" + +extra: + additional-platforms: + - linux-aarch64 From 3879eb266b891d278da2274415af9f8da678f170 Mon Sep 17 00:00:00 2001 From: Nextstrain bot <78992647+nextstrain-bot@users.noreply.github.com> Date: Wed, 19 Jun 2024 05:48:44 -0700 Subject: [PATCH 0063/1514] Update nextclade to 3.7.4 (#48593) Co-authored-by: nextstrain-bot --- recipes/nextclade/meta.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/recipes/nextclade/meta.yaml b/recipes/nextclade/meta.yaml index 313f99a39851b..7f5eba47272a5 100644 --- a/recipes/nextclade/meta.yaml +++ b/recipes/nextclade/meta.yaml @@ -1,5 +1,5 @@ {% set name = "nextclade" %} -{% set version = "3.7.3" %} +{% set version = "3.7.4" %} package: name: "{{ name|lower }}" @@ -7,13 +7,13 @@ package: source: - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-x86_64-unknown-linux-gnu # [linux64] - sha256: a1d0744bb7202f82582ea8f86af27dabf429275ece5e9ab26899a18d65733476 # [linux64] + sha256: 5b3b8b155fa3bb3614284362bf265d7662220fee09a29ec8f5092b520a851ff6 # [linux64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-aarch64-unknown-linux-gnu # [aarch64] - sha256: 31077e76b81af3d07e0c787f82dda56e086c4a8a1661c0888f2fcdba5d4eca6a # [aarch64] + sha256: 68a14acccb0f893e3baaf19c7f1581781ea8aec7e61deee09ceec4d55aa3f280 # [aarch64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-x86_64-apple-darwin # [osx and x86_64] - sha256: 0f94a676556c8befa84847129a080a45002a7785f34588f013630e95d6791ae2 # [osx and x86_64] + sha256: 7255d7d75996654cf134e4cf145456a93a443c103be27da8b2f9b3952769986c # [osx and x86_64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-aarch64-apple-darwin # [osx and arm64] - sha256: 6e961751ffd953f7c1c09eac8b3bb931c244bfa04a102f0b3182154e9ec761c3 # [osx and arm64] + sha256: 8d61bcb2036c2317fdc3d1d1ab75616a00e3864b9993ec2b342f418ea9055f59 # [osx and arm64] build: number: 0 From 36a1b413159a0501250f607b08400f173cd9cf55 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 19 Jun 2024 12:20:02 -0400 Subject: [PATCH 0064/1514] Update pgscatalog.match to 0.2.2 (#48595) --- recipes/pgscatalog.match/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pgscatalog.match/meta.yaml b/recipes/pgscatalog.match/meta.yaml index 758245eb75a7f..239167ed3705d 100644 --- a/recipes/pgscatalog.match/meta.yaml +++ b/recipes/pgscatalog.match/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pgscatalog.match" %} -{% set version = "0.2.1" %} +{% set version = "0.2.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pgscatalog_match-{{ version }}.tar.gz - sha256: 509628df5a2819c29ff2a04f47ce8f285c672cf1a1c56db2e06db2bc6fdade04 + sha256: 29bd67377ea2f50b8fde7c8287d3498987395c5d3f92ac378cc0886791b549b8 build: number: 0 From 1aa7038d87993acd2c13cdaa36f0ae3103f5a3dc Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 19 Jun 2024 12:20:28 -0400 Subject: [PATCH 0065/1514] Update pgscatalog-utils to 1.1.2 (#48596) --- recipes/pgscatalog-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pgscatalog-utils/meta.yaml b/recipes/pgscatalog-utils/meta.yaml index f471e166e45f1..f5b5d58027690 100644 --- a/recipes/pgscatalog-utils/meta.yaml +++ b/recipes/pgscatalog-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pgscatalog-utils" %} -{% set version = "1.1.1" %} +{% set version = "1.1.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pgscatalog_utils-{{ version }}.tar.gz - sha256: 7ab12d2a6e3912ecfa628a695e40a7e7e3a803d49c47826c107550774310fc2d + sha256: f241285f4d316d69a7ca8aef6ccfa0a136431a79f78f390576ab0e92a0e9bdcc build: noarch: python From bcbd0a099cc13345d6f56e1ed712bb2f48f20414 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 19 Jun 2024 12:21:31 -0400 Subject: [PATCH 0066/1514] Update pyhmmer to 0.10.13 (#48597) --- recipes/pyhmmer/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pyhmmer/meta.yaml b/recipes/pyhmmer/meta.yaml index 3dbc2823f1048..be975f2c996f2 100644 --- a/recipes/pyhmmer/meta.yaml +++ b/recipes/pyhmmer/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pyhmmer" %} -{% set version = "0.10.12" %} +{% set version = "0.10.13" %} package: name: "{{ name|lower }}" @@ -7,10 +7,10 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 8457547adaa5f570f9a360a015a968b52709634540f95c17f687916640a075d1 + sha256: 65ef2211b96d804e17ba30df7061918a9c6c258353e732dba1ead32d2a623b2e build: - number: 1 + number: 0 skip: True # [py2k or win] script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir --use-pep517 -vvv" run_exports: From a1767bf84093411f42541a7dde13bd1fe0b4b945 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 19 Jun 2024 13:00:01 -0400 Subject: [PATCH 0067/1514] Update piranha-polio to 1.2.5 (#48600) * Update piranha-polio to 1.2.4 * Update piranha-polio to 1.2.5 --- recipes/piranha-polio/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/piranha-polio/meta.yaml b/recipes/piranha-polio/meta.yaml index baed5463e406f..679fe76aa8c46 100644 --- a/recipes/piranha-polio/meta.yaml +++ b/recipes/piranha-polio/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.2.3" %} +{% set version = "1.2.5" %} package: name: piranha-polio @@ -6,7 +6,7 @@ package: source: url: https://github.com/polio-nanopore/piranha/archive/refs/tags/{{ version }}.tar.gz - sha256: b39d8309e0c9758a620adb9d85243323d965731a57b802c70689459098739ace + sha256: c6b9f8fdaab085bfbe75b2839d29dceb3e40c8af100379123f40eeebeb83c8fb build: number: 0 From 4797b26633f785a7cc52460a28d8b7ac44d25d38 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 19 Jun 2024 20:09:35 +0300 Subject: [PATCH 0068/1514] sickle-trim: add linux-aarch64 build (#48591) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/sickle-trim/build.sh | 5 ++++- recipes/sickle-trim/meta.yaml | 8 +++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/recipes/sickle-trim/build.sh b/recipes/sickle-trim/build.sh index 46403c59d26b2..a9ab6ed6899b0 100644 --- a/recipes/sickle-trim/build.sh +++ b/recipes/sickle-trim/build.sh @@ -1,8 +1,11 @@ #!/bin/bash +set -xe + LDFLAGS="$LDFLAGS -L$PREFIX/lib" CFLAGS="$CFLAGS -Wall -pedantic -I$PREFIX/include -DVERSION=$PKG_VERSION" -make CC=$CC CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" -j$CPU_COUNT +make CC=$CC CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" -j${CPU_COUNT} mkdir -p $PREFIX/bin cp sickle $PREFIX/bin +chmod 0755 $PREFIX/bin/sickle \ No newline at end of file diff --git a/recipes/sickle-trim/meta.yaml b/recipes/sickle-trim/meta.yaml index 1af0a3e4bfab7..4543169dc404e 100644 --- a/recipes/sickle-trim/meta.yaml +++ b/recipes/sickle-trim/meta.yaml @@ -10,7 +10,9 @@ source: sha256: {{ sha256 }} build: - number: 9 + number: 10 + run_exports: + - {{ pin_subpackage('sickle-trim', max_pin="x") }} requirements: build: @@ -29,3 +31,7 @@ about: home: https://github.com/najoshi/sickle license: MIT summary: Windowed Adaptive Trimming for fastq files using quality + +extra: + additional-platforms: + - linux-aarch64 From db09207581aaa2ecc1895a1715692c015a630cf0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 19 Jun 2024 17:00:01 -0400 Subject: [PATCH 0069/1514] Update cutadapt to 4.9 (#48604) --- recipes/cutadapt/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/cutadapt/meta.yaml b/recipes/cutadapt/meta.yaml index 53db3e41ea252..6c35dd340e3da 100644 --- a/recipes/cutadapt/meta.yaml +++ b/recipes/cutadapt/meta.yaml @@ -1,15 +1,15 @@ -{% set version = "4.8" %} +{% set version = "4.9" %} package: name: cutadapt version: {{ version }} source: - url: https://files.pythonhosted.org/packages/c6/a7/7d5399e15747df9d203ecd12f510665db1a38b2bddac4e69eb715f2f90fe/cutadapt-4.8.tar.gz - sha256: ac852f6b5f2d1147d0d34bef2eaa5879776f81c69a35dd328a701aae39ec6034 + url: https://files.pythonhosted.org/packages/cb/15/85799e7fa1dfb86b8f79f8f98902b28003a054c46447a0580f21e535dbf3/cutadapt-4.9.tar.gz + sha256: da3b45775b07334d2e2580a7b154d19ea7e872f0da813bb1ac2a4da712bfc223 build: - number: 1 + number: 0 script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv" skip: True # [py < 38] run_exports: From ab7207d0beed499fd62fd71881fdf7cf1f345679 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 20 Jun 2024 00:52:00 -0400 Subject: [PATCH 0070/1514] Update bioframe to 0.7.2 (#48608) --- recipes/bioframe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/bioframe/meta.yaml b/recipes/bioframe/meta.yaml index 6d9e0f9b0eca2..16293d32affed 100644 --- a/recipes/bioframe/meta.yaml +++ b/recipes/bioframe/meta.yaml @@ -1,5 +1,5 @@ {% set name = "bioframe" %} -{% set version = "0.7.1" %} +{% set version = "0.7.2" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 40032655d227e957fcc52e178d26b8791eb4b435ccae35b9bf4341f69e96e064 + sha256: 23fa150948fb1f9409a8d608c94f222fd2e144c8f1ac965879517d5e87d2c598 build: noarch: python From c432048fe9e98c2cd8c56b5e1d31c83b5c8321e4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 20 Jun 2024 00:53:04 -0400 Subject: [PATCH 0071/1514] Update ntroot to 1.1.0 (#48606) --- recipes/ntroot/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/ntroot/meta.yaml b/recipes/ntroot/meta.yaml index a7fc5c25f572e..02d4d877d6723 100644 --- a/recipes/ntroot/meta.yaml +++ b/recipes/ntroot/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ntRoot" %} -{% set version = "1.0.1" %} +{% set version = "1.1.0" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: https://github.com/bcgsc/ntRoot/releases/download/v{{ version }}/{{ name }}-{{ version }}.tar.gz - sha256: dd7a72cc0a2d92163a7ff7135e99e034d0831a6da16d3d8731039fff275502b5 + sha256: 96bb474f0fa91e8730117d64448e427f0a39c6d15a7e25a5132014bb168a919b build: - number: 2 + number: 0 noarch: generic run_exports: - {{ pin_subpackage("ntroot", max_pin="x") }} From a81d1218ace0c97c281b832ba6b2f5c1fa7d8053 Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Wed, 19 Jun 2024 21:53:39 -0700 Subject: [PATCH 0072/1514] Update ntroot to 1.1.0 (#48605) --- recipes/ntroot/meta.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/recipes/ntroot/meta.yaml b/recipes/ntroot/meta.yaml index 02d4d877d6723..f1d0979b9a359 100644 --- a/recipes/ntroot/meta.yaml +++ b/recipes/ntroot/meta.yaml @@ -25,6 +25,7 @@ requirements: - samtools - ntedit >=2.0.2 - perl + - bedtools test: commands: From b640da7382c5ac775b13932f247dababc581aa5a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 20 Jun 2024 01:52:58 -0400 Subject: [PATCH 0073/1514] Update perl-mce to 1.897 (#48611) --- recipes/perl-mce/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/perl-mce/meta.yaml b/recipes/perl-mce/meta.yaml index 38af346fb81f9..724ef988ccc24 100644 --- a/recipes/perl-mce/meta.yaml +++ b/recipes/perl-mce/meta.yaml @@ -1,13 +1,13 @@ {% set name = "perl-mce" %} -{% set version = "1.896" %} -{% set sha256 = "ee2c98346cbc90bb533023c1d3bad2b454e5a281030f6746aa55c7941468a13d" %} +{% set version = "1.897" %} +{% set sha256 = "673d337d14fc2d7a12576ca6615c729821dc616ee76e0ecc9c0f32de8a9f9c39" %} package: name: {{ name }} version: {{ version }} source: - url: https://cpan.metacpan.org/authors/id/M/MA/MARIOROY/MCE-1.896.tar.gz + url: https://cpan.metacpan.org/authors/id/M/MA/MARIOROY/MCE-1.897.tar.gz sha256: {{ sha256 }} build: From e578e64331607e8c10d7a7ffa8550ac843eeb755 Mon Sep 17 00:00:00 2001 From: Jean Mainguy Date: Thu, 20 Jun 2024 08:35:13 +0200 Subject: [PATCH 0074/1514] Update binette to 1.0.1 (#48609) * fix pyfastx version * update binette to 1.0.1 * reset build number * reset build number * Reset build number to 0 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Grigorov Co-authored-by: Martin Tzvetanov Grigorov --- recipes/binette/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/binette/meta.yaml b/recipes/binette/meta.yaml index 069ecbb03ba17..7c516ff19ef72 100644 --- a/recipes/binette/meta.yaml +++ b/recipes/binette/meta.yaml @@ -1,16 +1,16 @@ {% set name = "Binette" %} -{% set version = "1.0.0" %} +{% set version = "1.0.1" %} package: name: {{ name|lower }} version: {{ version }} source: url: https://github.com/genotoul-bioinfo/{{ name|lower }}/archive/refs/tags/v{{ version }}.tar.gz - sha256: 121cff275fac2bbec2062863fa074c7f4f2a16eb52cada89bc46c87b7429d63d + sha256: 968c6568b862f4586388fbc63d8fd6054fb2dd0b177d5594099235f48ddea7ab build: noarch: python - number: 1 + number: 0 script: {{ PYTHON }} -m pip install --no-deps --ignore-installed -vv . run_exports: - {{ pin_subpackage(name|lower, max_pin="x") }} From 32f75d23d9207c9d2f5cce4f1cbeca5646f87733 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 20 Jun 2024 02:52:01 -0400 Subject: [PATCH 0075/1514] Update paragone to 1.1.0 (#48612) --- recipes/paragone/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/paragone/meta.yaml b/recipes/paragone/meta.yaml index c35ccddcbb661..1f6f1998f41c5 100644 --- a/recipes/paragone/meta.yaml +++ b/recipes/paragone/meta.yaml @@ -1,5 +1,5 @@ {% set name = "paragone" %} -{% set version = "1.0.0" %} +{% set version = "1.1.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: "https://github.com/chrisjackson-pellicle/ParaGone/archive/refs/tags/v{{ version }}.tar.gz" - sha256: 3434714fed0239afdc8c5bd57cb6ee642563cf651fd668150a34f9f2c23981b2 + sha256: 4ed8a774418bf4a06ddde2088fc3331df5b212b1aeecdc9bc87272725aaf1928 build: number: 0 From 87bc681c355a1fea82de77b0242e64d09bbb7837 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 20 Jun 2024 03:28:24 -0400 Subject: [PATCH 0076/1514] Update psdm to 0.3.0 (#48613) * Update psdm to 0.3.0 * Add run_exports --------- Co-authored-by: Martin Grigorov --- recipes/psdm/meta.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recipes/psdm/meta.yaml b/recipes/psdm/meta.yaml index b96f7599db70f..3d8738a5598c6 100644 --- a/recipes/psdm/meta.yaml +++ b/recipes/psdm/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.2.0" %} +{% set version = "0.3.0" %} {% set name = "psdm" %} package: @@ -7,10 +7,12 @@ package: source: url: https://github.com/mbhall88/{{ name }}/archive/{{ version }}.tar.gz - sha256: 6e1842426ef27dd7ea81384049284253b5130a3cdb7e29b6a73dce6cfae8d05c + sha256: 0414b2fde2e6c43a7d9bfd7a53da67f8e084cc4ec350ad7c498cc1937b9a15cc build: - number: 3 + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin='x.x') }} requirements: build: From 565625fc2f387daa2a2a34f74f64e2de4754c96f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 20 Jun 2024 09:38:47 -0400 Subject: [PATCH 0077/1514] Update pybiolib to 1.1.2189 (#48622) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index 2f81907e525f5..e68b740063b4c 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.1.2184" %} +{% set version = "1.1.2189" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 9b044ed37d6b9ac81e262d718009367eabfd7164a7c91e79b77bd211504358a3 + sha256: 8f8045cf41adf026158551da0eb8c8c15f8954a7231208a4963df0d01b7f026f build: noarch: python From 4800a9a1dbfb500e42ce42c4ba821987bd71b6ba Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 20 Jun 2024 09:39:26 -0400 Subject: [PATCH 0078/1514] Update kaptive to 3.0.0b4 (#48629) --- recipes/kaptive/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/kaptive/meta.yaml b/recipes/kaptive/meta.yaml index 60b9b840802d8..30b0bfa196a62 100644 --- a/recipes/kaptive/meta.yaml +++ b/recipes/kaptive/meta.yaml @@ -1,5 +1,5 @@ {% set name = "kaptive" %} -{% set version = "3.0.0b1" %} +{% set version = "3.0.0b4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/kaptive-{{ version }}.tar.gz - sha256: ee3f4dc710b91580db84f9eb24bfc8adf6bc9d52871a018f0aabb0c4b6dd5790 + sha256: c8e6829bfbb1e4941cf24ae604c4e7ae256cc5b165be3e517cf1b60c309a97ba build: entry_points: From 6d2ec523e41564c3daf2380a48e54190d1273a6b Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Thu, 20 Jun 2024 10:08:19 -0400 Subject: [PATCH 0079/1514] remove build failure file (#48633) --- .../iqtree/build_failure.linux-aarch64.yaml | 50 ------------------- 1 file changed, 50 deletions(-) delete mode 100644 recipes/iqtree/build_failure.linux-aarch64.yaml diff --git a/recipes/iqtree/build_failure.linux-aarch64.yaml b/recipes/iqtree/build_failure.linux-aarch64.yaml deleted file mode 100644 index 62bdc59237ce4..0000000000000 --- a/recipes/iqtree/build_failure.linux-aarch64.yaml +++ /dev/null @@ -1,50 +0,0 @@ -recipe_sha: 37f65602f26dfa4a1fc885af1933889624c1c62af9b364292dcd0b96cdc18a81 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -reason: This recipe caused CircleCI builder to become unresponsive during bulk builds. Needs PR to investigate -category: CI unresponsive -log: |- - 16:08:41 [32mBIOCONDA INFO [0m (OUT) [ 41%] Built target whtest [0m - 16:08:41 [32mBIOCONDA INFO [0m (OUT) [ 41%] Building CXX object vectorclass/CMakeFiles/vectorclass.dir/instrset_detect.cpp.o [0m - 16:08:42 [32mBIOCONDA INFO [0m (OUT) [ 41%] Linking CXX static library libvectorclass.a [0m - 16:08:42 [32mBIOCONDA INFO [0m (OUT) [ 41%] Built target vectorclass [0m - 16:08:42 [32mBIOCONDA INFO [0m (OUT) [ 41%] Building CXX object model/CMakeFiles/model.dir/modelmarkov.cpp.o [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) In file included from /opt/conda/conda-bld/iqtree_1718208277480/work/ncl/nxsdefs.h:49, [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/iqtree_1718208277480/work/ncl/ncl.h:90, [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/iqtree_1718208277480/work/tree/node.h:37, [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/iqtree_1718208277480/work/tree/mtree.h:23, [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/iqtree_1718208277480/work/tree/phylotree.h:36, [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/iqtree_1718208277480/work/model/modelmarkov.h:23, [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/iqtree_1718208277480/work/model/modelmarkov.cpp:20: [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/iqtree_1718208277480/work/ncl/nxsstring.h:177:17: warning: 'template struct std::binary_function' is deprecated [-Wdeprecated-declarations] [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) 177 | : public std::binary_function [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) | ^~~~~~~~~~~~~~~ [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) In file included from /opt/conda/conda-bld/iqtree_1718208277480/_build_env/aarch64-conda-linux-gnu/include/c++/12.3.0/bits/refwrap.h:39, [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/iqtree_1718208277480/_build_env/aarch64-conda-linux-gnu/include/c++/12.3.0/vector:66, [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/iqtree_1718208277480/work/tree/node.h:25: [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/iqtree_1718208277480/_build_env/aarch64-conda-linux-gnu/include/c++/12.3.0/bits/stl_function.h:131:12: note: declared here [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) 131 | struct binary_function [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) | ^~~~~~~~~~~~~~~ [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/iqtree_1718208277480/work/model/modelmarkov.h:146:45: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated] [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) 146 | virtual void readRates(istream &in) throw(const char*, string); [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) | ^~~~~ [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/iqtree_1718208277480/work/model/modelmarkov.h:153:44: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated] [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) 153 | virtual void readRates(string str) throw(const char*); [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) | ^~~~~ [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/iqtree_1718208277480/work/model/modelmarkov.h:160:49: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated] [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) 160 | virtual void readStateFreq(istream &in) throw(const char*); [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) | ^~~~~ [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/iqtree_1718208277480/work/model/modelmarkov.h:167:48: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated] [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) 167 | virtual void readStateFreq(string str) throw(const char*); [0m - 16:08:43 [32mBIOCONDA INFO [0m (OUT) | ^~~~~ [0m - 16:08:46 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/iqtree_1718208277480/work/model/modelmarkov.cpp:1634:42: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated] [0m - 16:08:46 [32mBIOCONDA INFO [0m (OUT) 1634 | void ModelMarkov::readRates(istream &in) throw(const char*, string) { [0m - 16:08:46 [32mBIOCONDA INFO [0m (OUT) | ^~~~~ [0m - 16:08:46 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/iqtree_1718208277480/work/model/modelmarkov.cpp:1699:41: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated] [0m - 16:08:46 [32mBIOCONDA INFO [0m (OUT) 1699 | void ModelMarkov::readRates(string str) throw(const char*) { [0m - 16:08:46 [32mBIOCONDA INFO [0m (OUT) | ^~~~~ [0m - 16:08:46 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/iqtree_1718208277480/work/model/modelmarkov.cpp:1736:46: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated] [0m - 16:08:46 [32mBIOCONDA INFO [0m (OUT) 1736 | void ModelMarkov::readStateFreq(istream &in) throw(const char*) { [0m - 16:08:46 [32mBIOCONDA INFO [0m (OUT) | ^~~~~ [0m - 16:08:46 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/iqtree_1718208277480/work/model/modelmarkov.cpp:1758:45: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated] [0m - 16:08:46 [32mBIOCONDA INFO [0m (OUT) 1758 | void ModelMarkov::readStateFreq(string str) throw(const char*) { [0m - 16:08:46 [32mBIOCONDA INFO [0m (OUT) | ^~~~~ [0m From 97b8297775a2707a7028ff64a949cb7488dbaef1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 20 Jun 2024 11:56:12 -0400 Subject: [PATCH 0080/1514] Update haplotaglr to 1.1.7 (#48634) --- recipes/haplotaglr/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/haplotaglr/meta.yaml b/recipes/haplotaglr/meta.yaml index 474b17810f67c..f7f9cae84e6d8 100644 --- a/recipes/haplotaglr/meta.yaml +++ b/recipes/haplotaglr/meta.yaml @@ -1,5 +1,5 @@ {% set name = "HaplotagLR" %} -{% set version = "1.1.5" %} +{% set version = "1.1.7" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 5cbaa37b817a40f4b06ff3437f24e5364d516477df3abd550e3b00382be7b7f8 + sha256: f3da6fe189e57754f2d6911d1cf497a08dcc4ab9f9a4ee25998023fcde602ed3 build: number: 0 From 9bb6f8e489e41dd22f7dea2a19a32196313152ec Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 20 Jun 2024 11:57:50 -0400 Subject: [PATCH 0081/1514] Update perl-mce-shared to 1.891 (#48610) --- recipes/perl-mce-shared/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/perl-mce-shared/meta.yaml b/recipes/perl-mce-shared/meta.yaml index d7c0dc84f372e..c37471eabc40c 100644 --- a/recipes/perl-mce-shared/meta.yaml +++ b/recipes/perl-mce-shared/meta.yaml @@ -1,14 +1,14 @@ {% set name = "perl-mce-shared" %} -{% set version = "1.890" %} -{% set sha256 = "2566c95152d49eed0a785069c3e6dca0f1e890c2975cb14c45731f1dd3f1cbc2" %} +{% set version = "1.891" %} +{% set sha256 = "f65459bd04f5e41bbf3ba82d74af3e0fc6c992cfc245dc403b6ce4cc24904cb5" %} package: name: {{ name }} version: {{ version }} source: - url: https://cpan.metacpan.org/authors/id/M/MA/MARIOROY/MCE-Shared-1.890.tar.gz + url: https://cpan.metacpan.org/authors/id/M/MA/MARIOROY/MCE-Shared-1.891.tar.gz sha256: {{ sha256 }} build: From 9f3d18cad7ccad5281c90c6755e1717fa3584994 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 20 Jun 2024 18:58:26 +0300 Subject: [PATCH 0082/1514] metabat2: add linux-aarch64 build (#48589) * metabat2: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Update metabat2 to 2.17 Signed-off-by: Martin Tzvetanov Grigorov * metabat2: add automake and libtool as build dependencies Signed-off-by: Martin Tzvetanov Grigorov * Use newer sysroot for Linux aarch64 * metabat2: apply arm_hwcap.patch from htslib recipe to solve a problem with missing HWCAP_ASIMD Signed-off-by: Martin Tzvetanov Grigorov * Manually apply the patch to htscodecs after calling `cmake ..` Signed-off-by: Martin Tzvetanov Grigorov * Use Cmake PATCH_COMMAND to patch htscodecs Signed-off-by: Martin Tzvetanov Grigorov * It does not build on osx-64 --------- Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/metabat2/arm_hwcap.patch | 15 +++++++++++++++ recipes/metabat2/build.sh | 5 ++++- recipes/metabat2/cmake-htslib.patch | 12 ++++++++++++ recipes/metabat2/meta.yaml | 16 ++++++++++++---- 5 files changed, 43 insertions(+), 6 deletions(-) create mode 100644 recipes/metabat2/arm_hwcap.patch create mode 100644 recipes/metabat2/cmake-htslib.patch diff --git a/build-fail-blacklist b/build-fail-blacklist index 2ffeebf31cd48..162fe2d486efa 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -348,7 +348,6 @@ recipes/circle-map-cpp recipes/conduit-assembler # configure: error: cannot find required auxiliary files: config.guess config.sub -recipes/metabat2 recipes/bcftools-snvphyl-plugin # rnamoves.c:(.text.RNA2_move_noLP_bpshift+0x1f): undefined reference to `close_bp' diff --git a/recipes/metabat2/arm_hwcap.patch b/recipes/metabat2/arm_hwcap.patch new file mode 100644 index 0000000000000..40733dcc33b1d --- /dev/null +++ b/recipes/metabat2/arm_hwcap.patch @@ -0,0 +1,15 @@ +Conda-forge's build environment on ARM uses sysroot_linux-aarch64 2.17, which +is based on glibc 2.17 so does not define HWCAP_* values on ARM. +Work around this by including the kernel header to get the desired values. + +--- a/htscodecs/htscodecs/rANS_static4x16pr.c 2023-10-10 02:54:16 ++++ b/htscodecs/htscodecs/rANS_static4x16pr.c 2024-03-06 00:01:14 +@@ -1030,6 +1030,8 @@ + + #if defined(__linux__) || defined(__FreeBSD__) + #include ++// Ensure ARM HWCAP_* values are defined even on old glibc ++#include + #elif defined(_WIN32) + #include + #endif diff --git a/recipes/metabat2/build.sh b/recipes/metabat2/build.sh index 15d5987238a74..b1016ed8a8013 100644 --- a/recipes/metabat2/build.sh +++ b/recipes/metabat2/build.sh @@ -1,8 +1,11 @@ #!/bin/bash +set -xe + #sed -i.bak "s/set(Boost_USE_STATIC_LIBS ON)/set(Boost_USE_STATIC_LIBS OFF)/g" src/CMakeLists.txt mkdir build cd build + export CXXFLAGS=-ldeflate cmake .. -DCMAKE_INSTALL_PREFIX=$PREFIX -DBOOST_ROOT=$PREFIX @@ -11,5 +14,5 @@ make check_git_repository sed -i.bak 's/GIT-NOTFOUND/'$PKG_VERSION' (Bioconda)/' ../metabat_version.h # Build & install -make VERBOSE=1 +make VERBOSE=1 -j ${CPU_COUNT} make install diff --git a/recipes/metabat2/cmake-htslib.patch b/recipes/metabat2/cmake-htslib.patch new file mode 100644 index 0000000000000..d58555d741f44 --- /dev/null +++ b/recipes/metabat2/cmake-htslib.patch @@ -0,0 +1,12 @@ +--- a/cmake/htslib.cmake 2024-06-20 08:08:51.668000000 +0000 ++++ b.cmake/htslib.cmake 2024-06-20 08:21:07.352000000 +0000 +@@ -14,7 +14,8 @@ + ExternalProject_Add(htslib + PREFIX ${htslib_PREFIX} + GIT_REPOSITORY "https://github.com/samtools/htslib.git" +- GIT_TAG "1.17" ++ GIT_TAG "1.20" ++ PATCH_COMMAND patch -p1 < $ENV{RECIPE_DIR}/arm_hwcap.patch + UPDATE_COMMAND "" + BUILD_IN_SOURCE 1 + #CONFIGURE_COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/contrib/htslib-prefix/src/htslib/configure" diff --git a/recipes/metabat2/meta.yaml b/recipes/metabat2/meta.yaml index d15c47159b08d..1644f7f07c36d 100644 --- a/recipes/metabat2/meta.yaml +++ b/recipes/metabat2/meta.yaml @@ -1,5 +1,5 @@ {% set name = "metabat2" %} -{% set version = "2.15" %} +{% set version = "2.17" %} package: name: "{{ name|lower }}" @@ -7,12 +7,16 @@ package: source: url: https://bitbucket.org/berkeleylab/metabat/get/v{{ version }}.tar.bz2 - sha256: c6bf3a64bbb4e8a25cd10e115b9f277d768552d0b299ad3b81d7d95762c0bfe4 + sha256: fb46f5c3d3b0c327f62a58fceee04a55b9003276bc768040ba93c9b7913b52e2 patches: - cmake.patch + - cmake-htslib.patch # [linux and aarch64] build: - number: 3 + number: 0 + skip: True # [osx] + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} requirements: build: @@ -21,6 +25,8 @@ requirements: - {{ compiler('c') }} - cmake - autoconf + - automake + - libtool - llvm-openmp # [osx] - libgomp # [linux] host: @@ -45,4 +51,6 @@ about: license_file: license.txt summary: "Metagenome binning" - +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 08e079b534088c99921a9eb5672eb3f07a14da7e Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 20 Jun 2024 18:59:15 +0300 Subject: [PATCH 0083/1514] ucsc-bedtogenepred: update to v466 (#48620) * ucsc-bedtogenepred: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * disable linux-aarch64 --------- Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-bedtogenepred/build.sh | 24 ++++++++++++++-------- recipes/ucsc-bedtogenepred/include.patch | 6 +++--- recipes/ucsc-bedtogenepred/meta.yaml | 26 ++++++++++++++++-------- 4 files changed, 36 insertions(+), 21 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 162fe2d486efa..4f69e1cbf7322 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -788,7 +788,6 @@ recipes/ucsc-bedjointaboffset recipes/ucsc-bedpileups recipes/ucsc-bedremoveoverlap recipes/ucsc-bedrestricttopositions -recipes/ucsc-bedtogenepred recipes/ucsc-bedtopsl recipes/ucsc-bedweedoverlapping recipes/ucsc-bigwigmerge diff --git a/recipes/ucsc-bedtogenepred/build.sh b/recipes/ucsc-bedtogenepred/build.sh index a6f95b7b9cd2c..aa966fdb34201 100644 --- a/recipes/ucsc-bedtogenepred/build.sh +++ b/recipes/ucsc-bedtogenepred/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p $BINDIR -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/bedToGenePred && make) -cp bin/bedToGenePred "$PREFIX/bin" -chmod +x "$PREFIX/bin/bedToGenePred" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/bedToGenePred && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/bedToGenePred "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/bedToGenePred" diff --git a/recipes/ucsc-bedtogenepred/include.patch b/recipes/ucsc-bedtogenepred/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-bedtogenepred/include.patch +++ b/recipes/ucsc-bedtogenepred/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-bedtogenepred/meta.yaml b/recipes/ucsc-bedtogenepred/meta.yaml index e590421a20137..0e5ba571827a5 100644 --- a/recipes/ucsc-bedtogenepred/meta.yaml +++ b/recipes/ucsc-bedtogenepred/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bedtogenepred" %} {% set program = "bedToGenePred" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "convert bed format files to genePred format" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: +# - linux-aarch64 # linking fails with `undefined reference to `cram_get_Md5'` and few more functions \ No newline at end of file From fb9cfa9f745152fe01bf00bbb11f994618f0929b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 20 Jun 2024 12:14:29 -0400 Subject: [PATCH 0084/1514] Update orthanq to 1.4.0 (#48635) --- recipes/orthanq/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/orthanq/meta.yaml b/recipes/orthanq/meta.yaml index c9921a7e68c29..4acc8c439383f 100644 --- a/recipes/orthanq/meta.yaml +++ b/recipes/orthanq/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.3.2" %} +{% set version = "1.4.0" %} package: name: orthanq @@ -11,7 +11,7 @@ build: source: url: https://github.com/orthanq/orthanq/archive/v{{ version }}.tar.gz - sha256: 56fa3b21370ce652ba0c516a4ee6b12ebaf8b9ce304c119563b449248606ef55 + sha256: bbf562b03ba379032035f7f31ca6f27aa54a0027c5cc5b6da0ad3103f843d09a requirements: build: From 457f72d75e151dc13d885427c8ee08c3e8d7be3f Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 20 Jun 2024 19:59:28 +0300 Subject: [PATCH 0085/1514] ucsc-axtswap: add linux-aarch64 build (#48621) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-axtswap/build.sh | 24 ++++++++++++++++-------- recipes/ucsc-axtswap/include.patch | 6 +++--- recipes/ucsc-axtswap/meta.yaml | 26 +++++++++++++++++--------- 4 files changed, 36 insertions(+), 21 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 4f69e1cbf7322..0c95dc3165831 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -776,7 +776,6 @@ recipes/maker recipes/rop # Need to redo the skeletons for these -recipes/ucsc-axtswap recipes/ucsc-axttomaf recipes/ucsc-bamtopsl recipes/ucsc-bedcoverage diff --git a/recipes/ucsc-axtswap/build.sh b/recipes/ucsc-axtswap/build.sh index 1b0c3435ce845..c15f336ce33a1 100644 --- a/recipes/ucsc-axtswap/build.sh +++ b/recipes/ucsc-axtswap/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/axtSwap && make) -cp bin/axtSwap "$PREFIX/bin" -chmod +x "$PREFIX/bin/axtSwap" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/axtSwap && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/axtSwap "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/axtSwap" diff --git a/recipes/ucsc-axtswap/include.patch b/recipes/ucsc-axtswap/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-axtswap/include.patch +++ b/recipes/ucsc-axtswap/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-axtswap/meta.yaml b/recipes/ucsc-axtswap/meta.yaml index 6d14fbe00de1d..a432cdd091d15 100644 --- a/recipes/ucsc-axtswap/meta.yaml +++ b/recipes/ucsc-axtswap/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-axtswap" %} {% set program = "axtSwap" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 2 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Swap source and query in an axt file" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 7b66f524c26c085b9c59037807756688a72428d3 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 20 Jun 2024 19:59:46 +0300 Subject: [PATCH 0086/1514] ucsc-bedgraphpack: add linux-aarch64 build (#48623) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-bedgraphpack/build.sh | 24 +++++++++++++++-------- recipes/ucsc-bedgraphpack/include.patch | 6 +++--- recipes/ucsc-bedgraphpack/meta.yaml | 26 ++++++++++++++++--------- 4 files changed, 36 insertions(+), 21 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 0c95dc3165831..576c900934e3b 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -780,7 +780,6 @@ recipes/ucsc-axttomaf recipes/ucsc-bamtopsl recipes/ucsc-bedcoverage recipes/ucsc-bedextendranges -recipes/ucsc-bedgraphpack recipes/ucsc-bedintersect recipes/ucsc-beditemoverlapcount recipes/ucsc-bedjointaboffset diff --git a/recipes/ucsc-bedgraphpack/build.sh b/recipes/ucsc-bedgraphpack/build.sh index 8afed4289ba76..35f9f4a4071a5 100644 --- a/recipes/ucsc-bedgraphpack/build.sh +++ b/recipes/ucsc-bedgraphpack/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/bedGraphPack && make) -cp bin/bedGraphPack "$PREFIX/bin" -chmod +x "$PREFIX/bin/bedGraphPack" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/bedGraphPack && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/bedGraphPack "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/bedGraphPack" diff --git a/recipes/ucsc-bedgraphpack/include.patch b/recipes/ucsc-bedgraphpack/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-bedgraphpack/include.patch +++ b/recipes/ucsc-bedgraphpack/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-bedgraphpack/meta.yaml b/recipes/ucsc-bedgraphpack/meta.yaml index 94b82a2b717e5..81da67b2ef311 100644 --- a/recipes/ucsc-bedgraphpack/meta.yaml +++ b/recipes/ucsc-bedgraphpack/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bedgraphpack" %} {% set program = "bedGraphPack" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Pack together adjacent records representing same value." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From ac5610d2fdd2c1bf585b58d109e9d1a8afeff815 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 20 Jun 2024 20:03:34 +0300 Subject: [PATCH 0087/1514] ucsc-bedremoveoverlap: add linux-aarch64 build (#48625) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-bedremoveoverlap/build.sh | 24 ++++++++++++------- recipes/ucsc-bedremoveoverlap/include.patch | 6 ++--- recipes/ucsc-bedremoveoverlap/meta.yaml | 26 ++++++++++++++------- 4 files changed, 36 insertions(+), 21 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 576c900934e3b..491dc3158ef02 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -784,7 +784,6 @@ recipes/ucsc-bedintersect recipes/ucsc-beditemoverlapcount recipes/ucsc-bedjointaboffset recipes/ucsc-bedpileups -recipes/ucsc-bedremoveoverlap recipes/ucsc-bedrestricttopositions recipes/ucsc-bedtopsl recipes/ucsc-bedweedoverlapping diff --git a/recipes/ucsc-bedremoveoverlap/build.sh b/recipes/ucsc-bedremoveoverlap/build.sh index 3a880bb538a4f..971f4a5ace1d1 100644 --- a/recipes/ucsc-bedremoveoverlap/build.sh +++ b/recipes/ucsc-bedremoveoverlap/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/bedRemoveOverlap && make) -cp bin/bedRemoveOverlap "$PREFIX/bin" -chmod +x "$PREFIX/bin/bedRemoveOverlap" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/bedRemoveOverlap && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/bedRemoveOverlap "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/bedRemoveOverlap" diff --git a/recipes/ucsc-bedremoveoverlap/include.patch b/recipes/ucsc-bedremoveoverlap/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-bedremoveoverlap/include.patch +++ b/recipes/ucsc-bedremoveoverlap/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-bedremoveoverlap/meta.yaml b/recipes/ucsc-bedremoveoverlap/meta.yaml index 59b038abc3c08..a35d8341dbdbd 100644 --- a/recipes/ucsc-bedremoveoverlap/meta.yaml +++ b/recipes/ucsc-bedremoveoverlap/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bedremoveoverlap" %} {% set program = "bedRemoveOverlap" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Remove overlapping records from a (sorted) bed file. Gets rid of" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From bae7b292bfa26bf7c4c94b2f535f8d8dc6cad6e5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 20 Jun 2024 15:31:15 -0400 Subject: [PATCH 0088/1514] Update jbrowse2 to 2.12.0 (#48636) --- recipes/jbrowse2/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/jbrowse2/meta.yaml b/recipes/jbrowse2/meta.yaml index 09f519b1c7289..95d270c859d3f 100644 --- a/recipes/jbrowse2/meta.yaml +++ b/recipes/jbrowse2/meta.yaml @@ -1,17 +1,17 @@ # When updating, check the @jbrowse/cli version in build.sh too -{% set version = "2.11.2" %} +{% set version = "2.12.0" %} package: name: jbrowse2 version: {{ version }} source: - sha256: 8ce511800a63603f8567ac61ece61556295c3eb3b1bbb4e81c0c8a4591d6647e + sha256: 0c0738aa9198e8f832ea4b1c3ffce27710e6a885f57a7455b038e523c82551e4 url: https://github.com/GMOD/jbrowse-components/releases/download/v{{ version }}/jbrowse-web-v{{ version }}.zip build: noarch: generic - number: 1 + number: 0 run_exports: - {{ pin_subpackage('jbrowse2', max_pin="x") }} From 10eb655f77860c8838a548e593db0fc6c2df4f9e Mon Sep 17 00:00:00 2001 From: Hugo Lefeuvre <161316836+hugolefeuvre@users.noreply.github.com> Date: Thu, 20 Jun 2024 22:37:43 +0200 Subject: [PATCH 0089/1514] Add ca-certificates in meta.yaml (#48631) * Update meta.yaml Add ca-certificates in requirements * Increase build number --- recipes/groot/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/groot/meta.yaml b/recipes/groot/meta.yaml index 23812517a8c24..a7c0072b68075 100644 --- a/recipes/groot/meta.yaml +++ b/recipes/groot/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 46c6f67990397c2230f580be40697e4fdc284fbe7f0a38999a05d81cd6da5928 build: - number: 4 + number: 5 run_exports: - {{ pin_subpackage('groot', max_pin='x') }} @@ -17,6 +17,8 @@ requirements: build: - {{ compiler('c') }} - {{ compiler('go') }} + run: + - ca-certificates test: commands: From b07dcadab03fbc1c01891852f52c1c1540ca780b Mon Sep 17 00:00:00 2001 From: Tom Stanton Date: Fri, 21 Jun 2024 06:38:15 +1000 Subject: [PATCH 0090/1514] Update Kaptive to v3.0.0b4 (#48632) * Update kaptive to v3.0.0b4 * Update meta.yaml * Update kaptive to v3.0.0b4 --- recipes/kaptive/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/kaptive/meta.yaml b/recipes/kaptive/meta.yaml index 30b0bfa196a62..9d4083f024769 100644 --- a/recipes/kaptive/meta.yaml +++ b/recipes/kaptive/meta.yaml @@ -24,7 +24,7 @@ requirements: - pip run: - python >=3.9 - - biopython + - biopython >=1.83 - dna_features_viewer test: From 9027cdbd04a3ddf59428a8f83843c6cad8526e4a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 20 Jun 2024 23:53:30 -0400 Subject: [PATCH 0091/1514] Update ivar to 1.4.3 (#48642) --- recipes/ivar/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/ivar/meta.yaml b/recipes/ivar/meta.yaml index fc9fd87e943eb..1482b668f08ec 100644 --- a/recipes/ivar/meta.yaml +++ b/recipes/ivar/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.4.2" %} -{% set sha256 = "fda0ba84447d83b162434f8eb8f6f6d366ef715bdbf1b05179a6ef3d4670830d" %} +{% set version = "1.4.3" %} +{% set sha256 = "b9b7b0301418ddec833ab2d5cc2f2995fabacdc4e45c5c14d53a130e5931ed24" %} package: name: ivar @@ -10,7 +10,7 @@ source: sha256: "{{ sha256 }}" build: - number: 3 + number: 0 run_exports: - {{ pin_subpackage('ivar', max_pin='x') }} From 8b232cb25c295595ca583d83bc33aa04c127dddd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 21 Jun 2024 00:42:37 -0400 Subject: [PATCH 0092/1514] Update metaphor to 1.7.12 (#48643) --- recipes/metaphor/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/metaphor/meta.yaml b/recipes/metaphor/meta.yaml index 5833df5021a2f..3704c2b8ca969 100644 --- a/recipes/metaphor/meta.yaml +++ b/recipes/metaphor/meta.yaml @@ -1,5 +1,5 @@ {% set name = "metaphor" %} -{% set version = "1.7.11" %} +{% set version = "1.7.12" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://github.com/vinisalazar/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz - sha256: 45f01fc8a7c142f3ae26b4880488e77228103a670cffaa986e5377b7efcaff86 + sha256: 53596956aa3ccfef485dcfac2c8299f938739f3d637716c32036c7050e73fbd4 build: number: 0 From 60ecc0343054a6aa92f59d4e0228bd851fce63f7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 21 Jun 2024 02:15:45 -0400 Subject: [PATCH 0093/1514] Update tir-learner to 3.0.2 (#48644) --- recipes/tir-learner/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/tir-learner/meta.yaml b/recipes/tir-learner/meta.yaml index f1e308ce75f47..cc0a4538d1751 100644 --- a/recipes/tir-learner/meta.yaml +++ b/recipes/tir-learner/meta.yaml @@ -1,6 +1,6 @@ {% set name = "TIR-Learner" %} -{% set version = "3.0.1" %} -{% set sha256 = "a5b8e41a0ff6cb18188e78722ade9dccab2b947cb9c23d21543ccbf2b05285f5" %} +{% set version = "3.0.2" %} +{% set sha256 = "71edc2633fd2d5a6306db83528291b21e9a50b7e08b02a3f1d2cdc13d04ff441" %} package: name: "{{ name|lower }}" From 0d9a7089f1adc8ccf77051e76a0e09e34a680ece Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 21 Jun 2024 11:49:36 +0300 Subject: [PATCH 0094/1514] concoct: pin scikit-learn to 1.1.3 (#48624) * concoct: pin scikit-learn to 1.1.3 Signed-off-by: Martin Tzvetanov Grigorov * Try to fix the linux-aarch64 build by pinning Python to >=3.8,<=3.10 Signed-off-by: Martin Tzvetanov Grigorov * concoct: Patch concoct/transform.py perform_pca() to work with newer scikit-learn than 1.1.3 Suggested-by: @jlanga at https://github.com/bioconda/bioconda-recipes/pull/48553#issuecomment-2180788782 Signed-off-by: Martin Tzvetanov Grigorov * Add libopenblas+openmp as a runtime dependency Suggested at https://github.com/conda-forge/openblas-feedstock/issues/79#issuecomment-660535061 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/concoct/concoct-newer-scikit-learn.patch | 12 ++++++++++++ recipes/concoct/meta.yaml | 5 ++++- 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 recipes/concoct/concoct-newer-scikit-learn.patch diff --git a/recipes/concoct/concoct-newer-scikit-learn.patch b/recipes/concoct/concoct-newer-scikit-learn.patch new file mode 100644 index 0000000000000..ad392765b8128 --- /dev/null +++ b/recipes/concoct/concoct-newer-scikit-learn.patch @@ -0,0 +1,12 @@ +diff --git i/concoct/transform.py w/concoct/transform.py +index 20e90d3..aff6e7f 100644 +--- i/concoct/transform.py ++++ w/concoct/transform.py +@@ -2,6 +2,7 @@ from sklearn.decomposition import PCA + import pandas as p + + def perform_pca(d, nc, seed): ++ d.columns = d.columns.astype(str) # add this exact line + pca_object = PCA(n_components=nc, random_state=seed).fit(d) + return pca_object.transform(d), pca_object + diff --git a/recipes/concoct/meta.yaml b/recipes/concoct/meta.yaml index 2a375f46c6a5b..3446855ce8fb8 100644 --- a/recipes/concoct/meta.yaml +++ b/recipes/concoct/meta.yaml @@ -8,10 +8,12 @@ package: source: url: https://github.com/BinPro/CONCOCT/archive/{{ version }}.tar.gz sha256: 00aecacb4b720ac123a63e65072c61e0b5a8690d844c869aaee4dbf287c82888 + patches: + - concoct-newer-scikit-learn.patch build: preserve_egg_dir: True - number: 5 + number: 6 skip: True # [osx] run_exports: - {{ pin_subpackage(name, max_pin="x") }} @@ -35,6 +37,7 @@ requirements: - biopython >=1.62b - pytz >=2013.9 - scikit-learn >=1.1.3 + - libopenblas =*=*openmp* - nose >=1.3.0 - gsl - samtools From f8ded0822089e34b12b557ad2945bac1e9392bb1 Mon Sep 17 00:00:00 2001 From: Benjamin Redelings Date: Fri, 21 Jun 2024 07:15:56 -0400 Subject: [PATCH 0095/1514] bali-phy: 4.0-beta14 (#48641) * bali-phy: 4.0-beta14 Update from beta13 to beta14 * Disable complaints that 10.13 doesn't have std::filesystem::path --- recipes/bali-phy/build.sh | 9 +-------- recipes/bali-phy/meta.yaml | 6 +++--- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/recipes/bali-phy/build.sh b/recipes/bali-phy/build.sh index 3ef5baf24dd45..47de26ec38110 100644 --- a/recipes/bali-phy/build.sh +++ b/recipes/bali-phy/build.sh @@ -4,7 +4,6 @@ set -vex # C++20 is not properly supported on early OSX versions case "${target_platform}" in osx-*) - export MACOSX_DEPLOYMENT_TARGET=11.0 xcodebuild -sdk -version ${CXX} -v esac @@ -21,13 +20,7 @@ echo "CXX=$CXX" echo "CPPFLAGS=$CPPFLAGS" echo "CXXFLAGS=$CXXFLAGS" -echo "Removing -mmacosx-version-min=10.9 from CPPFLAGS..." -CPPFLAGS="$(echo $CPPFLAGS | sed 's/-mmacosx-version-min=10.9/-mmacosx-version-min=11.0/g')" -echo "CPPFLAGS=$CPPFLAGS" - -echo "Removing -O2 and -std=c++14 from CXXFLAGS..." -CXXFLAGS="$(echo $CXXFLAGS | sed 's/-O2//g' | sed 's/-std=c++14//g')" -echo "CXXFLAGS=$CXXFLAGS" +CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" # for std::filesystem::path # configure meson setup \ diff --git a/recipes/bali-phy/meta.yaml b/recipes/bali-phy/meta.yaml index b4b41eb114929..b0e583d8e4050 100644 --- a/recipes/bali-phy/meta.yaml +++ b/recipes/bali-phy/meta.yaml @@ -1,10 +1,10 @@ package: name: bali-phy - version: '4.0beta13' + version: '4.0beta14' source: - url: https://github.com/bredelings/bali-phy/archive/4.0-beta13.tar.gz - sha256: 52131abf92176b4085a6b6fa645e40d2103b61a37d16d4b22eab17f635fb96fe + url: https://github.com/bredelings/bali-phy/archive/4.0-beta14.tar.gz + sha256: b3a55d8e89589d5b46a621b1c9ee5bcbe576b6fb6ea22fe3782d10c9830c66f1 build: number: 0 From 519e9f712f990ad36b833356ddea7bdfe9dd2494 Mon Sep 17 00:00:00 2001 From: Sudaraka Mallawaarachchi Date: Fri, 21 Jun 2024 22:07:07 +1000 Subject: [PATCH 0096/1514] add_pangwes (#48645) * add_pangwes * llvm_otool * clean up build.sh * bugfix * Remove some debug statements Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Sudaraka88 Co-authored-by: Martin Tzvetanov Grigorov --- recipes/pangwes/build.sh | 11 +++++++++++ recipes/pangwes/meta.yaml | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 recipes/pangwes/build.sh create mode 100644 recipes/pangwes/meta.yaml diff --git a/recipes/pangwes/build.sh b/recipes/pangwes/build.sh new file mode 100644 index 0000000000000..3491d91feb10f --- /dev/null +++ b/recipes/pangwes/build.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +set -xe + +# build and install PAN-GWES +make -C sw/pangwes -j ${CPU_COUNT} + +mkdir -p ${PREFIX}/bin +cp $SRC_DIR/sw/pangwes/bin/unitig_distance $PREFIX/bin/unitig_distance +cp $SRC_DIR/sw/pangwes/bin/gfa1_parser $PREFIX/bin/gfa1_parser +cp ./sw/pangwes/scripts/gwes_plot.r $PREFIX/bin/gwes_plot.r diff --git a/recipes/pangwes/meta.yaml b/recipes/pangwes/meta.yaml new file mode 100644 index 0000000000000..d34abb3224eaa --- /dev/null +++ b/recipes/pangwes/meta.yaml @@ -0,0 +1,39 @@ +{% set name = "pangwes" %} +{% set version = "0.2.0_alpha" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/Sudaraka88/PAN-GWES/archive/refs/tags/v{{ version }}.tar.gz + sha256: 288e2c403b880d1a912525aa00a66b402889cb94df01ca87d99355b2d7287837 + +build: + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} + +requirements: + build: + - {{ compiler('cxx') }} + - make + run: + - cuttlefish + - spydrpick + - r-base + +test: + commands: + - SpydrPick --version + - cuttlefish version + +about: + home: https://github.com/jurikuronen/PANGWES + license: MIT + license_file: LICENSE + summary: Performing pangenome-spanning epistasis and co-selection analysis via de Bruijn graphs + +extra: + identifiers: + - doi:10.1101/2023.09.07.556769 From 98d9cfb7c9d57fb557463138679be91006295124 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 21 Jun 2024 08:49:23 -0400 Subject: [PATCH 0097/1514] Update snakemake-storage-plugin-zenodo to 0.1.3 (#48650) --- recipes/snakemake-storage-plugin-zenodo/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-zenodo/meta.yaml b/recipes/snakemake-storage-plugin-zenodo/meta.yaml index c5437300cae37..3d693cb0d92df 100644 --- a/recipes/snakemake-storage-plugin-zenodo/meta.yaml +++ b/recipes/snakemake-storage-plugin-zenodo/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-zenodo" %} -{% set version = "0.1.2" %} +{% set version = "0.1.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_zenodo-{{ version }}.tar.gz - sha256: 3675e76ae5dc930664bbcc1132a957c6490199c366e4e1e607d1491a7a46cf3d + sha256: ae72ab8f866c72a63912a353923d976a7b5c91658fd9534f670691963be98e53 build: noarch: python From 46da9eeb9669b9466437c8b0c67725342deca122 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 21 Jun 2024 08:50:50 -0400 Subject: [PATCH 0098/1514] Update bionumpy to 1.0.11 (#48651) --- recipes/bionumpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/bionumpy/meta.yaml b/recipes/bionumpy/meta.yaml index 3b1b9379d556f..58dd9b847dd6f 100644 --- a/recipes/bionumpy/meta.yaml +++ b/recipes/bionumpy/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.0.10" %} +{% set version = "1.0.11" %} package: name: bionumpy @@ -6,7 +6,7 @@ package: source: url: https://github.com/bionumpy/bionumpy/archive/refs/tags/v{{ version }}.tar.gz - sha256: 0245c6c7aa42dee4b717ce9a535a3e3d5282d62245811fa1cd5386b4ff94b203 + sha256: 14883379dbae1a7cd80b1e19e7593db0f9966413c2a1ffb97f58690fec5dc929 build: noarch: python From 7bbfc6dd7c8890e6c12eb68a05f952a5359f783e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 21 Jun 2024 08:51:19 -0400 Subject: [PATCH 0099/1514] Update jbrowse2 to 2.12.2 (#48654) --- recipes/jbrowse2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/jbrowse2/meta.yaml b/recipes/jbrowse2/meta.yaml index 95d270c859d3f..be0261005f960 100644 --- a/recipes/jbrowse2/meta.yaml +++ b/recipes/jbrowse2/meta.yaml @@ -1,12 +1,12 @@ # When updating, check the @jbrowse/cli version in build.sh too -{% set version = "2.12.0" %} +{% set version = "2.12.2" %} package: name: jbrowse2 version: {{ version }} source: - sha256: 0c0738aa9198e8f832ea4b1c3ffce27710e6a885f57a7455b038e523c82551e4 + sha256: d679580eeb6b9a3584539d9293c92981e8e1e6873ec7aa55f94f6c5a52872050 url: https://github.com/GMOD/jbrowse-components/releases/download/v{{ version }}/jbrowse-web-v{{ version }}.zip build: From c690ee431be5e96ee310b97e9dddee49a3408d96 Mon Sep 17 00:00:00 2001 From: "J. Alvarez-Jarreta" Date: Fri, 21 Jun 2024 13:52:30 +0100 Subject: [PATCH 0100/1514] Add bioconda recipe for ensembl-utils (#48602) * add bioconda recipe for ensembl-utils * add missing build.run_exports section * update sqlalchemy requirements correctly * update ensembl-utils recipe to correct a few minor mistakes * import the correct namespace for ensembl-utils * ensembl-utils is not compatible with sqlalchemy 2.0 (yet) --- recipes/ensembl-utils/meta.yaml | 57 +++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 recipes/ensembl-utils/meta.yaml diff --git a/recipes/ensembl-utils/meta.yaml b/recipes/ensembl-utils/meta.yaml new file mode 100644 index 0000000000000..466eeeb9a8f4c --- /dev/null +++ b/recipes/ensembl-utils/meta.yaml @@ -0,0 +1,57 @@ +{% set name = "ensembl-utils" %} +{% set version = "0.2.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/ensembl_utils-{{ version }}.tar.gz + sha256: 0fc6fb82f0d09ac4a5eadbb77974921de415a12e45c9551d039d5d71335c9161 + +build: + entry_points: + - extract_file = ensembl.utils.archive:extract_file_cli + noarch: python + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vv + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} + +requirements: + host: + - python >=3.10 + - setuptools + - setuptools-scm + - wheel + - pip + run: + - python >=3.10 + - python-dotenv >=0.19.2 + - pyyaml >=6.0,<7.0 + - requests >=2.22.0 + - sqlalchemy >=1.4.0,<2.0 + +test: + imports: + - ensembl.utils + commands: + - pip check + - extract_file --help + requires: + - pip + +about: + home: https://www.ensembl.org/ + summary: Ensembl Python general-purpose utils + license: Apache-2.0 + license_file: + - NOTICE + - LICENSE + license_family: APACHE + doc_url: https://ensembl.github.io/ensembl-utils/ + dev_url: "https://github.com/Ensembl/ensembl-utils" + +extra: + identifiers: + - biotools:Ensembl From b3ec89994fd351a96fcdd46947817ed1ed7fc21b Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 21 Jun 2024 18:12:11 +0300 Subject: [PATCH 0101/1514] covtobed: add linux-aarch64 build (#48649) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/covtobed/meta.yaml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/recipes/covtobed/meta.yaml b/recipes/covtobed/meta.yaml index 074f1d4d2e749..16e003aa5c4bb 100644 --- a/recipes/covtobed/meta.yaml +++ b/recipes/covtobed/meta.yaml @@ -9,7 +9,10 @@ source: sha256: 0d826ad5bc32661806cfa75851e3b70a8a2b6b0b65393908ed954a1aee7c5d6c build: - number: 3 + number: 4 + run_exports: + - {{ pin_subpackage('covtobed', max_pin="x") }} + requirements: build: @@ -33,3 +36,7 @@ about: license: 'MIT' license_file: LICENSE summary: 'covtobed - generate a BED file of covered regions from a BAM file' + +extra: + additional-platforms: + - linux-aarch64 From d9e79cd792c0a2704d596a97a481274ab17d5128 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 21 Jun 2024 18:14:51 +0300 Subject: [PATCH 0102/1514] dsrc: add linux-aarch64 build (#48652) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/dsrc/build.sh | 6 ++++-- recipes/dsrc/meta.yaml | 7 ++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/recipes/dsrc/build.sh b/recipes/dsrc/build.sh index 522e31134a5d5..b2a5ab65433a8 100644 --- a/recipes/dsrc/build.sh +++ b/recipes/dsrc/build.sh @@ -1,9 +1,11 @@ #!/bin/sh +set -xe + if [ "$(uname)" == "Darwin" ]; then - DEP_LIBS="${LDFLAGS}" make CXX="${CXX}" CXXFLAGS="${CXXFLAGS}" -f Makefile.osx bin + DEP_LIBS="${LDFLAGS}" make -j ${CPU_COUNT} CXX="${CXX}" CXXFLAGS="${CXXFLAGS}" -f Makefile.osx bin else - DEP_LIBS="${LDFLAGS}" make CXX="${CXX}" CXXFLAGS="${CXXFLAGS}" -f Makefile.c++11 bin + DEP_LIBS="${LDFLAGS}" make -j ${CPU_COUNT} CXX="${CXX}" CXXFLAGS="${CXXFLAGS}" -f Makefile.c++11 bin fi mkdir -p "${PREFIX}/bin" diff --git a/recipes/dsrc/meta.yaml b/recipes/dsrc/meta.yaml index 94cc1d01e620e..5841ffe7771a1 100644 --- a/recipes/dsrc/meta.yaml +++ b/recipes/dsrc/meta.yaml @@ -7,7 +7,10 @@ source: sha256: a8ddbe986e0477d09ada2b977ae7854e8e8361392b90620192a2cb06b5dc8a58 build: - number: 7 + number: 8 + run_exports: + - {{ pin_subpackage('dsrc', max_pin=None) }} + requirements: build: @@ -30,5 +33,7 @@ about: license: GNU GPL 2 extra: + additional-platforms: + - linux-aarch64 identifiers: - biotools:dsrc From b0dd38ff6e934dca1ce9f9ab27a1fb72e963eb20 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 21 Jun 2024 18:15:12 +0300 Subject: [PATCH 0103/1514] yacrd: add linux-aarch64 build (#48653) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/yacrd/meta.yaml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/recipes/yacrd/meta.yaml b/recipes/yacrd/meta.yaml index 0d66bf8e79878..be40c2a3e3184 100644 --- a/recipes/yacrd/meta.yaml +++ b/recipes/yacrd/meta.yaml @@ -10,12 +10,14 @@ source: sha256: {{ sha256 }} build: - number: 2 + number: 3 + run_exports: + - {{ pin_subpackage('yacrd', max_pin="x") }} requirements: build: - {{ compiler("c") }} - - rust + - {{ compiler("rust") }} - pkg-config # [osx] host: - xz @@ -33,3 +35,7 @@ about: license_family: MIT license_file: LICENSE summary: Yet Another Chimeric Read Detector, with long-read mapper result as input. + +extra: + additional-platforms: + - linux-aarch64 From d558ccd5549a135e1d6c2ea9b61e3ae9027b7562 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 21 Jun 2024 18:15:23 +0300 Subject: [PATCH 0104/1514] bamutil: add linux-aarch64 build (#48655) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/bamutil/build.sh | 4 +++- recipes/bamutil/meta.yaml | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/recipes/bamutil/build.sh b/recipes/bamutil/build.sh index 023b2e27aaf87..fea61b6a64272 100644 --- a/recipes/bamutil/build.sh +++ b/recipes/bamutil/build.sh @@ -1,7 +1,9 @@ #!/usr/bin/env bash +set -xe + cd bamUtil -make \ +make -j ${CPU_COUNT} \ CXX="${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} -std=c++11" \ CC="${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" \ USER_WARNINGS='-Wno-strict-overflow' \ diff --git a/recipes/bamutil/meta.yaml b/recipes/bamutil/meta.yaml index 28a2f7069ca86..68fad40c1b808 100644 --- a/recipes/bamutil/meta.yaml +++ b/recipes/bamutil/meta.yaml @@ -13,7 +13,9 @@ source: folder: libStatGen build: - number: 4 + number: 5 + run_exports: + - {{ pin_subpackage('bamutil', max_pin="x") }} requirements: build: @@ -36,5 +38,7 @@ about: summary: Programs that perform operations on SAM/BAM files, all built into a single executable, bam. extra: + additional-platforms: + - linux-aarch64 identifiers: - biotools:Bamutil From 92f971e85bb2ce9f2317b89fe89e0df18e7a62c8 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 21 Jun 2024 18:15:45 +0300 Subject: [PATCH 0105/1514] genomedata: add linux-aarch64 build (#48656) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/genomedata/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/genomedata/meta.yaml b/recipes/genomedata/meta.yaml index 4570a13ed3a68..e2eebeb0d54df 100644 --- a/recipes/genomedata/meta.yaml +++ b/recipes/genomedata/meta.yaml @@ -12,7 +12,7 @@ source: build: skip: True # [osx or py < 39] - number: 1 + number: 2 entry_points: - genomedata-close-data = genomedata._close_data:main - genomedata-erase-data = genomedata._erase_data:main @@ -32,7 +32,6 @@ build: requirements: build: - {{ compiler('c') }} - - hdf5 host: - pip - python @@ -83,6 +82,8 @@ about: dev_url: https://github.com/hoffmangroup/genomedata extra: + additional-platforms: + - linux-aarch64 identifiers: - biotools:genomedata - doi:10.1093/bioinformatics/btq164 From d2de1df7f0c8498cdc9663402bee4af1088ab462 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 21 Jun 2024 18:17:04 +0300 Subject: [PATCH 0106/1514] artic-tools: add linux-aarch64 build (#48659) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/artic-tools/build.sh | 4 +++- recipes/artic-tools/meta.yaml | 8 ++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/recipes/artic-tools/build.sh b/recipes/artic-tools/build.sh index d3bdf756d375b..7bfa49a89073f 100644 --- a/recipes/artic-tools/build.sh +++ b/recipes/artic-tools/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + case "${target_platform}" in osx-*) export MACOSX_DEPLOYMENT_TARGET=10.12 ; esac #sed -i.bak 's/Boost_USE_STATIC_LIBS OFF/Boost_USE_STATIC_LIBS ON/' CMakeLists.txt @@ -15,7 +17,7 @@ popd mkdir build && pushd build cmake -DCMAKE_BUILD_TYPE=Release .. -make +make -j ${CPU_COUNT} popd mkdir -p $PREFIX/bin diff --git a/recipes/artic-tools/meta.yaml b/recipes/artic-tools/meta.yaml index 6079e50e33411..931a621ad0ae8 100644 --- a/recipes/artic-tools/meta.yaml +++ b/recipes/artic-tools/meta.yaml @@ -27,13 +27,15 @@ source: build: skip: True # [osx] - number: 6 + number: 7 + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} requirements: build: - make - {{ compiler('cxx') }} - - cmake>=3.12 + - cmake >=3.12 - curl # used to grab headers during build, no release available to grab sooner host: - htslib @@ -66,5 +68,7 @@ about: summary: A set of tools for working with the ARTIC bioinformatic pipeline. extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - will-rowe From 20648af608e0f556dfb92d4db8ae554513860ed5 Mon Sep 17 00:00:00 2001 From: Christian Atallah <34323164+chrisAta@users.noreply.github.com> Date: Fri, 21 Jun 2024 20:52:27 +0100 Subject: [PATCH 0107/1514] Add kegg-pathways-completeness (#48647) --- recipes/kegg-pathways-completeness/meta.yaml | 55 ++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 recipes/kegg-pathways-completeness/meta.yaml diff --git a/recipes/kegg-pathways-completeness/meta.yaml b/recipes/kegg-pathways-completeness/meta.yaml new file mode 100644 index 0000000000000..59e936b7cb839 --- /dev/null +++ b/recipes/kegg-pathways-completeness/meta.yaml @@ -0,0 +1,55 @@ +{% set name = "kegg-pathways-completeness" %} +{% set version = "1.0.2" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/kegg_pathways_completeness-{{ version }}.tar.gz + sha256: 70dde6ce82fad1de40f58e8a3637a8e518507ec63bfaef3c1ab3a839679379bd + +build: + entry_points: + - give_pathways = kegg_pathways_completeness.bin.give_pathways:main + - plot_completeness_graphs = kegg_pathways_completeness.bin.plot_completeness_graphs:main + - generate_hmmtable = kegg_pathways_completeness.bin.generate_hmmtable.hmmscan_tab:main + - parsing_hmmscan = kegg_pathways_completeness.bin.generate_hmmtable.parsing_hmmscan:main + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + run_exports: + - {{ pin_subpackage('kegg-pathways-completeness', max_pin="x.x") }} + +requirements: + host: + - python >=3.10 + - setuptools >=61.0 + - pip + run: + - python >=3.10 + - biopython ==1.83 + - networkx ==3.3 + - python-graphviz ==0.20.3 + +test: + imports: + - kegg_pathways_completeness + commands: + - pip check + - give_pathways --help + - plot_completeness_graphs --help + - generate_hmmtable --help + - parsing_hmmscan --help + requires: + - pip + +about: + summary: The tool counts completeness of each KEGG pathway for protein sequences. + home: https://github.com/EBI-Metagenomics/kegg-pathways-completeness-tool + license: Apache-2.0 + license_file: LICENSE + +extra: + recipe-maintainers: + - chrisAta From 10efa66617dda2464c6b790f058368df61463a2d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 21 Jun 2024 15:53:12 -0400 Subject: [PATCH 0108/1514] Update dxpy to 0.378.0 (#48661) --- recipes/dxpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/dxpy/meta.yaml b/recipes/dxpy/meta.yaml index 7d2ae87818c19..cc419f0ad4aad 100644 --- a/recipes/dxpy/meta.yaml +++ b/recipes/dxpy/meta.yaml @@ -1,5 +1,5 @@ {% set name = "dxpy" %} -{% set version = "0.377.0" %} +{% set version = "0.378.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 96a2413e998c3cde8fc42d93be9d979104b0614771d02cfdea5ef1b3325b77ec + sha256: fe82611e622f8a5016cee3821f337a0e20808c4a9d70da93dc900574fee2897e build: number: 0 From 1fd7f2ef38925a7e1265c6eb7be0fb805877dfdb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 21 Jun 2024 15:53:49 -0400 Subject: [PATCH 0109/1514] Update pango-designation to 1.28 (#48662) --- recipes/pango-designation/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pango-designation/meta.yaml b/recipes/pango-designation/meta.yaml index 5be34f04fd20a..220c076249b98 100644 --- a/recipes/pango-designation/meta.yaml +++ b/recipes/pango-designation/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.27" %} +{% set version = "1.28" %} package: name: pango-designation @@ -6,7 +6,7 @@ package: source: url: https://github.com/cov-lineages/pango-designation/archive/refs/tags/v{{ version }}.tar.gz - sha256: da3e697eabb73fc835490b737a8c88558a8b92fc81601f9363baef50c70b350e + sha256: cca1e265ae754d4fd3c8a6d47cb99ca997242abdf81e0ec55c3608cf9c3a3865 build: number: 0 From 9dcdb3d01c1154b0d6e97c71754a18e247413f6e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 22 Jun 2024 03:01:20 -0400 Subject: [PATCH 0110/1514] Update ont-modkit to 0.3.1 (#48668) --- recipes/ont-modkit/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ont-modkit/meta.yaml b/recipes/ont-modkit/meta.yaml index 315dbe29f15e6..88d161239a12e 100644 --- a/recipes/ont-modkit/meta.yaml +++ b/recipes/ont-modkit/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ont-modkit" %} -{% set version = "0.3.0" %} -{% set sha256 = "9da0de3c83335dc43aced0da89a920e939e9de6949a7e6d9e6680be9772441cc" %} +{% set version = "0.3.1" %} +{% set sha256 = "f780f60411bf8a94f2b4dc7383c14a0c04050cca8b1d3e2763c480d72026b3ba" %} package: name: {{ name }} From 48c0a3c0ab6d7ff9141f91bec73d3ee46b9b380d Mon Sep 17 00:00:00 2001 From: Ozgur Yurekten <103259724+oyurekten@users.noreply.github.com> Date: Sat, 22 Jun 2024 08:03:19 +0100 Subject: [PATCH 0111/1514] Add recipe for metabolights-utils (#48638) --- recipes/metabolights-utils/meta.yaml | 51 ++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 recipes/metabolights-utils/meta.yaml diff --git a/recipes/metabolights-utils/meta.yaml b/recipes/metabolights-utils/meta.yaml new file mode 100644 index 0000000000000..5368680020dec --- /dev/null +++ b/recipes/metabolights-utils/meta.yaml @@ -0,0 +1,51 @@ +{% set name = "metabolights-utils" %} +{% set version = "1.1.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/metabolights_utils-{{ version }}.tar.gz + sha256: 176e74a8a05d0925fd082305b8828fc75dfe785924d23d821e1921acee55b0c5 + +build: + entry_points: + - mtbls = metabolights_utils.commands.cli:cli + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} + +requirements: + host: + - python >=3.8,<4.0 + - poetry-core + - pip + run: + - python >=3.8,<4.0 + - pydantic >=2.0.0,<3.0.0 + - pydantic-settings >=2.0.3,<3.0.0 + - unidecode >=1.3.8,<2.0.0 + - jsonschema >=4.22.0,<5.0.0 + - click >=8.1.7,<9.0.0 + - beautifulsoup4 >=4.12.3,<5.0.0 + - jsonpath-ng >=1.6.1,<2.0.0 + - httpx >=0.27.0,<0.28.0 + - python-dateutil >=2.9.0,<3.0.0 + +test: + imports: + - metabolights_utils + commands: + - mtbls --version + - mtbls --help + requires: + - pip + +about: + home: https://github.com/EBI-Metabolights/metabolights-utils + summary: MetaboLights open metabolomics data repository command line interface (CLI), common MetaboLights data models, utility methods and classes. + license: Apache-2.0 + license_file: LICENSE From 461549759285ba1773ce747c2fcb0faaf6d74fe1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 22 Jun 2024 03:06:53 -0400 Subject: [PATCH 0112/1514] Update tpmcalculator to 0.0.5 (#48663) --- recipes/tpmcalculator/meta.yaml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/recipes/tpmcalculator/meta.yaml b/recipes/tpmcalculator/meta.yaml index c18dbdb83154d..255ec183f6c4c 100644 --- a/recipes/tpmcalculator/meta.yaml +++ b/recipes/tpmcalculator/meta.yaml @@ -1,15 +1,18 @@ -{% set version = "0.0.4" %} +{% set name = "tpmcalculator" %} +{% set version = "0.0.5" %} package: - name: tpmcalculator + name: {{ name }} version: '{{ version }}' source: - url: https://github.com/ncbi/TPMCalculator/archive/{{ version }}.tar.gz - sha256: 1a4c891b30f51e46752f5ca7b28944a993f94e9983a3a5eced241b45e9e459de + sha256: 29aa167a35bb006b2e912d2f7a53f7a9a265308f919906336fc3fe2ee3abece6 build: - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin='x.x') }} requirements: build: From aa6a138d87f655bfe4197bd17bfd8121a0c52ae7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Franceschini-Santos?= Date: Sat, 22 Jun 2024 04:08:29 -0300 Subject: [PATCH 0113/1514] Add parm (#48628) --- recipes/parm/meta.yaml | 45 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 recipes/parm/meta.yaml diff --git a/recipes/parm/meta.yaml b/recipes/parm/meta.yaml new file mode 100644 index 0000000000000..b1563801d83de --- /dev/null +++ b/recipes/parm/meta.yaml @@ -0,0 +1,45 @@ +{% set version = "0.0.2" %} +{% set sha256 = "a4a39e3f07eab33968ae6a96d1853c63b50b8acbfd1cf5361bae8288fa389ddf" %} + +package: + name: parm + version: {{ version }} + +source: + - url: https://github.com/vansteensellab/PARM/archive/refs/tags/v{{ version }}.tar.gz + sha256: {{ sha256 }} +build: + noarch: python + number: 0 + script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed --no-cache-dir -vvv" + run_exports: + - {{ pin_subpackage('parm', max_pin="x.x") }} + +requirements: + host: + - python + - pip + + run: + - python >=3.10.8 + - pytorch + - biopython + - numpy + - pandas + - matplotlib-base + - logomaker + - tqdm + - seaborn + - einops + - optuna + - scikit-learn + - h5py + +test: + commands: + - parm --help + +about: + home: https://github.com/vansteensellab/PARM + license: https://github.com/vansteensellab/PARM/blob/main/LICENSE + summary: promoter activity regulatory model From 7b9ede50cceaac3533919f50c36d87deb0b136f2 Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Sat, 22 Jun 2024 10:59:16 +0200 Subject: [PATCH 0114/1514] Add pathphynder (#48550) * Add payhPhynder meta.yaml * Add build.sh script with small patch to call Rscript tool directly rather than alias * Use proper release tarball * Update recipes/pathphynder/meta.yaml * Fix linting --- recipes/pathphynder/build.sh | 5 ++++ recipes/pathphynder/meta.yaml | 48 +++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 recipes/pathphynder/build.sh create mode 100644 recipes/pathphynder/meta.yaml diff --git a/recipes/pathphynder/build.sh b/recipes/pathphynder/build.sh new file mode 100644 index 0000000000000..feffcf5d861ae --- /dev/null +++ b/recipes/pathphynder/build.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +sed -i '1 i\#!/usr/bin/env Rscript\n' pathPhynder.R + +cp pathPhynder.R $PREFIX/bin/pathPhynder diff --git a/recipes/pathphynder/meta.yaml b/recipes/pathphynder/meta.yaml new file mode 100644 index 0000000000000..e031156ac5d7e --- /dev/null +++ b/recipes/pathphynder/meta.yaml @@ -0,0 +1,48 @@ +{% set name = "pathphynder" %} +{% set version = "1.2.0" %} +{% set sha256="da83838a7f95c4bfe36b544bb078d15923e30157a87f4b5bcc3d6c2847c1067e" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/ruidlpm/pathPhynder/archive/refs/tags/v{{ version }}.zip + sha256: {{ sha256 }} + +build: + number: 0 + noarch: generic + run_exports: + - {{ pin_subpackage( 'pathphynder', max_pin='x.x') }} + +requirements: + host: + - python >=3 + run: + - r-base + - samtools + - phynder + - r-optparse + - r-scales + - r-phytools + +test: + commands: + - pathPhynder -h + +about: + home: https://github.com/ruidlpm/pathPhynder + license: MIT + license_family: MIT + license_file: LICENSE + summary: A workflow for ancient DNA placement into reference phylogenies. + description: | + Ancient DNA data is characterized by deamination and low-coverage sequencing, which results in a high fraction of missing data and erroneous calls. + These factors affect the estimation of phylogenetic trees with modern and ancient DNA, especially when dealing with many ancient samples sequenced to lower coverage. + Furthermore, most ancient DNA analyses of the Y chromosome, for example, rely on previously known markers, but additional variation will continuously emerge as more data is generated. + This workflow offers a solution for integrating ancient and present-day haploid data, first by identifiying informative markers in a high coverage dataset, second, by calling and filtering these SNPs in ancient samples and lastly, by traversing the tree and evaluate the number of derived and ancestral markers in the ancients to find the most likely branch where it belongs. + +extra: + identifiers: + - doi:10.1093/molbev/msac017 From baf62ba4c268b8fd127bb0a76cc225c58d052f68 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 22 Jun 2024 14:30:44 -0400 Subject: [PATCH 0115/1514] Update multiqc to 1.22.3 (#48671) --- recipes/multiqc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/multiqc/meta.yaml b/recipes/multiqc/meta.yaml index da6cc500055b0..6fed175b273f5 100644 --- a/recipes/multiqc/meta.yaml +++ b/recipes/multiqc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "multiqc" %} -{% set version = "1.22.2" %} +{% set version = "1.22.3" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/MultiQC/MultiQC/archive/v{{ version }}.tar.gz - sha256: 0f3da3cf396702765f4edfc498093f26c67d706d1d37fb923b371fb24bc1745f + sha256: b9055c561459bd7e0a4869a6c7d83c7d9f8f31310be6e4ceaaebcdf93c05ae73 build: number: 0 From dc6164cfcaffa2356fd917c00ffe1b14ac1c5858 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 22 Jun 2024 14:32:01 -0400 Subject: [PATCH 0116/1514] Update hmftools-orange to 3.6.0 (#48670) --- recipes/hmftools-orange/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/hmftools-orange/meta.yaml b/recipes/hmftools-orange/meta.yaml index e2ca1fe8317c1..91fb69d4ab0e3 100644 --- a/recipes/hmftools-orange/meta.yaml +++ b/recipes/hmftools-orange/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "3.5.1" %} -{% set sha256 = "58527535476c318e474875c92cba847e51def560b7ed33fbbc9d671e04127d36" %} +{% set version = "3.6.0" %} +{% set sha256 = "55d600d1e47e95d24b47ea67b731ba996043448b3287f0c29883270da004e001" %} package: name: hmftools-orange From c6cf17509fce8a4aa19946aba69b33ee42f0d29d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 22 Jun 2024 14:32:37 -0400 Subject: [PATCH 0117/1514] Update pathphynder to 1.2.1 (#48669) --- recipes/pathphynder/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pathphynder/meta.yaml b/recipes/pathphynder/meta.yaml index e031156ac5d7e..47f7030eedda0 100644 --- a/recipes/pathphynder/meta.yaml +++ b/recipes/pathphynder/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pathphynder" %} -{% set version = "1.2.0" %} -{% set sha256="da83838a7f95c4bfe36b544bb078d15923e30157a87f4b5bcc3d6c2847c1067e" %} +{% set version = "1.2.1" %} +{% set sha256="8cecb2cddc6e7783a28281aa006341f642c0799c31a78bf1c1cda05308019f81" %} package: name: {{ name }} From 0b3579b0abfe38c4c0934a502872cbba27fc0a73 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 23 Jun 2024 03:39:46 -0400 Subject: [PATCH 0118/1514] Update metabolights-utils to 1.1.1 (#48673) --- recipes/metabolights-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/metabolights-utils/meta.yaml b/recipes/metabolights-utils/meta.yaml index 5368680020dec..8ba6a52bc75d4 100644 --- a/recipes/metabolights-utils/meta.yaml +++ b/recipes/metabolights-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "metabolights-utils" %} -{% set version = "1.1.0" %} +{% set version = "1.1.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/metabolights_utils-{{ version }}.tar.gz - sha256: 176e74a8a05d0925fd082305b8828fc75dfe785924d23d821e1921acee55b0c5 + sha256: 907e350d41a63817b0b7130f1177a99e2c187f5908897136bded4db8a6e8f6fd build: entry_points: From e601693e6bbf8eb97e69d6e21db464a226794410 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 23 Jun 2024 12:04:08 -0400 Subject: [PATCH 0119/1514] Update sincei to 0.4 (#48675) --- recipes/sincei/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sincei/meta.yaml b/recipes/sincei/meta.yaml index 8501d4ad1cd8a..046e0abc67dea 100644 --- a/recipes/sincei/meta.yaml +++ b/recipes/sincei/meta.yaml @@ -1,5 +1,5 @@ {% set name = "sincei" %} -{% set version = "0.3.1" %} +{% set version = "0.4" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: cd88a5ffa837989b3245b870c164e243962ec79f76e313bcd576ee1447af97a3 + sha256: 04d60233a9cfadc32601b5ef79b872bc6e08c51bd6909e62a22a9b37ecabd213 build: number: 0 From c2356821b4a6f6c88527d4906fd97b41ab9297a2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 23 Jun 2024 17:16:36 -0400 Subject: [PATCH 0120/1514] Update metabolights-utils to 1.1.2 (#48676) --- recipes/metabolights-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/metabolights-utils/meta.yaml b/recipes/metabolights-utils/meta.yaml index 8ba6a52bc75d4..7cf6ac64097b8 100644 --- a/recipes/metabolights-utils/meta.yaml +++ b/recipes/metabolights-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "metabolights-utils" %} -{% set version = "1.1.1" %} +{% set version = "1.1.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/metabolights_utils-{{ version }}.tar.gz - sha256: 907e350d41a63817b0b7130f1177a99e2c187f5908897136bded4db8a6e8f6fd + sha256: 8ee604a991c739203c3f228253a9465399682b9bd8ae985350f50fdcc56b9a03 build: entry_points: From 7eb64498ec496f35b06cea5918ee7186cb48bec5 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 24 Jun 2024 00:16:57 +0300 Subject: [PATCH 0121/1514] ngmlr: add linux-aarch64 build (#48657) * ngmlr: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Use sse2neon.h to translate SSE to NEON for ngmlr Signed-off-by: Martin Tzvetanov Grigorov * Add a patch for ngmlr 0.2.7 that contains both CRLF and LF line endings Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/ngmlr/.gitattributes | 2 + recipes/ngmlr/build.sh | 4 +- recipes/ngmlr/meta.yaml | 10 +- recipes/ngmlr/ngmlr-aarch64.patch | 9378 +++++++++++++++++++++++++++++ 4 files changed, 9392 insertions(+), 2 deletions(-) create mode 100644 recipes/ngmlr/.gitattributes create mode 100644 recipes/ngmlr/ngmlr-aarch64.patch diff --git a/recipes/ngmlr/.gitattributes b/recipes/ngmlr/.gitattributes new file mode 100644 index 0000000000000..ef2da88c475f0 --- /dev/null +++ b/recipes/ngmlr/.gitattributes @@ -0,0 +1,2 @@ +# the file contains both CRLF and LF line endings. Tell Git to not touch it +ngmlr-aarch64.patch binary diff --git a/recipes/ngmlr/build.sh b/recipes/ngmlr/build.sh index 7b1b11caa974c..6b833b8510788 100644 --- a/recipes/ngmlr/build.sh +++ b/recipes/ngmlr/build.sh @@ -1,9 +1,11 @@ #!/bin/bash +set -xe + mkdir -p build cd build cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=${PREFIX} -DSTATIC=OFF -DCMAKE_EXE_LINKER_FLAGS=-L${PREFIX}/lib .. -make VERBOSE=1 +make VERBOSE=1 -j ${CPU_COUNT} mkdir -p $PREFIX/bin cp ../bin/ngmlr-${PKG_VERSION}/ngmlr $PREFIX/bin/ diff --git a/recipes/ngmlr/meta.yaml b/recipes/ngmlr/meta.yaml index 142627f2ed918..b6c6f43f7c46c 100644 --- a/recipes/ngmlr/meta.yaml +++ b/recipes/ngmlr/meta.yaml @@ -8,9 +8,13 @@ package: source: sha256: '{{sha256}}' url: "https://github.com/philres/ngmlr/archive/v{{ version }}.tar.gz" + patches: + - ngmlr-aarch64.patch # [linux and aarch64] build: - number: 6 + number: 7 + run_exports: + - {{ pin_subpackage('ngmlr', max_pin="x") }} requirements: build: @@ -30,3 +34,7 @@ about: home: "https://github.com/philres/ngmlr" license: MIT summary: "ngmlr is a long-read mapper designed to align PacBio or Oxford Nanopore reads to a reference genome and optimized for structural variation detection" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file diff --git a/recipes/ngmlr/ngmlr-aarch64.patch b/recipes/ngmlr/ngmlr-aarch64.patch new file mode 100644 index 0000000000000..5439733de36af --- /dev/null +++ b/recipes/ngmlr/ngmlr-aarch64.patch @@ -0,0 +1,9378 @@ +diff --git c/lib/Complete-Striped-Smith-Waterman-Library/src/sse2neon.h i/lib/Complete-Striped-Smith-Waterman-Library/src/sse2neon.h +new file mode 100644 +index 0000000..7bbf4e1 +--- /dev/null ++++ i/lib/Complete-Striped-Smith-Waterman-Library/src/sse2neon.h +@@ -0,0 +1,9289 @@ ++#ifndef SSE2NEON_H ++#define SSE2NEON_H ++ ++/* ++ * sse2neon is freely redistributable under the MIT License. ++ * ++ * Copyright (c) 2015-2024 SSE2NEON Contributors. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a copy ++ * of this software and associated documentation files (the "Software"), to deal ++ * in the Software without restriction, including without limitation the rights ++ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ++ * copies of the Software, and to permit persons to whom the Software is ++ * furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be included in ++ * all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++ * SOFTWARE. ++ */ ++ ++// This header file provides a simple API translation layer ++// between SSE intrinsics to their corresponding Arm/Aarch64 NEON versions ++// ++// Contributors to this work are: ++// John W. Ratcliff ++// Brandon Rowlett ++// Ken Fast ++// Eric van Beurden ++// Alexander Potylitsin ++// Hasindu Gamaarachchi ++// Jim Huang ++// Mark Cheng ++// Malcolm James MacLeod ++// Devin Hussey (easyaspi314) ++// Sebastian Pop ++// Developer Ecosystem Engineering ++// Danila Kutenin ++// François Turban (JishinMaster) ++// Pei-Hsuan Hung ++// Yang-Hao Yuan ++// Syoyo Fujita ++// Brecht Van Lommel ++// Jonathan Hue ++// Cuda Chen ++// Aymen Qader ++// Anthony Roberts ++ ++/* Tunable configurations */ ++ ++/* Enable precise implementation of math operations ++ * This would slow down the computation a bit, but gives consistent result with ++ * x86 SSE. (e.g. would solve a hole or NaN pixel in the rendering result) ++ */ ++/* _mm_min|max_ps|ss|pd|sd */ ++#ifndef SSE2NEON_PRECISE_MINMAX ++#define SSE2NEON_PRECISE_MINMAX (0) ++#endif ++/* _mm_rcp_ps */ ++#ifndef SSE2NEON_PRECISE_DIV ++#define SSE2NEON_PRECISE_DIV (0) ++#endif ++/* _mm_sqrt_ps and _mm_rsqrt_ps */ ++#ifndef SSE2NEON_PRECISE_SQRT ++#define SSE2NEON_PRECISE_SQRT (0) ++#endif ++/* _mm_dp_pd */ ++#ifndef SSE2NEON_PRECISE_DP ++#define SSE2NEON_PRECISE_DP (0) ++#endif ++ ++/* Enable inclusion of windows.h on MSVC platforms ++ * This makes _mm_clflush functional on windows, as there is no builtin. ++ */ ++#ifndef SSE2NEON_INCLUDE_WINDOWS_H ++#define SSE2NEON_INCLUDE_WINDOWS_H (0) ++#endif ++ ++/* compiler specific definitions */ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma push_macro("FORCE_INLINE") ++#pragma push_macro("ALIGN_STRUCT") ++#define FORCE_INLINE static inline __attribute__((always_inline)) ++#define ALIGN_STRUCT(x) __attribute__((aligned(x))) ++#define _sse2neon_likely(x) __builtin_expect(!!(x), 1) ++#define _sse2neon_unlikely(x) __builtin_expect(!!(x), 0) ++#elif defined(_MSC_VER) ++#if _MSVC_TRADITIONAL ++#error Using the traditional MSVC preprocessor is not supported! Use /Zc:preprocessor instead. ++#endif ++#ifndef FORCE_INLINE ++#define FORCE_INLINE static inline ++#endif ++#ifndef ALIGN_STRUCT ++#define ALIGN_STRUCT(x) __declspec(align(x)) ++#endif ++#define _sse2neon_likely(x) (x) ++#define _sse2neon_unlikely(x) (x) ++#else ++#pragma message("Macro name collisions may happen with unsupported compilers.") ++#endif ++ ++#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ < 10 ++#warning "GCC versions earlier than 10 are not supported." ++#endif ++ ++/* C language does not allow initializing a variable with a function call. */ ++#ifdef __cplusplus ++#define _sse2neon_const static const ++#else ++#define _sse2neon_const const ++#endif ++ ++#include ++#include ++ ++#if defined(_WIN32) ++/* Definitions for _mm_{malloc,free} are provided by ++ * from both MinGW-w64 and MSVC. ++ */ ++#define SSE2NEON_ALLOC_DEFINED ++#endif ++ ++/* If using MSVC */ ++#ifdef _MSC_VER ++#include ++#if SSE2NEON_INCLUDE_WINDOWS_H ++#include ++#include ++#endif ++ ++#if !defined(__cplusplus) ++#error SSE2NEON only supports C++ compilation with this compiler ++#endif ++ ++#ifdef SSE2NEON_ALLOC_DEFINED ++#include ++#endif ++ ++#if (defined(_M_AMD64) || defined(__x86_64__)) || \ ++ (defined(_M_ARM64) || defined(__arm64__)) ++#define SSE2NEON_HAS_BITSCAN64 ++#endif ++#endif ++ ++#if defined(__GNUC__) || defined(__clang__) ++#define _sse2neon_define0(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define1(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define2(type, a, b, body) \ ++ __extension__({ \ ++ type _a = (a), _b = (b); \ ++ body \ ++ }) ++#define _sse2neon_return(ret) (ret) ++#else ++#define _sse2neon_define0(type, a, body) [=](type _a) { body }(a) ++#define _sse2neon_define1(type, a, body) [](type _a) { body }(a) ++#define _sse2neon_define2(type, a, b, body) \ ++ [](type _a, type _b) { body }((a), (b)) ++#define _sse2neon_return(ret) return ret ++#endif ++ ++#define _sse2neon_init(...) \ ++ { \ ++ __VA_ARGS__ \ ++ } ++ ++/* Compiler barrier */ ++#if defined(_MSC_VER) ++#define SSE2NEON_BARRIER() _ReadWriteBarrier() ++#else ++#define SSE2NEON_BARRIER() \ ++ do { \ ++ __asm__ __volatile__("" ::: "memory"); \ ++ (void) 0; \ ++ } while (0) ++#endif ++ ++/* Memory barriers ++ * __atomic_thread_fence does not include a compiler barrier; instead, ++ * the barrier is part of __atomic_load/__atomic_store's "volatile-like" ++ * semantics. ++ */ ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) ++#include ++#endif ++ ++FORCE_INLINE void _sse2neon_smp_mb(void) ++{ ++ SSE2NEON_BARRIER(); ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \ ++ !defined(__STDC_NO_ATOMICS__) ++ atomic_thread_fence(memory_order_seq_cst); ++#elif defined(__GNUC__) || defined(__clang__) ++ __atomic_thread_fence(__ATOMIC_SEQ_CST); ++#else /* MSVC */ ++ __dmb(_ARM64_BARRIER_ISH); ++#endif ++} ++ ++/* Architecture-specific build options */ ++/* FIXME: #pragma GCC push_options is only available on GCC */ ++#if defined(__GNUC__) ++#if defined(__arm__) && __ARM_ARCH == 7 ++/* According to ARM C Language Extensions Architecture specification, ++ * __ARM_NEON is defined to a value indicating the Advanced SIMD (NEON) ++ * architecture supported. ++ */ ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error "You must enable NEON instructions (e.g. -mfpu=neon) to use SSE2NEON." ++#endif ++#if !defined(__clang__) ++#pragma GCC push_options ++#pragma GCC target("fpu=neon") ++#endif ++#elif defined(__aarch64__) || defined(_M_ARM64) ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#pragma GCC target("+simd") ++#endif ++#elif __ARM_ARCH == 8 ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error \ ++ "You must enable NEON instructions (e.g. -mfpu=neon-fp-armv8) to use SSE2NEON." ++#endif ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#endif ++#else ++#error \ ++ "Unsupported target. Must be either ARMv7-A+NEON or ARMv8-A \ ++(you could try setting target explicitly with -march or -mcpu)" ++#endif ++#endif ++ ++#include ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) && (__ARM_ARCH == 8) ++#if defined __has_include && __has_include() ++#include ++#endif ++#endif ++ ++/* Apple Silicon cache lines are double of what is commonly used by Intel, AMD ++ * and other Arm microarchitectures use. ++ * From sysctl -a on Apple M1: ++ * hw.cachelinesize: 128 ++ */ ++#if defined(__APPLE__) && (defined(__aarch64__) || defined(__arm64__)) ++#define SSE2NEON_CACHELINE_SIZE 128 ++#else ++#define SSE2NEON_CACHELINE_SIZE 64 ++#endif ++ ++/* Rounding functions require either Aarch64 instructions or libm fallback */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#include ++#endif ++ ++/* On ARMv7, some registers, such as PMUSERENR and PMCCNTR, are read-only ++ * or even not accessible in user mode. ++ * To write or access to these registers in user mode, ++ * we have to perform syscall instead. ++ */ ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) ++#include ++#endif ++ ++/* "__has_builtin" can be used to query support for built-in functions ++ * provided by gcc/clang and other compilers that support it. ++ */ ++#ifndef __has_builtin /* GCC prior to 10 or non-clang compilers */ ++/* Compatibility with gcc <= 9 */ ++#if defined(__GNUC__) && (__GNUC__ <= 9) ++#define __has_builtin(x) HAS##x ++#define HAS__builtin_popcount 1 ++#define HAS__builtin_popcountll 1 ++ ++// __builtin_shuffle introduced in GCC 4.7.0 ++#if (__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) ++#define HAS__builtin_shuffle 1 ++#else ++#define HAS__builtin_shuffle 0 ++#endif ++ ++#define HAS__builtin_shufflevector 0 ++#define HAS__builtin_nontemporal_store 0 ++#else ++#define __has_builtin(x) 0 ++#endif ++#endif ++ ++/** ++ * MACRO for shuffle parameter for _mm_shuffle_ps(). ++ * Argument fp3 is a digit[0123] that represents the fp from argument "b" ++ * of mm_shuffle_ps that will be placed in fp3 of result. fp2 is the same ++ * for fp2 in result. fp1 is a digit[0123] that represents the fp from ++ * argument "a" of mm_shuffle_ps that will be places in fp1 of result. ++ * fp0 is the same for fp0 of result. ++ */ ++#define _MM_SHUFFLE(fp3, fp2, fp1, fp0) \ ++ (((fp3) << 6) | ((fp2) << 4) | ((fp1) << 2) | ((fp0))) ++ ++#if __has_builtin(__builtin_shufflevector) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __builtin_shufflevector(a, b, __VA_ARGS__) ++#elif __has_builtin(__builtin_shuffle) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __extension__({ \ ++ type tmp = {__VA_ARGS__}; \ ++ __builtin_shuffle(a, b, tmp); \ ++ }) ++#endif ++ ++#ifdef _sse2neon_shuffle ++#define vshuffle_s16(a, b, ...) _sse2neon_shuffle(int16x4_t, a, b, __VA_ARGS__) ++#define vshuffleq_s16(a, b, ...) _sse2neon_shuffle(int16x8_t, a, b, __VA_ARGS__) ++#define vshuffle_s32(a, b, ...) _sse2neon_shuffle(int32x2_t, a, b, __VA_ARGS__) ++#define vshuffleq_s32(a, b, ...) _sse2neon_shuffle(int32x4_t, a, b, __VA_ARGS__) ++#define vshuffle_s64(a, b, ...) _sse2neon_shuffle(int64x1_t, a, b, __VA_ARGS__) ++#define vshuffleq_s64(a, b, ...) _sse2neon_shuffle(int64x2_t, a, b, __VA_ARGS__) ++#endif ++ ++/* Rounding mode macros. */ ++#define _MM_FROUND_TO_NEAREST_INT 0x00 ++#define _MM_FROUND_TO_NEG_INF 0x01 ++#define _MM_FROUND_TO_POS_INF 0x02 ++#define _MM_FROUND_TO_ZERO 0x03 ++#define _MM_FROUND_CUR_DIRECTION 0x04 ++#define _MM_FROUND_NO_EXC 0x08 ++#define _MM_FROUND_RAISE_EXC 0x00 ++#define _MM_FROUND_NINT (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_FLOOR (_MM_FROUND_TO_NEG_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_CEIL (_MM_FROUND_TO_POS_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_TRUNC (_MM_FROUND_TO_ZERO | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_RINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_NEARBYINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_NO_EXC) ++#define _MM_ROUND_NEAREST 0x0000 ++#define _MM_ROUND_DOWN 0x2000 ++#define _MM_ROUND_UP 0x4000 ++#define _MM_ROUND_TOWARD_ZERO 0x6000 ++/* Flush zero mode macros. */ ++#define _MM_FLUSH_ZERO_MASK 0x8000 ++#define _MM_FLUSH_ZERO_ON 0x8000 ++#define _MM_FLUSH_ZERO_OFF 0x0000 ++/* Denormals are zeros mode macros. */ ++#define _MM_DENORMALS_ZERO_MASK 0x0040 ++#define _MM_DENORMALS_ZERO_ON 0x0040 ++#define _MM_DENORMALS_ZERO_OFF 0x0000 ++ ++/* indicate immediate constant argument in a given range */ ++#define __constrange(a, b) const ++ ++/* A few intrinsics accept traditional data types like ints or floats, but ++ * most operate on data types that are specific to SSE. ++ * If a vector type ends in d, it contains doubles, and if it does not have ++ * a suffix, it contains floats. An integer vector type can contain any type ++ * of integer, from chars to shorts to unsigned long longs. ++ */ ++typedef int64x1_t __m64; ++typedef float32x4_t __m128; /* 128-bit vector containing 4 floats */ ++// On ARM 32-bit architecture, the float64x2_t is not supported. ++// The data type __m128d should be represented in a different way for related ++// intrinsic conversion. ++#if defined(__aarch64__) || defined(_M_ARM64) ++typedef float64x2_t __m128d; /* 128-bit vector containing 2 doubles */ ++#else ++typedef float32x4_t __m128d; ++#endif ++typedef int64x2_t __m128i; /* 128-bit vector containing integers */ ++ ++// Some intrinsics operate on unaligned data types. ++typedef int16_t ALIGN_STRUCT(1) unaligned_int16_t; ++typedef int32_t ALIGN_STRUCT(1) unaligned_int32_t; ++typedef int64_t ALIGN_STRUCT(1) unaligned_int64_t; ++ ++// __int64 is defined in the Intrinsics Guide which maps to different datatype ++// in different data model ++#if !(defined(_WIN32) || defined(_WIN64) || defined(__int64)) ++#if (defined(__x86_64__) || defined(__i386__)) ++#define __int64 long long ++#else ++#define __int64 int64_t ++#endif ++#endif ++ ++/* type-safe casting between types */ ++ ++#define vreinterpretq_m128_f16(x) vreinterpretq_f32_f16(x) ++#define vreinterpretq_m128_f32(x) (x) ++#define vreinterpretq_m128_f64(x) vreinterpretq_f32_f64(x) ++ ++#define vreinterpretq_m128_u8(x) vreinterpretq_f32_u8(x) ++#define vreinterpretq_m128_u16(x) vreinterpretq_f32_u16(x) ++#define vreinterpretq_m128_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128_s8(x) vreinterpretq_f32_s8(x) ++#define vreinterpretq_m128_s16(x) vreinterpretq_f32_s16(x) ++#define vreinterpretq_m128_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_f16_m128(x) vreinterpretq_f16_f32(x) ++#define vreinterpretq_f32_m128(x) (x) ++#define vreinterpretq_f64_m128(x) vreinterpretq_f64_f32(x) ++ ++#define vreinterpretq_u8_m128(x) vreinterpretq_u8_f32(x) ++#define vreinterpretq_u16_m128(x) vreinterpretq_u16_f32(x) ++#define vreinterpretq_u32_m128(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_s8_m128(x) vreinterpretq_s8_f32(x) ++#define vreinterpretq_s16_m128(x) vreinterpretq_s16_f32(x) ++#define vreinterpretq_s32_m128(x) vreinterpretq_s32_f32(x) ++#define vreinterpretq_s64_m128(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_m128i_s8(x) vreinterpretq_s64_s8(x) ++#define vreinterpretq_m128i_s16(x) vreinterpretq_s64_s16(x) ++#define vreinterpretq_m128i_s32(x) vreinterpretq_s64_s32(x) ++#define vreinterpretq_m128i_s64(x) (x) ++ ++#define vreinterpretq_m128i_u8(x) vreinterpretq_s64_u8(x) ++#define vreinterpretq_m128i_u16(x) vreinterpretq_s64_u16(x) ++#define vreinterpretq_m128i_u32(x) vreinterpretq_s64_u32(x) ++#define vreinterpretq_m128i_u64(x) vreinterpretq_s64_u64(x) ++ ++#define vreinterpretq_f32_m128i(x) vreinterpretq_f32_s64(x) ++#define vreinterpretq_f64_m128i(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_s8_m128i(x) vreinterpretq_s8_s64(x) ++#define vreinterpretq_s16_m128i(x) vreinterpretq_s16_s64(x) ++#define vreinterpretq_s32_m128i(x) vreinterpretq_s32_s64(x) ++#define vreinterpretq_s64_m128i(x) (x) ++ ++#define vreinterpretq_u8_m128i(x) vreinterpretq_u8_s64(x) ++#define vreinterpretq_u16_m128i(x) vreinterpretq_u16_s64(x) ++#define vreinterpretq_u32_m128i(x) vreinterpretq_u32_s64(x) ++#define vreinterpretq_u64_m128i(x) vreinterpretq_u64_s64(x) ++ ++#define vreinterpret_m64_s8(x) vreinterpret_s64_s8(x) ++#define vreinterpret_m64_s16(x) vreinterpret_s64_s16(x) ++#define vreinterpret_m64_s32(x) vreinterpret_s64_s32(x) ++#define vreinterpret_m64_s64(x) (x) ++ ++#define vreinterpret_m64_u8(x) vreinterpret_s64_u8(x) ++#define vreinterpret_m64_u16(x) vreinterpret_s64_u16(x) ++#define vreinterpret_m64_u32(x) vreinterpret_s64_u32(x) ++#define vreinterpret_m64_u64(x) vreinterpret_s64_u64(x) ++ ++#define vreinterpret_m64_f16(x) vreinterpret_s64_f16(x) ++#define vreinterpret_m64_f32(x) vreinterpret_s64_f32(x) ++#define vreinterpret_m64_f64(x) vreinterpret_s64_f64(x) ++ ++#define vreinterpret_u8_m64(x) vreinterpret_u8_s64(x) ++#define vreinterpret_u16_m64(x) vreinterpret_u16_s64(x) ++#define vreinterpret_u32_m64(x) vreinterpret_u32_s64(x) ++#define vreinterpret_u64_m64(x) vreinterpret_u64_s64(x) ++ ++#define vreinterpret_s8_m64(x) vreinterpret_s8_s64(x) ++#define vreinterpret_s16_m64(x) vreinterpret_s16_s64(x) ++#define vreinterpret_s32_m64(x) vreinterpret_s32_s64(x) ++#define vreinterpret_s64_m64(x) (x) ++ ++#define vreinterpret_f32_m64(x) vreinterpret_f32_s64(x) ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f64_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f64_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) vreinterpretq_f64_f32(x) ++#define vreinterpretq_m128d_f64(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f64(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f64(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f64(x) ++ ++#define vreinterpretq_f64_m128d(x) (x) ++#define vreinterpretq_f32_m128d(x) vreinterpretq_f32_f64(x) ++#else ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_m128d_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_f32_m128d(x) (x) ++#endif ++ ++// A struct is defined in this header file called 'SIMDVec' which can be used ++// by applications which attempt to access the contents of an __m128 struct ++// directly. It is important to note that accessing the __m128 struct directly ++// is bad coding practice by Microsoft: @see: ++// https://learn.microsoft.com/en-us/cpp/cpp/m128 ++// ++// However, some legacy source code may try to access the contents of an __m128 ++// struct directly so the developer can use the SIMDVec as an alias for it. Any ++// casting must be done manually by the developer, as you cannot cast or ++// otherwise alias the base NEON data type for intrinsic operations. ++// ++// union intended to allow direct access to an __m128 variable using the names ++// that the MSVC compiler provides. This union should really only be used when ++// trying to access the members of the vector as integer values. GCC/clang ++// allow native access to the float members through a simple array access ++// operator (in C since 4.6, in C++ since 4.8). ++// ++// Ideally direct accesses to SIMD vectors should not be used since it can cause ++// a performance hit. If it really is needed however, the original __m128 ++// variable can be aliased with a pointer to this union and used to access ++// individual components. The use of this union should be hidden behind a macro ++// that is used throughout the codebase to access the members instead of always ++// declaring this type of variable. ++typedef union ALIGN_STRUCT(16) SIMDVec { ++ float m128_f32[4]; // as floats - DON'T USE. Added for convenience. ++ int8_t m128_i8[16]; // as signed 8-bit integers. ++ int16_t m128_i16[8]; // as signed 16-bit integers. ++ int32_t m128_i32[4]; // as signed 32-bit integers. ++ int64_t m128_i64[2]; // as signed 64-bit integers. ++ uint8_t m128_u8[16]; // as unsigned 8-bit integers. ++ uint16_t m128_u16[8]; // as unsigned 16-bit integers. ++ uint32_t m128_u32[4]; // as unsigned 32-bit integers. ++ uint64_t m128_u64[2]; // as unsigned 64-bit integers. ++} SIMDVec; ++ ++// casting using SIMDVec ++#define vreinterpretq_nth_u64_m128i(x, n) (((SIMDVec *) &x)->m128_u64[n]) ++#define vreinterpretq_nth_u32_m128i(x, n) (((SIMDVec *) &x)->m128_u32[n]) ++#define vreinterpretq_nth_u8_m128i(x, n) (((SIMDVec *) &x)->m128_u8[n]) ++ ++/* SSE macros */ ++#define _MM_GET_FLUSH_ZERO_MODE _sse2neon_mm_get_flush_zero_mode ++#define _MM_SET_FLUSH_ZERO_MODE _sse2neon_mm_set_flush_zero_mode ++#define _MM_GET_DENORMALS_ZERO_MODE _sse2neon_mm_get_denormals_zero_mode ++#define _MM_SET_DENORMALS_ZERO_MODE _sse2neon_mm_set_denormals_zero_mode ++ ++// Function declaration ++// SSE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void); ++FORCE_INLINE __m128 _mm_move_ss(__m128, __m128); ++FORCE_INLINE __m128 _mm_or_ps(__m128, __m128); ++FORCE_INLINE __m128 _mm_set_ps1(float); ++FORCE_INLINE __m128 _mm_setzero_ps(void); ++// SSE2 ++FORCE_INLINE __m128i _mm_and_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_castps_si128(__m128); ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128); ++FORCE_INLINE __m128d _mm_move_sd(__m128d, __m128d); ++FORCE_INLINE __m128i _mm_or_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_set_epi32(int, int, int, int); ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t, int64_t); ++FORCE_INLINE __m128d _mm_set_pd(double, double); ++FORCE_INLINE __m128i _mm_set1_epi32(int); ++FORCE_INLINE __m128i _mm_setzero_si128(void); ++// SSE4.1 ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d); ++FORCE_INLINE __m128 _mm_ceil_ps(__m128); ++FORCE_INLINE __m128d _mm_floor_pd(__m128d); ++FORCE_INLINE __m128 _mm_floor_ps(__m128); ++FORCE_INLINE __m128d _mm_round_pd(__m128d, int); ++FORCE_INLINE __m128 _mm_round_ps(__m128, int); ++// SSE4.2 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t, uint8_t); ++ ++/* Backwards compatibility for compilers with lack of specific type support */ ++ ++// Older gcc does not define vld1q_u8_x4 type ++#if defined(__GNUC__) && !defined(__clang__) && \ ++ ((__GNUC__ <= 13 && defined(__arm__)) || \ ++ (__GNUC__ == 10 && __GNUC_MINOR__ < 3 && defined(__aarch64__)) || \ ++ (__GNUC__ <= 9 && defined(__aarch64__))) ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ uint8x16x4_t ret; ++ ret.val[0] = vld1q_u8(p + 0); ++ ret.val[1] = vld1q_u8(p + 16); ++ ret.val[2] = vld1q_u8(p + 32); ++ ret.val[3] = vld1q_u8(p + 48); ++ return ret; ++} ++#else ++// Wraps vld1q_u8_x4 ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ return vld1q_u8_x4(p); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddv u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ const uint64x1_t v1 = vpaddl_u32(vpaddl_u16(vpaddl_u8(v8))); ++ return vget_lane_u8(vreinterpret_u8_u64(v1), 0); ++} ++#else ++// Wraps vaddv_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ return vaddv_u8(v8); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ uint8x8_t tmp = vpadd_u8(vget_low_u8(a), vget_high_u8(a)); ++ uint8_t res = 0; ++ for (int i = 0; i < 8; ++i) ++ res += tmp[i]; ++ return res; ++} ++#else ++// Wraps vaddvq_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ return vaddvq_u8(a); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u16 variant */ ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ uint32x4_t m = vpaddlq_u16(a); ++ uint64x2_t n = vpaddlq_u32(m); ++ uint64x1_t o = vget_low_u64(n) + vget_high_u64(n); ++ ++ return vget_lane_u32((uint32x2_t) o, 0); ++} ++#else ++// Wraps vaddvq_u16 ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ return vaddvq_u16(a); ++} ++#endif ++ ++/* Function Naming Conventions ++ * The naming convention of SSE intrinsics is straightforward. A generic SSE ++ * intrinsic function is given as follows: ++ * _mm__ ++ * ++ * The parts of this format are given as follows: ++ * 1. describes the operation performed by the intrinsic ++ * 2. identifies the data type of the function's primary arguments ++ * ++ * This last part, , is a little complicated. It identifies the ++ * content of the input values, and can be set to any of the following values: ++ * + ps - vectors contain floats (ps stands for packed single-precision) ++ * + pd - vectors contain doubles (pd stands for packed double-precision) ++ * + epi8/epi16/epi32/epi64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * signed integers ++ * + epu8/epu16/epu32/epu64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * unsigned integers ++ * + si128 - unspecified 128-bit vector or 256-bit vector ++ * + m128/m128i/m128d - identifies input vector types when they are different ++ * than the type of the returned vector ++ * ++ * For example, _mm_setzero_ps. The _mm implies that the function returns ++ * a 128-bit vector. The _ps at the end implies that the argument vectors ++ * contain floats. ++ * ++ * A complete example: Byte Shuffle - pshufb (_mm_shuffle_epi8) ++ * // Set packed 16-bit integers. 128 bits, 8 short, per 16 bits ++ * __m128i v_in = _mm_setr_epi16(1, 2, 3, 4, 5, 6, 7, 8); ++ * // Set packed 8-bit integers ++ * // 128 bits, 16 chars, per 8 bits ++ * __m128i v_perm = _mm_setr_epi8(1, 0, 2, 3, 8, 9, 10, 11, ++ * 4, 5, 12, 13, 6, 7, 14, 15); ++ * // Shuffle packed 8-bit integers ++ * __m128i v_out = _mm_shuffle_epi8(v_in, v_perm); // pshufb ++ */ ++ ++/* Constants for use with _mm_prefetch. */ ++enum _mm_hint { ++ _MM_HINT_NTA = 0, /* load data to L1 and L2 cache, mark it as NTA */ ++ _MM_HINT_T0 = 1, /* load data to L1 and L2 cache */ ++ _MM_HINT_T1 = 2, /* load data to L2 cache only */ ++ _MM_HINT_T2 = 3, /* load data to L2 cache only, mark it as NTA */ ++}; ++ ++// The bit field mapping to the FPCR(floating-point control register) ++typedef struct { ++ uint16_t res0; ++ uint8_t res1 : 6; ++ uint8_t bit22 : 1; ++ uint8_t bit23 : 1; ++ uint8_t bit24 : 1; ++ uint8_t res2 : 7; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32_t res3; ++#endif ++} fpcr_bitfield; ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of b and places it into the high end of the result. ++FORCE_INLINE __m128 _mm_shuffle_ps_1032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in high ++// end of result takes the higher two 32 bit values from b and swaps them and ++// places in low end of result. ++FORCE_INLINE __m128 _mm_shuffle_ps_2301(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b23 = vrev64_f32(vget_high_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b23)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0321(__m128 a, __m128 b) ++{ ++ float32x2_t a21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a21, b03)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2103(__m128 a, __m128 b) ++{ ++ float32x2_t a03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a03, b21)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0101(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b01)); ++} ++ ++// keeps the low 64 bits of b in the low and puts the high 64 bits of a in the ++// high ++FORCE_INLINE __m128 _mm_shuffle_ps_3210(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0011(__m128 a, __m128 b) ++{ ++ float32x2_t a11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a11, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0022(__m128 a, __m128 b) ++{ ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a22, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2200(__m128 a, __m128 b) ++{ ++ float32x2_t a00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a00, b22)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_3202(__m128 a, __m128 b) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t a02 = vset_lane_f32(a0, a22, 1); /* TODO: use vzip ?*/ ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a02, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1133(__m128 a, __m128 b) ++{ ++ float32x2_t a33 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a33, b11)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b20)); ++} ++ ++// For MSVC, we check only if it is ARM64, as every single ARM64 processor ++// supported by WoA has crypto extensions. If this changes in the future, ++// this can be verified via the runtime-only method of: ++// IsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE) ++#if (defined(_M_ARM64) && !defined(__clang__)) || \ ++ (defined(__ARM_FEATURE_CRYPTO) && \ ++ (defined(__aarch64__) || __has_builtin(__builtin_arm_crypto_vmullp64))) ++// Wraps vmull_p64 ++FORCE_INLINE uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly64_t a = vget_lane_p64(vreinterpret_p64_u64(_a), 0); ++ poly64_t b = vget_lane_p64(vreinterpret_p64_u64(_b), 0); ++#if defined(_MSC_VER) ++ __n64 a1 = {a}, b1 = {b}; ++ return vreinterpretq_u64_p128(vmull_p64(a1, b1)); ++#else ++ return vreinterpretq_u64_p128(vmull_p64(a, b)); ++#endif ++} ++#else // ARMv7 polyfill ++// ARMv7/some A64 lacks vmull_p64, but it has vmull_p8. ++// ++// vmull_p8 calculates 8 8-bit->16-bit polynomial multiplies, but we need a ++// 64-bit->128-bit polynomial multiply. ++// ++// It needs some work and is somewhat slow, but it is still faster than all ++// known scalar methods. ++// ++// Algorithm adapted to C from ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/, which is adapted ++// from "Fast Software Polynomial Multiplication on ARM Processors Using the ++// NEON Engine" by Danilo Camara, Conrado Gouvea, Julio Lopez and Ricardo Dahab ++// (https://hal.inria.fr/hal-01506572) ++static uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly8x8_t a = vreinterpret_p8_u64(_a); ++ poly8x8_t b = vreinterpret_p8_u64(_b); ++ ++ // Masks ++ uint8x16_t k48_32 = vcombine_u8(vcreate_u8(0x0000ffffffffffff), ++ vcreate_u8(0x00000000ffffffff)); ++ uint8x16_t k16_00 = vcombine_u8(vcreate_u8(0x000000000000ffff), ++ vcreate_u8(0x0000000000000000)); ++ ++ // Do the multiplies, rotating with vext to get all combinations ++ uint8x16_t d = vreinterpretq_u8_p16(vmull_p8(a, b)); // D = A0 * B0 ++ uint8x16_t e = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 1))); // E = A0 * B1 ++ uint8x16_t f = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 1), b)); // F = A1 * B0 ++ uint8x16_t g = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 2))); // G = A0 * B2 ++ uint8x16_t h = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 2), b)); // H = A2 * B0 ++ uint8x16_t i = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 3))); // I = A0 * B3 ++ uint8x16_t j = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 3), b)); // J = A3 * B0 ++ uint8x16_t k = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 4))); // L = A0 * B4 ++ ++ // Add cross products ++ uint8x16_t l = veorq_u8(e, f); // L = E + F ++ uint8x16_t m = veorq_u8(g, h); // M = G + H ++ uint8x16_t n = veorq_u8(i, j); // N = I + J ++ ++ // Interleave. Using vzip1 and vzip2 prevents Clang from emitting TBL ++ // instructions. ++#if defined(__aarch64__) ++ uint8x16_t lm_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t lm_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t nk_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++ uint8x16_t nk_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++#else ++ uint8x16_t lm_p0 = vcombine_u8(vget_low_u8(l), vget_low_u8(m)); ++ uint8x16_t lm_p1 = vcombine_u8(vget_high_u8(l), vget_high_u8(m)); ++ uint8x16_t nk_p0 = vcombine_u8(vget_low_u8(n), vget_low_u8(k)); ++ uint8x16_t nk_p1 = vcombine_u8(vget_high_u8(n), vget_high_u8(k)); ++#endif ++ // t0 = (L) (P0 + P1) << 8 ++ // t1 = (M) (P2 + P3) << 16 ++ uint8x16_t t0t1_tmp = veorq_u8(lm_p0, lm_p1); ++ uint8x16_t t0t1_h = vandq_u8(lm_p1, k48_32); ++ uint8x16_t t0t1_l = veorq_u8(t0t1_tmp, t0t1_h); ++ ++ // t2 = (N) (P4 + P5) << 24 ++ // t3 = (K) (P6 + P7) << 32 ++ uint8x16_t t2t3_tmp = veorq_u8(nk_p0, nk_p1); ++ uint8x16_t t2t3_h = vandq_u8(nk_p1, k16_00); ++ uint8x16_t t2t3_l = veorq_u8(t2t3_tmp, t2t3_h); ++ ++ // De-interleave ++#if defined(__aarch64__) ++ uint8x16_t t0 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t1 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t2 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++ uint8x16_t t3 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++#else ++ uint8x16_t t1 = vcombine_u8(vget_high_u8(t0t1_l), vget_high_u8(t0t1_h)); ++ uint8x16_t t0 = vcombine_u8(vget_low_u8(t0t1_l), vget_low_u8(t0t1_h)); ++ uint8x16_t t3 = vcombine_u8(vget_high_u8(t2t3_l), vget_high_u8(t2t3_h)); ++ uint8x16_t t2 = vcombine_u8(vget_low_u8(t2t3_l), vget_low_u8(t2t3_h)); ++#endif ++ // Shift the cross products ++ uint8x16_t t0_shift = vextq_u8(t0, t0, 15); // t0 << 8 ++ uint8x16_t t1_shift = vextq_u8(t1, t1, 14); // t1 << 16 ++ uint8x16_t t2_shift = vextq_u8(t2, t2, 13); // t2 << 24 ++ uint8x16_t t3_shift = vextq_u8(t3, t3, 12); // t3 << 32 ++ ++ // Accumulate the products ++ uint8x16_t cross1 = veorq_u8(t0_shift, t1_shift); ++ uint8x16_t cross2 = veorq_u8(t2_shift, t3_shift); ++ uint8x16_t mix = veorq_u8(d, cross1); ++ uint8x16_t r = veorq_u8(mix, cross2); ++ return vreinterpretq_u64_u8(r); ++} ++#endif // ARMv7 polyfill ++ ++// C equivalent: ++// __m128i _mm_shuffle_epi32_default(__m128i a, ++// __constrange(0, 255) int imm) { ++// __m128i ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = a[(imm >> 4) & 0x03]; ret[3] = a[(imm >> 6) & 0x03]; ++// return ret; ++// } ++#define _mm_shuffle_epi32_default(a, imm) \ ++ vreinterpretq_m128i_s32(vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), \ ++ ((imm) >> 2) & 0x3), \ ++ vmovq_n_s32(vgetq_lane_s32( \ ++ vreinterpretq_s32_m128i(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of a and places it into the high end of the result. ++FORCE_INLINE __m128i _mm_shuffle_epi_1032(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in low end ++// of result takes the higher two 32 bit values from a and swaps them and places ++// in high end of result. ++FORCE_INLINE __m128i _mm_shuffle_epi_2301(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a23 = vrev64_s32(vget_high_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a23)); ++} ++ ++// rotates the least significant 32 bits into the most significant 32 bits, and ++// shifts the rest down ++FORCE_INLINE __m128i _mm_shuffle_epi_0321(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 1)); ++} ++ ++// rotates the most significant 32 bits into the least significant 32 bits, and ++// shifts the rest up ++FORCE_INLINE __m128i _mm_shuffle_epi_2103(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 3)); ++} ++ ++// gets the lower 64 bits of a, and places it in the upper 64 bits ++// gets the lower 64 bits of a and places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1010(__m128i a) ++{ ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a10, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements, and places it in the ++// lower 64 bits gets the lower 64 bits of a, and places it in the upper 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1001(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements and places it in the ++// upper 64 bits gets the lower 64 bits of a, swaps the 0 and 1 elements, and ++// places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_0101(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_2211(__m128i a) ++{ ++ int32x2_t a11 = vdup_lane_s32(vget_low_s32(vreinterpretq_s32_m128i(a)), 1); ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ return vreinterpretq_m128i_s32(vcombine_s32(a11, a22)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_0122(__m128i a) ++{ ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a22, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_3332(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a33 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 1); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a33)); ++} ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32(vdupq_laneq_s32(vreinterpretq_s32_m128i(a), (imm))) ++#else ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vdupq_n_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)))) ++#endif ++ ++// NEON does not support a general purpose permute intrinsic. ++// Shuffle single-precision (32-bit) floating-point elements in a using the ++// control in imm8, and store the results in dst. ++// ++// C equivalent: ++// __m128 _mm_shuffle_ps_default(__m128 a, __m128 b, ++// __constrange(0, 255) int imm) { ++// __m128 ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = b[(imm >> 4) & 0x03]; ret[3] = b[(imm >> 6) & 0x03]; ++// return ret; ++// } ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_ps ++#define _mm_shuffle_ps_default(a, b, imm) \ ++ vreinterpretq_m128_f32(vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), ((imm) >> 2) & 0x3), \ ++ vmovq_n_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Shuffle 16-bit integers in the low 64 bits of a using the control in imm8. ++// Store the results in the low 64 bits of dst, with the high 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflelo_epi16 ++#define _mm_shufflelo_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t lowBits = vget_low_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, (imm) & (0x3)), ret, 0); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++// Shuffle 16-bit integers in the high 64 bits of a using the control in imm8. ++// Store the results in the high 64 bits of dst, with the low 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflehi_epi16 ++#define _mm_shufflehi_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t highBits = vget_high_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, (imm) & (0x3)), ret, 4); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 2) & 0x3), ret, \ ++ 5); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 4) & 0x3), ret, \ ++ 6); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 6) & 0x3), ret, \ ++ 7); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++/* MMX */ ++ ++//_mm_empty is a no-op on arm ++FORCE_INLINE void _mm_empty(void) {} ++ ++/* SSE */ ++ ++// Add packed single-precision (32-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ps ++FORCE_INLINE __m128 _mm_add_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Add the lower single-precision (32-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ss ++FORCE_INLINE __m128 _mm_add_ss(__m128 a, __m128 b) ++{ ++ float32_t b0 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++ float32x4_t value = vsetq_lane_f32(b0, vdupq_n_f32(0), 0); ++ // the upper values in the result must be the remnants of . ++ return vreinterpretq_m128_f32(vaddq_f32(a, value)); ++} ++ ++// Compute the bitwise AND of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_ps ++FORCE_INLINE __m128 _mm_and_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vandq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Compute the bitwise NOT of packed single-precision (32-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_ps ++FORCE_INLINE __m128 _mm_andnot_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vbicq_s32(vreinterpretq_s32_m128(b), ++ vreinterpretq_s32_m128(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu16 ++FORCE_INLINE __m64 _mm_avg_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16( ++ vrhadd_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu8 ++FORCE_INLINE __m64 _mm_avg_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vrhadd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ps ++FORCE_INLINE __m128 _mm_cmpeq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ss ++FORCE_INLINE __m128 _mm_cmpeq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpeq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ps ++FORCE_INLINE __m128 _mm_cmpge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ss ++FORCE_INLINE __m128 _mm_cmpge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ps ++FORCE_INLINE __m128 _mm_cmpgt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ss ++FORCE_INLINE __m128 _mm_cmpgt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpgt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ps ++FORCE_INLINE __m128 _mm_cmple_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ss ++FORCE_INLINE __m128 _mm_cmple_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmple_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ps ++FORCE_INLINE __m128 _mm_cmplt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ss ++FORCE_INLINE __m128 _mm_cmplt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmplt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ps ++FORCE_INLINE __m128 _mm_cmpneq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ss ++FORCE_INLINE __m128 _mm_cmpneq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpneq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ps ++FORCE_INLINE __m128 _mm_cmpnge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ss ++FORCE_INLINE __m128 _mm_cmpnge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ps ++FORCE_INLINE __m128 _mm_cmpngt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ss ++FORCE_INLINE __m128 _mm_cmpngt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpngt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ps ++FORCE_INLINE __m128 _mm_cmpnle_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ss ++FORCE_INLINE __m128 _mm_cmpnle_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnle_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ps ++FORCE_INLINE __m128 _mm_cmpnlt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ss ++FORCE_INLINE __m128 _mm_cmpnlt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnlt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ps ++// ++// See also: ++// http://stackoverflow.com/questions/8627331/what-does-ordered-unordered-comparison-mean ++// http://stackoverflow.com/questions/29349621/neon-isnanval-intrinsics ++FORCE_INLINE __m128 _mm_cmpord_ps(__m128 a, __m128 b) ++{ ++ // Note: NEON does not have ordered compare builtin ++ // Need to compare a eq a and b eq b to check for NaN ++ // Do AND of results to get final ++ uint32x4_t ceqaa = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t ceqbb = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vandq_u32(ceqaa, ceqbb)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ss ++FORCE_INLINE __m128 _mm_cmpord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpord_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ps ++FORCE_INLINE __m128 _mm_cmpunord_ps(__m128 a, __m128 b) ++{ ++ uint32x4_t f32a = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t f32b = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vmvnq_u32(vandq_u32(f32a, f32b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ss ++FORCE_INLINE __m128 _mm_cmpunord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpunord_ps(a, b)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_ss ++FORCE_INLINE int _mm_comieq_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_eq_b = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_eq_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_ss ++FORCE_INLINE int _mm_comige_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_ge_b = ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_ge_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_ss ++FORCE_INLINE int _mm_comigt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_gt_b = ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_gt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_ss ++FORCE_INLINE int _mm_comile_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_le_b = ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_le_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_ss ++FORCE_INLINE int _mm_comilt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_lt_b = ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_lt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_ss ++FORCE_INLINE int _mm_comineq_ss(__m128 a, __m128 b) ++{ ++ return !_mm_comieq_ss(a, b); ++} ++ ++// Convert packed signed 32-bit integers in b to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, and copy the upper 2 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_pi2ps ++FORCE_INLINE __m128 _mm_cvt_pi2ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ps2pi ++FORCE_INLINE __m64 _mm_cvt_ps2pi(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))))); ++#else ++ return vreinterpret_m64_s32(vcvt_s32_f32(vget_low_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION))))); ++#endif ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_si2ss ++FORCE_INLINE __m128 _mm_cvt_si2ss(__m128 a, int b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ss2si ++FORCE_INLINE int _mm_cvt_ss2si(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vgetq_lane_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))), ++ 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int32_t) data; ++#endif ++} ++ ++// Convert packed 16-bit integers in a to packed single-precision (32-bit) ++// floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi16_ps ++FORCE_INLINE __m128 _mm_cvtpi16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vmovl_s16(vreinterpret_s16_m64(a)))); ++} ++ ++// Convert packed 32-bit integers in b to packed single-precision (32-bit) ++// floating-point elements, store the results in the lower 2 elements of dst, ++// and copy the upper 2 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_ps ++FORCE_INLINE __m128 _mm_cvtpi32_ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, then convert the packed signed 32-bit integers in b to ++// single-precision (32-bit) floating-point element, and store the results in ++// the upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32x2_ps ++FORCE_INLINE __m128 _mm_cvtpi32x2_ps(__m64 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vcombine_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b)))); ++} ++ ++// Convert the lower packed 8-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi8_ps ++FORCE_INLINE __m128 _mm_cvtpi8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vmovl_s16(vget_low_s16(vmovl_s8(vreinterpret_s8_m64(a)))))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 16-bit integers, and store the results in dst. Note: this intrinsic ++// will generate 0x7FFF, rather than 0x8000, for input values between 0x7FFF and ++// 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi16 ++FORCE_INLINE __m64 _mm_cvtps_pi16(__m128 a) ++{ ++ return vreinterpret_m64_s16( ++ vqmovn_s32(vreinterpretq_s32_m128i(_mm_cvtps_epi32(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi32 ++#define _mm_cvtps_pi32(a) _mm_cvt_ps2pi(a) ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 8-bit integers, and store the results in lower 4 elements of dst. ++// Note: this intrinsic will generate 0x7F, rather than 0x80, for input values ++// between 0x7F and 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi8 ++FORCE_INLINE __m64 _mm_cvtps_pi8(__m128 a) ++{ ++ return vreinterpret_m64_s8(vqmovn_s16( ++ vcombine_s16(vreinterpret_s16_m64(_mm_cvtps_pi16(a)), vdup_n_s16(0)))); ++} ++ ++// Convert packed unsigned 16-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu16_ps ++FORCE_INLINE __m128 _mm_cvtpu16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_u32(vmovl_u16(vreinterpret_u16_m64(a)))); ++} ++ ++// Convert the lower packed unsigned 8-bit integers in a to packed ++// single-precision (32-bit) floating-point elements, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu8_ps ++FORCE_INLINE __m128 _mm_cvtpu8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_u32( ++ vmovl_u16(vget_low_u16(vmovl_u8(vreinterpret_u8_m64(a)))))); ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_ss ++#define _mm_cvtsi32_ss(a, b) _mm_cvt_si2ss(a, b) ++ ++// Convert the signed 64-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_ss ++FORCE_INLINE __m128 _mm_cvtsi64_ss(__m128 a, int64_t b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Copy the lower single-precision (32-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_f32 ++FORCE_INLINE float _mm_cvtss_f32(__m128 a) ++{ ++ return vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si32 ++#define _mm_cvtss_si32(a) _mm_cvt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si64 ++FORCE_INLINE int64_t _mm_cvtss_si64(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return (int64_t) vgetq_lane_f32(vrndiq_f32(vreinterpretq_f32_m128(a)), 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int64_t) data; ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ps2pi ++FORCE_INLINE __m64 _mm_cvtt_ps2pi(__m128 a) ++{ ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ss2si ++FORCE_INLINE int _mm_cvtt_ss2si(__m128 a) ++{ ++ return vgetq_lane_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)), 0); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_pi32 ++#define _mm_cvttps_pi32(a) _mm_cvtt_ps2pi(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si32 ++#define _mm_cvttss_si32(a) _mm_cvtt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si64 ++FORCE_INLINE int64_t _mm_cvttss_si64(__m128 a) ++{ ++ return (int64_t) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Divide packed single-precision (32-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise division intrinsic, we implement ++// division by multiplying a by b's reciprocal before using the Newton-Raphson ++// method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ps ++FORCE_INLINE __m128 _mm_div_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vdivq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(b)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(a), recip)); ++#endif ++} ++ ++// Divide the lower single-precision (32-bit) floating-point element in a by the ++// lower single-precision (32-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper 3 packed elements from a to ++// the upper elements of dst. ++// Warning: ARMv7-A does not produce the same result compared to Intel and not ++// IEEE-compliant. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ss ++FORCE_INLINE __m128 _mm_div_ss(__m128 a, __m128 b) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_div_ps(a, b)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_pi16 ++#define _mm_extract_pi16(a, imm) \ ++ (int32_t) vget_lane_u16(vreinterpret_u16_m64(a), (imm)) ++ ++// Free aligned memory that was allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_free ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void _mm_free(void *addr) ++{ ++ free(addr); ++} ++#endif ++ ++FORCE_INLINE uint64_t _sse2neon_get_fpcr(void) ++{ ++ uint64_t value; ++#if defined(_MSC_VER) ++ value = _ReadStatusReg(ARM64_FPCR); ++#else ++ __asm__ __volatile__("mrs %0, FPCR" : "=r"(value)); /* read */ ++#endif ++ return value; ++} ++ ++FORCE_INLINE void _sse2neon_set_fpcr(uint64_t value) ++{ ++#if defined(_MSC_VER) ++ _WriteStatusReg(ARM64_FPCR, value); ++#else ++ __asm__ __volatile__("msr FPCR, %0" ::"r"(value)); /* write */ ++#endif ++} ++ ++// Macro: Get the flush zero bits from the MXCSR control and status register. ++// The flush zero may contain any of the following flags: _MM_FLUSH_ZERO_ON or ++// _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_FLUSH_ZERO_MODE ++FORCE_INLINE unsigned int _sse2neon_mm_get_flush_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_FLUSH_ZERO_ON : _MM_FLUSH_ZERO_OFF; ++} ++ ++// Macro: Get the rounding mode bits from the MXCSR control and status register. ++// The rounding mode may contain any of the following flags: _MM_ROUND_NEAREST, ++// _MM_ROUND_DOWN, _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_ROUNDING_MODE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ if (r.field.bit22) { ++ return r.field.bit23 ? _MM_ROUND_TOWARD_ZERO : _MM_ROUND_UP; ++ } else { ++ return r.field.bit23 ? _MM_ROUND_DOWN : _MM_ROUND_NEAREST; ++ } ++} ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_pi16 ++#define _mm_insert_pi16(a, b, imm) \ ++ vreinterpret_m64_s16(vset_lane_s16((b), vreinterpret_s16_m64(a), (imm))) ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps ++FORCE_INLINE __m128 _mm_load_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// ++// dst[31:0] := MEM[mem_addr+31:mem_addr] ++// dst[63:32] := MEM[mem_addr+31:mem_addr] ++// dst[95:64] := MEM[mem_addr+31:mem_addr] ++// dst[127:96] := MEM[mem_addr+31:mem_addr] ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps1 ++#define _mm_load_ps1 _mm_load1_ps ++ ++// Load a single-precision (32-bit) floating-point element from memory into the ++// lower of dst, and zero the upper 3 elements. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ss ++FORCE_INLINE __m128 _mm_load_ss(const float *p) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(*p, vdupq_n_f32(0), 0)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_ps ++FORCE_INLINE __m128 _mm_load1_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_dup_f32(p)); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// upper 2 elements of dst, and copy the lower 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pi ++FORCE_INLINE __m128 _mm_loadh_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vget_low_f32(a), vld1_f32((const float32_t *) p))); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// lower 2 elements of dst, and copy the upper 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pi ++FORCE_INLINE __m128 _mm_loadl_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vld1_f32((const float32_t *) p), vget_high_f32(a))); ++} ++ ++// Load 4 single-precision (32-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_ps ++FORCE_INLINE __m128 _mm_loadr_ps(const float *p) ++{ ++ float32x4_t v = vrev64q_f32(vld1q_f32(p)); ++ return vreinterpretq_m128_f32(vextq_f32(v, v, 2)); ++} ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_ps ++FORCE_INLINE __m128 _mm_loadu_ps(const float *p) ++{ ++ // for neon, alignment doesn't matter, so _mm_load_ps and _mm_loadu_ps are ++ // equivalent for neon ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load unaligned 16-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si16 ++FORCE_INLINE __m128i _mm_loadu_si16(const void *p) ++{ ++ return vreinterpretq_m128i_s16( ++ vsetq_lane_s16(*(const unaligned_int16_t *) p, vdupq_n_s16(0), 0)); ++} ++ ++// Load unaligned 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si64 ++FORCE_INLINE __m128i _mm_loadu_si64(const void *p) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(*(const unaligned_int64_t *) p, vdupq_n_s64(0), 0)); ++} ++ ++// Allocate size bytes of memory, aligned to the alignment specified in align, ++// and return a pointer to the allocated memory. _mm_free should be used to free ++// memory that is allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_malloc ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void *_mm_malloc(size_t size, size_t align) ++{ ++ void *ptr; ++ if (align == 1) ++ return malloc(size); ++ if (align == 2 || (sizeof(void *) == 8 && align == 4)) ++ align = sizeof(void *); ++ if (!posix_memalign(&ptr, align, size)) ++ return ptr; ++ return NULL; ++} ++#endif ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmove_si64 ++FORCE_INLINE void _mm_maskmove_si64(__m64 a, __m64 mask, char *mem_addr) ++{ ++ int8x8_t shr_mask = vshr_n_s8(vreinterpret_s8_m64(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x8_t masked = ++ vbsl_s8(vreinterpret_u8_s8(shr_mask), vreinterpret_s8_m64(a), ++ vreinterpret_s8_u64(vget_low_u64(vreinterpretq_u64_m128(b)))); ++ vst1_s8((int8_t *) mem_addr, masked); ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_maskmovq ++#define _m_maskmovq(a, mask, mem_addr) _mm_maskmove_si64(a, mask, mem_addr) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pi16 ++FORCE_INLINE __m64 _mm_max_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmax_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) maximum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ps ++FORCE_INLINE __m128 _mm_max_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcgtq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vmaxq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pu8 ++FORCE_INLINE __m64 _mm_max_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmax_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) maximum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ss ++FORCE_INLINE __m128 _mm_max_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_max_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pi16 ++FORCE_INLINE __m64 _mm_min_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmin_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) minimum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ps ++FORCE_INLINE __m128 _mm_min_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcltq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vminq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pu8 ++FORCE_INLINE __m64 _mm_min_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmin_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) minimum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ss ++FORCE_INLINE __m128 _mm_min_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_min_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the lower single-precision (32-bit) floating-point element from b to the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_ss ++FORCE_INLINE __m128 _mm_move_ss(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(vgetq_lane_f32(vreinterpretq_f32_m128(b), 0), ++ vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the upper 2 single-precision (32-bit) floating-point elements from b to ++// the lower 2 elements of dst, and copy the upper 2 elements from a to the ++// upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehl_ps ++FORCE_INLINE __m128 _mm_movehl_ps(__m128 a, __m128 b) ++{ ++#if defined(aarch64__) ++ return vreinterpretq_m128_u64( ++ vzip2q_u64(vreinterpretq_u64_m128(b), vreinterpretq_u64_m128(a))); ++#else ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(b32, a32)); ++#endif ++} ++ ++// Move the lower 2 single-precision (32-bit) floating-point elements from b to ++// the upper 2 elements of dst, and copy the lower 2 elements from a to the ++// lower 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movelh_ps ++FORCE_INLINE __m128 _mm_movelh_ps(__m128 __A, __m128 __B) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(__A)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(__B)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pi8 ++FORCE_INLINE int _mm_movemask_pi8(__m64 a) ++{ ++ uint8x8_t input = vreinterpret_u8_m64(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int8_t shift[8] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint8x8_t tmp = vshr_n_u8(input, 7); ++ return vaddv_u8(vshl_u8(tmp, vld1_s8(shift))); ++#else ++ // Refer the implementation of `_mm_movemask_epi8` ++ uint16x4_t high_bits = vreinterpret_u16_u8(vshr_n_u8(input, 7)); ++ uint32x2_t paired16 = ++ vreinterpret_u32_u16(vsra_n_u16(high_bits, high_bits, 7)); ++ uint8x8_t paired32 = ++ vreinterpret_u8_u32(vsra_n_u32(paired16, paired16, 14)); ++ return vget_lane_u8(paired32, 0) | ((int) vget_lane_u8(paired32, 4) << 4); ++#endif ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed single-precision (32-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_ps ++FORCE_INLINE int _mm_movemask_ps(__m128 a) ++{ ++ uint32x4_t input = vreinterpretq_u32_m128(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int32_t shift[4] = {0, 1, 2, 3}; ++ uint32x4_t tmp = vshrq_n_u32(input, 31); ++ return vaddvq_u32(vshlq_u32(tmp, vld1q_s32(shift))); ++#else ++ // Uses the exact same method as _mm_movemask_epi8, see that for details. ++ // Shift out everything but the sign bits with a 32-bit unsigned shift ++ // right. ++ uint64x2_t high_bits = vreinterpretq_u64_u32(vshrq_n_u32(input, 31)); ++ // Merge the two pairs together with a 64-bit unsigned shift right + add. ++ uint8x16_t paired = ++ vreinterpretq_u8_u64(vsraq_n_u64(high_bits, high_bits, 31)); ++ // Extract the result. ++ return vgetq_lane_u8(paired, 0) | (vgetq_lane_u8(paired, 8) << 2); ++#endif ++} ++ ++// Multiply packed single-precision (32-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ps ++FORCE_INLINE __m128 _mm_mul_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vmulq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Multiply the lower single-precision (32-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ss ++FORCE_INLINE __m128 _mm_mul_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_mul_ps(a, b)); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_pu16 ++FORCE_INLINE __m64 _mm_mulhi_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16(vshrn_n_u32( ++ vmull_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b)), 16)); ++} ++ ++// Compute the bitwise OR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_ps ++FORCE_INLINE __m128 _mm_or_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vorrq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgb ++#define _m_pavgb(a, b) _mm_avg_pu8(a, b) ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgw ++#define _m_pavgw(a, b) _mm_avg_pu16(a, b) ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pextrw ++#define _m_pextrw(a, imm) _mm_extract_pi16(a, imm) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_pinsrw ++#define _m_pinsrw(a, i, imm) _mm_insert_pi16(a, i, imm) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxsw ++#define _m_pmaxsw(a, b) _mm_max_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxub ++#define _m_pmaxub(a, b) _mm_max_pu8(a, b) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminsw ++#define _m_pminsw(a, b) _mm_min_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminub ++#define _m_pminub(a, b) _mm_min_pu8(a, b) ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmovmskb ++#define _m_pmovmskb(a) _mm_movemask_pi8(a) ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmulhuw ++#define _m_pmulhuw(a, b) _mm_mulhi_pu16(a, b) ++ ++// Fetch the line of data from memory that contains address p to a location in ++// the cache hierarchy specified by the locality hint i. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_prefetch ++FORCE_INLINE void _mm_prefetch(char const *p, int i) ++{ ++ (void) i; ++#if defined(_MSC_VER) ++ switch (i) { ++ case _MM_HINT_NTA: ++ __prefetch2(p, 1); ++ break; ++ case _MM_HINT_T0: ++ __prefetch2(p, 0); ++ break; ++ case _MM_HINT_T1: ++ __prefetch2(p, 2); ++ break; ++ case _MM_HINT_T2: ++ __prefetch2(p, 4); ++ break; ++ } ++#else ++ switch (i) { ++ case _MM_HINT_NTA: ++ __builtin_prefetch(p, 0, 0); ++ break; ++ case _MM_HINT_T0: ++ __builtin_prefetch(p, 0, 3); ++ break; ++ case _MM_HINT_T1: ++ __builtin_prefetch(p, 0, 2); ++ break; ++ case _MM_HINT_T2: ++ __builtin_prefetch(p, 0, 1); ++ break; ++ } ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_psadbw ++#define _m_psadbw(a, b) _mm_sad_pu8(a, b) ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pshufw ++#define _m_pshufw(a, imm) _mm_shuffle_pi16(a, imm) ++ ++// Compute the approximate reciprocal of packed single-precision (32-bit) ++// floating-point elements in a, and store the results in dst. The maximum ++// relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ps ++FORCE_INLINE __m128 _mm_rcp_ps(__m128 in) ++{ ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(in)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#if SSE2NEON_PRECISE_DIV ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#endif ++ return vreinterpretq_m128_f32(recip); ++} ++ ++// Compute the approximate reciprocal of the lower single-precision (32-bit) ++// floating-point element in a, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ss ++FORCE_INLINE __m128 _mm_rcp_ss(__m128 a) ++{ ++ return _mm_move_ss(a, _mm_rcp_ps(a)); ++} ++ ++// Compute the approximate reciprocal square root of packed single-precision ++// (32-bit) floating-point elements in a, and store the results in dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ps ++FORCE_INLINE __m128 _mm_rsqrt_ps(__m128 in) ++{ ++ float32x4_t out = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Generate masks for detecting whether input has any 0.0f/-0.0f ++ // (which becomes positive/negative infinity by IEEE-754 arithmetic rules). ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t neg_inf = vdupq_n_u32(0xFF800000); ++ const uint32x4_t has_pos_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(out)); ++ const uint32x4_t has_neg_zero = ++ vceqq_u32(neg_inf, vreinterpretq_u32_f32(out)); ++ ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#if SSE2NEON_PRECISE_SQRT ++ // Additional Netwon-Raphson iteration for accuracy ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#endif ++ ++ // Set output vector element to infinity/negative-infinity if ++ // the corresponding input vector element is 0.0f/-0.0f. ++ out = vbslq_f32(has_pos_zero, (float32x4_t) pos_inf, out); ++ out = vbslq_f32(has_neg_zero, (float32x4_t) neg_inf, out); ++ ++ return vreinterpretq_m128_f32(out); ++} ++ ++// Compute the approximate reciprocal square root of the lower single-precision ++// (32-bit) floating-point element in a, store the result in the lower element ++// of dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ss ++FORCE_INLINE __m128 _mm_rsqrt_ss(__m128 in) ++{ ++ return vsetq_lane_f32(vgetq_lane_f32(_mm_rsqrt_ps(in), 0), in, 0); ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_pu8 ++FORCE_INLINE __m64 _mm_sad_pu8(__m64 a, __m64 b) ++{ ++ uint64x1_t t = vpaddl_u32(vpaddl_u16( ++ vpaddl_u8(vabd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))))); ++ return vreinterpret_m64_u16( ++ vset_lane_u16((int) vget_lane_u64(t, 0), vdup_n_u16(0), 0)); ++} ++ ++// Macro: Set the flush zero bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The flush zero may contain any of the ++// following flags: _MM_FLUSH_ZERO_ON or _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_FLUSH_ZERO_MODE ++FORCE_INLINE void _sse2neon_mm_set_flush_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_FLUSH_ZERO_MASK) == _MM_FLUSH_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps ++FORCE_INLINE __m128 _mm_set_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {x, y, z, w}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps1 ++FORCE_INLINE __m128 _mm_set_ps1(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Macro: Set the rounding mode bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The rounding mode may contain any of ++// the following flags: _MM_ROUND_NEAREST, _MM_ROUND_DOWN, _MM_ROUND_UP, ++// _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_ROUNDING_MODE ++FORCE_INLINE void _MM_SET_ROUNDING_MODE(int rounding) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ switch (rounding) { ++ case _MM_ROUND_TOWARD_ZERO: ++ r.field.bit22 = 1; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_DOWN: ++ r.field.bit22 = 0; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_UP: ++ r.field.bit22 = 1; ++ r.field.bit23 = 0; ++ break; ++ default: //_MM_ROUND_NEAREST ++ r.field.bit22 = 0; ++ r.field.bit23 = 0; ++ } ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Copy single-precision (32-bit) floating-point element a to the lower element ++// of dst, and zero the upper 3 elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ss ++FORCE_INLINE __m128 _mm_set_ss(float a) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(a, vdupq_n_f32(0), 0)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_ps ++FORCE_INLINE __m128 _mm_set1_ps(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Set the MXCSR control and status register with the value in unsigned 32-bit ++// integer a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setcsr ++// FIXME: _mm_setcsr() implementation supports changing the rounding mode only. ++FORCE_INLINE void _mm_setcsr(unsigned int a) ++{ ++ _MM_SET_ROUNDING_MODE(a); ++} ++ ++// Get the unsigned 32-bit value of the MXCSR control and status register. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_getcsr ++// FIXME: _mm_getcsr() implementation supports reading the rounding mode only. ++FORCE_INLINE unsigned int _mm_getcsr(void) ++{ ++ return _MM_GET_ROUNDING_MODE(); ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_ps ++FORCE_INLINE __m128 _mm_setr_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {w, z, y, x}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Return vector of type __m128 with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_ps ++FORCE_INLINE __m128 _mm_setzero_ps(void) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(0)); ++} ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi16 ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pi16(a, imm) \ ++ vreinterpret_m64_s16(vshuffle_s16( \ ++ vreinterpret_s16_m64(a), vreinterpret_s16_m64(a), (imm & 0x3), \ ++ ((imm >> 2) & 0x3), ((imm >> 4) & 0x3), ((imm >> 6) & 0x3))) ++#else ++#define _mm_shuffle_pi16(a, imm) \ ++ _sse2neon_define1( \ ++ __m64, a, int16x4_t ret; \ ++ ret = vmov_n_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), (imm) & (0x3))); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpret_m64_s16(ret));) ++#endif ++ ++// Perform a serializing operation on all store-to-memory instructions that were ++// issued prior to this instruction. Guarantees that every store instruction ++// that precedes, in program order, is globally visible before any store ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sfence ++FORCE_INLINE void _mm_sfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory and store-to-memory ++// instructions that were issued prior to this instruction. Guarantees that ++// every memory access that precedes, in program order, the memory fence ++// instruction is globally visible before any memory instruction which follows ++// the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mfence ++FORCE_INLINE void _mm_mfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory instructions that ++// were issued prior to this instruction. Guarantees that every load instruction ++// that precedes, in program order, is globally visible before any load ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lfence ++FORCE_INLINE void _mm_lfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// FORCE_INLINE __m128 _mm_shuffle_ps(__m128 a, __m128 b, __constrange(0,255) ++// int imm) ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_ps(a, b, imm) \ ++ __extension__({ \ ++ float32x4_t _input1 = vreinterpretq_f32_m128(a); \ ++ float32x4_t _input2 = vreinterpretq_f32_m128(b); \ ++ float32x4_t _shuf = \ ++ vshuffleq_s32(_input1, _input2, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ (((imm) >> 4) & 0x3) + 4, (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128_f32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_ps(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128, a, b, __m128 ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_1032(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_ps_2301(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_ps_0321(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_ps_2103(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_movelh_ps(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_1001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_ps_0101(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 1, 0): \ ++ ret = _mm_shuffle_ps_3210(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 1, 1): \ ++ ret = _mm_shuffle_ps_0011(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 2, 2): \ ++ ret = _mm_shuffle_ps_0022(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 0, 0): \ ++ ret = _mm_shuffle_ps_2200(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 0, 2): \ ++ ret = _mm_shuffle_ps_3202(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 3, 2): \ ++ ret = _mm_movehl_ps(_b, _a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 3, 3): \ ++ ret = _mm_shuffle_ps_1133(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 1, 0): \ ++ ret = _mm_shuffle_ps_2010(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_2001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_2032(_a, _b); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_ps_default(_a, _b, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Compute the square root of packed single-precision (32-bit) floating-point ++// elements in a, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise square root intrinsic, we implement ++// square root by multiplying input in with its reciprocal square root before ++// using the Newton-Raphson method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ps ++FORCE_INLINE __m128 _mm_sqrt_ps(__m128 in) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) && !SSE2NEON_PRECISE_SQRT ++ return vreinterpretq_m128_f32(vsqrtq_f32(vreinterpretq_f32_m128(in))); ++#else ++ float32x4_t recip = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Test for vrsqrteq_f32(0) -> positive infinity case. ++ // Change to zero, so that s * 1/sqrt(s) result is zero too. ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t div_by_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(recip)); ++ recip = vreinterpretq_f32_u32( ++ vandq_u32(vmvnq_u32(div_by_zero), vreinterpretq_u32_f32(recip))); ++ ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ ++ // sqrt(s) = s * 1/sqrt(s) ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(in), recip)); ++#endif ++} ++ ++// Compute the square root of the lower single-precision (32-bit) floating-point ++// element in a, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ss ++FORCE_INLINE __m128 _mm_sqrt_ss(__m128 in) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_sqrt_ps(in)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(in), 0)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps ++FORCE_INLINE void _mm_store_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps1 ++FORCE_INLINE void _mm_store_ps1(float *p, __m128 a) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ vst1q_f32(p, vdupq_n_f32(a0)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ss ++FORCE_INLINE void _mm_store_ss(float *p, __m128 a) ++{ ++ vst1q_lane_f32(p, vreinterpretq_f32_m128(a), 0); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store1_ps ++#define _mm_store1_ps _mm_store_ps1 ++ ++// Store the upper 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pi ++FORCE_INLINE void _mm_storeh_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_high_f32(a)); ++} ++ ++// Store the lower 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pi ++FORCE_INLINE void _mm_storel_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_low_f32(a)); ++} ++ ++// Store 4 single-precision (32-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_ps ++FORCE_INLINE void _mm_storer_ps(float *p, __m128 a) ++{ ++ float32x4_t tmp = vrev64q_f32(vreinterpretq_f32_m128(a)); ++ float32x4_t rev = vextq_f32(tmp, tmp, 2); ++ vst1q_f32(p, rev); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_ps ++FORCE_INLINE void _mm_storeu_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Stores 16-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si16 ++FORCE_INLINE void _mm_storeu_si16(void *p, __m128i a) ++{ ++ vst1q_lane_s16((int16_t *) p, vreinterpretq_s16_m128i(a), 0); ++} ++ ++// Stores 64-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si64 ++FORCE_INLINE void _mm_storeu_si64(void *p, __m128i a) ++{ ++ vst1q_lane_s64((int64_t *) p, vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Store 64-bits of integer data from a into memory using a non-temporal memory ++// hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pi ++FORCE_INLINE void _mm_stream_pi(__m64 *p, __m64 a) ++{ ++ vst1_s64((int64_t *) p, vreinterpret_s64_m64(a)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating- ++// point elements) from a into memory using a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_ps ++FORCE_INLINE void _mm_stream_ps(float *p, __m128 a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (float32x4_t *) p); ++#else ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++#endif ++} ++ ++// Subtract packed single-precision (32-bit) floating-point elements in b from ++// packed single-precision (32-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ps ++FORCE_INLINE __m128 _mm_sub_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Subtract the lower single-precision (32-bit) floating-point element in b from ++// the lower single-precision (32-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper 3 packed elements from ++// a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ss ++FORCE_INLINE __m128 _mm_sub_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_sub_ps(a, b)); ++} ++ ++// Macro: Transpose the 4x4 matrix formed by the 4 rows of single-precision ++// (32-bit) floating-point elements in row0, row1, row2, and row3, and store the ++// transposed matrix in these vectors (row0 now contains column 0, etc.). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=MM_TRANSPOSE4_PS ++#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \ ++ do { \ ++ float32x4x2_t ROW01 = vtrnq_f32(row0, row1); \ ++ float32x4x2_t ROW23 = vtrnq_f32(row2, row3); \ ++ row0 = vcombine_f32(vget_low_f32(ROW01.val[0]), \ ++ vget_low_f32(ROW23.val[0])); \ ++ row1 = vcombine_f32(vget_low_f32(ROW01.val[1]), \ ++ vget_low_f32(ROW23.val[1])); \ ++ row2 = vcombine_f32(vget_high_f32(ROW01.val[0]), \ ++ vget_high_f32(ROW23.val[0])); \ ++ row3 = vcombine_f32(vget_high_f32(ROW01.val[1]), \ ++ vget_high_f32(ROW23.val[1])); \ ++ } while (0) ++ ++// according to the documentation, these intrinsics behave the same as the ++// non-'u' versions. We'll just alias them here. ++#define _mm_ucomieq_ss _mm_comieq_ss ++#define _mm_ucomige_ss _mm_comige_ss ++#define _mm_ucomigt_ss _mm_comigt_ss ++#define _mm_ucomile_ss _mm_comile_ss ++#define _mm_ucomilt_ss _mm_comilt_ss ++#define _mm_ucomineq_ss _mm_comineq_ss ++ ++// Return vector of type __m128i with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_undefined_si128 ++FORCE_INLINE __m128i _mm_undefined_si128(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128i a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_si128(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Return vector of type __m128 with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_ps ++FORCE_INLINE __m128 _mm_undefined_ps(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128 a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_ps(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the high half a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_ps ++FORCE_INLINE __m128 _mm_unpackhi_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_ps ++FORCE_INLINE __m128 _mm_unpacklo_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Compute the bitwise XOR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_ps ++FORCE_INLINE __m128 _mm_xor_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ veorq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++/* SSE2 */ ++ ++// Add packed 16-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi16 ++FORCE_INLINE __m128i _mm_add_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed 32-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi32 ++FORCE_INLINE __m128i _mm_add_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vaddq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Add packed 64-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi64 ++FORCE_INLINE __m128i _mm_add_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vaddq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Add packed 8-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi8 ++FORCE_INLINE __m128i _mm_add_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed double-precision (64-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_pd ++FORCE_INLINE __m128d _mm_add_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1] + db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add the lower double-precision (64-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper element from ++// a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_sd ++FORCE_INLINE __m128d _mm_add_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_add_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add 64-bit integers a and b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_si64 ++FORCE_INLINE __m64 _mm_add_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vadd_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Add packed signed 16-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi16 ++FORCE_INLINE __m128i _mm_adds_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed signed 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi8 ++FORCE_INLINE __m128i _mm_adds_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed unsigned 16-bit integers in a and b using saturation, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu16 ++FORCE_INLINE __m128i _mm_adds_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqaddq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Add packed unsigned 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu8 ++FORCE_INLINE __m128i _mm_adds_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compute the bitwise AND of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_pd ++FORCE_INLINE __m128d _mm_and_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vandq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_si128 ++FORCE_INLINE __m128i _mm_and_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vandq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compute the bitwise NOT of packed double-precision (64-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_pd ++FORCE_INLINE __m128d _mm_andnot_pd(__m128d a, __m128d b) ++{ ++ // *NOTE* argument swap ++ return vreinterpretq_m128d_s64( ++ vbicq_s64(vreinterpretq_s64_m128d(b), vreinterpretq_s64_m128d(a))); ++} ++ ++// Compute the bitwise NOT of 128 bits (representing integer data) in a and then ++// AND with b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_si128 ++FORCE_INLINE __m128i _mm_andnot_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vbicq_s32(vreinterpretq_s32_m128i(b), ++ vreinterpretq_s32_m128i(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu16 ++FORCE_INLINE __m128i _mm_avg_epu16(__m128i a, __m128i b) ++{ ++ return (__m128i) vrhaddq_u16(vreinterpretq_u16_m128i(a), ++ vreinterpretq_u16_m128i(b)); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu8 ++FORCE_INLINE __m128i _mm_avg_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vrhaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bslli_si128 ++#define _mm_bslli_si128(a, imm) _mm_slli_si128(a, imm) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bsrli_si128 ++#define _mm_bsrli_si128(a, imm) _mm_srli_si128(a, imm) ++ ++// Cast vector of type __m128d to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_ps ++FORCE_INLINE __m128 _mm_castpd_ps(__m128d a) ++{ ++ return vreinterpretq_m128_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128d to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_si128 ++FORCE_INLINE __m128i _mm_castpd_si128(__m128d a) ++{ ++ return vreinterpretq_m128i_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128 to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_pd ++FORCE_INLINE __m128d _mm_castps_pd(__m128 a) ++{ ++ return vreinterpretq_m128d_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128 to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_si128 ++FORCE_INLINE __m128i _mm_castps_si128(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128i to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_pd ++FORCE_INLINE __m128d _mm_castsi128_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vreinterpretq_f64_m128i(a)); ++#else ++ return vreinterpretq_m128d_f32(vreinterpretq_f32_m128i(a)); ++#endif ++} ++ ++// Cast vector of type __m128i to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_ps ++FORCE_INLINE __m128 _mm_castsi128_ps(__m128i a) ++{ ++ return vreinterpretq_m128_s32(vreinterpretq_s32_m128i(a)); ++} ++ ++// Invalidate and flush the cache line that contains p from all levels of the ++// cache hierarchy. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clflush ++#if defined(__APPLE__) ++#include ++#endif ++FORCE_INLINE void _mm_clflush(void const *p) ++{ ++ (void) p; ++ ++ /* sys_icache_invalidate is supported since macOS 10.5. ++ * However, it does not work on non-jailbroken iOS devices, although the ++ * compilation is successful. ++ */ ++#if defined(__APPLE__) ++ sys_icache_invalidate((void *) (uintptr_t) p, SSE2NEON_CACHELINE_SIZE); ++#elif defined(__GNUC__) || defined(__clang__) ++ uintptr_t ptr = (uintptr_t) p; ++ __builtin___clear_cache((char *) ptr, ++ (char *) ptr + SSE2NEON_CACHELINE_SIZE); ++#elif (_MSC_VER) && SSE2NEON_INCLUDE_WINDOWS_H ++ FlushInstructionCache(GetCurrentProcess(), p, SSE2NEON_CACHELINE_SIZE); ++#endif ++} ++ ++// Compare packed 16-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi16 ++FORCE_INLINE __m128i _mm_cmpeq_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vceqq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed 32-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi32 ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vceqq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed 8-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi8 ++FORCE_INLINE __m128i _mm_cmpeq_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vceqq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_pd ++FORCE_INLINE __m128d _mm_cmpeq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_sd ++FORCE_INLINE __m128d _mm_cmpeq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpeq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_pd ++FORCE_INLINE __m128d _mm_cmpge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) >= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_sd ++FORCE_INLINE __m128d _mm_cmpge_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpge_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi16 ++FORCE_INLINE __m128i _mm_cmpgt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcgtq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi32 ++FORCE_INLINE __m128i _mm_cmpgt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcgtq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi8 ++FORCE_INLINE __m128i _mm_cmpgt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcgtq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_pd ++FORCE_INLINE __m128d _mm_cmpgt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_sd ++FORCE_INLINE __m128d _mm_cmpgt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpgt_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_pd ++FORCE_INLINE __m128d _mm_cmple_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) <= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_sd ++FORCE_INLINE __m128d _mm_cmple_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmple_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtw instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi16 ++FORCE_INLINE __m128i _mm_cmplt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcltq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtd instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi32 ++FORCE_INLINE __m128i _mm_cmplt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcltq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtb instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi8 ++FORCE_INLINE __m128i _mm_cmplt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcltq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_pd ++FORCE_INLINE __m128d _mm_cmplt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_sd ++FORCE_INLINE __m128d _mm_cmplt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmplt_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_pd ++FORCE_INLINE __m128d _mm_cmpneq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_s32(vmvnq_s32(vreinterpretq_s32_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vmvnq_u32(vandq_u32(cmp, swapped))); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_sd ++FORCE_INLINE __m128d _mm_cmpneq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpneq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_pd ++FORCE_INLINE __m128d _mm_cmpnge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) >= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) >= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_sd ++FORCE_INLINE __m128d _mm_cmpnge_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnge_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_cmpngt_pd ++FORCE_INLINE __m128d _mm_cmpngt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) > (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) > (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_sd ++FORCE_INLINE __m128d _mm_cmpngt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpngt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_pd ++FORCE_INLINE __m128d _mm_cmpnle_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) <= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) <= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_sd ++FORCE_INLINE __m128d _mm_cmpnle_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnle_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_pd ++FORCE_INLINE __m128d _mm_cmpnlt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) < (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) < (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_sd ++FORCE_INLINE __m128d _mm_cmpnlt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnlt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_pd ++FORCE_INLINE __m128d _mm_cmpord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Excluding NaNs, any two floating point numbers can be compared. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_u64(vandq_u64(not_nan_a, not_nan_b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_sd ++FORCE_INLINE __m128d _mm_cmpord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_pd ++FORCE_INLINE __m128d _mm_cmpunord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Two NaNs are not equal in comparison operation. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_s32( ++ vmvnq_s32(vreinterpretq_s32_u64(vandq_u64(not_nan_a, not_nan_b)))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_sd ++FORCE_INLINE __m128d _mm_cmpunord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpunord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_sd ++FORCE_INLINE int _mm_comige_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgeq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 >= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_sd ++FORCE_INLINE int _mm_comigt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgtq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 > *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_sd ++FORCE_INLINE int _mm_comile_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcleq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 <= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_sd ++FORCE_INLINE int _mm_comilt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcltq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 < *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_sd ++FORCE_INLINE int _mm_comieq_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vceqq_f64(a, b), 0) & 0x1; ++#else ++ uint32x4_t a_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(a)); ++ uint32x4_t b_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(b), vreinterpretq_u32_m128d(b)); ++ uint32x4_t a_and_b_not_nan = vandq_u32(a_not_nan, b_not_nan); ++ uint32x4_t a_eq_b = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint64x2_t and_results = vandq_u64(vreinterpretq_u64_u32(a_and_b_not_nan), ++ vreinterpretq_u64_u32(a_eq_b)); ++ return vgetq_lane_u64(and_results, 0) & 0x1; ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_sd ++FORCE_INLINE int _mm_comineq_sd(__m128d a, __m128d b) ++{ ++ return !_mm_comieq_sd(a, b); ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_pd ++FORCE_INLINE __m128d _mm_cvtepi32_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a))))); ++#else ++ double a0 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++ double a1 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_ps ++FORCE_INLINE __m128 _mm_cvtepi32_ps(__m128i a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_epi32 ++FORCE_INLINE __m128i _mm_cvtpd_epi32(__m128d a) ++{ ++// vrnd32xq_f64 not supported on clang ++#if defined(__ARM_FEATURE_FRINT) && !defined(__clang__) ++ float64x2_t rounded = vrnd32xq_f64(vreinterpretq_f64_m128d(a)); ++ int64x2_t integers = vcvtq_s64_f64(rounded); ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vmovn_s64(integers), vdup_n_s32(0))); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) d1, (int32_t) d0); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_pi32 ++FORCE_INLINE __m64 _mm_cvtpd_pi32(__m128d a) ++{ ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) d0, (int32_t) d1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed single-precision (32-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_ps ++FORCE_INLINE __m128 _mm_cvtpd_ps(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float32x2_t tmp = vcvt_f32_f64(vreinterpretq_f64_m128d(a)); ++ return vreinterpretq_m128_f32(vcombine_f32(tmp, vdup_n_f32(0))); ++#else ++ float a0 = (float) ((double *) &a)[0]; ++ float a1 = (float) ((double *) &a)[1]; ++ return _mm_set_ps(0, 0, a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_pd ++FORCE_INLINE __m128d _mm_cvtpi32_pd(__m64 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vreinterpret_s32_m64(a)))); ++#else ++ double a0 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 0); ++ double a1 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_epi32 ++// *NOTE*. The default rounding mode on SSE is 'round to even', which ARMv7-A ++// does not support! It is supported on ARMv8-A however. ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128 a) ++{ ++#if defined(__ARM_FEATURE_FRINT) ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vrnd32xq_f32(a))); ++#elif (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: ++ return vreinterpretq_m128i_s32(vcvtnq_s32_f32(a)); ++ case _MM_ROUND_DOWN: ++ return vreinterpretq_m128i_s32(vcvtmq_s32_f32(a)); ++ case _MM_ROUND_UP: ++ return vreinterpretq_m128i_s32(vcvtpq_s32_f32(a)); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(a)); ++ } ++#else ++ float *f = (float *) &a; ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128i_s32( ++ vbslq_s32(is_delta_half, r_even, r_normal)); ++ } ++ case _MM_ROUND_DOWN: ++ return _mm_set_epi32(floorf(f[3]), floorf(f[2]), floorf(f[1]), ++ floorf(f[0])); ++ case _MM_ROUND_UP: ++ return _mm_set_epi32(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ++ ceilf(f[0])); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return _mm_set_epi32((int32_t) f[3], (int32_t) f[2], (int32_t) f[1], ++ (int32_t) f[0]); ++ } ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed double-precision (64-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pd ++FORCE_INLINE __m128d _mm_cvtps_pd(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvt_f64_f32(vget_low_f32(vreinterpretq_f32_m128(a)))); ++#else ++ double a0 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ double a1 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Copy the lower double-precision (64-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_f64 ++FORCE_INLINE double _mm_cvtsd_f64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (double) vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0); ++#else ++ return ((double *) &a)[0]; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si32 ++FORCE_INLINE int32_t _mm_cvtsd_si32(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int32_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int32_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64 ++FORCE_INLINE int64_t _mm_cvtsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int64_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64x ++#define _mm_cvtsd_si64x _mm_cvtsd_si64 ++ ++// Convert the lower double-precision (64-bit) floating-point element in b to a ++// single-precision (32-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_ss ++FORCE_INLINE __m128 _mm_cvtsd_ss(__m128 a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32(vsetq_lane_f32( ++ vget_lane_f32(vcvt_f32_f64(vreinterpretq_f64_m128d(b)), 0), ++ vreinterpretq_f32_m128(a), 0)); ++#else ++ return vreinterpretq_m128_f32(vsetq_lane_f32((float) ((double *) &b)[0], ++ vreinterpretq_f32_m128(a), 0)); ++#endif ++} ++ ++// Copy the lower 32-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si32 ++FORCE_INLINE int _mm_cvtsi128_si32(__m128i a) ++{ ++ return vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64 ++FORCE_INLINE int64_t _mm_cvtsi128_si64(__m128i a) ++{ ++ return vgetq_lane_s64(vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Convert the signed 32-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_sd ++FORCE_INLINE __m128d _mm_cvtsi32_sd(__m128d a, int32_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Copy 32-bit integer a to the lower elements of dst, and zero the upper ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_si128 ++FORCE_INLINE __m128i _mm_cvtsi32_si128(int a) ++{ ++ return vreinterpretq_m128i_s32(vsetq_lane_s32(a, vdupq_n_s32(0), 0)); ++} ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_sd ++FORCE_INLINE __m128d _mm_cvtsi64_sd(__m128d a, int64_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_si128 ++FORCE_INLINE __m128i _mm_cvtsi64_si128(int64_t a) ++{ ++ return vreinterpretq_m128i_s64(vsetq_lane_s64(a, vdupq_n_s64(0), 0)); ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_si128 ++#define _mm_cvtsi64x_si128(a) _mm_cvtsi64_si128(a) ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_sd ++#define _mm_cvtsi64x_sd(a, b) _mm_cvtsi64_sd(a, b) ++ ++// Convert the lower single-precision (32-bit) floating-point element in b to a ++// double-precision (64-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_sd ++FORCE_INLINE __m128d _mm_cvtss_sd(__m128d a, __m128 b) ++{ ++ double d = (double) vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(d, vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &d, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_epi32 ++FORCE_INLINE __m128i _mm_cvttpd_epi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) a1, (int32_t) a0); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_pi32 ++FORCE_INLINE __m64 _mm_cvttpd_pi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) a0, (int32_t) a1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_epi32 ++FORCE_INLINE __m128i _mm_cvttps_epi32(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a))); ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si32 ++FORCE_INLINE int32_t _mm_cvttsd_si32(__m128d a) ++{ ++ double ret = *((double *) &a); ++ return (int32_t) ret; ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64 ++FORCE_INLINE int64_t _mm_cvttsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_s64(vcvtq_s64_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ double ret = *((double *) &a); ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64x ++#define _mm_cvttsd_si64x(a) _mm_cvttsd_si64(a) ++ ++// Divide packed double-precision (64-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_pd ++FORCE_INLINE __m128d _mm_div_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] / db[0]; ++ c[1] = da[1] / db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Divide the lower double-precision (64-bit) floating-point element in a by the ++// lower double-precision (64-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper element from a to the upper ++// element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_sd ++FORCE_INLINE __m128d _mm_div_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t tmp = ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1), tmp, 1)); ++#else ++ return _mm_move_sd(a, _mm_div_pd(a, b)); ++#endif ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi16 ++// FORCE_INLINE int _mm_extract_epi16(__m128i a, __constrange(0,8) int imm) ++#define _mm_extract_epi16(a, imm) \ ++ vgetq_lane_u16(vreinterpretq_u16_m128i(a), (imm)) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi16 ++// FORCE_INLINE __m128i _mm_insert_epi16(__m128i a, int b, ++// __constrange(0,8) int imm) ++#define _mm_insert_epi16(a, b, imm) \ ++ vreinterpretq_m128i_s16( \ ++ vsetq_lane_s16((b), vreinterpretq_s16_m128i(a), (imm))) ++ ++// Load 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd ++FORCE_INLINE __m128d _mm_load_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64(p)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], fp[2], fp[3]}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd1 ++#define _mm_load_pd1 _mm_load1_pd ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower of dst, and zero the upper element. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_sd ++FORCE_INLINE __m128d _mm_load_sd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(*p, vdupq_n_f64(0), 0)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], 0, 0}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_si128 ++FORCE_INLINE __m128i _mm_load_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const int32_t *) p)); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_pd ++FORCE_INLINE __m128d _mm_load1_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_dup_f64(p)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(const int64_t *) p)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// upper element of dst, and copy the lower element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pd ++FORCE_INLINE __m128d _mm_loadh_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vget_low_f64(vreinterpretq_f64_m128d(a)), vld1_f64(p))); ++#else ++ return vreinterpretq_m128d_f32(vcombine_f32( ++ vget_low_f32(vreinterpretq_f32_m128d(a)), vld1_f32((const float *) p))); ++#endif ++} ++ ++// Load 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_epi64 ++FORCE_INLINE __m128i _mm_loadl_epi64(__m128i const *p) ++{ ++ /* Load the lower 64 bits of the value pointed to by p into the ++ * lower 64 bits of the result, zeroing the upper 64 bits of the result. ++ */ ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vld1_s32((int32_t const *) p), vcreate_s32(0))); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower element of dst, and copy the upper element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pd ++FORCE_INLINE __m128d _mm_loadl_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vld1_f64(p), vget_high_f64(vreinterpretq_f64_m128d(a)))); ++#else ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vld1_f32((const float *) p), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++#endif ++} ++ ++// Load 2 double-precision (64-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_pd ++FORCE_INLINE __m128d _mm_loadr_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t v = vld1q_f64(p); ++ return vreinterpretq_m128d_f64(vextq_f64(v, v, 1)); ++#else ++ int64x2_t v = vld1q_s64((const int64_t *) p); ++ return vreinterpretq_m128d_s64(vextq_s64(v, v, 1)); ++#endif ++} ++ ++// Loads two double-precision from unaligned memory, floating-point values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_pd ++FORCE_INLINE __m128d _mm_loadu_pd(const double *p) ++{ ++ return _mm_load_pd(p); ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si128 ++FORCE_INLINE __m128i _mm_loadu_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const unaligned_int32_t *) p)); ++} ++ ++// Load unaligned 32-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si32 ++FORCE_INLINE __m128i _mm_loadu_si32(const void *p) ++{ ++ return vreinterpretq_m128i_s32( ++ vsetq_lane_s32(*(const unaligned_int32_t *) p, vdupq_n_s32(0), 0)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Horizontally add adjacent pairs of intermediate ++// 32-bit integers, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_madd_epi16 ++FORCE_INLINE __m128i _mm_madd_epi16(__m128i a, __m128i b) ++{ ++ int32x4_t low = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t high = ++ vmull_high_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)); ++ ++ return vreinterpretq_m128i_s32(vpaddq_s32(low, high)); ++#else ++ int32x4_t high = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ int32x2_t low_sum = vpadd_s32(vget_low_s32(low), vget_high_s32(low)); ++ int32x2_t high_sum = vpadd_s32(vget_low_s32(high), vget_high_s32(high)); ++ ++ return vreinterpretq_m128i_s32(vcombine_s32(low_sum, high_sum)); ++#endif ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. mem_addr does not need to be aligned ++// on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmoveu_si128 ++FORCE_INLINE void _mm_maskmoveu_si128(__m128i a, __m128i mask, char *mem_addr) ++{ ++ int8x16_t shr_mask = vshrq_n_s8(vreinterpretq_s8_m128i(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x16_t masked = ++ vbslq_s8(vreinterpretq_u8_s8(shr_mask), vreinterpretq_s8_m128i(a), ++ vreinterpretq_s8_m128(b)); ++ vst1q_s8((int8_t *) mem_addr, masked); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi16 ++FORCE_INLINE __m128i _mm_max_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmaxq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu8 ++FORCE_INLINE __m128i _mm_max_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vmaxq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pd ++FORCE_INLINE __m128d _mm_max_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcgtq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vmaxq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? a1 : b1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_sd ++FORCE_INLINE __m128d _mm_max_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_max_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] > db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi16 ++FORCE_INLINE __m128i _mm_min_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vminq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu8 ++FORCE_INLINE __m128i _mm_min_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vminq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pd ++FORCE_INLINE __m128d _mm_min_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcltq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vminq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? a1 : b1; ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_sd ++FORCE_INLINE __m128d _mm_min_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_min_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] < db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to the lower element of dst, and zero the ++// upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_epi64 ++FORCE_INLINE __m128i _mm_move_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(0, vreinterpretq_s64_m128i(a), 1)); ++} ++ ++// Move the lower double-precision (64-bit) floating-point element from b to the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_sd ++FORCE_INLINE __m128d _mm_move_sd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vget_low_f32(vreinterpretq_f32_m128d(b)), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_epi8 ++FORCE_INLINE int _mm_movemask_epi8(__m128i a) ++{ ++ // Use increasingly wide shifts+adds to collect the sign bits ++ // together. ++ // Since the widening shifts would be rather confusing to follow in little ++ // endian, everything will be illustrated in big endian order instead. This ++ // has a different result - the bits would actually be reversed on a big ++ // endian machine. ++ ++ // Starting input (only half the elements are shown): ++ // 89 ff 1d c0 00 10 99 33 ++ uint8x16_t input = vreinterpretq_u8_m128i(a); ++ ++ // Shift out everything but the sign bits with an unsigned shift right. ++ // ++ // Bytes of the vector:: ++ // 89 ff 1d c0 00 10 99 33 ++ // \ \ \ \ \ \ \ \ high_bits = (uint16x4_t)(input >> 7) ++ // | | | | | | | | ++ // 01 01 00 01 00 00 01 00 ++ // ++ // Bits of first important lane(s): ++ // 10001001 (89) ++ // \______ ++ // | ++ // 00000001 (01) ++ uint16x8_t high_bits = vreinterpretq_u16_u8(vshrq_n_u8(input, 7)); ++ ++ // Merge the even lanes together with a 16-bit unsigned shift right + add. ++ // 'xx' represents garbage data which will be ignored in the final result. ++ // In the important bytes, the add functions like a binary OR. ++ // ++ // 01 01 00 01 00 00 01 00 ++ // \_ | \_ | \_ | \_ | paired16 = (uint32x4_t)(input + (input >> 7)) ++ // \| \| \| \| ++ // xx 03 xx 01 xx 00 xx 02 ++ // ++ // 00000001 00000001 (01 01) ++ // \_______ | ++ // \| ++ // xxxxxxxx xxxxxx11 (xx 03) ++ uint32x4_t paired16 = ++ vreinterpretq_u32_u16(vsraq_n_u16(high_bits, high_bits, 7)); ++ ++ // Repeat with a wider 32-bit shift + add. ++ // xx 03 xx 01 xx 00 xx 02 ++ // \____ | \____ | paired32 = (uint64x1_t)(paired16 + (paired16 >> ++ // 14)) ++ // \| \| ++ // xx xx xx 0d xx xx xx 02 ++ // ++ // 00000011 00000001 (03 01) ++ // \\_____ || ++ // '----.\|| ++ // xxxxxxxx xxxx1101 (xx 0d) ++ uint64x2_t paired32 = ++ vreinterpretq_u64_u32(vsraq_n_u32(paired16, paired16, 14)); ++ ++ // Last, an even wider 64-bit shift + add to get our result in the low 8 bit ++ // lanes. xx xx xx 0d xx xx xx 02 ++ // \_________ | paired64 = (uint8x8_t)(paired32 + (paired32 >> ++ // 28)) ++ // \| ++ // xx xx xx xx xx xx xx d2 ++ // ++ // 00001101 00000010 (0d 02) ++ // \ \___ | | ++ // '---. \| | ++ // xxxxxxxx 11010010 (xx d2) ++ uint8x16_t paired64 = ++ vreinterpretq_u8_u64(vsraq_n_u64(paired32, paired32, 28)); ++ ++ // Extract the low 8 bits from each 64-bit lane with 2 8-bit extracts. ++ // xx xx xx xx xx xx xx d2 ++ // || return paired64[0] ++ // d2 ++ // Note: Little endian would return the correct value 4b (01001011) instead. ++ return vgetq_lane_u8(paired64, 0) | ((int) vgetq_lane_u8(paired64, 8) << 8); ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed double-precision (64-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pd ++FORCE_INLINE int _mm_movemask_pd(__m128d a) ++{ ++ uint64x2_t input = vreinterpretq_u64_m128d(a); ++ uint64x2_t high_bits = vshrq_n_u64(input, 63); ++ return (int) (vgetq_lane_u64(high_bits, 0) | ++ (vgetq_lane_u64(high_bits, 1) << 1)); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movepi64_pi64 ++FORCE_INLINE __m64 _mm_movepi64_pi64(__m128i a) ++{ ++ return vreinterpret_m64_s64(vget_low_s64(vreinterpretq_s64_m128i(a))); ++} ++ ++// Copy the 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movpi64_epi64 ++FORCE_INLINE __m128i _mm_movpi64_epi64(__m64 a) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vreinterpret_s64_m64(a), vdup_n_s64(0))); ++} ++ ++// Multiply the low unsigned 32-bit integers from each packed 64-bit element in ++// a and b, and store the unsigned 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epu32 ++FORCE_INLINE __m128i _mm_mul_epu32(__m128i a, __m128i b) ++{ ++ // vmull_u32 upcasts instead of masking, so we downcast. ++ uint32x2_t a_lo = vmovn_u64(vreinterpretq_u64_m128i(a)); ++ uint32x2_t b_lo = vmovn_u64(vreinterpretq_u64_m128i(b)); ++ return vreinterpretq_m128i_u64(vmull_u32(a_lo, b_lo)); ++} ++ ++// Multiply packed double-precision (64-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_pd ++FORCE_INLINE __m128d _mm_mul_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vmulq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] * db[0]; ++ c[1] = da[1] * db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Multiply the lower double-precision (64-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper element ++// from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_mul_sd ++FORCE_INLINE __m128d _mm_mul_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_mul_pd(a, b)); ++} ++ ++// Multiply the low unsigned 32-bit integers from a and b, and store the ++// unsigned 64-bit result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_su32 ++FORCE_INLINE __m64 _mm_mul_su32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u64(vget_low_u64( ++ vmull_u32(vreinterpret_u32_m64(a), vreinterpret_u32_m64(b)))); ++} ++ ++// Multiply the packed signed 16-bit integers in a and b, producing intermediate ++// 32-bit integers, and store the high 16 bits of the intermediate integers in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epi16 ++FORCE_INLINE __m128i _mm_mulhi_epi16(__m128i a, __m128i b) ++{ ++ /* FIXME: issue with large values because of result saturation */ ++ // int16x8_t ret = vqdmulhq_s16(vreinterpretq_s16_m128i(a), ++ // vreinterpretq_s16_m128i(b)); /* =2*a*b */ return ++ // vreinterpretq_m128i_s16(vshrq_n_s16(ret, 1)); ++ int16x4_t a3210 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b3210 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab3210 = vmull_s16(a3210, b3210); /* 3333222211110000 */ ++ int16x4_t a7654 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b7654 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab7654 = vmull_s16(a7654, b7654); /* 7777666655554444 */ ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_s32(ab3210), vreinterpretq_u16_s32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epu16 ++FORCE_INLINE __m128i _mm_mulhi_epu16(__m128i a, __m128i b) ++{ ++ uint16x4_t a3210 = vget_low_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b3210 = vget_low_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab3210 = vmull_u16(a3210, b3210); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32x4_t ab7654 = ++ vmull_high_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ uint16x8_t r = vuzp2q_u16(vreinterpretq_u16_u32(ab3210), ++ vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r); ++#else ++ uint16x4_t a7654 = vget_high_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b7654 = vget_high_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab7654 = vmull_u16(a7654, b7654); ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_u32(ab3210), vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++#endif ++} ++ ++// Multiply the packed 16-bit integers in a and b, producing intermediate 32-bit ++// integers, and store the low 16 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi16 ++FORCE_INLINE __m128i _mm_mullo_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmulq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compute the bitwise OR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_or_pd ++FORCE_INLINE __m128d _mm_or_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vorrq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise OR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_si128 ++FORCE_INLINE __m128i _mm_or_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vorrq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi16 ++FORCE_INLINE __m128i _mm_packs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vqmovn_s16(vreinterpretq_s16_m128i(a)), ++ vqmovn_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi32 ++FORCE_INLINE __m128i _mm_packs_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vqmovn_s32(vreinterpretq_s32_m128i(a)), ++ vqmovn_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi16 ++FORCE_INLINE __m128i _mm_packus_epi16(const __m128i a, const __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcombine_u8(vqmovun_s16(vreinterpretq_s16_m128i(a)), ++ vqmovun_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Pause the processor. This is typically used in spin-wait loops and depending ++// on the x86 processor typical values are in the 40-100 cycle range. The ++// 'yield' instruction isn't a good fit because it's effectively a nop on most ++// Arm cores. Experience with several databases has shown has shown an 'isb' is ++// a reasonable approximation. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_pause ++FORCE_INLINE void _mm_pause(void) ++{ ++#if defined(_MSC_VER) ++ __isb(_ARM64_BARRIER_SY); ++#else ++ __asm__ __volatile__("isb\n"); ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce two ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of 64-bit elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_epu8 ++FORCE_INLINE __m128i _mm_sad_epu8(__m128i a, __m128i b) ++{ ++ uint16x8_t t = vpaddlq_u8(vabdq_u8((uint8x16_t) a, (uint8x16_t) b)); ++ return vreinterpretq_m128i_u64(vpaddlq_u32(vpaddlq_u16(t))); ++} ++ ++// Set packed 16-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi16 ++FORCE_INLINE __m128i _mm_set_epi16(short i7, ++ short i6, ++ short i5, ++ short i4, ++ short i3, ++ short i2, ++ short i1, ++ short i0) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {i0, i1, i2, i3, i4, i5, i6, i7}; ++ return vreinterpretq_m128i_s16(vld1q_s16(data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi32 ++FORCE_INLINE __m128i _mm_set_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i0, i1, i2, i3}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64 ++FORCE_INLINE __m128i _mm_set_epi64(__m64 i1, __m64 i2) ++{ ++ return _mm_set_epi64x(vget_lane_s64(i1, 0), vget_lane_s64(i2, 0)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64x ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t i1, int64_t i2) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vcreate_s64(i2), vcreate_s64(i1))); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi8 ++FORCE_INLINE __m128i _mm_set_epi8(signed char b15, ++ signed char b14, ++ signed char b13, ++ signed char b12, ++ signed char b11, ++ signed char b10, ++ signed char b9, ++ signed char b8, ++ signed char b7, ++ signed char b6, ++ signed char b5, ++ signed char b4, ++ signed char b3, ++ signed char b2, ++ signed char b1, ++ signed char b0) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd ++FORCE_INLINE __m128d _mm_set_pd(double e1, double e0) ++{ ++ double ALIGN_STRUCT(16) data[2] = {e0, e1}; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64((float64_t *) data)); ++#else ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) data)); ++#endif ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd1 ++#define _mm_set_pd1 _mm_set1_pd ++ ++// Copy double-precision (64-bit) floating-point element a to the lower element ++// of dst, and zero the upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_sd ++FORCE_INLINE __m128d _mm_set_sd(double a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(a, vdupq_n_f64(0), 0)); ++#else ++ return _mm_set_pd(0, a); ++#endif ++} ++ ++// Broadcast 16-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi16 ++FORCE_INLINE __m128i _mm_set1_epi16(short w) ++{ ++ return vreinterpretq_m128i_s16(vdupq_n_s16(w)); ++} ++ ++// Broadcast 32-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi32 ++FORCE_INLINE __m128i _mm_set1_epi32(int _i) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(_i)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64 ++FORCE_INLINE __m128i _mm_set1_epi64(__m64 _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_lane_s64(_i, 0)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64x ++FORCE_INLINE __m128i _mm_set1_epi64x(int64_t _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_n_s64(_i)); ++} ++ ++// Broadcast 8-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi8 ++FORCE_INLINE __m128i _mm_set1_epi8(signed char w) ++{ ++ return vreinterpretq_m128i_s8(vdupq_n_s8(w)); ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_pd ++FORCE_INLINE __m128d _mm_set1_pd(double d) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(d)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(int64_t *) &d)); ++#endif ++} ++ ++// Set packed 16-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi16 ++FORCE_INLINE __m128i _mm_setr_epi16(short w0, ++ short w1, ++ short w2, ++ short w3, ++ short w4, ++ short w5, ++ short w6, ++ short w7) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {w0, w1, w2, w3, w4, w5, w6, w7}; ++ return vreinterpretq_m128i_s16(vld1q_s16((int16_t *) data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi32 ++FORCE_INLINE __m128i _mm_setr_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i3, i2, i1, i0}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi64 ++FORCE_INLINE __m128i _mm_setr_epi64(__m64 e1, __m64 e0) ++{ ++ return vreinterpretq_m128i_s64(vcombine_s64(e1, e0)); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi8 ++FORCE_INLINE __m128i _mm_setr_epi8(signed char b0, ++ signed char b1, ++ signed char b2, ++ signed char b3, ++ signed char b4, ++ signed char b5, ++ signed char b6, ++ signed char b7, ++ signed char b8, ++ signed char b9, ++ signed char b10, ++ signed char b11, ++ signed char b12, ++ signed char b13, ++ signed char b14, ++ signed char b15) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_pd ++FORCE_INLINE __m128d _mm_setr_pd(double e1, double e0) ++{ ++ return _mm_set_pd(e0, e1); ++} ++ ++// Return vector of type __m128d with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_pd ++FORCE_INLINE __m128d _mm_setzero_pd(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(0)); ++#else ++ return vreinterpretq_m128d_f32(vdupq_n_f32(0)); ++#endif ++} ++ ++// Return vector of type __m128i with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_si128 ++FORCE_INLINE __m128i _mm_setzero_si128(void) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(0)); ++} ++ ++// Shuffle 32-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi32 ++// FORCE_INLINE __m128i _mm_shuffle_epi32(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shuffle_epi32(a, imm) \ ++ __extension__({ \ ++ int32x4_t _input = vreinterpretq_s32_m128i(a); \ ++ int32x4_t _shuf = \ ++ vshuffleq_s32(_input, _input, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ ((imm) >> 4) & 0x3, ((imm) >> 6) & 0x3); \ ++ vreinterpretq_m128i_s32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_epi32(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, __m128i ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_epi_1032(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_epi_2301(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_epi_0321(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_epi_2103(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_shuffle_epi_1010(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_epi_1001(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_epi_0101(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 1, 1): \ ++ ret = _mm_shuffle_epi_2211(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 2, 2): \ ++ ret = _mm_shuffle_epi_0122(_a); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 2): \ ++ ret = _mm_shuffle_epi_3332(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 0, 0): \ ++ ret = _mm_shuffle_epi32_splat(_a, 0); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 1, 1): \ ++ ret = _mm_shuffle_epi32_splat(_a, 1); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 2, 2): \ ++ ret = _mm_shuffle_epi32_splat(_a, 2); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 3): \ ++ ret = _mm_shuffle_epi32_splat(_a, 3); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_epi32_default(_a, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Shuffle double-precision (64-bit) floating-point elements using the control ++// in imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pd ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pd(a, b, imm8) \ ++ vreinterpretq_m128d_s64( \ ++ vshuffleq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b), \ ++ imm8 & 0x1, ((imm8 & 0x2) >> 1) + 2)) ++#else ++#define _mm_shuffle_pd(a, b, imm8) \ ++ _mm_castsi128_pd(_mm_set_epi64x( \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(b), (imm8 & 0x2) >> 1), \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(a), imm8 & 0x1))) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflehi_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflehi_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = \ ++ vshuffleq_s16(_input, _input, 0, 1, 2, 3, ((imm) & (0x3)) + 4, \ ++ (((imm) >> 2) & 0x3) + 4, (((imm) >> 4) & 0x3) + 4, \ ++ (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflehi_epi16(a, imm) _mm_shufflehi_epi16_function((a), (imm)) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflelo_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflelo_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = vshuffleq_s16( \ ++ _input, _input, ((imm) & (0x3)), (((imm) >> 2) & 0x3), \ ++ (((imm) >> 4) & 0x3), (((imm) >> 6) & 0x3), 4, 5, 6, 7); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflelo_epi16(a, imm) _mm_shufflelo_epi16_function((a), (imm)) ++#endif ++ ++// Shift packed 16-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi16 ++FORCE_INLINE __m128i _mm_sll_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16((int16_t) c); ++ return vreinterpretq_m128i_s16(vshlq_s16(vreinterpretq_s16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi32 ++FORCE_INLINE __m128i _mm_sll_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32((int32_t) c); ++ return vreinterpretq_m128i_s32(vshlq_s32(vreinterpretq_s32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi64 ++FORCE_INLINE __m128i _mm_sll_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64((int64_t) c); ++ return vreinterpretq_m128i_s64(vshlq_s64(vreinterpretq_s64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi16 ++FORCE_INLINE __m128i _mm_slli_epi16(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~15)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16(vreinterpretq_s16_m128i(a), vdupq_n_s16(imm))); ++} ++ ++// Shift packed 32-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi32 ++FORCE_INLINE __m128i _mm_slli_epi32(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~31)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32(vreinterpretq_s32_m128i(a), vdupq_n_s32(imm))); ++} ++ ++// Shift packed 64-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi64 ++FORCE_INLINE __m128i _mm_slli_epi64(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~63)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s64( ++ vshlq_s64(vreinterpretq_s64_m128i(a), vdupq_n_s64(imm))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_si128 ++#define _mm_slli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely(imm == 0)) ret = vreinterpretq_s8_m128i(_a); \ ++ else if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vdupq_n_s8(0), vreinterpretq_s8_m128i(_a), \ ++ ((imm <= 0 || imm > 15) ? 0 : (16 - imm))); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Compute the square root of packed double-precision (64-bit) floating-point ++// elements in a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_pd ++FORCE_INLINE __m128d _mm_sqrt_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsqrtq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double a0 = sqrt(((double *) &a)[0]); ++ double a1 = sqrt(((double *) &a)[1]); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Compute the square root of the lower double-precision (64-bit) floating-point ++// element in b, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_sd ++FORCE_INLINE __m128d _mm_sqrt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_sqrt_pd(b)); ++#else ++ return _mm_set_pd(((double *) &a)[1], sqrt(((double *) &b)[0])); ++#endif ++} ++ ++// Shift packed 16-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi16 ++FORCE_INLINE __m128i _mm_sra_epi16(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_cmplt_epi16(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16((int16x8_t) a, vdupq_n_s16((int) -c))); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi32 ++FORCE_INLINE __m128i _mm_sra_epi32(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_cmplt_epi32(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32((int32x4_t) a, vdupq_n_s32((int) -c))); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in sign ++// bits, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi16 ++FORCE_INLINE __m128i _mm_srai_epi16(__m128i a, int imm) ++{ ++ const int count = (imm & ~15) ? 15 : imm; ++ return (__m128i) vshlq_s16((int16x8_t) a, vdupq_n_s16(-count)); ++} ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi32 ++// FORCE_INLINE __m128i _mm_srai_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srai_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) == 0)) { \ ++ ret = _a; \ ++ } else if (_sse2neon_likely(0 < (imm) && (imm) < 32)) { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshlq_s32(vreinterpretq_s32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } else { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshrq_n_s32(vreinterpretq_s32_m128i(_a), 31)); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 16-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi16 ++FORCE_INLINE __m128i _mm_srl_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16(-(int16_t) c); ++ return vreinterpretq_m128i_u16(vshlq_u16(vreinterpretq_u16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi32 ++FORCE_INLINE __m128i _mm_srl_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32(-(int32_t) c); ++ return vreinterpretq_m128i_u32(vshlq_u32(vreinterpretq_u32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi64 ++FORCE_INLINE __m128i _mm_srl_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64(-(int64_t) c); ++ return vreinterpretq_m128i_u64(vshlq_u64(vreinterpretq_u64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi16 ++#define _mm_srli_epi16(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~15)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u16( \ ++ vshlq_u16(vreinterpretq_u16_m128i(_a), vdupq_n_s16(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi32 ++// FORCE_INLINE __m128i _mm_srli_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srli_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~31)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u32( \ ++ vshlq_u32(vreinterpretq_u32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 64-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi64 ++#define _mm_srli_epi64(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~63)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u64( \ ++ vshlq_u64(vreinterpretq_u64_m128i(_a), vdupq_n_s64(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_si128 ++#define _mm_srli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vreinterpretq_s8_m128i(_a), vdupq_n_s8(0), \ ++ (imm > 15 ? 0 : imm)); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd ++FORCE_INLINE void _mm_store_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64((float64_t *) mem_addr, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_f32((float32_t *) mem_addr, vreinterpretq_f32_m128d(a)); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd1 ++FORCE_INLINE void _mm_store_pd1(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x1_t a_low = vget_low_f64(vreinterpretq_f64_m128d(a)); ++ vst1q_f64((float64_t *) mem_addr, ++ vreinterpretq_f64_m128d(vcombine_f64(a_low, a_low))); ++#else ++ float32x2_t a_low = vget_low_f32(vreinterpretq_f32_m128d(a)); ++ vst1q_f32((float32_t *) mem_addr, ++ vreinterpretq_f32_m128d(vcombine_f32(a_low, a_low))); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_store_sd ++FORCE_INLINE void _mm_store_sd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_u64((uint64_t *) mem_addr, vget_low_u64(vreinterpretq_u64_m128d(a))); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_si128 ++FORCE_INLINE void _mm_store_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#expand=9,526,5601&text=_mm_store1_pd ++#define _mm_store1_pd _mm_store_pd1 ++ ++// Store the upper double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pd ++FORCE_INLINE void _mm_storeh_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_high_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_high_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 64-bit integer from the first element of a into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_epi64 ++FORCE_INLINE void _mm_storel_epi64(__m128i *a, __m128i b) ++{ ++ vst1_u64((uint64_t *) a, vget_low_u64(vreinterpretq_u64_m128i(b))); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pd ++FORCE_INLINE void _mm_storel_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_low_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 2 double-precision (64-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_pd ++FORCE_INLINE void _mm_storer_pd(double *mem_addr, __m128d a) ++{ ++ float32x4_t f = vreinterpretq_f32_m128d(a); ++ _mm_store_pd(mem_addr, vreinterpretq_m128d_f32(vextq_f32(f, f, 2))); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_pd ++FORCE_INLINE void _mm_storeu_pd(double *mem_addr, __m128d a) ++{ ++ _mm_store_pd(mem_addr, a); ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si128 ++FORCE_INLINE void _mm_storeu_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store 32-bit integer from the first element of a into memory. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si32 ++FORCE_INLINE void _mm_storeu_si32(void *p, __m128i a) ++{ ++ vst1q_lane_s32((int32_t *) p, vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory using a non-temporal memory hint. mem_addr must ++// be aligned on a 16-byte boundary or a general-protection exception may be ++// generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pd ++FORCE_INLINE void _mm_stream_pd(double *p, __m128d a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (__m128d *) p); ++#elif defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64(p, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128d(a)); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory using a non-temporal memory ++// hint. mem_addr must be aligned on a 16-byte boundary or a general-protection ++// exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si128 ++FORCE_INLINE void _mm_stream_si128(__m128i *p, __m128i a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, p); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128i(a)); ++#endif ++} ++ ++// Store 32-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si32 ++FORCE_INLINE void _mm_stream_si32(int *p, int a) ++{ ++ vst1q_lane_s32((int32_t *) p, vdupq_n_s32(a), 0); ++} ++ ++// Store 64-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si64 ++FORCE_INLINE void _mm_stream_si64(__int64 *p, __int64 a) ++{ ++ vst1_s64((int64_t *) p, vdup_n_s64((int64_t) a)); ++} ++ ++// Subtract packed 16-bit integers in b from packed 16-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi16 ++FORCE_INLINE __m128i _mm_sub_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed 32-bit integers in b from packed 32-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi32 ++FORCE_INLINE __m128i _mm_sub_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Subtract packed 64-bit integers in b from packed 64-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi64 ++FORCE_INLINE __m128i _mm_sub_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vsubq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Subtract packed 8-bit integers in b from packed 8-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi8 ++FORCE_INLINE __m128i _mm_sub_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed double-precision (64-bit) floating-point elements in b from ++// packed double-precision (64-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_sub_pd ++FORCE_INLINE __m128d _mm_sub_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] - db[0]; ++ c[1] = da[1] - db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Subtract the lower double-precision (64-bit) floating-point element in b from ++// the lower double-precision (64-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_sd ++FORCE_INLINE __m128d _mm_sub_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_sub_pd(a, b)); ++} ++ ++// Subtract 64-bit integer b from 64-bit integer a, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_si64 ++FORCE_INLINE __m64 _mm_sub_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vsub_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Subtract packed signed 16-bit integers in b from packed 16-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi16 ++FORCE_INLINE __m128i _mm_subs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed signed 8-bit integers in b from packed 8-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi8 ++FORCE_INLINE __m128i _mm_subs_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed unsigned 16-bit integers in b from packed unsigned 16-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu16 ++FORCE_INLINE __m128i _mm_subs_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqsubq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Subtract packed unsigned 8-bit integers in b from packed unsigned 8-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu8 ++FORCE_INLINE __m128i _mm_subs_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqsubq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++#define _mm_ucomieq_sd _mm_comieq_sd ++#define _mm_ucomige_sd _mm_comige_sd ++#define _mm_ucomigt_sd _mm_comigt_sd ++#define _mm_ucomile_sd _mm_comile_sd ++#define _mm_ucomilt_sd _mm_comilt_sd ++#define _mm_ucomineq_sd _mm_comineq_sd ++ ++// Return vector of type __m128d with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_pd ++FORCE_INLINE __m128d _mm_undefined_pd(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128d a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_pd(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi16 ++FORCE_INLINE __m128i _mm_unpackhi_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip2q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi32 ++FORCE_INLINE __m128i _mm_unpackhi_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip2q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_high_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi64 ++FORCE_INLINE __m128i _mm_unpackhi_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip2q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_h = vget_high_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_h = vget_high_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_h, b_h)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the high half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi8 ++FORCE_INLINE __m128i _mm_unpackhi_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip2q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the high half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_pd ++FORCE_INLINE __m128d _mm_unpackhi_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip2q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_high_s64(vreinterpretq_s64_m128d(a)), ++ vget_high_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi16 ++FORCE_INLINE __m128i _mm_unpacklo_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip1q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi32 ++FORCE_INLINE __m128i _mm_unpacklo_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip1q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_low_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi64 ++FORCE_INLINE __m128i _mm_unpacklo_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip1q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_l = vget_low_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_l = vget_low_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_l, b_l)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi8 ++FORCE_INLINE __m128i _mm_unpacklo_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip1q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_pd ++FORCE_INLINE __m128d _mm_unpacklo_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip1q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_low_s64(vreinterpretq_s64_m128d(a)), ++ vget_low_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Compute the bitwise XOR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_pd ++FORCE_INLINE __m128d _mm_xor_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ veorq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise XOR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_si128 ++FORCE_INLINE __m128i _mm_xor_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ veorq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++/* SSE3 */ ++ ++// Alternatively add and subtract packed double-precision (64-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_addsub_pd ++FORCE_INLINE __m128d _mm_addsub_pd(__m128d a, __m128d b) ++{ ++ _sse2neon_const __m128d mask = _mm_set_pd(1.0f, -1.0f); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vfmaq_f64(vreinterpretq_f64_m128d(a), ++ vreinterpretq_f64_m128d(b), ++ vreinterpretq_f64_m128d(mask))); ++#else ++ return _mm_add_pd(_mm_mul_pd(b, mask), a); ++#endif ++} ++ ++// Alternatively add and subtract packed single-precision (32-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=addsub_ps ++FORCE_INLINE __m128 _mm_addsub_ps(__m128 a, __m128 b) ++{ ++ _sse2neon_const __m128 mask = _mm_setr_ps(-1.0f, 1.0f, -1.0f, 1.0f); ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_FMA) /* VFPv4+ */ ++ return vreinterpretq_m128_f32(vfmaq_f32(vreinterpretq_f32_m128(a), ++ vreinterpretq_f32_m128(mask), ++ vreinterpretq_f32_m128(b))); ++#else ++ return _mm_add_ps(_mm_mul_ps(b, mask), a); ++#endif ++} ++ ++// Horizontally add adjacent pairs of double-precision (64-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pd ++FORCE_INLINE __m128d _mm_hadd_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vpaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[] = {da[0] + da[1], db[0] + db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of single-precision (32-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_ps ++FORCE_INLINE __m128 _mm_hadd_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vpaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vpadd_f32(a10, a32), vpadd_f32(b10, b32))); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of double-precision (64-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pd ++FORCE_INLINE __m128d _mm_hsub_pd(__m128d _a, __m128d _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vuzp1q_f64(a, b), vuzp2q_f64(a, b))); ++#else ++ double *da = (double *) &_a; ++ double *db = (double *) &_b; ++ double c[] = {da[0] - da[1], db[0] - db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of single-precision (32-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_ps ++FORCE_INLINE __m128 _mm_hsub_ps(__m128 _a, __m128 _b) ++{ ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vuzp1q_f32(a, b), vuzp2q_f32(a, b))); ++#else ++ float32x4x2_t c = vuzpq_f32(a, b); ++ return vreinterpretq_m128_f32(vsubq_f32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Load 128-bits of integer data from unaligned memory into dst. This intrinsic ++// may perform better than _mm_loadu_si128 when the data crosses a cache line ++// boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lddqu_si128 ++#define _mm_lddqu_si128 _mm_loadu_si128 ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loaddup_pd ++#define _mm_loaddup_pd _mm_load1_pd ++ ++// Duplicate the low double-precision (64-bit) floating-point element from a, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movedup_pd ++FORCE_INLINE __m128d _mm_movedup_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdupq_laneq_f64(vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_u64( ++ vdupq_n_u64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0))); ++#endif ++} ++ ++// Duplicate odd-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehdup_ps ++FORCE_INLINE __m128 _mm_movehdup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 1, 1, 3, 3)); ++#else ++ float32_t a1 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ float32_t a3 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 3); ++ float ALIGN_STRUCT(16) data[4] = {a1, a1, a3, a3}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Duplicate even-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_moveldup_ps ++FORCE_INLINE __m128 _mm_moveldup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 0, 0, 2, 2)); ++#else ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32_t a2 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 2); ++ float ALIGN_STRUCT(16) data[4] = {a0, a0, a2, a2}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++/* SSSE3 */ ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi16 ++FORCE_INLINE __m128i _mm_abs_epi16(__m128i a) ++{ ++ return vreinterpretq_m128i_s16(vabsq_s16(vreinterpretq_s16_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi32 ++FORCE_INLINE __m128i _mm_abs_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32(vabsq_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi8 ++FORCE_INLINE __m128i _mm_abs_epi8(__m128i a) ++{ ++ return vreinterpretq_m128i_s8(vabsq_s8(vreinterpretq_s8_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi16 ++FORCE_INLINE __m64 _mm_abs_pi16(__m64 a) ++{ ++ return vreinterpret_m64_s16(vabs_s16(vreinterpret_s16_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi32 ++FORCE_INLINE __m64 _mm_abs_pi32(__m64 a) ++{ ++ return vreinterpret_m64_s32(vabs_s32(vreinterpret_s32_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi8 ++FORCE_INLINE __m64 _mm_abs_pi8(__m64 a) ++{ ++ return vreinterpret_m64_s8(vabs_s8(vreinterpret_s8_m64(a))); ++} ++ ++// Concatenate 16-byte blocks in a and b into a 32-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 16 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_epi8 ++#if defined(__GNUC__) && !defined(__clang__) ++#define _mm_alignr_epi8(a, b, imm) \ ++ __extension__({ \ ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); \ ++ uint8x16_t _b = vreinterpretq_u8_m128i(b); \ ++ __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) \ ++ ret = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) \ ++ ret = _mm_srli_si128(a, imm >= 16 ? imm - 16 : 0); \ ++ else \ ++ ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(_b, _a, imm < 16 ? imm : 0)); \ ++ ret; \ ++ }) ++ ++#else ++#define _mm_alignr_epi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, uint8x16_t __a = vreinterpretq_u8_m128i(_a); \ ++ uint8x16_t __b = vreinterpretq_u8_m128i(_b); __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) ret = \ ++ vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) ret = \ ++ _mm_srli_si128(_a, imm >= 16 ? imm - 16 : 0); \ ++ else ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(__b, __a, imm < 16 ? imm : 0)); \ ++ _sse2neon_return(ret);) ++ ++#endif ++ ++// Concatenate 8-byte blocks in a and b into a 16-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 8 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_pi8 ++#define _mm_alignr_pi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m64, a, b, __m64 ret; if (_sse2neon_unlikely((imm) >= 16)) { \ ++ ret = vreinterpret_m64_s8(vdup_n_s8(0)); \ ++ } else { \ ++ uint8x8_t tmp_low; \ ++ uint8x8_t tmp_high; \ ++ if ((imm) >= 8) { \ ++ const int idx = (imm) -8; \ ++ tmp_low = vreinterpret_u8_m64(_a); \ ++ tmp_high = vdup_n_u8(0); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } else { \ ++ const int idx = (imm); \ ++ tmp_low = vreinterpret_u8_m64(_b); \ ++ tmp_high = vreinterpret_u8_m64(_a); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } \ ++ } _sse2neon_return(ret);) ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi16 ++FORCE_INLINE __m128i _mm_hadd_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16(vpaddq_s16(a, b)); ++#else ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(vget_low_s16(a), vget_high_s16(a)), ++ vpadd_s16(vget_low_s16(b), vget_high_s16(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi32 ++FORCE_INLINE __m128i _mm_hadd_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32(vpaddq_s32(a, b)); ++#else ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vpadd_s32(vget_low_s32(a), vget_high_s32(a)), ++ vpadd_s32(vget_low_s32(b), vget_high_s32(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi16 ++FORCE_INLINE __m64 _mm_hadd_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vpadd_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi32 ++FORCE_INLINE __m64 _mm_hadd_pi32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s32( ++ vpadd_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_epi16 ++FORCE_INLINE __m128i _mm_hadds_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ return vreinterpretq_s64_s16( ++ vqaddq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ // Interleave using vshrn/vmovn ++ // [a0|a2|a4|a6|b0|b2|b4|b6] ++ // [a1|a3|a5|a7|b1|b3|b5|b7] ++ int16x8_t ab0246 = vcombine_s16(vmovn_s32(a), vmovn_s32(b)); ++ int16x8_t ab1357 = vcombine_s16(vshrn_n_s32(a, 16), vshrn_n_s32(b, 16)); ++ // Saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(ab0246, ab1357)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_pi16 ++FORCE_INLINE __m64 _mm_hadds_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_s64_s16(vqadd_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t res = vuzp_s16(a, b); ++ return vreinterpret_s64_s16(vqadd_s16(res.val[0], res.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi16 ++FORCE_INLINE __m128i _mm_hsub_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi32 ++FORCE_INLINE __m128i _mm_hsub_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vuzp1q_s32(a, b), vuzp2q_s32(a, b))); ++#else ++ int32x4x2_t c = vuzpq_s32(a, b); ++ return vreinterpretq_m128i_s32(vsubq_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pi16 ++FORCE_INLINE __m64 _mm_hsub_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_hsub_pi32 ++FORCE_INLINE __m64 _mm_hsub_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s32(vsub_s32(vuzp1_s32(a, b), vuzp2_s32(a, b))); ++#else ++ int32x2x2_t c = vuzp_s32(a, b); ++ return vreinterpret_m64_s32(vsub_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_epi16 ++FORCE_INLINE __m128i _mm_hsubs_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vqsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_pi16 ++FORCE_INLINE __m64 _mm_hsubs_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vqsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vqsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, ++// and pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_epi16 ++FORCE_INLINE __m128i _mm_maddubs_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ int16x8_t tl = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_low_u8(a))), ++ vmovl_s8(vget_low_s8(b))); ++ int16x8_t th = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_high_u8(a))), ++ vmovl_s8(vget_high_s8(b))); ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vuzp1q_s16(tl, th), vuzp2q_s16(tl, th))); ++#else ++ // This would be much simpler if x86 would choose to zero extend OR sign ++ // extend, not both. This could probably be optimized better. ++ uint16x8_t a = vreinterpretq_u16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // Zero extend a ++ int16x8_t a_odd = vreinterpretq_s16_u16(vshrq_n_u16(a, 8)); ++ int16x8_t a_even = vreinterpretq_s16_u16(vbicq_u16(a, vdupq_n_u16(0xff00))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x8_t b_even = vshrq_n_s16(vshlq_n_s16(b, 8), 8); ++ int16x8_t b_odd = vshrq_n_s16(b, 8); ++ ++ // multiply ++ int16x8_t prod1 = vmulq_s16(a_even, b_even); ++ int16x8_t prod2 = vmulq_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(prod1, prod2)); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, and ++// pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_pi16 ++FORCE_INLINE __m64 _mm_maddubs_pi16(__m64 _a, __m64 _b) ++{ ++ uint16x4_t a = vreinterpret_u16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // Zero extend a ++ int16x4_t a_odd = vreinterpret_s16_u16(vshr_n_u16(a, 8)); ++ int16x4_t a_even = vreinterpret_s16_u16(vand_u16(a, vdup_n_u16(0xff))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x4_t b_even = vshr_n_s16(vshl_n_s16(b, 8), 8); ++ int16x4_t b_odd = vshr_n_s16(b, 8); ++ ++ // multiply ++ int16x4_t prod1 = vmul_s16(a_even, b_even); ++ int16x4_t prod2 = vmul_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpret_m64_s16(vqadd_s16(prod1, prod2)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Shift right by 15 bits while rounding up, and store ++// the packed 16-bit integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_epi16 ++FORCE_INLINE __m128i _mm_mulhrs_epi16(__m128i a, __m128i b) ++{ ++ // Has issues due to saturation ++ // return vreinterpretq_m128i_s16(vqrdmulhq_s16(a, b)); ++ ++ // Multiply ++ int32x4_t mul_lo = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int32x4_t mul_hi = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ // Rounding narrowing shift right ++ // narrow = (int16_t)((mul + 16384) >> 15); ++ int16x4_t narrow_lo = vrshrn_n_s32(mul_lo, 15); ++ int16x4_t narrow_hi = vrshrn_n_s32(mul_hi, 15); ++ ++ // Join together ++ return vreinterpretq_m128i_s16(vcombine_s16(narrow_lo, narrow_hi)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Truncate each intermediate integer to the 18 most ++// significant bits, round by adding 1, and store bits [16:1] to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_pi16 ++FORCE_INLINE __m64 _mm_mulhrs_pi16(__m64 a, __m64 b) ++{ ++ int32x4_t mul_extend = ++ vmull_s16((vreinterpret_s16_m64(a)), (vreinterpret_s16_m64(b))); ++ ++ // Rounding narrowing shift right ++ return vreinterpret_m64_s16(vrshrn_n_s32(mul_extend, 15)); ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi8 ++FORCE_INLINE __m128i _mm_shuffle_epi8(__m128i a, __m128i b) ++{ ++ int8x16_t tbl = vreinterpretq_s8_m128i(a); // input a ++ uint8x16_t idx = vreinterpretq_u8_m128i(b); // input b ++ uint8x16_t idx_masked = ++ vandq_u8(idx, vdupq_n_u8(0x8F)); // avoid using meaningless bits ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8(vqtbl1q_s8(tbl, idx_masked)); ++#elif defined(__GNUC__) ++ int8x16_t ret; ++ // %e and %f represent the even and odd D registers ++ // respectively. ++ __asm__ __volatile__( ++ "vtbl.8 %e[ret], {%e[tbl], %f[tbl]}, %e[idx]\n" ++ "vtbl.8 %f[ret], {%e[tbl], %f[tbl]}, %f[idx]\n" ++ : [ret] "=&w"(ret) ++ : [tbl] "w"(tbl), [idx] "w"(idx_masked)); ++ return vreinterpretq_m128i_s8(ret); ++#else ++ // use this line if testing on aarch64 ++ int8x8x2_t a_split = {vget_low_s8(tbl), vget_high_s8(tbl)}; ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vtbl2_s8(a_split, vget_low_u8(idx_masked)), ++ vtbl2_s8(a_split, vget_high_u8(idx_masked)))); ++#endif ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi8 ++FORCE_INLINE __m64 _mm_shuffle_pi8(__m64 a, __m64 b) ++{ ++ const int8x8_t controlMask = ++ vand_s8(vreinterpret_s8_m64(b), vdup_n_s8((int8_t) (0x1 << 7 | 0x07))); ++ int8x8_t res = vtbl1_s8(vreinterpret_s8_m64(a), controlMask); ++ return vreinterpret_m64_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed ++// 16-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi16 ++FORCE_INLINE __m128i _mm_sign_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x8_t ltMask = vreinterpretq_u16_s16(vshrq_n_s16(b, 15)); ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqzq_s16(b)); ++#else ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqq_s16(b, vdupq_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s16(a) equals to negative ++ // 'a') based on ltMask ++ int16x8_t masked = vbslq_s16(ltMask, vnegq_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x8_t res = vbicq_s16(masked, zeroMask); ++ return vreinterpretq_m128i_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed ++// 32-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi32 ++FORCE_INLINE __m128i _mm_sign_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x4_t ltMask = vreinterpretq_u32_s32(vshrq_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqzq_s32(b)); ++#else ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqq_s32(b, vdupq_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s32(a) equals to negative ++ // 'a') based on ltMask ++ int32x4_t masked = vbslq_s32(ltMask, vnegq_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x4_t res = vbicq_s32(masked, zeroMask); ++ return vreinterpretq_m128i_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed ++// 8-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi8 ++FORCE_INLINE __m128i _mm_sign_epi8(__m128i _a, __m128i _b) ++{ ++ int8x16_t a = vreinterpretq_s8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x16_t ltMask = vreinterpretq_u8_s8(vshrq_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqzq_s8(b)); ++#else ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqq_s8(b, vdupq_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s8(a) return negative 'a') ++ // based on ltMask ++ int8x16_t masked = vbslq_s8(ltMask, vnegq_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x16_t res = vbicq_s8(masked, zeroMask); ++ ++ return vreinterpretq_m128i_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed 16-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi16 ++FORCE_INLINE __m64 _mm_sign_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x4_t ltMask = vreinterpret_u16_s16(vshr_n_s16(b, 15)); ++ ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceqz_s16(b)); ++#else ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceq_s16(b, vdup_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s16(a) return negative 'a') ++ // based on ltMask ++ int16x4_t masked = vbsl_s16(ltMask, vneg_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x4_t res = vbic_s16(masked, zeroMask); ++ ++ return vreinterpret_m64_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed 32-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi32 ++FORCE_INLINE __m64 _mm_sign_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x2_t ltMask = vreinterpret_u32_s32(vshr_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceqz_s32(b)); ++#else ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceq_s32(b, vdup_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s32(a) return negative 'a') ++ // based on ltMask ++ int32x2_t masked = vbsl_s32(ltMask, vneg_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x2_t res = vbic_s32(masked, zeroMask); ++ ++ return vreinterpret_m64_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed 8-bit integer ++// in b is negative, and store the results in dst. Element in dst are zeroed out ++// when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi8 ++FORCE_INLINE __m64 _mm_sign_pi8(__m64 _a, __m64 _b) ++{ ++ int8x8_t a = vreinterpret_s8_m64(_a); ++ int8x8_t b = vreinterpret_s8_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x8_t ltMask = vreinterpret_u8_s8(vshr_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceqz_s8(b)); ++#else ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceq_s8(b, vdup_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s8(a) return negative 'a') ++ // based on ltMask ++ int8x8_t masked = vbsl_s8(ltMask, vneg_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x8_t res = vbic_s8(masked, zeroMask); ++ ++ return vreinterpret_m64_s8(res); ++} ++ ++/* SSE4.1 */ ++ ++// Blend packed 16-bit integers from a and b using control mask imm8, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_epi16 ++// FORCE_INLINE __m128i _mm_blend_epi16(__m128i a, __m128i b, ++// __constrange(0,255) int imm) ++#define _mm_blend_epi16(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, \ ++ const uint16_t _mask[8] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 1)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 2)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 3)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 4)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 5)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 6)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 7)) ? (uint16_t) -1 : 0x0); \ ++ uint16x8_t _mask_vec = vld1q_u16(_mask); \ ++ uint16x8_t __a = vreinterpretq_u16_m128i(_a); \ ++ uint16x8_t __b = vreinterpretq_u16_m128i(_b); _sse2neon_return( \ ++ vreinterpretq_m128i_u16(vbslq_u16(_mask_vec, __b, __a)));) ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using control mask imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_pd ++#define _mm_blend_pd(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128d, a, b, \ ++ const uint64_t _mask[2] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? ~UINT64_C(0) : UINT64_C(0), \ ++ ((imm) & (1 << 1)) ? ~UINT64_C(0) : UINT64_C(0)); \ ++ uint64x2_t _mask_vec = vld1q_u64(_mask); \ ++ uint64x2_t __a = vreinterpretq_u64_m128d(_a); \ ++ uint64x2_t __b = vreinterpretq_u64_m128d(_b); _sse2neon_return( \ ++ vreinterpretq_m128d_u64(vbslq_u64(_mask_vec, __b, __a)));) ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_ps ++FORCE_INLINE __m128 _mm_blend_ps(__m128 _a, __m128 _b, const char imm8) ++{ ++ const uint32_t ALIGN_STRUCT(16) ++ data[4] = {((imm8) & (1 << 0)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0}; ++ uint32x4_t mask = vld1q_u32(data); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Blend packed 8-bit integers from a and b using mask, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_epi8 ++FORCE_INLINE __m128i _mm_blendv_epi8(__m128i _a, __m128i _b, __m128i _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint8x16_t mask = ++ vreinterpretq_u8_s8(vshrq_n_s8(vreinterpretq_s8_m128i(_mask), 7)); ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ uint8x16_t b = vreinterpretq_u8_m128i(_b); ++ return vreinterpretq_m128i_u8(vbslq_u8(mask, b, a)); ++} ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_pd ++FORCE_INLINE __m128d _mm_blendv_pd(__m128d _a, __m128d _b, __m128d _mask) ++{ ++ uint64x2_t mask = ++ vreinterpretq_u64_s64(vshrq_n_s64(vreinterpretq_s64_m128d(_mask), 63)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64(vbslq_f64(mask, b, a)); ++#else ++ uint64x2_t a = vreinterpretq_u64_m128d(_a); ++ uint64x2_t b = vreinterpretq_u64_m128d(_b); ++ return vreinterpretq_m128d_u64(vbslq_u64(mask, b, a)); ++#endif ++} ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_ps ++FORCE_INLINE __m128 _mm_blendv_ps(__m128 _a, __m128 _b, __m128 _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint32x4_t mask = ++ vreinterpretq_u32_s32(vshrq_n_s32(vreinterpretq_s32_m128(_mask), 31)); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a up ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_pd ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndpq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(ceil(f[1]), ceil(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a up to ++// an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ps ++FORCE_INLINE __m128 _mm_ceil_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndpq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ceilf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b up to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_sd ++FORCE_INLINE __m128d _mm_ceil_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_ceil_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b up to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ss ++FORCE_INLINE __m128 _mm_ceil_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_ceil_ps(b)); ++} ++ ++// Compare packed 64-bit integers in a and b for equality, and store the results ++// in dst ++FORCE_INLINE __m128i _mm_cmpeq_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vceqq_u64(vreinterpretq_u64_m128i(a), vreinterpretq_u64_m128i(b))); ++#else ++ // ARMv7 lacks vceqq_u64 ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128i_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Sign extend packed 16-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi32 ++FORCE_INLINE __m128i _mm_cvtepi16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vmovl_s16(vget_low_s16(vreinterpretq_s16_m128i(a)))); ++} ++ ++// Sign extend packed 16-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi64 ++FORCE_INLINE __m128i _mm_cvtepi16_epi64(__m128i a) ++{ ++ int16x8_t s16x8 = vreinterpretq_s16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Sign extend packed 32-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_epi64 ++FORCE_INLINE __m128i _mm_cvtepi32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a)))); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 16-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi16 ++FORCE_INLINE __m128i _mm_cvtepi8_epi16(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ return vreinterpretq_m128i_s16(s16x8); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi32 ++FORCE_INLINE __m128i _mm_cvtepi8_epi32(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_s32(s32x4); ++} ++ ++// Sign extend packed 8-bit integers in the low 8 bytes of a to packed 64-bit ++// integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi64 ++FORCE_INLINE __m128i _mm_cvtepi8_epi64(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi32 ++FORCE_INLINE __m128i _mm_cvtepu16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_u32( ++ vmovl_u16(vget_low_u16(vreinterpretq_u16_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi64 ++FORCE_INLINE __m128i _mm_cvtepu16_epi64(__m128i a) ++{ ++ uint16x8_t u16x8 = vreinterpretq_u16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Zero extend packed unsigned 32-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu32_epi64 ++FORCE_INLINE __m128i _mm_cvtepu32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_u64( ++ vmovl_u32(vget_low_u32(vreinterpretq_u32_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 16-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi16 ++FORCE_INLINE __m128i _mm_cvtepu8_epi16(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx HGFE DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0H0G 0F0E 0D0C 0B0A */ ++ return vreinterpretq_m128i_u16(u16x8); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi32 ++FORCE_INLINE __m128i _mm_cvtepu8_epi32(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_u32(u32x4); ++} ++ ++// Zero extend packed unsigned 8-bit integers in the low 8 bytes of a to packed ++// 64-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi64 ++FORCE_INLINE __m128i _mm_cvtepu8_epi64(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Conditionally multiply the packed double-precision (64-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, and ++// conditionally store the sum in dst using the low 4 bits of imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_pd ++FORCE_INLINE __m128d _mm_dp_pd(__m128d a, __m128d b, const int imm) ++{ ++ // Generate mask value from constant immediate bit value ++ const int64_t bit0Mask = imm & 0x01 ? UINT64_MAX : 0; ++ const int64_t bit1Mask = imm & 0x02 ? UINT64_MAX : 0; ++#if !SSE2NEON_PRECISE_DP ++ const int64_t bit4Mask = imm & 0x10 ? UINT64_MAX : 0; ++ const int64_t bit5Mask = imm & 0x20 ? UINT64_MAX : 0; ++#endif ++ // Conditional multiplication ++#if !SSE2NEON_PRECISE_DP ++ __m128d mul = _mm_mul_pd(a, b); ++ const __m128d mulMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit5Mask, bit4Mask)); ++ __m128d tmp = _mm_and_pd(mul, mulMask); ++#else ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double d0 = (imm & 0x10) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 0) ++ : 0; ++ double d1 = (imm & 0x20) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 1) ++ : 0; ++#else ++ double d0 = (imm & 0x10) ? ((double *) &a)[0] * ((double *) &b)[0] : 0; ++ double d1 = (imm & 0x20) ? ((double *) &a)[1] * ((double *) &b)[1] : 0; ++#endif ++ __m128d tmp = _mm_set_pd(d1, d0); ++#endif ++ // Sum the products ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double sum = vpaddd_f64(vreinterpretq_f64_m128d(tmp)); ++#else ++ double sum = *((double *) &tmp) + *(((double *) &tmp) + 1); ++#endif ++ // Conditionally store the sum ++ const __m128d sumMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit1Mask, bit0Mask)); ++ __m128d res = _mm_and_pd(_mm_set_pd1(sum), sumMask); ++ return res; ++} ++ ++// Conditionally multiply the packed single-precision (32-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, ++// and conditionally store the sum in dst using the low 4 bits of imm. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_ps ++FORCE_INLINE __m128 _mm_dp_ps(__m128 a, __m128 b, const int imm) ++{ ++ float32x4_t elementwise_prod = _mm_mul_ps(a, b); ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ /* shortcuts */ ++ if (imm == 0xFF) { ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++ ++ if ((imm & 0x0F) == 0x0F) { ++ if (!(imm & (1 << 4))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 0); ++ if (!(imm & (1 << 5))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 1); ++ if (!(imm & (1 << 6))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 2); ++ if (!(imm & (1 << 7))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 3); ++ ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++#endif ++ ++ float s = 0.0f; ++ ++ if (imm & (1 << 4)) ++ s += vgetq_lane_f32(elementwise_prod, 0); ++ if (imm & (1 << 5)) ++ s += vgetq_lane_f32(elementwise_prod, 1); ++ if (imm & (1 << 6)) ++ s += vgetq_lane_f32(elementwise_prod, 2); ++ if (imm & (1 << 7)) ++ s += vgetq_lane_f32(elementwise_prod, 3); ++ ++ const float32_t res[4] = { ++ (imm & 0x1) ? s : 0.0f, ++ (imm & 0x2) ? s : 0.0f, ++ (imm & 0x4) ? s : 0.0f, ++ (imm & 0x8) ? s : 0.0f, ++ }; ++ return vreinterpretq_m128_f32(vld1q_f32(res)); ++} ++ ++// Extract a 32-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi32 ++// FORCE_INLINE int _mm_extract_epi32(__m128i a, __constrange(0,4) int imm) ++#define _mm_extract_epi32(a, imm) \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)) ++ ++// Extract a 64-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi64 ++// FORCE_INLINE __int64 _mm_extract_epi64(__m128i a, __constrange(0,2) int imm) ++#define _mm_extract_epi64(a, imm) \ ++ vgetq_lane_s64(vreinterpretq_s64_m128i(a), (imm)) ++ ++// Extract an 8-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. FORCE_INLINE int _mm_extract_epi8(__m128i a, ++// __constrange(0,16) int imm) ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi8 ++#define _mm_extract_epi8(a, imm) vgetq_lane_u8(vreinterpretq_u8_m128i(a), (imm)) ++ ++// Extracts the selected single-precision (32-bit) floating-point from a. ++// FORCE_INLINE int _mm_extract_ps(__m128 a, __constrange(0,4) int imm) ++#define _mm_extract_ps(a, imm) vgetq_lane_s32(vreinterpretq_s32_m128(a), (imm)) ++ ++// Round the packed double-precision (64-bit) floating-point elements in a down ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_pd ++FORCE_INLINE __m128d _mm_floor_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndmq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(floor(f[1]), floor(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a down ++// to an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ps ++FORCE_INLINE __m128 _mm_floor_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndmq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(floorf(f[3]), floorf(f[2]), floorf(f[1]), floorf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b down to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_sd ++FORCE_INLINE __m128d _mm_floor_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_floor_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b down to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ss ++FORCE_INLINE __m128 _mm_floor_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_floor_ps(b)); ++} ++ ++// Copy a to dst, and insert the 32-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi32 ++// FORCE_INLINE __m128i _mm_insert_epi32(__m128i a, int b, ++// __constrange(0,4) int imm) ++#define _mm_insert_epi32(a, b, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vsetq_lane_s32((b), vreinterpretq_s32_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the 64-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi64 ++// FORCE_INLINE __m128i _mm_insert_epi64(__m128i a, __int64 b, ++// __constrange(0,2) int imm) ++#define _mm_insert_epi64(a, b, imm) \ ++ vreinterpretq_m128i_s64( \ ++ vsetq_lane_s64((b), vreinterpretq_s64_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the lower 8-bit integer from i into dst at the ++// location specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi8 ++// FORCE_INLINE __m128i _mm_insert_epi8(__m128i a, int b, ++// __constrange(0,16) int imm) ++#define _mm_insert_epi8(a, b, imm) \ ++ vreinterpretq_m128i_s8(vsetq_lane_s8((b), vreinterpretq_s8_m128i(a), (imm))) ++ ++// Copy a to tmp, then insert a single-precision (32-bit) floating-point ++// element from b into tmp using the control in imm8. Store tmp to dst using ++// the mask in imm8 (elements are zeroed out when the corresponding bit is set). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=insert_ps ++#define _mm_insert_ps(a, b, imm8) \ ++ _sse2neon_define2( \ ++ __m128, a, b, \ ++ float32x4_t tmp1 = \ ++ vsetq_lane_f32(vgetq_lane_f32(_b, (imm8 >> 6) & 0x3), \ ++ vreinterpretq_f32_m128(_a), 0); \ ++ float32x4_t tmp2 = \ ++ vsetq_lane_f32(vgetq_lane_f32(tmp1, 0), \ ++ vreinterpretq_f32_m128(_a), ((imm8 >> 4) & 0x3)); \ ++ const uint32_t data[4] = \ ++ _sse2neon_init(((imm8) & (1 << 0)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0); \ ++ uint32x4_t mask = vld1q_u32(data); \ ++ float32x4_t all_zeros = vdupq_n_f32(0); \ ++ \ ++ _sse2neon_return(vreinterpretq_m128_f32( \ ++ vbslq_f32(mask, all_zeros, vreinterpretq_f32_m128(tmp2))));) ++ ++// Compare packed signed 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi32 ++FORCE_INLINE __m128i _mm_max_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmaxq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi8 ++FORCE_INLINE __m128i _mm_max_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vmaxq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu16 ++FORCE_INLINE __m128i _mm_max_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vmaxq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_max_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vmaxq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi32 ++FORCE_INLINE __m128i _mm_min_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vminq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi8 ++FORCE_INLINE __m128i _mm_min_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vminq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu16 ++FORCE_INLINE __m128i _mm_min_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vminq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_min_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vminq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Horizontally compute the minimum amongst the packed unsigned 16-bit integers ++// in a, store the minimum and index in dst, and zero the remaining bits in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_minpos_epu16 ++FORCE_INLINE __m128i _mm_minpos_epu16(__m128i a) ++{ ++ __m128i dst; ++ uint16_t min, idx = 0; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Find the minimum value ++ min = vminvq_u16(vreinterpretq_u16_m128i(a)); ++ ++ // Get the index of the minimum value ++ static const uint16_t idxv[] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint16x8_t minv = vdupq_n_u16(min); ++ uint16x8_t cmeq = vceqq_u16(minv, vreinterpretq_u16_m128i(a)); ++ idx = vminvq_u16(vornq_u16(vld1q_u16(idxv), cmeq)); ++#else ++ // Find the minimum value ++ __m64 tmp; ++ tmp = vreinterpret_m64_u16( ++ vmin_u16(vget_low_u16(vreinterpretq_u16_m128i(a)), ++ vget_high_u16(vreinterpretq_u16_m128i(a)))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ min = vget_lane_u16(vreinterpret_u16_m64(tmp), 0); ++ // Get the index of the minimum value ++ int i; ++ for (i = 0; i < 8; i++) { ++ if (min == vgetq_lane_u16(vreinterpretq_u16_m128i(a), 0)) { ++ idx = (uint16_t) i; ++ break; ++ } ++ a = _mm_srli_si128(a, 2); ++ } ++#endif ++ // Generate result ++ dst = _mm_setzero_si128(); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(min, vreinterpretq_u16_m128i(dst), 0)); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(idx, vreinterpretq_u16_m128i(dst), 1)); ++ return dst; ++} ++ ++// Compute the sum of absolute differences (SADs) of quadruplets of unsigned ++// 8-bit integers in a compared to those in b, and store the 16-bit results in ++// dst. Eight SADs are performed using one quadruplet from b and eight ++// quadruplets from a. One quadruplet is selected from b starting at on the ++// offset specified in imm8. Eight quadruplets are formed from sequential 8-bit ++// integers selected from a starting at the offset specified in imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mpsadbw_epu8 ++FORCE_INLINE __m128i _mm_mpsadbw_epu8(__m128i a, __m128i b, const int imm) ++{ ++ uint8x16_t _a, _b; ++ ++ switch (imm & 0x4) { ++ case 0: ++ // do nothing ++ _a = vreinterpretq_u8_m128i(a); ++ break; ++ case 4: ++ _a = vreinterpretq_u8_u32(vextq_u32(vreinterpretq_u32_m128i(a), ++ vreinterpretq_u32_m128i(a), 1)); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ switch (imm & 0x3) { ++ case 0: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 0))); ++ break; ++ case 1: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 1))); ++ break; ++ case 2: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 2))); ++ break; ++ case 3: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 3))); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ int16x8_t c04, c15, c26, c37; ++ uint8x8_t low_b = vget_low_u8(_b); ++ c04 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a), low_b)); ++ uint8x16_t _a_1 = vextq_u8(_a, _a, 1); ++ c15 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_1), low_b)); ++ uint8x16_t _a_2 = vextq_u8(_a, _a, 2); ++ c26 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_2), low_b)); ++ uint8x16_t _a_3 = vextq_u8(_a, _a, 3); ++ c37 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_3), low_b)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // |0|4|2|6| ++ c04 = vpaddq_s16(c04, c26); ++ // |1|5|3|7| ++ c15 = vpaddq_s16(c15, c37); ++ ++ int32x4_t trn1_c = ++ vtrn1q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ int32x4_t trn2_c = ++ vtrn2q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ return vreinterpretq_m128i_s16(vpaddq_s16(vreinterpretq_s16_s32(trn1_c), ++ vreinterpretq_s16_s32(trn2_c))); ++#else ++ int16x4_t c01, c23, c45, c67; ++ c01 = vpadd_s16(vget_low_s16(c04), vget_low_s16(c15)); ++ c23 = vpadd_s16(vget_low_s16(c26), vget_low_s16(c37)); ++ c45 = vpadd_s16(vget_high_s16(c04), vget_high_s16(c15)); ++ c67 = vpadd_s16(vget_high_s16(c26), vget_high_s16(c37)); ++ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(c01, c23), vpadd_s16(c45, c67))); ++#endif ++} ++ ++// Multiply the low signed 32-bit integers from each packed 64-bit element in ++// a and b, and store the signed 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epi32 ++FORCE_INLINE __m128i _mm_mul_epi32(__m128i a, __m128i b) ++{ ++ // vmull_s32 upcasts instead of masking, so we downcast. ++ int32x2_t a_lo = vmovn_s64(vreinterpretq_s64_m128i(a)); ++ int32x2_t b_lo = vmovn_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vmull_s32(a_lo, b_lo)); ++} ++ ++// Multiply the packed 32-bit integers in a and b, producing intermediate 64-bit ++// integers, and store the low 32 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi32 ++FORCE_INLINE __m128i _mm_mullo_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmulq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi32 ++FORCE_INLINE __m128i _mm_packus_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcombine_u16(vqmovun_s32(vreinterpretq_s32_m128i(a)), ++ vqmovun_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_pd ++FORCE_INLINE __m128d _mm_round_pd(__m128d a, int rounding) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndnq_f64(vreinterpretq_f64_m128d(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_pd(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_pd(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndq_f64(vreinterpretq_f64_m128d(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128d_f64(vrndiq_f64(vreinterpretq_f64_m128d(a))); ++ } ++#else ++ double *v_double = (double *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ double res[2], tmp; ++ for (int i = 0; i < 2; i++) { ++ tmp = (v_double[i] < 0) ? -v_double[i] : v_double[i]; ++ double roundDown = floor(tmp); // Round down value ++ double roundUp = ceil(tmp); // Round up value ++ double diffDown = tmp - roundDown; ++ double diffUp = roundUp - tmp; ++ if (diffDown < diffUp) { ++ /* If it's closer to the round down value, then use it */ ++ res[i] = roundDown; ++ } else if (diffDown > diffUp) { ++ /* If it's closer to the round up value, then use it */ ++ res[i] = roundUp; ++ } else { ++ /* If it's equidistant between round up and round down value, ++ * pick the one which is an even number */ ++ double half = roundDown / 2; ++ if (half != floor(half)) { ++ /* If the round down value is odd, return the round up value ++ */ ++ res[i] = roundUp; ++ } else { ++ /* If the round up value is odd, return the round down value ++ */ ++ res[i] = roundDown; ++ } ++ } ++ res[i] = (v_double[i] < 0) ? -res[i] : res[i]; ++ } ++ return _mm_set_pd(res[1], res[0]); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_pd(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_pd(a); ++ } ++ return _mm_set_pd(v_double[1] > 0 ? floor(v_double[1]) : ceil(v_double[1]), ++ v_double[0] > 0 ? floor(v_double[0]) : ceil(v_double[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed single-precision ++// floating-point elements in dst. ++// software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_round_ps ++FORCE_INLINE __m128 _mm_round_ps(__m128 a, int rounding) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndnq_f32(vreinterpretq_f32_m128(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_ps(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_ps(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndq_f32(vreinterpretq_f32_m128(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128_f32(vrndiq_f32(vreinterpretq_f32_m128(a))); ++ } ++#else ++ float *v_float = (float *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vbslq_s32(is_delta_half, r_even, r_normal))); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_ps(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_ps(a); ++ } ++ return _mm_set_ps(v_float[3] > 0 ? floorf(v_float[3]) : ceilf(v_float[3]), ++ v_float[2] > 0 ? floorf(v_float[2]) : ceilf(v_float[2]), ++ v_float[1] > 0 ? floorf(v_float[1]) : ceilf(v_float[1]), ++ v_float[0] > 0 ? floorf(v_float[0]) : ceilf(v_float[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b using ++// the rounding parameter, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_sd ++FORCE_INLINE __m128d _mm_round_sd(__m128d a, __m128d b, int rounding) ++{ ++ return _mm_move_sd(a, _mm_round_pd(b, rounding)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b using ++// the rounding parameter, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. Rounding is done according to the ++// rounding[3:0] parameter, which can be one of: ++// (_MM_FROUND_TO_NEAREST_INT |_MM_FROUND_NO_EXC) // round to nearest, and ++// suppress exceptions ++// (_MM_FROUND_TO_NEG_INF |_MM_FROUND_NO_EXC) // round down, and ++// suppress exceptions ++// (_MM_FROUND_TO_POS_INF |_MM_FROUND_NO_EXC) // round up, and suppress ++// exceptions ++// (_MM_FROUND_TO_ZERO |_MM_FROUND_NO_EXC) // truncate, and suppress ++// exceptions _MM_FROUND_CUR_DIRECTION // use MXCSR.RC; see ++// _MM_SET_ROUNDING_MODE ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_ss ++FORCE_INLINE __m128 _mm_round_ss(__m128 a, __m128 b, int rounding) ++{ ++ return _mm_move_ss(a, _mm_round_ps(b, rounding)); ++} ++ ++// Load 128-bits of integer data from memory into dst using a non-temporal ++// memory hint. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_load_si128 ++FORCE_INLINE __m128i _mm_stream_load_si128(__m128i *p) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ return __builtin_nontemporal_load(p); ++#else ++ return vreinterpretq_m128i_s64(vld1q_s64((int64_t *) p)); ++#endif ++} ++ ++// Compute the bitwise NOT of a and then AND with a 128-bit vector containing ++// all 1's, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_ones ++FORCE_INLINE int _mm_test_all_ones(__m128i a) ++{ ++ return (uint64_t) (vgetq_lane_s64(a, 0) & vgetq_lane_s64(a, 1)) == ++ ~(uint64_t) 0; ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_zeros ++FORCE_INLINE int _mm_test_all_zeros(__m128i a, __m128i mask) ++{ ++ int64x2_t a_and_mask = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(mask)); ++ return !(vgetq_lane_s64(a_and_mask, 0) | vgetq_lane_s64(a_and_mask, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute ++// the bitwise NOT of a and then AND with mask, and set CF to 1 if the result is ++// zero, otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_test_mix_ones_zero ++// Note: Argument names may be wrong in the Intel intrinsics guide. ++FORCE_INLINE int _mm_test_mix_ones_zeros(__m128i a, __m128i mask) ++{ ++ uint64x2_t v = vreinterpretq_u64_m128i(a); ++ uint64x2_t m = vreinterpretq_u64_m128i(mask); ++ ++ // find ones (set-bits) and zeros (clear-bits) under clip mask ++ uint64x2_t ones = vandq_u64(m, v); ++ uint64x2_t zeros = vbicq_u64(m, v); ++ ++ // If both 128-bit variables are populated (non-zero) then return 1. ++ // For comparision purposes, first compact each var down to 32-bits. ++ uint32x2_t reduced = vpmax_u32(vqmovn_u64(ones), vqmovn_u64(zeros)); ++ ++ // if folding minimum is non-zero then both vars must be non-zero ++ return (vget_lane_u32(vpmin_u32(reduced, reduced), 0) != 0); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the CF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testc_si128 ++FORCE_INLINE int _mm_testc_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vbicq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testnzc_si128 ++#define _mm_testnzc_si128(a, b) _mm_test_mix_ones_zeros(a, b) ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the ZF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testz_si128 ++FORCE_INLINE int _mm_testz_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++/* SSE4.2 */ ++ ++static const uint16_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask16b[8] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++static const uint8_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask8b[16] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++ ++/* specify the source data format */ ++#define _SIDD_UBYTE_OPS 0x00 /* unsigned 8-bit characters */ ++#define _SIDD_UWORD_OPS 0x01 /* unsigned 16-bit characters */ ++#define _SIDD_SBYTE_OPS 0x02 /* signed 8-bit characters */ ++#define _SIDD_SWORD_OPS 0x03 /* signed 16-bit characters */ ++ ++/* specify the comparison operation */ ++#define _SIDD_CMP_EQUAL_ANY 0x00 /* compare equal any: strchr */ ++#define _SIDD_CMP_RANGES 0x04 /* compare ranges */ ++#define _SIDD_CMP_EQUAL_EACH 0x08 /* compare equal each: strcmp */ ++#define _SIDD_CMP_EQUAL_ORDERED 0x0C /* compare equal ordered */ ++ ++/* specify the polarity */ ++#define _SIDD_POSITIVE_POLARITY 0x00 ++#define _SIDD_MASKED_POSITIVE_POLARITY 0x20 ++#define _SIDD_NEGATIVE_POLARITY 0x10 /* negate results */ ++#define _SIDD_MASKED_NEGATIVE_POLARITY \ ++ 0x30 /* negate results only before end of string */ ++ ++/* specify the output selection in _mm_cmpXstri */ ++#define _SIDD_LEAST_SIGNIFICANT 0x00 ++#define _SIDD_MOST_SIGNIFICANT 0x40 ++ ++/* specify the output selection in _mm_cmpXstrm */ ++#define _SIDD_BIT_MASK 0x00 ++#define _SIDD_UNIT_MASK 0x40 ++ ++/* Pattern Matching for C macros. ++ * https://github.com/pfultz2/Cloak/wiki/C-Preprocessor-tricks,-tips,-and-idioms ++ */ ++ ++/* catenate */ ++#define SSE2NEON_PRIMITIVE_CAT(a, ...) a##__VA_ARGS__ ++#define SSE2NEON_CAT(a, b) SSE2NEON_PRIMITIVE_CAT(a, b) ++ ++#define SSE2NEON_IIF(c) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_IIF_, c) ++/* run the 2nd parameter */ ++#define SSE2NEON_IIF_0(t, ...) __VA_ARGS__ ++/* run the 1st parameter */ ++#define SSE2NEON_IIF_1(t, ...) t ++ ++#define SSE2NEON_COMPL(b) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_COMPL_, b) ++#define SSE2NEON_COMPL_0 1 ++#define SSE2NEON_COMPL_1 0 ++ ++#define SSE2NEON_DEC(x) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_DEC_, x) ++#define SSE2NEON_DEC_1 0 ++#define SSE2NEON_DEC_2 1 ++#define SSE2NEON_DEC_3 2 ++#define SSE2NEON_DEC_4 3 ++#define SSE2NEON_DEC_5 4 ++#define SSE2NEON_DEC_6 5 ++#define SSE2NEON_DEC_7 6 ++#define SSE2NEON_DEC_8 7 ++#define SSE2NEON_DEC_9 8 ++#define SSE2NEON_DEC_10 9 ++#define SSE2NEON_DEC_11 10 ++#define SSE2NEON_DEC_12 11 ++#define SSE2NEON_DEC_13 12 ++#define SSE2NEON_DEC_14 13 ++#define SSE2NEON_DEC_15 14 ++#define SSE2NEON_DEC_16 15 ++ ++/* detection */ ++#define SSE2NEON_CHECK_N(x, n, ...) n ++#define SSE2NEON_CHECK(...) SSE2NEON_CHECK_N(__VA_ARGS__, 0, ) ++#define SSE2NEON_PROBE(x) x, 1, ++ ++#define SSE2NEON_NOT(x) SSE2NEON_CHECK(SSE2NEON_PRIMITIVE_CAT(SSE2NEON_NOT_, x)) ++#define SSE2NEON_NOT_0 SSE2NEON_PROBE(~) ++ ++#define SSE2NEON_BOOL(x) SSE2NEON_COMPL(SSE2NEON_NOT(x)) ++#define SSE2NEON_IF(c) SSE2NEON_IIF(SSE2NEON_BOOL(c)) ++ ++#define SSE2NEON_EAT(...) ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++#define SSE2NEON_WHEN(c) SSE2NEON_IF(c)(SSE2NEON_EXPAND, SSE2NEON_EAT) ++ ++/* recursion */ ++/* deferred expression */ ++#define SSE2NEON_EMPTY() ++#define SSE2NEON_DEFER(id) id SSE2NEON_EMPTY() ++#define SSE2NEON_OBSTRUCT(...) __VA_ARGS__ SSE2NEON_DEFER(SSE2NEON_EMPTY)() ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++ ++#define SSE2NEON_EVAL(...) \ ++ SSE2NEON_EVAL1(SSE2NEON_EVAL1(SSE2NEON_EVAL1(__VA_ARGS__))) ++#define SSE2NEON_EVAL1(...) \ ++ SSE2NEON_EVAL2(SSE2NEON_EVAL2(SSE2NEON_EVAL2(__VA_ARGS__))) ++#define SSE2NEON_EVAL2(...) \ ++ SSE2NEON_EVAL3(SSE2NEON_EVAL3(SSE2NEON_EVAL3(__VA_ARGS__))) ++#define SSE2NEON_EVAL3(...) __VA_ARGS__ ++ ++#define SSE2NEON_REPEAT(count, macro, ...) \ ++ SSE2NEON_WHEN(count) \ ++ (SSE2NEON_OBSTRUCT(SSE2NEON_REPEAT_INDIRECT)()( \ ++ SSE2NEON_DEC(count), macro, \ ++ __VA_ARGS__) SSE2NEON_OBSTRUCT(macro)(SSE2NEON_DEC(count), \ ++ __VA_ARGS__)) ++#define SSE2NEON_REPEAT_INDIRECT() SSE2NEON_REPEAT ++ ++#define SSE2NEON_SIZE_OF_byte 8 ++#define SSE2NEON_NUMBER_OF_LANES_byte 16 ++#define SSE2NEON_SIZE_OF_word 16 ++#define SSE2NEON_NUMBER_OF_LANES_word 8 ++ ++#define SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE(i, type) \ ++ mtx[i] = vreinterpretq_m128i_##type(vceqq_##type( \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)), \ ++ vreinterpretq_##type##_m128i(a))); ++ ++#define SSE2NEON_FILL_LANE(i, type) \ ++ vec_b[i] = \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)); ++ ++#define PCMPSTR_RANGES(a, b, mtx, data_type_prefix, type_prefix, size, \ ++ number_of_lanes, byte_or_word) \ ++ do { \ ++ SSE2NEON_CAT( \ ++ data_type_prefix, \ ++ SSE2NEON_CAT(size, \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(number_of_lanes, _t)))) \ ++ vec_b[number_of_lanes]; \ ++ __m128i mask = SSE2NEON_IIF(byte_or_word)( \ ++ vreinterpretq_m128i_u16(vdupq_n_u16(0xff)), \ ++ vreinterpretq_m128i_u32(vdupq_n_u32(0xffff))); \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, SSE2NEON_FILL_LANE, \ ++ SSE2NEON_CAT(type_prefix, size))) \ ++ for (int i = 0; i < number_of_lanes; i++) { \ ++ mtx[i] = SSE2NEON_CAT(vreinterpretq_m128i_u, \ ++ size)(SSE2NEON_CAT(vbslq_u, size)( \ ++ SSE2NEON_CAT(vreinterpretq_u, \ ++ SSE2NEON_CAT(size, _m128i))(mask), \ ++ SSE2NEON_CAT(vcgeq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))), \ ++ SSE2NEON_CAT(vcleq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))))); \ ++ } \ ++ } while (0) ++ ++#define PCMPSTR_EQ(a, b, mtx, size, number_of_lanes) \ ++ do { \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, \ ++ SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE, \ ++ SSE2NEON_CAT(u, size))) \ ++ } while (0) ++ ++#define SSE2NEON_CMP_EQUAL_ANY_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_any(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_any_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_RANGES_IMPL(type, data_type, us, byte_or_word) \ ++ static int _sse2neon_cmp_##us##type##_ranges(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_RANGES( \ ++ a, b, mtx, data_type, us, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), byte_or_word); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_ranges_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_EQUAL_ORDERED_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_ordered(__m128i a, int la, \ ++ __m128i b, int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_ordered_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type))))( \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), la, lb, mtx); \ ++ } ++ ++static int _sse2neon_aggregate_equal_any_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ int tmp = _sse2neon_vaddvq_u8(vreinterpretq_u8_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_equal_any_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ int tmp = _sse2neon_vaddvq_u16(vreinterpretq_u16_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ANY(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ANY(SSE2NEON_CMP_EQUAL_ANY_) ++ ++static int _sse2neon_aggregate_ranges_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ __m128i tmp = vreinterpretq_m128i_u32( ++ vshrq_n_u32(vreinterpretq_u32_m128i(mtx[j]), 16)); ++ uint32x4_t vec_res = vandq_u32(vreinterpretq_u32_m128i(mtx[j]), ++ vreinterpretq_u32_m128i(tmp)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int t = vaddvq_u32(vec_res) ? 1 : 0; ++#else ++ uint64x2_t sumh = vpaddlq_u32(vec_res); ++ int t = vgetq_lane_u64(sumh, 0) + vgetq_lane_u64(sumh, 1); ++#endif ++ res |= (t << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_ranges_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ __m128i tmp = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 8)); ++ uint16x8_t vec_res = vandq_u16(vreinterpretq_u16_m128i(mtx[j]), ++ vreinterpretq_u16_m128i(tmp)); ++ int t = _sse2neon_vaddvq_u16(vec_res) ? 1 : 0; ++ res |= (t << j); ++ } ++ return res; ++} ++ ++#define SSE2NEON_CMP_RANGES_IS_BYTE 1 ++#define SSE2NEON_CMP_RANGES_IS_WORD 0 ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_RANGES(prefix) \ ++ prefix##IMPL(byte, uint, u, prefix##IS_BYTE) \ ++ prefix##IMPL(byte, int, s, prefix##IS_BYTE) \ ++ prefix##IMPL(word, uint, u, prefix##IS_WORD) \ ++ prefix##IMPL(word, int, s, prefix##IS_WORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_RANGES(SSE2NEON_CMP_RANGES_) ++ ++#undef SSE2NEON_CMP_RANGES_IS_BYTE ++#undef SSE2NEON_CMP_RANGES_IS_WORD ++ ++static int _sse2neon_cmp_byte_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint8x16_t mtx = ++ vceqq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x10000 - (1 << la); ++ int tb = 0x10000 - (1 << lb); ++ uint8x8_t vec_mask, vec0_lo, vec0_hi, vec1_lo, vec1_hi; ++ uint8x8_t tmp_lo, tmp_hi, res_lo, res_hi; ++ vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ vec0_lo = vtst_u8(vdup_n_u8(m0), vec_mask); ++ vec0_hi = vtst_u8(vdup_n_u8(m0 >> 8), vec_mask); ++ vec1_lo = vtst_u8(vdup_n_u8(m1), vec_mask); ++ vec1_hi = vtst_u8(vdup_n_u8(m1 >> 8), vec_mask); ++ tmp_lo = vtst_u8(vdup_n_u8(tb), vec_mask); ++ tmp_hi = vtst_u8(vdup_n_u8(tb >> 8), vec_mask); ++ ++ res_lo = vbsl_u8(vec0_lo, vdup_n_u8(0), vget_low_u8(mtx)); ++ res_hi = vbsl_u8(vec0_hi, vdup_n_u8(0), vget_high_u8(mtx)); ++ res_lo = vbsl_u8(vec1_lo, tmp_lo, res_lo); ++ res_hi = vbsl_u8(vec1_hi, tmp_hi, res_hi); ++ res_lo = vand_u8(res_lo, vec_mask); ++ res_hi = vand_u8(res_hi, vec_mask); ++ ++ int res = _sse2neon_vaddv_u8(res_lo) + (_sse2neon_vaddv_u8(res_hi) << 8); ++ return res; ++} ++ ++static int _sse2neon_cmp_word_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint16x8_t mtx = ++ vceqq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x100 - (1 << la); ++ int tb = 0x100 - (1 << lb); ++ uint16x8_t vec_mask = vld1q_u16(_sse2neon_cmpestr_mask16b); ++ uint16x8_t vec0 = vtstq_u16(vdupq_n_u16(m0), vec_mask); ++ uint16x8_t vec1 = vtstq_u16(vdupq_n_u16(m1), vec_mask); ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(tb), vec_mask); ++ mtx = vbslq_u16(vec0, vdupq_n_u16(0), mtx); ++ mtx = vbslq_u16(vec1, tmp, mtx); ++ mtx = vandq_u16(mtx, vec_mask); ++ return _sse2neon_vaddvq_u16(mtx); ++} ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE 1 ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD 0 ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IMPL(size, number_of_lanes, data_type) \ ++ static int _sse2neon_aggregate_equal_ordered_##size##x##number_of_lanes( \ ++ int bound, int la, int lb, __m128i mtx[16]) \ ++ { \ ++ int res = 0; \ ++ int m1 = SSE2NEON_IIF(data_type)(0x10000, 0x100) - (1 << la); \ ++ uint##size##x8_t vec_mask = SSE2NEON_IIF(data_type)( \ ++ vld1_u##size(_sse2neon_cmpestr_mask##size##b), \ ++ vld1q_u##size(_sse2neon_cmpestr_mask##size##b)); \ ++ uint##size##x##number_of_lanes##_t vec1 = SSE2NEON_IIF(data_type)( \ ++ vcombine_u##size(vtst_u##size(vdup_n_u##size(m1), vec_mask), \ ++ vtst_u##size(vdup_n_u##size(m1 >> 8), vec_mask)), \ ++ vtstq_u##size(vdupq_n_u##size(m1), vec_mask)); \ ++ uint##size##x##number_of_lanes##_t vec_minusone = vdupq_n_u##size(-1); \ ++ uint##size##x##number_of_lanes##_t vec_zero = vdupq_n_u##size(0); \ ++ for (int j = 0; j < lb; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size(vbslq_u##size( \ ++ vec1, vec_minusone, vreinterpretq_u##size##_m128i(mtx[j]))); \ ++ } \ ++ for (int j = lb; j < bound; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size( \ ++ vbslq_u##size(vec1, vec_minusone, vec_zero)); \ ++ } \ ++ unsigned SSE2NEON_IIF(data_type)(char, short) *ptr = \ ++ (unsigned SSE2NEON_IIF(data_type)(char, short) *) mtx; \ ++ for (int i = 0; i < bound; i++) { \ ++ int val = 1; \ ++ for (int j = 0, k = i; j < bound - i && k < bound; j++, k++) \ ++ val &= ptr[k * bound + j]; \ ++ res += val << i; \ ++ } \ ++ return res; \ ++ } ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(prefix) \ ++ prefix##IMPL(8, 16, prefix##IS_UBYTE) \ ++ prefix##IMPL(16, 8, prefix##IS_UWORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(SSE2NEON_AGGREGATE_EQUAL_ORDER_) ++ ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(SSE2NEON_CMP_EQUAL_ORDERED_) ++ ++#define SSE2NEON_CMPESTR_LIST \ ++ _(CMP_UBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_UWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_SBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_SWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_UBYTE_RANGES, cmp_ubyte_ranges) \ ++ _(CMP_UWORD_RANGES, cmp_uword_ranges) \ ++ _(CMP_SBYTE_RANGES, cmp_sbyte_ranges) \ ++ _(CMP_SWORD_RANGES, cmp_sword_ranges) \ ++ _(CMP_UBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_UWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_SBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_SWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_UBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_UWORD_EQUAL_ORDERED, cmp_word_equal_ordered) \ ++ _(CMP_SBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_SWORD_EQUAL_ORDERED, cmp_word_equal_ordered) ++ ++enum { ++#define _(name, func_suffix) name, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++typedef int (*cmpestr_func_t)(__m128i a, int la, __m128i b, int lb); ++static cmpestr_func_t _sse2neon_cmpfunc_table[] = { ++#define _(name, func_suffix) _sse2neon_##func_suffix, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++ ++FORCE_INLINE int _sse2neon_sido_negative(int res, int lb, int imm8, int bound) ++{ ++ switch (imm8 & 0x30) { ++ case _SIDD_NEGATIVE_POLARITY: ++ res ^= 0xffffffff; ++ break; ++ case _SIDD_MASKED_NEGATIVE_POLARITY: ++ res ^= (1 << lb) - 1; ++ break; ++ default: ++ break; ++ } ++ ++ return res & ((bound == 8) ? 0xFF : 0xFFFF); ++} ++ ++FORCE_INLINE int _sse2neon_clz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanReverse(&cnt, x)) ++ return 31 - cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_clz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanForward(&cnt, x)) ++ return cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_ctz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctzll(unsigned long long x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt; ++#if defined(SSE2NEON_HAS_BITSCAN64) ++ if (_BitScanForward64(&cnt, x)) ++ return (int) (cnt); ++#else ++ if (_BitScanForward(&cnt, (unsigned long) (x))) ++ return (int) cnt; ++ if (_BitScanForward(&cnt, (unsigned long) (x >> 32))) ++ return (int) (cnt + 32); ++#endif /* SSE2NEON_HAS_BITSCAN64 */ ++ return 64; ++#else /* assume GNU compatible compilers */ ++ return x != 0 ? __builtin_ctzll(x) : 64; ++#endif ++} ++ ++#define SSE2NEON_MIN(x, y) (x) < (y) ? (x) : (y) ++ ++#define SSE2NEON_CMPSTR_SET_UPPER(var, imm) \ ++ const int var = (imm & 0x01) ? 8 : 16 ++ ++#define SSE2NEON_CMPESTRX_LEN_PAIR(a, b, la, lb) \ ++ int tmp1 = la ^ (la >> 31); \ ++ la = tmp1 - (la >> 31); \ ++ int tmp2 = lb ^ (lb >> 31); \ ++ lb = tmp2 - (lb >> 31); \ ++ la = SSE2NEON_MIN(la, bound); \ ++ lb = SSE2NEON_MIN(lb, bound) ++ ++// Compare all pairs of character in string a and b, ++// then aggregate the result. ++// As the only difference of PCMPESTR* and PCMPISTR* is the way to calculate the ++// length of string, we use SSE2NEON_CMP{I,E}STRX_GET_LEN to get the length of ++// string a and b. ++#define SSE2NEON_COMP_AGG(a, b, la, lb, imm8, IE) \ ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); \ ++ SSE2NEON_##IE##_LEN_PAIR(a, b, la, lb); \ ++ int r2 = (_sse2neon_cmpfunc_table[imm8 & 0x0f])(a, la, b, lb); \ ++ r2 = _sse2neon_sido_negative(r2, lb, imm8, bound) ++ ++#define SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8) \ ++ return (r2 == 0) ? bound \ ++ : ((imm8 & 0x40) ? (31 - _sse2neon_clz(r2)) \ ++ : _sse2neon_ctz(r2)) ++ ++#define SSE2NEON_CMPSTR_GENERATE_MASK(dst) \ ++ __m128i dst = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ if (imm8 & 0x40) { \ ++ if (bound == 8) { \ ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(r2), \ ++ vld1q_u16(_sse2neon_cmpestr_mask16b)); \ ++ dst = vreinterpretq_m128i_u16(vbslq_u16( \ ++ tmp, vdupq_n_u16(-1), vreinterpretq_u16_m128i(dst))); \ ++ } else { \ ++ uint8x16_t vec_r2 = \ ++ vcombine_u8(vdup_n_u8(r2), vdup_n_u8(r2 >> 8)); \ ++ uint8x16_t tmp = \ ++ vtstq_u8(vec_r2, vld1q_u8(_sse2neon_cmpestr_mask8b)); \ ++ dst = vreinterpretq_m128i_u8( \ ++ vbslq_u8(tmp, vdupq_n_u8(-1), vreinterpretq_u8_m128i(dst))); \ ++ } \ ++ } else { \ ++ if (bound == 16) { \ ++ dst = vreinterpretq_m128i_u16( \ ++ vsetq_lane_u16(r2 & 0xffff, vreinterpretq_u16_m128i(dst), 0)); \ ++ } else { \ ++ dst = vreinterpretq_m128i_u8( \ ++ vsetq_lane_u8(r2 & 0xff, vreinterpretq_u8_m128i(dst), 0)); \ ++ } \ ++ } \ ++ return dst ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and returns 1 if b did not contain a null character and the ++// resulting mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestra ++FORCE_INLINE int _mm_cmpestra(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ int lb_cpy = lb; ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return !r2 & (lb_cpy > bound); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrc ++FORCE_INLINE int _mm_cmpestrc(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestri ++FORCE_INLINE int _mm_cmpestri(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrm ++FORCE_INLINE __m128i ++_mm_cmpestrm(__m128i a, int la, __m128i b, int lb, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestro ++FORCE_INLINE int _mm_cmpestro(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrs ++FORCE_INLINE int _mm_cmpestrs(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) lb; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrz ++FORCE_INLINE int _mm_cmpestrz(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) la; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return lb <= (bound - 1); ++} ++ ++#define SSE2NEON_CMPISTRX_LENGTH(str, len, imm8) \ ++ do { \ ++ if (imm8 & 0x01) { \ ++ uint16x8_t equal_mask_##str = \ ++ vceqq_u16(vreinterpretq_u16_m128i(str), vdupq_n_u16(0)); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 3; \ ++ } else { \ ++ uint16x8_t equal_mask_##str = vreinterpretq_u16_u8( \ ++ vceqq_u8(vreinterpretq_u8_m128i(str), vdupq_n_u8(0))); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 2; \ ++ } \ ++ } while (0) ++ ++#define SSE2NEON_CMPISTRX_LEN_PAIR(a, b, la, lb) \ ++ int la, lb; \ ++ do { \ ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); \ ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); \ ++ } while (0) ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if b did not contain a null character and the resulting ++// mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistra ++FORCE_INLINE int _mm_cmpistra(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return !r2 & (lb >= bound); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrc ++FORCE_INLINE int _mm_cmpistrc(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistri ++FORCE_INLINE int _mm_cmpistri(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrm ++FORCE_INLINE __m128i _mm_cmpistrm(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistro ++FORCE_INLINE int _mm_cmpistro(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrs ++FORCE_INLINE int _mm_cmpistrs(__m128i a, __m128i b, const int imm8) ++{ ++ (void) b; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int la; ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrz ++FORCE_INLINE int _mm_cmpistrz(__m128i a, __m128i b, const int imm8) ++{ ++ (void) a; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int lb; ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); ++ return lb <= (bound - 1); ++} ++ ++// Compares the 2 signed 64-bit integers in a and the 2 signed 64-bit integers ++// in b for greater than. ++FORCE_INLINE __m128i _mm_cmpgt_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vcgtq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ return vreinterpretq_m128i_s64(vshrq_n_s64( ++ vqsubq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)), ++ 63)); ++#endif ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 16-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u16 ++FORCE_INLINE uint32_t _mm_crc32_u16(uint32_t crc, uint16_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32ch %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32ch(crc, v); ++#else ++ crc = _mm_crc32_u8(crc, v & 0xff); ++ crc = _mm_crc32_u8(crc, (v >> 8) & 0xff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 32-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u32 ++FORCE_INLINE uint32_t _mm_crc32_u32(uint32_t crc, uint32_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cw %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cw(crc, v); ++#else ++ crc = _mm_crc32_u16(crc, v & 0xffff); ++ crc = _mm_crc32_u16(crc, (v >> 16) & 0xffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 64-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u64 ++FORCE_INLINE uint64_t _mm_crc32_u64(uint64_t crc, uint64_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cx %w[c], %w[c], %x[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cd((uint32_t) crc, v); ++#else ++ crc = _mm_crc32_u32((uint32_t) (crc), v & 0xffffffff); ++ crc = _mm_crc32_u32((uint32_t) (crc), (v >> 32) & 0xffffffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 8-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u8 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t crc, uint8_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cb %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cb(crc, v); ++#else ++ crc ^= v; ++#if defined(__ARM_FEATURE_CRYPTO) ++ // Adapted from: https://mary.rs/lab/crc32/ ++ // Barrent reduction ++ uint64x2_t orig = ++ vcombine_u64(vcreate_u64((uint64_t) (crc) << 24), vcreate_u64(0x0)); ++ uint64x2_t tmp = orig; ++ ++ // Polynomial P(x) of CRC32C ++ uint64_t p = 0x105EC76F1; ++ // Barrett Reduction (in bit-reflected form) constant mu_{64} = \lfloor ++ // 2^{64} / P(x) \rfloor = 0x11f91caf6 ++ uint64_t mu = 0x1dea713f1; ++ ++ // Multiply by mu_{64} ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(mu)); ++ // Divide by 2^{64} (mask away the unnecessary bits) ++ tmp = ++ vandq_u64(tmp, vcombine_u64(vcreate_u64(0xFFFFFFFF), vcreate_u64(0x0))); ++ // Multiply by P(x) (shifted left by 1 for alignment reasons) ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(p)); ++ // Subtract original from result ++ tmp = veorq_u64(tmp, orig); ++ ++ // Extract the 'lower' (in bit-reflected sense) 32 bits ++ crc = vgetq_lane_u32(vreinterpretq_u32_u64(tmp), 1); ++#else // Fall back to the generic table lookup approach ++ // Adapted from: https://create.stephan-brumme.com/crc32/ ++ // Apply half-byte comparision algorithm for the best ratio between ++ // performance and lookup table. ++ ++ // The lookup table just needs to store every 16th entry ++ // of the standard look-up table. ++ static const uint32_t crc32_half_byte_tbl[] = { ++ 0x00000000, 0x105ec76f, 0x20bd8ede, 0x30e349b1, 0x417b1dbc, 0x5125dad3, ++ 0x61c69362, 0x7198540d, 0x82f63b78, 0x92a8fc17, 0xa24bb5a6, 0xb21572c9, ++ 0xc38d26c4, 0xd3d3e1ab, 0xe330a81a, 0xf36e6f75, ++ }; ++ ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++#endif ++#endif ++ return crc; ++} ++ ++/* AES */ ++ ++#if !defined(__ARM_FEATURE_CRYPTO) && (!defined(_M_ARM64) || defined(__clang__)) ++/* clang-format off */ ++#define SSE2NEON_AES_SBOX(w) \ ++ { \ ++ w(0x63), w(0x7c), w(0x77), w(0x7b), w(0xf2), w(0x6b), w(0x6f), \ ++ w(0xc5), w(0x30), w(0x01), w(0x67), w(0x2b), w(0xfe), w(0xd7), \ ++ w(0xab), w(0x76), w(0xca), w(0x82), w(0xc9), w(0x7d), w(0xfa), \ ++ w(0x59), w(0x47), w(0xf0), w(0xad), w(0xd4), w(0xa2), w(0xaf), \ ++ w(0x9c), w(0xa4), w(0x72), w(0xc0), w(0xb7), w(0xfd), w(0x93), \ ++ w(0x26), w(0x36), w(0x3f), w(0xf7), w(0xcc), w(0x34), w(0xa5), \ ++ w(0xe5), w(0xf1), w(0x71), w(0xd8), w(0x31), w(0x15), w(0x04), \ ++ w(0xc7), w(0x23), w(0xc3), w(0x18), w(0x96), w(0x05), w(0x9a), \ ++ w(0x07), w(0x12), w(0x80), w(0xe2), w(0xeb), w(0x27), w(0xb2), \ ++ w(0x75), w(0x09), w(0x83), w(0x2c), w(0x1a), w(0x1b), w(0x6e), \ ++ w(0x5a), w(0xa0), w(0x52), w(0x3b), w(0xd6), w(0xb3), w(0x29), \ ++ w(0xe3), w(0x2f), w(0x84), w(0x53), w(0xd1), w(0x00), w(0xed), \ ++ w(0x20), w(0xfc), w(0xb1), w(0x5b), w(0x6a), w(0xcb), w(0xbe), \ ++ w(0x39), w(0x4a), w(0x4c), w(0x58), w(0xcf), w(0xd0), w(0xef), \ ++ w(0xaa), w(0xfb), w(0x43), w(0x4d), w(0x33), w(0x85), w(0x45), \ ++ w(0xf9), w(0x02), w(0x7f), w(0x50), w(0x3c), w(0x9f), w(0xa8), \ ++ w(0x51), w(0xa3), w(0x40), w(0x8f), w(0x92), w(0x9d), w(0x38), \ ++ w(0xf5), w(0xbc), w(0xb6), w(0xda), w(0x21), w(0x10), w(0xff), \ ++ w(0xf3), w(0xd2), w(0xcd), w(0x0c), w(0x13), w(0xec), w(0x5f), \ ++ w(0x97), w(0x44), w(0x17), w(0xc4), w(0xa7), w(0x7e), w(0x3d), \ ++ w(0x64), w(0x5d), w(0x19), w(0x73), w(0x60), w(0x81), w(0x4f), \ ++ w(0xdc), w(0x22), w(0x2a), w(0x90), w(0x88), w(0x46), w(0xee), \ ++ w(0xb8), w(0x14), w(0xde), w(0x5e), w(0x0b), w(0xdb), w(0xe0), \ ++ w(0x32), w(0x3a), w(0x0a), w(0x49), w(0x06), w(0x24), w(0x5c), \ ++ w(0xc2), w(0xd3), w(0xac), w(0x62), w(0x91), w(0x95), w(0xe4), \ ++ w(0x79), w(0xe7), w(0xc8), w(0x37), w(0x6d), w(0x8d), w(0xd5), \ ++ w(0x4e), w(0xa9), w(0x6c), w(0x56), w(0xf4), w(0xea), w(0x65), \ ++ w(0x7a), w(0xae), w(0x08), w(0xba), w(0x78), w(0x25), w(0x2e), \ ++ w(0x1c), w(0xa6), w(0xb4), w(0xc6), w(0xe8), w(0xdd), w(0x74), \ ++ w(0x1f), w(0x4b), w(0xbd), w(0x8b), w(0x8a), w(0x70), w(0x3e), \ ++ w(0xb5), w(0x66), w(0x48), w(0x03), w(0xf6), w(0x0e), w(0x61), \ ++ w(0x35), w(0x57), w(0xb9), w(0x86), w(0xc1), w(0x1d), w(0x9e), \ ++ w(0xe1), w(0xf8), w(0x98), w(0x11), w(0x69), w(0xd9), w(0x8e), \ ++ w(0x94), w(0x9b), w(0x1e), w(0x87), w(0xe9), w(0xce), w(0x55), \ ++ w(0x28), w(0xdf), w(0x8c), w(0xa1), w(0x89), w(0x0d), w(0xbf), \ ++ w(0xe6), w(0x42), w(0x68), w(0x41), w(0x99), w(0x2d), w(0x0f), \ ++ w(0xb0), w(0x54), w(0xbb), w(0x16) \ ++ } ++#define SSE2NEON_AES_RSBOX(w) \ ++ { \ ++ w(0x52), w(0x09), w(0x6a), w(0xd5), w(0x30), w(0x36), w(0xa5), \ ++ w(0x38), w(0xbf), w(0x40), w(0xa3), w(0x9e), w(0x81), w(0xf3), \ ++ w(0xd7), w(0xfb), w(0x7c), w(0xe3), w(0x39), w(0x82), w(0x9b), \ ++ w(0x2f), w(0xff), w(0x87), w(0x34), w(0x8e), w(0x43), w(0x44), \ ++ w(0xc4), w(0xde), w(0xe9), w(0xcb), w(0x54), w(0x7b), w(0x94), \ ++ w(0x32), w(0xa6), w(0xc2), w(0x23), w(0x3d), w(0xee), w(0x4c), \ ++ w(0x95), w(0x0b), w(0x42), w(0xfa), w(0xc3), w(0x4e), w(0x08), \ ++ w(0x2e), w(0xa1), w(0x66), w(0x28), w(0xd9), w(0x24), w(0xb2), \ ++ w(0x76), w(0x5b), w(0xa2), w(0x49), w(0x6d), w(0x8b), w(0xd1), \ ++ w(0x25), w(0x72), w(0xf8), w(0xf6), w(0x64), w(0x86), w(0x68), \ ++ w(0x98), w(0x16), w(0xd4), w(0xa4), w(0x5c), w(0xcc), w(0x5d), \ ++ w(0x65), w(0xb6), w(0x92), w(0x6c), w(0x70), w(0x48), w(0x50), \ ++ w(0xfd), w(0xed), w(0xb9), w(0xda), w(0x5e), w(0x15), w(0x46), \ ++ w(0x57), w(0xa7), w(0x8d), w(0x9d), w(0x84), w(0x90), w(0xd8), \ ++ w(0xab), w(0x00), w(0x8c), w(0xbc), w(0xd3), w(0x0a), w(0xf7), \ ++ w(0xe4), w(0x58), w(0x05), w(0xb8), w(0xb3), w(0x45), w(0x06), \ ++ w(0xd0), w(0x2c), w(0x1e), w(0x8f), w(0xca), w(0x3f), w(0x0f), \ ++ w(0x02), w(0xc1), w(0xaf), w(0xbd), w(0x03), w(0x01), w(0x13), \ ++ w(0x8a), w(0x6b), w(0x3a), w(0x91), w(0x11), w(0x41), w(0x4f), \ ++ w(0x67), w(0xdc), w(0xea), w(0x97), w(0xf2), w(0xcf), w(0xce), \ ++ w(0xf0), w(0xb4), w(0xe6), w(0x73), w(0x96), w(0xac), w(0x74), \ ++ w(0x22), w(0xe7), w(0xad), w(0x35), w(0x85), w(0xe2), w(0xf9), \ ++ w(0x37), w(0xe8), w(0x1c), w(0x75), w(0xdf), w(0x6e), w(0x47), \ ++ w(0xf1), w(0x1a), w(0x71), w(0x1d), w(0x29), w(0xc5), w(0x89), \ ++ w(0x6f), w(0xb7), w(0x62), w(0x0e), w(0xaa), w(0x18), w(0xbe), \ ++ w(0x1b), w(0xfc), w(0x56), w(0x3e), w(0x4b), w(0xc6), w(0xd2), \ ++ w(0x79), w(0x20), w(0x9a), w(0xdb), w(0xc0), w(0xfe), w(0x78), \ ++ w(0xcd), w(0x5a), w(0xf4), w(0x1f), w(0xdd), w(0xa8), w(0x33), \ ++ w(0x88), w(0x07), w(0xc7), w(0x31), w(0xb1), w(0x12), w(0x10), \ ++ w(0x59), w(0x27), w(0x80), w(0xec), w(0x5f), w(0x60), w(0x51), \ ++ w(0x7f), w(0xa9), w(0x19), w(0xb5), w(0x4a), w(0x0d), w(0x2d), \ ++ w(0xe5), w(0x7a), w(0x9f), w(0x93), w(0xc9), w(0x9c), w(0xef), \ ++ w(0xa0), w(0xe0), w(0x3b), w(0x4d), w(0xae), w(0x2a), w(0xf5), \ ++ w(0xb0), w(0xc8), w(0xeb), w(0xbb), w(0x3c), w(0x83), w(0x53), \ ++ w(0x99), w(0x61), w(0x17), w(0x2b), w(0x04), w(0x7e), w(0xba), \ ++ w(0x77), w(0xd6), w(0x26), w(0xe1), w(0x69), w(0x14), w(0x63), \ ++ w(0x55), w(0x21), w(0x0c), w(0x7d) \ ++ } ++/* clang-format on */ ++ ++/* X Macro trick. See https://en.wikipedia.org/wiki/X_Macro */ ++#define SSE2NEON_AES_H0(x) (x) ++static const uint8_t _sse2neon_sbox[256] = SSE2NEON_AES_SBOX(SSE2NEON_AES_H0); ++static const uint8_t _sse2neon_rsbox[256] = SSE2NEON_AES_RSBOX(SSE2NEON_AES_H0); ++#undef SSE2NEON_AES_H0 ++ ++/* x_time function and matrix multiply function */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#define SSE2NEON_XT(x) (((x) << 1) ^ ((((x) >> 7) & 1) * 0x1b)) ++#define SSE2NEON_MULTIPLY(x, y) \ ++ (((y & 1) * x) ^ ((y >> 1 & 1) * SSE2NEON_XT(x)) ^ \ ++ ((y >> 2 & 1) * SSE2NEON_XT(SSE2NEON_XT(x))) ^ \ ++ ((y >> 3 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))) ^ \ ++ ((y >> 4 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))))) ++#endif ++ ++// In the absence of crypto extensions, implement aesenc using regular NEON ++// intrinsics instead. See: ++// https://www.workofard.com/2017/01/accelerated-aes-for-the-arm64-linux-kernel/ ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/ and ++// for more information. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ /* shift rows */ ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ /* sub bytes */ ++ // Here, we separate the whole 256-bytes table into 4 64-bytes tables, and ++ // look up each of the table. After each lookup, we load the next table ++ // which locates at the next 64-bytes. In the meantime, the index in the ++ // table would be smaller than it was, so the index parameters of ++ // `vqtbx4q_u8()` need to be added the same constant as the loaded tables. ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ // 'w-0x40' equals to 'vsubq_u8(w, vdupq_n_u8(0x40))' ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ /* mix columns */ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ /* add round key */ ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A implementation for a table-based AES */ ++#define SSE2NEON_AES_B2W(b0, b1, b2, b3) \ ++ (((uint32_t) (b3) << 24) | ((uint32_t) (b2) << 16) | \ ++ ((uint32_t) (b1) << 8) | (uint32_t) (b0)) ++// muliplying 'x' by 2 in GF(2^8) ++#define SSE2NEON_AES_F2(x) ((x << 1) ^ (((x >> 7) & 1) * 0x011b /* WPOLY */)) ++// muliplying 'x' by 3 in GF(2^8) ++#define SSE2NEON_AES_F3(x) (SSE2NEON_AES_F2(x) ^ x) ++#define SSE2NEON_AES_U0(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F2(p), p, p, SSE2NEON_AES_F3(p)) ++#define SSE2NEON_AES_U1(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p, p) ++#define SSE2NEON_AES_U2(p) \ ++ SSE2NEON_AES_B2W(p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p) ++#define SSE2NEON_AES_U3(p) \ ++ SSE2NEON_AES_B2W(p, p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p)) ++ ++ // this generates a table containing every possible permutation of ++ // shift_rows() and sub_bytes() with mix_columns(). ++ static const uint32_t ALIGN_STRUCT(16) aes_table[4][256] = { ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U0), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U1), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U2), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U3), ++ }; ++#undef SSE2NEON_AES_B2W ++#undef SSE2NEON_AES_F2 ++#undef SSE2NEON_AES_F3 ++#undef SSE2NEON_AES_U0 ++#undef SSE2NEON_AES_U1 ++#undef SSE2NEON_AES_U2 ++#undef SSE2NEON_AES_U3 ++ ++ uint32_t x0 = _mm_cvtsi128_si32(a); // get a[31:0] ++ uint32_t x1 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); // get a[63:32] ++ uint32_t x2 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xAA)); // get a[95:64] ++ uint32_t x3 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); // get a[127:96] ++ ++ // finish the modulo addition step in mix_columns() ++ __m128i out = _mm_set_epi32( ++ (aes_table[0][x3 & 0xff] ^ aes_table[1][(x0 >> 8) & 0xff] ^ ++ aes_table[2][(x1 >> 16) & 0xff] ^ aes_table[3][x2 >> 24]), ++ (aes_table[0][x2 & 0xff] ^ aes_table[1][(x3 >> 8) & 0xff] ^ ++ aes_table[2][(x0 >> 16) & 0xff] ^ aes_table[3][x1 >> 24]), ++ (aes_table[0][x1 & 0xff] ^ aes_table[1][(x2 >> 8) & 0xff] ^ ++ aes_table[2][(x3 >> 16) & 0xff] ^ aes_table[3][x0 >> 24]), ++ (aes_table[0][x0 & 0xff] ^ aes_table[1][(x1 >> 8) & 0xff] ^ ++ aes_table[2][(x2 >> 16) & 0xff] ^ aes_table[3][x3 >> 24])); ++ ++ return _mm_xor_si128(out, RoundKey); ++#endif ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // inverse mix columns ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & ++ 0x1b); // muliplying 'v' by 2 in GF(2^8) ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ // inverse mix columns ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ // sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A implementation */ ++ uint8_t v[16] = { ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 0)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 5)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 10)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 15)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 4)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 9)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 14)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 3)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 8)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 13)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 2)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 7)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 12)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 1)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 6)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 11)], ++ }; ++ ++ return vreinterpretq_m128i_u8(vld1q_u8(v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (int i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++#if defined(__aarch64__) ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ uint8x16_t v = vreinterpretq_u8_m128i(a); ++ uint8x16_t w; ++ ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ // multiplying 'v' by 2 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ return vreinterpretq_m128i_u8(w); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ vst1q_u8((uint8_t *) v, vreinterpretq_u8_m128i(a)); ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)); ++#endif ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++// ++// Emits the Advanced Encryption Standard (AES) instruction aeskeygenassist. ++// This instruction generates a round key for AES encryption. See ++// https://kazakov.life/2017/11/01/cryptocurrency-mining-on-ios-devices/ ++// for details. ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++#if defined(__aarch64__) ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); ++ uint8x16_t v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), _a); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), _a - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), _a - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), _a - 0xc0); ++ ++ uint32x4_t v_u32 = vreinterpretq_u32_u8(v); ++ uint32x4_t ror_v = vorrq_u32(vshrq_n_u32(v_u32, 8), vshlq_n_u32(v_u32, 24)); ++ uint32x4_t ror_xor_v = veorq_u32(ror_v, vdupq_n_u32(rcon)); ++ ++ return vreinterpretq_m128i_u32(vtrn2q_u32(v_u32, ror_xor_v)); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint32_t X1 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); ++ uint32_t X3 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); ++ for (int i = 0; i < 4; ++i) { ++ ((uint8_t *) &X1)[i] = _sse2neon_sbox[((uint8_t *) &X1)[i]]; ++ ((uint8_t *) &X3)[i] = _sse2neon_sbox[((uint8_t *) &X3)[i]]; ++ } ++ return _mm_set_epi32(((X3 >> 8) | (X3 << 24)) ^ rcon, X3, ++ ((X1 >> 8) | (X1 << 24)) ^ rcon, X1); ++#endif ++} ++#undef SSE2NEON_AES_SBOX ++#undef SSE2NEON_AES_RSBOX ++ ++#if defined(__aarch64__) ++#undef SSE2NEON_XT ++#undef SSE2NEON_MULTIPLY ++#endif ++ ++#else /* __ARM_FEATURE_CRYPTO */ ++// Implements equivalent of 'aesenc' by combining AESE (with an empty key) and ++// AESMC and then manually applying the real key as an xor operation. This ++// unfortunately means an additional xor op; the compiler should be able to ++// optimize this away for repeated calls however. See ++// https://blog.michaelbrase.com/2018/05/08/emulating-x86-aes-intrinsics-on-armv8-a ++// for more details. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesmcq_u8(vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(b))); ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesimcq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return _mm_xor_si128(vreinterpretq_m128i_u8(vaeseq_u8( ++ vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ RoundKey); ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8( ++ veorq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++ return vreinterpretq_m128i_u8(vaesimcq_u8(vreinterpretq_u8_m128i(a))); ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst." ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++ // AESE does ShiftRows and SubBytes on A ++ uint8x16_t u8 = vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)); ++ ++#ifndef _MSC_VER ++ uint8x16_t dest = { ++ // Undo ShiftRows step from AESE and extract X1 and X3 ++ u8[0x4], u8[0x1], u8[0xE], u8[0xB], // SubBytes(X1) ++ u8[0x1], u8[0xE], u8[0xB], u8[0x4], // ROT(SubBytes(X1)) ++ u8[0xC], u8[0x9], u8[0x6], u8[0x3], // SubBytes(X3) ++ u8[0x9], u8[0x6], u8[0x3], u8[0xC], // ROT(SubBytes(X3)) ++ }; ++ uint32x4_t r = {0, (unsigned) rcon, 0, (unsigned) rcon}; ++ return vreinterpretq_m128i_u8(dest) ^ vreinterpretq_m128i_u32(r); ++#else ++ // We have to do this hack because MSVC is strictly adhering to the CPP ++ // standard, in particular C++03 8.5.1 sub-section 15, which states that ++ // unions must be initialized by their first member type. ++ ++ // As per the Windows ARM64 ABI, it is always little endian, so this works ++ __n128 dest{ ++ ((uint64_t) u8.n128_u8[0x4] << 0) | ((uint64_t) u8.n128_u8[0x1] << 8) | ++ ((uint64_t) u8.n128_u8[0xE] << 16) | ++ ((uint64_t) u8.n128_u8[0xB] << 24) | ++ ((uint64_t) u8.n128_u8[0x1] << 32) | ++ ((uint64_t) u8.n128_u8[0xE] << 40) | ++ ((uint64_t) u8.n128_u8[0xB] << 48) | ++ ((uint64_t) u8.n128_u8[0x4] << 56), ++ ((uint64_t) u8.n128_u8[0xC] << 0) | ((uint64_t) u8.n128_u8[0x9] << 8) | ++ ((uint64_t) u8.n128_u8[0x6] << 16) | ++ ((uint64_t) u8.n128_u8[0x3] << 24) | ++ ((uint64_t) u8.n128_u8[0x9] << 32) | ++ ((uint64_t) u8.n128_u8[0x6] << 40) | ++ ((uint64_t) u8.n128_u8[0x3] << 48) | ++ ((uint64_t) u8.n128_u8[0xC] << 56)}; ++ ++ dest.n128_u32[1] = dest.n128_u32[1] ^ rcon; ++ dest.n128_u32[3] = dest.n128_u32[3] ^ rcon; ++ ++ return dest; ++#endif ++} ++#endif ++ ++/* Others */ ++ ++// Perform a carry-less multiplication of two 64-bit integers, selected from a ++// and b according to imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clmulepi64_si128 ++FORCE_INLINE __m128i _mm_clmulepi64_si128(__m128i _a, __m128i _b, const int imm) ++{ ++ uint64x2_t a = vreinterpretq_u64_m128i(_a); ++ uint64x2_t b = vreinterpretq_u64_m128i(_b); ++ switch (imm & 0x11) { ++ case 0x00: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_low_u64(b))); ++ case 0x01: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_low_u64(b))); ++ case 0x10: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_high_u64(b))); ++ case 0x11: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_high_u64(b))); ++ default: ++ abort(); ++ } ++} ++ ++FORCE_INLINE unsigned int _sse2neon_mm_get_denormals_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_DENORMALS_ZERO_ON : _MM_DENORMALS_ZERO_OFF; ++} ++ ++// Count the number of bits set to 1 in unsigned 32-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u32 ++FORCE_INLINE int _mm_popcnt_u32(unsigned int a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcount) ++ return __builtin_popcount(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits(a); ++#else ++ return (int) vaddlv_u8(vcnt_u8(vcreate_u8((uint64_t) a))); ++#endif ++#else ++ uint32_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ ++ vst1_u32(&count, count32x2_val); ++ return count; ++#endif ++} ++ ++// Count the number of bits set to 1 in unsigned 64-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u64 ++FORCE_INLINE int64_t _mm_popcnt_u64(uint64_t a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcountll) ++ return __builtin_popcountll(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits64(a); ++#else ++ return (int64_t) vaddlv_u8(vcnt_u8(vcreate_u8(a))); ++#endif ++#else ++ uint64_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ uint64x1_t count64x1_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ count64x1_val = vpaddl_u32(count32x2_val); ++ vst1_u64(&count, count64x1_val); ++ return count; ++#endif ++} ++ ++FORCE_INLINE void _sse2neon_mm_set_denormals_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_DENORMALS_ZERO_MASK) == _MM_DENORMALS_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Return the current 64-bit value of the processor's time-stamp counter. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=rdtsc ++FORCE_INLINE uint64_t _rdtsc(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t val; ++ ++ /* According to ARM DDI 0487F.c, from Armv8.0 to Armv8.5 inclusive, the ++ * system counter is at least 56 bits wide; from Armv8.6, the counter ++ * must be 64 bits wide. So the system counter could be less than 64 ++ * bits wide and it is attributed with the flag 'cap_user_time_short' ++ * is true. ++ */ ++#if defined(_MSC_VER) ++ val = _ReadStatusReg(ARM64_SYSREG(3, 3, 14, 0, 2)); ++#else ++ __asm__ __volatile__("mrs %0, cntvct_el0" : "=r"(val)); ++#endif ++ ++ return val; ++#else ++ uint32_t pmccntr, pmuseren, pmcntenset; ++ // Read the user mode Performance Monitoring Unit (PMU) ++ // User Enable Register (PMUSERENR) access permissions. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c14, 0" : "=r"(pmuseren)); ++ if (pmuseren & 1) { // Allows reading PMUSERENR for user mode code. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c12, 1" : "=r"(pmcntenset)); ++ if (pmcntenset & 0x80000000UL) { // Is it counting? ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c13, 0" : "=r"(pmccntr)); ++ // The counter is set up to count every 64th cycle ++ return (uint64_t) (pmccntr) << 6; ++ } ++ } ++ ++ // Fallback to syscall as we can't enable PMUSERENR in user mode. ++ struct timeval tv; ++ gettimeofday(&tv, NULL); ++ return (uint64_t) (tv.tv_sec) * 1000000 + tv.tv_usec; ++#endif ++} ++ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma pop_macro("ALIGN_STRUCT") ++#pragma pop_macro("FORCE_INLINE") ++#endif ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma GCC pop_options ++#endif ++ ++#endif +diff --git c/lib/Complete-Striped-Smith-Waterman-Library/src/ssw.c i/lib/Complete-Striped-Smith-Waterman-Library/src/ssw.c +index 4c22bbb..2b17eb0 100644 +--- c/lib/Complete-Striped-Smith-Waterman-Library/src/ssw.c ++++ i/lib/Complete-Striped-Smith-Waterman-Library/src/ssw.c +@@ -35,7 +35,12 @@ + * + */ + ++#ifdef __ARM_NEON ++#include "sse2neon.h" ++#else + #include ++#endif ++ + #include + #include + #include +diff --git c/lib/Complete-Striped-Smith-Waterman-Library/src/ssw.h i/lib/Complete-Striped-Smith-Waterman-Library/src/ssw.h +index 42b1fd1..e1ca7e9 100644 +--- c/lib/Complete-Striped-Smith-Waterman-Library/src/ssw.h ++++ i/lib/Complete-Striped-Smith-Waterman-Library/src/ssw.h +@@ -14,7 +14,11 @@ + #include + #include + #include ++#ifdef __ARM_NEON ++#include "sse2neon.h" ++#else + #include ++#endif + + #ifdef __cplusplus + extern "C" { +diff --git c/src/AlignmentBuffer.cpp i/src/AlignmentBuffer.cpp +index 275a8e6..b030572 100644 +--- c/src/AlignmentBuffer.cpp ++++ i/src/AlignmentBuffer.cpp +@@ -2372,9 +2372,9 @@ void AlignmentBuffer::verbose(int const tabs, bool const newLine, char const * c + va_list args; + + va_start(args, s); +- if (args != 0) +- vfprintf(stderr, s, args); +- else ++// if (args != 0) ++// vfprintf(stderr, s, args); ++// else + fprintf(stderr, "%s", s); + va_end(args); + +diff --git c/src/ConvexAlignFast.cpp i/src/ConvexAlignFast.cpp +index c5be716..124f4b8 100644 +--- c/src/ConvexAlignFast.cpp ++++ i/src/ConvexAlignFast.cpp +@@ -8,7 +8,11 @@ + #include + #include + #include ++#ifdef __ARM_NEON ++#include "sse2neon.h" ++#else + #include ++#endif + + #include "IConfig.h" + +diff --git c/src/Logging.cpp i/src/Logging.cpp +index b3493da..f00c373 100644 +--- c/src/Logging.cpp ++++ i/src/Logging.cpp +@@ -94,9 +94,9 @@ void LogToConsole(bool color, int lvl, char const * const title, char const * co + + if (color) + SetConsoleColor((ConsoleColor) (Message + (lvl * 2))); +- if (args != 0) +- vfprintf(stderr, s, args); +- else ++// if (args != 0) ++// vfprintf(stderr, s, args); ++// else + fprintf(stderr, "%s", s); + if (color) + ResetConsoleColor(); From dccb0e8c318e64af1282720484d243ebd16cf4c7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 24 Jun 2024 02:20:24 -0400 Subject: [PATCH 0122/1514] Update nonpareil to 3.5.1 (#48672) * Update nonpareil to 3.5.0 * Update recipes/nonpareil/meta.yaml * Add zlib dependency * Update nonpareil to 3.5.1 --------- Co-authored-by: James A. Fellows Yates --- recipes/nonpareil/meta.yaml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/recipes/nonpareil/meta.yaml b/recipes/nonpareil/meta.yaml index e1fd940bc8553..472ab6daecd8f 100644 --- a/recipes/nonpareil/meta.yaml +++ b/recipes/nonpareil/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "3.4.1" %} -{% set sha256 = "a6ce050ca263364799c46b3796a0d1a5ed067631ac5944d013ffa7c8651949ee" %} +{% set version = "3.5.1" %} +{% set sha256 = "ef4df9eae4d12dd3e7ce43857b64805d0f923f34e29697dfc73a470c0ffbea11" %} package: name: nonpareil @@ -10,7 +10,9 @@ source: sha256: {{ sha256 }} build: - number: 5 + number: 0 + run_exports: + - {{ pin_subpackage('nonpareil', max_pin="x.x") }} script: | make cpp="${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}" make prefix="${PREFIX}" install @@ -20,8 +22,10 @@ requirements: - {{ compiler('cxx') }} host: - r-base + - zlib run: - r-base + - zlib test: commands: From 147372511ee7bfa9b9d65cacffd861905c16f63e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 24 Jun 2024 02:29:09 -0400 Subject: [PATCH 0123/1514] Update metabolabpy to 0.9.43 (#48678) --- recipes/metabolabpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/metabolabpy/meta.yaml b/recipes/metabolabpy/meta.yaml index daa9edef51440..a69bbbd662ee5 100644 --- a/recipes/metabolabpy/meta.yaml +++ b/recipes/metabolabpy/meta.yaml @@ -1,6 +1,6 @@ {% set name = "metabolabpy" %} -{% set version = "0.9.42" %} -{% set sha256 = "a5f76831a591a0fe4bc3565422f33c65d0fc5884d9adacfe690c19cd4d1a641b" %} +{% set version = "0.9.43" %} +{% set sha256 = "12bb9072b815599a6eb5a616ca686c1aec45ed831966fc71ddb1753ae453dee2" %} package: name: {{ name|lower }} From 6a8cd82f05665e076534b9e1dd54197887ccf952 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 24 Jun 2024 02:29:32 -0400 Subject: [PATCH 0124/1514] Update snakemake-storage-plugin-zenodo to 0.1.4 (#48679) --- recipes/snakemake-storage-plugin-zenodo/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-zenodo/meta.yaml b/recipes/snakemake-storage-plugin-zenodo/meta.yaml index 3d693cb0d92df..00cea297aad96 100644 --- a/recipes/snakemake-storage-plugin-zenodo/meta.yaml +++ b/recipes/snakemake-storage-plugin-zenodo/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-zenodo" %} -{% set version = "0.1.3" %} +{% set version = "0.1.4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_zenodo-{{ version }}.tar.gz - sha256: ae72ab8f866c72a63912a353923d976a7b5c91658fd9534f670691963be98e53 + sha256: f9c13b4476c8002ec15dcce69819ed65e0cca86595f6ac3ece19020c012c9526 build: noarch: python From 32aa10a9aae91a363c2843eedfb09fff1e991860 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 24 Jun 2024 07:41:29 -0400 Subject: [PATCH 0125/1514] Update abritamr to 1.0.18 (#48687) --- recipes/abritamr/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/abritamr/meta.yaml b/recipes/abritamr/meta.yaml index d632123115b80..62bda213a61cf 100644 --- a/recipes/abritamr/meta.yaml +++ b/recipes/abritamr/meta.yaml @@ -1,6 +1,6 @@ {% set name = "abritamr" %} -{% set version = "1.0.17" %} -{% set sha256 = "091ddb77afb2a37b4955312887d2ff32669ddc0512b38ab51896139d3c897970" %} +{% set version = "1.0.18" %} +{% set sha256 = "d7ea14271302177a4402f0b73ecb36212595960cbc3b2ce46cd50ac2af5b46f3" %} package: name: "{{ name|lower }}" @@ -11,7 +11,7 @@ source: sha256: "{{ sha256 }}" build: - number: 2 + number: 0 noarch: python entry_points: - abritamr=abritamr.abritamr:main From c3c39b141a3f80824f043a930668b7f2ea7c7321 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 24 Jun 2024 07:49:42 -0400 Subject: [PATCH 0126/1514] Update oakvar to 2.11.0 (#48693) --- recipes/oakvar/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/oakvar/meta.yaml b/recipes/oakvar/meta.yaml index 64ee60d2feac1..d32f45bef399b 100644 --- a/recipes/oakvar/meta.yaml +++ b/recipes/oakvar/meta.yaml @@ -1,6 +1,6 @@ {% set name = "OakVar" %} -{% set version = "2.10.4" %} -{% set sha256 = "87d31bd94ed991678c4c916ccd5f0fa0e450654308db301cabddcd76a9c465aa" %} +{% set version = "2.11.0" %} +{% set sha256 = "02491ed7d45489ceaf3e5ffa85ca983358ab182fd70fd50822e1c0a218a2c3a9" %} package: name: {{ name|lower }} From a88559fa32f86d6e0a5119f86134439f3be6322e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 24 Jun 2024 07:50:16 -0400 Subject: [PATCH 0127/1514] Update pybiolib to 1.1.2191 (#48690) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index e68b740063b4c..a8cfca9c90e77 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.1.2189" %} +{% set version = "1.1.2191" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 8f8045cf41adf026158551da0eb8c8c15f8954a7231208a4963df0d01b7f026f + sha256: 2afc368b04692e08a6c7c73be9260533c2c07cca180dc35ea53ef6ada6b261f9 build: noarch: python From c48ea7671c476d2d060c9fc4d6d44d6e87f7972e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 24 Jun 2024 08:02:35 -0400 Subject: [PATCH 0128/1514] Update vcfbub to 0.1.1 (#48660) * Update vcfbub to 0.1.1 * add run_exports * specify rust >=1.68 * add `clang` * clangdev * rust --------- Co-authored-by: mencian Co-authored-by: AndreaGuarracino --- recipes/vcfbub/build.sh | 5 ++--- recipes/vcfbub/meta.yaml | 15 ++++++++++----- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/recipes/vcfbub/build.sh b/recipes/vcfbub/build.sh index d98e6824bb5bf..d677b0b47511d 100644 --- a/recipes/vcfbub/build.sh +++ b/recipes/vcfbub/build.sh @@ -1,6 +1,5 @@ #!/bin/bash -euo -RUST_BACKTRACE=1 CARGO_HOME="${BUILD_PREFIX}/.cargo" cargo build --release - mkdir -p $PREFIX/bin -cp target/release/vcfbub $PREFIX/bin + +RUST_BACKTRACE=1 cargo install --verbose --path . --root ${PREFIX} diff --git a/recipes/vcfbub/meta.yaml b/recipes/vcfbub/meta.yaml index 92141774cd460..0a6b2d584da06 100644 --- a/recipes/vcfbub/meta.yaml +++ b/recipes/vcfbub/meta.yaml @@ -1,5 +1,5 @@ {% set name = "vcfbub" %} -{% set version = "0.1.0" %} +{% set version = "0.1.1" %} package: name: {{ name|lower }} @@ -7,15 +7,18 @@ package: source: url: https://github.com/pangenome/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz - sha256: bd8af0ed38ea11ee073bef1d611c78844341ff1c60961fc0d12eb26b5da27e09 + sha256: 7a952b52a98a7f3508c77a8851501b5185c9bff6cd456587ed5a5eba23f83099 build: - number: 2 + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} requirements: build: - {{ compiler('c') }} - - rust >=1.51 + - {{ compiler('rust') }} + - clangdev test: commands: @@ -24,8 +27,10 @@ test: about: home: https://github.com/pangenome/{{ name }} license: MIT + license_family: MIT license_file: LICENSE - summary: popping bubbles in vg deconstruct VCFs + summary: Popping bubbles in vg deconstruct VCFs + dev_url: https://github.com/pangenome/{{ name }} extra: recipe-maintainers: From 7fd96aa0222fe3a3d5a3a0b63dcacb4e3d1264e2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 24 Jun 2024 08:07:06 -0400 Subject: [PATCH 0129/1514] Update wfmash to 0.15.0 (#48686) * Update wfmash to 0.15.0 * - libdeflate * fix march * `libdeflate` * ls * cp instead of mv --------- Co-authored-by: AndreaGuarracino --- recipes/wfmash/build.sh | 18 +++++++++++------- recipes/wfmash/meta.yaml | 4 ++-- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/recipes/wfmash/build.sh b/recipes/wfmash/build.sh index 579fb82dd2ac1..90352644480cb 100644 --- a/recipes/wfmash/build.sh +++ b/recipes/wfmash/build.sh @@ -7,17 +7,21 @@ export C_INCLUDE_PATH=${PREFIX}/include export CPLUS_INCLUDE_PATH=${PREFIX}/include export CPP_INCLUDE_PATH=${PREFIX}/include export CXX_INCLUDE_PATH=${PREFIX}/include -sed -i 's/-march=native/-march=sandybridge/g' src/common/wflign/deps/WFA2-lib/Makefile +sed -i 's/-march=x86-64-v3/-march=sandybridge/g' src/common/wflign/deps/WFA2-lib/Makefile cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=Generic -DEXTRA_FLAGS='-march=sandybridge -Ofast' cmake --build build # Libraries aren't getting installed mkdir -p $PREFIX/lib -mv $SRC_DIR/build/lib/libwfa2cpp.so.0 $PREFIX/lib -mv $SRC_DIR/build/lib/libwfa2cpp.so $PREFIX/lib -mv $SRC_DIR/build/lib/libwfa2.so.0 $PREFIX/lib -mv $SRC_DIR/build/lib/libwfa2.so $PREFIX/lib + +ls $SRC_DIR/build/lib/* -lh + +# mv $SRC_DIR/build/lib/libwfa2cpp.so.0 $PREFIX/lib +# mv $SRC_DIR/build/lib/libwfa2cpp.so $PREFIX/lib +# mv $SRC_DIR/build/lib/libwfa2.so.0 $PREFIX/lib +# mv $SRC_DIR/build/lib/libwfa2.so $PREFIX/lib +cp $SRC_DIR/build/lib/libwfa2* $PREFIX/lib mkdir -p $PREFIX/bin -mv build/bin/* $PREFIX/bin -mv scripts/split_approx_mappings_in_chunks.py $PREFIX/bin +cp build/bin/* $PREFIX/bin +cp scripts/split_approx_mappings_in_chunks.py $PREFIX/bin diff --git a/recipes/wfmash/meta.yaml b/recipes/wfmash/meta.yaml index 2f5b97fa74937..d6375b570c2e6 100644 --- a/recipes/wfmash/meta.yaml +++ b/recipes/wfmash/meta.yaml @@ -1,5 +1,5 @@ {% set name = "wfmash" %} -{% set version = "0.14.0" %} +{% set version = "0.15.0" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: https://github.com/waveygang/{{ name }}/releases/download/v{{ version }}/{{ name }}-v{{ version }}.tar.gz - sha256: 2338fafd24f996b65ced7bd23b9835fbcc0ec72b4637fa0ac90d0e0b999663d6 + sha256: 57d5fb6f8edc80d4af643d457cece0b118913818beb0583b17c88d911af829d2 build: skip: True # [osx] From df7626583d487bf71a601dc636257f80bae2e6a2 Mon Sep 17 00:00:00 2001 From: heylf Date: Mon, 24 Jun 2024 16:23:45 +0200 Subject: [PATCH 0130/1514] Add spapros recipe (#48147) * Adding spapros recipe * changes to meta.yml * add path files --- recipes/spapros/meta.yaml | 74 ++++++++++++++++++++++ recipes/spapros/remove_pypi_latest_1.patch | 12 ++++ recipes/spapros/remove_pypi_latest_2.patch | 29 +++++++++ recipes/spapros/remove_pypi_latest_3.patch | 43 +++++++++++++ 4 files changed, 158 insertions(+) create mode 100644 recipes/spapros/meta.yaml create mode 100644 recipes/spapros/remove_pypi_latest_1.patch create mode 100644 recipes/spapros/remove_pypi_latest_2.patch create mode 100644 recipes/spapros/remove_pypi_latest_3.patch diff --git a/recipes/spapros/meta.yaml b/recipes/spapros/meta.yaml new file mode 100644 index 0000000000000..c1c01dfe35944 --- /dev/null +++ b/recipes/spapros/meta.yaml @@ -0,0 +1,74 @@ +{% set name = "spapros" %} +{% set version = "0.1.5" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/spapros-{{ version }}.tar.gz + sha256: 2fa7fcd64067ee2017b1447b75c38a395d367e781bc8cf7db4a40cd484e74c9e + patches: + - remove_pypi_latest_1.patch + - remove_pypi_latest_2.patch + - remove_pypi_latest_3.patch + +build: + entry_points: + - spapros = spapros.__main__:main + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} + + +requirements: + host: + - python >=3.9,<3.10 + - poetry-core >=1.0.0 + - pip + run: + - python >=3.9,<3.10 + - click >=8.0.1 + - rich >=10.1.0 + - pyyaml >=6.0.1 + - jinja2 >=3.0.1 + - numpy ==1.26.4 + - pandas >=1.3.0,<2.0.0 + - scanpy >=1.9.8 + - seaborn >=0.11.1 + - matplotlib-base >=3.6.3 + - leidenalg >=0.8.7 + - questionary >=1.10.0 + - xgboost >=1.6.1 + - ruamel.yaml >=0.17.10 + - jupyter-sphinx >=0.3.2 + - nox >=2023.04.22 + - nox-poetry >=1.0.3 + - pandoc >=2.1 + - bandit >=1.7.6 + - venndata >=0.1.0 + - pillow >=10.0.2 + - upsetplot >=0.7.0 + +test: + imports: + - spapros + commands: + - pip check + - spapros --help + - pandoc --version # Ensure pandoc is available + requires: + - pip + - pandoc + +about: + home: https://github.com/theislab/spapros + summary: Probe set selection for targeted spatial transcriptomics. + license: MIT + license_file: LICENSE + +extra: + recipe-maintainers: + - heylf diff --git a/recipes/spapros/remove_pypi_latest_1.patch b/recipes/spapros/remove_pypi_latest_1.patch new file mode 100644 index 0000000000000..7de50e8274a08 --- /dev/null +++ b/recipes/spapros/remove_pypi_latest_1.patch @@ -0,0 +1,12 @@ +--- PKG-INFO 2024-06-19 17:45:38.497619739 +0200 ++++ PKG-INFO 2024-06-19 18:13:40.677780681 +0200 +@@ -24,8 +24,6 @@ + Requires-Dist: nox-poetry (>=1.0.3) + Requires-Dist: numpy (>=1.21.1) + Requires-Dist: pandas (>=1.3.0,<2.0.0) +-Requires-Dist: pandoc (>=2.1) +-Requires-Dist: pypi-latest (>=0.1.0) + Requires-Dist: questionary (>=1.10.0) + Requires-Dist: rich (>=10.1.0) + Requires-Dist: ruamel.yaml (>=0.17.10) + diff --git a/recipes/spapros/remove_pypi_latest_2.patch b/recipes/spapros/remove_pypi_latest_2.patch new file mode 100644 index 0000000000000..f435ffff5ffa0 --- /dev/null +++ b/recipes/spapros/remove_pypi_latest_2.patch @@ -0,0 +1,29 @@ +--- pyproject.toml 2024-06-19 17:45:38.517620166 +0200 ++++ pyproject.toml 2024-06-19 18:13:47.801886617 +0200 +@@ -28,12 +28,10 @@ + leidenalg = ">=0.8.7" + questionary = ">=1.10.0" + xgboost = ">=1.6.1" +-pypi-latest = ">=0.1.0" + "ruamel.yaml" = ">=0.17.10" + jupyter-sphinx = ">=0.3.2" + nox = ">=2023.04.22" + nox-poetry = ">=1.0.3" +-pandoc = ">=2.1" + bandit = ">=1.7.6" + venndata = ">=0.1.0" + Pillow = ">=10.0.2" +@@ -51,12 +49,10 @@ + #leidenalg = "^0.8.7" + #questionary = "^1.10.0" + #xgboost = "^1.6.1" +-#pypi-latest = "^0.1.0" + #"ruamel.yaml" = "^0.17.10" + #jupyter-sphinx = "^0.3.2" + #nox = "^2023.04.22" + #nox-poetry = "^1.0.3" +-#pandoc = "^2.1" + #bandit = "^1.7.6" + #venndata = "^0.1.0" + #Pillow = "^10.0.2" + diff --git a/recipes/spapros/remove_pypi_latest_3.patch b/recipes/spapros/remove_pypi_latest_3.patch new file mode 100644 index 0000000000000..206432cfe1f87 --- /dev/null +++ b/recipes/spapros/remove_pypi_latest_3.patch @@ -0,0 +1,43 @@ +--- spapros/__main__.py 2024-06-19 18:26:41.062595569 +0200 ++++ spapros/__main__.py 2024-06-19 18:31:52.844067995 +0200 +@@ -5,7 +5,6 @@ + + import click + import rich.logging +-from pypi_latest import PypiLatest + from rich import print, traceback + + import spapros +@@ -13,8 +12,6 @@ + from spapros.selection.selection import run_selection + + log = logging.getLogger() +-spapros_pypi_latest = PypiLatest("spapros", spapros.__version__) +- + + def main() -> None: + traceback.install() +@@ -32,9 +29,6 @@ + ) + print("[bold blue]Run [green]spapros --help [blue]for an overview of all commands\n") + +- # Is the latest spapros version installed? Upgrade if not! +- if not spapros_pypi_latest.check_latest(): +- print("[bold blue]Run [green]spapros upgrade [blue]to get the latest version.") + spapros_cli(prog_name="spapros") + + +@@ -122,12 +116,5 @@ + parameters_file=parameters, + ) + +- +-@spapros_cli.command(short_help="Check for a newer version of ehrapy and upgrade if required.") +-def upgrade() -> None: +- """Checks whether the locally installed version of spapros is the latest & upgrades if not.""" +- spapros_pypi_latest.check_upgrade() +- +- + if __name__ == "__main__": + main() # pragma: no cover + From d3743f63665f67f861315b9da91a6a91f0c8cd6c Mon Sep 17 00:00:00 2001 From: richard-burhans Date: Mon, 24 Jun 2024 16:25:13 +0200 Subject: [PATCH 0131/1514] Attempting to compile against zlib 1.3 (#48696) * Attempting to compile against zlib 1.3 * being more explicit re: version number --------- Co-authored-by: Richard C. Burhans --- recipes/ucsc-fatotwobit/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/ucsc-fatotwobit/meta.yaml b/recipes/ucsc-fatotwobit/meta.yaml index 2b337b0122fe1..4a21a851c4e54 100644 --- a/recipes/ucsc-fatotwobit/meta.yaml +++ b/recipes/ucsc-fatotwobit/meta.yaml @@ -16,7 +16,7 @@ source: build: skip: True # [osx] - number: 1 + number: 2 ignore_run_exports: - libpng - libuuid @@ -35,7 +35,7 @@ requirements: - mysql-connector-c - openssl - libopenssl-static - - zlib + - zlib >=1.3.1,<2.0a0 run: - libpng - libuuid @@ -54,4 +54,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 From dc5c5d4731d84e596e38c94fe5ad38dd1d44ae75 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 24 Jun 2024 17:28:25 +0300 Subject: [PATCH 0132/1514] ont-modkit: add linux-aarch64 build (#48681) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/ont-modkit/meta.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/recipes/ont-modkit/meta.yaml b/recipes/ont-modkit/meta.yaml index 88d161239a12e..af34fb5a538b7 100644 --- a/recipes/ont-modkit/meta.yaml +++ b/recipes/ont-modkit/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("ont-modkit", max_pin="x.x") }} @@ -38,3 +38,7 @@ about: summary: "A bioinformatics tool for working with modified bases in Oxford Nanopore sequencing data." dev_url: "https://github.com/nanoporetech/modkit" doc_url: "https://nanoporetech.github.io/modkit/" + +extra: + additional-platforms: + - linux-aarch64 From f15561cbad00d1f96fb04881e9f5d9abb0080a74 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 24 Jun 2024 11:19:11 -0400 Subject: [PATCH 0133/1514] Update scoring-matrices to 0.2.2 (#48691) --- recipes/scoring-matrices/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/scoring-matrices/meta.yaml b/recipes/scoring-matrices/meta.yaml index cbc034c18b3fd..abd5f86254259 100644 --- a/recipes/scoring-matrices/meta.yaml +++ b/recipes/scoring-matrices/meta.yaml @@ -1,6 +1,6 @@ {% set name = "scoring-matrices" %} {% set module = "scoring_matrices" %} -{% set version = "0.2.1" %} +{% set version = "0.2.2" %} package: name: "{{ name|lower }}" @@ -8,10 +8,10 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: a678e047b63ca4043ec23f6f13752d6b0e78b7383a939cc6229d96f12055a511 + sha256: 2192df3f5f8ecd144071858cc287c958d2a842cdc8cc082c13755dfefe2f66b8 build: - number: 1 + number: 0 skip: True # [py < 36] script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir --use-pep517 -vvv" run_exports: From 2263f13d0a850233ccdd8de8cace926e79e6a15f Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 24 Jun 2024 18:19:34 +0300 Subject: [PATCH 0134/1514] pyprophet: add linux-aarch64 build (#48685) * pyprophet: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Try with Cython 0.x Signed-off-by: Martin Tzvetanov Grigorov * pyprophet: add typing-extensions as a runtime dependency Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/pyprophet/build_failure.linux-64.yaml | 105 ------------------ recipes/pyprophet/build_failure.osx-64.yaml | 105 ------------------ recipes/pyprophet/meta.yaml | 7 +- 3 files changed, 5 insertions(+), 212 deletions(-) delete mode 100644 recipes/pyprophet/build_failure.linux-64.yaml delete mode 100644 recipes/pyprophet/build_failure.osx-64.yaml diff --git a/recipes/pyprophet/build_failure.linux-64.yaml b/recipes/pyprophet/build_failure.linux-64.yaml deleted file mode 100644 index 875828829eff0..0000000000000 --- a/recipes/pyprophet/build_failure.linux-64.yaml +++ /dev/null @@ -1,105 +0,0 @@ -recipe_sha: 6602b267201208b9666efefd13f5bca891ab10e934fd108360b1f8b62947f6ec # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -category: compiler error -log: |- - CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc - CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pyprophet-2.2.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin - CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr - CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot - CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu - CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu - CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp - CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include - DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pyprophet-2.2.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include - GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc - GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar - GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm - GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib - HOST=x86_64-conda-linux-gnu - LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib - MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu - build_alias=x86_64-conda-linux-gnu - host_alias=x86_64-conda-linux-gnu - -BUILD=x86_64-conda_cos6-linux-gnu - -CONDA_BUILD_SYSROOT= - Processing $SRC_DIR - Preparing metadata (setup.py): started - Preparing metadata (setup.py): finished with status 'error' - [1;31merror[0m: [1msubprocess-exited-with-error[0m - - [31m[0m [32mpython setup.py egg_info[0m did not run successfully. - [31m[0m exit code: [1;36m1[0m - [31m>[0m [31m[43 lines of output][0m - [31m [0m /opt/conda/conda-bld/pyprophet_1718025849813/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.11/site-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /opt/conda/conda-bld/pyprophet_1718025849813/work/pyprophet/_optimized.pyx - [31m [0m tree = Parsing.p_module(s, pxd, full_module_name) - [31m [0m - [31m [0m Error compiling Cython file: - [31m [0m ------------------------------------------------------------ - [31m [0m ... - [31m [0m best_j = low - [31m [0m elif basis[high] == sp_i: - [31m [0m best_j = high - [31m [0m else: - [31m [0m while low < high - 1: - [31m [0m mid = (low high) / 2 - [31m [0m ^ - [31m [0m ------------------------------------------------------------ - [31m [0m - [31m [0m pyprophet/_optimized.pyx:58:39: Cannot assign type 'double' to 'size_t' - [31m [0m - [31m [0m Error compiling Cython file: - [31m [0m ------------------------------------------------------------ - [31m [0m ... - [31m [0m best_j = low - [31m [0m elif basis[high] == sp_i: - [31m [0m best_j = high - [31m [0m else: - [31m [0m while low < high - 1: - [31m [0m mid = (low high) / 2 - [31m [0m ^ - [31m [0m ------------------------------------------------------------ - [31m [0m - [31m [0m pyprophet/_optimized.pyx:86:39: Cannot assign type 'double' to 'size_t' - [31m [0m Traceback (most recent call last): - [31m [0m File "", line 2, in - [31m [0m File "", line 34, in - [31m [0m File "/opt/conda/conda-bld/pyprophet_1718025849813/work/setup.py", line 18, in - [31m [0m ext_modules = cythonize(ext_modules) - [31m [0m ^^^^^^^^^^^^^^^^^^^^^^ - [31m [0m File "/opt/conda/conda-bld/pyprophet_1718025849813/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.11/site-packages/Cython/Build/Dependencies.py", line 1154, in cythonize - [31m [0m cythonize_one(*args) - [31m [0m File "/opt/conda/conda-bld/pyprophet_1718025849813/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.11/site-packages/Cython/Build/Dependencies.py", line 1321, in cythonize_one - [31m [0m raise CompileError(None, pyx_file) - [31m [0m Cython.Compiler.Errors.CompileError: pyprophet/_optimized.pyx - [31m [0m Compiling pyprophet/_optimized.pyx because it changed. - [31m [0m [1/1] Cythonizing pyprophet/_optimized.pyx - [31m [0m [31m[end of output][0m - - [1;35mnote[0m: This error originates from a subprocess, and is likely not a problem with pip. - [1;31merror[0m: [1mmetadata-generation-failed[0m - - [31m[0m Encountered error while generating package metadata. - [31m>[0m See above for output. - - [1;35mnote[0m: This is an issue with the package mentioned above, not pip. - [1;36mhint[0m: See above for details. - Traceback (most recent call last): - File "/opt/conda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/pyprophet_1718025849813/work/conda_build.sh']' returned non-zero exit status 1. -# Last 100 lines of the build log. diff --git a/recipes/pyprophet/build_failure.osx-64.yaml b/recipes/pyprophet/build_failure.osx-64.yaml deleted file mode 100644 index ed99e2efa0521..0000000000000 --- a/recipes/pyprophet/build_failure.osx-64.yaml +++ /dev/null @@ -1,105 +0,0 @@ -recipe_sha: 6602b267201208b9666efefd13f5bca891ab10e934fd108360b1f8b62947f6ec # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -category: compiler error -log: |2- - Error compiling Cython file: - ------------------------------------------------------------ - ... - best_j = low - elif basis[high] == sp_i: - best_j = high - else: - while low < high - 1: - mid = (low high) / 2 - ^ - ------------------------------------------------------------ - - pyprophet/_optimized.pyx:86:39: Cannot assign type 'double' to 'size_t' - Traceback (most recent call last): - File "", line 2, in - File "", line 34, in - File "/opt/mambaforge/envs/bioconda/conda-bld/pyprophet_1718025344814/work/setup.py", line 18, in - ext_modules = cythonize(ext_modules) - ^^^^^^^^^^^^^^^^^^^^^^ - File "/opt/mambaforge/envs/bioconda/conda-bld/pyprophet_1718025344814/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.11/site-packages/Cython/Build/Dependencies.py", line 1154, in cythonize - cythonize_one(*args) - File "/opt/mambaforge/envs/bioconda/conda-bld/pyprophet_1718025344814/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.11/site-packages/Cython/Build/Dependencies.py", line 1321, in cythonize_one - raise CompileError(None, pyx_file) - Cython.Compiler.Errors.CompileError: pyprophet/_optimized.pyx - [end of output] - - note: This error originates from a subprocess, and is likely not a problem with pip. - error: metadata-generation-failed - - Encountered error while generating package metadata. - > See above for output. - - note: This is an issue with the package mentioned above, not pip. - hint: See above for details. - Extracting download - source tree in: /opt/mambaforge/envs/bioconda/conda-bld/pyprophet_1718025344814/work - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in - export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/pyprophet_1718025344814/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac - export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/pyprophet_1718025344814/_build_env - export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/pyprophet_1718025344814/work - INFO: activate_clang_osx-64.sh made the following environmental changes: - AR=x86_64-apple-darwin13.4.0-ar - AS=x86_64-apple-darwin13.4.0-as - sys.exit(execute()) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - CC=x86_64-apple-darwin13.4.0-clang - CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pyprophet-2.2.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms - CLANG=x86_64-apple-darwin13.4.0-clang - utils.check_call_env( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/pyprophet_1718025344814/work/conda_build.sh']' returned non-zero exit status 1. - CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin - CMAKE_PREFIX_PATH=:$PREFIX - CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 - CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 - CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 - DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pyprophet-2.2.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - HOST=x86_64-apple-darwin13.4.0 - INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool - LD=x86_64-apple-darwin13.4.0-ld - LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib - LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib - LIBTOOL=x86_64-apple-darwin13.4.0-libtool - LIPO=x86_64-apple-darwin13.4.0-lipo - MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib - NM=x86_64-apple-darwin13.4.0-nm - NMEDIT=x86_64-apple-darwin13.4.0-nmedit - OBJC=x86_64-apple-darwin13.4.0-clang - OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - OTOOL=x86_64-apple-darwin13.4.0-otool - PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff - RANLIB=x86_64-apple-darwin13.4.0-ranlib - REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding - SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk - SEGEDIT=x86_64-apple-darwin13.4.0-segedit - SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table - SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack - SIZE=x86_64-apple-darwin13.4.0-size - STRINGS=x86_64-apple-darwin13.4.0-strings - STRIP=x86_64-apple-darwin13.4.0-strip - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 - ac_cv_func_malloc_0_nonnull=yes - ac_cv_func_realloc_0_nonnull=yes - build_alias=x86_64-apple-darwin13.4.0 - host_alias=x86_64-apple-darwin13.4.0 - Processing $SRC_DIR - Preparing metadata (setup.py): started - Preparing metadata (setup.py): finished with status 'error' -# Last 100 lines of the build log. diff --git a/recipes/pyprophet/meta.yaml b/recipes/pyprophet/meta.yaml index 6e505ccbd1032..530f132015959 100644 --- a/recipes/pyprophet/meta.yaml +++ b/recipes/pyprophet/meta.yaml @@ -12,7 +12,7 @@ source: '{{ hash_type }}': '{{ hash_value }}' build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage(name, max_pin="x") }} entry_points: @@ -25,7 +25,7 @@ requirements: host: - python - pip - - cython + - cython <1 - numpy >=1.9 - pypdf2 run: @@ -44,6 +44,7 @@ requirements: - click - dataclasses - pypdf2 + - typing-extensions test: imports: @@ -57,6 +58,8 @@ about: license_family: BSD summary: Python reimplementation of mProphet peak scoring extra: + additional-platforms: + - linux-aarch64 container: # Click requires the extended container extended-base: true From 69b0c2ca4d6ad910dfd9727f462de8211a5677fc Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 24 Jun 2024 18:19:55 +0300 Subject: [PATCH 0135/1514] nonpareil: add linux-aarch64 build (#48684) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/nonpareil/meta.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/recipes/nonpareil/meta.yaml b/recipes/nonpareil/meta.yaml index 472ab6daecd8f..bb62fbdc90107 100644 --- a/recipes/nonpareil/meta.yaml +++ b/recipes/nonpareil/meta.yaml @@ -10,11 +10,11 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('nonpareil', max_pin="x.x") }} script: | - make cpp="${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}" + make -j ${CPU_COUNT} cpp="${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}" make prefix="${PREFIX}" install requirements: @@ -36,3 +36,7 @@ about: license: Artistic License 2.0 summary: Estimate average coverage and create curves for metagenomic datasets dev_url: https://github.com/lmrodriguezr/nonpareil + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 61f05e510b9ab70c8111395711cf3de17723a014 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 24 Jun 2024 18:20:06 +0300 Subject: [PATCH 0136/1514] tpmcalculator: add linux-aarch64 build (#48680) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/tpmcalculator/build.sh | 4 +- .../tpmcalculator/build_failure.osx-64.yaml | 104 ------------------ recipes/tpmcalculator/meta.yaml | 6 +- 3 files changed, 8 insertions(+), 106 deletions(-) delete mode 100644 recipes/tpmcalculator/build_failure.osx-64.yaml diff --git a/recipes/tpmcalculator/build.sh b/recipes/tpmcalculator/build.sh index 4c40c0865857d..f3f9d5e3549cb 100644 --- a/recipes/tpmcalculator/build.sh +++ b/recipes/tpmcalculator/build.sh @@ -1,8 +1,10 @@ #!/usr/bin/env bash +set -xe + export CPPFLAGS="-I$PREFIX/include/bamtools" export LDFLAGS="-L$PREFIX/lib -Wl,-rpath,$PREFIX/lib" sed -i.bak "s#gcc#${CC}#;s#g++#${CXX}#" nbproject/Makefile-Release.mk -make +make -j ${CPU_COUNT} cp bin/TPMCalculator $PREFIX/bin/ diff --git a/recipes/tpmcalculator/build_failure.osx-64.yaml b/recipes/tpmcalculator/build_failure.osx-64.yaml deleted file mode 100644 index 6b070ece14b79..0000000000000 --- a/recipes/tpmcalculator/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 3faa63bcf060e6dacc00629f337e94b84d15aff1a58cc1c9aa80b3de4f4a71ee # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |- - /opt/mambaforge/envs/bioconda/conda-bld/tpmcalculator_1717627549089/_build_env/bin/../include/c/v1/__config:1022:49: note: expanded from macro '_LIBCPP_DEPRECATED' - # define _LIBCPP_DEPRECATED __attribute__((__deprecated__)) - ^ - 2 warnings and 1 error generated. - make[2]: *** [nbproject/Makefile-Release.mk:119: build/Release/GNU-MacOSX/src/TextParser.o] Error 1 - make[1]: *** [nbproject/Makefile-Release.mk:85: .build-conf] Error 2 - make: *** [nbproject/Makefile-impl.mk:40: .build-impl] Error 2 - Extracting download - source tree in: /opt/mambaforge/envs/bioconda/conda-bld/tpmcalculator_1717627549089/work - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in - sys.exit(execute()) - export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/tpmcalculator_1717627549089/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_ - export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/tpmcalculator_1717627549089/_build_env - export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/tpmcalculator_1717627549089/work - INFO: activate_clang_osx-64.sh made the following environmental changes: - AR=x86_64-apple-darwin13.4.0-ar - AS=x86_64-apple-darwin13.4.0-as - CC=x86_64-apple-darwin13.4.0-clang - CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/tpmcalculator-0.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms - CLANG=x86_64-apple-darwin13.4.0-clang - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin - CMAKE_PREFIX_PATH=:$PREFIX - CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 - CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 - CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 - DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/tpmcalculator-0.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - HOST=x86_64-apple-darwin13.4.0 - INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool - LD=x86_64-apple-darwin13.4.0-ld - LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib - LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib - LIBTOOL=x86_64-apple-darwin13.4.0-libtool - LIPO=x86_64-apple-darwin13.4.0-lipo - MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib - NM=x86_64-apple-darwin13.4.0-nm - NMEDIT=x86_64-apple-darwin13.4.0-nmedit - OBJC=x86_64-apple-darwin13.4.0-clang - OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - OTOOL=x86_64-apple-darwin13.4.0-otool - PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/tpmcalculator_1717627549089/work/conda_build.sh']' returned non-zero exit status 2. - RANLIB=x86_64-apple-darwin13.4.0-ranlib - REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding - SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk - SEGEDIT=x86_64-apple-darwin13.4.0-segedit - SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table - SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack - SIZE=x86_64-apple-darwin13.4.0-size - STRINGS=x86_64-apple-darwin13.4.0-strings - STRIP=x86_64-apple-darwin13.4.0-strip - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 - ac_cv_func_malloc_0_nonnull=yes - ac_cv_func_realloc_0_nonnull=yes - build_alias=x86_64-apple-darwin13.4.0 - host_alias=x86_64-apple-darwin13.4.0 - INFO: activate_clangxx_osx-64.sh made the following environmental changes: - CLANGXX=x86_64-apple-darwin13.4.0-clang - CXX=x86_64-apple-darwin13.4.0-clang - CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/tpmcalculator-0.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/tpmcalculator-0.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - "make" -f nbproject/Makefile-Release.mk QMAKE= SUBPROJECTS= .build-conf - make[1]: Entering directory '$SRC_DIR' - "make" -f nbproject/Makefile-Release.mk bin/TPMCalculator - make[2]: Entering directory '$SRC_DIR' - mkdir -p build/Release/GNU-MacOSX/src - rm -f "build/Release/GNU-MacOSX/src/DiffExpIR.o.d" - x86_64-apple-darwin13.4.0-clang -g -I$PREFIX/include/bamtools -c -O2 -Iincludes -I../../bamtools/include/bamtools -std=c14 -MMD -MP -MF "build/Release/GNU-MacOSX/src/DiffExpIR.o.d" -o build/Release/GNU-MacOSX/src/DiffExpIR.o src/DiffExpIR.cpp - mkdir -p build/Release/GNU-MacOSX/src - rm -f "build/Release/GNU-MacOSX/src/FastaFactory.o.d" - x86_64-apple-darwin13.4.0-clang -g -I$PREFIX/include/bamtools -c -O2 -Iincludes -I../../bamtools/include/bamtools -std=c14 -MMD -MP -MF "build/Release/GNU-MacOSX/src/FastaFactory.o.d" -o build/Release/GNU-MacOSX/src/FastaFactory.o src/FastaFactory.cpp - mkdir -p build/Release/GNU-MacOSX/src - rm -f "build/Release/GNU-MacOSX/src/RandomFactory.o.d" - x86_64-apple-darwin13.4.0-clang -g -I$PREFIX/include/bamtools -c -O2 -Iincludes -I../../bamtools/include/bamtools -std=c14 -MMD -MP -MF "build/Release/GNU-MacOSX/src/RandomFactory.o.d" -o build/Release/GNU-MacOSX/src/RandomFactory.o src/RandomFactory.cpp - mkdir -p build/Release/GNU-MacOSX/src - rm -f "build/Release/GNU-MacOSX/src/ReadFactory.o.d" - x86_64-apple-darwin13.4.0-clang -g -I$PREFIX/include/bamtools -c -O2 -Iincludes -I../../bamtools/include/bamtools -std=c14 -MMD -MP -MF "build/Release/GNU-MacOSX/src/ReadFactory.o.d" -o build/Release/GNU-MacOSX/src/ReadFactory.o src/ReadFactory.cpp - mkdir -p build/Release/GNU-MacOSX/src - rm -f "build/Release/GNU-MacOSX/src/Stats.o.d" - x86_64-apple-darwin13.4.0-clang -g -I$PREFIX/include/bamtools -c -O2 -Iincludes -I../../bamtools/include/bamtools -std=c14 -MMD -MP -MF "build/Release/GNU-MacOSX/src/Stats.o.d" -o build/Release/GNU-MacOSX/src/Stats.o src/Stats.cpp - mkdir -p build/Release/GNU-MacOSX/src - rm -f "build/Release/GNU-MacOSX/src/TextParser.o.d" - x86_64-apple-darwin13.4.0-clang -g -I$PREFIX/include/bamtools -c -O2 -Iincludes -I../../bamtools/include/bamtools -std=c14 -MMD -MP -MF "build/Release/GNU-MacOSX/src/TextParser.o.d" -o build/Release/GNU-MacOSX/src/TextParser.o src/TextParser.cpp - make[2]: Leaving directory '$SRC_DIR' - make[1]: Leaving directory '$SRC_DIR' -# Last 100 lines of the build log. diff --git a/recipes/tpmcalculator/meta.yaml b/recipes/tpmcalculator/meta.yaml index 255ec183f6c4c..a4001bdd3824c 100644 --- a/recipes/tpmcalculator/meta.yaml +++ b/recipes/tpmcalculator/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 29aa167a35bb006b2e912d2f7a53f7a9a265308f919906336fc3fe2ee3abece6 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} @@ -33,3 +33,7 @@ about: home: https://github.com/ncbi/TPMCalculator license: Public Domain summary: TPMCalculator quantifies mRNA abundance directly from the alignments by parsing BAM files. + +extra: + additional-platforms: + - linux-aarch64 From a85110a8ab3288da683806414bc2a6dfad613868 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 24 Jun 2024 18:53:05 +0300 Subject: [PATCH 0137/1514] orthanq: add linux-aarch64 build (#48646) * orthanq: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * orthanq: Try with large VM for Linux ARM64 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- .circleci/config.yml | 2 +- recipes/orthanq/meta.yaml | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 4631c4c8db830..c4a3117dd6022 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -9,7 +9,7 @@ executors: linux-aarch64: machine: image: ubuntu-2204:current - resource_class: arm.medium + resource_class: arm.large jobs: # a basic unit of work in a run build_and_test: diff --git a/recipes/orthanq/meta.yaml b/recipes/orthanq/meta.yaml index 4acc8c439383f..5eb0d89f65ccb 100644 --- a/recipes/orthanq/meta.yaml +++ b/recipes/orthanq/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("orthanq", max_pin="x") }} @@ -56,3 +56,7 @@ about: license_family: MIT license_file: LICENSE summary: Uncertainty aware HLA typing and general haplotype quantification + +extra: + additional-platforms: + - linux-aarch64 From f87946ddf29b294cd9f72d59656da08ddedca3c3 Mon Sep 17 00:00:00 2001 From: Marcel Martin Date: Mon, 24 Jun 2024 17:54:54 +0200 Subject: [PATCH 0138/1514] Update mason: Compile from sources (instead of repackaging the binary) (#48688) --- recipes/mason/build.sh | 15 +++------------ recipes/mason/meta.yaml | 25 +++++++++++++++++-------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/recipes/mason/build.sh b/recipes/mason/build.sh index 8806cafa72109..5ab890811502e 100644 --- a/recipes/mason/build.sh +++ b/recipes/mason/build.sh @@ -1,14 +1,5 @@ #!/bin/bash -binaries="\ -mason_frag_sequencing \ -mason_genome \ -mason_materializer \ -mason_methylation \ -mason_simulator \ -mason_splicing \ -mason_variator \ -" -mkdir -p $PREFIX/bin - -for i in $binaries; do cp bin/$i $PREFIX/bin/$i && chmod a+x $PREFIX/bin/$i; done +cmake -S . -B build -DSEQAN_BUILD_SYSTEM=APP:mason2 -DCMAKE_INSTALL_PREFIX=${PREFIX} -DCMAKE_CXX_FLAGS=-D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION +cmake --build build/ -j ${CPU_COUNT} +cmake --install build/ diff --git a/recipes/mason/meta.yaml b/recipes/mason/meta.yaml index 651b696d7300e..20d0336079ed0 100644 --- a/recipes/mason/meta.yaml +++ b/recipes/mason/meta.yaml @@ -5,13 +5,25 @@ package: version: {{ version }} source: - - url: http://packages.seqan.de/mason2/mason2-{{ version }}-Mac-x86_64_sse4.zip # [osx] - sha256: d478b07effe6dd2056ead6cd816fa2b196ba1e2ffb9d6d8d98e24ad968834ee9 # [osx] - - url: http://packages.seqan.de/mason2/mason2-{{ version }}-Linux-x86_64_sse4.tar.xz # [linux] - sha256: 3879cdd71c39947d9fc731e820c9b926912e7688d070a8431c75681848eee688 # [linux] + # Note, version numbers for SeqAn and Mason are different. + # SeqAn 2.4.0 contains Mason 2.0.9 + - url: http://packages.seqan.de/seqan-src/seqan-src-2.4.0.tar.gz + sha256: d7084d17729214003e84818e0280a16f223c8f1c6a30eeef040c27e0c0047bd7 build: - number: 1 + number: 2 + run_exports: + - {{ pin_subpackage("mason", max_pin="x.y") }} + +requirements: + build: + - make + - {{ compiler('cxx') }} + - cmake + host: + - zlib + run: + - zlib test: commands: @@ -33,6 +45,3 @@ extra: identifiers: - biotools:mason - doi:10.1371/journal.pone.0049110 - skip-lints: - - should_be_noarch_generic - - should_not_be_noarch_source From 5aac3661827079e2080df897ad8bbc58c51d963c Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Mon, 24 Jun 2024 17:59:56 +0200 Subject: [PATCH 0139/1514] Remove patch (#48677) --- recipes/pathphynder/build.sh | 2 -- recipes/pathphynder/meta.yaml | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/recipes/pathphynder/build.sh b/recipes/pathphynder/build.sh index feffcf5d861ae..f76d464e2b5e7 100644 --- a/recipes/pathphynder/build.sh +++ b/recipes/pathphynder/build.sh @@ -1,5 +1,3 @@ #!/bin/bash -sed -i '1 i\#!/usr/bin/env Rscript\n' pathPhynder.R - cp pathPhynder.R $PREFIX/bin/pathPhynder diff --git a/recipes/pathphynder/meta.yaml b/recipes/pathphynder/meta.yaml index 47f7030eedda0..3a6b98cfae316 100644 --- a/recipes/pathphynder/meta.yaml +++ b/recipes/pathphynder/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 noarch: generic run_exports: - {{ pin_subpackage( 'pathphynder', max_pin='x.x') }} From 3da8bdaa4eb98e8a6e553f6b2b3e1f0b65386d99 Mon Sep 17 00:00:00 2001 From: mencian Date: Mon, 24 Jun 2024 11:03:50 -0500 Subject: [PATCH 0140/1514] revert aarch64 machine back to medium --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c4a3117dd6022..4631c4c8db830 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -9,7 +9,7 @@ executors: linux-aarch64: machine: image: ubuntu-2204:current - resource_class: arm.large + resource_class: arm.medium jobs: # a basic unit of work in a run build_and_test: From d20811706c4713646a0416d0abdbc75b4e748ee2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 24 Jun 2024 12:14:51 -0400 Subject: [PATCH 0141/1514] Update querynator to 0.5.0 (#48694) * Update querynator to 0.5.0 * pin python to <3.11 * fix typo --------- Co-authored-by: mencian --- recipes/querynator/meta.yaml | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/recipes/querynator/meta.yaml b/recipes/querynator/meta.yaml index 137289ca06a6d..b8401f5168b4e 100644 --- a/recipes/querynator/meta.yaml +++ b/recipes/querynator/meta.yaml @@ -1,5 +1,5 @@ {% set name = "querynator" %} -{% set version = "0.4.2" %} +{% set version = "0.5.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 869fec02e402428e68c522d0b906a6baaaa6cdecdcd83195f8d775e58ef635a4 + sha256: 01712498ecd492e67a85d9b5a809f2528ab7040ccc0170c2d06823eabef65814 build: number: 0 @@ -16,28 +16,29 @@ build: - {{ pin_subpackage('querynator', max_pin="x") }} entry_points: - querynator=querynator.__main__:run_querynator - script: "{{ PYTHON }} -m pip install . -vv" + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" requirements: host: - pip - - python + - python >=3.8,<3.11 run: - - civicpy =3.0.0 + - civicpy >=3.0.0 - click >=8.1.3 - httplib2 - - matplotlib-base =3.6.1 - - numpy =1.24.3 - - pandas =1.5.1 - - pretty_html_table =0.9.16 + - matplotlib-base >=3.6.1 + - numpy ==1.24.4 + - pandas >=1.5.1 + - pretty_html_table >=0.9.16 - pytest >=6.2.4 - - python + - python >=3.8,<3.11 - pyvcf3 >=1.0.3 - requests - requests-cache - sphinx >=5.3.0 - sphinx-rtd-theme - - upsetplot =0.8.0 + - upsetplot >=0.8.0 + - urllib3 <2 test: imports: From 33b93640e55399e2dce9af1ca525be201d6f473c Mon Sep 17 00:00:00 2001 From: ilhan-mutlu Date: Mon, 24 Jun 2024 18:21:04 +0200 Subject: [PATCH 0142/1514] Add CleanGeoStreamR package (#48514) * Add CleanGeoStreamR package * Update recipes/cleangeostreamr/meta.yaml Co-authored-by: M Bernt * Update recipes/cleangeostreamr/meta.yaml Co-authored-by: M Bernt * Update recipes/cleangeostreamr/meta.yaml Co-authored-by: M Bernt * Update recipes/cleangeostreamr/meta.yaml Co-authored-by: M Bernt * Update recipes/cleangeostreamr/meta.yaml build number was added. Co-authored-by: M Bernt * Update recipes/cleangeostreamr/meta.yaml Co-authored-by: M Bernt * Add files via upload * rename folder, use license_file * Update meta.yaml Unnecessary packages removed. * Update meta.yaml sha256 value modified * Update meta.yaml sha256 was modified. * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Remove build section comletely * Try capitalization * Update meta.yaml * Update meta.yaml * add script to call curate_chemical_data main * Update curate_chemical_data * Update meta.yaml * Create curate_spatial_data * Update meta.yaml * Update meta.yaml --------- Co-authored-by: M Bernt --- .../r-cleangeostreamr/curate_chemical_data | 4 + recipes/r-cleangeostreamr/curate_spatial_data | 4 + recipes/r-cleangeostreamr/meta.yaml | 91 +++++++++++++++++++ 3 files changed, 99 insertions(+) create mode 100755 recipes/r-cleangeostreamr/curate_chemical_data create mode 100644 recipes/r-cleangeostreamr/curate_spatial_data create mode 100644 recipes/r-cleangeostreamr/meta.yaml diff --git a/recipes/r-cleangeostreamr/curate_chemical_data b/recipes/r-cleangeostreamr/curate_chemical_data new file mode 100755 index 0000000000000..6006c6d169cf2 --- /dev/null +++ b/recipes/r-cleangeostreamr/curate_chemical_data @@ -0,0 +1,4 @@ +#!/bin/bash + +# forward the command line parameters to the main curate chemical data function +Rscript -e "library('CleanGeoStreamR'); CleanGeoStreamR::main_read_curate_chemical_data()" $@ diff --git a/recipes/r-cleangeostreamr/curate_spatial_data b/recipes/r-cleangeostreamr/curate_spatial_data new file mode 100644 index 0000000000000..7f97c6ca4094f --- /dev/null +++ b/recipes/r-cleangeostreamr/curate_spatial_data @@ -0,0 +1,4 @@ +#!/bin/bash + +# forward the command line parameters to the main curate spatial data function +Rscript -e "library('CleanGeoStreamR'); CleanGeoStreamR::main_read_curate_spatial_data()" $@ diff --git a/recipes/r-cleangeostreamr/meta.yaml b/recipes/r-cleangeostreamr/meta.yaml new file mode 100644 index 0000000000000..397cf3281f8cd --- /dev/null +++ b/recipes/r-cleangeostreamr/meta.yaml @@ -0,0 +1,91 @@ +{% set name = "cleangeostreamr" %} +{% set version = "1.0.0" %} + +package: + name: r-{{ name }} + version: {{ version }} + +source: + url: "https://codebase.helmholtz.cloud/department-computational-biology/software/{{ name }}/-/archive/v{{ version }}/{{ name }}-v{{ version }}.tar.gz" + sha256: 8d9b345d47e0739d9664119162c5aff1e3ca91c99c76be2a09baf7bd82c63258 + +build: + number: 0 + noarch: generic + rpaths: + - lib/R/lib/ + - lib/ + run_exports: + - {{ pin_subpackage("r-cleangeostreamr", max_pin="x.x") }} + script: | + cp $RECIPE_DIR/curate_chemical_data $PREFIX/bin/ + cp $RECIPE_DIR/curate_spatial_data $PREFIX/bin/ + R CMD INSTALL --build . + +requirements: + host: + - r-base + - r-devtools + - r-dt + - r-tidyverse + - r-optparse + - r-lubridate + - r-tidygeocoder + - r-readr + - r-r.utils + - r-rnaturalearth + - r-rnaturalearthdata + - r-sf + - r-sp + - r-leaflet + - r-jsonlite + - r-magrittr + - r-stringi + - r-dplyr + - r-ggplot2 + - r-stringr + - r-tibble + - r-tidyr + run: + - r-base + - r-devtools + - r-dt + - r-tidyverse + - r-optparse + - r-lubridate + - r-tidygeocoder + - r-readr + - r-r.utils + - r-rnaturalearth + - r-rnaturalearthdata + - r-sf + - r-sp + - r-leaflet + - r-jsonlite + - r-magrittr + - r-stringi + - r-dplyr + - r-ggplot2 + - r-stringr + - r-tibble + - r-tidyr + +test: + commands: + - $R -e "library('CleanGeoStreamR')" + - curate_chemical_data --help + - curate_spatial_data --help +about: + home: https://codebase.helmholtz.cloud/department-computational-biology/software/cleangeostreamr + license: GPL-3.0 + license_file: LICENSE.md + summary: Automatic curation of spatially annotated data. + description: | + CleanGeoStreamR package is designed to automate the curation of spatially annotated data which frequently present challenges due to inconsistencies, errors, and missing information. CleanGeoStreamR tackles these issues by providing a range of tools for preprocessing, curating, and finalizing spatial data, ensuring its accuracy and integrity. + +extra: + identifiers: + - biotools:cleangeostreamr + recipe-maintainers: + - ilhan-mutlu + From 09d93e36b0023a7cdb1e1a420ddee6598ffb5a53 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 24 Jun 2024 14:29:51 -0400 Subject: [PATCH 0143/1514] Update sigprofilerassignment to 0.1.7 (#48700) --- recipes/sigprofilerassignment/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sigprofilerassignment/meta.yaml b/recipes/sigprofilerassignment/meta.yaml index e13ca781d904e..63705800193c8 100644 --- a/recipes/sigprofilerassignment/meta.yaml +++ b/recipes/sigprofilerassignment/meta.yaml @@ -1,5 +1,5 @@ {% set name = "SigProfilerAssignment" %} -{% set version = "0.1.6" %} +{% set version = "0.1.7" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/SigProfilerAssignment-{{ version }}.tar.gz - sha256: 2fd2c317c03cbb0992b8e3083066e13bf366b9e58fa540a74b1ba33d28d0ac1d + sha256: f4522dccecb3a39792d4199aa730134c7cb9efa2f49e54d3d4b58915600fad02 build: noarch: python From e2768ad4d194b349a60f8a217208fac9369d9f69 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 24 Jun 2024 14:35:39 -0400 Subject: [PATCH 0144/1514] Update pangolin-data to 1.28 (#48698) --- recipes/pangolin-data/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pangolin-data/meta.yaml b/recipes/pangolin-data/meta.yaml index d2ecff1eadff7..5929703c67fcb 100644 --- a/recipes/pangolin-data/meta.yaml +++ b/recipes/pangolin-data/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.27" %} +{% set version = "1.28" %} package: name: pangolin-data @@ -6,7 +6,7 @@ package: source: url: https://github.com/cov-lineages/pangolin-data/archive/refs/tags/v{{ version }}.tar.gz - sha256: 6738e00e83c3267b32903796f5453ad837980b03c621c4ef7003610ac12a528b + sha256: a9b403f1266b4a2977478ddc25e2f2b089ce7a51c47f58aaec2372ee2126db17 build: number: 0 From e6992eae3e7fb911a64236c16ee85169b7afff22 Mon Sep 17 00:00:00 2001 From: Jonathan Manning Date: Mon, 24 Jun 2024 19:39:57 +0100 Subject: [PATCH 0145/1514] Bump shinyngs (#48699) --- recipes/r-shinyngs/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/r-shinyngs/meta.yaml b/recipes/r-shinyngs/meta.yaml index 475dbdab60a37..abf9a23891e2b 100644 --- a/recipes/r-shinyngs/meta.yaml +++ b/recipes/r-shinyngs/meta.yaml @@ -1,4 +1,4 @@ -{% set version = '1.8.8' %} +{% set version = '2.0.0' %} {% set d3heatmap_version = '0.6.1.2' %} package: @@ -7,7 +7,7 @@ package: source: - url: https://github.com/pinin4fjords/shinyngs/archive/refs/tags/v{{ version }}.tar.gz - sha256: "832562221f6eca5ed2571c7b3f177e906b01140a3ace2bb5e24ce1d4a87a8769" + sha256: "ed93c7e98212de219d1af8e668b5554306374dbe3d7f0d5b9f58a67f3ff9b2e1" folder: shinyngs - url: https://github.com/cran/d3heatmap/archive/refs/tags/{{ d3heatmap_version }}.tar.gz sha256: "bda213c4d335b199c38a48cb8e60027c929a8ba8ef6e14dc7de692967777c25a" From 80322101f66461deb0bd2878c8094529487fa881 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 24 Jun 2024 21:44:36 +0300 Subject: [PATCH 0146/1514] abyss & btllib: add linux-aarch64 build (#47185) * abyss & btllib: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * lrzip: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Update lrzip to 0.651 that supports Linux ARM64 Signed-off-by: Martin Tzvetanov Grigorov * Run autogen.sh for lrzip Signed-off-by: Martin Tzvetanov Grigorov * Add `autoconf` to the build requirements Signed-off-by: Martin Tzvetanov Grigorov * Add `automake` to the build requirements Signed-off-by: Martin Tzvetanov Grigorov * Add `libtool` to the build requirement Signed-off-by: Martin Tzvetanov Grigorov * Pass `--disable-asm` for Mac OSX Suggested-at: https://github.com/ckolivas/lrzip/pull/204#issuecomment-874298957 Signed-off-by: Martin Tzvetanov Grigorov * Disable build for osx * Bump build number --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/abyss/meta.yaml | 6 ++++-- recipes/btllib/meta.yaml | 2 ++ recipes/lrzip/build.sh | 20 ++++++++++++++++---- recipes/lrzip/meta.yaml | 25 ++++++++++++++++++++----- 4 files changed, 42 insertions(+), 11 deletions(-) diff --git a/recipes/abyss/meta.yaml b/recipes/abyss/meta.yaml index 2c43a55296162..4a7e8a2e62cde 100644 --- a/recipes/abyss/meta.yaml +++ b/recipes/abyss/meta.yaml @@ -6,9 +6,9 @@ package: version: {{ version }} build: - number: 3 + number: 4 run_exports: - - {{ pin_subpackage("abyss", max_pin="x") }} + - {{ pin_subpackage(name, max_pin="x") }} source: url: https://github.com/bcgsc/abyss/releases/download/{{ version }}/abyss-{{ version }}.tar.gz @@ -44,6 +44,8 @@ about: doc_url: https://github.com/bcgsc/abyss#readme extra: + additional-platforms: + - linux-aarch64 container: # openmpi needs ssh/rsh extended-base: true diff --git a/recipes/btllib/meta.yaml b/recipes/btllib/meta.yaml index 0551b925a7393..a22466fe79d65 100644 --- a/recipes/btllib/meta.yaml +++ b/recipes/btllib/meta.yaml @@ -59,6 +59,8 @@ about: dev_url: https://github.com/bcgsc/btllib extra: + additional-platforms: + - linux-aarch64 identifiers: - doi:10.21105/joss.04720 - doi:10.1093/bioadv/vbad162 diff --git a/recipes/lrzip/build.sh b/recipes/lrzip/build.sh index 25ac29916073a..0f24b56c4d11b 100644 --- a/recipes/lrzip/build.sh +++ b/recipes/lrzip/build.sh @@ -1,9 +1,21 @@ #!/bin/bash -export CFLAGS="-O2 -march=native -fomit-frame-pointer -I$PREFIX/include $CFLAGS" -export CXXFLAGS="-O2 -march=native -fomit-frame-pointer -I$PREFIX/include $CXXFLAGS" +set -xe -./configure --prefix=$PREFIX -make +export CFLAGS="-O2 -fomit-frame-pointer -I$PREFIX/include $CFLAGS" +export CXXFLAGS="-O2 -fomit-frame-pointer -I$PREFIX/include $CXXFLAGS" + +case $(uname) in + Darwin) + CONFIGURE_FLAGS="--disable-asm" # see https://github.com/ckolivas/lrzip/pull/204#issuecomment-874298957 + ;; + *) + CONFIGURE_FLAGS="" + ;; +esac + +./autogen.sh +./configure --prefix=$PREFIX ${CONFIGURE_FLAGS} +make --jobs=${CPU_COUNT} make install diff --git a/recipes/lrzip/meta.yaml b/recipes/lrzip/meta.yaml index ff919ef1f0fc0..df073ed1df8c8 100644 --- a/recipes/lrzip/meta.yaml +++ b/recipes/lrzip/meta.yaml @@ -1,26 +1,37 @@ +{% set name = "lrzip" %} +{% set version = "0.651" %} + package: - name: lrzip - version: "0.621" + name: {{ name }} + version: {{ version }} source: - url: http://ck.kolivas.org/apps/lrzip/lrzip-0.621.tar.bz2 - md5: 53a12cc4d19aa030d0ab7f0a21db2cfe + url: http://ck.kolivas.org/apps/{{ name }}/{{ name }}-{{ version }}.tar.xz + sha256: 48bd8decb097c1596c9b3777959cd3e332819434ed77a2823e65aa436f1602f9 build: - number: 7 + number: 0 + skip: True # [osx] + run_exports: + - {{ pin_subpackage('lrzip', max_pin="x.x") }} requirements: build: + - autoconf + - automake + - libtool - make - {{ compiler('cxx') }} host: - zlib - bzip2 - lzo + - lz4-c run: - bzip2 - zlib - lzo + - lz4-c test: commands: @@ -29,6 +40,7 @@ test: about: home: https://github.com/ckolivas/lrzip license: GPLv2 + license_file: COPYING summary: Long Range ZIP or Lzma RZIP. This is a compression program optimised for large files. The larger the file and the more memory you have, the better the compression advantage this will @@ -36,3 +48,6 @@ about: be chosen to be either size (much smaller than bzip2) or speed (much faster than bzip2). +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From c87dc555054d618f410be807303a936c3217681a Mon Sep 17 00:00:00 2001 From: Chris Jackson <55370301+chrisjackson-pellicle@users.noreply.github.com> Date: Tue, 25 Jun 2024 05:26:52 +1000 Subject: [PATCH 0147/1514] Update ParaGone to v1.1.0 and add osx build (#48640) * Update ParaGone to v1.1.0 and add osx build * Revert accidental change to hybpiper recipe * Bump build number. Add skip-lints for should_be_noarch_generic. * Fix duplicate key * clean up recipe * add python to run section too --------- Co-authored-by: mencian --- recipes/paragone/build.sh | 16 +++++----- recipes/paragone/meta.yaml | 63 +++++++++++++++++++++++--------------- 2 files changed, 48 insertions(+), 31 deletions(-) diff --git a/recipes/paragone/build.sh b/recipes/paragone/build.sh index 0c97c7d01f619..adf673f894251 100644 --- a/recipes/paragone/build.sh +++ b/recipes/paragone/build.sh @@ -1,9 +1,11 @@ -# Install paragone -$PYTHON -m pip install --no-deps --ignore-installed . +#!/bin/bash -euo -# Install HmmCleaner: -${PREFIX}/bin/perl ${PREFIX}/bin/cpanm Bio::MUST::Core --notest -${PREFIX}/bin/perl ${PREFIX}/bin/cpanm Bio::MUST::Drivers --notest -${PREFIX}/bin/perl ${PREFIX}/bin/cpanm --force Bio::MUST::Apps::HmmCleaner --notest +mkdir -p ${PREFIX}/bin -sed -i 's|#!/opt/miniconda3/miniconda3/bin/env perl|#!/usr/bin/env perl|' ${PREFIX}/bin/HmmCleaner.pl +# Install ParaGone +$PYTHON -m pip install --no-deps --no-build-isolation --no-cache-dir . -vvv + +# Install TAPER: +git clone https://github.com/chaoszhang/TAPER.git +chmod 755 TAPER/correction_multi.jl +cp -f TAPER/correction_multi.jl ${PREFIX}/bin diff --git a/recipes/paragone/meta.yaml b/recipes/paragone/meta.yaml index 1f6f1998f41c5..d41448dab4277 100644 --- a/recipes/paragone/meta.yaml +++ b/recipes/paragone/meta.yaml @@ -10,46 +10,61 @@ source: sha256: 4ed8a774418bf4a06ddde2088fc3331df5b212b1aeecdc9bc87272725aaf1928 build: - number: 0 - skip: True # [win or osx] + number: 1 + skip: True # [win] + entry_points: + - paragone = paragone.paragone_main:main run_exports: - {{ pin_subpackage('paragone', max_pin="x") }} requirements: - build: - - {{ compiler('c') }} - - setuptools host: - - make - - perl >=5.32 - - perl-app-cpanminus - - perl-moose >=2.2202 - - perl-net-ssleay - python <=3.9.16 + - pip run: - - biopython >=1.79 + - python <=3.9.16 + - biopython >=1.79 - clustalo >=1.2.4 - ete3 >=3.1.2 - fasttree + - julia - hmmer >=3.3.2 - - iqtree >=2.2.0.3 + - iqtree >=2.2.0.3 - mafft >=7.245 - - openmp >=8.0.1 - - perl >=5.32 - - perl-moose >=2.2202 + - llvm-openmp >=14.0.3 # [osx] + - openmp >=8.0.1 # [linux] - r-base >=4.0.3 - - treeshrink + - treeshrink - trimal >=1.4.1 test: - commands: - - paragone -v + imports: + - paragone.paragone_subparsers + - paragone.check_inputs + - paragone.align_and_clean + - paragone.alignment_to_tree + - paragone.trim_trees_treeshrink + - paragone.mask_tree_tips + - paragone.cut_deep_paralogs + - paragone.fasta_from_tree + - paragone.paralogy_report + - paragone.align_selected_and_tree + - paragone.prune_paralogs_mo + - paragone.prune_paralogs_rt + - paragone.prune_paralogs_mi + - paragone.strip_names_and_align + - paragone.utils about: home: "https://github.com/chrisjackson-pellicle/ParaGone" - license: GPL-3.0-or-later - license_family: GPL - license_file: LICENSE.txt - summary: > - Identify ortholog groups from a set of paralog sequences - from multiple taxa. + doc_url: "https://github.com/chrisjackson-pellicle/ParaGone/wiki" + license: "GPL-3.0-or-later" + license_family: GPL3 + license_file: "LICENSE.txt" + summary: "Identify ortholog groups from a set of paralog sequences from multiple taxa." + +extra: + recipe-maintainers: + - chrisjackson-pellicle + skip-lints: + - should_be_noarch_generic # Can not be noarch as selectors are required for llvm-openmp and openmp From 2f7921e86d4b90f2d4bfbfd62636ffefa17ecf0e Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 24 Jun 2024 22:54:10 +0300 Subject: [PATCH 0148/1514] wfmash: add linux-aarch64 build (#48703) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/wfmash/build.sh | 18 +++++++++++++++--- recipes/wfmash/meta.yaml | 4 +++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/recipes/wfmash/build.sh b/recipes/wfmash/build.sh index 90352644480cb..f2e401fb045a1 100644 --- a/recipes/wfmash/build.sh +++ b/recipes/wfmash/build.sh @@ -7,9 +7,21 @@ export C_INCLUDE_PATH=${PREFIX}/include export CPLUS_INCLUDE_PATH=${PREFIX}/include export CPP_INCLUDE_PATH=${PREFIX}/include export CXX_INCLUDE_PATH=${PREFIX}/include -sed -i 's/-march=x86-64-v3/-march=sandybridge/g' src/common/wflign/deps/WFA2-lib/Makefile -cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=Generic -DEXTRA_FLAGS='-march=sandybridge -Ofast' -cmake --build build + +case $(uname -m) in + x86_64) + EXTRA_FLAGS="-march=sandybridge -Ofast" + MARCH="sandybridge" + ;; + *) + EXTRA_FLAGS="-march=native -Ofast" + MARCH="native" + ;; +esac + +sed -i "s/-march=x86-64-v3/-march=${MARCH}/g" src/common/wflign/deps/WFA2-lib/Makefile +cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=Generic -DEXTRA_FLAGS="${EXTRA_FLAGS}" +cmake --build build -j ${CPU_COUNT} # Libraries aren't getting installed mkdir -p $PREFIX/lib diff --git a/recipes/wfmash/meta.yaml b/recipes/wfmash/meta.yaml index d6375b570c2e6..1274d4cb38164 100644 --- a/recipes/wfmash/meta.yaml +++ b/recipes/wfmash/meta.yaml @@ -13,7 +13,7 @@ build: skip: True # [osx] run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} - number: 0 + number: 1 requirements: build: @@ -43,6 +43,8 @@ about: summary: a pangenome-scale aligner extra: + additional-platforms: + - linux-aarch64 skip-lints: - uses_vcs_url recipe-maintainers: From 48409b889932c3714fd94ed743cfb7786b5b7ec9 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 24 Jun 2024 22:54:25 +0300 Subject: [PATCH 0149/1514] mason: add linux-aarch64 build (#48702) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/mason/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/mason/meta.yaml b/recipes/mason/meta.yaml index 20d0336079ed0..af35dcb259990 100644 --- a/recipes/mason/meta.yaml +++ b/recipes/mason/meta.yaml @@ -11,7 +11,7 @@ source: sha256: d7084d17729214003e84818e0280a16f223c8f1c6a30eeef040c27e0c0047bd7 build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage("mason", max_pin="x.y") }} @@ -42,6 +42,8 @@ about: license_file: LICENSE extra: + additional-platforms: + - linux-aarch64 identifiers: - biotools:mason - doi:10.1371/journal.pone.0049110 From 1373fda7c018352f58835c66dd1daeefa8e22adc Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 24 Jun 2024 22:54:33 +0300 Subject: [PATCH 0150/1514] vcfbub: add linux-aarch64 build (#48701) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/vcfbub/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/vcfbub/meta.yaml b/recipes/vcfbub/meta.yaml index 0a6b2d584da06..4cdeb5b6cc0ea 100644 --- a/recipes/vcfbub/meta.yaml +++ b/recipes/vcfbub/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 7a952b52a98a7f3508c77a8851501b5185c9bff6cd456587ed5a5eba23f83099 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} @@ -33,5 +33,7 @@ about: dev_url: https://github.com/pangenome/{{ name }} extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - AndreaGuarracino From 480368836544efef96ca5a9b584d59963610acad Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 24 Jun 2024 16:53:01 -0400 Subject: [PATCH 0151/1514] Update pbstarphase to 0.11.1 (#48704) --- recipes/pbstarphase/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pbstarphase/meta.yaml b/recipes/pbstarphase/meta.yaml index 4e610a001573a..b83581511286e 100644 --- a/recipes/pbstarphase/meta.yaml +++ b/recipes/pbstarphase/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pbstarphase" %} -{% set version = "0.11.0" %} -{% set sha256 = "17431f0527633d4e8bcfc4147563e203659d9491661bc448a9ae17348b232248" %} +{% set version = "0.11.1" %} +{% set sha256 = "49d5290663d21f2b7a5539a28288b7f84b31e621b8316ef31ee5b1ced5d19dc4" %} package: name: {{ name }} From a66c8a233c981fec12776b6d5dd8ae8248442ed7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 24 Jun 2024 23:53:31 -0400 Subject: [PATCH 0152/1514] Update oakvar to 2.11.1 (#48706) --- recipes/oakvar/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/oakvar/meta.yaml b/recipes/oakvar/meta.yaml index d32f45bef399b..8281a7181a604 100644 --- a/recipes/oakvar/meta.yaml +++ b/recipes/oakvar/meta.yaml @@ -1,6 +1,6 @@ {% set name = "OakVar" %} -{% set version = "2.11.0" %} -{% set sha256 = "02491ed7d45489ceaf3e5ffa85ca983358ab182fd70fd50822e1c0a218a2c3a9" %} +{% set version = "2.11.1" %} +{% set sha256 = "40945a3ecbed8cf71956f9efcad83c7fedeedd1ca6c59e036cee95faac6fa8db" %} package: name: {{ name|lower }} From 229a2fcbe044e110f1192f1d21b8faf6a8e286cf Mon Sep 17 00:00:00 2001 From: richard-burhans Date: Tue, 25 Jun 2024 08:24:34 +0200 Subject: [PATCH 0153/1514] adding segalign-galaxy so we no longer need a multi-package container (#48695) Co-authored-by: Richard C. Burhans --- recipes/segalign-galaxy/meta.yaml | 41 +++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 recipes/segalign-galaxy/meta.yaml diff --git a/recipes/segalign-galaxy/meta.yaml b/recipes/segalign-galaxy/meta.yaml new file mode 100644 index 0000000000000..4c89cace6e0b2 --- /dev/null +++ b/recipes/segalign-galaxy/meta.yaml @@ -0,0 +1,41 @@ +{% set version = "0.1.2.7" %} + +package: + name: segalign-galaxy + version: {{ version }} + +build: + number: 0 + noarch: generic + run_exports: + - {{ pin_compatible('segalign-galaxy', max_pin='x.x') }} + +requirements: + run: + - segalign-full ={{ version }} + - bashlex + - python =3.12 + +test: + commands: + - segalign --help + - segalign_repeat_masker --help + - lastz --version 2>&1 | grep released + - which faToTwoBit + +about: + home: https://github.com/gsneha26/SegAlign + summary: 'SegAlign: A Scalable GPU-Based Whole Genome Aligner' + description: | + SegAlign is a Scalable GPU System for Pairwise Whole Genome + Alignments based on LASTZ's seed-filter-extend paradigm. + license: MIT + license_family: MIT + license_url: https://github.com/gsneha26/SegAlign/blob/main/LICENSE + doc_url: https://github.com/gsneha26/SegAlign/blob/main/README.md + dev_url: https://github.com/richard-burhans/SegAlign/blob/scoring/README.md + +extra: + identifiers: + - doi:10.1109/SC41405.2020.00043 + - doi:10.5281/zenodo.3880947 From 88721543cb801ef1a4e08bdad596971824a6c35b Mon Sep 17 00:00:00 2001 From: Taki Taito <140215747+aki2274@users.noreply.github.com> Date: Tue, 25 Jun 2024 16:56:25 +0900 Subject: [PATCH 0154/1514] Add KOnezumiAID (#48692) --- recipes/konezumiaid/meta.yaml | 50 +++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 recipes/konezumiaid/meta.yaml diff --git a/recipes/konezumiaid/meta.yaml b/recipes/konezumiaid/meta.yaml new file mode 100644 index 0000000000000..ef6dcd8fdba49 --- /dev/null +++ b/recipes/konezumiaid/meta.yaml @@ -0,0 +1,50 @@ +{% set name = "KOnezumiAID" %} +{% set version = "0.2.2" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/konezumiaid-{{ version }}.tar.gz + sha256: 8b3ba715ded372c630d8c6e42f03cc8a950f0c44394f1a30e9c26ea82815c884 + +build: + entry_points: + - konezumiaid = konezumiaid.main:main + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + run_exports: + - {{ pin_subpackage('konezumiaid', max_pin="x.x") }} + +requirements: + host: + - python >=3.9,<4.0 + - poetry-core + - pip + run: + - python >=3.9.0,<4.0.0 + - numpy 1.26.0 + - pandas 2.2.2 + - primer3-py >=2.0.1,<3.0.0 + - bedtools + - bowtie + +test: + imports: + - konezumiaid + commands: + - konezumiaid --help + requires: + - pip + +about: + home: https://github.com/aki2274/KOnezumi-AID + summary: This is used for automatically designing gRNAs for genome editing by Target-AID. + license: MIT + license_file: LICENSE + +extra: + recipe-maintainers: + - aki2274 From bcd02ca233397a66fd4e8092305b0b53cd901505 Mon Sep 17 00:00:00 2001 From: Tom Stanton Date: Tue, 25 Jun 2024 17:57:13 +1000 Subject: [PATCH 0155/1514] Update meta.yaml (#48708) --- recipes/kaptive/meta.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/kaptive/meta.yaml b/recipes/kaptive/meta.yaml index 9d4083f024769..8d9a87e3e7b3c 100644 --- a/recipes/kaptive/meta.yaml +++ b/recipes/kaptive/meta.yaml @@ -1,5 +1,5 @@ {% set name = "kaptive" %} -{% set version = "3.0.0b4" %} +{% set version = "3.0.0b5" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/kaptive-{{ version }}.tar.gz - sha256: c8e6829bfbb1e4941cf24ae604c4e7ae256cc5b165be3e517cf1b60c309a97ba + sha256: d1462db66b22b6c9f42922df6ba05526cb08a453e311e6da2704603e60cb84c3 build: entry_points: @@ -26,12 +26,14 @@ requirements: - python >=3.9 - biopython >=1.83 - dna_features_viewer + - minimap2 test: imports: - kaptive commands: - kaptive --help + - minimap2 --help about: home: "https://kaptive.readthedocs.io/en/latest" From 016eef7426b95b33a2025e892988d33da4ac8ad0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 25 Jun 2024 03:59:23 -0400 Subject: [PATCH 0156/1514] Update hybpiper to 2.1.8 (#48707) --- recipes/hybpiper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/hybpiper/meta.yaml b/recipes/hybpiper/meta.yaml index 6c54f977823e5..5ca91ed5b792f 100644 --- a/recipes/hybpiper/meta.yaml +++ b/recipes/hybpiper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "hybpiper" %} -{% set version = "2.1.7" %} +{% set version = "2.1.8" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: "https://github.com/mossmatters/HybPiper/archive/refs/tags/v{{ version }}.tar.gz" - sha256: 5532767bb92a524f97ef05808cba39090e034ab3e1d48c5307ed812d3909b018 + sha256: ff358a560d6dbbec4fdac67457451cb4e6ca21b8661044c43902aa013d805e47 build: number: 0 From 2b96a792318fb06dfce84b010041a7f7ab9a6ddf Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 25 Jun 2024 06:31:36 -0400 Subject: [PATCH 0157/1514] Update tandem-genotypes to 1.9.2 (#48710) --- recipes/tandem-genotypes/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/tandem-genotypes/meta.yaml b/recipes/tandem-genotypes/meta.yaml index c9fee5ae68620..49c0d2c5bfffe 100644 --- a/recipes/tandem-genotypes/meta.yaml +++ b/recipes/tandem-genotypes/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.9.1" %} +{% set version = "1.9.2" %} package: name: tandem-genotypes @@ -6,7 +6,7 @@ package: source: url: https://github.com/mcfrith/tandem-genotypes/archive/{{ version }}.tar.gz - sha256: e0322c1adb59d152d6dd2bc0305f1da9f7ae1769f9c5016e1cfc1cbbc459b9f4 + sha256: 5f6721d4aed4dd1d8bba1ca14157d6085722eb7d2bb168f9a6c47b2afb55bff1 build: number: 0 From e6be42411b53bd4cb30587278fcb18429baf859b Mon Sep 17 00:00:00 2001 From: Boas van der Putten <32385917+boasvdp@users.noreply.github.com> Date: Tue, 25 Jun 2024 12:36:38 +0200 Subject: [PATCH 0158/1514] Add distle (#48689) * add distle * add maintainers * fix * Apply suggestions from code review * Add license_family * The license_file is not included in the sources tarball * add license file --------- Co-authored-by: Martin Grigorov --- recipes/distle/build.sh | 8 ++++++++ recipes/distle/meta.yaml | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 recipes/distle/build.sh create mode 100644 recipes/distle/meta.yaml diff --git a/recipes/distle/build.sh b/recipes/distle/build.sh new file mode 100644 index 0000000000000..a8d1055b51f38 --- /dev/null +++ b/recipes/distle/build.sh @@ -0,0 +1,8 @@ +#!/bin/bash -e + +# Add workaround for SSH-based Git connections from Rust/cargo. See https://github.com/rust-lang/cargo/issues/2078 for details. +# We set CARGO_HOME because we don't pass on HOME to conda-build, thus rendering the default "${HOME}/.cargo" defunct. +export CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_HOME="$(pwd)/.cargo" + +# build statically linked binary with Rust +RUST_BACKTRACE=1 C_INCLUDE_PATH=$PREFIX/include LIBRARY_PATH=$PREFIX/lib cargo install --verbose --root $PREFIX --path . \ No newline at end of file diff --git a/recipes/distle/meta.yaml b/recipes/distle/meta.yaml new file mode 100644 index 0000000000000..1cfe3807ac8aa --- /dev/null +++ b/recipes/distle/meta.yaml @@ -0,0 +1,38 @@ +{% set version = "0.1.1" %} +{% set sha256 = "fd637102b8d305a50e76c3b2e8a88ffaa417a861ec23704c39902e5423a2e20e" %} + +package: + name: distle + version: {{ version }} + +build: + number: 0 + run_exports: + - {{ pin_subpackage('distle', max_pin="x.x") }} + +source: + url: https://github.com/KHajji/distle/archive/v{{ version }}.tar.gz + sha256: {{ sha256 }} + +requirements: + build: + - {{ compiler("rust") }} + - {{ compiler('c') }} + +test: + commands: + - distle --help + - distle --version + +about: + home: https://github.com/KHajji/distle + license: GPL-3.0-only + license_file: LICENSE + license_family: GPL3 + summary: "Fast distance matrix calculations on fasta and cgmlst files" + +extra: + recipe-maintainers: + - khajji + - boasvdp + - ids-bioinformatics \ No newline at end of file From 3c09adbfe11c015eb7bd8a6adc1880d785c14c12 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 25 Jun 2024 10:15:17 -0400 Subject: [PATCH 0159/1514] Update argnorm to 0.5.0 (#48718) --- recipes/argnorm/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/argnorm/meta.yaml b/recipes/argnorm/meta.yaml index c6c4b787389f8..3eaff5920960f 100644 --- a/recipes/argnorm/meta.yaml +++ b/recipes/argnorm/meta.yaml @@ -1,5 +1,5 @@ {% set name = "argnorm" %} -{% set version = "0.4.0" %} +{% set version = "0.5.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 9144013b7e1f5eb32abeb90281ba8cc1653272a0208d1167268a55440163a72a + sha256: 60589492f01c000a5b8b4c2608cd607d8bc922786b2b3fc0cfbc5a4575cb9baf build: noarch: python From 2d17625e1ba32cdf14594d719cce0df5975908a5 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 25 Jun 2024 17:15:33 +0300 Subject: [PATCH 0160/1514] snap-aligner: add linux-aarch64 build (#48713) * snap-aligner: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * snap-aligner: add dev_url Signed-off-by: Martin Tzvetanov Grigorov * snap-aligner: add a patch to build on linux-aarch64 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/snap-aligner/build.sh | 5 +- recipes/snap-aligner/meta.yaml | 15 +- .../snap-aligner/snap-aligner-aarch64.patch | 9330 +++++++++++++++++ 3 files changed, 9347 insertions(+), 3 deletions(-) create mode 100644 recipes/snap-aligner/snap-aligner-aarch64.patch diff --git a/recipes/snap-aligner/build.sh b/recipes/snap-aligner/build.sh index 2926b23b0e978..05ac8ff09e984 100644 --- a/recipes/snap-aligner/build.sh +++ b/recipes/snap-aligner/build.sh @@ -1,5 +1,8 @@ #!/bin/bash + +set -xe + CXXFLAGS="${CXXFLAGS} -std=c++03" \ - make CXX="${CXX}" + make CXX="${CXX}" -j ${CPU_COUNT} install -d "${PREFIX}/bin" install snap-aligner "${PREFIX}/bin/" diff --git a/recipes/snap-aligner/meta.yaml b/recipes/snap-aligner/meta.yaml index 632b930803e04..903a6a8a9ee79 100644 --- a/recipes/snap-aligner/meta.yaml +++ b/recipes/snap-aligner/meta.yaml @@ -1,16 +1,21 @@ +{% set name = "snap-aligner" %} {% set version = "2.0.3" %} {% set sha256hash = "8a47cfa929827e60d45dbd436ba2d1119cb2161bd5b6be99eaedac01fb6fc33a" %} package: - name: snap-aligner + name: {{ name }} version: {{ version }} source: url: https://github.com/amplab/snap/archive/refs/tags/v{{ version }}.tar.gz sha256: {{ sha256hash }} + patches: + - snap-aligner-aarch64.patch # [linux and aarch64] build: - number: 2 + number: 3 skip: True # [osx] + run_exports: + - {{ pin_subpackage(name, max_pin='x') }} requirements: build: @@ -29,3 +34,9 @@ about: home: http://snap.cs.berkeley.edu/ license: Apache v2 summary: Scalable Nucleotide Alignment Program -- a fast and accurate read aligner for high-throughput sequencing data + dev_url: https://github.com/amplab/snap/ + + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file diff --git a/recipes/snap-aligner/snap-aligner-aarch64.patch b/recipes/snap-aligner/snap-aligner-aarch64.patch new file mode 100644 index 0000000000000..4fc6234aab7a9 --- /dev/null +++ b/recipes/snap-aligner/snap-aligner-aarch64.patch @@ -0,0 +1,9330 @@ +diff --git c/Makefile i/Makefile +index 5f8dd2c..84869f2 100644 +--- c/Makefile ++++ i/Makefile +@@ -3,7 +3,7 @@ ifndef CXXFLAGS + #CXXFLAGS = -g -O0 -Wno-format -std=c++98 + endif + +-CXXFLAGS += -MMD -ISNAPLib -msse ++CXXFLAGS += -MMD -ISNAPLib + + LDFLAGS += -pthread + +diff --git c/SNAPLib/Compat.h i/SNAPLib/Compat.h +index 754e7db..e6de7d5 100644 +--- c/SNAPLib/Compat.h ++++ i/SNAPLib/Compat.h +@@ -77,12 +77,16 @@ int getpagesize(); + #include // For sched_setaffinity + #endif + ++#if defined(__ARM_NEON) ++#include "sse2neon.h" ++#else + #ifndef __APPLE__ + #include // This is currently (in Dec 2013) broken on Mac OS X 10.9 (Apple clang-500.2.79) + #else + #define _mm_prefetch(...) {} + #include // For vector types like __m128i +-#endif ++#endif // __APPLE__ ++#endif // __ARM_NEON + + typedef int64_t _int64; + typedef uint64_t _uint64; +diff --git c/SNAPLib/sse2neon.h i/SNAPLib/sse2neon.h +new file mode 100644 +index 0000000..7bbf4e1 +--- /dev/null ++++ i/SNAPLib/sse2neon.h +@@ -0,0 +1,9289 @@ ++#ifndef SSE2NEON_H ++#define SSE2NEON_H ++ ++/* ++ * sse2neon is freely redistributable under the MIT License. ++ * ++ * Copyright (c) 2015-2024 SSE2NEON Contributors. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a copy ++ * of this software and associated documentation files (the "Software"), to deal ++ * in the Software without restriction, including without limitation the rights ++ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ++ * copies of the Software, and to permit persons to whom the Software is ++ * furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be included in ++ * all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++ * SOFTWARE. ++ */ ++ ++// This header file provides a simple API translation layer ++// between SSE intrinsics to their corresponding Arm/Aarch64 NEON versions ++// ++// Contributors to this work are: ++// John W. Ratcliff ++// Brandon Rowlett ++// Ken Fast ++// Eric van Beurden ++// Alexander Potylitsin ++// Hasindu Gamaarachchi ++// Jim Huang ++// Mark Cheng ++// Malcolm James MacLeod ++// Devin Hussey (easyaspi314) ++// Sebastian Pop ++// Developer Ecosystem Engineering ++// Danila Kutenin ++// François Turban (JishinMaster) ++// Pei-Hsuan Hung ++// Yang-Hao Yuan ++// Syoyo Fujita ++// Brecht Van Lommel ++// Jonathan Hue ++// Cuda Chen ++// Aymen Qader ++// Anthony Roberts ++ ++/* Tunable configurations */ ++ ++/* Enable precise implementation of math operations ++ * This would slow down the computation a bit, but gives consistent result with ++ * x86 SSE. (e.g. would solve a hole or NaN pixel in the rendering result) ++ */ ++/* _mm_min|max_ps|ss|pd|sd */ ++#ifndef SSE2NEON_PRECISE_MINMAX ++#define SSE2NEON_PRECISE_MINMAX (0) ++#endif ++/* _mm_rcp_ps */ ++#ifndef SSE2NEON_PRECISE_DIV ++#define SSE2NEON_PRECISE_DIV (0) ++#endif ++/* _mm_sqrt_ps and _mm_rsqrt_ps */ ++#ifndef SSE2NEON_PRECISE_SQRT ++#define SSE2NEON_PRECISE_SQRT (0) ++#endif ++/* _mm_dp_pd */ ++#ifndef SSE2NEON_PRECISE_DP ++#define SSE2NEON_PRECISE_DP (0) ++#endif ++ ++/* Enable inclusion of windows.h on MSVC platforms ++ * This makes _mm_clflush functional on windows, as there is no builtin. ++ */ ++#ifndef SSE2NEON_INCLUDE_WINDOWS_H ++#define SSE2NEON_INCLUDE_WINDOWS_H (0) ++#endif ++ ++/* compiler specific definitions */ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma push_macro("FORCE_INLINE") ++#pragma push_macro("ALIGN_STRUCT") ++#define FORCE_INLINE static inline __attribute__((always_inline)) ++#define ALIGN_STRUCT(x) __attribute__((aligned(x))) ++#define _sse2neon_likely(x) __builtin_expect(!!(x), 1) ++#define _sse2neon_unlikely(x) __builtin_expect(!!(x), 0) ++#elif defined(_MSC_VER) ++#if _MSVC_TRADITIONAL ++#error Using the traditional MSVC preprocessor is not supported! Use /Zc:preprocessor instead. ++#endif ++#ifndef FORCE_INLINE ++#define FORCE_INLINE static inline ++#endif ++#ifndef ALIGN_STRUCT ++#define ALIGN_STRUCT(x) __declspec(align(x)) ++#endif ++#define _sse2neon_likely(x) (x) ++#define _sse2neon_unlikely(x) (x) ++#else ++#pragma message("Macro name collisions may happen with unsupported compilers.") ++#endif ++ ++#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ < 10 ++#warning "GCC versions earlier than 10 are not supported." ++#endif ++ ++/* C language does not allow initializing a variable with a function call. */ ++#ifdef __cplusplus ++#define _sse2neon_const static const ++#else ++#define _sse2neon_const const ++#endif ++ ++#include ++#include ++ ++#if defined(_WIN32) ++/* Definitions for _mm_{malloc,free} are provided by ++ * from both MinGW-w64 and MSVC. ++ */ ++#define SSE2NEON_ALLOC_DEFINED ++#endif ++ ++/* If using MSVC */ ++#ifdef _MSC_VER ++#include ++#if SSE2NEON_INCLUDE_WINDOWS_H ++#include ++#include ++#endif ++ ++#if !defined(__cplusplus) ++#error SSE2NEON only supports C++ compilation with this compiler ++#endif ++ ++#ifdef SSE2NEON_ALLOC_DEFINED ++#include ++#endif ++ ++#if (defined(_M_AMD64) || defined(__x86_64__)) || \ ++ (defined(_M_ARM64) || defined(__arm64__)) ++#define SSE2NEON_HAS_BITSCAN64 ++#endif ++#endif ++ ++#if defined(__GNUC__) || defined(__clang__) ++#define _sse2neon_define0(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define1(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define2(type, a, b, body) \ ++ __extension__({ \ ++ type _a = (a), _b = (b); \ ++ body \ ++ }) ++#define _sse2neon_return(ret) (ret) ++#else ++#define _sse2neon_define0(type, a, body) [=](type _a) { body }(a) ++#define _sse2neon_define1(type, a, body) [](type _a) { body }(a) ++#define _sse2neon_define2(type, a, b, body) \ ++ [](type _a, type _b) { body }((a), (b)) ++#define _sse2neon_return(ret) return ret ++#endif ++ ++#define _sse2neon_init(...) \ ++ { \ ++ __VA_ARGS__ \ ++ } ++ ++/* Compiler barrier */ ++#if defined(_MSC_VER) ++#define SSE2NEON_BARRIER() _ReadWriteBarrier() ++#else ++#define SSE2NEON_BARRIER() \ ++ do { \ ++ __asm__ __volatile__("" ::: "memory"); \ ++ (void) 0; \ ++ } while (0) ++#endif ++ ++/* Memory barriers ++ * __atomic_thread_fence does not include a compiler barrier; instead, ++ * the barrier is part of __atomic_load/__atomic_store's "volatile-like" ++ * semantics. ++ */ ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) ++#include ++#endif ++ ++FORCE_INLINE void _sse2neon_smp_mb(void) ++{ ++ SSE2NEON_BARRIER(); ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \ ++ !defined(__STDC_NO_ATOMICS__) ++ atomic_thread_fence(memory_order_seq_cst); ++#elif defined(__GNUC__) || defined(__clang__) ++ __atomic_thread_fence(__ATOMIC_SEQ_CST); ++#else /* MSVC */ ++ __dmb(_ARM64_BARRIER_ISH); ++#endif ++} ++ ++/* Architecture-specific build options */ ++/* FIXME: #pragma GCC push_options is only available on GCC */ ++#if defined(__GNUC__) ++#if defined(__arm__) && __ARM_ARCH == 7 ++/* According to ARM C Language Extensions Architecture specification, ++ * __ARM_NEON is defined to a value indicating the Advanced SIMD (NEON) ++ * architecture supported. ++ */ ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error "You must enable NEON instructions (e.g. -mfpu=neon) to use SSE2NEON." ++#endif ++#if !defined(__clang__) ++#pragma GCC push_options ++#pragma GCC target("fpu=neon") ++#endif ++#elif defined(__aarch64__) || defined(_M_ARM64) ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#pragma GCC target("+simd") ++#endif ++#elif __ARM_ARCH == 8 ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error \ ++ "You must enable NEON instructions (e.g. -mfpu=neon-fp-armv8) to use SSE2NEON." ++#endif ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#endif ++#else ++#error \ ++ "Unsupported target. Must be either ARMv7-A+NEON or ARMv8-A \ ++(you could try setting target explicitly with -march or -mcpu)" ++#endif ++#endif ++ ++#include ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) && (__ARM_ARCH == 8) ++#if defined __has_include && __has_include() ++#include ++#endif ++#endif ++ ++/* Apple Silicon cache lines are double of what is commonly used by Intel, AMD ++ * and other Arm microarchitectures use. ++ * From sysctl -a on Apple M1: ++ * hw.cachelinesize: 128 ++ */ ++#if defined(__APPLE__) && (defined(__aarch64__) || defined(__arm64__)) ++#define SSE2NEON_CACHELINE_SIZE 128 ++#else ++#define SSE2NEON_CACHELINE_SIZE 64 ++#endif ++ ++/* Rounding functions require either Aarch64 instructions or libm fallback */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#include ++#endif ++ ++/* On ARMv7, some registers, such as PMUSERENR and PMCCNTR, are read-only ++ * or even not accessible in user mode. ++ * To write or access to these registers in user mode, ++ * we have to perform syscall instead. ++ */ ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) ++#include ++#endif ++ ++/* "__has_builtin" can be used to query support for built-in functions ++ * provided by gcc/clang and other compilers that support it. ++ */ ++#ifndef __has_builtin /* GCC prior to 10 or non-clang compilers */ ++/* Compatibility with gcc <= 9 */ ++#if defined(__GNUC__) && (__GNUC__ <= 9) ++#define __has_builtin(x) HAS##x ++#define HAS__builtin_popcount 1 ++#define HAS__builtin_popcountll 1 ++ ++// __builtin_shuffle introduced in GCC 4.7.0 ++#if (__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) ++#define HAS__builtin_shuffle 1 ++#else ++#define HAS__builtin_shuffle 0 ++#endif ++ ++#define HAS__builtin_shufflevector 0 ++#define HAS__builtin_nontemporal_store 0 ++#else ++#define __has_builtin(x) 0 ++#endif ++#endif ++ ++/** ++ * MACRO for shuffle parameter for _mm_shuffle_ps(). ++ * Argument fp3 is a digit[0123] that represents the fp from argument "b" ++ * of mm_shuffle_ps that will be placed in fp3 of result. fp2 is the same ++ * for fp2 in result. fp1 is a digit[0123] that represents the fp from ++ * argument "a" of mm_shuffle_ps that will be places in fp1 of result. ++ * fp0 is the same for fp0 of result. ++ */ ++#define _MM_SHUFFLE(fp3, fp2, fp1, fp0) \ ++ (((fp3) << 6) | ((fp2) << 4) | ((fp1) << 2) | ((fp0))) ++ ++#if __has_builtin(__builtin_shufflevector) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __builtin_shufflevector(a, b, __VA_ARGS__) ++#elif __has_builtin(__builtin_shuffle) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __extension__({ \ ++ type tmp = {__VA_ARGS__}; \ ++ __builtin_shuffle(a, b, tmp); \ ++ }) ++#endif ++ ++#ifdef _sse2neon_shuffle ++#define vshuffle_s16(a, b, ...) _sse2neon_shuffle(int16x4_t, a, b, __VA_ARGS__) ++#define vshuffleq_s16(a, b, ...) _sse2neon_shuffle(int16x8_t, a, b, __VA_ARGS__) ++#define vshuffle_s32(a, b, ...) _sse2neon_shuffle(int32x2_t, a, b, __VA_ARGS__) ++#define vshuffleq_s32(a, b, ...) _sse2neon_shuffle(int32x4_t, a, b, __VA_ARGS__) ++#define vshuffle_s64(a, b, ...) _sse2neon_shuffle(int64x1_t, a, b, __VA_ARGS__) ++#define vshuffleq_s64(a, b, ...) _sse2neon_shuffle(int64x2_t, a, b, __VA_ARGS__) ++#endif ++ ++/* Rounding mode macros. */ ++#define _MM_FROUND_TO_NEAREST_INT 0x00 ++#define _MM_FROUND_TO_NEG_INF 0x01 ++#define _MM_FROUND_TO_POS_INF 0x02 ++#define _MM_FROUND_TO_ZERO 0x03 ++#define _MM_FROUND_CUR_DIRECTION 0x04 ++#define _MM_FROUND_NO_EXC 0x08 ++#define _MM_FROUND_RAISE_EXC 0x00 ++#define _MM_FROUND_NINT (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_FLOOR (_MM_FROUND_TO_NEG_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_CEIL (_MM_FROUND_TO_POS_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_TRUNC (_MM_FROUND_TO_ZERO | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_RINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_NEARBYINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_NO_EXC) ++#define _MM_ROUND_NEAREST 0x0000 ++#define _MM_ROUND_DOWN 0x2000 ++#define _MM_ROUND_UP 0x4000 ++#define _MM_ROUND_TOWARD_ZERO 0x6000 ++/* Flush zero mode macros. */ ++#define _MM_FLUSH_ZERO_MASK 0x8000 ++#define _MM_FLUSH_ZERO_ON 0x8000 ++#define _MM_FLUSH_ZERO_OFF 0x0000 ++/* Denormals are zeros mode macros. */ ++#define _MM_DENORMALS_ZERO_MASK 0x0040 ++#define _MM_DENORMALS_ZERO_ON 0x0040 ++#define _MM_DENORMALS_ZERO_OFF 0x0000 ++ ++/* indicate immediate constant argument in a given range */ ++#define __constrange(a, b) const ++ ++/* A few intrinsics accept traditional data types like ints or floats, but ++ * most operate on data types that are specific to SSE. ++ * If a vector type ends in d, it contains doubles, and if it does not have ++ * a suffix, it contains floats. An integer vector type can contain any type ++ * of integer, from chars to shorts to unsigned long longs. ++ */ ++typedef int64x1_t __m64; ++typedef float32x4_t __m128; /* 128-bit vector containing 4 floats */ ++// On ARM 32-bit architecture, the float64x2_t is not supported. ++// The data type __m128d should be represented in a different way for related ++// intrinsic conversion. ++#if defined(__aarch64__) || defined(_M_ARM64) ++typedef float64x2_t __m128d; /* 128-bit vector containing 2 doubles */ ++#else ++typedef float32x4_t __m128d; ++#endif ++typedef int64x2_t __m128i; /* 128-bit vector containing integers */ ++ ++// Some intrinsics operate on unaligned data types. ++typedef int16_t ALIGN_STRUCT(1) unaligned_int16_t; ++typedef int32_t ALIGN_STRUCT(1) unaligned_int32_t; ++typedef int64_t ALIGN_STRUCT(1) unaligned_int64_t; ++ ++// __int64 is defined in the Intrinsics Guide which maps to different datatype ++// in different data model ++#if !(defined(_WIN32) || defined(_WIN64) || defined(__int64)) ++#if (defined(__x86_64__) || defined(__i386__)) ++#define __int64 long long ++#else ++#define __int64 int64_t ++#endif ++#endif ++ ++/* type-safe casting between types */ ++ ++#define vreinterpretq_m128_f16(x) vreinterpretq_f32_f16(x) ++#define vreinterpretq_m128_f32(x) (x) ++#define vreinterpretq_m128_f64(x) vreinterpretq_f32_f64(x) ++ ++#define vreinterpretq_m128_u8(x) vreinterpretq_f32_u8(x) ++#define vreinterpretq_m128_u16(x) vreinterpretq_f32_u16(x) ++#define vreinterpretq_m128_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128_s8(x) vreinterpretq_f32_s8(x) ++#define vreinterpretq_m128_s16(x) vreinterpretq_f32_s16(x) ++#define vreinterpretq_m128_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_f16_m128(x) vreinterpretq_f16_f32(x) ++#define vreinterpretq_f32_m128(x) (x) ++#define vreinterpretq_f64_m128(x) vreinterpretq_f64_f32(x) ++ ++#define vreinterpretq_u8_m128(x) vreinterpretq_u8_f32(x) ++#define vreinterpretq_u16_m128(x) vreinterpretq_u16_f32(x) ++#define vreinterpretq_u32_m128(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_s8_m128(x) vreinterpretq_s8_f32(x) ++#define vreinterpretq_s16_m128(x) vreinterpretq_s16_f32(x) ++#define vreinterpretq_s32_m128(x) vreinterpretq_s32_f32(x) ++#define vreinterpretq_s64_m128(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_m128i_s8(x) vreinterpretq_s64_s8(x) ++#define vreinterpretq_m128i_s16(x) vreinterpretq_s64_s16(x) ++#define vreinterpretq_m128i_s32(x) vreinterpretq_s64_s32(x) ++#define vreinterpretq_m128i_s64(x) (x) ++ ++#define vreinterpretq_m128i_u8(x) vreinterpretq_s64_u8(x) ++#define vreinterpretq_m128i_u16(x) vreinterpretq_s64_u16(x) ++#define vreinterpretq_m128i_u32(x) vreinterpretq_s64_u32(x) ++#define vreinterpretq_m128i_u64(x) vreinterpretq_s64_u64(x) ++ ++#define vreinterpretq_f32_m128i(x) vreinterpretq_f32_s64(x) ++#define vreinterpretq_f64_m128i(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_s8_m128i(x) vreinterpretq_s8_s64(x) ++#define vreinterpretq_s16_m128i(x) vreinterpretq_s16_s64(x) ++#define vreinterpretq_s32_m128i(x) vreinterpretq_s32_s64(x) ++#define vreinterpretq_s64_m128i(x) (x) ++ ++#define vreinterpretq_u8_m128i(x) vreinterpretq_u8_s64(x) ++#define vreinterpretq_u16_m128i(x) vreinterpretq_u16_s64(x) ++#define vreinterpretq_u32_m128i(x) vreinterpretq_u32_s64(x) ++#define vreinterpretq_u64_m128i(x) vreinterpretq_u64_s64(x) ++ ++#define vreinterpret_m64_s8(x) vreinterpret_s64_s8(x) ++#define vreinterpret_m64_s16(x) vreinterpret_s64_s16(x) ++#define vreinterpret_m64_s32(x) vreinterpret_s64_s32(x) ++#define vreinterpret_m64_s64(x) (x) ++ ++#define vreinterpret_m64_u8(x) vreinterpret_s64_u8(x) ++#define vreinterpret_m64_u16(x) vreinterpret_s64_u16(x) ++#define vreinterpret_m64_u32(x) vreinterpret_s64_u32(x) ++#define vreinterpret_m64_u64(x) vreinterpret_s64_u64(x) ++ ++#define vreinterpret_m64_f16(x) vreinterpret_s64_f16(x) ++#define vreinterpret_m64_f32(x) vreinterpret_s64_f32(x) ++#define vreinterpret_m64_f64(x) vreinterpret_s64_f64(x) ++ ++#define vreinterpret_u8_m64(x) vreinterpret_u8_s64(x) ++#define vreinterpret_u16_m64(x) vreinterpret_u16_s64(x) ++#define vreinterpret_u32_m64(x) vreinterpret_u32_s64(x) ++#define vreinterpret_u64_m64(x) vreinterpret_u64_s64(x) ++ ++#define vreinterpret_s8_m64(x) vreinterpret_s8_s64(x) ++#define vreinterpret_s16_m64(x) vreinterpret_s16_s64(x) ++#define vreinterpret_s32_m64(x) vreinterpret_s32_s64(x) ++#define vreinterpret_s64_m64(x) (x) ++ ++#define vreinterpret_f32_m64(x) vreinterpret_f32_s64(x) ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f64_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f64_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) vreinterpretq_f64_f32(x) ++#define vreinterpretq_m128d_f64(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f64(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f64(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f64(x) ++ ++#define vreinterpretq_f64_m128d(x) (x) ++#define vreinterpretq_f32_m128d(x) vreinterpretq_f32_f64(x) ++#else ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_m128d_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_f32_m128d(x) (x) ++#endif ++ ++// A struct is defined in this header file called 'SIMDVec' which can be used ++// by applications which attempt to access the contents of an __m128 struct ++// directly. It is important to note that accessing the __m128 struct directly ++// is bad coding practice by Microsoft: @see: ++// https://learn.microsoft.com/en-us/cpp/cpp/m128 ++// ++// However, some legacy source code may try to access the contents of an __m128 ++// struct directly so the developer can use the SIMDVec as an alias for it. Any ++// casting must be done manually by the developer, as you cannot cast or ++// otherwise alias the base NEON data type for intrinsic operations. ++// ++// union intended to allow direct access to an __m128 variable using the names ++// that the MSVC compiler provides. This union should really only be used when ++// trying to access the members of the vector as integer values. GCC/clang ++// allow native access to the float members through a simple array access ++// operator (in C since 4.6, in C++ since 4.8). ++// ++// Ideally direct accesses to SIMD vectors should not be used since it can cause ++// a performance hit. If it really is needed however, the original __m128 ++// variable can be aliased with a pointer to this union and used to access ++// individual components. The use of this union should be hidden behind a macro ++// that is used throughout the codebase to access the members instead of always ++// declaring this type of variable. ++typedef union ALIGN_STRUCT(16) SIMDVec { ++ float m128_f32[4]; // as floats - DON'T USE. Added for convenience. ++ int8_t m128_i8[16]; // as signed 8-bit integers. ++ int16_t m128_i16[8]; // as signed 16-bit integers. ++ int32_t m128_i32[4]; // as signed 32-bit integers. ++ int64_t m128_i64[2]; // as signed 64-bit integers. ++ uint8_t m128_u8[16]; // as unsigned 8-bit integers. ++ uint16_t m128_u16[8]; // as unsigned 16-bit integers. ++ uint32_t m128_u32[4]; // as unsigned 32-bit integers. ++ uint64_t m128_u64[2]; // as unsigned 64-bit integers. ++} SIMDVec; ++ ++// casting using SIMDVec ++#define vreinterpretq_nth_u64_m128i(x, n) (((SIMDVec *) &x)->m128_u64[n]) ++#define vreinterpretq_nth_u32_m128i(x, n) (((SIMDVec *) &x)->m128_u32[n]) ++#define vreinterpretq_nth_u8_m128i(x, n) (((SIMDVec *) &x)->m128_u8[n]) ++ ++/* SSE macros */ ++#define _MM_GET_FLUSH_ZERO_MODE _sse2neon_mm_get_flush_zero_mode ++#define _MM_SET_FLUSH_ZERO_MODE _sse2neon_mm_set_flush_zero_mode ++#define _MM_GET_DENORMALS_ZERO_MODE _sse2neon_mm_get_denormals_zero_mode ++#define _MM_SET_DENORMALS_ZERO_MODE _sse2neon_mm_set_denormals_zero_mode ++ ++// Function declaration ++// SSE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void); ++FORCE_INLINE __m128 _mm_move_ss(__m128, __m128); ++FORCE_INLINE __m128 _mm_or_ps(__m128, __m128); ++FORCE_INLINE __m128 _mm_set_ps1(float); ++FORCE_INLINE __m128 _mm_setzero_ps(void); ++// SSE2 ++FORCE_INLINE __m128i _mm_and_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_castps_si128(__m128); ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128); ++FORCE_INLINE __m128d _mm_move_sd(__m128d, __m128d); ++FORCE_INLINE __m128i _mm_or_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_set_epi32(int, int, int, int); ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t, int64_t); ++FORCE_INLINE __m128d _mm_set_pd(double, double); ++FORCE_INLINE __m128i _mm_set1_epi32(int); ++FORCE_INLINE __m128i _mm_setzero_si128(void); ++// SSE4.1 ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d); ++FORCE_INLINE __m128 _mm_ceil_ps(__m128); ++FORCE_INLINE __m128d _mm_floor_pd(__m128d); ++FORCE_INLINE __m128 _mm_floor_ps(__m128); ++FORCE_INLINE __m128d _mm_round_pd(__m128d, int); ++FORCE_INLINE __m128 _mm_round_ps(__m128, int); ++// SSE4.2 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t, uint8_t); ++ ++/* Backwards compatibility for compilers with lack of specific type support */ ++ ++// Older gcc does not define vld1q_u8_x4 type ++#if defined(__GNUC__) && !defined(__clang__) && \ ++ ((__GNUC__ <= 13 && defined(__arm__)) || \ ++ (__GNUC__ == 10 && __GNUC_MINOR__ < 3 && defined(__aarch64__)) || \ ++ (__GNUC__ <= 9 && defined(__aarch64__))) ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ uint8x16x4_t ret; ++ ret.val[0] = vld1q_u8(p + 0); ++ ret.val[1] = vld1q_u8(p + 16); ++ ret.val[2] = vld1q_u8(p + 32); ++ ret.val[3] = vld1q_u8(p + 48); ++ return ret; ++} ++#else ++// Wraps vld1q_u8_x4 ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ return vld1q_u8_x4(p); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddv u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ const uint64x1_t v1 = vpaddl_u32(vpaddl_u16(vpaddl_u8(v8))); ++ return vget_lane_u8(vreinterpret_u8_u64(v1), 0); ++} ++#else ++// Wraps vaddv_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ return vaddv_u8(v8); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ uint8x8_t tmp = vpadd_u8(vget_low_u8(a), vget_high_u8(a)); ++ uint8_t res = 0; ++ for (int i = 0; i < 8; ++i) ++ res += tmp[i]; ++ return res; ++} ++#else ++// Wraps vaddvq_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ return vaddvq_u8(a); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u16 variant */ ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ uint32x4_t m = vpaddlq_u16(a); ++ uint64x2_t n = vpaddlq_u32(m); ++ uint64x1_t o = vget_low_u64(n) + vget_high_u64(n); ++ ++ return vget_lane_u32((uint32x2_t) o, 0); ++} ++#else ++// Wraps vaddvq_u16 ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ return vaddvq_u16(a); ++} ++#endif ++ ++/* Function Naming Conventions ++ * The naming convention of SSE intrinsics is straightforward. A generic SSE ++ * intrinsic function is given as follows: ++ * _mm__ ++ * ++ * The parts of this format are given as follows: ++ * 1. describes the operation performed by the intrinsic ++ * 2. identifies the data type of the function's primary arguments ++ * ++ * This last part, , is a little complicated. It identifies the ++ * content of the input values, and can be set to any of the following values: ++ * + ps - vectors contain floats (ps stands for packed single-precision) ++ * + pd - vectors contain doubles (pd stands for packed double-precision) ++ * + epi8/epi16/epi32/epi64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * signed integers ++ * + epu8/epu16/epu32/epu64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * unsigned integers ++ * + si128 - unspecified 128-bit vector or 256-bit vector ++ * + m128/m128i/m128d - identifies input vector types when they are different ++ * than the type of the returned vector ++ * ++ * For example, _mm_setzero_ps. The _mm implies that the function returns ++ * a 128-bit vector. The _ps at the end implies that the argument vectors ++ * contain floats. ++ * ++ * A complete example: Byte Shuffle - pshufb (_mm_shuffle_epi8) ++ * // Set packed 16-bit integers. 128 bits, 8 short, per 16 bits ++ * __m128i v_in = _mm_setr_epi16(1, 2, 3, 4, 5, 6, 7, 8); ++ * // Set packed 8-bit integers ++ * // 128 bits, 16 chars, per 8 bits ++ * __m128i v_perm = _mm_setr_epi8(1, 0, 2, 3, 8, 9, 10, 11, ++ * 4, 5, 12, 13, 6, 7, 14, 15); ++ * // Shuffle packed 8-bit integers ++ * __m128i v_out = _mm_shuffle_epi8(v_in, v_perm); // pshufb ++ */ ++ ++/* Constants for use with _mm_prefetch. */ ++enum _mm_hint { ++ _MM_HINT_NTA = 0, /* load data to L1 and L2 cache, mark it as NTA */ ++ _MM_HINT_T0 = 1, /* load data to L1 and L2 cache */ ++ _MM_HINT_T1 = 2, /* load data to L2 cache only */ ++ _MM_HINT_T2 = 3, /* load data to L2 cache only, mark it as NTA */ ++}; ++ ++// The bit field mapping to the FPCR(floating-point control register) ++typedef struct { ++ uint16_t res0; ++ uint8_t res1 : 6; ++ uint8_t bit22 : 1; ++ uint8_t bit23 : 1; ++ uint8_t bit24 : 1; ++ uint8_t res2 : 7; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32_t res3; ++#endif ++} fpcr_bitfield; ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of b and places it into the high end of the result. ++FORCE_INLINE __m128 _mm_shuffle_ps_1032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in high ++// end of result takes the higher two 32 bit values from b and swaps them and ++// places in low end of result. ++FORCE_INLINE __m128 _mm_shuffle_ps_2301(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b23 = vrev64_f32(vget_high_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b23)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0321(__m128 a, __m128 b) ++{ ++ float32x2_t a21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a21, b03)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2103(__m128 a, __m128 b) ++{ ++ float32x2_t a03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a03, b21)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0101(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b01)); ++} ++ ++// keeps the low 64 bits of b in the low and puts the high 64 bits of a in the ++// high ++FORCE_INLINE __m128 _mm_shuffle_ps_3210(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0011(__m128 a, __m128 b) ++{ ++ float32x2_t a11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a11, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0022(__m128 a, __m128 b) ++{ ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a22, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2200(__m128 a, __m128 b) ++{ ++ float32x2_t a00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a00, b22)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_3202(__m128 a, __m128 b) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t a02 = vset_lane_f32(a0, a22, 1); /* TODO: use vzip ?*/ ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a02, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1133(__m128 a, __m128 b) ++{ ++ float32x2_t a33 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a33, b11)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b20)); ++} ++ ++// For MSVC, we check only if it is ARM64, as every single ARM64 processor ++// supported by WoA has crypto extensions. If this changes in the future, ++// this can be verified via the runtime-only method of: ++// IsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE) ++#if (defined(_M_ARM64) && !defined(__clang__)) || \ ++ (defined(__ARM_FEATURE_CRYPTO) && \ ++ (defined(__aarch64__) || __has_builtin(__builtin_arm_crypto_vmullp64))) ++// Wraps vmull_p64 ++FORCE_INLINE uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly64_t a = vget_lane_p64(vreinterpret_p64_u64(_a), 0); ++ poly64_t b = vget_lane_p64(vreinterpret_p64_u64(_b), 0); ++#if defined(_MSC_VER) ++ __n64 a1 = {a}, b1 = {b}; ++ return vreinterpretq_u64_p128(vmull_p64(a1, b1)); ++#else ++ return vreinterpretq_u64_p128(vmull_p64(a, b)); ++#endif ++} ++#else // ARMv7 polyfill ++// ARMv7/some A64 lacks vmull_p64, but it has vmull_p8. ++// ++// vmull_p8 calculates 8 8-bit->16-bit polynomial multiplies, but we need a ++// 64-bit->128-bit polynomial multiply. ++// ++// It needs some work and is somewhat slow, but it is still faster than all ++// known scalar methods. ++// ++// Algorithm adapted to C from ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/, which is adapted ++// from "Fast Software Polynomial Multiplication on ARM Processors Using the ++// NEON Engine" by Danilo Camara, Conrado Gouvea, Julio Lopez and Ricardo Dahab ++// (https://hal.inria.fr/hal-01506572) ++static uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly8x8_t a = vreinterpret_p8_u64(_a); ++ poly8x8_t b = vreinterpret_p8_u64(_b); ++ ++ // Masks ++ uint8x16_t k48_32 = vcombine_u8(vcreate_u8(0x0000ffffffffffff), ++ vcreate_u8(0x00000000ffffffff)); ++ uint8x16_t k16_00 = vcombine_u8(vcreate_u8(0x000000000000ffff), ++ vcreate_u8(0x0000000000000000)); ++ ++ // Do the multiplies, rotating with vext to get all combinations ++ uint8x16_t d = vreinterpretq_u8_p16(vmull_p8(a, b)); // D = A0 * B0 ++ uint8x16_t e = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 1))); // E = A0 * B1 ++ uint8x16_t f = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 1), b)); // F = A1 * B0 ++ uint8x16_t g = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 2))); // G = A0 * B2 ++ uint8x16_t h = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 2), b)); // H = A2 * B0 ++ uint8x16_t i = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 3))); // I = A0 * B3 ++ uint8x16_t j = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 3), b)); // J = A3 * B0 ++ uint8x16_t k = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 4))); // L = A0 * B4 ++ ++ // Add cross products ++ uint8x16_t l = veorq_u8(e, f); // L = E + F ++ uint8x16_t m = veorq_u8(g, h); // M = G + H ++ uint8x16_t n = veorq_u8(i, j); // N = I + J ++ ++ // Interleave. Using vzip1 and vzip2 prevents Clang from emitting TBL ++ // instructions. ++#if defined(__aarch64__) ++ uint8x16_t lm_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t lm_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t nk_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++ uint8x16_t nk_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++#else ++ uint8x16_t lm_p0 = vcombine_u8(vget_low_u8(l), vget_low_u8(m)); ++ uint8x16_t lm_p1 = vcombine_u8(vget_high_u8(l), vget_high_u8(m)); ++ uint8x16_t nk_p0 = vcombine_u8(vget_low_u8(n), vget_low_u8(k)); ++ uint8x16_t nk_p1 = vcombine_u8(vget_high_u8(n), vget_high_u8(k)); ++#endif ++ // t0 = (L) (P0 + P1) << 8 ++ // t1 = (M) (P2 + P3) << 16 ++ uint8x16_t t0t1_tmp = veorq_u8(lm_p0, lm_p1); ++ uint8x16_t t0t1_h = vandq_u8(lm_p1, k48_32); ++ uint8x16_t t0t1_l = veorq_u8(t0t1_tmp, t0t1_h); ++ ++ // t2 = (N) (P4 + P5) << 24 ++ // t3 = (K) (P6 + P7) << 32 ++ uint8x16_t t2t3_tmp = veorq_u8(nk_p0, nk_p1); ++ uint8x16_t t2t3_h = vandq_u8(nk_p1, k16_00); ++ uint8x16_t t2t3_l = veorq_u8(t2t3_tmp, t2t3_h); ++ ++ // De-interleave ++#if defined(__aarch64__) ++ uint8x16_t t0 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t1 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t2 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++ uint8x16_t t3 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++#else ++ uint8x16_t t1 = vcombine_u8(vget_high_u8(t0t1_l), vget_high_u8(t0t1_h)); ++ uint8x16_t t0 = vcombine_u8(vget_low_u8(t0t1_l), vget_low_u8(t0t1_h)); ++ uint8x16_t t3 = vcombine_u8(vget_high_u8(t2t3_l), vget_high_u8(t2t3_h)); ++ uint8x16_t t2 = vcombine_u8(vget_low_u8(t2t3_l), vget_low_u8(t2t3_h)); ++#endif ++ // Shift the cross products ++ uint8x16_t t0_shift = vextq_u8(t0, t0, 15); // t0 << 8 ++ uint8x16_t t1_shift = vextq_u8(t1, t1, 14); // t1 << 16 ++ uint8x16_t t2_shift = vextq_u8(t2, t2, 13); // t2 << 24 ++ uint8x16_t t3_shift = vextq_u8(t3, t3, 12); // t3 << 32 ++ ++ // Accumulate the products ++ uint8x16_t cross1 = veorq_u8(t0_shift, t1_shift); ++ uint8x16_t cross2 = veorq_u8(t2_shift, t3_shift); ++ uint8x16_t mix = veorq_u8(d, cross1); ++ uint8x16_t r = veorq_u8(mix, cross2); ++ return vreinterpretq_u64_u8(r); ++} ++#endif // ARMv7 polyfill ++ ++// C equivalent: ++// __m128i _mm_shuffle_epi32_default(__m128i a, ++// __constrange(0, 255) int imm) { ++// __m128i ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = a[(imm >> 4) & 0x03]; ret[3] = a[(imm >> 6) & 0x03]; ++// return ret; ++// } ++#define _mm_shuffle_epi32_default(a, imm) \ ++ vreinterpretq_m128i_s32(vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), \ ++ ((imm) >> 2) & 0x3), \ ++ vmovq_n_s32(vgetq_lane_s32( \ ++ vreinterpretq_s32_m128i(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of a and places it into the high end of the result. ++FORCE_INLINE __m128i _mm_shuffle_epi_1032(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in low end ++// of result takes the higher two 32 bit values from a and swaps them and places ++// in high end of result. ++FORCE_INLINE __m128i _mm_shuffle_epi_2301(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a23 = vrev64_s32(vget_high_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a23)); ++} ++ ++// rotates the least significant 32 bits into the most significant 32 bits, and ++// shifts the rest down ++FORCE_INLINE __m128i _mm_shuffle_epi_0321(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 1)); ++} ++ ++// rotates the most significant 32 bits into the least significant 32 bits, and ++// shifts the rest up ++FORCE_INLINE __m128i _mm_shuffle_epi_2103(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 3)); ++} ++ ++// gets the lower 64 bits of a, and places it in the upper 64 bits ++// gets the lower 64 bits of a and places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1010(__m128i a) ++{ ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a10, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements, and places it in the ++// lower 64 bits gets the lower 64 bits of a, and places it in the upper 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1001(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements and places it in the ++// upper 64 bits gets the lower 64 bits of a, swaps the 0 and 1 elements, and ++// places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_0101(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_2211(__m128i a) ++{ ++ int32x2_t a11 = vdup_lane_s32(vget_low_s32(vreinterpretq_s32_m128i(a)), 1); ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ return vreinterpretq_m128i_s32(vcombine_s32(a11, a22)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_0122(__m128i a) ++{ ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a22, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_3332(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a33 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 1); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a33)); ++} ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32(vdupq_laneq_s32(vreinterpretq_s32_m128i(a), (imm))) ++#else ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vdupq_n_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)))) ++#endif ++ ++// NEON does not support a general purpose permute intrinsic. ++// Shuffle single-precision (32-bit) floating-point elements in a using the ++// control in imm8, and store the results in dst. ++// ++// C equivalent: ++// __m128 _mm_shuffle_ps_default(__m128 a, __m128 b, ++// __constrange(0, 255) int imm) { ++// __m128 ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = b[(imm >> 4) & 0x03]; ret[3] = b[(imm >> 6) & 0x03]; ++// return ret; ++// } ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_ps ++#define _mm_shuffle_ps_default(a, b, imm) \ ++ vreinterpretq_m128_f32(vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), ((imm) >> 2) & 0x3), \ ++ vmovq_n_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Shuffle 16-bit integers in the low 64 bits of a using the control in imm8. ++// Store the results in the low 64 bits of dst, with the high 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflelo_epi16 ++#define _mm_shufflelo_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t lowBits = vget_low_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, (imm) & (0x3)), ret, 0); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++// Shuffle 16-bit integers in the high 64 bits of a using the control in imm8. ++// Store the results in the high 64 bits of dst, with the low 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflehi_epi16 ++#define _mm_shufflehi_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t highBits = vget_high_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, (imm) & (0x3)), ret, 4); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 2) & 0x3), ret, \ ++ 5); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 4) & 0x3), ret, \ ++ 6); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 6) & 0x3), ret, \ ++ 7); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++/* MMX */ ++ ++//_mm_empty is a no-op on arm ++FORCE_INLINE void _mm_empty(void) {} ++ ++/* SSE */ ++ ++// Add packed single-precision (32-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ps ++FORCE_INLINE __m128 _mm_add_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Add the lower single-precision (32-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ss ++FORCE_INLINE __m128 _mm_add_ss(__m128 a, __m128 b) ++{ ++ float32_t b0 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++ float32x4_t value = vsetq_lane_f32(b0, vdupq_n_f32(0), 0); ++ // the upper values in the result must be the remnants of . ++ return vreinterpretq_m128_f32(vaddq_f32(a, value)); ++} ++ ++// Compute the bitwise AND of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_ps ++FORCE_INLINE __m128 _mm_and_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vandq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Compute the bitwise NOT of packed single-precision (32-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_ps ++FORCE_INLINE __m128 _mm_andnot_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vbicq_s32(vreinterpretq_s32_m128(b), ++ vreinterpretq_s32_m128(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu16 ++FORCE_INLINE __m64 _mm_avg_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16( ++ vrhadd_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu8 ++FORCE_INLINE __m64 _mm_avg_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vrhadd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ps ++FORCE_INLINE __m128 _mm_cmpeq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ss ++FORCE_INLINE __m128 _mm_cmpeq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpeq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ps ++FORCE_INLINE __m128 _mm_cmpge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ss ++FORCE_INLINE __m128 _mm_cmpge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ps ++FORCE_INLINE __m128 _mm_cmpgt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ss ++FORCE_INLINE __m128 _mm_cmpgt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpgt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ps ++FORCE_INLINE __m128 _mm_cmple_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ss ++FORCE_INLINE __m128 _mm_cmple_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmple_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ps ++FORCE_INLINE __m128 _mm_cmplt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ss ++FORCE_INLINE __m128 _mm_cmplt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmplt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ps ++FORCE_INLINE __m128 _mm_cmpneq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ss ++FORCE_INLINE __m128 _mm_cmpneq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpneq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ps ++FORCE_INLINE __m128 _mm_cmpnge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ss ++FORCE_INLINE __m128 _mm_cmpnge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ps ++FORCE_INLINE __m128 _mm_cmpngt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ss ++FORCE_INLINE __m128 _mm_cmpngt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpngt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ps ++FORCE_INLINE __m128 _mm_cmpnle_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ss ++FORCE_INLINE __m128 _mm_cmpnle_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnle_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ps ++FORCE_INLINE __m128 _mm_cmpnlt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ss ++FORCE_INLINE __m128 _mm_cmpnlt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnlt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ps ++// ++// See also: ++// http://stackoverflow.com/questions/8627331/what-does-ordered-unordered-comparison-mean ++// http://stackoverflow.com/questions/29349621/neon-isnanval-intrinsics ++FORCE_INLINE __m128 _mm_cmpord_ps(__m128 a, __m128 b) ++{ ++ // Note: NEON does not have ordered compare builtin ++ // Need to compare a eq a and b eq b to check for NaN ++ // Do AND of results to get final ++ uint32x4_t ceqaa = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t ceqbb = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vandq_u32(ceqaa, ceqbb)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ss ++FORCE_INLINE __m128 _mm_cmpord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpord_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ps ++FORCE_INLINE __m128 _mm_cmpunord_ps(__m128 a, __m128 b) ++{ ++ uint32x4_t f32a = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t f32b = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vmvnq_u32(vandq_u32(f32a, f32b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ss ++FORCE_INLINE __m128 _mm_cmpunord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpunord_ps(a, b)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_ss ++FORCE_INLINE int _mm_comieq_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_eq_b = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_eq_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_ss ++FORCE_INLINE int _mm_comige_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_ge_b = ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_ge_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_ss ++FORCE_INLINE int _mm_comigt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_gt_b = ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_gt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_ss ++FORCE_INLINE int _mm_comile_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_le_b = ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_le_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_ss ++FORCE_INLINE int _mm_comilt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_lt_b = ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_lt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_ss ++FORCE_INLINE int _mm_comineq_ss(__m128 a, __m128 b) ++{ ++ return !_mm_comieq_ss(a, b); ++} ++ ++// Convert packed signed 32-bit integers in b to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, and copy the upper 2 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_pi2ps ++FORCE_INLINE __m128 _mm_cvt_pi2ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ps2pi ++FORCE_INLINE __m64 _mm_cvt_ps2pi(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))))); ++#else ++ return vreinterpret_m64_s32(vcvt_s32_f32(vget_low_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION))))); ++#endif ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_si2ss ++FORCE_INLINE __m128 _mm_cvt_si2ss(__m128 a, int b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ss2si ++FORCE_INLINE int _mm_cvt_ss2si(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vgetq_lane_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))), ++ 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int32_t) data; ++#endif ++} ++ ++// Convert packed 16-bit integers in a to packed single-precision (32-bit) ++// floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi16_ps ++FORCE_INLINE __m128 _mm_cvtpi16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vmovl_s16(vreinterpret_s16_m64(a)))); ++} ++ ++// Convert packed 32-bit integers in b to packed single-precision (32-bit) ++// floating-point elements, store the results in the lower 2 elements of dst, ++// and copy the upper 2 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_ps ++FORCE_INLINE __m128 _mm_cvtpi32_ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, then convert the packed signed 32-bit integers in b to ++// single-precision (32-bit) floating-point element, and store the results in ++// the upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32x2_ps ++FORCE_INLINE __m128 _mm_cvtpi32x2_ps(__m64 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vcombine_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b)))); ++} ++ ++// Convert the lower packed 8-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi8_ps ++FORCE_INLINE __m128 _mm_cvtpi8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vmovl_s16(vget_low_s16(vmovl_s8(vreinterpret_s8_m64(a)))))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 16-bit integers, and store the results in dst. Note: this intrinsic ++// will generate 0x7FFF, rather than 0x8000, for input values between 0x7FFF and ++// 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi16 ++FORCE_INLINE __m64 _mm_cvtps_pi16(__m128 a) ++{ ++ return vreinterpret_m64_s16( ++ vqmovn_s32(vreinterpretq_s32_m128i(_mm_cvtps_epi32(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi32 ++#define _mm_cvtps_pi32(a) _mm_cvt_ps2pi(a) ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 8-bit integers, and store the results in lower 4 elements of dst. ++// Note: this intrinsic will generate 0x7F, rather than 0x80, for input values ++// between 0x7F and 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi8 ++FORCE_INLINE __m64 _mm_cvtps_pi8(__m128 a) ++{ ++ return vreinterpret_m64_s8(vqmovn_s16( ++ vcombine_s16(vreinterpret_s16_m64(_mm_cvtps_pi16(a)), vdup_n_s16(0)))); ++} ++ ++// Convert packed unsigned 16-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu16_ps ++FORCE_INLINE __m128 _mm_cvtpu16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_u32(vmovl_u16(vreinterpret_u16_m64(a)))); ++} ++ ++// Convert the lower packed unsigned 8-bit integers in a to packed ++// single-precision (32-bit) floating-point elements, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu8_ps ++FORCE_INLINE __m128 _mm_cvtpu8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_u32( ++ vmovl_u16(vget_low_u16(vmovl_u8(vreinterpret_u8_m64(a)))))); ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_ss ++#define _mm_cvtsi32_ss(a, b) _mm_cvt_si2ss(a, b) ++ ++// Convert the signed 64-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_ss ++FORCE_INLINE __m128 _mm_cvtsi64_ss(__m128 a, int64_t b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Copy the lower single-precision (32-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_f32 ++FORCE_INLINE float _mm_cvtss_f32(__m128 a) ++{ ++ return vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si32 ++#define _mm_cvtss_si32(a) _mm_cvt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si64 ++FORCE_INLINE int64_t _mm_cvtss_si64(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return (int64_t) vgetq_lane_f32(vrndiq_f32(vreinterpretq_f32_m128(a)), 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int64_t) data; ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ps2pi ++FORCE_INLINE __m64 _mm_cvtt_ps2pi(__m128 a) ++{ ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ss2si ++FORCE_INLINE int _mm_cvtt_ss2si(__m128 a) ++{ ++ return vgetq_lane_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)), 0); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_pi32 ++#define _mm_cvttps_pi32(a) _mm_cvtt_ps2pi(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si32 ++#define _mm_cvttss_si32(a) _mm_cvtt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si64 ++FORCE_INLINE int64_t _mm_cvttss_si64(__m128 a) ++{ ++ return (int64_t) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Divide packed single-precision (32-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise division intrinsic, we implement ++// division by multiplying a by b's reciprocal before using the Newton-Raphson ++// method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ps ++FORCE_INLINE __m128 _mm_div_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vdivq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(b)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(a), recip)); ++#endif ++} ++ ++// Divide the lower single-precision (32-bit) floating-point element in a by the ++// lower single-precision (32-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper 3 packed elements from a to ++// the upper elements of dst. ++// Warning: ARMv7-A does not produce the same result compared to Intel and not ++// IEEE-compliant. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ss ++FORCE_INLINE __m128 _mm_div_ss(__m128 a, __m128 b) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_div_ps(a, b)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_pi16 ++#define _mm_extract_pi16(a, imm) \ ++ (int32_t) vget_lane_u16(vreinterpret_u16_m64(a), (imm)) ++ ++// Free aligned memory that was allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_free ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void _mm_free(void *addr) ++{ ++ free(addr); ++} ++#endif ++ ++FORCE_INLINE uint64_t _sse2neon_get_fpcr(void) ++{ ++ uint64_t value; ++#if defined(_MSC_VER) ++ value = _ReadStatusReg(ARM64_FPCR); ++#else ++ __asm__ __volatile__("mrs %0, FPCR" : "=r"(value)); /* read */ ++#endif ++ return value; ++} ++ ++FORCE_INLINE void _sse2neon_set_fpcr(uint64_t value) ++{ ++#if defined(_MSC_VER) ++ _WriteStatusReg(ARM64_FPCR, value); ++#else ++ __asm__ __volatile__("msr FPCR, %0" ::"r"(value)); /* write */ ++#endif ++} ++ ++// Macro: Get the flush zero bits from the MXCSR control and status register. ++// The flush zero may contain any of the following flags: _MM_FLUSH_ZERO_ON or ++// _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_FLUSH_ZERO_MODE ++FORCE_INLINE unsigned int _sse2neon_mm_get_flush_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_FLUSH_ZERO_ON : _MM_FLUSH_ZERO_OFF; ++} ++ ++// Macro: Get the rounding mode bits from the MXCSR control and status register. ++// The rounding mode may contain any of the following flags: _MM_ROUND_NEAREST, ++// _MM_ROUND_DOWN, _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_ROUNDING_MODE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ if (r.field.bit22) { ++ return r.field.bit23 ? _MM_ROUND_TOWARD_ZERO : _MM_ROUND_UP; ++ } else { ++ return r.field.bit23 ? _MM_ROUND_DOWN : _MM_ROUND_NEAREST; ++ } ++} ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_pi16 ++#define _mm_insert_pi16(a, b, imm) \ ++ vreinterpret_m64_s16(vset_lane_s16((b), vreinterpret_s16_m64(a), (imm))) ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps ++FORCE_INLINE __m128 _mm_load_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// ++// dst[31:0] := MEM[mem_addr+31:mem_addr] ++// dst[63:32] := MEM[mem_addr+31:mem_addr] ++// dst[95:64] := MEM[mem_addr+31:mem_addr] ++// dst[127:96] := MEM[mem_addr+31:mem_addr] ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps1 ++#define _mm_load_ps1 _mm_load1_ps ++ ++// Load a single-precision (32-bit) floating-point element from memory into the ++// lower of dst, and zero the upper 3 elements. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ss ++FORCE_INLINE __m128 _mm_load_ss(const float *p) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(*p, vdupq_n_f32(0), 0)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_ps ++FORCE_INLINE __m128 _mm_load1_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_dup_f32(p)); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// upper 2 elements of dst, and copy the lower 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pi ++FORCE_INLINE __m128 _mm_loadh_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vget_low_f32(a), vld1_f32((const float32_t *) p))); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// lower 2 elements of dst, and copy the upper 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pi ++FORCE_INLINE __m128 _mm_loadl_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vld1_f32((const float32_t *) p), vget_high_f32(a))); ++} ++ ++// Load 4 single-precision (32-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_ps ++FORCE_INLINE __m128 _mm_loadr_ps(const float *p) ++{ ++ float32x4_t v = vrev64q_f32(vld1q_f32(p)); ++ return vreinterpretq_m128_f32(vextq_f32(v, v, 2)); ++} ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_ps ++FORCE_INLINE __m128 _mm_loadu_ps(const float *p) ++{ ++ // for neon, alignment doesn't matter, so _mm_load_ps and _mm_loadu_ps are ++ // equivalent for neon ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load unaligned 16-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si16 ++FORCE_INLINE __m128i _mm_loadu_si16(const void *p) ++{ ++ return vreinterpretq_m128i_s16( ++ vsetq_lane_s16(*(const unaligned_int16_t *) p, vdupq_n_s16(0), 0)); ++} ++ ++// Load unaligned 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si64 ++FORCE_INLINE __m128i _mm_loadu_si64(const void *p) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(*(const unaligned_int64_t *) p, vdupq_n_s64(0), 0)); ++} ++ ++// Allocate size bytes of memory, aligned to the alignment specified in align, ++// and return a pointer to the allocated memory. _mm_free should be used to free ++// memory that is allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_malloc ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void *_mm_malloc(size_t size, size_t align) ++{ ++ void *ptr; ++ if (align == 1) ++ return malloc(size); ++ if (align == 2 || (sizeof(void *) == 8 && align == 4)) ++ align = sizeof(void *); ++ if (!posix_memalign(&ptr, align, size)) ++ return ptr; ++ return NULL; ++} ++#endif ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmove_si64 ++FORCE_INLINE void _mm_maskmove_si64(__m64 a, __m64 mask, char *mem_addr) ++{ ++ int8x8_t shr_mask = vshr_n_s8(vreinterpret_s8_m64(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x8_t masked = ++ vbsl_s8(vreinterpret_u8_s8(shr_mask), vreinterpret_s8_m64(a), ++ vreinterpret_s8_u64(vget_low_u64(vreinterpretq_u64_m128(b)))); ++ vst1_s8((int8_t *) mem_addr, masked); ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_maskmovq ++#define _m_maskmovq(a, mask, mem_addr) _mm_maskmove_si64(a, mask, mem_addr) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pi16 ++FORCE_INLINE __m64 _mm_max_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmax_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) maximum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ps ++FORCE_INLINE __m128 _mm_max_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcgtq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vmaxq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pu8 ++FORCE_INLINE __m64 _mm_max_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmax_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) maximum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ss ++FORCE_INLINE __m128 _mm_max_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_max_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pi16 ++FORCE_INLINE __m64 _mm_min_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmin_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) minimum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ps ++FORCE_INLINE __m128 _mm_min_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcltq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vminq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pu8 ++FORCE_INLINE __m64 _mm_min_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmin_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) minimum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ss ++FORCE_INLINE __m128 _mm_min_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_min_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the lower single-precision (32-bit) floating-point element from b to the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_ss ++FORCE_INLINE __m128 _mm_move_ss(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(vgetq_lane_f32(vreinterpretq_f32_m128(b), 0), ++ vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the upper 2 single-precision (32-bit) floating-point elements from b to ++// the lower 2 elements of dst, and copy the upper 2 elements from a to the ++// upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehl_ps ++FORCE_INLINE __m128 _mm_movehl_ps(__m128 a, __m128 b) ++{ ++#if defined(aarch64__) ++ return vreinterpretq_m128_u64( ++ vzip2q_u64(vreinterpretq_u64_m128(b), vreinterpretq_u64_m128(a))); ++#else ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(b32, a32)); ++#endif ++} ++ ++// Move the lower 2 single-precision (32-bit) floating-point elements from b to ++// the upper 2 elements of dst, and copy the lower 2 elements from a to the ++// lower 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movelh_ps ++FORCE_INLINE __m128 _mm_movelh_ps(__m128 __A, __m128 __B) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(__A)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(__B)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pi8 ++FORCE_INLINE int _mm_movemask_pi8(__m64 a) ++{ ++ uint8x8_t input = vreinterpret_u8_m64(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int8_t shift[8] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint8x8_t tmp = vshr_n_u8(input, 7); ++ return vaddv_u8(vshl_u8(tmp, vld1_s8(shift))); ++#else ++ // Refer the implementation of `_mm_movemask_epi8` ++ uint16x4_t high_bits = vreinterpret_u16_u8(vshr_n_u8(input, 7)); ++ uint32x2_t paired16 = ++ vreinterpret_u32_u16(vsra_n_u16(high_bits, high_bits, 7)); ++ uint8x8_t paired32 = ++ vreinterpret_u8_u32(vsra_n_u32(paired16, paired16, 14)); ++ return vget_lane_u8(paired32, 0) | ((int) vget_lane_u8(paired32, 4) << 4); ++#endif ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed single-precision (32-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_ps ++FORCE_INLINE int _mm_movemask_ps(__m128 a) ++{ ++ uint32x4_t input = vreinterpretq_u32_m128(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int32_t shift[4] = {0, 1, 2, 3}; ++ uint32x4_t tmp = vshrq_n_u32(input, 31); ++ return vaddvq_u32(vshlq_u32(tmp, vld1q_s32(shift))); ++#else ++ // Uses the exact same method as _mm_movemask_epi8, see that for details. ++ // Shift out everything but the sign bits with a 32-bit unsigned shift ++ // right. ++ uint64x2_t high_bits = vreinterpretq_u64_u32(vshrq_n_u32(input, 31)); ++ // Merge the two pairs together with a 64-bit unsigned shift right + add. ++ uint8x16_t paired = ++ vreinterpretq_u8_u64(vsraq_n_u64(high_bits, high_bits, 31)); ++ // Extract the result. ++ return vgetq_lane_u8(paired, 0) | (vgetq_lane_u8(paired, 8) << 2); ++#endif ++} ++ ++// Multiply packed single-precision (32-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ps ++FORCE_INLINE __m128 _mm_mul_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vmulq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Multiply the lower single-precision (32-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ss ++FORCE_INLINE __m128 _mm_mul_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_mul_ps(a, b)); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_pu16 ++FORCE_INLINE __m64 _mm_mulhi_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16(vshrn_n_u32( ++ vmull_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b)), 16)); ++} ++ ++// Compute the bitwise OR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_ps ++FORCE_INLINE __m128 _mm_or_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vorrq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgb ++#define _m_pavgb(a, b) _mm_avg_pu8(a, b) ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgw ++#define _m_pavgw(a, b) _mm_avg_pu16(a, b) ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pextrw ++#define _m_pextrw(a, imm) _mm_extract_pi16(a, imm) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_pinsrw ++#define _m_pinsrw(a, i, imm) _mm_insert_pi16(a, i, imm) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxsw ++#define _m_pmaxsw(a, b) _mm_max_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxub ++#define _m_pmaxub(a, b) _mm_max_pu8(a, b) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminsw ++#define _m_pminsw(a, b) _mm_min_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminub ++#define _m_pminub(a, b) _mm_min_pu8(a, b) ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmovmskb ++#define _m_pmovmskb(a) _mm_movemask_pi8(a) ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmulhuw ++#define _m_pmulhuw(a, b) _mm_mulhi_pu16(a, b) ++ ++// Fetch the line of data from memory that contains address p to a location in ++// the cache hierarchy specified by the locality hint i. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_prefetch ++FORCE_INLINE void _mm_prefetch(char const *p, int i) ++{ ++ (void) i; ++#if defined(_MSC_VER) ++ switch (i) { ++ case _MM_HINT_NTA: ++ __prefetch2(p, 1); ++ break; ++ case _MM_HINT_T0: ++ __prefetch2(p, 0); ++ break; ++ case _MM_HINT_T1: ++ __prefetch2(p, 2); ++ break; ++ case _MM_HINT_T2: ++ __prefetch2(p, 4); ++ break; ++ } ++#else ++ switch (i) { ++ case _MM_HINT_NTA: ++ __builtin_prefetch(p, 0, 0); ++ break; ++ case _MM_HINT_T0: ++ __builtin_prefetch(p, 0, 3); ++ break; ++ case _MM_HINT_T1: ++ __builtin_prefetch(p, 0, 2); ++ break; ++ case _MM_HINT_T2: ++ __builtin_prefetch(p, 0, 1); ++ break; ++ } ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_psadbw ++#define _m_psadbw(a, b) _mm_sad_pu8(a, b) ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pshufw ++#define _m_pshufw(a, imm) _mm_shuffle_pi16(a, imm) ++ ++// Compute the approximate reciprocal of packed single-precision (32-bit) ++// floating-point elements in a, and store the results in dst. The maximum ++// relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ps ++FORCE_INLINE __m128 _mm_rcp_ps(__m128 in) ++{ ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(in)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#if SSE2NEON_PRECISE_DIV ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#endif ++ return vreinterpretq_m128_f32(recip); ++} ++ ++// Compute the approximate reciprocal of the lower single-precision (32-bit) ++// floating-point element in a, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ss ++FORCE_INLINE __m128 _mm_rcp_ss(__m128 a) ++{ ++ return _mm_move_ss(a, _mm_rcp_ps(a)); ++} ++ ++// Compute the approximate reciprocal square root of packed single-precision ++// (32-bit) floating-point elements in a, and store the results in dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ps ++FORCE_INLINE __m128 _mm_rsqrt_ps(__m128 in) ++{ ++ float32x4_t out = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Generate masks for detecting whether input has any 0.0f/-0.0f ++ // (which becomes positive/negative infinity by IEEE-754 arithmetic rules). ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t neg_inf = vdupq_n_u32(0xFF800000); ++ const uint32x4_t has_pos_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(out)); ++ const uint32x4_t has_neg_zero = ++ vceqq_u32(neg_inf, vreinterpretq_u32_f32(out)); ++ ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#if SSE2NEON_PRECISE_SQRT ++ // Additional Netwon-Raphson iteration for accuracy ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#endif ++ ++ // Set output vector element to infinity/negative-infinity if ++ // the corresponding input vector element is 0.0f/-0.0f. ++ out = vbslq_f32(has_pos_zero, (float32x4_t) pos_inf, out); ++ out = vbslq_f32(has_neg_zero, (float32x4_t) neg_inf, out); ++ ++ return vreinterpretq_m128_f32(out); ++} ++ ++// Compute the approximate reciprocal square root of the lower single-precision ++// (32-bit) floating-point element in a, store the result in the lower element ++// of dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ss ++FORCE_INLINE __m128 _mm_rsqrt_ss(__m128 in) ++{ ++ return vsetq_lane_f32(vgetq_lane_f32(_mm_rsqrt_ps(in), 0), in, 0); ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_pu8 ++FORCE_INLINE __m64 _mm_sad_pu8(__m64 a, __m64 b) ++{ ++ uint64x1_t t = vpaddl_u32(vpaddl_u16( ++ vpaddl_u8(vabd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))))); ++ return vreinterpret_m64_u16( ++ vset_lane_u16((int) vget_lane_u64(t, 0), vdup_n_u16(0), 0)); ++} ++ ++// Macro: Set the flush zero bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The flush zero may contain any of the ++// following flags: _MM_FLUSH_ZERO_ON or _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_FLUSH_ZERO_MODE ++FORCE_INLINE void _sse2neon_mm_set_flush_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_FLUSH_ZERO_MASK) == _MM_FLUSH_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps ++FORCE_INLINE __m128 _mm_set_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {x, y, z, w}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps1 ++FORCE_INLINE __m128 _mm_set_ps1(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Macro: Set the rounding mode bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The rounding mode may contain any of ++// the following flags: _MM_ROUND_NEAREST, _MM_ROUND_DOWN, _MM_ROUND_UP, ++// _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_ROUNDING_MODE ++FORCE_INLINE void _MM_SET_ROUNDING_MODE(int rounding) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ switch (rounding) { ++ case _MM_ROUND_TOWARD_ZERO: ++ r.field.bit22 = 1; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_DOWN: ++ r.field.bit22 = 0; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_UP: ++ r.field.bit22 = 1; ++ r.field.bit23 = 0; ++ break; ++ default: //_MM_ROUND_NEAREST ++ r.field.bit22 = 0; ++ r.field.bit23 = 0; ++ } ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Copy single-precision (32-bit) floating-point element a to the lower element ++// of dst, and zero the upper 3 elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ss ++FORCE_INLINE __m128 _mm_set_ss(float a) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(a, vdupq_n_f32(0), 0)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_ps ++FORCE_INLINE __m128 _mm_set1_ps(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Set the MXCSR control and status register with the value in unsigned 32-bit ++// integer a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setcsr ++// FIXME: _mm_setcsr() implementation supports changing the rounding mode only. ++FORCE_INLINE void _mm_setcsr(unsigned int a) ++{ ++ _MM_SET_ROUNDING_MODE(a); ++} ++ ++// Get the unsigned 32-bit value of the MXCSR control and status register. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_getcsr ++// FIXME: _mm_getcsr() implementation supports reading the rounding mode only. ++FORCE_INLINE unsigned int _mm_getcsr(void) ++{ ++ return _MM_GET_ROUNDING_MODE(); ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_ps ++FORCE_INLINE __m128 _mm_setr_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {w, z, y, x}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Return vector of type __m128 with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_ps ++FORCE_INLINE __m128 _mm_setzero_ps(void) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(0)); ++} ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi16 ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pi16(a, imm) \ ++ vreinterpret_m64_s16(vshuffle_s16( \ ++ vreinterpret_s16_m64(a), vreinterpret_s16_m64(a), (imm & 0x3), \ ++ ((imm >> 2) & 0x3), ((imm >> 4) & 0x3), ((imm >> 6) & 0x3))) ++#else ++#define _mm_shuffle_pi16(a, imm) \ ++ _sse2neon_define1( \ ++ __m64, a, int16x4_t ret; \ ++ ret = vmov_n_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), (imm) & (0x3))); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpret_m64_s16(ret));) ++#endif ++ ++// Perform a serializing operation on all store-to-memory instructions that were ++// issued prior to this instruction. Guarantees that every store instruction ++// that precedes, in program order, is globally visible before any store ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sfence ++FORCE_INLINE void _mm_sfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory and store-to-memory ++// instructions that were issued prior to this instruction. Guarantees that ++// every memory access that precedes, in program order, the memory fence ++// instruction is globally visible before any memory instruction which follows ++// the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mfence ++FORCE_INLINE void _mm_mfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory instructions that ++// were issued prior to this instruction. Guarantees that every load instruction ++// that precedes, in program order, is globally visible before any load ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lfence ++FORCE_INLINE void _mm_lfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// FORCE_INLINE __m128 _mm_shuffle_ps(__m128 a, __m128 b, __constrange(0,255) ++// int imm) ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_ps(a, b, imm) \ ++ __extension__({ \ ++ float32x4_t _input1 = vreinterpretq_f32_m128(a); \ ++ float32x4_t _input2 = vreinterpretq_f32_m128(b); \ ++ float32x4_t _shuf = \ ++ vshuffleq_s32(_input1, _input2, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ (((imm) >> 4) & 0x3) + 4, (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128_f32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_ps(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128, a, b, __m128 ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_1032(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_ps_2301(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_ps_0321(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_ps_2103(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_movelh_ps(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_1001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_ps_0101(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 1, 0): \ ++ ret = _mm_shuffle_ps_3210(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 1, 1): \ ++ ret = _mm_shuffle_ps_0011(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 2, 2): \ ++ ret = _mm_shuffle_ps_0022(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 0, 0): \ ++ ret = _mm_shuffle_ps_2200(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 0, 2): \ ++ ret = _mm_shuffle_ps_3202(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 3, 2): \ ++ ret = _mm_movehl_ps(_b, _a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 3, 3): \ ++ ret = _mm_shuffle_ps_1133(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 1, 0): \ ++ ret = _mm_shuffle_ps_2010(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_2001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_2032(_a, _b); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_ps_default(_a, _b, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Compute the square root of packed single-precision (32-bit) floating-point ++// elements in a, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise square root intrinsic, we implement ++// square root by multiplying input in with its reciprocal square root before ++// using the Newton-Raphson method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ps ++FORCE_INLINE __m128 _mm_sqrt_ps(__m128 in) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) && !SSE2NEON_PRECISE_SQRT ++ return vreinterpretq_m128_f32(vsqrtq_f32(vreinterpretq_f32_m128(in))); ++#else ++ float32x4_t recip = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Test for vrsqrteq_f32(0) -> positive infinity case. ++ // Change to zero, so that s * 1/sqrt(s) result is zero too. ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t div_by_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(recip)); ++ recip = vreinterpretq_f32_u32( ++ vandq_u32(vmvnq_u32(div_by_zero), vreinterpretq_u32_f32(recip))); ++ ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ ++ // sqrt(s) = s * 1/sqrt(s) ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(in), recip)); ++#endif ++} ++ ++// Compute the square root of the lower single-precision (32-bit) floating-point ++// element in a, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ss ++FORCE_INLINE __m128 _mm_sqrt_ss(__m128 in) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_sqrt_ps(in)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(in), 0)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps ++FORCE_INLINE void _mm_store_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps1 ++FORCE_INLINE void _mm_store_ps1(float *p, __m128 a) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ vst1q_f32(p, vdupq_n_f32(a0)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ss ++FORCE_INLINE void _mm_store_ss(float *p, __m128 a) ++{ ++ vst1q_lane_f32(p, vreinterpretq_f32_m128(a), 0); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store1_ps ++#define _mm_store1_ps _mm_store_ps1 ++ ++// Store the upper 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pi ++FORCE_INLINE void _mm_storeh_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_high_f32(a)); ++} ++ ++// Store the lower 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pi ++FORCE_INLINE void _mm_storel_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_low_f32(a)); ++} ++ ++// Store 4 single-precision (32-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_ps ++FORCE_INLINE void _mm_storer_ps(float *p, __m128 a) ++{ ++ float32x4_t tmp = vrev64q_f32(vreinterpretq_f32_m128(a)); ++ float32x4_t rev = vextq_f32(tmp, tmp, 2); ++ vst1q_f32(p, rev); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_ps ++FORCE_INLINE void _mm_storeu_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Stores 16-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si16 ++FORCE_INLINE void _mm_storeu_si16(void *p, __m128i a) ++{ ++ vst1q_lane_s16((int16_t *) p, vreinterpretq_s16_m128i(a), 0); ++} ++ ++// Stores 64-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si64 ++FORCE_INLINE void _mm_storeu_si64(void *p, __m128i a) ++{ ++ vst1q_lane_s64((int64_t *) p, vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Store 64-bits of integer data from a into memory using a non-temporal memory ++// hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pi ++FORCE_INLINE void _mm_stream_pi(__m64 *p, __m64 a) ++{ ++ vst1_s64((int64_t *) p, vreinterpret_s64_m64(a)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating- ++// point elements) from a into memory using a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_ps ++FORCE_INLINE void _mm_stream_ps(float *p, __m128 a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (float32x4_t *) p); ++#else ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++#endif ++} ++ ++// Subtract packed single-precision (32-bit) floating-point elements in b from ++// packed single-precision (32-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ps ++FORCE_INLINE __m128 _mm_sub_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Subtract the lower single-precision (32-bit) floating-point element in b from ++// the lower single-precision (32-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper 3 packed elements from ++// a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ss ++FORCE_INLINE __m128 _mm_sub_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_sub_ps(a, b)); ++} ++ ++// Macro: Transpose the 4x4 matrix formed by the 4 rows of single-precision ++// (32-bit) floating-point elements in row0, row1, row2, and row3, and store the ++// transposed matrix in these vectors (row0 now contains column 0, etc.). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=MM_TRANSPOSE4_PS ++#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \ ++ do { \ ++ float32x4x2_t ROW01 = vtrnq_f32(row0, row1); \ ++ float32x4x2_t ROW23 = vtrnq_f32(row2, row3); \ ++ row0 = vcombine_f32(vget_low_f32(ROW01.val[0]), \ ++ vget_low_f32(ROW23.val[0])); \ ++ row1 = vcombine_f32(vget_low_f32(ROW01.val[1]), \ ++ vget_low_f32(ROW23.val[1])); \ ++ row2 = vcombine_f32(vget_high_f32(ROW01.val[0]), \ ++ vget_high_f32(ROW23.val[0])); \ ++ row3 = vcombine_f32(vget_high_f32(ROW01.val[1]), \ ++ vget_high_f32(ROW23.val[1])); \ ++ } while (0) ++ ++// according to the documentation, these intrinsics behave the same as the ++// non-'u' versions. We'll just alias them here. ++#define _mm_ucomieq_ss _mm_comieq_ss ++#define _mm_ucomige_ss _mm_comige_ss ++#define _mm_ucomigt_ss _mm_comigt_ss ++#define _mm_ucomile_ss _mm_comile_ss ++#define _mm_ucomilt_ss _mm_comilt_ss ++#define _mm_ucomineq_ss _mm_comineq_ss ++ ++// Return vector of type __m128i with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_undefined_si128 ++FORCE_INLINE __m128i _mm_undefined_si128(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128i a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_si128(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Return vector of type __m128 with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_ps ++FORCE_INLINE __m128 _mm_undefined_ps(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128 a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_ps(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the high half a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_ps ++FORCE_INLINE __m128 _mm_unpackhi_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_ps ++FORCE_INLINE __m128 _mm_unpacklo_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Compute the bitwise XOR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_ps ++FORCE_INLINE __m128 _mm_xor_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ veorq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++/* SSE2 */ ++ ++// Add packed 16-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi16 ++FORCE_INLINE __m128i _mm_add_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed 32-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi32 ++FORCE_INLINE __m128i _mm_add_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vaddq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Add packed 64-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi64 ++FORCE_INLINE __m128i _mm_add_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vaddq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Add packed 8-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi8 ++FORCE_INLINE __m128i _mm_add_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed double-precision (64-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_pd ++FORCE_INLINE __m128d _mm_add_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1] + db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add the lower double-precision (64-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper element from ++// a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_sd ++FORCE_INLINE __m128d _mm_add_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_add_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add 64-bit integers a and b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_si64 ++FORCE_INLINE __m64 _mm_add_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vadd_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Add packed signed 16-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi16 ++FORCE_INLINE __m128i _mm_adds_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed signed 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi8 ++FORCE_INLINE __m128i _mm_adds_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed unsigned 16-bit integers in a and b using saturation, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu16 ++FORCE_INLINE __m128i _mm_adds_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqaddq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Add packed unsigned 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu8 ++FORCE_INLINE __m128i _mm_adds_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compute the bitwise AND of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_pd ++FORCE_INLINE __m128d _mm_and_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vandq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_si128 ++FORCE_INLINE __m128i _mm_and_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vandq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compute the bitwise NOT of packed double-precision (64-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_pd ++FORCE_INLINE __m128d _mm_andnot_pd(__m128d a, __m128d b) ++{ ++ // *NOTE* argument swap ++ return vreinterpretq_m128d_s64( ++ vbicq_s64(vreinterpretq_s64_m128d(b), vreinterpretq_s64_m128d(a))); ++} ++ ++// Compute the bitwise NOT of 128 bits (representing integer data) in a and then ++// AND with b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_si128 ++FORCE_INLINE __m128i _mm_andnot_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vbicq_s32(vreinterpretq_s32_m128i(b), ++ vreinterpretq_s32_m128i(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu16 ++FORCE_INLINE __m128i _mm_avg_epu16(__m128i a, __m128i b) ++{ ++ return (__m128i) vrhaddq_u16(vreinterpretq_u16_m128i(a), ++ vreinterpretq_u16_m128i(b)); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu8 ++FORCE_INLINE __m128i _mm_avg_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vrhaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bslli_si128 ++#define _mm_bslli_si128(a, imm) _mm_slli_si128(a, imm) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bsrli_si128 ++#define _mm_bsrli_si128(a, imm) _mm_srli_si128(a, imm) ++ ++// Cast vector of type __m128d to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_ps ++FORCE_INLINE __m128 _mm_castpd_ps(__m128d a) ++{ ++ return vreinterpretq_m128_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128d to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_si128 ++FORCE_INLINE __m128i _mm_castpd_si128(__m128d a) ++{ ++ return vreinterpretq_m128i_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128 to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_pd ++FORCE_INLINE __m128d _mm_castps_pd(__m128 a) ++{ ++ return vreinterpretq_m128d_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128 to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_si128 ++FORCE_INLINE __m128i _mm_castps_si128(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128i to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_pd ++FORCE_INLINE __m128d _mm_castsi128_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vreinterpretq_f64_m128i(a)); ++#else ++ return vreinterpretq_m128d_f32(vreinterpretq_f32_m128i(a)); ++#endif ++} ++ ++// Cast vector of type __m128i to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_ps ++FORCE_INLINE __m128 _mm_castsi128_ps(__m128i a) ++{ ++ return vreinterpretq_m128_s32(vreinterpretq_s32_m128i(a)); ++} ++ ++// Invalidate and flush the cache line that contains p from all levels of the ++// cache hierarchy. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clflush ++#if defined(__APPLE__) ++#include ++#endif ++FORCE_INLINE void _mm_clflush(void const *p) ++{ ++ (void) p; ++ ++ /* sys_icache_invalidate is supported since macOS 10.5. ++ * However, it does not work on non-jailbroken iOS devices, although the ++ * compilation is successful. ++ */ ++#if defined(__APPLE__) ++ sys_icache_invalidate((void *) (uintptr_t) p, SSE2NEON_CACHELINE_SIZE); ++#elif defined(__GNUC__) || defined(__clang__) ++ uintptr_t ptr = (uintptr_t) p; ++ __builtin___clear_cache((char *) ptr, ++ (char *) ptr + SSE2NEON_CACHELINE_SIZE); ++#elif (_MSC_VER) && SSE2NEON_INCLUDE_WINDOWS_H ++ FlushInstructionCache(GetCurrentProcess(), p, SSE2NEON_CACHELINE_SIZE); ++#endif ++} ++ ++// Compare packed 16-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi16 ++FORCE_INLINE __m128i _mm_cmpeq_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vceqq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed 32-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi32 ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vceqq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed 8-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi8 ++FORCE_INLINE __m128i _mm_cmpeq_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vceqq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_pd ++FORCE_INLINE __m128d _mm_cmpeq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_sd ++FORCE_INLINE __m128d _mm_cmpeq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpeq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_pd ++FORCE_INLINE __m128d _mm_cmpge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) >= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_sd ++FORCE_INLINE __m128d _mm_cmpge_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpge_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi16 ++FORCE_INLINE __m128i _mm_cmpgt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcgtq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi32 ++FORCE_INLINE __m128i _mm_cmpgt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcgtq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi8 ++FORCE_INLINE __m128i _mm_cmpgt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcgtq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_pd ++FORCE_INLINE __m128d _mm_cmpgt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_sd ++FORCE_INLINE __m128d _mm_cmpgt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpgt_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_pd ++FORCE_INLINE __m128d _mm_cmple_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) <= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_sd ++FORCE_INLINE __m128d _mm_cmple_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmple_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtw instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi16 ++FORCE_INLINE __m128i _mm_cmplt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcltq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtd instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi32 ++FORCE_INLINE __m128i _mm_cmplt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcltq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtb instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi8 ++FORCE_INLINE __m128i _mm_cmplt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcltq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_pd ++FORCE_INLINE __m128d _mm_cmplt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_sd ++FORCE_INLINE __m128d _mm_cmplt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmplt_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_pd ++FORCE_INLINE __m128d _mm_cmpneq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_s32(vmvnq_s32(vreinterpretq_s32_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vmvnq_u32(vandq_u32(cmp, swapped))); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_sd ++FORCE_INLINE __m128d _mm_cmpneq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpneq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_pd ++FORCE_INLINE __m128d _mm_cmpnge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) >= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) >= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_sd ++FORCE_INLINE __m128d _mm_cmpnge_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnge_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_cmpngt_pd ++FORCE_INLINE __m128d _mm_cmpngt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) > (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) > (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_sd ++FORCE_INLINE __m128d _mm_cmpngt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpngt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_pd ++FORCE_INLINE __m128d _mm_cmpnle_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) <= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) <= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_sd ++FORCE_INLINE __m128d _mm_cmpnle_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnle_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_pd ++FORCE_INLINE __m128d _mm_cmpnlt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) < (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) < (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_sd ++FORCE_INLINE __m128d _mm_cmpnlt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnlt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_pd ++FORCE_INLINE __m128d _mm_cmpord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Excluding NaNs, any two floating point numbers can be compared. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_u64(vandq_u64(not_nan_a, not_nan_b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_sd ++FORCE_INLINE __m128d _mm_cmpord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_pd ++FORCE_INLINE __m128d _mm_cmpunord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Two NaNs are not equal in comparison operation. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_s32( ++ vmvnq_s32(vreinterpretq_s32_u64(vandq_u64(not_nan_a, not_nan_b)))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_sd ++FORCE_INLINE __m128d _mm_cmpunord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpunord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_sd ++FORCE_INLINE int _mm_comige_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgeq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 >= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_sd ++FORCE_INLINE int _mm_comigt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgtq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 > *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_sd ++FORCE_INLINE int _mm_comile_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcleq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 <= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_sd ++FORCE_INLINE int _mm_comilt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcltq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 < *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_sd ++FORCE_INLINE int _mm_comieq_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vceqq_f64(a, b), 0) & 0x1; ++#else ++ uint32x4_t a_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(a)); ++ uint32x4_t b_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(b), vreinterpretq_u32_m128d(b)); ++ uint32x4_t a_and_b_not_nan = vandq_u32(a_not_nan, b_not_nan); ++ uint32x4_t a_eq_b = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint64x2_t and_results = vandq_u64(vreinterpretq_u64_u32(a_and_b_not_nan), ++ vreinterpretq_u64_u32(a_eq_b)); ++ return vgetq_lane_u64(and_results, 0) & 0x1; ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_sd ++FORCE_INLINE int _mm_comineq_sd(__m128d a, __m128d b) ++{ ++ return !_mm_comieq_sd(a, b); ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_pd ++FORCE_INLINE __m128d _mm_cvtepi32_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a))))); ++#else ++ double a0 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++ double a1 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_ps ++FORCE_INLINE __m128 _mm_cvtepi32_ps(__m128i a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_epi32 ++FORCE_INLINE __m128i _mm_cvtpd_epi32(__m128d a) ++{ ++// vrnd32xq_f64 not supported on clang ++#if defined(__ARM_FEATURE_FRINT) && !defined(__clang__) ++ float64x2_t rounded = vrnd32xq_f64(vreinterpretq_f64_m128d(a)); ++ int64x2_t integers = vcvtq_s64_f64(rounded); ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vmovn_s64(integers), vdup_n_s32(0))); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) d1, (int32_t) d0); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_pi32 ++FORCE_INLINE __m64 _mm_cvtpd_pi32(__m128d a) ++{ ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) d0, (int32_t) d1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed single-precision (32-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_ps ++FORCE_INLINE __m128 _mm_cvtpd_ps(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float32x2_t tmp = vcvt_f32_f64(vreinterpretq_f64_m128d(a)); ++ return vreinterpretq_m128_f32(vcombine_f32(tmp, vdup_n_f32(0))); ++#else ++ float a0 = (float) ((double *) &a)[0]; ++ float a1 = (float) ((double *) &a)[1]; ++ return _mm_set_ps(0, 0, a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_pd ++FORCE_INLINE __m128d _mm_cvtpi32_pd(__m64 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vreinterpret_s32_m64(a)))); ++#else ++ double a0 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 0); ++ double a1 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_epi32 ++// *NOTE*. The default rounding mode on SSE is 'round to even', which ARMv7-A ++// does not support! It is supported on ARMv8-A however. ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128 a) ++{ ++#if defined(__ARM_FEATURE_FRINT) ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vrnd32xq_f32(a))); ++#elif (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: ++ return vreinterpretq_m128i_s32(vcvtnq_s32_f32(a)); ++ case _MM_ROUND_DOWN: ++ return vreinterpretq_m128i_s32(vcvtmq_s32_f32(a)); ++ case _MM_ROUND_UP: ++ return vreinterpretq_m128i_s32(vcvtpq_s32_f32(a)); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(a)); ++ } ++#else ++ float *f = (float *) &a; ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128i_s32( ++ vbslq_s32(is_delta_half, r_even, r_normal)); ++ } ++ case _MM_ROUND_DOWN: ++ return _mm_set_epi32(floorf(f[3]), floorf(f[2]), floorf(f[1]), ++ floorf(f[0])); ++ case _MM_ROUND_UP: ++ return _mm_set_epi32(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ++ ceilf(f[0])); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return _mm_set_epi32((int32_t) f[3], (int32_t) f[2], (int32_t) f[1], ++ (int32_t) f[0]); ++ } ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed double-precision (64-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pd ++FORCE_INLINE __m128d _mm_cvtps_pd(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvt_f64_f32(vget_low_f32(vreinterpretq_f32_m128(a)))); ++#else ++ double a0 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ double a1 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Copy the lower double-precision (64-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_f64 ++FORCE_INLINE double _mm_cvtsd_f64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (double) vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0); ++#else ++ return ((double *) &a)[0]; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si32 ++FORCE_INLINE int32_t _mm_cvtsd_si32(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int32_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int32_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64 ++FORCE_INLINE int64_t _mm_cvtsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int64_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64x ++#define _mm_cvtsd_si64x _mm_cvtsd_si64 ++ ++// Convert the lower double-precision (64-bit) floating-point element in b to a ++// single-precision (32-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_ss ++FORCE_INLINE __m128 _mm_cvtsd_ss(__m128 a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32(vsetq_lane_f32( ++ vget_lane_f32(vcvt_f32_f64(vreinterpretq_f64_m128d(b)), 0), ++ vreinterpretq_f32_m128(a), 0)); ++#else ++ return vreinterpretq_m128_f32(vsetq_lane_f32((float) ((double *) &b)[0], ++ vreinterpretq_f32_m128(a), 0)); ++#endif ++} ++ ++// Copy the lower 32-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si32 ++FORCE_INLINE int _mm_cvtsi128_si32(__m128i a) ++{ ++ return vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64 ++FORCE_INLINE int64_t _mm_cvtsi128_si64(__m128i a) ++{ ++ return vgetq_lane_s64(vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Convert the signed 32-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_sd ++FORCE_INLINE __m128d _mm_cvtsi32_sd(__m128d a, int32_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Copy 32-bit integer a to the lower elements of dst, and zero the upper ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_si128 ++FORCE_INLINE __m128i _mm_cvtsi32_si128(int a) ++{ ++ return vreinterpretq_m128i_s32(vsetq_lane_s32(a, vdupq_n_s32(0), 0)); ++} ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_sd ++FORCE_INLINE __m128d _mm_cvtsi64_sd(__m128d a, int64_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_si128 ++FORCE_INLINE __m128i _mm_cvtsi64_si128(int64_t a) ++{ ++ return vreinterpretq_m128i_s64(vsetq_lane_s64(a, vdupq_n_s64(0), 0)); ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_si128 ++#define _mm_cvtsi64x_si128(a) _mm_cvtsi64_si128(a) ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_sd ++#define _mm_cvtsi64x_sd(a, b) _mm_cvtsi64_sd(a, b) ++ ++// Convert the lower single-precision (32-bit) floating-point element in b to a ++// double-precision (64-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_sd ++FORCE_INLINE __m128d _mm_cvtss_sd(__m128d a, __m128 b) ++{ ++ double d = (double) vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(d, vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &d, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_epi32 ++FORCE_INLINE __m128i _mm_cvttpd_epi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) a1, (int32_t) a0); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_pi32 ++FORCE_INLINE __m64 _mm_cvttpd_pi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) a0, (int32_t) a1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_epi32 ++FORCE_INLINE __m128i _mm_cvttps_epi32(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a))); ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si32 ++FORCE_INLINE int32_t _mm_cvttsd_si32(__m128d a) ++{ ++ double ret = *((double *) &a); ++ return (int32_t) ret; ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64 ++FORCE_INLINE int64_t _mm_cvttsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_s64(vcvtq_s64_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ double ret = *((double *) &a); ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64x ++#define _mm_cvttsd_si64x(a) _mm_cvttsd_si64(a) ++ ++// Divide packed double-precision (64-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_pd ++FORCE_INLINE __m128d _mm_div_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] / db[0]; ++ c[1] = da[1] / db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Divide the lower double-precision (64-bit) floating-point element in a by the ++// lower double-precision (64-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper element from a to the upper ++// element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_sd ++FORCE_INLINE __m128d _mm_div_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t tmp = ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1), tmp, 1)); ++#else ++ return _mm_move_sd(a, _mm_div_pd(a, b)); ++#endif ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi16 ++// FORCE_INLINE int _mm_extract_epi16(__m128i a, __constrange(0,8) int imm) ++#define _mm_extract_epi16(a, imm) \ ++ vgetq_lane_u16(vreinterpretq_u16_m128i(a), (imm)) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi16 ++// FORCE_INLINE __m128i _mm_insert_epi16(__m128i a, int b, ++// __constrange(0,8) int imm) ++#define _mm_insert_epi16(a, b, imm) \ ++ vreinterpretq_m128i_s16( \ ++ vsetq_lane_s16((b), vreinterpretq_s16_m128i(a), (imm))) ++ ++// Load 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd ++FORCE_INLINE __m128d _mm_load_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64(p)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], fp[2], fp[3]}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd1 ++#define _mm_load_pd1 _mm_load1_pd ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower of dst, and zero the upper element. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_sd ++FORCE_INLINE __m128d _mm_load_sd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(*p, vdupq_n_f64(0), 0)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], 0, 0}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_si128 ++FORCE_INLINE __m128i _mm_load_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const int32_t *) p)); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_pd ++FORCE_INLINE __m128d _mm_load1_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_dup_f64(p)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(const int64_t *) p)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// upper element of dst, and copy the lower element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pd ++FORCE_INLINE __m128d _mm_loadh_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vget_low_f64(vreinterpretq_f64_m128d(a)), vld1_f64(p))); ++#else ++ return vreinterpretq_m128d_f32(vcombine_f32( ++ vget_low_f32(vreinterpretq_f32_m128d(a)), vld1_f32((const float *) p))); ++#endif ++} ++ ++// Load 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_epi64 ++FORCE_INLINE __m128i _mm_loadl_epi64(__m128i const *p) ++{ ++ /* Load the lower 64 bits of the value pointed to by p into the ++ * lower 64 bits of the result, zeroing the upper 64 bits of the result. ++ */ ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vld1_s32((int32_t const *) p), vcreate_s32(0))); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower element of dst, and copy the upper element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pd ++FORCE_INLINE __m128d _mm_loadl_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vld1_f64(p), vget_high_f64(vreinterpretq_f64_m128d(a)))); ++#else ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vld1_f32((const float *) p), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++#endif ++} ++ ++// Load 2 double-precision (64-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_pd ++FORCE_INLINE __m128d _mm_loadr_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t v = vld1q_f64(p); ++ return vreinterpretq_m128d_f64(vextq_f64(v, v, 1)); ++#else ++ int64x2_t v = vld1q_s64((const int64_t *) p); ++ return vreinterpretq_m128d_s64(vextq_s64(v, v, 1)); ++#endif ++} ++ ++// Loads two double-precision from unaligned memory, floating-point values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_pd ++FORCE_INLINE __m128d _mm_loadu_pd(const double *p) ++{ ++ return _mm_load_pd(p); ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si128 ++FORCE_INLINE __m128i _mm_loadu_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const unaligned_int32_t *) p)); ++} ++ ++// Load unaligned 32-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si32 ++FORCE_INLINE __m128i _mm_loadu_si32(const void *p) ++{ ++ return vreinterpretq_m128i_s32( ++ vsetq_lane_s32(*(const unaligned_int32_t *) p, vdupq_n_s32(0), 0)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Horizontally add adjacent pairs of intermediate ++// 32-bit integers, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_madd_epi16 ++FORCE_INLINE __m128i _mm_madd_epi16(__m128i a, __m128i b) ++{ ++ int32x4_t low = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t high = ++ vmull_high_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)); ++ ++ return vreinterpretq_m128i_s32(vpaddq_s32(low, high)); ++#else ++ int32x4_t high = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ int32x2_t low_sum = vpadd_s32(vget_low_s32(low), vget_high_s32(low)); ++ int32x2_t high_sum = vpadd_s32(vget_low_s32(high), vget_high_s32(high)); ++ ++ return vreinterpretq_m128i_s32(vcombine_s32(low_sum, high_sum)); ++#endif ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. mem_addr does not need to be aligned ++// on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmoveu_si128 ++FORCE_INLINE void _mm_maskmoveu_si128(__m128i a, __m128i mask, char *mem_addr) ++{ ++ int8x16_t shr_mask = vshrq_n_s8(vreinterpretq_s8_m128i(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x16_t masked = ++ vbslq_s8(vreinterpretq_u8_s8(shr_mask), vreinterpretq_s8_m128i(a), ++ vreinterpretq_s8_m128(b)); ++ vst1q_s8((int8_t *) mem_addr, masked); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi16 ++FORCE_INLINE __m128i _mm_max_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmaxq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu8 ++FORCE_INLINE __m128i _mm_max_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vmaxq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pd ++FORCE_INLINE __m128d _mm_max_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcgtq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vmaxq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? a1 : b1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_sd ++FORCE_INLINE __m128d _mm_max_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_max_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] > db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi16 ++FORCE_INLINE __m128i _mm_min_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vminq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu8 ++FORCE_INLINE __m128i _mm_min_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vminq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pd ++FORCE_INLINE __m128d _mm_min_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcltq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vminq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? a1 : b1; ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_sd ++FORCE_INLINE __m128d _mm_min_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_min_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] < db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to the lower element of dst, and zero the ++// upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_epi64 ++FORCE_INLINE __m128i _mm_move_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(0, vreinterpretq_s64_m128i(a), 1)); ++} ++ ++// Move the lower double-precision (64-bit) floating-point element from b to the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_sd ++FORCE_INLINE __m128d _mm_move_sd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vget_low_f32(vreinterpretq_f32_m128d(b)), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_epi8 ++FORCE_INLINE int _mm_movemask_epi8(__m128i a) ++{ ++ // Use increasingly wide shifts+adds to collect the sign bits ++ // together. ++ // Since the widening shifts would be rather confusing to follow in little ++ // endian, everything will be illustrated in big endian order instead. This ++ // has a different result - the bits would actually be reversed on a big ++ // endian machine. ++ ++ // Starting input (only half the elements are shown): ++ // 89 ff 1d c0 00 10 99 33 ++ uint8x16_t input = vreinterpretq_u8_m128i(a); ++ ++ // Shift out everything but the sign bits with an unsigned shift right. ++ // ++ // Bytes of the vector:: ++ // 89 ff 1d c0 00 10 99 33 ++ // \ \ \ \ \ \ \ \ high_bits = (uint16x4_t)(input >> 7) ++ // | | | | | | | | ++ // 01 01 00 01 00 00 01 00 ++ // ++ // Bits of first important lane(s): ++ // 10001001 (89) ++ // \______ ++ // | ++ // 00000001 (01) ++ uint16x8_t high_bits = vreinterpretq_u16_u8(vshrq_n_u8(input, 7)); ++ ++ // Merge the even lanes together with a 16-bit unsigned shift right + add. ++ // 'xx' represents garbage data which will be ignored in the final result. ++ // In the important bytes, the add functions like a binary OR. ++ // ++ // 01 01 00 01 00 00 01 00 ++ // \_ | \_ | \_ | \_ | paired16 = (uint32x4_t)(input + (input >> 7)) ++ // \| \| \| \| ++ // xx 03 xx 01 xx 00 xx 02 ++ // ++ // 00000001 00000001 (01 01) ++ // \_______ | ++ // \| ++ // xxxxxxxx xxxxxx11 (xx 03) ++ uint32x4_t paired16 = ++ vreinterpretq_u32_u16(vsraq_n_u16(high_bits, high_bits, 7)); ++ ++ // Repeat with a wider 32-bit shift + add. ++ // xx 03 xx 01 xx 00 xx 02 ++ // \____ | \____ | paired32 = (uint64x1_t)(paired16 + (paired16 >> ++ // 14)) ++ // \| \| ++ // xx xx xx 0d xx xx xx 02 ++ // ++ // 00000011 00000001 (03 01) ++ // \\_____ || ++ // '----.\|| ++ // xxxxxxxx xxxx1101 (xx 0d) ++ uint64x2_t paired32 = ++ vreinterpretq_u64_u32(vsraq_n_u32(paired16, paired16, 14)); ++ ++ // Last, an even wider 64-bit shift + add to get our result in the low 8 bit ++ // lanes. xx xx xx 0d xx xx xx 02 ++ // \_________ | paired64 = (uint8x8_t)(paired32 + (paired32 >> ++ // 28)) ++ // \| ++ // xx xx xx xx xx xx xx d2 ++ // ++ // 00001101 00000010 (0d 02) ++ // \ \___ | | ++ // '---. \| | ++ // xxxxxxxx 11010010 (xx d2) ++ uint8x16_t paired64 = ++ vreinterpretq_u8_u64(vsraq_n_u64(paired32, paired32, 28)); ++ ++ // Extract the low 8 bits from each 64-bit lane with 2 8-bit extracts. ++ // xx xx xx xx xx xx xx d2 ++ // || return paired64[0] ++ // d2 ++ // Note: Little endian would return the correct value 4b (01001011) instead. ++ return vgetq_lane_u8(paired64, 0) | ((int) vgetq_lane_u8(paired64, 8) << 8); ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed double-precision (64-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pd ++FORCE_INLINE int _mm_movemask_pd(__m128d a) ++{ ++ uint64x2_t input = vreinterpretq_u64_m128d(a); ++ uint64x2_t high_bits = vshrq_n_u64(input, 63); ++ return (int) (vgetq_lane_u64(high_bits, 0) | ++ (vgetq_lane_u64(high_bits, 1) << 1)); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movepi64_pi64 ++FORCE_INLINE __m64 _mm_movepi64_pi64(__m128i a) ++{ ++ return vreinterpret_m64_s64(vget_low_s64(vreinterpretq_s64_m128i(a))); ++} ++ ++// Copy the 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movpi64_epi64 ++FORCE_INLINE __m128i _mm_movpi64_epi64(__m64 a) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vreinterpret_s64_m64(a), vdup_n_s64(0))); ++} ++ ++// Multiply the low unsigned 32-bit integers from each packed 64-bit element in ++// a and b, and store the unsigned 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epu32 ++FORCE_INLINE __m128i _mm_mul_epu32(__m128i a, __m128i b) ++{ ++ // vmull_u32 upcasts instead of masking, so we downcast. ++ uint32x2_t a_lo = vmovn_u64(vreinterpretq_u64_m128i(a)); ++ uint32x2_t b_lo = vmovn_u64(vreinterpretq_u64_m128i(b)); ++ return vreinterpretq_m128i_u64(vmull_u32(a_lo, b_lo)); ++} ++ ++// Multiply packed double-precision (64-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_pd ++FORCE_INLINE __m128d _mm_mul_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vmulq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] * db[0]; ++ c[1] = da[1] * db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Multiply the lower double-precision (64-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper element ++// from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_mul_sd ++FORCE_INLINE __m128d _mm_mul_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_mul_pd(a, b)); ++} ++ ++// Multiply the low unsigned 32-bit integers from a and b, and store the ++// unsigned 64-bit result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_su32 ++FORCE_INLINE __m64 _mm_mul_su32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u64(vget_low_u64( ++ vmull_u32(vreinterpret_u32_m64(a), vreinterpret_u32_m64(b)))); ++} ++ ++// Multiply the packed signed 16-bit integers in a and b, producing intermediate ++// 32-bit integers, and store the high 16 bits of the intermediate integers in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epi16 ++FORCE_INLINE __m128i _mm_mulhi_epi16(__m128i a, __m128i b) ++{ ++ /* FIXME: issue with large values because of result saturation */ ++ // int16x8_t ret = vqdmulhq_s16(vreinterpretq_s16_m128i(a), ++ // vreinterpretq_s16_m128i(b)); /* =2*a*b */ return ++ // vreinterpretq_m128i_s16(vshrq_n_s16(ret, 1)); ++ int16x4_t a3210 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b3210 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab3210 = vmull_s16(a3210, b3210); /* 3333222211110000 */ ++ int16x4_t a7654 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b7654 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab7654 = vmull_s16(a7654, b7654); /* 7777666655554444 */ ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_s32(ab3210), vreinterpretq_u16_s32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epu16 ++FORCE_INLINE __m128i _mm_mulhi_epu16(__m128i a, __m128i b) ++{ ++ uint16x4_t a3210 = vget_low_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b3210 = vget_low_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab3210 = vmull_u16(a3210, b3210); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32x4_t ab7654 = ++ vmull_high_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ uint16x8_t r = vuzp2q_u16(vreinterpretq_u16_u32(ab3210), ++ vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r); ++#else ++ uint16x4_t a7654 = vget_high_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b7654 = vget_high_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab7654 = vmull_u16(a7654, b7654); ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_u32(ab3210), vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++#endif ++} ++ ++// Multiply the packed 16-bit integers in a and b, producing intermediate 32-bit ++// integers, and store the low 16 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi16 ++FORCE_INLINE __m128i _mm_mullo_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmulq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compute the bitwise OR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_or_pd ++FORCE_INLINE __m128d _mm_or_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vorrq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise OR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_si128 ++FORCE_INLINE __m128i _mm_or_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vorrq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi16 ++FORCE_INLINE __m128i _mm_packs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vqmovn_s16(vreinterpretq_s16_m128i(a)), ++ vqmovn_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi32 ++FORCE_INLINE __m128i _mm_packs_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vqmovn_s32(vreinterpretq_s32_m128i(a)), ++ vqmovn_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi16 ++FORCE_INLINE __m128i _mm_packus_epi16(const __m128i a, const __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcombine_u8(vqmovun_s16(vreinterpretq_s16_m128i(a)), ++ vqmovun_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Pause the processor. This is typically used in spin-wait loops and depending ++// on the x86 processor typical values are in the 40-100 cycle range. The ++// 'yield' instruction isn't a good fit because it's effectively a nop on most ++// Arm cores. Experience with several databases has shown has shown an 'isb' is ++// a reasonable approximation. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_pause ++FORCE_INLINE void _mm_pause(void) ++{ ++#if defined(_MSC_VER) ++ __isb(_ARM64_BARRIER_SY); ++#else ++ __asm__ __volatile__("isb\n"); ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce two ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of 64-bit elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_epu8 ++FORCE_INLINE __m128i _mm_sad_epu8(__m128i a, __m128i b) ++{ ++ uint16x8_t t = vpaddlq_u8(vabdq_u8((uint8x16_t) a, (uint8x16_t) b)); ++ return vreinterpretq_m128i_u64(vpaddlq_u32(vpaddlq_u16(t))); ++} ++ ++// Set packed 16-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi16 ++FORCE_INLINE __m128i _mm_set_epi16(short i7, ++ short i6, ++ short i5, ++ short i4, ++ short i3, ++ short i2, ++ short i1, ++ short i0) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {i0, i1, i2, i3, i4, i5, i6, i7}; ++ return vreinterpretq_m128i_s16(vld1q_s16(data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi32 ++FORCE_INLINE __m128i _mm_set_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i0, i1, i2, i3}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64 ++FORCE_INLINE __m128i _mm_set_epi64(__m64 i1, __m64 i2) ++{ ++ return _mm_set_epi64x(vget_lane_s64(i1, 0), vget_lane_s64(i2, 0)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64x ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t i1, int64_t i2) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vcreate_s64(i2), vcreate_s64(i1))); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi8 ++FORCE_INLINE __m128i _mm_set_epi8(signed char b15, ++ signed char b14, ++ signed char b13, ++ signed char b12, ++ signed char b11, ++ signed char b10, ++ signed char b9, ++ signed char b8, ++ signed char b7, ++ signed char b6, ++ signed char b5, ++ signed char b4, ++ signed char b3, ++ signed char b2, ++ signed char b1, ++ signed char b0) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd ++FORCE_INLINE __m128d _mm_set_pd(double e1, double e0) ++{ ++ double ALIGN_STRUCT(16) data[2] = {e0, e1}; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64((float64_t *) data)); ++#else ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) data)); ++#endif ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd1 ++#define _mm_set_pd1 _mm_set1_pd ++ ++// Copy double-precision (64-bit) floating-point element a to the lower element ++// of dst, and zero the upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_sd ++FORCE_INLINE __m128d _mm_set_sd(double a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(a, vdupq_n_f64(0), 0)); ++#else ++ return _mm_set_pd(0, a); ++#endif ++} ++ ++// Broadcast 16-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi16 ++FORCE_INLINE __m128i _mm_set1_epi16(short w) ++{ ++ return vreinterpretq_m128i_s16(vdupq_n_s16(w)); ++} ++ ++// Broadcast 32-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi32 ++FORCE_INLINE __m128i _mm_set1_epi32(int _i) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(_i)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64 ++FORCE_INLINE __m128i _mm_set1_epi64(__m64 _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_lane_s64(_i, 0)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64x ++FORCE_INLINE __m128i _mm_set1_epi64x(int64_t _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_n_s64(_i)); ++} ++ ++// Broadcast 8-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi8 ++FORCE_INLINE __m128i _mm_set1_epi8(signed char w) ++{ ++ return vreinterpretq_m128i_s8(vdupq_n_s8(w)); ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_pd ++FORCE_INLINE __m128d _mm_set1_pd(double d) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(d)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(int64_t *) &d)); ++#endif ++} ++ ++// Set packed 16-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi16 ++FORCE_INLINE __m128i _mm_setr_epi16(short w0, ++ short w1, ++ short w2, ++ short w3, ++ short w4, ++ short w5, ++ short w6, ++ short w7) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {w0, w1, w2, w3, w4, w5, w6, w7}; ++ return vreinterpretq_m128i_s16(vld1q_s16((int16_t *) data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi32 ++FORCE_INLINE __m128i _mm_setr_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i3, i2, i1, i0}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi64 ++FORCE_INLINE __m128i _mm_setr_epi64(__m64 e1, __m64 e0) ++{ ++ return vreinterpretq_m128i_s64(vcombine_s64(e1, e0)); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi8 ++FORCE_INLINE __m128i _mm_setr_epi8(signed char b0, ++ signed char b1, ++ signed char b2, ++ signed char b3, ++ signed char b4, ++ signed char b5, ++ signed char b6, ++ signed char b7, ++ signed char b8, ++ signed char b9, ++ signed char b10, ++ signed char b11, ++ signed char b12, ++ signed char b13, ++ signed char b14, ++ signed char b15) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_pd ++FORCE_INLINE __m128d _mm_setr_pd(double e1, double e0) ++{ ++ return _mm_set_pd(e0, e1); ++} ++ ++// Return vector of type __m128d with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_pd ++FORCE_INLINE __m128d _mm_setzero_pd(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(0)); ++#else ++ return vreinterpretq_m128d_f32(vdupq_n_f32(0)); ++#endif ++} ++ ++// Return vector of type __m128i with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_si128 ++FORCE_INLINE __m128i _mm_setzero_si128(void) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(0)); ++} ++ ++// Shuffle 32-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi32 ++// FORCE_INLINE __m128i _mm_shuffle_epi32(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shuffle_epi32(a, imm) \ ++ __extension__({ \ ++ int32x4_t _input = vreinterpretq_s32_m128i(a); \ ++ int32x4_t _shuf = \ ++ vshuffleq_s32(_input, _input, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ ((imm) >> 4) & 0x3, ((imm) >> 6) & 0x3); \ ++ vreinterpretq_m128i_s32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_epi32(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, __m128i ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_epi_1032(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_epi_2301(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_epi_0321(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_epi_2103(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_shuffle_epi_1010(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_epi_1001(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_epi_0101(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 1, 1): \ ++ ret = _mm_shuffle_epi_2211(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 2, 2): \ ++ ret = _mm_shuffle_epi_0122(_a); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 2): \ ++ ret = _mm_shuffle_epi_3332(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 0, 0): \ ++ ret = _mm_shuffle_epi32_splat(_a, 0); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 1, 1): \ ++ ret = _mm_shuffle_epi32_splat(_a, 1); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 2, 2): \ ++ ret = _mm_shuffle_epi32_splat(_a, 2); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 3): \ ++ ret = _mm_shuffle_epi32_splat(_a, 3); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_epi32_default(_a, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Shuffle double-precision (64-bit) floating-point elements using the control ++// in imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pd ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pd(a, b, imm8) \ ++ vreinterpretq_m128d_s64( \ ++ vshuffleq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b), \ ++ imm8 & 0x1, ((imm8 & 0x2) >> 1) + 2)) ++#else ++#define _mm_shuffle_pd(a, b, imm8) \ ++ _mm_castsi128_pd(_mm_set_epi64x( \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(b), (imm8 & 0x2) >> 1), \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(a), imm8 & 0x1))) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflehi_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflehi_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = \ ++ vshuffleq_s16(_input, _input, 0, 1, 2, 3, ((imm) & (0x3)) + 4, \ ++ (((imm) >> 2) & 0x3) + 4, (((imm) >> 4) & 0x3) + 4, \ ++ (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflehi_epi16(a, imm) _mm_shufflehi_epi16_function((a), (imm)) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflelo_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflelo_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = vshuffleq_s16( \ ++ _input, _input, ((imm) & (0x3)), (((imm) >> 2) & 0x3), \ ++ (((imm) >> 4) & 0x3), (((imm) >> 6) & 0x3), 4, 5, 6, 7); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflelo_epi16(a, imm) _mm_shufflelo_epi16_function((a), (imm)) ++#endif ++ ++// Shift packed 16-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi16 ++FORCE_INLINE __m128i _mm_sll_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16((int16_t) c); ++ return vreinterpretq_m128i_s16(vshlq_s16(vreinterpretq_s16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi32 ++FORCE_INLINE __m128i _mm_sll_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32((int32_t) c); ++ return vreinterpretq_m128i_s32(vshlq_s32(vreinterpretq_s32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi64 ++FORCE_INLINE __m128i _mm_sll_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64((int64_t) c); ++ return vreinterpretq_m128i_s64(vshlq_s64(vreinterpretq_s64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi16 ++FORCE_INLINE __m128i _mm_slli_epi16(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~15)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16(vreinterpretq_s16_m128i(a), vdupq_n_s16(imm))); ++} ++ ++// Shift packed 32-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi32 ++FORCE_INLINE __m128i _mm_slli_epi32(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~31)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32(vreinterpretq_s32_m128i(a), vdupq_n_s32(imm))); ++} ++ ++// Shift packed 64-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi64 ++FORCE_INLINE __m128i _mm_slli_epi64(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~63)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s64( ++ vshlq_s64(vreinterpretq_s64_m128i(a), vdupq_n_s64(imm))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_si128 ++#define _mm_slli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely(imm == 0)) ret = vreinterpretq_s8_m128i(_a); \ ++ else if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vdupq_n_s8(0), vreinterpretq_s8_m128i(_a), \ ++ ((imm <= 0 || imm > 15) ? 0 : (16 - imm))); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Compute the square root of packed double-precision (64-bit) floating-point ++// elements in a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_pd ++FORCE_INLINE __m128d _mm_sqrt_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsqrtq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double a0 = sqrt(((double *) &a)[0]); ++ double a1 = sqrt(((double *) &a)[1]); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Compute the square root of the lower double-precision (64-bit) floating-point ++// element in b, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_sd ++FORCE_INLINE __m128d _mm_sqrt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_sqrt_pd(b)); ++#else ++ return _mm_set_pd(((double *) &a)[1], sqrt(((double *) &b)[0])); ++#endif ++} ++ ++// Shift packed 16-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi16 ++FORCE_INLINE __m128i _mm_sra_epi16(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_cmplt_epi16(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16((int16x8_t) a, vdupq_n_s16((int) -c))); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi32 ++FORCE_INLINE __m128i _mm_sra_epi32(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_cmplt_epi32(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32((int32x4_t) a, vdupq_n_s32((int) -c))); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in sign ++// bits, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi16 ++FORCE_INLINE __m128i _mm_srai_epi16(__m128i a, int imm) ++{ ++ const int count = (imm & ~15) ? 15 : imm; ++ return (__m128i) vshlq_s16((int16x8_t) a, vdupq_n_s16(-count)); ++} ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi32 ++// FORCE_INLINE __m128i _mm_srai_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srai_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) == 0)) { \ ++ ret = _a; \ ++ } else if (_sse2neon_likely(0 < (imm) && (imm) < 32)) { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshlq_s32(vreinterpretq_s32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } else { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshrq_n_s32(vreinterpretq_s32_m128i(_a), 31)); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 16-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi16 ++FORCE_INLINE __m128i _mm_srl_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16(-(int16_t) c); ++ return vreinterpretq_m128i_u16(vshlq_u16(vreinterpretq_u16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi32 ++FORCE_INLINE __m128i _mm_srl_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32(-(int32_t) c); ++ return vreinterpretq_m128i_u32(vshlq_u32(vreinterpretq_u32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi64 ++FORCE_INLINE __m128i _mm_srl_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64(-(int64_t) c); ++ return vreinterpretq_m128i_u64(vshlq_u64(vreinterpretq_u64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi16 ++#define _mm_srli_epi16(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~15)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u16( \ ++ vshlq_u16(vreinterpretq_u16_m128i(_a), vdupq_n_s16(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi32 ++// FORCE_INLINE __m128i _mm_srli_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srli_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~31)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u32( \ ++ vshlq_u32(vreinterpretq_u32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 64-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi64 ++#define _mm_srli_epi64(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~63)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u64( \ ++ vshlq_u64(vreinterpretq_u64_m128i(_a), vdupq_n_s64(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_si128 ++#define _mm_srli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vreinterpretq_s8_m128i(_a), vdupq_n_s8(0), \ ++ (imm > 15 ? 0 : imm)); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd ++FORCE_INLINE void _mm_store_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64((float64_t *) mem_addr, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_f32((float32_t *) mem_addr, vreinterpretq_f32_m128d(a)); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd1 ++FORCE_INLINE void _mm_store_pd1(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x1_t a_low = vget_low_f64(vreinterpretq_f64_m128d(a)); ++ vst1q_f64((float64_t *) mem_addr, ++ vreinterpretq_f64_m128d(vcombine_f64(a_low, a_low))); ++#else ++ float32x2_t a_low = vget_low_f32(vreinterpretq_f32_m128d(a)); ++ vst1q_f32((float32_t *) mem_addr, ++ vreinterpretq_f32_m128d(vcombine_f32(a_low, a_low))); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_store_sd ++FORCE_INLINE void _mm_store_sd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_u64((uint64_t *) mem_addr, vget_low_u64(vreinterpretq_u64_m128d(a))); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_si128 ++FORCE_INLINE void _mm_store_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#expand=9,526,5601&text=_mm_store1_pd ++#define _mm_store1_pd _mm_store_pd1 ++ ++// Store the upper double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pd ++FORCE_INLINE void _mm_storeh_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_high_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_high_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 64-bit integer from the first element of a into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_epi64 ++FORCE_INLINE void _mm_storel_epi64(__m128i *a, __m128i b) ++{ ++ vst1_u64((uint64_t *) a, vget_low_u64(vreinterpretq_u64_m128i(b))); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pd ++FORCE_INLINE void _mm_storel_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_low_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 2 double-precision (64-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_pd ++FORCE_INLINE void _mm_storer_pd(double *mem_addr, __m128d a) ++{ ++ float32x4_t f = vreinterpretq_f32_m128d(a); ++ _mm_store_pd(mem_addr, vreinterpretq_m128d_f32(vextq_f32(f, f, 2))); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_pd ++FORCE_INLINE void _mm_storeu_pd(double *mem_addr, __m128d a) ++{ ++ _mm_store_pd(mem_addr, a); ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si128 ++FORCE_INLINE void _mm_storeu_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store 32-bit integer from the first element of a into memory. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si32 ++FORCE_INLINE void _mm_storeu_si32(void *p, __m128i a) ++{ ++ vst1q_lane_s32((int32_t *) p, vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory using a non-temporal memory hint. mem_addr must ++// be aligned on a 16-byte boundary or a general-protection exception may be ++// generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pd ++FORCE_INLINE void _mm_stream_pd(double *p, __m128d a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (__m128d *) p); ++#elif defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64(p, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128d(a)); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory using a non-temporal memory ++// hint. mem_addr must be aligned on a 16-byte boundary or a general-protection ++// exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si128 ++FORCE_INLINE void _mm_stream_si128(__m128i *p, __m128i a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, p); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128i(a)); ++#endif ++} ++ ++// Store 32-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si32 ++FORCE_INLINE void _mm_stream_si32(int *p, int a) ++{ ++ vst1q_lane_s32((int32_t *) p, vdupq_n_s32(a), 0); ++} ++ ++// Store 64-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si64 ++FORCE_INLINE void _mm_stream_si64(__int64 *p, __int64 a) ++{ ++ vst1_s64((int64_t *) p, vdup_n_s64((int64_t) a)); ++} ++ ++// Subtract packed 16-bit integers in b from packed 16-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi16 ++FORCE_INLINE __m128i _mm_sub_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed 32-bit integers in b from packed 32-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi32 ++FORCE_INLINE __m128i _mm_sub_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Subtract packed 64-bit integers in b from packed 64-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi64 ++FORCE_INLINE __m128i _mm_sub_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vsubq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Subtract packed 8-bit integers in b from packed 8-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi8 ++FORCE_INLINE __m128i _mm_sub_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed double-precision (64-bit) floating-point elements in b from ++// packed double-precision (64-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_sub_pd ++FORCE_INLINE __m128d _mm_sub_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] - db[0]; ++ c[1] = da[1] - db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Subtract the lower double-precision (64-bit) floating-point element in b from ++// the lower double-precision (64-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_sd ++FORCE_INLINE __m128d _mm_sub_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_sub_pd(a, b)); ++} ++ ++// Subtract 64-bit integer b from 64-bit integer a, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_si64 ++FORCE_INLINE __m64 _mm_sub_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vsub_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Subtract packed signed 16-bit integers in b from packed 16-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi16 ++FORCE_INLINE __m128i _mm_subs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed signed 8-bit integers in b from packed 8-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi8 ++FORCE_INLINE __m128i _mm_subs_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed unsigned 16-bit integers in b from packed unsigned 16-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu16 ++FORCE_INLINE __m128i _mm_subs_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqsubq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Subtract packed unsigned 8-bit integers in b from packed unsigned 8-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu8 ++FORCE_INLINE __m128i _mm_subs_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqsubq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++#define _mm_ucomieq_sd _mm_comieq_sd ++#define _mm_ucomige_sd _mm_comige_sd ++#define _mm_ucomigt_sd _mm_comigt_sd ++#define _mm_ucomile_sd _mm_comile_sd ++#define _mm_ucomilt_sd _mm_comilt_sd ++#define _mm_ucomineq_sd _mm_comineq_sd ++ ++// Return vector of type __m128d with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_pd ++FORCE_INLINE __m128d _mm_undefined_pd(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128d a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_pd(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi16 ++FORCE_INLINE __m128i _mm_unpackhi_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip2q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi32 ++FORCE_INLINE __m128i _mm_unpackhi_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip2q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_high_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi64 ++FORCE_INLINE __m128i _mm_unpackhi_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip2q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_h = vget_high_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_h = vget_high_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_h, b_h)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the high half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi8 ++FORCE_INLINE __m128i _mm_unpackhi_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip2q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the high half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_pd ++FORCE_INLINE __m128d _mm_unpackhi_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip2q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_high_s64(vreinterpretq_s64_m128d(a)), ++ vget_high_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi16 ++FORCE_INLINE __m128i _mm_unpacklo_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip1q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi32 ++FORCE_INLINE __m128i _mm_unpacklo_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip1q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_low_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi64 ++FORCE_INLINE __m128i _mm_unpacklo_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip1q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_l = vget_low_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_l = vget_low_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_l, b_l)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi8 ++FORCE_INLINE __m128i _mm_unpacklo_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip1q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_pd ++FORCE_INLINE __m128d _mm_unpacklo_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip1q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_low_s64(vreinterpretq_s64_m128d(a)), ++ vget_low_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Compute the bitwise XOR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_pd ++FORCE_INLINE __m128d _mm_xor_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ veorq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise XOR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_si128 ++FORCE_INLINE __m128i _mm_xor_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ veorq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++/* SSE3 */ ++ ++// Alternatively add and subtract packed double-precision (64-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_addsub_pd ++FORCE_INLINE __m128d _mm_addsub_pd(__m128d a, __m128d b) ++{ ++ _sse2neon_const __m128d mask = _mm_set_pd(1.0f, -1.0f); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vfmaq_f64(vreinterpretq_f64_m128d(a), ++ vreinterpretq_f64_m128d(b), ++ vreinterpretq_f64_m128d(mask))); ++#else ++ return _mm_add_pd(_mm_mul_pd(b, mask), a); ++#endif ++} ++ ++// Alternatively add and subtract packed single-precision (32-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=addsub_ps ++FORCE_INLINE __m128 _mm_addsub_ps(__m128 a, __m128 b) ++{ ++ _sse2neon_const __m128 mask = _mm_setr_ps(-1.0f, 1.0f, -1.0f, 1.0f); ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_FMA) /* VFPv4+ */ ++ return vreinterpretq_m128_f32(vfmaq_f32(vreinterpretq_f32_m128(a), ++ vreinterpretq_f32_m128(mask), ++ vreinterpretq_f32_m128(b))); ++#else ++ return _mm_add_ps(_mm_mul_ps(b, mask), a); ++#endif ++} ++ ++// Horizontally add adjacent pairs of double-precision (64-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pd ++FORCE_INLINE __m128d _mm_hadd_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vpaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[] = {da[0] + da[1], db[0] + db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of single-precision (32-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_ps ++FORCE_INLINE __m128 _mm_hadd_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vpaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vpadd_f32(a10, a32), vpadd_f32(b10, b32))); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of double-precision (64-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pd ++FORCE_INLINE __m128d _mm_hsub_pd(__m128d _a, __m128d _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vuzp1q_f64(a, b), vuzp2q_f64(a, b))); ++#else ++ double *da = (double *) &_a; ++ double *db = (double *) &_b; ++ double c[] = {da[0] - da[1], db[0] - db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of single-precision (32-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_ps ++FORCE_INLINE __m128 _mm_hsub_ps(__m128 _a, __m128 _b) ++{ ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vuzp1q_f32(a, b), vuzp2q_f32(a, b))); ++#else ++ float32x4x2_t c = vuzpq_f32(a, b); ++ return vreinterpretq_m128_f32(vsubq_f32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Load 128-bits of integer data from unaligned memory into dst. This intrinsic ++// may perform better than _mm_loadu_si128 when the data crosses a cache line ++// boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lddqu_si128 ++#define _mm_lddqu_si128 _mm_loadu_si128 ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loaddup_pd ++#define _mm_loaddup_pd _mm_load1_pd ++ ++// Duplicate the low double-precision (64-bit) floating-point element from a, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movedup_pd ++FORCE_INLINE __m128d _mm_movedup_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdupq_laneq_f64(vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_u64( ++ vdupq_n_u64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0))); ++#endif ++} ++ ++// Duplicate odd-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehdup_ps ++FORCE_INLINE __m128 _mm_movehdup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 1, 1, 3, 3)); ++#else ++ float32_t a1 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ float32_t a3 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 3); ++ float ALIGN_STRUCT(16) data[4] = {a1, a1, a3, a3}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Duplicate even-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_moveldup_ps ++FORCE_INLINE __m128 _mm_moveldup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 0, 0, 2, 2)); ++#else ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32_t a2 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 2); ++ float ALIGN_STRUCT(16) data[4] = {a0, a0, a2, a2}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++/* SSSE3 */ ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi16 ++FORCE_INLINE __m128i _mm_abs_epi16(__m128i a) ++{ ++ return vreinterpretq_m128i_s16(vabsq_s16(vreinterpretq_s16_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi32 ++FORCE_INLINE __m128i _mm_abs_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32(vabsq_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi8 ++FORCE_INLINE __m128i _mm_abs_epi8(__m128i a) ++{ ++ return vreinterpretq_m128i_s8(vabsq_s8(vreinterpretq_s8_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi16 ++FORCE_INLINE __m64 _mm_abs_pi16(__m64 a) ++{ ++ return vreinterpret_m64_s16(vabs_s16(vreinterpret_s16_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi32 ++FORCE_INLINE __m64 _mm_abs_pi32(__m64 a) ++{ ++ return vreinterpret_m64_s32(vabs_s32(vreinterpret_s32_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi8 ++FORCE_INLINE __m64 _mm_abs_pi8(__m64 a) ++{ ++ return vreinterpret_m64_s8(vabs_s8(vreinterpret_s8_m64(a))); ++} ++ ++// Concatenate 16-byte blocks in a and b into a 32-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 16 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_epi8 ++#if defined(__GNUC__) && !defined(__clang__) ++#define _mm_alignr_epi8(a, b, imm) \ ++ __extension__({ \ ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); \ ++ uint8x16_t _b = vreinterpretq_u8_m128i(b); \ ++ __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) \ ++ ret = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) \ ++ ret = _mm_srli_si128(a, imm >= 16 ? imm - 16 : 0); \ ++ else \ ++ ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(_b, _a, imm < 16 ? imm : 0)); \ ++ ret; \ ++ }) ++ ++#else ++#define _mm_alignr_epi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, uint8x16_t __a = vreinterpretq_u8_m128i(_a); \ ++ uint8x16_t __b = vreinterpretq_u8_m128i(_b); __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) ret = \ ++ vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) ret = \ ++ _mm_srli_si128(_a, imm >= 16 ? imm - 16 : 0); \ ++ else ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(__b, __a, imm < 16 ? imm : 0)); \ ++ _sse2neon_return(ret);) ++ ++#endif ++ ++// Concatenate 8-byte blocks in a and b into a 16-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 8 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_pi8 ++#define _mm_alignr_pi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m64, a, b, __m64 ret; if (_sse2neon_unlikely((imm) >= 16)) { \ ++ ret = vreinterpret_m64_s8(vdup_n_s8(0)); \ ++ } else { \ ++ uint8x8_t tmp_low; \ ++ uint8x8_t tmp_high; \ ++ if ((imm) >= 8) { \ ++ const int idx = (imm) -8; \ ++ tmp_low = vreinterpret_u8_m64(_a); \ ++ tmp_high = vdup_n_u8(0); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } else { \ ++ const int idx = (imm); \ ++ tmp_low = vreinterpret_u8_m64(_b); \ ++ tmp_high = vreinterpret_u8_m64(_a); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } \ ++ } _sse2neon_return(ret);) ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi16 ++FORCE_INLINE __m128i _mm_hadd_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16(vpaddq_s16(a, b)); ++#else ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(vget_low_s16(a), vget_high_s16(a)), ++ vpadd_s16(vget_low_s16(b), vget_high_s16(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi32 ++FORCE_INLINE __m128i _mm_hadd_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32(vpaddq_s32(a, b)); ++#else ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vpadd_s32(vget_low_s32(a), vget_high_s32(a)), ++ vpadd_s32(vget_low_s32(b), vget_high_s32(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi16 ++FORCE_INLINE __m64 _mm_hadd_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vpadd_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi32 ++FORCE_INLINE __m64 _mm_hadd_pi32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s32( ++ vpadd_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_epi16 ++FORCE_INLINE __m128i _mm_hadds_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ return vreinterpretq_s64_s16( ++ vqaddq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ // Interleave using vshrn/vmovn ++ // [a0|a2|a4|a6|b0|b2|b4|b6] ++ // [a1|a3|a5|a7|b1|b3|b5|b7] ++ int16x8_t ab0246 = vcombine_s16(vmovn_s32(a), vmovn_s32(b)); ++ int16x8_t ab1357 = vcombine_s16(vshrn_n_s32(a, 16), vshrn_n_s32(b, 16)); ++ // Saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(ab0246, ab1357)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_pi16 ++FORCE_INLINE __m64 _mm_hadds_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_s64_s16(vqadd_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t res = vuzp_s16(a, b); ++ return vreinterpret_s64_s16(vqadd_s16(res.val[0], res.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi16 ++FORCE_INLINE __m128i _mm_hsub_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi32 ++FORCE_INLINE __m128i _mm_hsub_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vuzp1q_s32(a, b), vuzp2q_s32(a, b))); ++#else ++ int32x4x2_t c = vuzpq_s32(a, b); ++ return vreinterpretq_m128i_s32(vsubq_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pi16 ++FORCE_INLINE __m64 _mm_hsub_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_hsub_pi32 ++FORCE_INLINE __m64 _mm_hsub_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s32(vsub_s32(vuzp1_s32(a, b), vuzp2_s32(a, b))); ++#else ++ int32x2x2_t c = vuzp_s32(a, b); ++ return vreinterpret_m64_s32(vsub_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_epi16 ++FORCE_INLINE __m128i _mm_hsubs_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vqsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_pi16 ++FORCE_INLINE __m64 _mm_hsubs_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vqsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vqsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, ++// and pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_epi16 ++FORCE_INLINE __m128i _mm_maddubs_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ int16x8_t tl = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_low_u8(a))), ++ vmovl_s8(vget_low_s8(b))); ++ int16x8_t th = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_high_u8(a))), ++ vmovl_s8(vget_high_s8(b))); ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vuzp1q_s16(tl, th), vuzp2q_s16(tl, th))); ++#else ++ // This would be much simpler if x86 would choose to zero extend OR sign ++ // extend, not both. This could probably be optimized better. ++ uint16x8_t a = vreinterpretq_u16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // Zero extend a ++ int16x8_t a_odd = vreinterpretq_s16_u16(vshrq_n_u16(a, 8)); ++ int16x8_t a_even = vreinterpretq_s16_u16(vbicq_u16(a, vdupq_n_u16(0xff00))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x8_t b_even = vshrq_n_s16(vshlq_n_s16(b, 8), 8); ++ int16x8_t b_odd = vshrq_n_s16(b, 8); ++ ++ // multiply ++ int16x8_t prod1 = vmulq_s16(a_even, b_even); ++ int16x8_t prod2 = vmulq_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(prod1, prod2)); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, and ++// pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_pi16 ++FORCE_INLINE __m64 _mm_maddubs_pi16(__m64 _a, __m64 _b) ++{ ++ uint16x4_t a = vreinterpret_u16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // Zero extend a ++ int16x4_t a_odd = vreinterpret_s16_u16(vshr_n_u16(a, 8)); ++ int16x4_t a_even = vreinterpret_s16_u16(vand_u16(a, vdup_n_u16(0xff))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x4_t b_even = vshr_n_s16(vshl_n_s16(b, 8), 8); ++ int16x4_t b_odd = vshr_n_s16(b, 8); ++ ++ // multiply ++ int16x4_t prod1 = vmul_s16(a_even, b_even); ++ int16x4_t prod2 = vmul_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpret_m64_s16(vqadd_s16(prod1, prod2)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Shift right by 15 bits while rounding up, and store ++// the packed 16-bit integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_epi16 ++FORCE_INLINE __m128i _mm_mulhrs_epi16(__m128i a, __m128i b) ++{ ++ // Has issues due to saturation ++ // return vreinterpretq_m128i_s16(vqrdmulhq_s16(a, b)); ++ ++ // Multiply ++ int32x4_t mul_lo = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int32x4_t mul_hi = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ // Rounding narrowing shift right ++ // narrow = (int16_t)((mul + 16384) >> 15); ++ int16x4_t narrow_lo = vrshrn_n_s32(mul_lo, 15); ++ int16x4_t narrow_hi = vrshrn_n_s32(mul_hi, 15); ++ ++ // Join together ++ return vreinterpretq_m128i_s16(vcombine_s16(narrow_lo, narrow_hi)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Truncate each intermediate integer to the 18 most ++// significant bits, round by adding 1, and store bits [16:1] to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_pi16 ++FORCE_INLINE __m64 _mm_mulhrs_pi16(__m64 a, __m64 b) ++{ ++ int32x4_t mul_extend = ++ vmull_s16((vreinterpret_s16_m64(a)), (vreinterpret_s16_m64(b))); ++ ++ // Rounding narrowing shift right ++ return vreinterpret_m64_s16(vrshrn_n_s32(mul_extend, 15)); ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi8 ++FORCE_INLINE __m128i _mm_shuffle_epi8(__m128i a, __m128i b) ++{ ++ int8x16_t tbl = vreinterpretq_s8_m128i(a); // input a ++ uint8x16_t idx = vreinterpretq_u8_m128i(b); // input b ++ uint8x16_t idx_masked = ++ vandq_u8(idx, vdupq_n_u8(0x8F)); // avoid using meaningless bits ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8(vqtbl1q_s8(tbl, idx_masked)); ++#elif defined(__GNUC__) ++ int8x16_t ret; ++ // %e and %f represent the even and odd D registers ++ // respectively. ++ __asm__ __volatile__( ++ "vtbl.8 %e[ret], {%e[tbl], %f[tbl]}, %e[idx]\n" ++ "vtbl.8 %f[ret], {%e[tbl], %f[tbl]}, %f[idx]\n" ++ : [ret] "=&w"(ret) ++ : [tbl] "w"(tbl), [idx] "w"(idx_masked)); ++ return vreinterpretq_m128i_s8(ret); ++#else ++ // use this line if testing on aarch64 ++ int8x8x2_t a_split = {vget_low_s8(tbl), vget_high_s8(tbl)}; ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vtbl2_s8(a_split, vget_low_u8(idx_masked)), ++ vtbl2_s8(a_split, vget_high_u8(idx_masked)))); ++#endif ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi8 ++FORCE_INLINE __m64 _mm_shuffle_pi8(__m64 a, __m64 b) ++{ ++ const int8x8_t controlMask = ++ vand_s8(vreinterpret_s8_m64(b), vdup_n_s8((int8_t) (0x1 << 7 | 0x07))); ++ int8x8_t res = vtbl1_s8(vreinterpret_s8_m64(a), controlMask); ++ return vreinterpret_m64_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed ++// 16-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi16 ++FORCE_INLINE __m128i _mm_sign_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x8_t ltMask = vreinterpretq_u16_s16(vshrq_n_s16(b, 15)); ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqzq_s16(b)); ++#else ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqq_s16(b, vdupq_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s16(a) equals to negative ++ // 'a') based on ltMask ++ int16x8_t masked = vbslq_s16(ltMask, vnegq_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x8_t res = vbicq_s16(masked, zeroMask); ++ return vreinterpretq_m128i_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed ++// 32-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi32 ++FORCE_INLINE __m128i _mm_sign_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x4_t ltMask = vreinterpretq_u32_s32(vshrq_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqzq_s32(b)); ++#else ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqq_s32(b, vdupq_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s32(a) equals to negative ++ // 'a') based on ltMask ++ int32x4_t masked = vbslq_s32(ltMask, vnegq_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x4_t res = vbicq_s32(masked, zeroMask); ++ return vreinterpretq_m128i_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed ++// 8-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi8 ++FORCE_INLINE __m128i _mm_sign_epi8(__m128i _a, __m128i _b) ++{ ++ int8x16_t a = vreinterpretq_s8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x16_t ltMask = vreinterpretq_u8_s8(vshrq_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqzq_s8(b)); ++#else ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqq_s8(b, vdupq_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s8(a) return negative 'a') ++ // based on ltMask ++ int8x16_t masked = vbslq_s8(ltMask, vnegq_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x16_t res = vbicq_s8(masked, zeroMask); ++ ++ return vreinterpretq_m128i_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed 16-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi16 ++FORCE_INLINE __m64 _mm_sign_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x4_t ltMask = vreinterpret_u16_s16(vshr_n_s16(b, 15)); ++ ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceqz_s16(b)); ++#else ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceq_s16(b, vdup_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s16(a) return negative 'a') ++ // based on ltMask ++ int16x4_t masked = vbsl_s16(ltMask, vneg_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x4_t res = vbic_s16(masked, zeroMask); ++ ++ return vreinterpret_m64_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed 32-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi32 ++FORCE_INLINE __m64 _mm_sign_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x2_t ltMask = vreinterpret_u32_s32(vshr_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceqz_s32(b)); ++#else ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceq_s32(b, vdup_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s32(a) return negative 'a') ++ // based on ltMask ++ int32x2_t masked = vbsl_s32(ltMask, vneg_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x2_t res = vbic_s32(masked, zeroMask); ++ ++ return vreinterpret_m64_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed 8-bit integer ++// in b is negative, and store the results in dst. Element in dst are zeroed out ++// when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi8 ++FORCE_INLINE __m64 _mm_sign_pi8(__m64 _a, __m64 _b) ++{ ++ int8x8_t a = vreinterpret_s8_m64(_a); ++ int8x8_t b = vreinterpret_s8_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x8_t ltMask = vreinterpret_u8_s8(vshr_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceqz_s8(b)); ++#else ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceq_s8(b, vdup_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s8(a) return negative 'a') ++ // based on ltMask ++ int8x8_t masked = vbsl_s8(ltMask, vneg_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x8_t res = vbic_s8(masked, zeroMask); ++ ++ return vreinterpret_m64_s8(res); ++} ++ ++/* SSE4.1 */ ++ ++// Blend packed 16-bit integers from a and b using control mask imm8, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_epi16 ++// FORCE_INLINE __m128i _mm_blend_epi16(__m128i a, __m128i b, ++// __constrange(0,255) int imm) ++#define _mm_blend_epi16(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, \ ++ const uint16_t _mask[8] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 1)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 2)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 3)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 4)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 5)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 6)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 7)) ? (uint16_t) -1 : 0x0); \ ++ uint16x8_t _mask_vec = vld1q_u16(_mask); \ ++ uint16x8_t __a = vreinterpretq_u16_m128i(_a); \ ++ uint16x8_t __b = vreinterpretq_u16_m128i(_b); _sse2neon_return( \ ++ vreinterpretq_m128i_u16(vbslq_u16(_mask_vec, __b, __a)));) ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using control mask imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_pd ++#define _mm_blend_pd(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128d, a, b, \ ++ const uint64_t _mask[2] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? ~UINT64_C(0) : UINT64_C(0), \ ++ ((imm) & (1 << 1)) ? ~UINT64_C(0) : UINT64_C(0)); \ ++ uint64x2_t _mask_vec = vld1q_u64(_mask); \ ++ uint64x2_t __a = vreinterpretq_u64_m128d(_a); \ ++ uint64x2_t __b = vreinterpretq_u64_m128d(_b); _sse2neon_return( \ ++ vreinterpretq_m128d_u64(vbslq_u64(_mask_vec, __b, __a)));) ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_ps ++FORCE_INLINE __m128 _mm_blend_ps(__m128 _a, __m128 _b, const char imm8) ++{ ++ const uint32_t ALIGN_STRUCT(16) ++ data[4] = {((imm8) & (1 << 0)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0}; ++ uint32x4_t mask = vld1q_u32(data); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Blend packed 8-bit integers from a and b using mask, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_epi8 ++FORCE_INLINE __m128i _mm_blendv_epi8(__m128i _a, __m128i _b, __m128i _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint8x16_t mask = ++ vreinterpretq_u8_s8(vshrq_n_s8(vreinterpretq_s8_m128i(_mask), 7)); ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ uint8x16_t b = vreinterpretq_u8_m128i(_b); ++ return vreinterpretq_m128i_u8(vbslq_u8(mask, b, a)); ++} ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_pd ++FORCE_INLINE __m128d _mm_blendv_pd(__m128d _a, __m128d _b, __m128d _mask) ++{ ++ uint64x2_t mask = ++ vreinterpretq_u64_s64(vshrq_n_s64(vreinterpretq_s64_m128d(_mask), 63)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64(vbslq_f64(mask, b, a)); ++#else ++ uint64x2_t a = vreinterpretq_u64_m128d(_a); ++ uint64x2_t b = vreinterpretq_u64_m128d(_b); ++ return vreinterpretq_m128d_u64(vbslq_u64(mask, b, a)); ++#endif ++} ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_ps ++FORCE_INLINE __m128 _mm_blendv_ps(__m128 _a, __m128 _b, __m128 _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint32x4_t mask = ++ vreinterpretq_u32_s32(vshrq_n_s32(vreinterpretq_s32_m128(_mask), 31)); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a up ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_pd ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndpq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(ceil(f[1]), ceil(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a up to ++// an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ps ++FORCE_INLINE __m128 _mm_ceil_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndpq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ceilf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b up to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_sd ++FORCE_INLINE __m128d _mm_ceil_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_ceil_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b up to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ss ++FORCE_INLINE __m128 _mm_ceil_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_ceil_ps(b)); ++} ++ ++// Compare packed 64-bit integers in a and b for equality, and store the results ++// in dst ++FORCE_INLINE __m128i _mm_cmpeq_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vceqq_u64(vreinterpretq_u64_m128i(a), vreinterpretq_u64_m128i(b))); ++#else ++ // ARMv7 lacks vceqq_u64 ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128i_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Sign extend packed 16-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi32 ++FORCE_INLINE __m128i _mm_cvtepi16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vmovl_s16(vget_low_s16(vreinterpretq_s16_m128i(a)))); ++} ++ ++// Sign extend packed 16-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi64 ++FORCE_INLINE __m128i _mm_cvtepi16_epi64(__m128i a) ++{ ++ int16x8_t s16x8 = vreinterpretq_s16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Sign extend packed 32-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_epi64 ++FORCE_INLINE __m128i _mm_cvtepi32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a)))); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 16-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi16 ++FORCE_INLINE __m128i _mm_cvtepi8_epi16(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ return vreinterpretq_m128i_s16(s16x8); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi32 ++FORCE_INLINE __m128i _mm_cvtepi8_epi32(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_s32(s32x4); ++} ++ ++// Sign extend packed 8-bit integers in the low 8 bytes of a to packed 64-bit ++// integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi64 ++FORCE_INLINE __m128i _mm_cvtepi8_epi64(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi32 ++FORCE_INLINE __m128i _mm_cvtepu16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_u32( ++ vmovl_u16(vget_low_u16(vreinterpretq_u16_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi64 ++FORCE_INLINE __m128i _mm_cvtepu16_epi64(__m128i a) ++{ ++ uint16x8_t u16x8 = vreinterpretq_u16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Zero extend packed unsigned 32-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu32_epi64 ++FORCE_INLINE __m128i _mm_cvtepu32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_u64( ++ vmovl_u32(vget_low_u32(vreinterpretq_u32_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 16-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi16 ++FORCE_INLINE __m128i _mm_cvtepu8_epi16(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx HGFE DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0H0G 0F0E 0D0C 0B0A */ ++ return vreinterpretq_m128i_u16(u16x8); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi32 ++FORCE_INLINE __m128i _mm_cvtepu8_epi32(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_u32(u32x4); ++} ++ ++// Zero extend packed unsigned 8-bit integers in the low 8 bytes of a to packed ++// 64-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi64 ++FORCE_INLINE __m128i _mm_cvtepu8_epi64(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Conditionally multiply the packed double-precision (64-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, and ++// conditionally store the sum in dst using the low 4 bits of imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_pd ++FORCE_INLINE __m128d _mm_dp_pd(__m128d a, __m128d b, const int imm) ++{ ++ // Generate mask value from constant immediate bit value ++ const int64_t bit0Mask = imm & 0x01 ? UINT64_MAX : 0; ++ const int64_t bit1Mask = imm & 0x02 ? UINT64_MAX : 0; ++#if !SSE2NEON_PRECISE_DP ++ const int64_t bit4Mask = imm & 0x10 ? UINT64_MAX : 0; ++ const int64_t bit5Mask = imm & 0x20 ? UINT64_MAX : 0; ++#endif ++ // Conditional multiplication ++#if !SSE2NEON_PRECISE_DP ++ __m128d mul = _mm_mul_pd(a, b); ++ const __m128d mulMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit5Mask, bit4Mask)); ++ __m128d tmp = _mm_and_pd(mul, mulMask); ++#else ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double d0 = (imm & 0x10) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 0) ++ : 0; ++ double d1 = (imm & 0x20) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 1) ++ : 0; ++#else ++ double d0 = (imm & 0x10) ? ((double *) &a)[0] * ((double *) &b)[0] : 0; ++ double d1 = (imm & 0x20) ? ((double *) &a)[1] * ((double *) &b)[1] : 0; ++#endif ++ __m128d tmp = _mm_set_pd(d1, d0); ++#endif ++ // Sum the products ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double sum = vpaddd_f64(vreinterpretq_f64_m128d(tmp)); ++#else ++ double sum = *((double *) &tmp) + *(((double *) &tmp) + 1); ++#endif ++ // Conditionally store the sum ++ const __m128d sumMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit1Mask, bit0Mask)); ++ __m128d res = _mm_and_pd(_mm_set_pd1(sum), sumMask); ++ return res; ++} ++ ++// Conditionally multiply the packed single-precision (32-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, ++// and conditionally store the sum in dst using the low 4 bits of imm. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_ps ++FORCE_INLINE __m128 _mm_dp_ps(__m128 a, __m128 b, const int imm) ++{ ++ float32x4_t elementwise_prod = _mm_mul_ps(a, b); ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ /* shortcuts */ ++ if (imm == 0xFF) { ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++ ++ if ((imm & 0x0F) == 0x0F) { ++ if (!(imm & (1 << 4))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 0); ++ if (!(imm & (1 << 5))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 1); ++ if (!(imm & (1 << 6))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 2); ++ if (!(imm & (1 << 7))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 3); ++ ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++#endif ++ ++ float s = 0.0f; ++ ++ if (imm & (1 << 4)) ++ s += vgetq_lane_f32(elementwise_prod, 0); ++ if (imm & (1 << 5)) ++ s += vgetq_lane_f32(elementwise_prod, 1); ++ if (imm & (1 << 6)) ++ s += vgetq_lane_f32(elementwise_prod, 2); ++ if (imm & (1 << 7)) ++ s += vgetq_lane_f32(elementwise_prod, 3); ++ ++ const float32_t res[4] = { ++ (imm & 0x1) ? s : 0.0f, ++ (imm & 0x2) ? s : 0.0f, ++ (imm & 0x4) ? s : 0.0f, ++ (imm & 0x8) ? s : 0.0f, ++ }; ++ return vreinterpretq_m128_f32(vld1q_f32(res)); ++} ++ ++// Extract a 32-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi32 ++// FORCE_INLINE int _mm_extract_epi32(__m128i a, __constrange(0,4) int imm) ++#define _mm_extract_epi32(a, imm) \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)) ++ ++// Extract a 64-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi64 ++// FORCE_INLINE __int64 _mm_extract_epi64(__m128i a, __constrange(0,2) int imm) ++#define _mm_extract_epi64(a, imm) \ ++ vgetq_lane_s64(vreinterpretq_s64_m128i(a), (imm)) ++ ++// Extract an 8-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. FORCE_INLINE int _mm_extract_epi8(__m128i a, ++// __constrange(0,16) int imm) ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi8 ++#define _mm_extract_epi8(a, imm) vgetq_lane_u8(vreinterpretq_u8_m128i(a), (imm)) ++ ++// Extracts the selected single-precision (32-bit) floating-point from a. ++// FORCE_INLINE int _mm_extract_ps(__m128 a, __constrange(0,4) int imm) ++#define _mm_extract_ps(a, imm) vgetq_lane_s32(vreinterpretq_s32_m128(a), (imm)) ++ ++// Round the packed double-precision (64-bit) floating-point elements in a down ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_pd ++FORCE_INLINE __m128d _mm_floor_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndmq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(floor(f[1]), floor(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a down ++// to an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ps ++FORCE_INLINE __m128 _mm_floor_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndmq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(floorf(f[3]), floorf(f[2]), floorf(f[1]), floorf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b down to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_sd ++FORCE_INLINE __m128d _mm_floor_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_floor_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b down to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ss ++FORCE_INLINE __m128 _mm_floor_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_floor_ps(b)); ++} ++ ++// Copy a to dst, and insert the 32-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi32 ++// FORCE_INLINE __m128i _mm_insert_epi32(__m128i a, int b, ++// __constrange(0,4) int imm) ++#define _mm_insert_epi32(a, b, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vsetq_lane_s32((b), vreinterpretq_s32_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the 64-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi64 ++// FORCE_INLINE __m128i _mm_insert_epi64(__m128i a, __int64 b, ++// __constrange(0,2) int imm) ++#define _mm_insert_epi64(a, b, imm) \ ++ vreinterpretq_m128i_s64( \ ++ vsetq_lane_s64((b), vreinterpretq_s64_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the lower 8-bit integer from i into dst at the ++// location specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi8 ++// FORCE_INLINE __m128i _mm_insert_epi8(__m128i a, int b, ++// __constrange(0,16) int imm) ++#define _mm_insert_epi8(a, b, imm) \ ++ vreinterpretq_m128i_s8(vsetq_lane_s8((b), vreinterpretq_s8_m128i(a), (imm))) ++ ++// Copy a to tmp, then insert a single-precision (32-bit) floating-point ++// element from b into tmp using the control in imm8. Store tmp to dst using ++// the mask in imm8 (elements are zeroed out when the corresponding bit is set). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=insert_ps ++#define _mm_insert_ps(a, b, imm8) \ ++ _sse2neon_define2( \ ++ __m128, a, b, \ ++ float32x4_t tmp1 = \ ++ vsetq_lane_f32(vgetq_lane_f32(_b, (imm8 >> 6) & 0x3), \ ++ vreinterpretq_f32_m128(_a), 0); \ ++ float32x4_t tmp2 = \ ++ vsetq_lane_f32(vgetq_lane_f32(tmp1, 0), \ ++ vreinterpretq_f32_m128(_a), ((imm8 >> 4) & 0x3)); \ ++ const uint32_t data[4] = \ ++ _sse2neon_init(((imm8) & (1 << 0)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0); \ ++ uint32x4_t mask = vld1q_u32(data); \ ++ float32x4_t all_zeros = vdupq_n_f32(0); \ ++ \ ++ _sse2neon_return(vreinterpretq_m128_f32( \ ++ vbslq_f32(mask, all_zeros, vreinterpretq_f32_m128(tmp2))));) ++ ++// Compare packed signed 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi32 ++FORCE_INLINE __m128i _mm_max_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmaxq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi8 ++FORCE_INLINE __m128i _mm_max_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vmaxq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu16 ++FORCE_INLINE __m128i _mm_max_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vmaxq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_max_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vmaxq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi32 ++FORCE_INLINE __m128i _mm_min_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vminq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi8 ++FORCE_INLINE __m128i _mm_min_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vminq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu16 ++FORCE_INLINE __m128i _mm_min_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vminq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_min_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vminq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Horizontally compute the minimum amongst the packed unsigned 16-bit integers ++// in a, store the minimum and index in dst, and zero the remaining bits in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_minpos_epu16 ++FORCE_INLINE __m128i _mm_minpos_epu16(__m128i a) ++{ ++ __m128i dst; ++ uint16_t min, idx = 0; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Find the minimum value ++ min = vminvq_u16(vreinterpretq_u16_m128i(a)); ++ ++ // Get the index of the minimum value ++ static const uint16_t idxv[] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint16x8_t minv = vdupq_n_u16(min); ++ uint16x8_t cmeq = vceqq_u16(minv, vreinterpretq_u16_m128i(a)); ++ idx = vminvq_u16(vornq_u16(vld1q_u16(idxv), cmeq)); ++#else ++ // Find the minimum value ++ __m64 tmp; ++ tmp = vreinterpret_m64_u16( ++ vmin_u16(vget_low_u16(vreinterpretq_u16_m128i(a)), ++ vget_high_u16(vreinterpretq_u16_m128i(a)))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ min = vget_lane_u16(vreinterpret_u16_m64(tmp), 0); ++ // Get the index of the minimum value ++ int i; ++ for (i = 0; i < 8; i++) { ++ if (min == vgetq_lane_u16(vreinterpretq_u16_m128i(a), 0)) { ++ idx = (uint16_t) i; ++ break; ++ } ++ a = _mm_srli_si128(a, 2); ++ } ++#endif ++ // Generate result ++ dst = _mm_setzero_si128(); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(min, vreinterpretq_u16_m128i(dst), 0)); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(idx, vreinterpretq_u16_m128i(dst), 1)); ++ return dst; ++} ++ ++// Compute the sum of absolute differences (SADs) of quadruplets of unsigned ++// 8-bit integers in a compared to those in b, and store the 16-bit results in ++// dst. Eight SADs are performed using one quadruplet from b and eight ++// quadruplets from a. One quadruplet is selected from b starting at on the ++// offset specified in imm8. Eight quadruplets are formed from sequential 8-bit ++// integers selected from a starting at the offset specified in imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mpsadbw_epu8 ++FORCE_INLINE __m128i _mm_mpsadbw_epu8(__m128i a, __m128i b, const int imm) ++{ ++ uint8x16_t _a, _b; ++ ++ switch (imm & 0x4) { ++ case 0: ++ // do nothing ++ _a = vreinterpretq_u8_m128i(a); ++ break; ++ case 4: ++ _a = vreinterpretq_u8_u32(vextq_u32(vreinterpretq_u32_m128i(a), ++ vreinterpretq_u32_m128i(a), 1)); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ switch (imm & 0x3) { ++ case 0: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 0))); ++ break; ++ case 1: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 1))); ++ break; ++ case 2: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 2))); ++ break; ++ case 3: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 3))); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ int16x8_t c04, c15, c26, c37; ++ uint8x8_t low_b = vget_low_u8(_b); ++ c04 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a), low_b)); ++ uint8x16_t _a_1 = vextq_u8(_a, _a, 1); ++ c15 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_1), low_b)); ++ uint8x16_t _a_2 = vextq_u8(_a, _a, 2); ++ c26 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_2), low_b)); ++ uint8x16_t _a_3 = vextq_u8(_a, _a, 3); ++ c37 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_3), low_b)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // |0|4|2|6| ++ c04 = vpaddq_s16(c04, c26); ++ // |1|5|3|7| ++ c15 = vpaddq_s16(c15, c37); ++ ++ int32x4_t trn1_c = ++ vtrn1q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ int32x4_t trn2_c = ++ vtrn2q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ return vreinterpretq_m128i_s16(vpaddq_s16(vreinterpretq_s16_s32(trn1_c), ++ vreinterpretq_s16_s32(trn2_c))); ++#else ++ int16x4_t c01, c23, c45, c67; ++ c01 = vpadd_s16(vget_low_s16(c04), vget_low_s16(c15)); ++ c23 = vpadd_s16(vget_low_s16(c26), vget_low_s16(c37)); ++ c45 = vpadd_s16(vget_high_s16(c04), vget_high_s16(c15)); ++ c67 = vpadd_s16(vget_high_s16(c26), vget_high_s16(c37)); ++ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(c01, c23), vpadd_s16(c45, c67))); ++#endif ++} ++ ++// Multiply the low signed 32-bit integers from each packed 64-bit element in ++// a and b, and store the signed 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epi32 ++FORCE_INLINE __m128i _mm_mul_epi32(__m128i a, __m128i b) ++{ ++ // vmull_s32 upcasts instead of masking, so we downcast. ++ int32x2_t a_lo = vmovn_s64(vreinterpretq_s64_m128i(a)); ++ int32x2_t b_lo = vmovn_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vmull_s32(a_lo, b_lo)); ++} ++ ++// Multiply the packed 32-bit integers in a and b, producing intermediate 64-bit ++// integers, and store the low 32 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi32 ++FORCE_INLINE __m128i _mm_mullo_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmulq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi32 ++FORCE_INLINE __m128i _mm_packus_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcombine_u16(vqmovun_s32(vreinterpretq_s32_m128i(a)), ++ vqmovun_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_pd ++FORCE_INLINE __m128d _mm_round_pd(__m128d a, int rounding) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndnq_f64(vreinterpretq_f64_m128d(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_pd(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_pd(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndq_f64(vreinterpretq_f64_m128d(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128d_f64(vrndiq_f64(vreinterpretq_f64_m128d(a))); ++ } ++#else ++ double *v_double = (double *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ double res[2], tmp; ++ for (int i = 0; i < 2; i++) { ++ tmp = (v_double[i] < 0) ? -v_double[i] : v_double[i]; ++ double roundDown = floor(tmp); // Round down value ++ double roundUp = ceil(tmp); // Round up value ++ double diffDown = tmp - roundDown; ++ double diffUp = roundUp - tmp; ++ if (diffDown < diffUp) { ++ /* If it's closer to the round down value, then use it */ ++ res[i] = roundDown; ++ } else if (diffDown > diffUp) { ++ /* If it's closer to the round up value, then use it */ ++ res[i] = roundUp; ++ } else { ++ /* If it's equidistant between round up and round down value, ++ * pick the one which is an even number */ ++ double half = roundDown / 2; ++ if (half != floor(half)) { ++ /* If the round down value is odd, return the round up value ++ */ ++ res[i] = roundUp; ++ } else { ++ /* If the round up value is odd, return the round down value ++ */ ++ res[i] = roundDown; ++ } ++ } ++ res[i] = (v_double[i] < 0) ? -res[i] : res[i]; ++ } ++ return _mm_set_pd(res[1], res[0]); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_pd(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_pd(a); ++ } ++ return _mm_set_pd(v_double[1] > 0 ? floor(v_double[1]) : ceil(v_double[1]), ++ v_double[0] > 0 ? floor(v_double[0]) : ceil(v_double[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed single-precision ++// floating-point elements in dst. ++// software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_round_ps ++FORCE_INLINE __m128 _mm_round_ps(__m128 a, int rounding) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndnq_f32(vreinterpretq_f32_m128(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_ps(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_ps(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndq_f32(vreinterpretq_f32_m128(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128_f32(vrndiq_f32(vreinterpretq_f32_m128(a))); ++ } ++#else ++ float *v_float = (float *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vbslq_s32(is_delta_half, r_even, r_normal))); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_ps(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_ps(a); ++ } ++ return _mm_set_ps(v_float[3] > 0 ? floorf(v_float[3]) : ceilf(v_float[3]), ++ v_float[2] > 0 ? floorf(v_float[2]) : ceilf(v_float[2]), ++ v_float[1] > 0 ? floorf(v_float[1]) : ceilf(v_float[1]), ++ v_float[0] > 0 ? floorf(v_float[0]) : ceilf(v_float[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b using ++// the rounding parameter, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_sd ++FORCE_INLINE __m128d _mm_round_sd(__m128d a, __m128d b, int rounding) ++{ ++ return _mm_move_sd(a, _mm_round_pd(b, rounding)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b using ++// the rounding parameter, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. Rounding is done according to the ++// rounding[3:0] parameter, which can be one of: ++// (_MM_FROUND_TO_NEAREST_INT |_MM_FROUND_NO_EXC) // round to nearest, and ++// suppress exceptions ++// (_MM_FROUND_TO_NEG_INF |_MM_FROUND_NO_EXC) // round down, and ++// suppress exceptions ++// (_MM_FROUND_TO_POS_INF |_MM_FROUND_NO_EXC) // round up, and suppress ++// exceptions ++// (_MM_FROUND_TO_ZERO |_MM_FROUND_NO_EXC) // truncate, and suppress ++// exceptions _MM_FROUND_CUR_DIRECTION // use MXCSR.RC; see ++// _MM_SET_ROUNDING_MODE ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_ss ++FORCE_INLINE __m128 _mm_round_ss(__m128 a, __m128 b, int rounding) ++{ ++ return _mm_move_ss(a, _mm_round_ps(b, rounding)); ++} ++ ++// Load 128-bits of integer data from memory into dst using a non-temporal ++// memory hint. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_load_si128 ++FORCE_INLINE __m128i _mm_stream_load_si128(__m128i *p) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ return __builtin_nontemporal_load(p); ++#else ++ return vreinterpretq_m128i_s64(vld1q_s64((int64_t *) p)); ++#endif ++} ++ ++// Compute the bitwise NOT of a and then AND with a 128-bit vector containing ++// all 1's, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_ones ++FORCE_INLINE int _mm_test_all_ones(__m128i a) ++{ ++ return (uint64_t) (vgetq_lane_s64(a, 0) & vgetq_lane_s64(a, 1)) == ++ ~(uint64_t) 0; ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_zeros ++FORCE_INLINE int _mm_test_all_zeros(__m128i a, __m128i mask) ++{ ++ int64x2_t a_and_mask = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(mask)); ++ return !(vgetq_lane_s64(a_and_mask, 0) | vgetq_lane_s64(a_and_mask, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute ++// the bitwise NOT of a and then AND with mask, and set CF to 1 if the result is ++// zero, otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_test_mix_ones_zero ++// Note: Argument names may be wrong in the Intel intrinsics guide. ++FORCE_INLINE int _mm_test_mix_ones_zeros(__m128i a, __m128i mask) ++{ ++ uint64x2_t v = vreinterpretq_u64_m128i(a); ++ uint64x2_t m = vreinterpretq_u64_m128i(mask); ++ ++ // find ones (set-bits) and zeros (clear-bits) under clip mask ++ uint64x2_t ones = vandq_u64(m, v); ++ uint64x2_t zeros = vbicq_u64(m, v); ++ ++ // If both 128-bit variables are populated (non-zero) then return 1. ++ // For comparision purposes, first compact each var down to 32-bits. ++ uint32x2_t reduced = vpmax_u32(vqmovn_u64(ones), vqmovn_u64(zeros)); ++ ++ // if folding minimum is non-zero then both vars must be non-zero ++ return (vget_lane_u32(vpmin_u32(reduced, reduced), 0) != 0); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the CF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testc_si128 ++FORCE_INLINE int _mm_testc_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vbicq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testnzc_si128 ++#define _mm_testnzc_si128(a, b) _mm_test_mix_ones_zeros(a, b) ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the ZF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testz_si128 ++FORCE_INLINE int _mm_testz_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++/* SSE4.2 */ ++ ++static const uint16_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask16b[8] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++static const uint8_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask8b[16] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++ ++/* specify the source data format */ ++#define _SIDD_UBYTE_OPS 0x00 /* unsigned 8-bit characters */ ++#define _SIDD_UWORD_OPS 0x01 /* unsigned 16-bit characters */ ++#define _SIDD_SBYTE_OPS 0x02 /* signed 8-bit characters */ ++#define _SIDD_SWORD_OPS 0x03 /* signed 16-bit characters */ ++ ++/* specify the comparison operation */ ++#define _SIDD_CMP_EQUAL_ANY 0x00 /* compare equal any: strchr */ ++#define _SIDD_CMP_RANGES 0x04 /* compare ranges */ ++#define _SIDD_CMP_EQUAL_EACH 0x08 /* compare equal each: strcmp */ ++#define _SIDD_CMP_EQUAL_ORDERED 0x0C /* compare equal ordered */ ++ ++/* specify the polarity */ ++#define _SIDD_POSITIVE_POLARITY 0x00 ++#define _SIDD_MASKED_POSITIVE_POLARITY 0x20 ++#define _SIDD_NEGATIVE_POLARITY 0x10 /* negate results */ ++#define _SIDD_MASKED_NEGATIVE_POLARITY \ ++ 0x30 /* negate results only before end of string */ ++ ++/* specify the output selection in _mm_cmpXstri */ ++#define _SIDD_LEAST_SIGNIFICANT 0x00 ++#define _SIDD_MOST_SIGNIFICANT 0x40 ++ ++/* specify the output selection in _mm_cmpXstrm */ ++#define _SIDD_BIT_MASK 0x00 ++#define _SIDD_UNIT_MASK 0x40 ++ ++/* Pattern Matching for C macros. ++ * https://github.com/pfultz2/Cloak/wiki/C-Preprocessor-tricks,-tips,-and-idioms ++ */ ++ ++/* catenate */ ++#define SSE2NEON_PRIMITIVE_CAT(a, ...) a##__VA_ARGS__ ++#define SSE2NEON_CAT(a, b) SSE2NEON_PRIMITIVE_CAT(a, b) ++ ++#define SSE2NEON_IIF(c) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_IIF_, c) ++/* run the 2nd parameter */ ++#define SSE2NEON_IIF_0(t, ...) __VA_ARGS__ ++/* run the 1st parameter */ ++#define SSE2NEON_IIF_1(t, ...) t ++ ++#define SSE2NEON_COMPL(b) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_COMPL_, b) ++#define SSE2NEON_COMPL_0 1 ++#define SSE2NEON_COMPL_1 0 ++ ++#define SSE2NEON_DEC(x) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_DEC_, x) ++#define SSE2NEON_DEC_1 0 ++#define SSE2NEON_DEC_2 1 ++#define SSE2NEON_DEC_3 2 ++#define SSE2NEON_DEC_4 3 ++#define SSE2NEON_DEC_5 4 ++#define SSE2NEON_DEC_6 5 ++#define SSE2NEON_DEC_7 6 ++#define SSE2NEON_DEC_8 7 ++#define SSE2NEON_DEC_9 8 ++#define SSE2NEON_DEC_10 9 ++#define SSE2NEON_DEC_11 10 ++#define SSE2NEON_DEC_12 11 ++#define SSE2NEON_DEC_13 12 ++#define SSE2NEON_DEC_14 13 ++#define SSE2NEON_DEC_15 14 ++#define SSE2NEON_DEC_16 15 ++ ++/* detection */ ++#define SSE2NEON_CHECK_N(x, n, ...) n ++#define SSE2NEON_CHECK(...) SSE2NEON_CHECK_N(__VA_ARGS__, 0, ) ++#define SSE2NEON_PROBE(x) x, 1, ++ ++#define SSE2NEON_NOT(x) SSE2NEON_CHECK(SSE2NEON_PRIMITIVE_CAT(SSE2NEON_NOT_, x)) ++#define SSE2NEON_NOT_0 SSE2NEON_PROBE(~) ++ ++#define SSE2NEON_BOOL(x) SSE2NEON_COMPL(SSE2NEON_NOT(x)) ++#define SSE2NEON_IF(c) SSE2NEON_IIF(SSE2NEON_BOOL(c)) ++ ++#define SSE2NEON_EAT(...) ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++#define SSE2NEON_WHEN(c) SSE2NEON_IF(c)(SSE2NEON_EXPAND, SSE2NEON_EAT) ++ ++/* recursion */ ++/* deferred expression */ ++#define SSE2NEON_EMPTY() ++#define SSE2NEON_DEFER(id) id SSE2NEON_EMPTY() ++#define SSE2NEON_OBSTRUCT(...) __VA_ARGS__ SSE2NEON_DEFER(SSE2NEON_EMPTY)() ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++ ++#define SSE2NEON_EVAL(...) \ ++ SSE2NEON_EVAL1(SSE2NEON_EVAL1(SSE2NEON_EVAL1(__VA_ARGS__))) ++#define SSE2NEON_EVAL1(...) \ ++ SSE2NEON_EVAL2(SSE2NEON_EVAL2(SSE2NEON_EVAL2(__VA_ARGS__))) ++#define SSE2NEON_EVAL2(...) \ ++ SSE2NEON_EVAL3(SSE2NEON_EVAL3(SSE2NEON_EVAL3(__VA_ARGS__))) ++#define SSE2NEON_EVAL3(...) __VA_ARGS__ ++ ++#define SSE2NEON_REPEAT(count, macro, ...) \ ++ SSE2NEON_WHEN(count) \ ++ (SSE2NEON_OBSTRUCT(SSE2NEON_REPEAT_INDIRECT)()( \ ++ SSE2NEON_DEC(count), macro, \ ++ __VA_ARGS__) SSE2NEON_OBSTRUCT(macro)(SSE2NEON_DEC(count), \ ++ __VA_ARGS__)) ++#define SSE2NEON_REPEAT_INDIRECT() SSE2NEON_REPEAT ++ ++#define SSE2NEON_SIZE_OF_byte 8 ++#define SSE2NEON_NUMBER_OF_LANES_byte 16 ++#define SSE2NEON_SIZE_OF_word 16 ++#define SSE2NEON_NUMBER_OF_LANES_word 8 ++ ++#define SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE(i, type) \ ++ mtx[i] = vreinterpretq_m128i_##type(vceqq_##type( \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)), \ ++ vreinterpretq_##type##_m128i(a))); ++ ++#define SSE2NEON_FILL_LANE(i, type) \ ++ vec_b[i] = \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)); ++ ++#define PCMPSTR_RANGES(a, b, mtx, data_type_prefix, type_prefix, size, \ ++ number_of_lanes, byte_or_word) \ ++ do { \ ++ SSE2NEON_CAT( \ ++ data_type_prefix, \ ++ SSE2NEON_CAT(size, \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(number_of_lanes, _t)))) \ ++ vec_b[number_of_lanes]; \ ++ __m128i mask = SSE2NEON_IIF(byte_or_word)( \ ++ vreinterpretq_m128i_u16(vdupq_n_u16(0xff)), \ ++ vreinterpretq_m128i_u32(vdupq_n_u32(0xffff))); \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, SSE2NEON_FILL_LANE, \ ++ SSE2NEON_CAT(type_prefix, size))) \ ++ for (int i = 0; i < number_of_lanes; i++) { \ ++ mtx[i] = SSE2NEON_CAT(vreinterpretq_m128i_u, \ ++ size)(SSE2NEON_CAT(vbslq_u, size)( \ ++ SSE2NEON_CAT(vreinterpretq_u, \ ++ SSE2NEON_CAT(size, _m128i))(mask), \ ++ SSE2NEON_CAT(vcgeq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))), \ ++ SSE2NEON_CAT(vcleq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))))); \ ++ } \ ++ } while (0) ++ ++#define PCMPSTR_EQ(a, b, mtx, size, number_of_lanes) \ ++ do { \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, \ ++ SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE, \ ++ SSE2NEON_CAT(u, size))) \ ++ } while (0) ++ ++#define SSE2NEON_CMP_EQUAL_ANY_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_any(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_any_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_RANGES_IMPL(type, data_type, us, byte_or_word) \ ++ static int _sse2neon_cmp_##us##type##_ranges(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_RANGES( \ ++ a, b, mtx, data_type, us, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), byte_or_word); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_ranges_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_EQUAL_ORDERED_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_ordered(__m128i a, int la, \ ++ __m128i b, int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_ordered_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type))))( \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), la, lb, mtx); \ ++ } ++ ++static int _sse2neon_aggregate_equal_any_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ int tmp = _sse2neon_vaddvq_u8(vreinterpretq_u8_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_equal_any_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ int tmp = _sse2neon_vaddvq_u16(vreinterpretq_u16_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ANY(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ANY(SSE2NEON_CMP_EQUAL_ANY_) ++ ++static int _sse2neon_aggregate_ranges_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ __m128i tmp = vreinterpretq_m128i_u32( ++ vshrq_n_u32(vreinterpretq_u32_m128i(mtx[j]), 16)); ++ uint32x4_t vec_res = vandq_u32(vreinterpretq_u32_m128i(mtx[j]), ++ vreinterpretq_u32_m128i(tmp)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int t = vaddvq_u32(vec_res) ? 1 : 0; ++#else ++ uint64x2_t sumh = vpaddlq_u32(vec_res); ++ int t = vgetq_lane_u64(sumh, 0) + vgetq_lane_u64(sumh, 1); ++#endif ++ res |= (t << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_ranges_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ __m128i tmp = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 8)); ++ uint16x8_t vec_res = vandq_u16(vreinterpretq_u16_m128i(mtx[j]), ++ vreinterpretq_u16_m128i(tmp)); ++ int t = _sse2neon_vaddvq_u16(vec_res) ? 1 : 0; ++ res |= (t << j); ++ } ++ return res; ++} ++ ++#define SSE2NEON_CMP_RANGES_IS_BYTE 1 ++#define SSE2NEON_CMP_RANGES_IS_WORD 0 ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_RANGES(prefix) \ ++ prefix##IMPL(byte, uint, u, prefix##IS_BYTE) \ ++ prefix##IMPL(byte, int, s, prefix##IS_BYTE) \ ++ prefix##IMPL(word, uint, u, prefix##IS_WORD) \ ++ prefix##IMPL(word, int, s, prefix##IS_WORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_RANGES(SSE2NEON_CMP_RANGES_) ++ ++#undef SSE2NEON_CMP_RANGES_IS_BYTE ++#undef SSE2NEON_CMP_RANGES_IS_WORD ++ ++static int _sse2neon_cmp_byte_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint8x16_t mtx = ++ vceqq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x10000 - (1 << la); ++ int tb = 0x10000 - (1 << lb); ++ uint8x8_t vec_mask, vec0_lo, vec0_hi, vec1_lo, vec1_hi; ++ uint8x8_t tmp_lo, tmp_hi, res_lo, res_hi; ++ vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ vec0_lo = vtst_u8(vdup_n_u8(m0), vec_mask); ++ vec0_hi = vtst_u8(vdup_n_u8(m0 >> 8), vec_mask); ++ vec1_lo = vtst_u8(vdup_n_u8(m1), vec_mask); ++ vec1_hi = vtst_u8(vdup_n_u8(m1 >> 8), vec_mask); ++ tmp_lo = vtst_u8(vdup_n_u8(tb), vec_mask); ++ tmp_hi = vtst_u8(vdup_n_u8(tb >> 8), vec_mask); ++ ++ res_lo = vbsl_u8(vec0_lo, vdup_n_u8(0), vget_low_u8(mtx)); ++ res_hi = vbsl_u8(vec0_hi, vdup_n_u8(0), vget_high_u8(mtx)); ++ res_lo = vbsl_u8(vec1_lo, tmp_lo, res_lo); ++ res_hi = vbsl_u8(vec1_hi, tmp_hi, res_hi); ++ res_lo = vand_u8(res_lo, vec_mask); ++ res_hi = vand_u8(res_hi, vec_mask); ++ ++ int res = _sse2neon_vaddv_u8(res_lo) + (_sse2neon_vaddv_u8(res_hi) << 8); ++ return res; ++} ++ ++static int _sse2neon_cmp_word_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint16x8_t mtx = ++ vceqq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x100 - (1 << la); ++ int tb = 0x100 - (1 << lb); ++ uint16x8_t vec_mask = vld1q_u16(_sse2neon_cmpestr_mask16b); ++ uint16x8_t vec0 = vtstq_u16(vdupq_n_u16(m0), vec_mask); ++ uint16x8_t vec1 = vtstq_u16(vdupq_n_u16(m1), vec_mask); ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(tb), vec_mask); ++ mtx = vbslq_u16(vec0, vdupq_n_u16(0), mtx); ++ mtx = vbslq_u16(vec1, tmp, mtx); ++ mtx = vandq_u16(mtx, vec_mask); ++ return _sse2neon_vaddvq_u16(mtx); ++} ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE 1 ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD 0 ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IMPL(size, number_of_lanes, data_type) \ ++ static int _sse2neon_aggregate_equal_ordered_##size##x##number_of_lanes( \ ++ int bound, int la, int lb, __m128i mtx[16]) \ ++ { \ ++ int res = 0; \ ++ int m1 = SSE2NEON_IIF(data_type)(0x10000, 0x100) - (1 << la); \ ++ uint##size##x8_t vec_mask = SSE2NEON_IIF(data_type)( \ ++ vld1_u##size(_sse2neon_cmpestr_mask##size##b), \ ++ vld1q_u##size(_sse2neon_cmpestr_mask##size##b)); \ ++ uint##size##x##number_of_lanes##_t vec1 = SSE2NEON_IIF(data_type)( \ ++ vcombine_u##size(vtst_u##size(vdup_n_u##size(m1), vec_mask), \ ++ vtst_u##size(vdup_n_u##size(m1 >> 8), vec_mask)), \ ++ vtstq_u##size(vdupq_n_u##size(m1), vec_mask)); \ ++ uint##size##x##number_of_lanes##_t vec_minusone = vdupq_n_u##size(-1); \ ++ uint##size##x##number_of_lanes##_t vec_zero = vdupq_n_u##size(0); \ ++ for (int j = 0; j < lb; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size(vbslq_u##size( \ ++ vec1, vec_minusone, vreinterpretq_u##size##_m128i(mtx[j]))); \ ++ } \ ++ for (int j = lb; j < bound; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size( \ ++ vbslq_u##size(vec1, vec_minusone, vec_zero)); \ ++ } \ ++ unsigned SSE2NEON_IIF(data_type)(char, short) *ptr = \ ++ (unsigned SSE2NEON_IIF(data_type)(char, short) *) mtx; \ ++ for (int i = 0; i < bound; i++) { \ ++ int val = 1; \ ++ for (int j = 0, k = i; j < bound - i && k < bound; j++, k++) \ ++ val &= ptr[k * bound + j]; \ ++ res += val << i; \ ++ } \ ++ return res; \ ++ } ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(prefix) \ ++ prefix##IMPL(8, 16, prefix##IS_UBYTE) \ ++ prefix##IMPL(16, 8, prefix##IS_UWORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(SSE2NEON_AGGREGATE_EQUAL_ORDER_) ++ ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(SSE2NEON_CMP_EQUAL_ORDERED_) ++ ++#define SSE2NEON_CMPESTR_LIST \ ++ _(CMP_UBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_UWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_SBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_SWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_UBYTE_RANGES, cmp_ubyte_ranges) \ ++ _(CMP_UWORD_RANGES, cmp_uword_ranges) \ ++ _(CMP_SBYTE_RANGES, cmp_sbyte_ranges) \ ++ _(CMP_SWORD_RANGES, cmp_sword_ranges) \ ++ _(CMP_UBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_UWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_SBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_SWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_UBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_UWORD_EQUAL_ORDERED, cmp_word_equal_ordered) \ ++ _(CMP_SBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_SWORD_EQUAL_ORDERED, cmp_word_equal_ordered) ++ ++enum { ++#define _(name, func_suffix) name, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++typedef int (*cmpestr_func_t)(__m128i a, int la, __m128i b, int lb); ++static cmpestr_func_t _sse2neon_cmpfunc_table[] = { ++#define _(name, func_suffix) _sse2neon_##func_suffix, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++ ++FORCE_INLINE int _sse2neon_sido_negative(int res, int lb, int imm8, int bound) ++{ ++ switch (imm8 & 0x30) { ++ case _SIDD_NEGATIVE_POLARITY: ++ res ^= 0xffffffff; ++ break; ++ case _SIDD_MASKED_NEGATIVE_POLARITY: ++ res ^= (1 << lb) - 1; ++ break; ++ default: ++ break; ++ } ++ ++ return res & ((bound == 8) ? 0xFF : 0xFFFF); ++} ++ ++FORCE_INLINE int _sse2neon_clz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanReverse(&cnt, x)) ++ return 31 - cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_clz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanForward(&cnt, x)) ++ return cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_ctz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctzll(unsigned long long x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt; ++#if defined(SSE2NEON_HAS_BITSCAN64) ++ if (_BitScanForward64(&cnt, x)) ++ return (int) (cnt); ++#else ++ if (_BitScanForward(&cnt, (unsigned long) (x))) ++ return (int) cnt; ++ if (_BitScanForward(&cnt, (unsigned long) (x >> 32))) ++ return (int) (cnt + 32); ++#endif /* SSE2NEON_HAS_BITSCAN64 */ ++ return 64; ++#else /* assume GNU compatible compilers */ ++ return x != 0 ? __builtin_ctzll(x) : 64; ++#endif ++} ++ ++#define SSE2NEON_MIN(x, y) (x) < (y) ? (x) : (y) ++ ++#define SSE2NEON_CMPSTR_SET_UPPER(var, imm) \ ++ const int var = (imm & 0x01) ? 8 : 16 ++ ++#define SSE2NEON_CMPESTRX_LEN_PAIR(a, b, la, lb) \ ++ int tmp1 = la ^ (la >> 31); \ ++ la = tmp1 - (la >> 31); \ ++ int tmp2 = lb ^ (lb >> 31); \ ++ lb = tmp2 - (lb >> 31); \ ++ la = SSE2NEON_MIN(la, bound); \ ++ lb = SSE2NEON_MIN(lb, bound) ++ ++// Compare all pairs of character in string a and b, ++// then aggregate the result. ++// As the only difference of PCMPESTR* and PCMPISTR* is the way to calculate the ++// length of string, we use SSE2NEON_CMP{I,E}STRX_GET_LEN to get the length of ++// string a and b. ++#define SSE2NEON_COMP_AGG(a, b, la, lb, imm8, IE) \ ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); \ ++ SSE2NEON_##IE##_LEN_PAIR(a, b, la, lb); \ ++ int r2 = (_sse2neon_cmpfunc_table[imm8 & 0x0f])(a, la, b, lb); \ ++ r2 = _sse2neon_sido_negative(r2, lb, imm8, bound) ++ ++#define SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8) \ ++ return (r2 == 0) ? bound \ ++ : ((imm8 & 0x40) ? (31 - _sse2neon_clz(r2)) \ ++ : _sse2neon_ctz(r2)) ++ ++#define SSE2NEON_CMPSTR_GENERATE_MASK(dst) \ ++ __m128i dst = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ if (imm8 & 0x40) { \ ++ if (bound == 8) { \ ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(r2), \ ++ vld1q_u16(_sse2neon_cmpestr_mask16b)); \ ++ dst = vreinterpretq_m128i_u16(vbslq_u16( \ ++ tmp, vdupq_n_u16(-1), vreinterpretq_u16_m128i(dst))); \ ++ } else { \ ++ uint8x16_t vec_r2 = \ ++ vcombine_u8(vdup_n_u8(r2), vdup_n_u8(r2 >> 8)); \ ++ uint8x16_t tmp = \ ++ vtstq_u8(vec_r2, vld1q_u8(_sse2neon_cmpestr_mask8b)); \ ++ dst = vreinterpretq_m128i_u8( \ ++ vbslq_u8(tmp, vdupq_n_u8(-1), vreinterpretq_u8_m128i(dst))); \ ++ } \ ++ } else { \ ++ if (bound == 16) { \ ++ dst = vreinterpretq_m128i_u16( \ ++ vsetq_lane_u16(r2 & 0xffff, vreinterpretq_u16_m128i(dst), 0)); \ ++ } else { \ ++ dst = vreinterpretq_m128i_u8( \ ++ vsetq_lane_u8(r2 & 0xff, vreinterpretq_u8_m128i(dst), 0)); \ ++ } \ ++ } \ ++ return dst ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and returns 1 if b did not contain a null character and the ++// resulting mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestra ++FORCE_INLINE int _mm_cmpestra(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ int lb_cpy = lb; ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return !r2 & (lb_cpy > bound); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrc ++FORCE_INLINE int _mm_cmpestrc(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestri ++FORCE_INLINE int _mm_cmpestri(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrm ++FORCE_INLINE __m128i ++_mm_cmpestrm(__m128i a, int la, __m128i b, int lb, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestro ++FORCE_INLINE int _mm_cmpestro(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrs ++FORCE_INLINE int _mm_cmpestrs(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) lb; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrz ++FORCE_INLINE int _mm_cmpestrz(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) la; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return lb <= (bound - 1); ++} ++ ++#define SSE2NEON_CMPISTRX_LENGTH(str, len, imm8) \ ++ do { \ ++ if (imm8 & 0x01) { \ ++ uint16x8_t equal_mask_##str = \ ++ vceqq_u16(vreinterpretq_u16_m128i(str), vdupq_n_u16(0)); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 3; \ ++ } else { \ ++ uint16x8_t equal_mask_##str = vreinterpretq_u16_u8( \ ++ vceqq_u8(vreinterpretq_u8_m128i(str), vdupq_n_u8(0))); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 2; \ ++ } \ ++ } while (0) ++ ++#define SSE2NEON_CMPISTRX_LEN_PAIR(a, b, la, lb) \ ++ int la, lb; \ ++ do { \ ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); \ ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); \ ++ } while (0) ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if b did not contain a null character and the resulting ++// mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistra ++FORCE_INLINE int _mm_cmpistra(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return !r2 & (lb >= bound); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrc ++FORCE_INLINE int _mm_cmpistrc(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistri ++FORCE_INLINE int _mm_cmpistri(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrm ++FORCE_INLINE __m128i _mm_cmpistrm(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistro ++FORCE_INLINE int _mm_cmpistro(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrs ++FORCE_INLINE int _mm_cmpistrs(__m128i a, __m128i b, const int imm8) ++{ ++ (void) b; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int la; ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrz ++FORCE_INLINE int _mm_cmpistrz(__m128i a, __m128i b, const int imm8) ++{ ++ (void) a; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int lb; ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); ++ return lb <= (bound - 1); ++} ++ ++// Compares the 2 signed 64-bit integers in a and the 2 signed 64-bit integers ++// in b for greater than. ++FORCE_INLINE __m128i _mm_cmpgt_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vcgtq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ return vreinterpretq_m128i_s64(vshrq_n_s64( ++ vqsubq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)), ++ 63)); ++#endif ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 16-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u16 ++FORCE_INLINE uint32_t _mm_crc32_u16(uint32_t crc, uint16_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32ch %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32ch(crc, v); ++#else ++ crc = _mm_crc32_u8(crc, v & 0xff); ++ crc = _mm_crc32_u8(crc, (v >> 8) & 0xff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 32-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u32 ++FORCE_INLINE uint32_t _mm_crc32_u32(uint32_t crc, uint32_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cw %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cw(crc, v); ++#else ++ crc = _mm_crc32_u16(crc, v & 0xffff); ++ crc = _mm_crc32_u16(crc, (v >> 16) & 0xffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 64-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u64 ++FORCE_INLINE uint64_t _mm_crc32_u64(uint64_t crc, uint64_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cx %w[c], %w[c], %x[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cd((uint32_t) crc, v); ++#else ++ crc = _mm_crc32_u32((uint32_t) (crc), v & 0xffffffff); ++ crc = _mm_crc32_u32((uint32_t) (crc), (v >> 32) & 0xffffffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 8-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u8 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t crc, uint8_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cb %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cb(crc, v); ++#else ++ crc ^= v; ++#if defined(__ARM_FEATURE_CRYPTO) ++ // Adapted from: https://mary.rs/lab/crc32/ ++ // Barrent reduction ++ uint64x2_t orig = ++ vcombine_u64(vcreate_u64((uint64_t) (crc) << 24), vcreate_u64(0x0)); ++ uint64x2_t tmp = orig; ++ ++ // Polynomial P(x) of CRC32C ++ uint64_t p = 0x105EC76F1; ++ // Barrett Reduction (in bit-reflected form) constant mu_{64} = \lfloor ++ // 2^{64} / P(x) \rfloor = 0x11f91caf6 ++ uint64_t mu = 0x1dea713f1; ++ ++ // Multiply by mu_{64} ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(mu)); ++ // Divide by 2^{64} (mask away the unnecessary bits) ++ tmp = ++ vandq_u64(tmp, vcombine_u64(vcreate_u64(0xFFFFFFFF), vcreate_u64(0x0))); ++ // Multiply by P(x) (shifted left by 1 for alignment reasons) ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(p)); ++ // Subtract original from result ++ tmp = veorq_u64(tmp, orig); ++ ++ // Extract the 'lower' (in bit-reflected sense) 32 bits ++ crc = vgetq_lane_u32(vreinterpretq_u32_u64(tmp), 1); ++#else // Fall back to the generic table lookup approach ++ // Adapted from: https://create.stephan-brumme.com/crc32/ ++ // Apply half-byte comparision algorithm for the best ratio between ++ // performance and lookup table. ++ ++ // The lookup table just needs to store every 16th entry ++ // of the standard look-up table. ++ static const uint32_t crc32_half_byte_tbl[] = { ++ 0x00000000, 0x105ec76f, 0x20bd8ede, 0x30e349b1, 0x417b1dbc, 0x5125dad3, ++ 0x61c69362, 0x7198540d, 0x82f63b78, 0x92a8fc17, 0xa24bb5a6, 0xb21572c9, ++ 0xc38d26c4, 0xd3d3e1ab, 0xe330a81a, 0xf36e6f75, ++ }; ++ ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++#endif ++#endif ++ return crc; ++} ++ ++/* AES */ ++ ++#if !defined(__ARM_FEATURE_CRYPTO) && (!defined(_M_ARM64) || defined(__clang__)) ++/* clang-format off */ ++#define SSE2NEON_AES_SBOX(w) \ ++ { \ ++ w(0x63), w(0x7c), w(0x77), w(0x7b), w(0xf2), w(0x6b), w(0x6f), \ ++ w(0xc5), w(0x30), w(0x01), w(0x67), w(0x2b), w(0xfe), w(0xd7), \ ++ w(0xab), w(0x76), w(0xca), w(0x82), w(0xc9), w(0x7d), w(0xfa), \ ++ w(0x59), w(0x47), w(0xf0), w(0xad), w(0xd4), w(0xa2), w(0xaf), \ ++ w(0x9c), w(0xa4), w(0x72), w(0xc0), w(0xb7), w(0xfd), w(0x93), \ ++ w(0x26), w(0x36), w(0x3f), w(0xf7), w(0xcc), w(0x34), w(0xa5), \ ++ w(0xe5), w(0xf1), w(0x71), w(0xd8), w(0x31), w(0x15), w(0x04), \ ++ w(0xc7), w(0x23), w(0xc3), w(0x18), w(0x96), w(0x05), w(0x9a), \ ++ w(0x07), w(0x12), w(0x80), w(0xe2), w(0xeb), w(0x27), w(0xb2), \ ++ w(0x75), w(0x09), w(0x83), w(0x2c), w(0x1a), w(0x1b), w(0x6e), \ ++ w(0x5a), w(0xa0), w(0x52), w(0x3b), w(0xd6), w(0xb3), w(0x29), \ ++ w(0xe3), w(0x2f), w(0x84), w(0x53), w(0xd1), w(0x00), w(0xed), \ ++ w(0x20), w(0xfc), w(0xb1), w(0x5b), w(0x6a), w(0xcb), w(0xbe), \ ++ w(0x39), w(0x4a), w(0x4c), w(0x58), w(0xcf), w(0xd0), w(0xef), \ ++ w(0xaa), w(0xfb), w(0x43), w(0x4d), w(0x33), w(0x85), w(0x45), \ ++ w(0xf9), w(0x02), w(0x7f), w(0x50), w(0x3c), w(0x9f), w(0xa8), \ ++ w(0x51), w(0xa3), w(0x40), w(0x8f), w(0x92), w(0x9d), w(0x38), \ ++ w(0xf5), w(0xbc), w(0xb6), w(0xda), w(0x21), w(0x10), w(0xff), \ ++ w(0xf3), w(0xd2), w(0xcd), w(0x0c), w(0x13), w(0xec), w(0x5f), \ ++ w(0x97), w(0x44), w(0x17), w(0xc4), w(0xa7), w(0x7e), w(0x3d), \ ++ w(0x64), w(0x5d), w(0x19), w(0x73), w(0x60), w(0x81), w(0x4f), \ ++ w(0xdc), w(0x22), w(0x2a), w(0x90), w(0x88), w(0x46), w(0xee), \ ++ w(0xb8), w(0x14), w(0xde), w(0x5e), w(0x0b), w(0xdb), w(0xe0), \ ++ w(0x32), w(0x3a), w(0x0a), w(0x49), w(0x06), w(0x24), w(0x5c), \ ++ w(0xc2), w(0xd3), w(0xac), w(0x62), w(0x91), w(0x95), w(0xe4), \ ++ w(0x79), w(0xe7), w(0xc8), w(0x37), w(0x6d), w(0x8d), w(0xd5), \ ++ w(0x4e), w(0xa9), w(0x6c), w(0x56), w(0xf4), w(0xea), w(0x65), \ ++ w(0x7a), w(0xae), w(0x08), w(0xba), w(0x78), w(0x25), w(0x2e), \ ++ w(0x1c), w(0xa6), w(0xb4), w(0xc6), w(0xe8), w(0xdd), w(0x74), \ ++ w(0x1f), w(0x4b), w(0xbd), w(0x8b), w(0x8a), w(0x70), w(0x3e), \ ++ w(0xb5), w(0x66), w(0x48), w(0x03), w(0xf6), w(0x0e), w(0x61), \ ++ w(0x35), w(0x57), w(0xb9), w(0x86), w(0xc1), w(0x1d), w(0x9e), \ ++ w(0xe1), w(0xf8), w(0x98), w(0x11), w(0x69), w(0xd9), w(0x8e), \ ++ w(0x94), w(0x9b), w(0x1e), w(0x87), w(0xe9), w(0xce), w(0x55), \ ++ w(0x28), w(0xdf), w(0x8c), w(0xa1), w(0x89), w(0x0d), w(0xbf), \ ++ w(0xe6), w(0x42), w(0x68), w(0x41), w(0x99), w(0x2d), w(0x0f), \ ++ w(0xb0), w(0x54), w(0xbb), w(0x16) \ ++ } ++#define SSE2NEON_AES_RSBOX(w) \ ++ { \ ++ w(0x52), w(0x09), w(0x6a), w(0xd5), w(0x30), w(0x36), w(0xa5), \ ++ w(0x38), w(0xbf), w(0x40), w(0xa3), w(0x9e), w(0x81), w(0xf3), \ ++ w(0xd7), w(0xfb), w(0x7c), w(0xe3), w(0x39), w(0x82), w(0x9b), \ ++ w(0x2f), w(0xff), w(0x87), w(0x34), w(0x8e), w(0x43), w(0x44), \ ++ w(0xc4), w(0xde), w(0xe9), w(0xcb), w(0x54), w(0x7b), w(0x94), \ ++ w(0x32), w(0xa6), w(0xc2), w(0x23), w(0x3d), w(0xee), w(0x4c), \ ++ w(0x95), w(0x0b), w(0x42), w(0xfa), w(0xc3), w(0x4e), w(0x08), \ ++ w(0x2e), w(0xa1), w(0x66), w(0x28), w(0xd9), w(0x24), w(0xb2), \ ++ w(0x76), w(0x5b), w(0xa2), w(0x49), w(0x6d), w(0x8b), w(0xd1), \ ++ w(0x25), w(0x72), w(0xf8), w(0xf6), w(0x64), w(0x86), w(0x68), \ ++ w(0x98), w(0x16), w(0xd4), w(0xa4), w(0x5c), w(0xcc), w(0x5d), \ ++ w(0x65), w(0xb6), w(0x92), w(0x6c), w(0x70), w(0x48), w(0x50), \ ++ w(0xfd), w(0xed), w(0xb9), w(0xda), w(0x5e), w(0x15), w(0x46), \ ++ w(0x57), w(0xa7), w(0x8d), w(0x9d), w(0x84), w(0x90), w(0xd8), \ ++ w(0xab), w(0x00), w(0x8c), w(0xbc), w(0xd3), w(0x0a), w(0xf7), \ ++ w(0xe4), w(0x58), w(0x05), w(0xb8), w(0xb3), w(0x45), w(0x06), \ ++ w(0xd0), w(0x2c), w(0x1e), w(0x8f), w(0xca), w(0x3f), w(0x0f), \ ++ w(0x02), w(0xc1), w(0xaf), w(0xbd), w(0x03), w(0x01), w(0x13), \ ++ w(0x8a), w(0x6b), w(0x3a), w(0x91), w(0x11), w(0x41), w(0x4f), \ ++ w(0x67), w(0xdc), w(0xea), w(0x97), w(0xf2), w(0xcf), w(0xce), \ ++ w(0xf0), w(0xb4), w(0xe6), w(0x73), w(0x96), w(0xac), w(0x74), \ ++ w(0x22), w(0xe7), w(0xad), w(0x35), w(0x85), w(0xe2), w(0xf9), \ ++ w(0x37), w(0xe8), w(0x1c), w(0x75), w(0xdf), w(0x6e), w(0x47), \ ++ w(0xf1), w(0x1a), w(0x71), w(0x1d), w(0x29), w(0xc5), w(0x89), \ ++ w(0x6f), w(0xb7), w(0x62), w(0x0e), w(0xaa), w(0x18), w(0xbe), \ ++ w(0x1b), w(0xfc), w(0x56), w(0x3e), w(0x4b), w(0xc6), w(0xd2), \ ++ w(0x79), w(0x20), w(0x9a), w(0xdb), w(0xc0), w(0xfe), w(0x78), \ ++ w(0xcd), w(0x5a), w(0xf4), w(0x1f), w(0xdd), w(0xa8), w(0x33), \ ++ w(0x88), w(0x07), w(0xc7), w(0x31), w(0xb1), w(0x12), w(0x10), \ ++ w(0x59), w(0x27), w(0x80), w(0xec), w(0x5f), w(0x60), w(0x51), \ ++ w(0x7f), w(0xa9), w(0x19), w(0xb5), w(0x4a), w(0x0d), w(0x2d), \ ++ w(0xe5), w(0x7a), w(0x9f), w(0x93), w(0xc9), w(0x9c), w(0xef), \ ++ w(0xa0), w(0xe0), w(0x3b), w(0x4d), w(0xae), w(0x2a), w(0xf5), \ ++ w(0xb0), w(0xc8), w(0xeb), w(0xbb), w(0x3c), w(0x83), w(0x53), \ ++ w(0x99), w(0x61), w(0x17), w(0x2b), w(0x04), w(0x7e), w(0xba), \ ++ w(0x77), w(0xd6), w(0x26), w(0xe1), w(0x69), w(0x14), w(0x63), \ ++ w(0x55), w(0x21), w(0x0c), w(0x7d) \ ++ } ++/* clang-format on */ ++ ++/* X Macro trick. See https://en.wikipedia.org/wiki/X_Macro */ ++#define SSE2NEON_AES_H0(x) (x) ++static const uint8_t _sse2neon_sbox[256] = SSE2NEON_AES_SBOX(SSE2NEON_AES_H0); ++static const uint8_t _sse2neon_rsbox[256] = SSE2NEON_AES_RSBOX(SSE2NEON_AES_H0); ++#undef SSE2NEON_AES_H0 ++ ++/* x_time function and matrix multiply function */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#define SSE2NEON_XT(x) (((x) << 1) ^ ((((x) >> 7) & 1) * 0x1b)) ++#define SSE2NEON_MULTIPLY(x, y) \ ++ (((y & 1) * x) ^ ((y >> 1 & 1) * SSE2NEON_XT(x)) ^ \ ++ ((y >> 2 & 1) * SSE2NEON_XT(SSE2NEON_XT(x))) ^ \ ++ ((y >> 3 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))) ^ \ ++ ((y >> 4 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))))) ++#endif ++ ++// In the absence of crypto extensions, implement aesenc using regular NEON ++// intrinsics instead. See: ++// https://www.workofard.com/2017/01/accelerated-aes-for-the-arm64-linux-kernel/ ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/ and ++// for more information. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ /* shift rows */ ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ /* sub bytes */ ++ // Here, we separate the whole 256-bytes table into 4 64-bytes tables, and ++ // look up each of the table. After each lookup, we load the next table ++ // which locates at the next 64-bytes. In the meantime, the index in the ++ // table would be smaller than it was, so the index parameters of ++ // `vqtbx4q_u8()` need to be added the same constant as the loaded tables. ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ // 'w-0x40' equals to 'vsubq_u8(w, vdupq_n_u8(0x40))' ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ /* mix columns */ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ /* add round key */ ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A implementation for a table-based AES */ ++#define SSE2NEON_AES_B2W(b0, b1, b2, b3) \ ++ (((uint32_t) (b3) << 24) | ((uint32_t) (b2) << 16) | \ ++ ((uint32_t) (b1) << 8) | (uint32_t) (b0)) ++// muliplying 'x' by 2 in GF(2^8) ++#define SSE2NEON_AES_F2(x) ((x << 1) ^ (((x >> 7) & 1) * 0x011b /* WPOLY */)) ++// muliplying 'x' by 3 in GF(2^8) ++#define SSE2NEON_AES_F3(x) (SSE2NEON_AES_F2(x) ^ x) ++#define SSE2NEON_AES_U0(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F2(p), p, p, SSE2NEON_AES_F3(p)) ++#define SSE2NEON_AES_U1(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p, p) ++#define SSE2NEON_AES_U2(p) \ ++ SSE2NEON_AES_B2W(p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p) ++#define SSE2NEON_AES_U3(p) \ ++ SSE2NEON_AES_B2W(p, p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p)) ++ ++ // this generates a table containing every possible permutation of ++ // shift_rows() and sub_bytes() with mix_columns(). ++ static const uint32_t ALIGN_STRUCT(16) aes_table[4][256] = { ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U0), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U1), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U2), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U3), ++ }; ++#undef SSE2NEON_AES_B2W ++#undef SSE2NEON_AES_F2 ++#undef SSE2NEON_AES_F3 ++#undef SSE2NEON_AES_U0 ++#undef SSE2NEON_AES_U1 ++#undef SSE2NEON_AES_U2 ++#undef SSE2NEON_AES_U3 ++ ++ uint32_t x0 = _mm_cvtsi128_si32(a); // get a[31:0] ++ uint32_t x1 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); // get a[63:32] ++ uint32_t x2 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xAA)); // get a[95:64] ++ uint32_t x3 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); // get a[127:96] ++ ++ // finish the modulo addition step in mix_columns() ++ __m128i out = _mm_set_epi32( ++ (aes_table[0][x3 & 0xff] ^ aes_table[1][(x0 >> 8) & 0xff] ^ ++ aes_table[2][(x1 >> 16) & 0xff] ^ aes_table[3][x2 >> 24]), ++ (aes_table[0][x2 & 0xff] ^ aes_table[1][(x3 >> 8) & 0xff] ^ ++ aes_table[2][(x0 >> 16) & 0xff] ^ aes_table[3][x1 >> 24]), ++ (aes_table[0][x1 & 0xff] ^ aes_table[1][(x2 >> 8) & 0xff] ^ ++ aes_table[2][(x3 >> 16) & 0xff] ^ aes_table[3][x0 >> 24]), ++ (aes_table[0][x0 & 0xff] ^ aes_table[1][(x1 >> 8) & 0xff] ^ ++ aes_table[2][(x2 >> 16) & 0xff] ^ aes_table[3][x3 >> 24])); ++ ++ return _mm_xor_si128(out, RoundKey); ++#endif ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // inverse mix columns ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & ++ 0x1b); // muliplying 'v' by 2 in GF(2^8) ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ // inverse mix columns ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ // sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A implementation */ ++ uint8_t v[16] = { ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 0)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 5)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 10)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 15)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 4)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 9)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 14)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 3)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 8)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 13)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 2)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 7)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 12)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 1)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 6)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 11)], ++ }; ++ ++ return vreinterpretq_m128i_u8(vld1q_u8(v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (int i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++#if defined(__aarch64__) ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ uint8x16_t v = vreinterpretq_u8_m128i(a); ++ uint8x16_t w; ++ ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ // multiplying 'v' by 2 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ return vreinterpretq_m128i_u8(w); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ vst1q_u8((uint8_t *) v, vreinterpretq_u8_m128i(a)); ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)); ++#endif ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++// ++// Emits the Advanced Encryption Standard (AES) instruction aeskeygenassist. ++// This instruction generates a round key for AES encryption. See ++// https://kazakov.life/2017/11/01/cryptocurrency-mining-on-ios-devices/ ++// for details. ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++#if defined(__aarch64__) ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); ++ uint8x16_t v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), _a); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), _a - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), _a - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), _a - 0xc0); ++ ++ uint32x4_t v_u32 = vreinterpretq_u32_u8(v); ++ uint32x4_t ror_v = vorrq_u32(vshrq_n_u32(v_u32, 8), vshlq_n_u32(v_u32, 24)); ++ uint32x4_t ror_xor_v = veorq_u32(ror_v, vdupq_n_u32(rcon)); ++ ++ return vreinterpretq_m128i_u32(vtrn2q_u32(v_u32, ror_xor_v)); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint32_t X1 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); ++ uint32_t X3 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); ++ for (int i = 0; i < 4; ++i) { ++ ((uint8_t *) &X1)[i] = _sse2neon_sbox[((uint8_t *) &X1)[i]]; ++ ((uint8_t *) &X3)[i] = _sse2neon_sbox[((uint8_t *) &X3)[i]]; ++ } ++ return _mm_set_epi32(((X3 >> 8) | (X3 << 24)) ^ rcon, X3, ++ ((X1 >> 8) | (X1 << 24)) ^ rcon, X1); ++#endif ++} ++#undef SSE2NEON_AES_SBOX ++#undef SSE2NEON_AES_RSBOX ++ ++#if defined(__aarch64__) ++#undef SSE2NEON_XT ++#undef SSE2NEON_MULTIPLY ++#endif ++ ++#else /* __ARM_FEATURE_CRYPTO */ ++// Implements equivalent of 'aesenc' by combining AESE (with an empty key) and ++// AESMC and then manually applying the real key as an xor operation. This ++// unfortunately means an additional xor op; the compiler should be able to ++// optimize this away for repeated calls however. See ++// https://blog.michaelbrase.com/2018/05/08/emulating-x86-aes-intrinsics-on-armv8-a ++// for more details. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesmcq_u8(vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(b))); ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesimcq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return _mm_xor_si128(vreinterpretq_m128i_u8(vaeseq_u8( ++ vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ RoundKey); ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8( ++ veorq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++ return vreinterpretq_m128i_u8(vaesimcq_u8(vreinterpretq_u8_m128i(a))); ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst." ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++ // AESE does ShiftRows and SubBytes on A ++ uint8x16_t u8 = vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)); ++ ++#ifndef _MSC_VER ++ uint8x16_t dest = { ++ // Undo ShiftRows step from AESE and extract X1 and X3 ++ u8[0x4], u8[0x1], u8[0xE], u8[0xB], // SubBytes(X1) ++ u8[0x1], u8[0xE], u8[0xB], u8[0x4], // ROT(SubBytes(X1)) ++ u8[0xC], u8[0x9], u8[0x6], u8[0x3], // SubBytes(X3) ++ u8[0x9], u8[0x6], u8[0x3], u8[0xC], // ROT(SubBytes(X3)) ++ }; ++ uint32x4_t r = {0, (unsigned) rcon, 0, (unsigned) rcon}; ++ return vreinterpretq_m128i_u8(dest) ^ vreinterpretq_m128i_u32(r); ++#else ++ // We have to do this hack because MSVC is strictly adhering to the CPP ++ // standard, in particular C++03 8.5.1 sub-section 15, which states that ++ // unions must be initialized by their first member type. ++ ++ // As per the Windows ARM64 ABI, it is always little endian, so this works ++ __n128 dest{ ++ ((uint64_t) u8.n128_u8[0x4] << 0) | ((uint64_t) u8.n128_u8[0x1] << 8) | ++ ((uint64_t) u8.n128_u8[0xE] << 16) | ++ ((uint64_t) u8.n128_u8[0xB] << 24) | ++ ((uint64_t) u8.n128_u8[0x1] << 32) | ++ ((uint64_t) u8.n128_u8[0xE] << 40) | ++ ((uint64_t) u8.n128_u8[0xB] << 48) | ++ ((uint64_t) u8.n128_u8[0x4] << 56), ++ ((uint64_t) u8.n128_u8[0xC] << 0) | ((uint64_t) u8.n128_u8[0x9] << 8) | ++ ((uint64_t) u8.n128_u8[0x6] << 16) | ++ ((uint64_t) u8.n128_u8[0x3] << 24) | ++ ((uint64_t) u8.n128_u8[0x9] << 32) | ++ ((uint64_t) u8.n128_u8[0x6] << 40) | ++ ((uint64_t) u8.n128_u8[0x3] << 48) | ++ ((uint64_t) u8.n128_u8[0xC] << 56)}; ++ ++ dest.n128_u32[1] = dest.n128_u32[1] ^ rcon; ++ dest.n128_u32[3] = dest.n128_u32[3] ^ rcon; ++ ++ return dest; ++#endif ++} ++#endif ++ ++/* Others */ ++ ++// Perform a carry-less multiplication of two 64-bit integers, selected from a ++// and b according to imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clmulepi64_si128 ++FORCE_INLINE __m128i _mm_clmulepi64_si128(__m128i _a, __m128i _b, const int imm) ++{ ++ uint64x2_t a = vreinterpretq_u64_m128i(_a); ++ uint64x2_t b = vreinterpretq_u64_m128i(_b); ++ switch (imm & 0x11) { ++ case 0x00: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_low_u64(b))); ++ case 0x01: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_low_u64(b))); ++ case 0x10: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_high_u64(b))); ++ case 0x11: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_high_u64(b))); ++ default: ++ abort(); ++ } ++} ++ ++FORCE_INLINE unsigned int _sse2neon_mm_get_denormals_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_DENORMALS_ZERO_ON : _MM_DENORMALS_ZERO_OFF; ++} ++ ++// Count the number of bits set to 1 in unsigned 32-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u32 ++FORCE_INLINE int _mm_popcnt_u32(unsigned int a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcount) ++ return __builtin_popcount(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits(a); ++#else ++ return (int) vaddlv_u8(vcnt_u8(vcreate_u8((uint64_t) a))); ++#endif ++#else ++ uint32_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ ++ vst1_u32(&count, count32x2_val); ++ return count; ++#endif ++} ++ ++// Count the number of bits set to 1 in unsigned 64-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u64 ++FORCE_INLINE int64_t _mm_popcnt_u64(uint64_t a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcountll) ++ return __builtin_popcountll(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits64(a); ++#else ++ return (int64_t) vaddlv_u8(vcnt_u8(vcreate_u8(a))); ++#endif ++#else ++ uint64_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ uint64x1_t count64x1_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ count64x1_val = vpaddl_u32(count32x2_val); ++ vst1_u64(&count, count64x1_val); ++ return count; ++#endif ++} ++ ++FORCE_INLINE void _sse2neon_mm_set_denormals_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_DENORMALS_ZERO_MASK) == _MM_DENORMALS_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Return the current 64-bit value of the processor's time-stamp counter. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=rdtsc ++FORCE_INLINE uint64_t _rdtsc(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t val; ++ ++ /* According to ARM DDI 0487F.c, from Armv8.0 to Armv8.5 inclusive, the ++ * system counter is at least 56 bits wide; from Armv8.6, the counter ++ * must be 64 bits wide. So the system counter could be less than 64 ++ * bits wide and it is attributed with the flag 'cap_user_time_short' ++ * is true. ++ */ ++#if defined(_MSC_VER) ++ val = _ReadStatusReg(ARM64_SYSREG(3, 3, 14, 0, 2)); ++#else ++ __asm__ __volatile__("mrs %0, cntvct_el0" : "=r"(val)); ++#endif ++ ++ return val; ++#else ++ uint32_t pmccntr, pmuseren, pmcntenset; ++ // Read the user mode Performance Monitoring Unit (PMU) ++ // User Enable Register (PMUSERENR) access permissions. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c14, 0" : "=r"(pmuseren)); ++ if (pmuseren & 1) { // Allows reading PMUSERENR for user mode code. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c12, 1" : "=r"(pmcntenset)); ++ if (pmcntenset & 0x80000000UL) { // Is it counting? ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c13, 0" : "=r"(pmccntr)); ++ // The counter is set up to count every 64th cycle ++ return (uint64_t) (pmccntr) << 6; ++ } ++ } ++ ++ // Fallback to syscall as we can't enable PMUSERENR in user mode. ++ struct timeval tv; ++ gettimeofday(&tv, NULL); ++ return (uint64_t) (tv.tv_sec) * 1000000 + tv.tv_usec; ++#endif ++} ++ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma pop_macro("ALIGN_STRUCT") ++#pragma pop_macro("FORCE_INLINE") ++#endif ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma GCC pop_options ++#endif ++ ++#endif From 12844ecc96cdaebcca998e9c2754a8d42f18179e Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 25 Jun 2024 17:59:25 +0300 Subject: [PATCH 0161/1514] idr: add linux-aarch64 build (#48721) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/idr/build_failure.linux-64.yaml | 44 ------------------------- recipes/idr/meta.yaml | 11 ++++--- 2 files changed, 7 insertions(+), 48 deletions(-) delete mode 100644 recipes/idr/build_failure.linux-64.yaml diff --git a/recipes/idr/build_failure.linux-64.yaml b/recipes/idr/build_failure.linux-64.yaml deleted file mode 100644 index ccbddc0726d10..0000000000000 --- a/recipes/idr/build_failure.linux-64.yaml +++ /dev/null @@ -1,44 +0,0 @@ -recipe_sha: d673d1aa2d259268ebcf56dbe6fa05abb2e0d3f00aecde0de73102a607a8b864 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |- - Unable to find image 'quay.io/bioconda/bioconda-utils-build-env-cos7:2.2.1' locally - 2.2.1: Pulling from bioconda/bioconda-utils-build-env-cos7 - 2d473b07cdd5: Pulling fs layer - dfed59b31747: Pulling fs layer - dd7e9de2ee7e: Pulling fs layer - f0f5de892aa3: Pulling fs layer - f0f5de892aa3: Waiting - dd7e9de2ee7e: Verifying Checksum - dd7e9de2ee7e: Download complete - 2d473b07cdd5: Verifying Checksum - 2d473b07cdd5: Download complete - f0f5de892aa3: Verifying Checksum - f0f5de892aa3: Download complete - 2d473b07cdd5: Pull complete - dfed59b31747: Verifying Checksum - dfed59b31747: Download complete - dfed59b31747: Pull complete - dd7e9de2ee7e: Pull complete - f0f5de892aa3: Pull complete - Digest: sha256:50cc588ce95704560be302322c76e2e83bee36c1a21fab0dd974939143bb2dc3 - Status: Downloaded newer image for quay.io/bioconda/bioconda-utils-build-env-cos7:2.2.1 - /opt/conda/lib/python3.8/site-packages/conda_build/cli/main_build.py:390: UserWarning: RECIPE_PATH received is a file (/opt/recipe/meta.yaml). - It should be a path to a folder. - Forcing conda-build to use the recipe file. - warnings.warn( - Updating build index: /opt/conda/conda-bld - - No numpy version specified in conda_build_config.yaml. Falling back to default numpy value of 1.21 - WARNING:conda_build.metadata:No numpy version specified in conda_build_config.yaml. Falling back to default numpy value of 1.21 - Adding in variants from internal_defaults - INFO:conda_build.variants:Adding in variants from internal_defaults - Adding in variants from /opt/host-conda-bld/conda_build_config_0_-e_conda_build_config.yaml - INFO:conda_build.variants:Adding in variants from /opt/host-conda-bld/conda_build_config_0_-e_conda_build_config.yaml - Adding in variants from /opt/host-conda-bld/conda_build_config_1_-e_bioconda_utils-conda_build_config.yaml - INFO:conda_build.variants:Adding in variants from /opt/host-conda-bld/conda_build_config_1_-e_bioconda_utils-conda_build_config.yaml - Attempting to finalize metadata for idr - INFO:conda_build.metadata:Attempting to finalize metadata for idr - terminate called after throwing an instance of 'std::bad_alloc' - what(): std::bad_alloc - [?25l/opt/build_script.bash: line 23: 54 Aborted (core dumped) conda mambabuild --override-channels --no-anaconda-upload -c conda-forge -c bioconda -c defaults -e /opt/host-conda-bld/conda_build_config_0_-e_conda_build_config.yaml -e /opt/host-conda-bld/conda_build_config_1_-e_bioconda_utils-conda_build_config.yaml /opt/recipe/meta.yaml 2>&1 -# Last 100 lines of the build log. diff --git a/recipes/idr/meta.yaml b/recipes/idr/meta.yaml index 405d1cae7eebc..c047800a3d831 100644 --- a/recipes/idr/meta.yaml +++ b/recipes/idr/meta.yaml @@ -10,8 +10,9 @@ source: sha256: {{ sha256 }} build: - number: 11 - skip: True # [py2k] + number: 12 + run_exports: + - {{ pin_subpackage('idr', max_pin='x') }} requirements: build: @@ -21,12 +22,12 @@ requirements: - setuptools - numpy <1.20 - matplotlib-base - - scipy + - scipy <1.10 run: - python <3.10 - numpy <1.20 - matplotlib-base - - scipy + - scipy <1.10 test: commands: @@ -40,5 +41,7 @@ about: license_file: LICENSE extra: + additional-platforms: + - linux-aarch64 identifiers: - doi:10.1214/11-AOAS466 From 1045f3e2949801cdf27efa2d7181212263547aac Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 25 Jun 2024 11:49:47 -0400 Subject: [PATCH 0162/1514] Update slow5tools to 1.2.0 (#48723) --- recipes/slow5tools/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/slow5tools/meta.yaml b/recipes/slow5tools/meta.yaml index 1418957dd049f..308ced3d2299b 100644 --- a/recipes/slow5tools/meta.yaml +++ b/recipes/slow5tools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "slow5tools" %} -{% set version = "1.1.0" %} +{% set version = "1.2.0" %} package: name: {{ name }} @@ -7,10 +7,10 @@ package: source: url: https://github.com/hasindu2008/slow5tools/releases/download/v{{ version }}/slow5tools-v{{ version }}-release.tar.gz - sha256: 94b4a1917b80f212ab8d2442f414acb82e6a7c5db25087d89cbe99e4f910caef + sha256: ce9d198f8368e90f440fce974e798b7f521b0fe4f859caf9a452bba1ca5af2d4 build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('slow5tools', max_pin="x") }} From 083f9aa23b20286bebb584117f1285582402d8d3 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 25 Jun 2024 12:25:32 -0400 Subject: [PATCH 0163/1514] Update callingcardstools to 1.6 (#48724) --- recipes/callingcardstools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/callingcardstools/meta.yaml b/recipes/callingcardstools/meta.yaml index 71fe9244deaa1..a11c78a7172fc 100644 --- a/recipes/callingcardstools/meta.yaml +++ b/recipes/callingcardstools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "callingcardstools" %} -{% set version = "1.5.2" %} +{% set version = "1.6" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 7ee834c5e7855d1613f6eb9759f7ea0496e70ffbf0b132ab9b76f03685cf652e + sha256: 2506c0e788b8bfa4c715ebca012c48197e6d892c66fbbe2bd39472175de86994 build: noarch: python From 64e96e6806f07c87608dca2683bde584b8303109 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 25 Jun 2024 12:39:57 -0400 Subject: [PATCH 0164/1514] Update pyslow5 to 1.2.0 (#48720) * Update pyslow5 to 1.2.0 * Add run_exports * edit python variable --------- Co-authored-by: mencian Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/pyslow5/build.sh | 2 +- recipes/pyslow5/meta.yaml | 24 +++++++++++++++--------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/recipes/pyslow5/build.sh b/recipes/pyslow5/build.sh index b574ab80d53e9..edb6f1b7efee2 100644 --- a/recipes/pyslow5/build.sh +++ b/recipes/pyslow5/build.sh @@ -3,4 +3,4 @@ export C_INCLUDE_PATH=$PREFIX/include export LIBRARY_PATH=$PREFIX/lib -$PYTHON setup.py install --single-version-externally-managed --record=record.txt +${PYTHON} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir diff --git a/recipes/pyslow5/meta.yaml b/recipes/pyslow5/meta.yaml index cd8f32592ff84..4d72ebb39ee3e 100644 --- a/recipes/pyslow5/meta.yaml +++ b/recipes/pyslow5/meta.yaml @@ -1,29 +1,32 @@ -{% set version = "1.1.0" %} +{% set name = "pyslow5" %} +{% set sha256 = "e756a33e2bca373dea5367af7da8db02d77d80985685566cce05cc6a711c8487" %} +{% set version = "1.2.0" %} package: - name: pyslow5 + name: {{ name }} version: {{ version }} source: - url: https://files.pythonhosted.org/packages/96/80/ef430871b57cb97e2ab2449140fd00deec6cd9e8c71249676d561a45862a/pyslow5-1.1.0.tar.gz - sha256: 2926e13dbf8b1360e7628c32ebf1ad71133ed5bece548f3837b08cd5b7d79811 + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pyslow5-{{ version }}.tar.gz + sha256: {{ sha256 }} build: - number: 1 + number: 0 + run_exports: + - {{ pin_subpackage('pyslow5', max_pin="x") }} requirements: build: - {{ compiler('c') }} host: - python + - pip - cython - - setuptools - zlib - numpy run: - python - - zlib - - numpy + - {{ pin_compatible('numpy') }} test: imports: @@ -31,5 +34,8 @@ test: about: home: https://github.com/hasindu2008/slow5lib - license: MIT + license: Apache-2.0 + license_family: APACHE + license_file: thirdparty/streamvbyte/LICENSE summary: 'slow5lib Python binding' + dev_url: https://github.com/hasindu2008/slow5lib From e3c56207b5d08bf65c4571a70b2892794149a74c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 25 Jun 2024 12:40:28 -0400 Subject: [PATCH 0165/1514] Update orthanq to 1.5.0 (#48719) * Update orthanq to 1.5.0 * orthanq: Use large VM for Linux ARM64 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov --- .circleci/config.yml | 2 +- recipes/orthanq/meta.yaml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 4631c4c8db830..c4a3117dd6022 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -9,7 +9,7 @@ executors: linux-aarch64: machine: image: ubuntu-2204:current - resource_class: arm.medium + resource_class: arm.large jobs: # a basic unit of work in a run build_and_test: diff --git a/recipes/orthanq/meta.yaml b/recipes/orthanq/meta.yaml index 5eb0d89f65ccb..772e7ac067d13 100644 --- a/recipes/orthanq/meta.yaml +++ b/recipes/orthanq/meta.yaml @@ -1,17 +1,17 @@ -{% set version = "1.4.0" %} +{% set version = "1.5.0" %} package: name: orthanq version: {{ version }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage("orthanq", max_pin="x") }} source: url: https://github.com/orthanq/orthanq/archive/v{{ version }}.tar.gz - sha256: bbf562b03ba379032035f7f31ca6f27aa54a0027c5cc5b6da0ad3103f843d09a + sha256: 90c2cb4f90fe701fa6bc3d26a7655f49a7bfa0dd16efea069d7f7bbe7ce0cd68 requirements: build: From a7a2785b9310e6ba59bd9e737e27040f37552294 Mon Sep 17 00:00:00 2001 From: mencian Date: Tue, 25 Jun 2024 11:43:11 -0500 Subject: [PATCH 0166/1514] revert aarch64 machine back to medium --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c4a3117dd6022..4631c4c8db830 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -9,7 +9,7 @@ executors: linux-aarch64: machine: image: ubuntu-2204:current - resource_class: arm.large + resource_class: arm.medium jobs: # a basic unit of work in a run build_and_test: From f6376867adb99f880032b3c10c7f6997b826d37f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 25 Jun 2024 13:00:10 -0400 Subject: [PATCH 0167/1514] Update ensembl-utils to 0.3.0 (#48725) * Update ensembl-utils to 0.3.0 * clean up recipe --------- Co-authored-by: mencian --- recipes/ensembl-utils/meta.yaml | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/recipes/ensembl-utils/meta.yaml b/recipes/ensembl-utils/meta.yaml index 466eeeb9a8f4c..fb49fb8a4e522 100644 --- a/recipes/ensembl-utils/meta.yaml +++ b/recipes/ensembl-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ensembl-utils" %} -{% set version = "0.2.0" %} +{% set version = "0.3.0" %} package: name: {{ name|lower }} @@ -7,13 +7,13 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/ensembl_utils-{{ version }}.tar.gz - sha256: 0fc6fb82f0d09ac4a5eadbb77974921de415a12e45c9551d039d5d71335c9161 + sha256: e62889b35e1d000eb6beea6234eb082cce399423e10246b8a0f913fd27547275 build: entry_points: - extract_file = ensembl.utils.archive:extract_file_cli noarch: python - script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vv + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv number: 0 run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} @@ -21,25 +21,22 @@ build: requirements: host: - python >=3.10 - - setuptools - setuptools-scm - - wheel - pip run: - python >=3.10 - python-dotenv >=0.19.2 - pyyaml >=6.0,<7.0 - requests >=2.22.0 + - pytest - sqlalchemy >=1.4.0,<2.0 + - sqlalchemy-utils test: imports: - ensembl.utils commands: - - pip check - extract_file --help - requires: - - pip about: home: https://www.ensembl.org/ From 3231d2da3b075a6a2114183c5cef9bd8baf2e69c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 25 Jun 2024 15:46:30 -0400 Subject: [PATCH 0168/1514] Update metabolabpy to 0.9.44 (#48728) --- recipes/metabolabpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/metabolabpy/meta.yaml b/recipes/metabolabpy/meta.yaml index a69bbbd662ee5..f29d114803083 100644 --- a/recipes/metabolabpy/meta.yaml +++ b/recipes/metabolabpy/meta.yaml @@ -1,6 +1,6 @@ {% set name = "metabolabpy" %} -{% set version = "0.9.43" %} -{% set sha256 = "12bb9072b815599a6eb5a616ca686c1aec45ed831966fc71ddb1753ae453dee2" %} +{% set version = "0.9.44" %} +{% set sha256 = "64a860afc0f72f501627e65f1822342140080c5dad978dc0488e6bab0fa5a774" %} package: name: {{ name|lower }} From 89598f6fbc18fdaec8ce33cc4de7366e5b943449 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 25 Jun 2024 15:49:15 -0400 Subject: [PATCH 0169/1514] Update snakemake-executor-plugin-slurm to 0.7.0 (#48726) --- recipes/snakemake-executor-plugin-slurm/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-executor-plugin-slurm/meta.yaml b/recipes/snakemake-executor-plugin-slurm/meta.yaml index ea549fc3c7a66..ce9a2ccc62242 100644 --- a/recipes/snakemake-executor-plugin-slurm/meta.yaml +++ b/recipes/snakemake-executor-plugin-slurm/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-executor-plugin-slurm" %} -{% set version = "0.6.0" %} +{% set version = "0.7.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_executor_plugin_slurm-{{ version }}.tar.gz - sha256: d2833d809621ee1ebbdd8de1e66f21594c8a508016830daa5fafdad911fd440d + sha256: 833ec3b7c990898ca72bf895ed0131a15deb3dfba7c490f965c98b4158125dce build: noarch: python From aeb63c78dfec0eb456117d8506691c760205eac9 Mon Sep 17 00:00:00 2001 From: Andrey Prjibelski Date: Tue, 25 Jun 2024 23:39:55 +0300 Subject: [PATCH 0170/1514] Update rnaQUAST to 2.3.0 (#48714) * Update rnaQUAST to 2.3.0 * clean up recipe * edit tests --------- Co-authored-by: mencian --- recipes/rnaquast/build.sh | 6 +++--- recipes/rnaquast/meta.yaml | 30 +++++++++++++++++------------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/recipes/rnaquast/build.sh b/recipes/rnaquast/build.sh index 8736b04c39060..1c7fbb282c0aa 100644 --- a/recipes/rnaquast/build.sh +++ b/recipes/rnaquast/build.sh @@ -1,9 +1,9 @@ -#!/bin/bash +#!/bin/bash -euo -OUTDIR=$PREFIX/share/$PKG_NAME-$PKG_VERSION-$PKG_BUILDNUM +OUTDIR="$PREFIX/share/$PKG_NAME-$PKG_VERSION-$PKG_BUILDNUM" mkdir -p $OUTDIR mkdir -p $PREFIX/bin chmod a+x *.py cp -rp * "$OUTDIR/" cd $PREFIX/bin -ln -s "../${OUTDIR#$PREFIX}"/*.py . +ln -sf "../${OUTDIR#$PREFIX}"/*.py . diff --git a/recipes/rnaquast/meta.yaml b/recipes/rnaquast/meta.yaml index 91022da280e25..330e6ffac2846 100644 --- a/recipes/rnaquast/meta.yaml +++ b/recipes/rnaquast/meta.yaml @@ -1,9 +1,9 @@ {% set name = "rnaQUAST" %} -{% set version = "2.2.3" %} -{% set sha256 = "581f2632e76d61c168a0b60aac14fd5ce9b26518ec410e17ff876d9c85c42066" %} +{% set version = "2.3.0" %} +{% set sha256 = "71290a5067d69f3157137771bf5ff151e1918ad0c241d916fab88a2eb3409889" %} package: - name: {{ name | lower }} + name: {{ name|lower }} version: {{ version }} source: @@ -12,16 +12,17 @@ source: build: number: 0 - skip: True # [osx] + run_exports: + - {{ pin_subpackage('rnaquast', max_pin="x") }} requirements: run: - python - blast - - blat + - ucsc-blat - busco >=5 - emboss - - gmap <2021.02.22, >=2020.03.12 + - gmap >=2020.03.12 - gffutils - joblib - matplotlib-base @@ -31,16 +32,19 @@ requirements: test: commands: - - rnaQUAST.py --test - - makeblastdb -help - # test fa_coords from gmap - - ": | fa_coords | grep 'Error: No contigs were read in.'" + - rnaQUAST.py --help about: - summary: rnaQUAST is a tool for evaluating RNA-Seq assemblies using reference genome and gene database. In addition, rnaQUAST is also capable of estimating gene database coverage by raw reads and de novo quality assessment using third-party software. - home: http://cab.spbu.ru/software/rnaquast/ - license: GPLv2 + summary: "rnaQUAST is a tool for evaluating RNA-Seq assemblies using reference genome and gene database. In addition, rnaQUAST is also capable of estimating gene database coverage by raw reads and de novo quality assessment using third-party software." + home: https://github.com/ablab/rnaquast + license: GPL-2.0-or-later + license_family: GPL + dev_url: https://github.com/ablab/rnaquast extra: skip-lints: - should_be_noarch_generic + identifiers: + - doi:10.1093/bioinformatics/btw218 + - biotools:rnaQUAST + - usegalaxy-eu:rna_quast From e01b8e88a352c7d47e8f2f425abfb28168e66585 Mon Sep 17 00:00:00 2001 From: Eric Tvedte Date: Tue, 25 Jun 2024 17:16:03 -0400 Subject: [PATCH 0171/1514] Update FCS-GX to release v0.5.4 (#48697) --- recipes/ncbi-fcs-gx/0.5.0/aria_split_16.patch | 26 +++++++++++ recipes/ncbi-fcs-gx/0.5.0/build.sh | 13 ++++++ recipes/ncbi-fcs-gx/0.5.0/meta.yaml | 45 +++++++++++++++++++ recipes/ncbi-fcs-gx/0.5.0/no_static.patch | 10 +++++ recipes/ncbi-fcs-gx/build.sh | 10 +---- recipes/ncbi-fcs-gx/meta.yaml | 13 +++--- 6 files changed, 101 insertions(+), 16 deletions(-) create mode 100755 recipes/ncbi-fcs-gx/0.5.0/aria_split_16.patch create mode 100644 recipes/ncbi-fcs-gx/0.5.0/build.sh create mode 100644 recipes/ncbi-fcs-gx/0.5.0/meta.yaml create mode 100644 recipes/ncbi-fcs-gx/0.5.0/no_static.patch diff --git a/recipes/ncbi-fcs-gx/0.5.0/aria_split_16.patch b/recipes/ncbi-fcs-gx/0.5.0/aria_split_16.patch new file mode 100755 index 0000000000000..dbc30ef59b262 --- /dev/null +++ b/recipes/ncbi-fcs-gx/0.5.0/aria_split_16.patch @@ -0,0 +1,26 @@ +diff --git a/scripts/sync_files.py b/scripts/sync_files.py +index 3c404d37..2d87a87e 100755 +--- a/scripts/sync_files.py ++++ b/scripts/sync_files.py +@@ -360,16 +360,18 @@ def check_space(mft, dir): + def download_file_with_aria(url, file_path): + + aria_config = file_path.with_suffix(".aria2_config") ++ num_connections = 4 if "ncbi.nlm.nih.gov" in url else 16 ++ + with open(aria_config, "w", encoding="ascii") as f: +- f.write(""" ++ f.write(f""" + file-allocation=none + check-certificate=false + allow-overwrite=true + auto-file-renaming=false + max-tries=5 +- max-connection-per-server=5 +- max-concurrent-downloads=5 +- split=5 ++ max-concurrent-downloads=2 ++ max-connection-per-server={num_connections} ++ split={num_connections} + console-log-level=warn + """) diff --git a/recipes/ncbi-fcs-gx/0.5.0/build.sh b/recipes/ncbi-fcs-gx/0.5.0/build.sh new file mode 100644 index 0000000000000..1f6b00d23102a --- /dev/null +++ b/recipes/ncbi-fcs-gx/0.5.0/build.sh @@ -0,0 +1,13 @@ +#!/bin/bash -e +set -uex + +mkdir -vp ${PREFIX}/bin + +make VERBOSE=1 -j ${CPU_COUNT} + +cp $SRC_DIR/build/src/gx ${PREFIX}/bin/ +cp $SRC_DIR/scripts/* ${PREFIX}/bin/ +cp $SRC_DIR/make_gxdb/blast_names_mapping.tsv ${PREFIX}/bin/ + +chmod ua+x ${PREFIX}/bin/gx + diff --git a/recipes/ncbi-fcs-gx/0.5.0/meta.yaml b/recipes/ncbi-fcs-gx/0.5.0/meta.yaml new file mode 100644 index 0000000000000..1173cc87b9678 --- /dev/null +++ b/recipes/ncbi-fcs-gx/0.5.0/meta.yaml @@ -0,0 +1,45 @@ +package: + name: ncbi-fcs-gx + version: 0.5.0 + +source: + url: https://github.com/ncbi/fcs-gx/archive/refs/tags/v0.5.0.zip + sha256: 2f6b6099584495e1a9115403a5e4cb5f5dac1ddbbc691da9a3158a75391ffe8a + patches: + - aria_split_16.patch + - no_static.patch + + +requirements: + build: + - {{ compiler('cxx') }} + - make + - cmake + - libstdcxx-ng <=12.2 + - libgcc-ng <=12.2 + run: + - python >=3.9 + - aria2 =1.36.0 + - gzip >=1.5 + - pv >=1.4.6 + - rclone =1.61.1 + - grep >=3.4 + +build: + number: 3 + skip: True # [not linux or not x86_64] + run_exports: + - {{ pin_compatible('ncbi-fcs-gx', max_pin="x.x") }} + +test: + commands: + - gx --help + - ls -l ${PREFIX}/bin/ + - ${PREFIX}/bin/gx --help + +about: + home: https://github.com/ncbi/fcs + summary: The NCBI Foreign Contamination Screen. Genomic cross-species aligner, for contamination detection. + license: NCBI-PD + license_url: https://github.com/ncbi/fcs/blob/main/LICENSE.txt + diff --git a/recipes/ncbi-fcs-gx/0.5.0/no_static.patch b/recipes/ncbi-fcs-gx/0.5.0/no_static.patch new file mode 100644 index 0000000000000..8d8e22f22579e --- /dev/null +++ b/recipes/ncbi-fcs-gx/0.5.0/no_static.patch @@ -0,0 +1,10 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -5,6 +5,6 @@ + set(gx_VERSION_MINOR 0) + + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -O0 -ggdb3 -DDEBUG") +-set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -static -O2 -DNDEBUG") # TODO: investigate whether can/should enable -march=x86-64-v4 ++set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -O2 -DNDEBUG") # TODO: investigate whether can/should enable -march=x86-64-v4 + + add_subdirectory(src) diff --git a/recipes/ncbi-fcs-gx/build.sh b/recipes/ncbi-fcs-gx/build.sh index 115d28fa7d971..1f6b00d23102a 100644 --- a/recipes/ncbi-fcs-gx/build.sh +++ b/recipes/ncbi-fcs-gx/build.sh @@ -3,17 +3,11 @@ set -uex mkdir -vp ${PREFIX}/bin -ls -l . - -$GCC --version -$GCC -print-search-dirs - -#cd fcs-gx-0.4.0 -make VERBOSE=1 +make VERBOSE=1 -j ${CPU_COUNT} cp $SRC_DIR/build/src/gx ${PREFIX}/bin/ cp $SRC_DIR/scripts/* ${PREFIX}/bin/ cp $SRC_DIR/make_gxdb/blast_names_mapping.tsv ${PREFIX}/bin/ -echo PREFIX: ${PREFIX} + chmod ua+x ${PREFIX}/bin/gx diff --git a/recipes/ncbi-fcs-gx/meta.yaml b/recipes/ncbi-fcs-gx/meta.yaml index e1f67d2619dea..44f122e158877 100644 --- a/recipes/ncbi-fcs-gx/meta.yaml +++ b/recipes/ncbi-fcs-gx/meta.yaml @@ -1,13 +1,10 @@ package: name: ncbi-fcs-gx - version: 0.5.0 + version: 0.5.4 source: - url: https://github.com/ncbi/fcs-gx/archive/refs/tags/v0.5.0.zip - sha256: 2f6b6099584495e1a9115403a5e4cb5f5dac1ddbbc691da9a3158a75391ffe8a - patches: - - aria_split_16.patch - - no_static.patch + url: https://github.com/ncbi/fcs-gx/archive/refs/tags/v0.5.4.zip + sha256: 4398f935f5f5053a9a47d46416e28e8e7df34942bc72f6b5ac266de8ee365cf0 requirements: @@ -26,10 +23,10 @@ requirements: - grep >=3.4 build: - number: 3 + number: 0 skip: True # [not linux or not x86_64] run_exports: - - {{ pin_compatible('ncbi-fcs-gx', max_pin="0.5") }} + - {{ pin_compatible('ncbi-fcs-gx', max_pin="x.x") }} test: commands: From 9adbbaa62299b527a493db6e6a715bec89bb7f2e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 25 Jun 2024 17:32:22 -0400 Subject: [PATCH 0172/1514] Update trtools to 6.0.2 (#48727) * Update trtools to 6.0.2 * unpin numpy <2 --------- Co-authored-by: mencian --- recipes/trtools/meta.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/recipes/trtools/meta.yaml b/recipes/trtools/meta.yaml index 9cd7d82dec675..cf9d3fb5e9a6f 100644 --- a/recipes/trtools/meta.yaml +++ b/recipes/trtools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "trtools" %} -{% set version = "6.0.1" %} +{% set version = "6.0.2" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 915e5f1e2ee490ad2e78294014da71cb103182277fc075ee0ccc1d27aab8bece + sha256: 7bdb476951a4ec748df20058a31da3d1def14554cd9a67f85d3c61bf63f8f303 build: noarch: python @@ -20,21 +20,21 @@ build: - associaTR=trtools.associaTR:run - prancSTR = trtools.prancSTR:run - simTR = trtools.simTR:run - script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv" + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" number: 0 run_exports: - {{ pin_subpackage('trtools', max_pin="x") }} requirements: host: - - python >=3.7.1 + - python >=3.7.1,<4.0 - poetry-core >=1.0.0 - pip >=20.3 run: - python >=3.7.1,<4.0 - cyvcf2 >=0.30.4 - matplotlib-base >=3.1.2 - - numpy >=1.17.3,<2.0 + - numpy >=1.17.3 - pandas >=1.2.0 - pysam >=0.15.4 - scikit-learn >=0.23.1 From c280694bd8a4603c135b01d56cfc3498cc23f766 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 25 Jun 2024 17:32:30 -0400 Subject: [PATCH 0173/1514] Update metabolabpy to 0.9.45 (#48730) --- recipes/metabolabpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/metabolabpy/meta.yaml b/recipes/metabolabpy/meta.yaml index f29d114803083..89411bf47c6ad 100644 --- a/recipes/metabolabpy/meta.yaml +++ b/recipes/metabolabpy/meta.yaml @@ -1,6 +1,6 @@ {% set name = "metabolabpy" %} -{% set version = "0.9.44" %} -{% set sha256 = "64a860afc0f72f501627e65f1822342140080c5dad978dc0488e6bab0fa5a774" %} +{% set version = "0.9.45" %} +{% set sha256 = "5feb5e106c7d92ba9b0fbfb7991fcebc9bae8ac51438a73a161a5b3ee3cafc06" %} package: name: {{ name|lower }} From 0051e3dc749a88d109e3751313ac519f3aaedbca Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 25 Jun 2024 21:31:46 -0400 Subject: [PATCH 0174/1514] Update checkm-genome to 1.2.3 (#48731) * Update checkm-genome to 1.2.3 * add run_exports --------- Co-authored-by: mencian Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/checkm-genome/meta.yaml | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/recipes/checkm-genome/meta.yaml b/recipes/checkm-genome/meta.yaml index ad33337274a8c..fd74a342a3ec5 100644 --- a/recipes/checkm-genome/meta.yaml +++ b/recipes/checkm-genome/meta.yaml @@ -1,18 +1,21 @@ -{% set version="1.2.2" %} -{% set hash="a748b94e93f8d5fecfd0d5b3f17fcb119b25d4b45217e047b2fd742b21e74c0e" %} +{% set name = "checkm-genome" %} +{% set version = "1.2.3" %} +{% set sha256 = "5f8340e71d3256ba8cf407d27bdc7914d1aa86b14b2d63d1e32cceb325e5aa82" %} package: - name: checkm-genome + name: {{ name }} version: {{ version }} source: url: https://github.com/Ecogenomics/CheckM/archive/v{{ version }}.tar.gz - sha256: {{ hash }} + sha256: {{ sha256 }} build: - number: 1 + number: 0 noarch: python - script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed -vvv" + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" + run_exports: + - {{ pin_subpackage('checkm-genome', max_pin="x") }} requirements: host: @@ -20,12 +23,12 @@ requirements: - pip run: - python >=3.6 - - numpy >=1.13.1 - - scipy >=0.19.1 - - matplotlib-base >=2.1.0 + - numpy >=1.21.3 + - scipy >=1.7.3 + - matplotlib-base >=3.5.1 # older pysam versions have wrong openssl pinning - - pysam >=0.15.3 - - dendropy >=4.4.0 + - pysam >=0.19.0 + - dendropy >=4.5.2 - hmmer >=3.1b1 - prodigal >=2.6.1 - pplacer ==1.1.alpha19 @@ -39,7 +42,10 @@ test: - checkm.util about: - home: https://ecogenomics.github.io/CheckM/ - license: GPL3 + home: "https://github.com/Ecogenomics/CheckM" + license: GPL-3.0-or-later + license_family: GPL3 license_file: LICENSE summary: 'Assess the quality of microbial genomes recovered from isolates, single cells, and metagenomes.' + dev_url: "https://github.com/Ecogenomics/CheckM" + doc_url: "https://ecogenomics.github.io/CheckM" From 6787cac600662e4a5b9597a21eaecdb191de46d6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 25 Jun 2024 22:43:14 -0400 Subject: [PATCH 0175/1514] Update metaphor to 1.7.13 (#48733) --- recipes/metaphor/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/metaphor/meta.yaml b/recipes/metaphor/meta.yaml index 3704c2b8ca969..71a95ce8a10f9 100644 --- a/recipes/metaphor/meta.yaml +++ b/recipes/metaphor/meta.yaml @@ -1,5 +1,5 @@ {% set name = "metaphor" %} -{% set version = "1.7.12" %} +{% set version = "1.7.13" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://github.com/vinisalazar/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz - sha256: 53596956aa3ccfef485dcfac2c8299f938739f3d637716c32036c7050e73fbd4 + sha256: 88f959b4eb30cb7794d361015b386220cc5a0e1c0e09d710a575890febed57d9 build: number: 0 From f507d9be32798c5ff0823a74c66d333f88dab35c Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Wed, 26 Jun 2024 05:44:44 +0200 Subject: [PATCH 0176/1514] Update phynder: Try to reactivate OSX building (#48715) * Try to reactivate OSX building * try sed -i.bak * edit build.sh * edit build.sh --------- Co-authored-by: mencian Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/phynder/build.sh | 21 +++++++++++---------- recipes/phynder/meta.yaml | 10 ++++++---- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/recipes/phynder/build.sh b/recipes/phynder/build.sh index 0c5bc4499456d..9f08dea4f5b1c 100644 --- a/recipes/phynder/build.sh +++ b/recipes/phynder/build.sh @@ -2,9 +2,11 @@ set -x set +e +mkdir -p $PREFIX/bin + export CFLAGS="$CFLAGS -I$PREFIX/include" export LDFLAGS="$LDFLAGS -L$PREFIX/lib" -export CPATH=${PREFIX}/include +export C_INCLUDE_PATH="${PREFIX}/include" ## Static lib required by phynder, thus following instructions ## rather than trying to take from a conda htslib @@ -16,22 +18,21 @@ git submodule update --init --recursive sed '/AC_PROG_CC/a \ AC_CANONICAL_HOST \ AC_PROG_INSTALL \ -' configure.ac >configure.ac2 +' configure.ac > configure.ac2 mv configure.ac2 configure.ac -autoreconf -i -autoheader -autoconf +autoreconf -if ./configure --prefix=${PREFIX} --enable-libcurl --with-libdeflate --enable-plugins --enable-gcs --enable-s3 -make lib-static htslib_static.mk +make -j "${CPU_COUNT}" lib-static htslib_static.mk make CC=$CC install ## Patch phynder Makefile to cloned htslib folder (original assumes alongside, not within) cd ../ -sed -i 's#HTSDIR=../htslib#HTSDIR=./htslib#g' Makefile -sed -i -e 's#LDLIBS=$(HTSLIB) -lpthread $(HTSLIB_static_LIBS)#LDLIBS=$(HTSLIB) -lpthread $(HTSLIB_static_LIBS) $(LDFLAGS)#g' -e 's#cp phynder ~/bin##g' Makefile +sed -i.bak 's#HTSDIR=../htslib#HTSDIR=./htslib#g' Makefile +sed -i.bak -e 's#LDLIBS=$(HTSLIB) -lpthread $(HTSLIB_static_LIBS)#LDLIBS=$(HTSLIB) -lpthread $(HTSLIB_static_LIBS) $(LDFLAGS)#g' -e 's#cp phynder ~/bin##g' Makefile -make CC=$CC CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" +make CC=$CC CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" -j "${CPU_COUNT}" make install -cp phynder $PREFIX/bin/ +chmod 755 phynder +cp -f phynder $PREFIX/bin/ diff --git a/recipes/phynder/meta.yaml b/recipes/phynder/meta.yaml index 43765ed243229..87fc2a8831e97 100644 --- a/recipes/phynder/meta.yaml +++ b/recipes/phynder/meta.yaml @@ -10,10 +10,9 @@ source: sha256: 94d629d0c2e9085bfe9dbbe2c6302021ad81a00b3696696e103aa31db51d849f build: - number: 1 - skip: True # [osx] + number: 2 run_exports: - - {{ pin_subpackage('phynder', max_pin="x.x") }} + - {{ pin_subpackage('phynder', max_pin="x") }} requirements: build: @@ -21,6 +20,7 @@ requirements: - {{ compiler('c') }} - autoconf - automake + - libtool host: - libcurl - bzip2 @@ -29,14 +29,15 @@ requirements: - libdeflate - openssl # [not osx] - test: commands: - phynder -h + about: home: https://github.com/richarddurbin/phynder dev_url: https://github.com/richarddurbin/phynder license: MIT + license_family: MIT license_file: LICENSE summary: Efficient likelihood calculations to place samples into a phylogenetic tree. description: | @@ -45,6 +46,7 @@ about: samples into the Y chromosome phylogeny, when there are arbitrarily high rates of missing data. It has also been used for assigning ancient samples to whole mitochondrial genome phylogenies. + extra: maintainers: - jfy133 From 58f2af64ccf5adef4aa0adb3710606f5289be709 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 25 Jun 2024 23:45:03 -0400 Subject: [PATCH 0177/1514] Update sdeper to 1.4.0 (#48734) --- recipes/sdeper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sdeper/meta.yaml b/recipes/sdeper/meta.yaml index 220931ef5bf9e..2eef50d20313f 100755 --- a/recipes/sdeper/meta.yaml +++ b/recipes/sdeper/meta.yaml @@ -1,6 +1,6 @@ # This is the recipe file to publish SDePER to Bioconda {% set name = "sdeper" %} -{% set version = "1.3.1" %} +{% set version = "1.4.0" %} package: name: "{{ name|lower }}" @@ -8,7 +8,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: e6cc83bb116dfca58547f48a275e3bc41fba33b4be16a13adfb4c453f7f94f72 + sha256: 535a938729c473a51093e75c2d5c2d6df4d0e0452274a49210f6b0c783820d6a build: number: 0 From b7808223657e108ce85ab4b90106c0daf9bf846c Mon Sep 17 00:00:00 2001 From: EdoardoGiussani <47834675+EdoardoGiussani@users.noreply.github.com> Date: Wed, 26 Jun 2024 06:09:53 +0200 Subject: [PATCH 0178/1514] Add FluMut (#48729) --- recipes/flumut/meta.yaml | 51 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 recipes/flumut/meta.yaml diff --git a/recipes/flumut/meta.yaml b/recipes/flumut/meta.yaml new file mode 100644 index 0000000000000..9fca1d7f56e9e --- /dev/null +++ b/recipes/flumut/meta.yaml @@ -0,0 +1,51 @@ +{% set name = "flumut" %} +{% set version = "0.5.3" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/flumut-{{ version }}.tar.gz + sha256: 02821d4ca6f0e547ac3d17d865e357f0c4696dca14959d369d46c8f725a207da + +build: + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} + entry_points: + - flumut = flumut.flumut:main + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + +requirements: + host: + - python >=3.7 + - setuptools >=61.2 + - pip + run: + - python >=3.7 + - click >=8.0.0 + - biopython >=1.81 + - openpyxl >=3.1.2 + - importlib-resources >=1.3 + +test: + imports: + - flumut + commands: + - pip check + - flumut --help + requires: + - pip + +about: + home: https://github.com/izsvenezie-virology/FluMut + summary: A tool to search for molecular markers with potential impact on the biological characteristics of Influenza A viruses of the A(H5N1) subtype. + license: AGPL-3.0 + license_file: LICENSE + +extra: + recipe-maintainers: + - EdoardoGiussani + - AlexSartori From e99a8ff1722544de493ed120d24fc2fedb9a4b80 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 26 Jun 2024 03:34:22 -0400 Subject: [PATCH 0179/1514] Update perl-graph to 0.9728 (#48732) * Update perl-graph to 0.9728 * Add run_exports Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov --- recipes/perl-graph/meta.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recipes/perl-graph/meta.yaml b/recipes/perl-graph/meta.yaml index ae771f48d77ff..5dfca8f761acf 100644 --- a/recipes/perl-graph/meta.yaml +++ b/recipes/perl-graph/meta.yaml @@ -1,14 +1,16 @@ package: name: perl-graph - version: "0.9727" + version: "0.9728" source: - url: https://cpan.metacpan.org/authors/id/E/ET/ETJ/Graph-0.9727.tar.gz - sha256: 392a8916dc95131abe8c913dfcac7698484bf4866b42af5f7043c0062e742229 + url: https://cpan.metacpan.org/authors/id/E/ET/ETJ/Graph-0.9728.tar.gz + sha256: 3fcd05bd9905353b9e846a0e36de06f84a144d54331e3179d95f681c406f6466 build: noarch: generic number: 0 + run_exports: + - {{ pin_subpackage('perl-graph', max_pin="x.x") }} requirements: build: From 1b55678a9634b3900fa1b6754be5e159c80ca535 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 26 Jun 2024 11:08:29 +0300 Subject: [PATCH 0180/1514] phynder: add linux-aarch64 build (#48735) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/phynder/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/phynder/meta.yaml b/recipes/phynder/meta.yaml index 87fc2a8831e97..a422be287ac0f 100644 --- a/recipes/phynder/meta.yaml +++ b/recipes/phynder/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 94d629d0c2e9085bfe9dbbe2c6302021ad81a00b3696696e103aa31db51d849f build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage('phynder', max_pin="x") }} @@ -48,5 +48,7 @@ about: mitochondrial genome phylogenies. extra: + additional-platforms: + - linux-aarch64 maintainers: - jfy133 From 22c2ce53a9fc707a346b2054124845b11b07582b Mon Sep 17 00:00:00 2001 From: "Tianyu (Sky) Lu" Date: Wed, 26 Jun 2024 03:40:58 -0500 Subject: [PATCH 0181/1514] Update TIR-Learner (#48738) * Update meta.yaml * Update meta.yaml * Update meta.yaml --- recipes/tir-learner/meta.yaml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/recipes/tir-learner/meta.yaml b/recipes/tir-learner/meta.yaml index cc0a4538d1751..71766ee41780e 100644 --- a/recipes/tir-learner/meta.yaml +++ b/recipes/tir-learner/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 noarch: generic run_exports: - {{ pin_subpackage('tir-learner', max_pin='x') }} @@ -22,28 +22,30 @@ requirements: - genometools-genometools - blast - biopython - - scikit-learn + - scikit-learn >=1.3 - pandas - glob2 - multiprocess - regex - - tensorflow - - keras + - tensorflow >=2.11 + - keras >=3.3.3 - swifter test: commands: - - TIR-Learner -v | grep 'TIR-Learner 3.0.1' + - TIR-Learner --version + - TIR-Learner --help about: home: https://github.com/lutianyu2001/TIR-Learner license: GPLv3 license_family: GPL license_file: LICENSE - summary: An ensemble method for TIR transposable element annotation + summary: An ensemble pipeline for terminal inverted repeat (TIR) transposable elements annotation dev_url: https://github.com/lutianyu2001/TIR-Learner - doc_url: https://github.com/lutianyu2001/TIR-Learner/blob/main/docs/TIR-Learner%20v3%20flow%20chart_v2.drawio.png + # doc_url: https://github.com/lutianyu2001/TIR-Learner/blob/main/docs/TIR-Learner%20v3%20flow%20chart_v2.drawio.png extra: identifiers: - - doi:10.1016/j.molp.2019.02.008 + # - doi:10.1016/j.molp.2019.02.008 + - doi:10.6084/m9.figshare.26082574.v1 From c5fbf7f6ded597a4cdb85847eed282e466dd382b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 26 Jun 2024 06:03:26 -0400 Subject: [PATCH 0182/1514] Update metagenome-atlas to 2.18.2 (#48741) --- recipes/metagenome-atlas/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/metagenome-atlas/meta.yaml b/recipes/metagenome-atlas/meta.yaml index 7b5d034a1fe9d..0808fdc8b23ca 100644 --- a/recipes/metagenome-atlas/meta.yaml +++ b/recipes/metagenome-atlas/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.18.1" %} +{% set version = "2.18.2" %} package: name: metagenome-atlas @@ -6,7 +6,7 @@ package: source: url: https://github.com/metagenome-atlas/atlas/archive/v{{ version }}.tar.gz - sha256: 225a0e34c5c7a34ab053b98c0be5fa3c6281a03144a156454deeda5588e3d774 + sha256: 33a3d4b0a479bb7ed561f316252c7b4e33d098c8445e0567520e55e1cf4cf1e0 build: number: 0 From 71a786f5a682d01e76b765a19613f5593558df99 Mon Sep 17 00:00:00 2001 From: John Marshall Date: Wed, 26 Jun 2024 23:35:19 +1200 Subject: [PATCH 0183/1514] Update cansam to resolve build failures (#48742) --- recipes/cansam/build_failure.osx-64.yaml | 104 ----------------------- recipes/cansam/meta.yaml | 16 ++-- 2 files changed, 10 insertions(+), 110 deletions(-) delete mode 100644 recipes/cansam/build_failure.osx-64.yaml diff --git a/recipes/cansam/build_failure.osx-64.yaml b/recipes/cansam/build_failure.osx-64.yaml deleted file mode 100644 index 72a925f7a4077..0000000000000 --- a/recipes/cansam/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 9663bd7bb07c09fa8cf616bcc76809f94ceefde6ff20978d015ea94cc9e8ba94 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - class iterator : public std::iterator { - ^ - /opt/mambaforge/envs/bioconda/conda-bld/cansam_1717523242044/_build_env/bin/../include/c/v1/__iterator/iterator.h:24:29: note: 'iterator' has been explicitly marked deprecated here - struct _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX17 iterator - ^ - /opt/mambaforge/envs/bioconda/conda-bld/cansam_1717523242044/_build_env/bin/../include/c/v1/__config:1049:41: note: expanded from macro '_LIBCPP_DEPRECATED_IN_CXX17' - # define _LIBCPP_DEPRECATED_IN_CXX17 _LIBCPP_DEPRECATED - ^ - /opt/mambaforge/envs/bioconda/conda-bld/cansam_1717523242044/_build_env/bin/../include/c/v1/__config:1022:49: note: expanded from macro '_LIBCPP_DEPRECATED' - # define _LIBCPP_DEPRECATED __attribute__((__deprecated__)) - ^ - In file included from lib/samstream.cpp:39: - ./cansam/sam/alignment.h:404:17: warning: 'iterator' is deprecated [-Wdeprecated-declarations] - public std::iterator' has been explicitly marked deprecated here - struct _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX17 iterator - ^ - /opt/mambaforge/envs/bioconda/conda-bld/cansam_1717523242044/_build_env/bin/../include/c/v1/__config:1049:41: note: expanded from macro '_LIBCPP_DEPRECATED_IN_CXX17' - # define _LIBCPP_DEPRECATED_IN_CXX17 _LIBCPP_DEPRECATED - ^ - /opt/mambaforge/envs/bioconda/conda-bld/cansam_1717523242044/_build_env/bin/../include/c/v1/__config:1022:49: note: expanded from macro '_LIBCPP_DEPRECATED' - # define _LIBCPP_DEPRECATED __attribute__((__deprecated__)) - ^ - 3 warnings and 1 error generated. - make: *** [: lib/samstream.o] Error 1 - Extracting download - source tree in: /opt/mambaforge/envs/bioconda/conda-bld/cansam_1717523242044/work - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/cansam_1717523242044/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho - export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/cansam_1717523242044/_build_env - export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/cansam_1717523242044/work - INFO: activate_clang_osx-64.sh made the following environmental changes: - AR=x86_64-apple-darwin13.4.0-ar - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - AS=x86_64-apple-darwin13.4.0-as - CC=x86_64-apple-darwin13.4.0-clang - CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cansam-21d64bb -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms - CLANG=x86_64-apple-darwin13.4.0-clang - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin - CMAKE_PREFIX_PATH=:$PREFIX - CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 - CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 - CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 - DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cansam-21d64bb -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - HOST=x86_64-apple-darwin13.4.0 - INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool - LD=x86_64-apple-darwin13.4.0-ld - LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib - LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib - LIBTOOL=x86_64-apple-darwin13.4.0-libtool - LIPO=x86_64-apple-darwin13.4.0-lipo - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/cansam_1717523242044/work/conda_build.sh']' returned non-zero exit status 2. - MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib - NM=x86_64-apple-darwin13.4.0-nm - NMEDIT=x86_64-apple-darwin13.4.0-nmedit - OBJC=x86_64-apple-darwin13.4.0-clang - OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - OTOOL=x86_64-apple-darwin13.4.0-otool - PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff - RANLIB=x86_64-apple-darwin13.4.0-ranlib - REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding - SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk - SEGEDIT=x86_64-apple-darwin13.4.0-segedit - SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table - SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack - SIZE=x86_64-apple-darwin13.4.0-size - STRINGS=x86_64-apple-darwin13.4.0-strings - STRIP=x86_64-apple-darwin13.4.0-strip - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 - ac_cv_func_malloc_0_nonnull=yes - ac_cv_func_realloc_0_nonnull=yes - build_alias=x86_64-apple-darwin13.4.0 - host_alias=x86_64-apple-darwin13.4.0 - INFO: activate_clangxx_osx-64.sh made the following environmental changes: - CLANGXX=x86_64-apple-darwin13.4.0-clang - CXX=x86_64-apple-darwin13.4.0-clang - CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cansam-21d64bb -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cansam-21d64bb -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cansam-21d64bb -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -c -o lib/alignment.o lib/alignment.cpp - x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cansam-21d64bb -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -c -o lib/collection.o lib/collection.cpp - x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cansam-21d64bb -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -c -o lib/header.o lib/header.cpp - x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cansam-21d64bb -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -c -o lib/sambamio.o lib/sambamio.cpp - x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cansam-21d64bb -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -I. -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -c -o lib/samstream.o lib/samstream.cpp -# Last 100 lines of the build log. diff --git a/recipes/cansam/meta.yaml b/recipes/cansam/meta.yaml index 27ce5e3a42cbe..ce3c66befc14a 100644 --- a/recipes/cansam/meta.yaml +++ b/recipes/cansam/meta.yaml @@ -1,13 +1,15 @@ package: name: cansam - version: 21d64bb + version: 3489bc1 source: - url: https://github.com/jmarshall/cansam/archive/21d64bb.tar.gz - md5: 017d2ebc7338be995af3b9e6056f5fe0 + url: https://github.com/jmarshall/cansam/archive/3489bc1.tar.gz + md5: 46adf65a926a56fb90760e08fead3261 build: - number: 8 + number: 0 + run_exports: + - {{ pin_subpackage('cansam', max_pin=None) }} requirements: build: @@ -16,8 +18,6 @@ requirements: host: - boost-cpp - zlib - run: - - zlib test: commands: @@ -28,3 +28,7 @@ about: license: BSD-3-Clause summary: 'C++ binding for SAM/BAM files' license_family: BSD + +extra: + additional-platforms: + - linux-aarch64 From 5a3d28162a82236bb0201006ee6cb5465563d39e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 26 Jun 2024 07:36:21 -0400 Subject: [PATCH 0184/1514] Update mkdesigner to 0.4.1 (#48740) --- recipes/mkdesigner/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mkdesigner/meta.yaml b/recipes/mkdesigner/meta.yaml index 3585d115b792d..528f9f1c06ce6 100644 --- a/recipes/mkdesigner/meta.yaml +++ b/recipes/mkdesigner/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mkdesigner" %} -{% set version = "0.3.4" %} +{% set version = "0.4.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mkdesigner-{{ version }}.tar.gz - sha256: 832372167e966e12cc0551cad936ed8049555da474fa3a4ef71574215001bf3a + sha256: 4b13795e8461e2fb3bfe4c58556f6bc66c9e986dc1e65606094cb07afdead061 build: entry_points: From 0128327dd203d3ce448614a56d258b9c4cbbf68b Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 26 Jun 2024 16:12:47 +0300 Subject: [PATCH 0185/1514] sdm: add linux-aarch64 build (#48743) Signed-off-by: Martin Tzvetanov Grigorov (cherry picked from commit 8f14d7648e39a5081b45f5fd04c079c78006bc86) --- recipes/sdm/build.sh | 4 +++- recipes/sdm/meta.yaml | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/recipes/sdm/build.sh b/recipes/sdm/build.sh index f0c4fc567099c..d59a7b7dd98c0 100644 --- a/recipes/sdm/build.sh +++ b/recipes/sdm/build.sh @@ -1,10 +1,12 @@ #!/bin/bash +set -xe + # https://bioconda.github.io/contributor/troubleshooting.html#zlib-errors export CFLAGS="$CFLAGS -I$PREFIX/include" export LDFLAGS="$LDFLAGS -L$PREFIX/lib" sed -i.bak -e 's/ -static//' Makefile -make +make -j ${CPU_COUNT} mkdir -p "${PREFIX}/bin" mv sdm "${PREFIX}/bin/" diff --git a/recipes/sdm/meta.yaml b/recipes/sdm/meta.yaml index 2fd603c2694d5..a518392945668 100644 --- a/recipes/sdm/meta.yaml +++ b/recipes/sdm/meta.yaml @@ -12,7 +12,7 @@ source: - sdm_1.83.patch build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name|lower, max_pin="x.x") }} @@ -35,3 +35,7 @@ about: license_family: GPL3 license_file: LICENSE summary: 'sdm - simple demultiplex tool for FASTQ demultiplexing and dereplication' + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From c8f346fd343c5a9106254fe980da2e954ad7aa94 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 26 Jun 2024 10:50:35 -0400 Subject: [PATCH 0186/1514] Update pybiolib to 1.1.2195 (#48748) * Update pybiolib to 1.1.2193 * Update pybiolib to 1.1.2195 --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index a8cfca9c90e77..5dd672aae0771 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.1.2191" %} +{% set version = "1.1.2195" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 2afc368b04692e08a6c7c73be9260533c2c07cca180dc35ea53ef6ada6b261f9 + sha256: 42d7edee0f77498f52acd22754182ee20b74ad2b685fee9451838c111061fcff build: noarch: python From 48b3d00b6615b9a5a9c159dcf1a5be3b0f78087e Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 26 Jun 2024 18:01:19 +0300 Subject: [PATCH 0187/1514] perbase: add linux-aarch64 build (#48737) * perbase: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Add a patch to fix the build on linux-aarch64 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/perbase/meta.yaml | 12 ++++++++++-- recipes/perbase/perbase-aarch64.patch | 13 +++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 recipes/perbase/perbase-aarch64.patch diff --git a/recipes/perbase/meta.yaml b/recipes/perbase/meta.yaml index dde88d675f88f..7831961fa6b61 100644 --- a/recipes/perbase/meta.yaml +++ b/recipes/perbase/meta.yaml @@ -8,16 +8,20 @@ package: source: url: https://github.com/sstadick/perbase/archive/v{{ version }}.tar.gz sha256: {{ sha256 }} + patches: + - perbase-aarch64.patch build: - number: 0 + number: 1 + run_exports: + - {{ pin_subpackage('perbase', max_pin="x.x") }} requirements: build: - - rust >=1.42 - clangdev - {{ compiler('c') }} - {{ compiler('cxx') }} + - {{ compiler('rust') }} - pkg-config - make - cmake @@ -45,3 +49,7 @@ about: license_family: MIT license_file: LICENSE summary: Per-base metrics on BAM/CRAM files. + +extra: + additional-platforms: + - linux-aarch64 diff --git a/recipes/perbase/perbase-aarch64.patch b/recipes/perbase/perbase-aarch64.patch new file mode 100644 index 0000000000000..c3caa67347100 --- /dev/null +++ b/recipes/perbase/perbase-aarch64.patch @@ -0,0 +1,13 @@ +diff --git i/Cargo.toml w/Cargo.toml +index fe8a26b..1a9f5c4 100644 +--- i/Cargo.toml ++++ w/Cargo.toml +@@ -39,7 +39,7 @@ lru_time_cache = "0.11.1" + num_cpus = "1.13.0" + rayon = "1.4.0" + #TODO add features = ["libdeflate"] when https://github.com/rust-bio/rust-htslib/pull/341 is merged +-rust-htslib = {version = "0.38"} ++rust-htslib = {version = "0.47.0"} + rust-lapper = "1.0" + serde = { version = "1.0.116", features = ["derive"] } + smartstring = { version = "0.2.4", features = ["serde"] } From ccbf168b87efc5b65a26d89477878e4205e8edee Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 26 Jun 2024 18:01:31 +0300 Subject: [PATCH 0188/1514] desalt: add run_exports (#48736) * desalt: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Remove linux-aarch64 build The project is hard to build on aarch64 at the moment Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/desalt/build.sh | 4 +++- recipes/desalt/meta.yaml | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/recipes/desalt/build.sh b/recipes/desalt/build.sh index 8f427dfb1663a..adfec360c0f99 100644 --- a/recipes/desalt/build.sh +++ b/recipes/desalt/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + mkdir -p $PREFIX/bin cd src @@ -9,6 +11,6 @@ sed -i.bak "s/malloc.h/stdlib.h/" graph.c sed -i.bak "s/malloc.h/stdlib.h/" deBGA-master/load_input.c sed -i.bak "s/malloc.h/stdlib.h/" deBGA-master/index_build.c -make INCLUDES="-I$PREFIX/include" CFLAGS="-fcommon -g -Wall -O2 -Wc++-compat -L$PREFIX/lib -fopenmp" LIBS="-lm -lz -lpthread" +make -j ${CPU_COUNT} INCLUDES="-I$PREFIX/include" CFLAGS="-fcommon -g -Wall -O2 -Wc++-compat -L$PREFIX/lib -fopenmp" LIBS="-lm -lz -lpthread" cp deSALT deBGA Annotation_Load.py $PREFIX/bin diff --git a/recipes/desalt/meta.yaml b/recipes/desalt/meta.yaml index b039e5e0ef1c1..3b9e212663e54 100644 --- a/recipes/desalt/meta.yaml +++ b/recipes/desalt/meta.yaml @@ -9,7 +9,9 @@ source: sha256: ef3396a1bf1ea3c188ee77b90ae50a174c2e50676b8b779698cb6330aa7b34ef build: - number: 4 + number: 5 + run_exports: + - {{ pin_subpackage('desalt', max_pin="x") }} requirements: build: From 212b4cb6a1d7932ab52f8bfb5d4e922565846405 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 26 Jun 2024 18:01:58 +0300 Subject: [PATCH 0189/1514] idba: add linux-aarch64 build (#48722) * idba: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * The project is not buildable with newer clang versions --------- Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 3 --- recipes/idba/build.sh | 12 +++++------- recipes/idba/meta.yaml | 8 +++++++- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 491dc3158ef02..8d321f4dd5e44 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -478,9 +478,6 @@ recipes/pout2mzid # checksum always fails recipes/ms -# sed: can't read /opt/conda/conda-bld/idba_1530055808563/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/bin/aclocal: No such file or directory -recipes/idba - # PREFIX/lib is a directory recipes/proot diff --git a/recipes/idba/build.sh b/recipes/idba/build.sh index eec410250afc3..54135a339525a 100644 --- a/recipes/idba/build.sh +++ b/recipes/idba/build.sh @@ -1,23 +1,21 @@ # fix automake +set -xe + # fix other python and perl scripts gawk -i inplace '/usr\/bin\//{ gsub(/python/, "env python");}1' script/*.py gawk -i inplace '/usr\/bin\//{ gsub(/perl/, "env perl");}1' script/* -aclocal -autoconf -automake --add-missing +autoreconf -if -export CC=${PREFIX}/bin/gcc -export CXX=${PREFIX}/bin/g++ export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export DYLD_FALLBACK_LIBRARY_PATH="${PREFIX}/lib" export LD_LIBRARY_PATH="${PREFIX}/lib" +echo "===== CXX: ${CXX}" ./configure -make - +make -j ${CPU_COUNT} CXX=${CXX} mkdir -p ${PREFIX}/bin diff --git a/recipes/idba/meta.yaml b/recipes/idba/meta.yaml index 0984fab029b32..86b72dce3069a 100644 --- a/recipes/idba/meta.yaml +++ b/recipes/idba/meta.yaml @@ -7,7 +7,10 @@ about: summary: 'IDBA is a practical iterative De Bruijn Graph De Novo Assembler for sequence assembly in bioinformatics.' build: - number: 2 + number: 3 + skip: True # [osx] + run_exports: + - {{ pin_subpackage(name, max_pin='x') }} package: name: {{ name }} @@ -19,6 +22,7 @@ requirements: - autoconf - automake - {{ compiler('c') }} + - {{ compiler('cxx') }} host: - gawk - python @@ -35,6 +39,8 @@ test: - idba --help 2>&1 | grep "Iterative de Bruijn Graph Assembler" extra: + additional-platforms: + - linux-aarch64 identifiers: - biotools:idba - doi:10.1007/978-3-642-12683-3_28 From 4cbef2538690651e24e922c90273e4946f800740 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 26 Jun 2024 11:44:58 -0400 Subject: [PATCH 0190/1514] Update easypqp to 0.1.46 (#48752) --- recipes/easypqp/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/easypqp/meta.yaml b/recipes/easypqp/meta.yaml index c94b956bafdf3..e8f77b66afe7d 100644 --- a/recipes/easypqp/meta.yaml +++ b/recipes/easypqp/meta.yaml @@ -1,6 +1,6 @@ {% set name = "easypqp" %} -{% set version = "0.1.45" %} -{% set sha256 = "09d17e3ec961a32b6f36d328a18a7e753b0bc6fe27ec2a7003b2de3ad738f199" %} +{% set version = "0.1.46" %} +{% set sha256 = "f6f36dfd7007e7d2883fe7f8816ed6c72e5115b05cf4d640334cf357c039a259" %} package: name: {{ name|lower }} From d9b5822dee1b488a893ee7c4f6188983ef89e026 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 26 Jun 2024 11:57:14 -0400 Subject: [PATCH 0191/1514] Update pybiolib to 1.1.2199 (#48751) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index 5dd672aae0771..856fbbcd1689d 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.1.2195" %} +{% set version = "1.1.2199" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 42d7edee0f77498f52acd22754182ee20b74ad2b685fee9451838c111061fcff + sha256: c8e10e88ff17af8027bffe5e57ffd1ffaf48232e11472f4835f1541a005e7d48 build: noarch: python From 66b215d5acf01dcc2accfefb96b1a54d80995ac9 Mon Sep 17 00:00:00 2001 From: Marc Sturm Date: Wed, 26 Jun 2024 18:37:18 +0200 Subject: [PATCH 0192/1514] Update of ngs-bits to version 2024_06 (#48717) * Updated ngs-bits to version 2018_10 * bla * Updated ngs-bits to version 2024_02 * updated yaml * updated yaml * updated yaml * updated yaml * updated yaml --- recipes/ngs-bits/meta.yaml | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) mode change 100755 => 100644 recipes/ngs-bits/meta.yaml diff --git a/recipes/ngs-bits/meta.yaml b/recipes/ngs-bits/meta.yaml old mode 100755 new mode 100644 index 2ba85a5998124..c14543c572b7a --- a/recipes/ngs-bits/meta.yaml +++ b/recipes/ngs-bits/meta.yaml @@ -1,44 +1,43 @@ -{% set version = "2024_02" %} +{% set version = "2024_06" %} package: name: ngs-bits version: {{ version }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage("ngs-bits", max_pin=None) }} + source: url: https://github.com/imgag/ngs-bits/releases/download/{{ version }}/ngs-bits-{{ version }}.tgz - sha256: 29f95f6e4e5c1cd57e463730312464bb2b632758c46abd5e1531a1d75a26a782 + sha256: d338ed656e80a67dba4d1e7decdf40744f398e7559eb4daa2e6cac5b951ec157 +# Note: pinning of sysroot_linux-64 =2.17 enforces cos7 and is currently needed to prevent an memcpy@GLIBC2.14 error requirements: build: + - sysroot_linux-64 =2.17 # [linux] - make - {{ compiler('cxx') }} - - {{ cdt('mesa-libgl-devel') }} - - {{ cdt('mesa-dri-drivers') }} - - {{ cdt('libselinux') }} - - {{ cdt('libxdamage') }} - - {{ cdt('libxxf86vm') }} - - {{ cdt('libxfixes') }} host: + - sysroot_linux-64 =2.17 # [linux] - bzip2 - xz - zlib - - qt + - qt-main - htslib - - xorg-libxfixes # [linux] run: + - sysroot_linux-64 =2.17 # [linux] - bzip2 - xz - zlib - python - matplotlib-base - - qt + - qt-main - htslib +#For libGL dependency docu see: https://conda-forge.org/docs/maintainer/knowledge_base.html#core-dependency-tree-packages-cdt extra: container: extended-base: True @@ -49,4 +48,3 @@ about: license_file: LICENSE summary: Short-read sequencing tools -#For libGL dependency docu see: https://conda-forge.org/docs/maintainer/knowledge_base.html#core-dependency-tree-packages-cdt From 3a31c36a3ce1b0d8fb2c57d1cfb9547252ae7524 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 26 Jun 2024 16:32:17 -0400 Subject: [PATCH 0193/1514] Update meteor to 2.0.13 (#48639) * Update meteor to 2.0.12 * Update meteor to 2.0.13 * unpin bcftools * edit tests --------- Co-authored-by: mencian --- recipes/meteor/meta.yaml | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/recipes/meteor/meta.yaml b/recipes/meteor/meta.yaml index 0490c8b54121b..bf7a4e1309557 100644 --- a/recipes/meteor/meta.yaml +++ b/recipes/meteor/meta.yaml @@ -1,26 +1,29 @@ {% set name = "meteor" %} -{% set version = "2.0.11" %} +{% set version = "2.0.13" %} +{% set sha256 = "bb7b8a9342dda2ee59689d235d13ca61f22990f43956e8fd927288a1a0858bec" %} package: name: {{ name }} version: {{ version }} - source: - url: https://github.com/metagenopolis/meteor/archive/{{ version }}.tar.gz - sha256: 2e6119f2a3b19227ef6a9ed990dbbfebd2d47144cf032d0d410f015541e7b1fe + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/meteor-{{ version }}.tar.gz + sha256: {{ sha256 }} build: noarch: python number: 0 - script: {{ PYTHON }} -m pip install . --no-deps -vv + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv + entry_points: + - meteor = meteor.meteor:main run_exports: - - {{ pin_subpackage('meteor', max_pin="x.x") }} + - {{ pin_subpackage('meteor', max_pin="x") }} requirements: host: - python >=3.10 - - poetry + - pip + - poetry-core run: - python >=3.10 - bowtie2 >=2.3.5 @@ -31,24 +34,13 @@ requirements: - packaging - cogent3 - biom-format - - bcftools >=0.1.19 + - bcftools - raxml-ng >=1.0.1 - bedtools >=2.18.0 + test: commands: - - meteor -h - - bowtie2 -h - - bedtools -h - - raxml-ng -h - - bcftools -h - imports: - - pysam - - pandas - - pyarrow - - ete3 - - packaging - - biom - - cogent3 + - "meteor -h" about: home: https://github.com/metagenopolis/meteor @@ -58,3 +50,4 @@ about: description: | Meteor relies on genes catalogue to perform specie level taxonomic assignments, functional and strain diffusion analysis. license_family: GPL3 + dev_url: https://github.com/metagenopolis/meteor From eaabca1dce7d7a825e472403421d2262cb8a016f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 26 Jun 2024 16:39:33 -0400 Subject: [PATCH 0194/1514] Update treeswift to 1.1.44 (#48758) --- recipes/treeswift/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/treeswift/meta.yaml b/recipes/treeswift/meta.yaml index e4dc53fefc028..9c1e48fd450d3 100644 --- a/recipes/treeswift/meta.yaml +++ b/recipes/treeswift/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.1.43" %} +{% set version = "1.1.44" %} package: name: "treeswift" @@ -6,7 +6,7 @@ package: source: url: https://pypi.io/packages/source/t/treeswift/treeswift-{{ version }}.tar.gz - sha256: 1a7805cb207ad76e5224f043c9d0fd1d0d6e0fc9890faca26aba44e287999c6e + sha256: c023c8130e29f124cdd3d98d3b29e168a4f150df29dc6a243524e2875d22b799 build: noarch: python From 80ecfee40b1f48762816ac70534e2cba7bfc1f5c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 26 Jun 2024 23:38:38 -0400 Subject: [PATCH 0195/1514] Update phykit to 1.19.9 (#48761) --- recipes/phykit/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/phykit/meta.yaml b/recipes/phykit/meta.yaml index 53632cb89e08a..9f0478e642922 100644 --- a/recipes/phykit/meta.yaml +++ b/recipes/phykit/meta.yaml @@ -1,5 +1,5 @@ {% set name = "phykit" %} -{% set version = "1.19.8" %} +{% set version = "1.19.9" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 1cbcc9d52fc8feaa386c0cc690d74713a8a068cffa9b5f5fe19c302e973fd739 + sha256: d8378135c89a9c957fe3236ce8a2f1ff2846100a4aa207d7cacec8500237e4dd build: noarch: python From a017d94fdddd6b6ac5b89a6d68005456786dbd9c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 26 Jun 2024 23:38:46 -0400 Subject: [PATCH 0196/1514] Update gdc-client to 2.0 (#48759) * Update gdc-client to 2.0 * add run_exports * edit tes ts --------- Co-authored-by: mencian --- recipes/gdc-client/meta.yaml | 39 +++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/recipes/gdc-client/meta.yaml b/recipes/gdc-client/meta.yaml index 0979d248aa6ee..5c06114381bf7 100644 --- a/recipes/gdc-client/meta.yaml +++ b/recipes/gdc-client/meta.yaml @@ -1,41 +1,52 @@ -{% set version = "1.6.1" %} +{% set name = "gdc-client" %} +{% set version = "2.0" %} package: - name: gdc-client + name: {{ name }} version: {{ version }} +source: + url: https://github.com/NCI-GDC/gdc-client/archive/{{ version }}.tar.gz + sha256: 4d81ab9d3a8efca2091691310cb1ef0511b7049fde375f146974f8d7d028fa20 + build: number: 0 noarch: python - script: {{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv - -source: - url: https://github.com/NCI-GDC/gdc-client/archive/{{ version }}.tar.gz - sha256: 021c54ff63babff59d15b5f3e9763f0fd18bb64a4a34bc273237e3571fb24889 + script_env: + - SETUPTOOLS_SCM_PRETEND_VERSION={{ version }} + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir --use-pep517 + run_exports: + - {{ pin_subpackage('gdc-client', max_pin="x") }} requirements: host: - python >=3.5 - pip + - setuptools-scm <8 run: - python >=3.5 - - cryptography >=2.8,<2.9 + - cryptography >=2.8 + - importlib-metadata - jsonschema >=2.6 - lxml >=4.4.2 - ndg-httpsclient >=0.5.0,<1 - pyasn1 >=0.4.3,<1 - pyopenssl >=18,<19 - - pyyaml >=3.13,<4 + - pyyaml >=5.1 - progressbar2 >=3.43.1 - intervaltree >=3.0.2 - termcolor >=1.1.0 - requests >=2.22.0 test: - commands: - - gdc-client --help + imports: + - gdc_client about: - home: https://gdc.cancer.gov/access-data/gdc-data-transfer-tool - license: Apache v2 - summary: GDC Data Transfer Tool + home: "https://gdc.cancer.gov/access-data/gdc-data-transfer-tool" + license: "Apache-2.0" + license_family: APACHE + license_file: LICENSE + summary: "GDC Data Transfer Tool" + dev_url: "https://github.com/NCI-GDC/gdc-client" + doc_url: "https://docs.gdc.cancer.gov/Data_Transfer_Tool/Users_Guide/Getting_Started" From a2bfe3722c444defedf79f7fc5713f28309e3bf4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 26 Jun 2024 23:39:06 -0400 Subject: [PATCH 0197/1514] Update gencove to 2.17.1 (#44242) * Update gencove to 2.9.0 * Update gencove to 2.10.0 * Update gencove to 2.11.0 * Update gencove to 2.12.0 * Update gencove to 2.12.1 * Update gencove to 2.12.2 * Update gencove to 2.12.3 * Update gencove to 2.13.0 * Update gencove to 2.13.1 * Update gencove to 2.13.2 * Update gencove to 2.14.0 * Update gencove to 2.14.1 * Update gencove to 2.14.2 * Update gencove to 2.15.0 * Update gencove to 2.15.1 * Update gencove to 2.16.0 * Update gencove to 2.16.1 * Update gencove to 2.16.2 * Update gencove to 2.16.3 * Update gencove to 2.16.3 * Update gencove to 2.16.5 * Update gencove to 2.17.0 * Update gencove to 2.17.1 * clean up recipe --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Co-authored-by: mencian --- recipes/gencove/meta.yaml | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/recipes/gencove/meta.yaml b/recipes/gencove/meta.yaml index 4f89bdef799e2..2f8adabb53067 100644 --- a/recipes/gencove/meta.yaml +++ b/recipes/gencove/meta.yaml @@ -1,20 +1,22 @@ -{% set version = "2.8.1" %} -{% set sha256 = "bcda1ddbea0bf4b14e343c6e11e88755f41b8fd1df9225ac55993b438bb45c32" %} +{% set name = "gencove" %} +{% set version = "2.17.1" %} +{% set sha256 = "bc27eda8126a87f8a439d88f74e9a963ed634a8625df1d7875586b1c814cbfe6" %} package: - name: gencove - version: '{{ version }}' + name: {{ name }} + version: {{ version }} source: url: https://github.com/gncv/gencove-cli/archive/refs/tags/{{ version }}.tar.gz - sha256: '{{ sha256 }}' + sha256: {{ sha256 }} build: noarch: python number: 0 - script: '{{ PYTHON }} -m pip install . --use-pep517 --no-deps --ignore-installed --no-cache-dir -vvv' + script: '{{ PYTHON }} -m pip install . --use-pep517 --no-deps --no-build-isolation --no-cache-dir -vvv' entry_points: - gencove = gencove.cli:cli + - d = gencove.command.explorer.data.cli:data run_exports: - {{ pin_subpackage("gencove", max_pin="x") }} @@ -23,29 +25,32 @@ requirements: - python >=3.7 - pip - pytest-runner - - setuptools run: - python >=3.7 - python-dateutil >=2.2.0 - six >=1.5 - click >=7.0 + - click-default-group >=1.2.4 - requests >=2.19.1 - boto3 >=1.17.97 - progressbar2 ==3.55.0 - - backoff ==1.11.0 - - pydantic ==1.9.2 - - pytest-runner + - backoff <=2.2.1 + - pydantic ==1.10.13 + - sh >=1.14.3 test: - commands: - - gencove --help + imports: + - gencove + #commands: + #- gencove --help about: home: https://docs.gencove.com - license: Apache-2.0 + license: "Apache-2.0" + license_family: APACHE license_file: LICENSE - summary: Gencove is a high-throughput, cost-effective platform for genome sequencing and analysis. This command-line interface can be used to easily access the Gencove API. - dev_url: https://github.com/gncv/gencove-cli + summary: "Gencove is a high-throughput, cost-effective platform for genome sequencing and analysis. This command-line interface can be used to easily access the Gencove API." + dev_url: "https://github.com/gncv/gencove-cli" doc_url: https://docs.gencove.com extra: From 960a92be52441c33f35d0b0e75961d7a00cdf3e3 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 27 Jun 2024 01:05:46 -0400 Subject: [PATCH 0198/1514] Update metabolabpy to 0.9.46 (#48757) --- recipes/metabolabpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/metabolabpy/meta.yaml b/recipes/metabolabpy/meta.yaml index 89411bf47c6ad..738dbbfb7fdea 100644 --- a/recipes/metabolabpy/meta.yaml +++ b/recipes/metabolabpy/meta.yaml @@ -1,6 +1,6 @@ {% set name = "metabolabpy" %} -{% set version = "0.9.45" %} -{% set sha256 = "5feb5e106c7d92ba9b0fbfb7991fcebc9bae8ac51438a73a161a5b3ee3cafc06" %} +{% set version = "0.9.46" %} +{% set sha256 = "e48ae83d423f290e4e55d64fbea97032e3f7a1c0e8942d177a5da755cabff7fa" %} package: name: {{ name|lower }} From 67dbbf8df15c87e3891555328cf69dc74e744ad8 Mon Sep 17 00:00:00 2001 From: Dan Fornika Date: Thu, 27 Jun 2024 00:08:34 -0700 Subject: [PATCH 0199/1514] delly: pin boost-cpp (#48756) * pin boost-cpp * whitespace * Don't override CXXFLAGS Overriding this variable as a make argument suppresses CXXFLAGS settings from both conda-build's environment variable and delly's Makefile. As we override CXX to use conda's compiler, it will look in $PREFIX/include and $PREFIX/lib anyway, so adding those explicitly is unnecessary. In particular, delly's Makefile sets -std=c++11, which will prevent the build failures due to std::binary_function that are being encountered. Also use upstream's "make install" target instead of manually copying. * Remove run requirements in favour of those implied via run_exports These libraries will add appropriate dependencies themselves via their run_exports. Apparently libboost needs to be listed though. --------- Co-authored-by: John Marshall --- recipes/delly/build.sh | 5 +- recipes/delly/build_failure.osx-64.yaml | 105 ------------------------ recipes/delly/meta.yaml | 10 +-- 3 files changed, 5 insertions(+), 115 deletions(-) delete mode 100644 recipes/delly/build_failure.osx-64.yaml diff --git a/recipes/delly/build.sh b/recipes/delly/build.sh index e70b4a265f219..2947d72ca81d5 100644 --- a/recipes/delly/build.sh +++ b/recipes/delly/build.sh @@ -1,5 +1,4 @@ #!/bin/sh -mkdir -p "${PREFIX}/bin" -make all CXX=$CXX CXXFLAGS="-I${PREFIX}/include -L${PREFIX}/lib" -cp src/delly "${PREFIX}/bin" +make CXX="$CXX" all +make prefix="$PREFIX" install diff --git a/recipes/delly/build_failure.osx-64.yaml b/recipes/delly/build_failure.osx-64.yaml deleted file mode 100644 index a22062678fa6c..0000000000000 --- a/recipes/delly/build_failure.osx-64.yaml +++ /dev/null @@ -1,105 +0,0 @@ -recipe_sha: 1cf6f39df59a910ba68de2279b1aafb5d6631cc6eb64ac207bf493c85b144032 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -category: compiler error -log: |- - In file included from src/coral.h:19: - src/cnv.h:702:2: warning: ignoring return value of function declared with 'warn_unused_result' attribute [-Wunused-result] - bcf_write1(fp, hdr, rec); - ^~~~~~~~~~~~~~~~~~~~~~~~ - /opt/mambaforge/envs/bioconda/conda-bld/delly_1718144538218/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/include/htslib/vcf.h:270:33: note: expanded from macro 'bcf_write1' - #define bcf_write1(fp,h,v) bcf_write((fp),(h),(v)) - ^~~~~~~~~ ~~~~~~~~~~~~ - src/coral.h:436:5: note: in instantiation of function template specialization 'torali::cnvVCF' requested here - cnvVCF(c, cnvs); - ^ - src/coral.h:776:9: note: in instantiation of function template specialization 'torali::bamCount' requested here - if (bamCount(c, li, gcbias, gcbound)) { - ^ - In file included from src/delly.cpp:18: - In file included from src/delly.h:39: - src/modvcf.h:561:7: warning: ignoring return value of function declared with 'warn_unused_result' attribute [-Wunused-result] - bcf_write1(fp, hdr, rec); - ^~~~~~~~~~~~~~~~~~~~~~~~ - /opt/mambaforge/envs/bioconda/conda-bld/delly_1718144538218/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/include/htslib/vcf.h:270:33: note: expanded from macro 'bcf_write1' - #define bcf_write1(fp,h,v) bcf_write((fp),(h),(v)) - ^~~~~~~~~ ~~~~~~~~~~~~ - src/asmode.h:403:4: note: in instantiation of function template specialization 'torali::vcfOutput>, std::vector>, std::vector>>' requested here - vcfOutput(c, svs, jctMap, rcMap, spanMap); - ^ - src/asmode.h:559:11: note: in instantiation of function template specialization 'torali::runAsm' requested here - return runAsm(c); - ^ - 27 warnings and 14 errors generated. - make: *** [Makefile:60: src/delly] Error 1 - Extracting download - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in - source tree in: /opt/mambaforge/envs/bioconda/conda-bld/delly_1718144538218/work - export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/delly_1718144538218/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol - export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/delly_1718144538218/_build_env - export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/delly_1718144538218/work - INFO: activate_clang_osx-64.sh made the following environmental changes: - AR=x86_64-apple-darwin13.4.0-ar - AS=x86_64-apple-darwin13.4.0-as - CC=x86_64-apple-darwin13.4.0-clang - CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/delly-1.2.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms - CLANG=x86_64-apple-darwin13.4.0-clang - CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin - CMAKE_PREFIX_PATH=:$PREFIX - CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 - CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 - CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 - sys.exit(execute()) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/delly-1.2.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - HOST=x86_64-apple-darwin13.4.0 - INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool - LD=x86_64-apple-darwin13.4.0-ld - LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib - api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib - LIBTOOL=x86_64-apple-darwin13.4.0-libtool - LIPO=x86_64-apple-darwin13.4.0-lipo - MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib - NM=x86_64-apple-darwin13.4.0-nm - NMEDIT=x86_64-apple-darwin13.4.0-nmedit - OBJC=x86_64-apple-darwin13.4.0-clang - OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - OTOOL=x86_64-apple-darwin13.4.0-otool - PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - RANLIB=x86_64-apple-darwin13.4.0-ranlib - REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding - SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk - SEGEDIT=x86_64-apple-darwin13.4.0-segedit - SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack - SIZE=x86_64-apple-darwin13.4.0-size - STRINGS=x86_64-apple-darwin13.4.0-strings - STRIP=x86_64-apple-darwin13.4.0-strip - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 - raise subprocess.CalledProcessError(proc.returncode, _args) - ac_cv_func_malloc_0_nonnull=yes - ac_cv_func_realloc_0_nonnull=yes - build_alias=x86_64-apple-darwin13.4.0 - host_alias=x86_64-apple-darwin13.4.0 - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/delly_1718144538218/work/conda_build.sh']' returned non-zero exit status 2. - INFO: activate_clangxx_osx-64.sh made the following environmental changes: - CLANGXX=x86_64-apple-darwin13.4.0-clang - CXX=x86_64-apple-darwin13.4.0-clang - CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/delly-1.2.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/delly-1.2.6 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - if [ -r src/htslib/Makefile ]; then cd src/htslib && autoreconf -i && ./configure --disable-s3 --disable-gcs --disable-libcurl --disable-plugins && make && make lib-static && cd ../../ && touch .htslib; fi - x86_64-apple-darwin13.4.0-clang -I$PREFIX/include -L$PREFIX/lib src/delly.cpp src/edlib.cpp -o src/delly -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -L$SRC_DIR/src/htslib/ -lboost_iostreams -lboost_filesystem -lboost_system -lboost_program_options -lboost_date_time -lhts -lz -llzma -lbz2 -Wl,-rpath,$SRC_DIR/src/htslib/ -# Last 100 lines of the build log. diff --git a/recipes/delly/meta.yaml b/recipes/delly/meta.yaml index 44c6abd63de1b..084b2579dcc44 100644 --- a/recipes/delly/meta.yaml +++ b/recipes/delly/meta.yaml @@ -10,7 +10,7 @@ source: sha256: '{{ sha256 }}' build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage("delly", max_pin="x.x") }} @@ -21,14 +21,10 @@ requirements: - wget host: - zlib - - bzip2 - - boost-cpp + - boost-cpp >=1.85.0 - htslib run: - - zlib - - bzip2 - - boost-cpp - - htslib + - libboost >=1.85.0 test: commands: From aff2b163efb37dbc6ca7326dc4a5e0704feb6556 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 27 Jun 2024 04:03:50 -0400 Subject: [PATCH 0200/1514] Update phables to 1.4.0 (#48764) --- recipes/phables/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/phables/meta.yaml b/recipes/phables/meta.yaml index 88f29a9d150a8..2d16b2857d523 100644 --- a/recipes/phables/meta.yaml +++ b/recipes/phables/meta.yaml @@ -1,5 +1,5 @@ {% set name = "phables" %} -{% set version = "1.3.3" %} +{% set version = "1.4.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://github.com/Vini2/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz" - sha256: 82ad9ed0fa70a873f43713cd0ebc158d87d25d259e98a4acd9e851de6d2521a8 + sha256: 09b843141ab32cda5016741b7f31ccefcb659448f0fd4aa55697c509680e16e9 build: number: 0 From 6a0d6c62444180ecfd9947c9da029c7eb7e57fc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gen=C3=ADs=20Bayarri?= Date: Thu, 27 Jun 2024 12:19:29 +0200 Subject: [PATCH 0201/1514] [biobb_dna] update 4.2.4 (#48765) --- recipes/biobb_dna/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/biobb_dna/meta.yaml b/recipes/biobb_dna/meta.yaml index 0c6d18adc96f8..7c781adfcf6f3 100644 --- a/recipes/biobb_dna/meta.yaml +++ b/recipes/biobb_dna/meta.yaml @@ -1,5 +1,5 @@ {% set name = "biobb_dna" %} -{% set version = "4.2.2" %} +{% set version = "4.2.4" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: c635df2957606b24611f6133c9ed2d9108eb9c6e70440a99b9025cb629b07df5 + sha256: f9343a8ec9ca8b0c9c764657979daf2b06b58ee242d30c2f8679416467d5ada4 build: number: 0 From 0f0a8c68e31f12a4ea8141332347492a941d8678 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 27 Jun 2024 08:08:25 -0400 Subject: [PATCH 0202/1514] Update locityper to 0.16.0 (#48767) --- recipes/locityper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/locityper/meta.yaml b/recipes/locityper/meta.yaml index d21617ca45111..c100e4f7eb39d 100644 --- a/recipes/locityper/meta.yaml +++ b/recipes/locityper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "locityper" %} -{% set version = "0.15.3" %} +{% set version = "0.16.0" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/tprodanov/locityper/archive/refs/tags/v{{ version }}.tar.gz - sha256: bf123a391b08a6ab5bcb642f93af30bce021dffc82bcca37555c5657f209ceee + sha256: f5594bf0d361df7ea5736e882303f8ec78b77e3af734dd78d0b05e63dc2dca5f build: number: 0 From d4913940a0bf9db9533d21e62d7671f40985d3af Mon Sep 17 00:00:00 2001 From: biocodz Date: Thu, 27 Jun 2024 10:38:51 -0300 Subject: [PATCH 0203/1514] sortmerna recipe relocating to conda-forge (#48607) * sortmerna-4.3.2 release * sortmerna-4.3.3 release * sortmerna 4.3.4 release * sortmerna version 4.3.6 * sortmerna recipe removed - relocating to conda-forge --- recipes/sortmerna/build.sh | 13 --------- recipes/sortmerna/meta.yaml | 57 ------------------------------------- 2 files changed, 70 deletions(-) delete mode 100644 recipes/sortmerna/build.sh delete mode 100644 recipes/sortmerna/meta.yaml diff --git a/recipes/sortmerna/build.sh b/recipes/sortmerna/build.sh deleted file mode 100644 index 93056bab6b458..0000000000000 --- a/recipes/sortmerna/build.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -xe - -mkdir -p ${PREFIX}/bin - -if [[ "$(uname)" == "Darwin" ]]; then - chmod 0755 sortmerna-Darwin/bin/sortmerna - cp -f sortmerna-Darwin/bin/sortmerna "${PREFIX}/bin" -else - cd sortmerna - python setup.py -n all - chmod 0755 dist/bin/sortmerna - cp -f dist/bin/sortmerna "${PREFIX}/bin" -fi diff --git a/recipes/sortmerna/meta.yaml b/recipes/sortmerna/meta.yaml deleted file mode 100644 index 1a4a425629e12..0000000000000 --- a/recipes/sortmerna/meta.yaml +++ /dev/null @@ -1,57 +0,0 @@ -{% set name = "sortmerna" %} -{% set version = "4.3.7" %} -{% set sha256 = "6b62def30704ea956e1de060b602f9bebc8f2ba68107c59329b332500997b1d2" %} - -package: - name: {{ name }} - version: {{ version }} - -source: -- url: https://github.com/sortmerna/sortmerna/archive/refs/tags/v{{ version }}.tar.gz - sha256: {{ sha256 }} - folder: sortmerna -- url: https://github.com/sortmerna/sortmerna/releases/download/v{{ version }}/sortmerna-{{ version }}-Darwin.tar.gz # [osx and x86_64] - sha256: f92e4b1e8f2db9b5027170b63cdb0f5847e67f7c44c83689d98802eec1f05d4a # [osx and x86_64] - folder: sortmerna-Darwin # [osx and x86_64] - -build: - number: 1 - run_exports: - - {{ pin_subpackage(name, max_pin='x') }} - -requirements: - build: - - {{ compiler('c') }} - - {{ compiler('cxx') }} - - cmake - - ninja - host: - - pyyaml - - jinja2 - - requests - run: - - pyyaml - - jinja2 - - requests - -test: - commands: - - sortmerna --version - - sortmerna -h - -about: - home: "https://github.com/sortmerna/sortmerna" - license: "LGPL-3.0-only" - license_family: LGPL - license_file: "sortmerna/LICENSE.LESSER.txt" - summary: "SortMeRNA is a biological sequence analysis tool for filtering, mapping and OTU-picking NGS reads." - dev_url: "https://github.com/sortmerna/sortmerna" - doc_url: "https://sortmerna.readthedocs.io" - -extra: - additional-platforms: - - linux-aarch64 - identifiers: - - biotools:sortmerna - - doi:10.1093/bioinformatics/bts611 - - usegalaxy-eu:bg_sortmerna From 099e0edf1a3531550e66863f896446be9fa36147 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 27 Jun 2024 16:42:02 +0300 Subject: [PATCH 0204/1514] wiggletools: add linux-aarch64 build (#48773) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/wiggletools/build.sh | 4 +++- recipes/wiggletools/meta.yaml | 8 +++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/recipes/wiggletools/build.sh b/recipes/wiggletools/build.sh index 6822bc4a886e2..09a0d2833c7df 100644 --- a/recipes/wiggletools/build.sh +++ b/recipes/wiggletools/build.sh @@ -1,9 +1,11 @@ #!/bin/bash +set -xe + # Patch v1.2.8 makefile; remove in next release sed -i.orig -e 's/-L/${LDFLAGS} -L/' src/Makefile -make LIBS="-lwiggletools -lBigWig -lgsl -lgslcblas -lhts -lpthread -lm" +make -j ${CPU_COUNT} LIBS="-lwiggletools -lBigWig -lgsl -lgslcblas -lhts -lpthread -lm" cp lib/libwiggletools.a $PREFIX/lib/ cp inc/wiggletools.h $PREFIX/include/ diff --git a/recipes/wiggletools/meta.yaml b/recipes/wiggletools/meta.yaml index 07025114233ed..de7d1be501ac1 100644 --- a/recipes/wiggletools/meta.yaml +++ b/recipes/wiggletools/meta.yaml @@ -7,7 +7,9 @@ package: version: {{ version }} build: - number: 7 + number: 8 + run_exports: + - {{ pin_subpackage(name|lower, max_pin="x") }} source: url: https://github.com/Ensembl/WiggleTools/archive/v{{ version }}.tar.gz @@ -35,3 +37,7 @@ about: summary: The WiggleTools package allows genomewide data files to be manipulated as numerical functions, equipped with all the standard functional analysis operators (sum, product, product by a scalar, comparators), and derived statistics (mean, median, variance, stddev, t-test, Wilcoxon's rank sum test, etc). + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 61d145231ed61a92b673c85672288f2df1906475 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 27 Jun 2024 16:48:38 +0300 Subject: [PATCH 0205/1514] slow5tools: add linux-aarch64 build (#48768) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/slow5tools/build.sh | 15 ++++++++++----- recipes/slow5tools/meta.yaml | 5 ++++- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/recipes/slow5tools/build.sh b/recipes/slow5tools/build.sh index 4789f0a714cfb..b706a46963f9e 100644 --- a/recipes/slow5tools/build.sh +++ b/recipes/slow5tools/build.sh @@ -1,10 +1,15 @@ #!/bin/bash + +set -xe + scripts/install-zstd.sh ./configure --enable-localzstd -cd slow5lib -make CC=$CC CXX=$CXX -cd .. +pushd slow5lib +make -j ${CPU_COUNT} CC=$CC CXX=$CXX +popd + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS" -make CC=$CC CXX=$CXX +make -j ${CPU_COUNT} CC=$CC CXX=$CXX mkdir -p $PREFIX/bin -cp slow5tools $PREFIX/bin/slow5tools +cp -f slow5tools $PREFIX/bin/slow5tools +chmod 0755 $PREFIX/bin/slow5tools \ No newline at end of file diff --git a/recipes/slow5tools/meta.yaml b/recipes/slow5tools/meta.yaml index 308ced3d2299b..1886640a6b95d 100644 --- a/recipes/slow5tools/meta.yaml +++ b/recipes/slow5tools/meta.yaml @@ -10,7 +10,7 @@ source: sha256: ce9d198f8368e90f440fce974e798b7f521b0fe4f859caf9a452bba1ca5af2d4 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('slow5tools', max_pin="x") }} @@ -39,3 +39,6 @@ about: summary: Toolkit for S/bLOW5 format description: 'Slow5tools is a toolkit for converting (FAST5 <-> SLOW5), compressing, viewing, indexing and manipulating data in SLOW5 format.' +extra: + additional-platforms: + - linux-aarch64 From f2f215e78cb21165d1deea44bc7de0341ed156fe Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 27 Jun 2024 10:31:37 -0400 Subject: [PATCH 0206/1514] Update macrel to 1.4.0 (#48775) --- recipes/macrel/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/macrel/meta.yaml b/recipes/macrel/meta.yaml index 67f0e499b2867..9c9a48f2f5a66 100644 --- a/recipes/macrel/meta.yaml +++ b/recipes/macrel/meta.yaml @@ -1,6 +1,6 @@ {% set name = "macrel" %} -{% set version = "1.3.0" %} -{% set sha256 = "c4cdd8cc186135b78bc8da4d40b71f0a62ecf622107a0c9c64c29b8000cfbda9" %} +{% set version = "1.4.0" %} +{% set sha256 = "323d21a43965af912ca2165a28aa5c0f25851afbc4dc32ecf805b3da5e265376" %} package: name: {{ name }} From 56d706ef071a5b12bff1d610459bb877f647a7dd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 27 Jun 2024 11:36:58 -0400 Subject: [PATCH 0207/1514] Update picard to 3.2.0 (#48777) --- recipes/picard/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/picard/meta.yaml b/recipes/picard/meta.yaml index d8dfd44a2f90e..5a31883ca1d0b 100644 --- a/recipes/picard/meta.yaml +++ b/recipes/picard/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "3.1.1" %} -{% set sha256 = "15c79f51fd0ac001049f9dd7b9bac1dbdf759dcb0230a89c7f6d1f246e8bbab4" %} +{% set version = "3.2.0" %} +{% set sha256 = "e258fa2e3f5fa61cd6799ec8e073f49a95fbdceaf163d8a60971b2619b86fa41" %} package: name: picard From 651a5cbdcc220f589c6ca6bea7f091e6ba64b9a5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 27 Jun 2024 11:38:47 -0400 Subject: [PATCH 0208/1514] Update picard-slim to 3.2.0 (#48776) --- recipes/picard-slim/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/picard-slim/meta.yaml b/recipes/picard-slim/meta.yaml index c8de8e67a58e6..f6d9dd73f43ce 100644 --- a/recipes/picard-slim/meta.yaml +++ b/recipes/picard-slim/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "3.1.1" %} -{% set sha256 = "15c79f51fd0ac001049f9dd7b9bac1dbdf759dcb0230a89c7f6d1f246e8bbab4" %} +{% set version = "3.2.0" %} +{% set sha256 = "e258fa2e3f5fa61cd6799ec8e073f49a95fbdceaf163d8a60971b2619b86fa41" %} package: name: picard-slim From 860a831516ec6b6c3c4b954c645eaf11aa92a2d7 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 27 Jun 2024 18:40:10 +0300 Subject: [PATCH 0209/1514] ngs-bits: add linux-aarch64 build (#48769) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/ngs-bits/build.sh | 4 +- recipes/ngs-bits/build_failure.linux-64.yaml | 104 ------------------- recipes/ngs-bits/meta.yaml | 4 +- 3 files changed, 6 insertions(+), 106 deletions(-) delete mode 100644 recipes/ngs-bits/build_failure.linux-64.yaml diff --git a/recipes/ngs-bits/build.sh b/recipes/ngs-bits/build.sh index a3c73b67f42a5..57bc3046c8826 100644 --- a/recipes/ngs-bits/build.sh +++ b/recipes/ngs-bits/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + #link include and lib folders to allow using htslib ln -s $PREFIX/include htslib/include ln -s $PREFIX/lib htslib/lib @@ -12,7 +14,7 @@ export PATH=$BUILD_PREFIX/bin/:$PATH mkdir build cd build qmake CONFIG-=debug CONFIG+=release DEFINES+=QT_NO_DEBUG_OUTPUT QMAKE_CXX="$CXX" QMAKE_CC="$CC" QMAKE_CFLAGS="$CFLAGS" QMAKE_CXXFLAGS="$CXXFLAGS" QMAKE_LIBDIR+="$PREFIX/lib" QMAKE_RPATHLINKDIR+=${PREFIX}/lib/ ../src/tools.pro -make +make -j ${CPU_COUNT} cd .. #remove test files from bin folder diff --git a/recipes/ngs-bits/build_failure.linux-64.yaml b/recipes/ngs-bits/build_failure.linux-64.yaml deleted file mode 100644 index 8768bbb2d879a..0000000000000 --- a/recipes/ngs-bits/build_failure.linux-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 54c85e316706795374bd6159f94ebb84e0d89360b89116c83a972215f4ae452b # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - | ~~~~~~~~~~~~~~^~ - In file included from ../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore/QSet:1, - from ../../src/cppNGS/BedFile.h:9, - from ../../src/cppNGS/VariantList.h:7: - ../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore/qset.h:265:14: note: declared here - 265 | QList toList() const { return values(); } - | ^~~~~~ - ../../src/cppNGSD/SomaticReportHelper.cpp: In member function 'RtfSourceCode SomaticReportHelper::partRelevantVariants()': - ../../src/cppNGSD/SomaticReportHelper.cpp:1981:92: warning: 'QByteArray& QByteArray::operator=(const QString&)' is deprecated: Use QString's toUtf8(), toLatin1() or toLocal8Bit() [-Wdeprecated-declarations] - 1981 | snv_expl = settings_.report_config.limitations().replace("\n","\n\\line\n"); - | ^ - In file included from ../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore/QString:1, - from ../../src/cppNGS/VariantAnnotationDescription.h:5, - from ../../src/cppNGS/VariantList.h:5: - ../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore/qstring.h:1521:20: note: declared here - 1521 | inline QByteArray &QByteArray::operator=(const QString &s) - | ^~~~~~~~~~ - $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -c -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ngs-bits-2024_02 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -std=gnu11 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG_OUTPUT -DCPPNGSD_LIBRARY -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_XMLPATTERNS_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I../../src/cppNGSD -I. -I../../src/cppCORE -I../../src/cppNGS -I../../src/cppXML -I../../htslib/include -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtSql -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtXml -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtXmlPatterns -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtNetwork -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore -I. -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/mkspecs/linux-g -o SomaticRnaReport.o ../../src/cppNGSD/SomaticRnaReport.cpp - $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -c -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ngs-bits-2024_02 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -std=gnu11 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG_OUTPUT -DCPPNGSD_LIBRARY -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_XMLPATTERNS_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I../../src/cppNGSD -I. -I../../src/cppCORE -I../../src/cppNGS -I../../src/cppXML -I../../htslib/include -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtSql -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtXml -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtXmlPatterns -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtNetwork -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore -I. -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/mkspecs/linux-g -o SomaticcfDNAReport.o ../../src/cppNGSD/SomaticcfDNAReport.cpp - ../../src/cppNGSD/SomaticcfDNAReport.cpp: In member function 'RtfTable SomaticcfDnaReport::partGeneralInfo()': - ../../src/cppNGSD/SomaticcfDNAReport.cpp:363:105: warning: 'QList QSet::toList() const [with T = QString]' is deprecated: Use values() instead. [-Wdeprecated-declarations] - 363 | table.addRow( RtfTableRow( {"Prozessierungssystem:", "Patientenspezifisches Panel " sys.toList().join(", ").toUtf8()}, {2000,7921}, RtfParagraph().setFontSize(14)) ); - | ~~~~~~~~~~^~ - In file included from ../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore/qdebug.h:52, - from ../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore/QDebug:1, - from ../../src/cppNGSD/SomaticcfDNAReport.cpp:1: - ../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore/qset.h:265:14: note: declared here - 265 | QList toList() const { return values(); } - | ^~~~~~ - $PREFIX/bin/rcc -name cppNGSD ../../src/cppNGSD/cppNGSD.qrc -o qrc_cppNGSD.cpp - $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -c -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ngs-bits-2024_02 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -std=gnu11 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG_OUTPUT -DCPPNGSD_LIBRARY -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_XMLPATTERNS_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I../../src/cppNGSD -I. -I../../src/cppCORE -I../../src/cppNGS -I../../src/cppXML -I../../htslib/include -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtSql -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtXml -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtXmlPatterns -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtNetwork -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore -I. -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/mkspecs/linux-g -o qrc_cppNGSD.o qrc_cppNGSD.cpp - $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ngs-bits-2024_02 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -std=gnu11 -Wall -Wextra -dM -E -o moc_predefs.h ../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/mkspecs/features/data/dummy.cpp - $PREFIX/bin/moc -DQT_NO_DEBUG_OUTPUT -DCPPNGSD_LIBRARY -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_XMLPATTERNS_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB --include $SRC_DIR/build/cppNGSD/moc_predefs.h -I$PREFIX/mkspecs/linux-g -I$SRC_DIR/src/cppNGSD -I$SRC_DIR/src/cppCORE -I$SRC_DIR/src/cppNGS -I$SRC_DIR/src/cppXML -I$SRC_DIR/htslib/include -I$PREFIX/include/qt -I$PREFIX/include/qt/QtSql -I$PREFIX/include/qt/QtXml -I$PREFIX/include/qt/QtXmlPatterns -I$PREFIX/include/qt/QtNetwork -I$PREFIX/include/qt/QtCore -I. -I$BUILD_PREFIX/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include -I$BUILD_PREFIX/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include-fixed -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include/c/12.3.0 -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include/c/12.3.0/x86_64-conda-linux-gnu -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include/c/12.3.0/backward -I$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr/include ../../src/cppNGSD/NGSD.h -o moc_NGSD.cpp - $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -c -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ngs-bits-2024_02 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -std=gnu11 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG_OUTPUT -DCPPNGSD_LIBRARY -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_XMLPATTERNS_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I../../src/cppNGSD -I. -I../../src/cppCORE -I../../src/cppNGS -I../../src/cppXML -I../../htslib/include -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtSql -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtXml -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtXmlPatterns -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtNetwork -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore -I. -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/mkspecs/linux-g -o moc_NGSD.o moc_NGSD.cpp - $PREFIX/bin/moc -DQT_NO_DEBUG_OUTPUT -DCPPNGSD_LIBRARY -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_XMLPATTERNS_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB --include $SRC_DIR/build/cppNGSD/moc_predefs.h -I$PREFIX/mkspecs/linux-g -I$SRC_DIR/src/cppNGSD -I$SRC_DIR/src/cppCORE -I$SRC_DIR/src/cppNGS -I$SRC_DIR/src/cppXML -I$SRC_DIR/htslib/include -I$PREFIX/include/qt -I$PREFIX/include/qt/QtSql -I$PREFIX/include/qt/QtXml -I$PREFIX/include/qt/QtXmlPatterns -I$PREFIX/include/qt/QtNetwork -I$PREFIX/include/qt/QtCore -I. -I$BUILD_PREFIX/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include -I$BUILD_PREFIX/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include-fixed -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include/c/12.3.0 -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include/c/12.3.0/x86_64-conda-linux-gnu -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include/c/12.3.0/backward -I$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr/include ../../src/cppNGSD/GenLabDB.h -o moc_GenLabDB.cpp - $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -c -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ngs-bits-2024_02 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -std=gnu11 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG_OUTPUT -DCPPNGSD_LIBRARY -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_XMLPATTERNS_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I../../src/cppNGSD -I. -I../../src/cppCORE -I../../src/cppNGS -I../../src/cppXML -I../../htslib/include -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtSql -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtXml -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtXmlPatterns -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtNetwork -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore -I. -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/mkspecs/linux-g -o moc_GenLabDB.o moc_GenLabDB.cpp - $PREFIX/bin/moc -DQT_NO_DEBUG_OUTPUT -DCPPNGSD_LIBRARY -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_XMLPATTERNS_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB --include $SRC_DIR/build/cppNGSD/moc_predefs.h -I$PREFIX/mkspecs/linux-g -I$SRC_DIR/src/cppNGSD -I$SRC_DIR/src/cppCORE -I$SRC_DIR/src/cppNGS -I$SRC_DIR/src/cppXML -I$SRC_DIR/htslib/include -I$PREFIX/include/qt -I$PREFIX/include/qt/QtSql -I$PREFIX/include/qt/QtXml -I$PREFIX/include/qt/QtXmlPatterns -I$PREFIX/include/qt/QtNetwork -I$PREFIX/include/qt/QtCore -I. -I$BUILD_PREFIX/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include -I$BUILD_PREFIX/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include-fixed -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include/c/12.3.0 -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include/c/12.3.0/x86_64-conda-linux-gnu -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include/c/12.3.0/backward -I$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr/include ../../src/cppNGSD/ReportConfiguration.h -o moc_ReportConfiguration.cpp - $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -c -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ngs-bits-2024_02 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -std=gnu11 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG_OUTPUT -DCPPNGSD_LIBRARY -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_XMLPATTERNS_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I../../src/cppNGSD -I. -I../../src/cppCORE -I../../src/cppNGS -I../../src/cppXML -I../../htslib/include -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtSql -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtXml -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtXmlPatterns -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtNetwork -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore -I. -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/mkspecs/linux-g -o moc_ReportConfiguration.o moc_ReportConfiguration.cpp - rm -f libcppNGSD.so.1.0.0 libcppNGSD.so libcppNGSD.so.1 libcppNGSD.so.1.0 - g -Wl,-rpath,'$ORIGIN' -Wl,-O1 -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib/ -shared -Wl,-soname,libcppNGSD.so.1 -o libcppNGSD.so.1.0.0 ApiCaller.o ExportCBioPortalStudy.o FileLocationList.o FileLocationProviderLocal.o FileLocationProviderRemote.o SqlQuery.o NGSD.o GenLabDB.o DBTable.o ReportConfiguration.o SomaticReportConfiguration.o LoginManager.o SomaticXmlReportGenerator.o SomaticReportSettings.o ReportSettings.o GermlineReportGenerator.o StatisticsServiceLocal.o StatisticsServiceRemote.o TumorOnlyReportWorker.o SomaticReportHelper.o SomaticRnaReport.o SomaticcfDNAReport.o qrc_cppNGSD.o moc_NGSD.o moc_GenLabDB.o moc_ReportConfiguration.o -L$PREFIX/lib -L$SRC_DIR/src/cppNGSD/../../bin -lcppCORE -lcppNGS -lcppXML -L$SRC_DIR/src/cppNGSD/../../htslib/lib/ -lhts $PREFIX/lib/libQt5Sql.so $PREFIX/lib/libQt5Xml.so $PREFIX/lib/libQt5XmlPatterns.so $PREFIX/lib/libQt5Network.so $PREFIX/lib/libQt5Core.so -lpthread - ln -s libcppNGSD.so.1.0.0 libcppNGSD.so - ln -s libcppNGSD.so.1.0.0 libcppNGSD.so.1 - ln -s libcppNGSD.so.1.0.0 libcppNGSD.so.1.0 - rm -f ../../bin/libcppNGSD.so.1.0.0 - mv -f libcppNGSD.so.1.0.0 ../../bin/libcppNGSD.so.1.0.0 - rm -f ../../bin/libcppNGSD.so - rm -f ../../bin/libcppNGSD.so.1 - rm -f ../../bin/libcppNGSD.so.1.0 - mv -f libcppNGSD.so ../../bin/libcppNGSD.so - mv -f libcppNGSD.so.1 ../../bin/libcppNGSD.so.1 - mv -f libcppNGSD.so.1.0 ../../bin/libcppNGSD.so.1.0 - make[1]: Leaving directory '$SRC_DIR/build/cppNGSD' - cd SampleAncestry/ && ( test -e Makefile || $PREFIX/bin/qmake -o Makefile $SRC_DIR/src/SampleAncestry/SampleAncestry.pro CONFIG-=debug CONFIG=release DEFINES=QT_NO_DEBUG_OUTPUT QMAKE_CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c QMAKE_CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc 'QMAKE_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ngs-bits-2024_02 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix' 'QMAKE_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ngs-bits-2024_02 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix' QMAKE_LIBDIR=$PREFIX/lib QMAKE_RPATHLINKDIR=$PREFIX/lib/ ) && make -f Makefile - make[1]: Entering directory '$SRC_DIR/build/SampleAncestry' - $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ngs-bits-2024_02 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -std=gnu11 -Wall -Wextra -dM -E -o moc_predefs.h ../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/mkspecs/features/data/dummy.cpp - $PREFIX/bin/moc -DQT_NO_DEBUG_OUTPUT -DQT_NO_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB --include $SRC_DIR/build/SampleAncestry/moc_predefs.h -I$PREFIX/mkspecs/linux-g -I$SRC_DIR/src/SampleAncestry -I$SRC_DIR/src/cppCORE -I$SRC_DIR/src/cppXML -I$SRC_DIR/src/cppNGS -I$SRC_DIR/htslib/include -I$PREFIX/include/qt -I$PREFIX/include/qt/QtNetwork -I$PREFIX/include/qt/QtCore -I. -I$BUILD_PREFIX/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include -I$BUILD_PREFIX/lib/gcc/x86_64-conda-linux-gnu/12.3.0/include-fixed -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include/c/12.3.0 -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include/c/12.3.0/x86_64-conda-linux-gnu -I$BUILD_PREFIX/x86_64-conda-linux-gnu/include/c/12.3.0/backward -I$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr/include ../../src/SampleAncestry/main.cpp -o main.moc - $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -c -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ngs-bits-2024_02 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -O3 -std=gnu11 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG_OUTPUT -DQT_NO_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB -I../../src/SampleAncestry -I. -I../../src/cppCORE -I../../src/cppXML -I../../src/cppNGS -I../../htslib/include -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtNetwork -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore -I. -I../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/mkspecs/linux-g -o main.o ../../src/SampleAncestry/main.cpp - ../../src/SampleAncestry/main.cpp: In member function 'virtual void ConcreteTool::main()': - ../../src/SampleAncestry/main.cpp:53:75: warning: 'QTextStream& QTextStreamFunctions::endl(QTextStream&)' is deprecated: Use Qt::endl [-Wdeprecated-declarations] - 53 | out << "#sample\tsnps\tAFR\tEUR\tSAS\tEAS\tpopulation" << endl; - | ^~~~ - In file included from ../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore/qdebug.h:49, - from ../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore/QDebug:1, - from ../../src/cppCORE/Exceptions.h:6, - from ../../src/cppNGS/GenomeBuild.h:5, - from ../../src/cppNGS/VariantList.h:9, - from ../../src/SampleAncestry/main.cpp:2: - ../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore/qtextstream.h:293:75: note: declared here - 293 | Q_CORE_EXPORT QT_DEPRECATED_VERSION_X(5, 15, "Use Qt::endl") QTextStream &endl(QTextStream &s); - | ^~~~ - ../../src/SampleAncestry/main.cpp:63:67: warning: 'QTextStream& QTextStreamFunctions::endl(QTextStream&)' is deprecated: Use Qt::endl [-Wdeprecated-declarations] - 63 | << "\t" << ancestry.population << endl; - | ^~~~ - ../../../_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/include/qt/QtCore/qtextstream.h:293:75: note: declared here - 293 | Q_CORE_EXPORT QT_DEPRECATED_VERSION_X(5, 15, "Use Qt::endl") QTextStream &endl(QTextStream &s); - | ^~~~ - g -Wl,-rpath,'$ORIGIN' -Wl,-O1 -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib/ -o ../../bin/SampleAncestry main.o -L$PREFIX/lib -L$SRC_DIR/src/../bin -lcppCORE -lcppXML -lcppNGS -L$SRC_DIR/src/../htslib/lib/ -lhts -lz $PREFIX/lib/libQt5Network.so $PREFIX/lib/libQt5Core.so -lpthread - /opt/conda/conda-bld/ngs-bits_1717785251796/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /opt/conda/conda-bld/ngs-bits_1717785251796/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/libQt5Network.so: undefined reference to memcpy@GLIBC_2.14' - /opt/conda/conda-bld/ngs-bits_1717785251796/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /opt/conda/conda-bld/ngs-bits_1717785251796/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/libQt5Core.so: undefined reference to clock_gettime@GLIBC_2.17' - /opt/conda/conda-bld/ngs-bits_1717785251796/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /opt/conda/conda-bld/ngs-bits_1717785251796/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/libQt5Core.so: undefined reference to getauxval@GLIBC_2.16' - collect2: error: ld returned 1 exit status - make[1]: *** [Makefile:275: ../../bin/SampleAncestry] Error 1 - make[1]: Leaving directory '$SRC_DIR/build/SampleAncestry' - make: *** [Makefile:462: sub-SampleAncestry-make_first] Error 2 - Traceback (most recent call last): - File "/opt/conda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/ngs-bits_1717785251796/work/conda_build.sh']' returned non-zero exit status 2. -# Last 100 lines of the build log. diff --git a/recipes/ngs-bits/meta.yaml b/recipes/ngs-bits/meta.yaml index c14543c572b7a..2cdff02b988a1 100644 --- a/recipes/ngs-bits/meta.yaml +++ b/recipes/ngs-bits/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("ngs-bits", max_pin=None) }} @@ -39,6 +39,8 @@ requirements: #For libGL dependency docu see: https://conda-forge.org/docs/maintainer/knowledge_base.html#core-dependency-tree-packages-cdt extra: + additional-platforms: + - linux-aarch64 container: extended-base: True From 789327e9be0fbc8ebe3ab4fd50e2027c154308b3 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 27 Jun 2024 18:40:21 +0300 Subject: [PATCH 0210/1514] strobealign: add linux-aarch64 build (#48770) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/strobealign/build.sh | 19 ++++++++++++++++--- recipes/strobealign/meta.yaml | 4 +++- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/recipes/strobealign/build.sh b/recipes/strobealign/build.sh index de30b6c502353..9c98155dcf927 100644 --- a/recipes/strobealign/build.sh +++ b/recipes/strobealign/build.sh @@ -1,8 +1,21 @@ +#!/usr/bin/env bash + +set -xe + +case $(uname -m) in + x86_64) + ARCH_FLAGS="-msse4.2" + ;; + *) + ARCH_FLAGS="" + ;; +esac + cmake -B build \ - -DCMAKE_C_FLAGS="-msse4.2" \ - -DCMAKE_CXX_FLAGS="-msse4.2 -D_LIBCPP_DISABLE_AVAILABILITY" \ + -DCMAKE_C_FLAGS="${ARCH_FLAGS}" \ + -DCMAKE_CXX_FLAGS="${ARCH_FLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" \ -DCMAKE_C_STANDARD=11 \ -DCMAKE_C_STANDARD_REQUIRED=ON \ -DCMAKE_INSTALL_PREFIX=$PREFIX -make -C build VERBOSE=1 +make -j ${CPU_COUNT} -C build VERBOSE=1 make -C build install diff --git a/recipes/strobealign/meta.yaml b/recipes/strobealign/meta.yaml index f2b28b7497ef1..e231f790b979e 100644 --- a/recipes/strobealign/meta.yaml +++ b/recipes/strobealign/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("strobealign", max_pin="x.x") }} @@ -34,5 +34,7 @@ about: summary: Align short reads using dynamic seed size with strobemers extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - marcelm From 8e4b6dd2e3861b45898135f8fbb8983159c2f180 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 27 Jun 2024 14:43:03 -0400 Subject: [PATCH 0211/1514] Update jbrowse2 to 2.12.3 (#48785) --- recipes/jbrowse2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/jbrowse2/meta.yaml b/recipes/jbrowse2/meta.yaml index be0261005f960..ea465f9b7f8c3 100644 --- a/recipes/jbrowse2/meta.yaml +++ b/recipes/jbrowse2/meta.yaml @@ -1,12 +1,12 @@ # When updating, check the @jbrowse/cli version in build.sh too -{% set version = "2.12.2" %} +{% set version = "2.12.3" %} package: name: jbrowse2 version: {{ version }} source: - sha256: d679580eeb6b9a3584539d9293c92981e8e1e6873ec7aa55f94f6c5a52872050 + sha256: 682235117961f69b1600366009c69290f74fffb2c337952e051a9536b6366914 url: https://github.com/GMOD/jbrowse-components/releases/download/v{{ version }}/jbrowse-web-v{{ version }}.zip build: From d9513ee1d92e86628fcd748b53572e3ab64d5e8c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 27 Jun 2024 14:43:23 -0400 Subject: [PATCH 0212/1514] Update melon to 0.2.0 (#48782) --- recipes/melon/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/melon/meta.yaml b/recipes/melon/meta.yaml index fef4e71fb2d27..bb85221963f0a 100644 --- a/recipes/melon/meta.yaml +++ b/recipes/melon/meta.yaml @@ -1,5 +1,5 @@ {% set name = "melon" %} -{% set version = "0.1.6" %} +{% set version = "0.2.0" %} package: name: '{{ name|lower }}' @@ -7,7 +7,7 @@ package: source: url: https://github.com/xinehc/melon/archive/refs/tags/v{{ version }}.tar.gz - sha256: 65b92f71a748c11561f1438f1509723e1a93eb363f905ab53048f7f0aaa07f16 + sha256: 3020c20f8619aeeb254a52eb8822dab3689956b3e218450cd8506a42f263f7f4 build: noarch: python From 40734fab8f264d9bb95a925880cba72f487affa6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 27 Jun 2024 14:43:38 -0400 Subject: [PATCH 0213/1514] Update chewbbaca to 3.3.7 (#48781) --- recipes/chewbbaca/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/chewbbaca/meta.yaml b/recipes/chewbbaca/meta.yaml index 6ea4da901e89c..fc620e21f3c48 100644 --- a/recipes/chewbbaca/meta.yaml +++ b/recipes/chewbbaca/meta.yaml @@ -1,5 +1,5 @@ {% set name = 'chewBBACA' %} -{% set version = '3.3.6' %} +{% set version = '3.3.7' %} package: name: {{ name|lower }} @@ -8,7 +8,7 @@ package: source: url: https://github.com/B-UMMI/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz # url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 3075aa213a9662fc7d51696d6d63f647846cbefe254264753711c09a5dd3afa0 + sha256: a12ac7604422d12961c31b763344eaab6ed151efd45339597a2b8f3dadfdb8ec # sha256: b54c5f4fb2f3c943f9ec51e5b81f4fb9a312fcc87fdea6e0a9f3edbebdf62308 build: From 4b4544a052e8fa802a19d793e7cdcdef88cc55b8 Mon Sep 17 00:00:00 2001 From: "Michael X. Wang" <54554363+mxwang66@users.noreply.github.com> Date: Thu, 27 Jun 2024 23:31:11 -0400 Subject: [PATCH 0214/1514] Update Olivar to 1.1.5 (#48705) * Update Olivar to 1.1.5 * update license --------- Co-authored-by: mencian --- recipes/olivar/meta.yaml | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/recipes/olivar/meta.yaml b/recipes/olivar/meta.yaml index cacb4b80f87e8..5cda48e56fae5 100644 --- a/recipes/olivar/meta.yaml +++ b/recipes/olivar/meta.yaml @@ -1,17 +1,18 @@ -{% set version = "1.1.4" %} +{% set name = "olivar" %} +{% set version = "1.1.5" %} package: - name: olivar - version: '{{version}}' + name: {{ name }} + version: {{ version }} source: - url: 'https://github.com/treangenlab/Olivar/archive/refs/tags/v{{version}}.tar.gz' - sha256: d671e9cc3befd34ccaefc46dbf01d20de7de3bc7a23b66c30c47409509fb18de + url: https://github.com/treangenlab/Olivar/archive/refs/tags/v{{version}}.tar.gz + sha256: 7ead97763b448fbf9c7cad5f25c08b5e5063e92bfd8fc069604f05d76cf071f2 build: number: 0 noarch: python - script: {{ PYTHON }} -m pip install . --no-deps --ignore-installed --no-cache-dir -vvv && mkdir -p ${PREFIX}/bin && cp olivar ${PREFIX}/bin + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv && mkdir -p ${PREFIX}/bin && cp -f olivar ${PREFIX}/bin" run_exports: - {{ pin_subpackage('olivar', max_pin="x") }} @@ -23,7 +24,7 @@ requirements: - python >=3.8 - blast >=2.12.0 - biopython - - numpy + - numpy <2 - pandas - plotly >=5.13.0 - tqdm @@ -36,7 +37,8 @@ test: about: home: https://github.com/treangenlab/Olivar - license: MIT - license_family: MIT - license_file: LICENSE.txt + license: "GPL-3.0-or-later" + license_family: GPL3 + license_file: LICENSE summary: 'Olivar PCR tiling design' + dev_url: https://github.com/treangenlab/Olivar From bef625a7fed2be3d41a1de3e78d353151e81c15d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 28 Jun 2024 02:03:59 -0400 Subject: [PATCH 0215/1514] Update piper to 0.14.2 (#47356) * Update piper to 0.14.1 * update dependency pinnings https://github.com/databio/pypiper/compare/v0.14.0...v0.14.1 * Update piper to 0.14.2 --------- Co-authored-by: Ryan Dale --- recipes/piper/meta.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/recipes/piper/meta.yaml b/recipes/piper/meta.yaml index 1ba5d74d77b4c..cf3d8030e4a85 100644 --- a/recipes/piper/meta.yaml +++ b/recipes/piper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "piper" %} -{% set version = "0.14.0" %} +{% set version = "0.14.2" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: "2d2b226689f2e992da0735f25ea432f16f230bfaef51e732ef50b1b495ce153c" + sha256: "fff74a6e7cbf188a3ce023913a9ce63098e7c3acfa73833fd9e4c4096a578035" build: number: 0 @@ -26,9 +26,9 @@ requirements: - pandas - psutil - python >=3 - - ubiquerg >=0.4.5 - - yacman - - pipestat >=0.4.0 + - ubiquerg >=0.8.0 + - yacman >=0.9.3 + - pipestat >=0.9.a1 test: imports: From 42e4e07af72e6e75a7ab0d5bcd3f2d6ff14d3c17 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 28 Jun 2024 02:36:16 -0400 Subject: [PATCH 0216/1514] Update pyclone-vi to 0.1.5 (#48791) --- recipes/pyclone-vi/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pyclone-vi/meta.yaml b/recipes/pyclone-vi/meta.yaml index 168ae35534378..cc5ef95b6313a 100644 --- a/recipes/pyclone-vi/meta.yaml +++ b/recipes/pyclone-vi/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pyclone-vi" %} -{% set version = "0.1.4" %} +{% set version = "0.1.5" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Roth-Lab/pyclone-vi/archive/{{ version }}.tar.gz - sha256: 80e3125b0da21af8b5eed9fd81cdef17055aad3291cd9be9ca4b7b3a29a4c04d + sha256: 242a77b159958054853e8156c718a18b1cb9220461385def554aeed9e054070f build: number: 0 From 5f78ea2d9e5079dd129f24f303e2b335543cab59 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 28 Jun 2024 02:36:50 -0400 Subject: [PATCH 0217/1514] Update bohra to 2.3.7 (#48790) --- recipes/bohra/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/bohra/meta.yaml b/recipes/bohra/meta.yaml index 1ba1ae27f4825..5a8036ec4cf29 100644 --- a/recipes/bohra/meta.yaml +++ b/recipes/bohra/meta.yaml @@ -1,6 +1,6 @@ {% set name = "bohra" %} -{% set version = "2.3.6" %} -{% set sha256 = "3d51bfe235ae95dbe2c020a7f538375b49694b35480263e7c9b07972fdce221c" %} +{% set version = "2.3.7" %} +{% set sha256 = "58747c4f430dc024b87a2c3f2a5767180bee7bd3606c1e86558f52ae06d4e71f" %} package: name: "{{ name }}" From 4233bfc863d6e8659411dcab9840df201ba4ddaf Mon Sep 17 00:00:00 2001 From: Josh Levy Date: Fri, 28 Jun 2024 14:40:15 +0800 Subject: [PATCH 0218/1514] Update Freyja meta.yaml (#48788) * Update Freyja meta.yaml Adds pyarrow as a dependency * Update meta.yaml increment build number --- recipes/freyja/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/freyja/meta.yaml b/recipes/freyja/meta.yaml index 835132edd3fe6..c6dd548925fd5 100644 --- a/recipes/freyja/meta.yaml +++ b/recipes/freyja/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 script: "python -m pip install . --no-deps" noarch: python entry_points: @@ -41,6 +41,7 @@ requirements: - pysam - biopython - seaborn + - pyarrow test: commands: From 9bf138ccb53a616ff8d38f7c5780bf464cf8c7c0 Mon Sep 17 00:00:00 2001 From: clementcoclet <94937696+clementcoclet@users.noreply.github.com> Date: Thu, 27 Jun 2024 23:42:18 -0700 Subject: [PATCH 0219/1514] mvip_recipe (#48786) * mvip_recipes * update_meta.yaml --------- Co-authored-by: Clement Coclet - 067048 --- recipes/mvip/LICENSE | 619 +++++++++++++++++++++++++++++++++++++++++ recipes/mvip/meta.yaml | 56 ++++ 2 files changed, 675 insertions(+) create mode 100644 recipes/mvip/LICENSE create mode 100644 recipes/mvip/meta.yaml diff --git a/recipes/mvip/LICENSE b/recipes/mvip/LICENSE new file mode 100644 index 0000000000000..bc08fe2e41e33 --- /dev/null +++ b/recipes/mvip/LICENSE @@ -0,0 +1,619 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. diff --git a/recipes/mvip/meta.yaml b/recipes/mvip/meta.yaml new file mode 100644 index 0000000000000..b68a886d17a03 --- /dev/null +++ b/recipes/mvip/meta.yaml @@ -0,0 +1,56 @@ +{% set name = "mvip" %} +{% set version = "1.0.0" %} + +package: + name: "{{ name|lower }}" + version: "{{ version }}" + +source: + url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" + sha256: f46d97de0916faa6f747d611160df7bb33219337cb9b01de5608b35421aa2b53 + +build: + number: 0 + noarch: python + script: "{{ PYTHON }} -m pip install . --no-deps -vv" + run_exports: + - {{ pin_subpackage("mvip", max_pin="x") }} + +requirements: + host: + - python >=3.7 + - pip + - flit + run: + - python >=3.7 + - tqdm + - importlib_resources + - genomad + - pandas + - checkv + - bowtie2 + - minimap2 + - samtools + - seqtk + - scikit-learn ==0.23 + - numpy ==1.23 + - parallel + - coverm + - dos2unix + - mmseqs2 + - mafft + - trimal + - fasttree + - vRhyme + - taxopy + - table2asn + - rpy2 + - flit + +test: + commands: + - mvip -h +about: + home: https://gitlab.com/ccoclet/mvp + license: GNU GENERAL PUBLIC LICENSE + summary: MVP v.1.0, a user-friendly pipeline written in Python and providing a simple framework to perform standard viromics analyses. MVP combines multiple tools to enable viral genome identification, characterization of genome quality, filtering, clustering, taxonomic and functional annotation, genome binning, and comprehensive summaries of results that can be used for downstream ecological analyses. Overall, MVP provides a standardized and reproducible pipeline for both extensive and robust characterization of viruses from large-scale sequencing data including metagenomes, metatranscriptomes, viromes and isolate genomes. From 341ec6453125410463b9d60ff765fe8218dfd0a7 Mon Sep 17 00:00:00 2001 From: Arya Massarat <23412689+aryarm@users.noreply.github.com> Date: Thu, 27 Jun 2024 23:45:31 -0700 Subject: [PATCH 0220/1514] bump plink2 to 2.00a5.12 (#48787) --- recipes/plink2/meta.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/recipes/plink2/meta.yaml b/recipes/plink2/meta.yaml index c5f60a7e7a323..7ea74ac5f31fc 100644 --- a/recipes/plink2/meta.yaml +++ b/recipes/plink2/meta.yaml @@ -1,6 +1,6 @@ package: name: plink2 - version: "2.00a5.10" + version: "2.00a5.12" build: number: 0 @@ -8,10 +8,10 @@ build: - {{ pin_subpackage('plink2', max_pin=None) }} source: - url: https://s3.amazonaws.com/plink2-assets/alpha5/plink2_linux_x86_64_20240105.zip # [linux] - sha256: d841fe0b3fcc42d76b2b08bcfeb95e315156b0b883b353807014a69b4867dc47 # [linux] - url: https://s3.amazonaws.com/plink2-assets/alpha5/plink2_mac_20240105.zip # [osx] - sha256: 75d78b9a94a570804a9ab130dd0dd29ff8d1c7851c386239505798cd2126c0f9 # [osx] + url: https://s3.amazonaws.com/plink2-assets/alpha5/plink2_linux_x86_64_20240625.zip # [linux] + sha256: 7bf73ad7bbd3256a83cd72ed068bee4175bd6052a7bf30a659dbdb696d9d1d9e # [linux] + url: https://s3.amazonaws.com/plink2-assets/alpha5/plink2_mac_20240625.zip # [osx] + sha256: 08e962c59d7f28b4ecc39d0279b859775cc5d2fbb892b7b350a982f4d7de437d # [osx] requirements: build: @@ -19,7 +19,7 @@ requirements: test: commands: - - plink2 --help | grep "PLINK v2.00a5.10" + - plink2 --help | grep "PLINK v2.00a5.12" about: home: https://www.cog-genomics.org/plink2 From b9af99accfe3ee0f1e2837232d065ef445965157 Mon Sep 17 00:00:00 2001 From: hangxue <52196227+hangxue-wustl@users.noreply.github.com> Date: Fri, 28 Jun 2024 00:54:10 -0700 Subject: [PATCH 0221/1514] Add tetrimmer (#47713) * initial commit * fix meta.yaml * fix syntax * run exports * run exports * run exports * run exports * new sha * new sha * test * test * test * version * version * numpy * numpy * version * v1.3.0 * modify version * build.sh * import * no entry point * python * modify cp * add test * dir * path * path * test * new build * modify and v1.4.0 --- recipes/tetrimmer/build.sh | 15 +++++++++ recipes/tetrimmer/meta.yaml | 67 +++++++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 recipes/tetrimmer/build.sh create mode 100644 recipes/tetrimmer/meta.yaml diff --git a/recipes/tetrimmer/build.sh b/recipes/tetrimmer/build.sh new file mode 100644 index 0000000000000..e1e635060d457 --- /dev/null +++ b/recipes/tetrimmer/build.sh @@ -0,0 +1,15 @@ +#!/bin/sh +set -x -e + +tetrimmer_DIR=${PREFIX}/share/tetrimmer + +mkdir -p ${PREFIX}/bin +mkdir -p ${tetrimmer_DIR} +cp -r tetrimmer/* ${tetrimmer_DIR} + +cat <>${PREFIX}/bin/TEtrimmer +#!/bin/bash +python ${tetrimmer_DIR}/TEtrimmer.py \$@ +END + +chmod a+x ${PREFIX}/bin/TEtrimmer diff --git a/recipes/tetrimmer/meta.yaml b/recipes/tetrimmer/meta.yaml new file mode 100644 index 0000000000000..9012aae616590 --- /dev/null +++ b/recipes/tetrimmer/meta.yaml @@ -0,0 +1,67 @@ +{% set name = "TEtrimmer" %} +{% set version = "1.4.0" %} +{% set sha256 = "973eb61d3fd23677a38d14328ea0b4f8f38508b1af9a4ea52c137e460238a626" %} +package: + name: {{ name|lower }} + version: {{ version }} +source: + url: https://github.com/qjiangzhao/TEtrimmer/archive/v{{ version }}.tar.gz + sha256: {{ sha256 }} +build: + number: 0 + noarch: generic + run_exports: + - {{ pin_subpackage('tetrimmer', max_pin="x") }} + +requirements: + run: + - python >=3.8,<3.11 + - numpy + - perl + - r-base + - blast + - biopython + - bedtools >=2.31.1 + - cd-hit + - dataclasses + - emboss + - hmmer + - iqtree + - matplotlib-base + - mafft + - multiprocess + - pandas + - pfam_scan + - plotly + - pypdf2 + - regex + - repeatmodeler + - repeatmasker + - requests + - samtools + - scikit-learn + - tk + - urllib3 + - click + - dill + - joblib + - nseg + - recon + - trf + - ghostscript + +test: + commands: + - TEtrimmer --help + +about: + home: https://github.com/qjiangzhao/TETrimmer.git + license: GPL-3.0-only + summary: "TETrimmer is designed to replace and assist TE manual curation." + license_family: GPL3 + license_file: LICENSE + +extra: + recipe-maintainers: + - hangxue + - qianjiangzhao \ No newline at end of file From cf508dd3bbb59a800424fc5d41e249cbc19b139d Mon Sep 17 00:00:00 2001 From: Peter Kruczkiewicz Date: Fri, 28 Jun 2024 03:14:40 -0500 Subject: [PATCH 0222/1514] Update VADR to 1.6.4 (#45235) * Update VADR to 1.6.3 * Update meta.yaml * vadr: Update to 1.6.4. Re-enable OSX builds Signed-off-by: Martin Tzvetanov Grigorov * Sync the required versions of sequip in host and run --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Grigorov --- recipes/vadr/meta.yaml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/recipes/vadr/meta.yaml b/recipes/vadr/meta.yaml index 65dbfaff73267..655160c155e81 100644 --- a/recipes/vadr/meta.yaml +++ b/recipes/vadr/meta.yaml @@ -1,5 +1,5 @@ {% set name = "vadr" %} -{% set version = "1.5.1" %} +{% set version = "1.6.4" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: - url: https://github.com/ncbi/{{ name }}/archive/refs/tags/{{ name }}-{{ version }}.tar.gz - sha256: 716525b20c4abbe854f3d387c6549ef151773dded7d31b5f62b92bed94b12362 + sha256: 00e40b441a2a567394de9bff92419ec53b9f69021a1ed976c4fb5a556efea21a patches: - fix_vannotate_path.patch - fix_local_test_path.patch @@ -16,7 +16,9 @@ source: folder: fasta build: - number: 2 + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} requirements: build: @@ -25,19 +27,19 @@ requirements: - wget host: - perl - - sequip >=0.08 + - sequip >=0.10 run: - - blast >=2.11.0 + - blast >=2.15.0 - easel >=0.48 - - hmmer >=3.3.2 + - hmmer >=3.4 - infernal >=1.1.4 - - minimap2 + - minimap2 >=2.26 - perl - perl-bio-easel >=0.16 - perl-lwp-simple - perl-lwp-protocol-https >=6.07 - perl-net-ssleay >=1.88 - - sequip >=0.08 + - sequip >=0.10 - wget test: From ae77bfc49f6b5678d49f6dd4359afba37dc717c6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 28 Jun 2024 04:15:33 -0400 Subject: [PATCH 0223/1514] Update nonpareil to 3.5.2 (#48783) * Update nonpareil to 3.5.2 * Add openmpi to host requirements Signed-off-by: Martin Tzvetanov Grigorov * Call `make nonpareil` explicitly. `make` (i.e. make all) now also calls `nonpareil-mpi test release` targets: https://github.com/lmrodriguezr/nonpareil/commit/a56061218e0547fb3b8645a8e1ed5ca35d932cda#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52R23 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov --- recipes/nonpareil/meta.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/recipes/nonpareil/meta.yaml b/recipes/nonpareil/meta.yaml index bb62fbdc90107..59c5d0cc17f90 100644 --- a/recipes/nonpareil/meta.yaml +++ b/recipes/nonpareil/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "3.5.1" %} -{% set sha256 = "ef4df9eae4d12dd3e7ce43857b64805d0f923f34e29697dfc73a470c0ffbea11" %} +{% set version = "3.5.2" %} +{% set sha256 = "d0c65268add14b428e206ef601e945403ec77ed425eecaf23046e57582908c00" %} package: name: nonpareil @@ -10,11 +10,11 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('nonpareil', max_pin="x.x") }} script: | - make -j ${CPU_COUNT} cpp="${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}" + make -j ${CPU_COUNT} cpp="${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}" nonpareil make prefix="${PREFIX}" install requirements: @@ -39,4 +39,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 From a49a85b4eceefa79dbc7b20cfb4798b24dc20c99 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 28 Jun 2024 07:22:17 -0400 Subject: [PATCH 0224/1514] Update perl-graph to 0.9729 (#48795) --- recipes/perl-graph/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/perl-graph/meta.yaml b/recipes/perl-graph/meta.yaml index 5dfca8f761acf..951fae7d30fb1 100644 --- a/recipes/perl-graph/meta.yaml +++ b/recipes/perl-graph/meta.yaml @@ -1,10 +1,10 @@ package: name: perl-graph - version: "0.9728" + version: "0.9729" source: - url: https://cpan.metacpan.org/authors/id/E/ET/ETJ/Graph-0.9728.tar.gz - sha256: 3fcd05bd9905353b9e846a0e36de06f84a144d54331e3179d95f681c406f6466 + url: https://cpan.metacpan.org/authors/id/E/ET/ETJ/Graph-0.9729.tar.gz + sha256: 3efbed46ca82f78f25253d034232b0cc9cfadfbd867437e63f9275850f85abb0 build: noarch: generic From e388e9c63343ddb86aacc7a44445d92343f33a3d Mon Sep 17 00:00:00 2001 From: Thomas Duigou Date: Fri, 28 Jun 2024 13:26:59 +0200 Subject: [PATCH 0225/1514] Add recipe for icfree-ml 2.3.0 (#48779) * add recipe for icfree-ml 2.3.0 * fix(meta.yaml): update recipes icfree-ml Co-authored-by: Martin Grigorov * fix(meta.yaml): import in recipes/icfree-ml/meta.yaml Co-authored-by: Martin Grigorov --------- Co-authored-by: Martin Grigorov --- recipes/icfree-ml/meta.yaml | 47 +++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 recipes/icfree-ml/meta.yaml diff --git a/recipes/icfree-ml/meta.yaml b/recipes/icfree-ml/meta.yaml new file mode 100644 index 0000000000000..2a5db33a3daf2 --- /dev/null +++ b/recipes/icfree-ml/meta.yaml @@ -0,0 +1,47 @@ +{% set name = "icfree-ml" %} +{% set version = "2.3.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/brsynth/icfree-ml/archive/refs/tags/2.3.0.tar.gz + sha256: 6dbefeeeba16a3f02658a45164caa0974befdb008cae1d91147f242fe56542b8 + +build: + number: 0 + noarch: python + script: {{ PYTHON }} -m pip install -vv . + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} + +requirements: + host: + - python >3.6 + - pip + run: + - python >3.6 + - biopython + - pysbol2 + - blast + +test: + source_files: + - tests/ + imports: + - icfree + requires: + - pytest + - pytest-cov + - pytest-mock + +about: + home: https://github.com/brsynth/icfree-ml + summary: Design of experiments (DoE) and machine learning packages for the iCFree project + license: MIT + license_file: LICENSE + +extra: + recipe-maintainers: + - tduigou \ No newline at end of file From 1d522645468c573e4413670e2a5cc0fa940d4a54 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 28 Jun 2024 08:46:27 -0400 Subject: [PATCH 0226/1514] Update easypqp to 0.1.47 (#48799) --- recipes/easypqp/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/easypqp/meta.yaml b/recipes/easypqp/meta.yaml index e8f77b66afe7d..96d0824e74a1a 100644 --- a/recipes/easypqp/meta.yaml +++ b/recipes/easypqp/meta.yaml @@ -1,6 +1,6 @@ {% set name = "easypqp" %} -{% set version = "0.1.46" %} -{% set sha256 = "f6f36dfd7007e7d2883fe7f8816ed6c72e5115b05cf4d640334cf357c039a259" %} +{% set version = "0.1.47" %} +{% set sha256 = "5018f2122e7d782c04e75bb48623069ec2be182e9fc477d909a1f98afc6f2b64" %} package: name: {{ name|lower }} From e134a8232a89f9e7fc4ed9e6ac694634c674a46f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 28 Jun 2024 10:41:21 -0400 Subject: [PATCH 0227/1514] Update gappa to 0.8.5 (#48801) --- recipes/gappa/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/gappa/meta.yaml b/recipes/gappa/meta.yaml index e2fc50494968b..480e2fa880580 100644 --- a/recipes/gappa/meta.yaml +++ b/recipes/gappa/meta.yaml @@ -1,15 +1,15 @@ package: name: gappa - version: "0.8.4" + version: "0.8.5" build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('gappa', max_pin='x.x') }} source: - url: https://github.com/lczech/gappa/archive/refs/tags/v0.8.4.tar.gz - sha256: 98caee57fa42cd898b2ca57a77b5f56217cac9f9bf6469bcf8ee62f7140411fe + url: https://github.com/lczech/gappa/archive/refs/tags/v0.8.5.tar.gz + sha256: e0aff99e612fb674062ff4b5d50751140d567e9a289c29d58ea48b822a6a102b requirements: build: From 4c71c8cd8d88b6ad88c14047b0b5507b19bca508 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Fri, 28 Jun 2024 09:42:05 -0500 Subject: [PATCH 0228/1514] Update sonicparanoid to 2.0.7 (#48754) * Update sonicparanoid to 2.0.6 * do not build aarch64 for now * try symlinking gcc * Fix env var syntax and prepend $PREFIX/bin to PATH Signed-off-by: Martin Tzvetanov Grigorov * Use a patch to not hardcode gcc/g++ but use the CC/CXX env vars Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov --- recipes/sonicparanoid/meta.yaml | 81 +++++++++++++++--------- recipes/sonicparanoid/sys_tools.patch | 38 +++++++++++ recipes/sonicparanoid/use-env-vars.patch | 17 +++++ 3 files changed, 106 insertions(+), 30 deletions(-) create mode 100644 recipes/sonicparanoid/sys_tools.patch create mode 100644 recipes/sonicparanoid/use-env-vars.patch diff --git a/recipes/sonicparanoid/meta.yaml b/recipes/sonicparanoid/meta.yaml index b4ab92e3d8f48..bbcd6ab1811bf 100644 --- a/recipes/sonicparanoid/meta.yaml +++ b/recipes/sonicparanoid/meta.yaml @@ -1,60 +1,81 @@ -# Project ID of SonicParanoid in git lab is 11148448 - {% set name = "sonicparanoid" %} -{% set version = "1.3.8" %} - -# Working example of link that can be downloaded -# https://gitlab.com/api/v4/projects/11148448/repository/archive.zip?sha=6af30d9d7e7ebf40ca151ccbe2de56bdb1ccea8a +{% set version = "2.0.7" %} +{% set sha256 = "634f4fa00d65c6c1c83a2bee35acaeabc097463d7b58099e523725b71e6d1a1b" %} package: - name: "{{ name|lower }}" - version: "{{ version }}" + name: {{ name|lower }} + version: {{ version }} source: - url: https://gitlab.com/salvo981/sonicparanoid2/-/archive/v{{ version }}/sonicparanoid2-v{{ version }}.tar.gz - sha256: d573bb761e619adc14e51736f73d3142049cb1e00f5d61f10e081566edaefaec - + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/sonicparanoid-{{ version }}.tar.gz + sha256: {{ sha256 }} + patches: + - sys_tools.patch + - use-env-vars.patch build: - number: 4 - skip: True # [py2k or py < 37 or py > 39] - script: "{{ PYTHON }} -m pip install . --no-deps --no-cache-dir -vvv " + number: 0 + skip: True # [py < 39 or py >= 313] + script: + - "mkdir -p ${PREFIX}/bin" + - "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" + entry_points: + - sonicparanoid = sonicparanoid.sonic_paranoid:main + - sonicparanoid-get-test-data = sonicparanoid.get_test_data:main + - sonicparanoid-get-profiles = sonicparanoid.get_pfam_profiles:main + - sonicparanoid-extract = sonicparanoid.sonic_paranoid_extract:main + - sonic-debug-infer-ortho-table = sonicparanoid.sonic_infer_ortho_table:main + run_exports: + - {{ pin_subpackage(name, max_pin='x') }} requirements: build: - - {{ compiler('cxx') }} - {{ compiler('c') }} host: - python - pip - - setuptools >=57.4.0 - - wheel >=0.37.0 - - Cython >=0.29.24 + - python-build >=1.2.1 + - cython + - numpy run: - python - - numpy >=1.21 - - pandas >=1.3.2 - - scipy >=1.7.1 - - biopython >=1.79 - - psutil >=5.8.0 - - scikit-learn >=0.24.2 - - filetype >=1.0.7 + - {{ pin_compatible('numpy') }} + - pandas >=2.2.0 + - scipy <1.13 + - biopython >=1.83 + - psutil >=6.0.0 + - scikit-learn >=1.5.0 + - filetype >=1.2.0 + - gdown >=5.2.0 + - gensim >=4.2.0 + - mypy >=1.10.0 + - smart-open >=7.0.1 + - tqdm >=4.66.0 - mmseqs2 >=13.45111 - diamond >=2.0.12 - blast >=2.12.0 - mcl >=14.137 test: + imports: + - sonicparanoid commands: - - "sonicparanoid --help" + - sonicparanoid --help + - sonicparanoid-get-test-data --help + - sonicparanoid-get-profiles --help + - sonicparanoid-extract --help about: - home: "http://iwasakilab.bs.s.u-tokyo.ac.jp/sonicparanoid/" - license: "GNU General Public License v3" - license_family: "GPL3" + home: "https://gitlab.com/salvo981/sonicparanoid2" + license: "GPL-3.0-only" + license_family: "GPL" license_file: "LICENSE.md" - summary: "SonicParanoid: fast, easy and accurate orthology inference" + summary: "SonicParanoid: fast, accurate, and comprehensive orthology inference with machine learning and language models" + dev_url: "https://gitlab.com/salvo981/sonicparanoid2" + doc_url: "https://gitlab.com/salvo981/sonicparanoid2/-/wikis/home" extra: identifiers: + - doi:10.1101/2023.05.14.540736 - doi:10.1093/bioinformatics/bty631 + - biotools:SonicParanoid diff --git a/recipes/sonicparanoid/sys_tools.patch b/recipes/sonicparanoid/sys_tools.patch new file mode 100644 index 0000000000000..7f775954cf725 --- /dev/null +++ b/recipes/sonicparanoid/sys_tools.patch @@ -0,0 +1,38 @@ +diff --git a/sonicparanoid/sys_tools.py b/sonicparanoid/sys_tools.py +index 5fff04f..4cde5cb 100644 +--- a/sonicparanoid/sys_tools.py ++++ b/sonicparanoid/sys_tools.py +@@ -5,6 +5,7 @@ import subprocess + import logging + from shutil import copyfileobj + from filetype import guess_mime ++from typing import List, Tuple + + __module_name__ = "System Tools" + __source__ = "sys_tools.py" +@@ -332,7 +333,7 @@ def getShell(): + + + +-def is_conda_env() -> tuple[bool, str]: ++def is_conda_env() -> Tuple[bool, str]: + """ + Check if a CONDA environment is being used. + """ +@@ -351,14 +352,14 @@ def is_conda_env() -> tuple[bool, str]: + + + +-def is_mamba_env() -> tuple[bool, str]: ++def is_mamba_env() -> Tuple[bool, str]: + """ + Check if a Mamba environment is being used. + """ + # The identification is done based on the path of the python binaries + # Possible paths are chosen based on conda documentation + # https://docs.anaconda.com/anaconda/user-guide/tasks/integration/python-path +- mambaTypes: list[str] = ["mamba", "micromamba"] ++ mambaTypes: List[str] = ["mamba", "micromamba"] + # Extract the path with the binaries + pyBinPrefix: str = sys.exec_prefix + # Check if the prefix contains one of the anaconda path keywords diff --git a/recipes/sonicparanoid/use-env-vars.patch b/recipes/sonicparanoid/use-env-vars.patch new file mode 100644 index 0000000000000..93f588cfd93a5 --- /dev/null +++ b/recipes/sonicparanoid/use-env-vars.patch @@ -0,0 +1,17 @@ +diff --git i/setup.py w/setup.py +index e99c995..fc79fa0 100755 +--- i/setup.py ++++ w/setup.py +@@ -59,12 +59,6 @@ if _CYTHON_INSTALLED: + + ''' + +-# Force to use the default version of gcc and g++ +-if platform.system() == "Linux": +- os.environ["CC"] = "gcc" +- os.environ["CXX"] = "g++" +- +- + def makedir(path): + """Create a directory including the intermediate directories in the path if not existing.""" + try: From 5069dad334aed4f05e00ec125622d12229018dd8 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 28 Jun 2024 17:46:24 +0300 Subject: [PATCH 0229/1514] ngs-disambiguate: add linux-aarch64 build (#48746) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/ngs-disambiguate/meta.yaml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/recipes/ngs-disambiguate/meta.yaml b/recipes/ngs-disambiguate/meta.yaml index b7c6be10de712..707528f6bf094 100644 --- a/recipes/ngs-disambiguate/meta.yaml +++ b/recipes/ngs-disambiguate/meta.yaml @@ -10,8 +10,10 @@ source: sha256: d5b05caec68db7596fc31564f44afdce27c4d5215785f9c97581d58e87d9cc94 build: - number: 8 + number: 9 skip: true # [osx] + run_exports: + - {{ pin_subpackage('ngs-disambiguate', max_pin=None) }} requirements: build: @@ -31,3 +33,7 @@ about: home: https://github.com/AstraZeneca-NGS/disambiguate license: MIT summary: Disambiguation algorithm for reads aligned to human and mouse genomes using Tophat or BWA mem + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From cf9818d2d205efc6268c62c77307f94d3579ebde Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 28 Jun 2024 17:46:48 +0300 Subject: [PATCH 0230/1514] bmtool: add linux-aarch64 build (#48772) * bmtool: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * bmtool: Fix C++ compilation error Signed-off-by: Martin Tzvetanov Grigorov * Add a patch to use for Linux Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/bmtool/bmtool-cplusplus-template.patch | 11 +++++++++++ recipes/bmtool/bmtool-fix-ctime.patch | 10 ++++++++++ recipes/bmtool/build.sh | 6 ++++-- recipes/bmtool/meta.yaml | 10 +++++++++- 5 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 recipes/bmtool/bmtool-cplusplus-template.patch create mode 100644 recipes/bmtool/bmtool-fix-ctime.patch diff --git a/build-fail-blacklist b/build-fail-blacklist index 8d321f4dd5e44..f6187d6938d58 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -226,7 +226,6 @@ recipes/bctools recipes/bayestyper recipes/group_humann2_uniref_abundances_to_go recipes/isonclust2 -recipes/bmtool recipes/sibelia recipes/var-agg recipes/wham diff --git a/recipes/bmtool/bmtool-cplusplus-template.patch b/recipes/bmtool/bmtool-cplusplus-template.patch new file mode 100644 index 0000000000000..b44d6af00181c --- /dev/null +++ b/recipes/bmtool/bmtool-cplusplus-template.patch @@ -0,0 +1,11 @@ +--- a/general/cgetopt.hpp 2024-06-27 12:43:39.692000000 +0000 ++++ b/general/cgetopt.hpp 2024-06-27 12:42:10.116000000 +0000 +@@ -267,7 +267,7 @@ + int m_cnt; + }; + +-template<> ++//template<> + template + class COptArg > : public COption + { diff --git a/recipes/bmtool/bmtool-fix-ctime.patch b/recipes/bmtool/bmtool-fix-ctime.patch new file mode 100644 index 0000000000000..6abf282624c27 --- /dev/null +++ b/recipes/bmtool/bmtool-fix-ctime.patch @@ -0,0 +1,10 @@ +--- general/cprogressindicator.hpp.orig 2024-06-28 08:59:12.756000000 +0000 ++++ general/cprogressindicator.hpp 2024-06-28 09:27:08.976000000 +0000 +@@ -6,6 +6,7 @@ + #ifndef _WIN32 + #include + #include ++#include + #else + #include + #endif diff --git a/recipes/bmtool/build.sh b/recipes/bmtool/build.sh index 7c9f3d1da12b2..48dc6715f79ca 100644 --- a/recipes/bmtool/build.sh +++ b/recipes/bmtool/build.sh @@ -1,10 +1,12 @@ #!/bin/bash +set -xe + if [[ ${target_platform} =~ linux.* ]] ; then - make -C general \ + make -j ${CPU_COUNT} -C general \ CC="${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" \ CXX="${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}" - make -C bmtagger \ + make -j ${CPU_COUNT} -C bmtagger \ CC="${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" \ CXX="${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}" cd bmtagger diff --git a/recipes/bmtool/meta.yaml b/recipes/bmtool/meta.yaml index fd71e9355873f..f64a02e196bf0 100644 --- a/recipes/bmtool/meta.yaml +++ b/recipes/bmtool/meta.yaml @@ -7,11 +7,15 @@ source: md5: 719474a0e3b54449cbe06f6e442994dd # [linux] patches: # [linux] - 0001-Cast-getline-stream-to-bool.patch # [linux] + - bmtool-cplusplus-template.patch # [linux] + - bmtool-fix-ctime.patch # [linux] - url: ftp://ftp.ncbi.nlm.nih.gov/pub/agarwala/bmtagger/mac-os/bmtool # [osx] md5: 43f112115af7ef2a28c6a64b31374c12 # [osx] build: - number: 4 + number: 5 + run_exports: + - {{ pin_subpackage('bmtool', max_pin="x") }} requirements: build: @@ -29,3 +33,7 @@ about: home: ftp://ftp.ncbi.nlm.nih.gov/pub/agarwala/bmtagger/ license: Public Domain summary: "bmtool is part of BMTagger aka Best Match Tagger, for removing human reads from metagenomics datasets" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 234a5a67985391b95bc248e1e398cab79cbf9b90 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 28 Jun 2024 17:47:01 +0300 Subject: [PATCH 0231/1514] srprism: add linux-aarch64 build (#48774) * srprism: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Add patch to fix the compilation of srprism Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 3 -- recipes/srprism/build.sh | 4 +- recipes/srprism/meta.yaml | 10 +++- recipes/srprism/srprism-fix-compilation.patch | 51 +++++++++++++++++++ 4 files changed, 63 insertions(+), 5 deletions(-) create mode 100644 recipes/srprism/srprism-fix-compilation.patch diff --git a/build-fail-blacklist b/build-fail-blacklist index f6187d6938d58..c359923593766 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -282,9 +282,6 @@ recipes/riboplot # Requires libXext.so.6 in the container recipes/samsifter -# C++ syntax error: ../../lib/srprism/query_acct.hpp:118:51: error: expected primary-expression before ')' token { return query_info_[qn].MaxErr< paired >(); } -recipes/srprism - # Mulled test never completes recipes/comparative-annotation-toolkit diff --git a/recipes/srprism/build.sh b/recipes/srprism/build.sh index c2b876ba337ff..066b8804b2916 100644 --- a/recipes/srprism/build.sh +++ b/recipes/srprism/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + # https://bioconda.github.io/troubleshooting.html#zlib-errors export CFLAGS="-I$PREFIX/include" export LDFLAGS="-L$PREFIX/lib" @@ -15,5 +17,5 @@ autoheader automake -a -c autoconf ./configure --prefix=$PREFIX -make +make -j ${CPU_COUNT} make install \ No newline at end of file diff --git a/recipes/srprism/meta.yaml b/recipes/srprism/meta.yaml index 57cdfff31d751..3028ca551ce4d 100644 --- a/recipes/srprism/meta.yaml +++ b/recipes/srprism/meta.yaml @@ -8,10 +8,14 @@ package: source: url: ftp://ftp.ncbi.nlm.nih.gov/pub/agarwala/bmtagger/src/srprism.tar.gz sha256: '{{sha256}}' + patches: + - srprism-fix-compilation.patch build: - number: 4 + number: 5 skip: true # [osx] + run_exports: + - {{ pin_subpackage('srprism', max_pin="x") }} requirements: build: @@ -35,3 +39,7 @@ about: home: ftp://ftp.ncbi.nlm.nih.gov/pub/agarwala/srprism/ license: Public Domain summary: SRPRISM - Short Read Alignment Tool + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file diff --git a/recipes/srprism/srprism-fix-compilation.patch b/recipes/srprism/srprism-fix-compilation.patch new file mode 100644 index 0000000000000..0d25b90ac2cd1 --- /dev/null +++ b/recipes/srprism/srprism-fix-compilation.patch @@ -0,0 +1,51 @@ +--- a/lib/srprism/query_store.hpp 2024-06-28 08:20:07.016000000 +0000 ++++ b/lib/srprism/query_store.hpp 2024-06-28 08:35:20.720000000 +0000 +@@ -570,7 +570,7 @@ + else AdjustMinRankInfo< t_scoring >( qn ); + } + +- int max_err( qa->MaxErr< true >( qn ) ); ++ int max_err( qa->template MaxErr( qn ) ); + + if( max_err < min_err || + (max_err == min_err && +@@ -595,7 +595,7 @@ + qn, align_len, n_err, n_gap, n_del, n_gopen ) ); + + if( res ) { +- int max_err( qa->MaxErr< false >( qn ) ); ++ int max_err( qa->template MaxErr< false >( qn ) ); + + if( max_err < min_err || + (max_err == min_err && +@@ -623,13 +623,13 @@ + TSeqSize MaxQueryLen( void ) const { return max_query_len_; } + + template< typename t_scoring, bool paired > int MaxErr( TQNum qn ) const +- { return GetScoringData< t_scoring >()->MaxErr< paired >( qn ); } ++ { return GetScoringData< t_scoring >()->template MaxErr< paired >( qn ); } + + template< typename t_scoring, bool paired > int + GroupMaxErr( TQNum qn ) const + { + if( IsUnique( qn ) || DupDataStart( qn )[N_MIN_RANK] == 0 ) { +- return GetScoringData< t_scoring >()->MaxErr< paired >( qn ); ++ return GetScoringData< t_scoring >()->template MaxErr< paired >( qn ); + } + else { + return GetScoringData< t_scoring >()->GroupMaxErr( +--- a/lib/srprism/query_acct.hpp 2024-06-28 08:15:57.448000000 +0000 ++++ b/lib/srprism/query_acct.hpp 2024-06-28 08:39:14.900000000 +0000 +@@ -112,10 +112,10 @@ + + template< bool paired > + bool BestLevelFull( TQNum qn ) const +- { return query_info_[qn].BestLevelFull< paired >( res_lim_ ); } ++ { return query_info_[qn].template BestLevelFull< paired >( res_lim_ ); } + + template< bool paired > int MaxErr( TQNum qn ) const +- { return query_info_[qn].MaxErr< paired >(); } ++ { return query_info_[qn].template MaxErr< paired >(); } + + int GroupMaxErr( TQNum dup_idx ) const + { return t_scoring::template MaxErr< true >( dup_data_[dup_idx] ); } From c02c9c5a06ae0265217a0c8ff6c5284643a5dca5 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 28 Jun 2024 17:47:20 +0300 Subject: [PATCH 0232/1514] pairtools: add linux-aarch64 build (#48805) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/pairtools/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/pairtools/meta.yaml b/recipes/pairtools/meta.yaml index 389bc85f49ebb..b6fe4692a07d1 100644 --- a/recipes/pairtools/meta.yaml +++ b/recipes/pairtools/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 3f265ebcd50fb07a36199a99c58f6b17810b48bacf2d5f3096453319c89bd522 build: - number: 1 + number: 2 skip: True # [osx] entry_points: - pairtools = pairtools.cli:cli @@ -60,6 +60,8 @@ about: dev_url: https://github.com/open2c/pairtools extra: + additional-platforms: + - linux-aarch64 container: # click requires a unicode locale when used with Python 3 # extended-base generates en_US.UTF-8 locale and sets LC_ALL, LANG properly From d8dc945e3bf1297592c7f15df0ad62a01fd737cb Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 28 Jun 2024 17:47:55 +0300 Subject: [PATCH 0233/1514] snp-dists: add linux-aarch64 build (#48798) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/snp-dists/build.sh | 7 +++++-- recipes/snp-dists/meta.yaml | 8 +++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/recipes/snp-dists/build.sh b/recipes/snp-dists/build.sh index bdb3176711ee0..7956eaad13516 100644 --- a/recipes/snp-dists/build.sh +++ b/recipes/snp-dists/build.sh @@ -1,5 +1,8 @@ #!/bin/bash +set -xe + mkdir -p "${PREFIX}/bin" -LIBS="${LDFLAGS}" make CC="${CC}" PREFIX="${PREFIX}" -cp snp-dists ${PREFIX}/bin/ +LIBS="${LDFLAGS}" make -j ${CPU_COUNT} CC="${CC}" PREFIX="${PREFIX}" +cp -f snp-dists ${PREFIX}/bin/ +chmod 0755 ${PREFIX}/bin/snp-dists \ No newline at end of file diff --git a/recipes/snp-dists/meta.yaml b/recipes/snp-dists/meta.yaml index f3d796d7fc77a..caa28398f11b4 100644 --- a/recipes/snp-dists/meta.yaml +++ b/recipes/snp-dists/meta.yaml @@ -6,7 +6,9 @@ package: version: {{ version }} build: - number: 3 + number: 4 + run_exports: + - {{ pin_subpackage('snp-dists', max_pin="x.x") }} source: url: https://github.com/tseemann/snp-dists/archive/v{{ version }}.tar.gz @@ -35,3 +37,7 @@ about: license: GPL3 license_file: LICENSE summary: Convert a FASTA alignment to SNP distance matrix + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 4e548c31f817a86d458bdeac54d63c2836478ed6 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 28 Jun 2024 17:49:21 +0300 Subject: [PATCH 0234/1514] bmfilter: add linux-aarch64 build (#48800) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - .../bmfilter/0001-Cast-getline-stream-to-bool.patch | 13 +++++++++++++ recipes/bmfilter/bmtool-cplusplus-template.patch | 11 +++++++++++ recipes/bmfilter/bmtool-fix-ctime.patch | 10 ++++++++++ recipes/bmfilter/build.sh | 4 ++-- recipes/bmfilter/meta.yaml | 10 +++++++++- 6 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 recipes/bmfilter/0001-Cast-getline-stream-to-bool.patch create mode 100644 recipes/bmfilter/bmtool-cplusplus-template.patch create mode 100644 recipes/bmfilter/bmtool-fix-ctime.patch diff --git a/build-fail-blacklist b/build-fail-blacklist index c359923593766..01febe62bdb4b 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -218,7 +218,6 @@ recipes/ra/ra-assembler recipes/pureclip recipes/hulk recipes/bolt-lmm -recipes/bmfilter recipes/unitig-counter recipes/probcons recipes/spydrpick diff --git a/recipes/bmfilter/0001-Cast-getline-stream-to-bool.patch b/recipes/bmfilter/0001-Cast-getline-stream-to-bool.patch new file mode 100644 index 0000000000000..ee5a26b793321 --- /dev/null +++ b/recipes/bmfilter/0001-Cast-getline-stream-to-bool.patch @@ -0,0 +1,13 @@ +--- general/cfareader.hpp ++++ general/cfareader.hpp +@@ -40 +40 @@ +- m_good = std::getline( *m_fin, m_buffer ); ++ m_good = static_cast(std::getline( *m_fin, m_buffer )); +@@ -46 +46 @@ +- m_good = std::getline( *m_fin, m_buffer ); ++ m_good = static_cast(std::getline( *m_fin, m_buffer )); +--- general/of-debug.hpp ++++ general/of-debug.hpp +@@ -10 +10 @@ +-#define VT100(c) "\x1b["c ++#define VT100(c) "\x1b[" c diff --git a/recipes/bmfilter/bmtool-cplusplus-template.patch b/recipes/bmfilter/bmtool-cplusplus-template.patch new file mode 100644 index 0000000000000..b44d6af00181c --- /dev/null +++ b/recipes/bmfilter/bmtool-cplusplus-template.patch @@ -0,0 +1,11 @@ +--- a/general/cgetopt.hpp 2024-06-27 12:43:39.692000000 +0000 ++++ b/general/cgetopt.hpp 2024-06-27 12:42:10.116000000 +0000 +@@ -267,7 +267,7 @@ + int m_cnt; + }; + +-template<> ++//template<> + template + class COptArg > : public COption + { diff --git a/recipes/bmfilter/bmtool-fix-ctime.patch b/recipes/bmfilter/bmtool-fix-ctime.patch new file mode 100644 index 0000000000000..6abf282624c27 --- /dev/null +++ b/recipes/bmfilter/bmtool-fix-ctime.patch @@ -0,0 +1,10 @@ +--- general/cprogressindicator.hpp.orig 2024-06-28 08:59:12.756000000 +0000 ++++ general/cprogressindicator.hpp 2024-06-28 09:27:08.976000000 +0000 +@@ -6,6 +6,7 @@ + #ifndef _WIN32 + #include + #include ++#include + #else + #include + #endif diff --git a/recipes/bmfilter/build.sh b/recipes/bmfilter/build.sh index 859d0330617a5..662e5642cbc6c 100644 --- a/recipes/bmfilter/build.sh +++ b/recipes/bmfilter/build.sh @@ -3,8 +3,8 @@ set -x if [[ ${target_platform} =~ linux.* ]]; then - make -C general CC="${CC}" CXX="${CXX}" DEBUG="${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} -std=c++03" - make -C bmtagger CC="${CC}" CXX="${CXX}" DEBUG="${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} -std=c++03" + make -j ${CPU_COUNT} -C general CC="${CC}" CXX="${CXX}" DEBUG="${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} -std=c++03" + make -j ${CPU_COUNT} -C bmtagger CC="${CC}" CXX="${CXX}" DEBUG="${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} -std=c++03" cd bmtagger fi diff --git a/recipes/bmfilter/meta.yaml b/recipes/bmfilter/meta.yaml index 87f77d998c84f..a9c4f1c22e76d 100644 --- a/recipes/bmfilter/meta.yaml +++ b/recipes/bmfilter/meta.yaml @@ -5,11 +5,17 @@ package: source: - url: ftp://ftp.ncbi.nlm.nih.gov/pub/agarwala/bmtagger/bmtools.tar.gz # [linux] md5: 719474a0e3b54449cbe06f6e442994dd # [linux] + patches: # [linux] + - 0001-Cast-getline-stream-to-bool.patch # [linux] + - bmtool-cplusplus-template.patch # [linux] + - bmtool-fix-ctime.patch # [linux] - url: ftp://ftp.ncbi.nlm.nih.gov/pub/agarwala/bmtagger/mac-os/bmfilter # [osx] md5: ef79071be499ed23e9f3a19c9c323775 # [osx] build: - number: 4 + number: 5 + run_exports: + - {{ pin_subpackage('bmfilter', max_pin="x") }} requirements: build: @@ -27,6 +33,8 @@ about: summary: "bmfilter is part of BMTagger aka Best Match Tagger, for removing human reads from metagenomics datasets" extra: + additional-platforms: + - linux-aarch64 skip-lints: - should_not_be_noarch_source - should_be_noarch_generic From 7ba7dd24de1ec56a793b47c9a2534fd9874f5011 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 28 Jun 2024 17:49:37 +0300 Subject: [PATCH 0235/1514] cgpbigwig: add linux-aarch64 build (#48802) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/cgpbigwig/build.sh | 5 ++++- recipes/cgpbigwig/meta.yaml | 11 +++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/recipes/cgpbigwig/build.sh b/recipes/cgpbigwig/build.sh index 9edc78b675ced..b6dc41ab0af68 100644 --- a/recipes/cgpbigwig/build.sh +++ b/recipes/cgpbigwig/build.sh @@ -1,10 +1,13 @@ #!/bin/bash + +set -xe + mkdir -p $PREFIX/bin make -C c clean sed -i.bak "s#gcc#${CC}#" c/Makefile # This is needed for the testing in the makefile to work export LD_LIBRARY_PATH=${PREFIX}/lib -make -C c prefix=$PREFIX HTSLOC=$PREFIX/lib OPTINC="-I$PREFIX/include" LFLAGS="-L$PREFIX/lib" +make -j ${CPU_COUNT} -C c prefix=$PREFIX HTSLOC=$PREFIX/lib OPTINC="-I$PREFIX/include" LFLAGS="-L$PREFIX/lib" cp bin/* $PREFIX/bin diff --git a/recipes/cgpbigwig/meta.yaml b/recipes/cgpbigwig/meta.yaml index 635fbbd95bbf2..d2bfb03682261 100644 --- a/recipes/cgpbigwig/meta.yaml +++ b/recipes/cgpbigwig/meta.yaml @@ -5,8 +5,10 @@ package: version: {{ version }} build: - number: 8 + number: 9 skip: True # [osx] + run_exports: + - {{ pin_subpackage('cgpbigwig', max_pin="x") }} source: url: https://github.com/cancerit/cgpBigWig/archive/{{ version }}.tar.gz @@ -30,11 +32,16 @@ requirements: about: home: https://github.com/cancerit/cgpBigWig - license: GPLv3 + license: GPL-3.0-only license_file: LICENSE + license_family: GPL3 summary: BigWig manpulation tools using libBigWig and htslib test: commands: - bam2bw -h - detectExtremeDepth -h + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 275ae82060fcd8149c380355659f520e9becc826 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 28 Jun 2024 17:50:10 +0300 Subject: [PATCH 0236/1514] gangstr: add linux-aarch64 build (#48762) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gangstr: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Add zlib as a host dependency Should fix the following error: ``` Checking for module 'htslib'␛[0m 06:31:06 ␛[32mBIOCONDA INFO␛[0m (OUT) -- Package 'zlib', required by 'htslib', not found ``` Signed-off-by: Martin Tzvetanov Grigorov * gangstr: add a patch to use sse2neon.h for linux-aarch64 Signed-off-by: Martin Tzvetanov Grigorov * Do not patch CMakeLists.txt. htslib is provided as a dependency Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/gangstr/gangstr-aarch64.patch | 9339 +++++++++++++++++++++++++ recipes/gangstr/meta.yaml | 8 +- 2 files changed, 9346 insertions(+), 1 deletion(-) create mode 100644 recipes/gangstr/gangstr-aarch64.patch diff --git a/recipes/gangstr/gangstr-aarch64.patch b/recipes/gangstr/gangstr-aarch64.patch new file mode 100644 index 0000000000000..336544f8148e3 --- /dev/null +++ b/recipes/gangstr/gangstr-aarch64.patch @@ -0,0 +1,9339 @@ +diff --git c/src/sse2neon.h i/src/sse2neon.h +new file mode 100644 +index 0000000..8ecfc75 +--- /dev/null ++++ i/src/sse2neon.h +@@ -0,0 +1,9301 @@ ++#ifndef SSE2NEON_H ++#define SSE2NEON_H ++ ++/* ++ * sse2neon is freely redistributable under the MIT License. ++ * ++ * Copyright (c) 2015-2024 SSE2NEON Contributors. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a copy ++ * of this software and associated documentation files (the "Software"), to deal ++ * in the Software without restriction, including without limitation the rights ++ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ++ * copies of the Software, and to permit persons to whom the Software is ++ * furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be included in ++ * all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++ * SOFTWARE. ++ */ ++ ++// This header file provides a simple API translation layer ++// between SSE intrinsics to their corresponding Arm/Aarch64 NEON versions ++// ++// Contributors to this work are: ++// John W. Ratcliff ++// Brandon Rowlett ++// Ken Fast ++// Eric van Beurden ++// Alexander Potylitsin ++// Hasindu Gamaarachchi ++// Jim Huang ++// Mark Cheng ++// Malcolm James MacLeod ++// Devin Hussey (easyaspi314) ++// Sebastian Pop ++// Developer Ecosystem Engineering ++// Danila Kutenin ++// François Turban (JishinMaster) ++// Pei-Hsuan Hung ++// Yang-Hao Yuan ++// Syoyo Fujita ++// Brecht Van Lommel ++// Jonathan Hue ++// Cuda Chen ++// Aymen Qader ++// Anthony Roberts ++ ++/* Tunable configurations */ ++ ++/* Enable precise implementation of math operations ++ * This would slow down the computation a bit, but gives consistent result with ++ * x86 SSE. (e.g. would solve a hole or NaN pixel in the rendering result) ++ */ ++/* _mm_min|max_ps|ss|pd|sd */ ++#ifndef SSE2NEON_PRECISE_MINMAX ++#define SSE2NEON_PRECISE_MINMAX (0) ++#endif ++/* _mm_rcp_ps */ ++#ifndef SSE2NEON_PRECISE_DIV ++#define SSE2NEON_PRECISE_DIV (0) ++#endif ++/* _mm_sqrt_ps and _mm_rsqrt_ps */ ++#ifndef SSE2NEON_PRECISE_SQRT ++#define SSE2NEON_PRECISE_SQRT (0) ++#endif ++/* _mm_dp_pd */ ++#ifndef SSE2NEON_PRECISE_DP ++#define SSE2NEON_PRECISE_DP (0) ++#endif ++ ++/* Enable inclusion of windows.h on MSVC platforms ++ * This makes _mm_clflush functional on windows, as there is no builtin. ++ */ ++#ifndef SSE2NEON_INCLUDE_WINDOWS_H ++#define SSE2NEON_INCLUDE_WINDOWS_H (0) ++#endif ++ ++/* compiler specific definitions */ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma push_macro("FORCE_INLINE") ++#pragma push_macro("ALIGN_STRUCT") ++#define FORCE_INLINE static inline __attribute__((always_inline)) ++#define ALIGN_STRUCT(x) __attribute__((aligned(x))) ++#define _sse2neon_likely(x) __builtin_expect(!!(x), 1) ++#define _sse2neon_unlikely(x) __builtin_expect(!!(x), 0) ++#elif defined(_MSC_VER) ++#if _MSVC_TRADITIONAL ++#error Using the traditional MSVC preprocessor is not supported! Use /Zc:preprocessor instead. ++#endif ++#ifndef FORCE_INLINE ++#define FORCE_INLINE static inline ++#endif ++#ifndef ALIGN_STRUCT ++#define ALIGN_STRUCT(x) __declspec(align(x)) ++#endif ++#define _sse2neon_likely(x) (x) ++#define _sse2neon_unlikely(x) (x) ++#else ++#pragma message("Macro name collisions may happen with unsupported compilers.") ++#endif ++ ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma push_macro("FORCE_INLINE_OPTNONE") ++#define FORCE_INLINE_OPTNONE static inline __attribute__((optimize("O0"))) ++#elif defined(__clang__) ++#pragma push_macro("FORCE_INLINE_OPTNONE") ++#define FORCE_INLINE_OPTNONE static inline __attribute__((optnone)) ++#else ++#define FORCE_INLINE_OPTNONE FORCE_INLINE ++#endif ++ ++#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ < 10 ++#warning "GCC versions earlier than 10 are not supported." ++#endif ++ ++/* C language does not allow initializing a variable with a function call. */ ++#ifdef __cplusplus ++#define _sse2neon_const static const ++#else ++#define _sse2neon_const const ++#endif ++ ++#include ++#include ++ ++#if defined(_WIN32) ++/* Definitions for _mm_{malloc,free} are provided by ++ * from both MinGW-w64 and MSVC. ++ */ ++#define SSE2NEON_ALLOC_DEFINED ++#endif ++ ++/* If using MSVC */ ++#ifdef _MSC_VER ++#include ++#if SSE2NEON_INCLUDE_WINDOWS_H ++#include ++#include ++#endif ++ ++#if !defined(__cplusplus) ++#error SSE2NEON only supports C++ compilation with this compiler ++#endif ++ ++#ifdef SSE2NEON_ALLOC_DEFINED ++#include ++#endif ++ ++#if (defined(_M_AMD64) || defined(__x86_64__)) || \ ++ (defined(_M_ARM64) || defined(__arm64__)) ++#define SSE2NEON_HAS_BITSCAN64 ++#endif ++#endif ++ ++#if defined(__GNUC__) || defined(__clang__) ++#define _sse2neon_define0(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define1(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define2(type, a, b, body) \ ++ __extension__({ \ ++ type _a = (a), _b = (b); \ ++ body \ ++ }) ++#define _sse2neon_return(ret) (ret) ++#else ++#define _sse2neon_define0(type, a, body) [=](type _a) { body }(a) ++#define _sse2neon_define1(type, a, body) [](type _a) { body }(a) ++#define _sse2neon_define2(type, a, b, body) \ ++ [](type _a, type _b) { body }((a), (b)) ++#define _sse2neon_return(ret) return ret ++#endif ++ ++#define _sse2neon_init(...) \ ++ { \ ++ __VA_ARGS__ \ ++ } ++ ++/* Compiler barrier */ ++#if defined(_MSC_VER) ++#define SSE2NEON_BARRIER() _ReadWriteBarrier() ++#else ++#define SSE2NEON_BARRIER() \ ++ do { \ ++ __asm__ __volatile__("" ::: "memory"); \ ++ (void) 0; \ ++ } while (0) ++#endif ++ ++/* Memory barriers ++ * __atomic_thread_fence does not include a compiler barrier; instead, ++ * the barrier is part of __atomic_load/__atomic_store's "volatile-like" ++ * semantics. ++ */ ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) ++#include ++#endif ++ ++FORCE_INLINE void _sse2neon_smp_mb(void) ++{ ++ SSE2NEON_BARRIER(); ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \ ++ !defined(__STDC_NO_ATOMICS__) ++ atomic_thread_fence(memory_order_seq_cst); ++#elif defined(__GNUC__) || defined(__clang__) ++ __atomic_thread_fence(__ATOMIC_SEQ_CST); ++#else /* MSVC */ ++ __dmb(_ARM64_BARRIER_ISH); ++#endif ++} ++ ++/* Architecture-specific build options */ ++/* FIXME: #pragma GCC push_options is only available on GCC */ ++#if defined(__GNUC__) ++#if defined(__arm__) && __ARM_ARCH == 7 ++/* According to ARM C Language Extensions Architecture specification, ++ * __ARM_NEON is defined to a value indicating the Advanced SIMD (NEON) ++ * architecture supported. ++ */ ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error "You must enable NEON instructions (e.g. -mfpu=neon) to use SSE2NEON." ++#endif ++#if !defined(__clang__) ++#pragma GCC push_options ++#pragma GCC target("fpu=neon") ++#endif ++#elif defined(__aarch64__) || defined(_M_ARM64) ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#pragma GCC target("+simd") ++#endif ++#elif __ARM_ARCH == 8 ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error \ ++ "You must enable NEON instructions (e.g. -mfpu=neon-fp-armv8) to use SSE2NEON." ++#endif ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#endif ++#else ++#error \ ++ "Unsupported target. Must be either ARMv7-A+NEON or ARMv8-A \ ++(you could try setting target explicitly with -march or -mcpu)" ++#endif ++#endif ++ ++#include ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) && (__ARM_ARCH == 8) ++#if defined __has_include && __has_include() ++#include ++#endif ++#endif ++ ++/* Apple Silicon cache lines are double of what is commonly used by Intel, AMD ++ * and other Arm microarchitectures use. ++ * From sysctl -a on Apple M1: ++ * hw.cachelinesize: 128 ++ */ ++#if defined(__APPLE__) && (defined(__aarch64__) || defined(__arm64__)) ++#define SSE2NEON_CACHELINE_SIZE 128 ++#else ++#define SSE2NEON_CACHELINE_SIZE 64 ++#endif ++ ++/* Rounding functions require either Aarch64 instructions or libm fallback */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#include ++#endif ++ ++/* On ARMv7, some registers, such as PMUSERENR and PMCCNTR, are read-only ++ * or even not accessible in user mode. ++ * To write or access to these registers in user mode, ++ * we have to perform syscall instead. ++ */ ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) ++#include ++#endif ++ ++/* "__has_builtin" can be used to query support for built-in functions ++ * provided by gcc/clang and other compilers that support it. ++ */ ++#ifndef __has_builtin /* GCC prior to 10 or non-clang compilers */ ++/* Compatibility with gcc <= 9 */ ++#if defined(__GNUC__) && (__GNUC__ <= 9) ++#define __has_builtin(x) HAS##x ++#define HAS__builtin_popcount 1 ++#define HAS__builtin_popcountll 1 ++ ++// __builtin_shuffle introduced in GCC 4.7.0 ++#if (__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) ++#define HAS__builtin_shuffle 1 ++#else ++#define HAS__builtin_shuffle 0 ++#endif ++ ++#define HAS__builtin_shufflevector 0 ++#define HAS__builtin_nontemporal_store 0 ++#else ++#define __has_builtin(x) 0 ++#endif ++#endif ++ ++/** ++ * MACRO for shuffle parameter for _mm_shuffle_ps(). ++ * Argument fp3 is a digit[0123] that represents the fp from argument "b" ++ * of mm_shuffle_ps that will be placed in fp3 of result. fp2 is the same ++ * for fp2 in result. fp1 is a digit[0123] that represents the fp from ++ * argument "a" of mm_shuffle_ps that will be places in fp1 of result. ++ * fp0 is the same for fp0 of result. ++ */ ++#define _MM_SHUFFLE(fp3, fp2, fp1, fp0) \ ++ (((fp3) << 6) | ((fp2) << 4) | ((fp1) << 2) | ((fp0))) ++ ++#if __has_builtin(__builtin_shufflevector) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __builtin_shufflevector(a, b, __VA_ARGS__) ++#elif __has_builtin(__builtin_shuffle) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __extension__({ \ ++ type tmp = {__VA_ARGS__}; \ ++ __builtin_shuffle(a, b, tmp); \ ++ }) ++#endif ++ ++#ifdef _sse2neon_shuffle ++#define vshuffle_s16(a, b, ...) _sse2neon_shuffle(int16x4_t, a, b, __VA_ARGS__) ++#define vshuffleq_s16(a, b, ...) _sse2neon_shuffle(int16x8_t, a, b, __VA_ARGS__) ++#define vshuffle_s32(a, b, ...) _sse2neon_shuffle(int32x2_t, a, b, __VA_ARGS__) ++#define vshuffleq_s32(a, b, ...) _sse2neon_shuffle(int32x4_t, a, b, __VA_ARGS__) ++#define vshuffle_s64(a, b, ...) _sse2neon_shuffle(int64x1_t, a, b, __VA_ARGS__) ++#define vshuffleq_s64(a, b, ...) _sse2neon_shuffle(int64x2_t, a, b, __VA_ARGS__) ++#endif ++ ++/* Rounding mode macros. */ ++#define _MM_FROUND_TO_NEAREST_INT 0x00 ++#define _MM_FROUND_TO_NEG_INF 0x01 ++#define _MM_FROUND_TO_POS_INF 0x02 ++#define _MM_FROUND_TO_ZERO 0x03 ++#define _MM_FROUND_CUR_DIRECTION 0x04 ++#define _MM_FROUND_NO_EXC 0x08 ++#define _MM_FROUND_RAISE_EXC 0x00 ++#define _MM_FROUND_NINT (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_FLOOR (_MM_FROUND_TO_NEG_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_CEIL (_MM_FROUND_TO_POS_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_TRUNC (_MM_FROUND_TO_ZERO | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_RINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_NEARBYINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_NO_EXC) ++#define _MM_ROUND_NEAREST 0x0000 ++#define _MM_ROUND_DOWN 0x2000 ++#define _MM_ROUND_UP 0x4000 ++#define _MM_ROUND_TOWARD_ZERO 0x6000 ++/* Flush zero mode macros. */ ++#define _MM_FLUSH_ZERO_MASK 0x8000 ++#define _MM_FLUSH_ZERO_ON 0x8000 ++#define _MM_FLUSH_ZERO_OFF 0x0000 ++/* Denormals are zeros mode macros. */ ++#define _MM_DENORMALS_ZERO_MASK 0x0040 ++#define _MM_DENORMALS_ZERO_ON 0x0040 ++#define _MM_DENORMALS_ZERO_OFF 0x0000 ++ ++/* indicate immediate constant argument in a given range */ ++#define __constrange(a, b) const ++ ++/* A few intrinsics accept traditional data types like ints or floats, but ++ * most operate on data types that are specific to SSE. ++ * If a vector type ends in d, it contains doubles, and if it does not have ++ * a suffix, it contains floats. An integer vector type can contain any type ++ * of integer, from chars to shorts to unsigned long longs. ++ */ ++typedef int64x1_t __m64; ++typedef float32x4_t __m128; /* 128-bit vector containing 4 floats */ ++// On ARM 32-bit architecture, the float64x2_t is not supported. ++// The data type __m128d should be represented in a different way for related ++// intrinsic conversion. ++#if defined(__aarch64__) || defined(_M_ARM64) ++typedef float64x2_t __m128d; /* 128-bit vector containing 2 doubles */ ++#else ++typedef float32x4_t __m128d; ++#endif ++typedef int64x2_t __m128i; /* 128-bit vector containing integers */ ++ ++// Some intrinsics operate on unaligned data types. ++typedef int16_t ALIGN_STRUCT(1) unaligned_int16_t; ++typedef int32_t ALIGN_STRUCT(1) unaligned_int32_t; ++typedef int64_t ALIGN_STRUCT(1) unaligned_int64_t; ++ ++// __int64 is defined in the Intrinsics Guide which maps to different datatype ++// in different data model ++#if !(defined(_WIN32) || defined(_WIN64) || defined(__int64)) ++#if (defined(__x86_64__) || defined(__i386__)) ++#define __int64 long long ++#else ++#define __int64 int64_t ++#endif ++#endif ++ ++/* type-safe casting between types */ ++ ++#define vreinterpretq_m128_f16(x) vreinterpretq_f32_f16(x) ++#define vreinterpretq_m128_f32(x) (x) ++#define vreinterpretq_m128_f64(x) vreinterpretq_f32_f64(x) ++ ++#define vreinterpretq_m128_u8(x) vreinterpretq_f32_u8(x) ++#define vreinterpretq_m128_u16(x) vreinterpretq_f32_u16(x) ++#define vreinterpretq_m128_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128_s8(x) vreinterpretq_f32_s8(x) ++#define vreinterpretq_m128_s16(x) vreinterpretq_f32_s16(x) ++#define vreinterpretq_m128_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_f16_m128(x) vreinterpretq_f16_f32(x) ++#define vreinterpretq_f32_m128(x) (x) ++#define vreinterpretq_f64_m128(x) vreinterpretq_f64_f32(x) ++ ++#define vreinterpretq_u8_m128(x) vreinterpretq_u8_f32(x) ++#define vreinterpretq_u16_m128(x) vreinterpretq_u16_f32(x) ++#define vreinterpretq_u32_m128(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_s8_m128(x) vreinterpretq_s8_f32(x) ++#define vreinterpretq_s16_m128(x) vreinterpretq_s16_f32(x) ++#define vreinterpretq_s32_m128(x) vreinterpretq_s32_f32(x) ++#define vreinterpretq_s64_m128(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_m128i_s8(x) vreinterpretq_s64_s8(x) ++#define vreinterpretq_m128i_s16(x) vreinterpretq_s64_s16(x) ++#define vreinterpretq_m128i_s32(x) vreinterpretq_s64_s32(x) ++#define vreinterpretq_m128i_s64(x) (x) ++ ++#define vreinterpretq_m128i_u8(x) vreinterpretq_s64_u8(x) ++#define vreinterpretq_m128i_u16(x) vreinterpretq_s64_u16(x) ++#define vreinterpretq_m128i_u32(x) vreinterpretq_s64_u32(x) ++#define vreinterpretq_m128i_u64(x) vreinterpretq_s64_u64(x) ++ ++#define vreinterpretq_f32_m128i(x) vreinterpretq_f32_s64(x) ++#define vreinterpretq_f64_m128i(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_s8_m128i(x) vreinterpretq_s8_s64(x) ++#define vreinterpretq_s16_m128i(x) vreinterpretq_s16_s64(x) ++#define vreinterpretq_s32_m128i(x) vreinterpretq_s32_s64(x) ++#define vreinterpretq_s64_m128i(x) (x) ++ ++#define vreinterpretq_u8_m128i(x) vreinterpretq_u8_s64(x) ++#define vreinterpretq_u16_m128i(x) vreinterpretq_u16_s64(x) ++#define vreinterpretq_u32_m128i(x) vreinterpretq_u32_s64(x) ++#define vreinterpretq_u64_m128i(x) vreinterpretq_u64_s64(x) ++ ++#define vreinterpret_m64_s8(x) vreinterpret_s64_s8(x) ++#define vreinterpret_m64_s16(x) vreinterpret_s64_s16(x) ++#define vreinterpret_m64_s32(x) vreinterpret_s64_s32(x) ++#define vreinterpret_m64_s64(x) (x) ++ ++#define vreinterpret_m64_u8(x) vreinterpret_s64_u8(x) ++#define vreinterpret_m64_u16(x) vreinterpret_s64_u16(x) ++#define vreinterpret_m64_u32(x) vreinterpret_s64_u32(x) ++#define vreinterpret_m64_u64(x) vreinterpret_s64_u64(x) ++ ++#define vreinterpret_m64_f16(x) vreinterpret_s64_f16(x) ++#define vreinterpret_m64_f32(x) vreinterpret_s64_f32(x) ++#define vreinterpret_m64_f64(x) vreinterpret_s64_f64(x) ++ ++#define vreinterpret_u8_m64(x) vreinterpret_u8_s64(x) ++#define vreinterpret_u16_m64(x) vreinterpret_u16_s64(x) ++#define vreinterpret_u32_m64(x) vreinterpret_u32_s64(x) ++#define vreinterpret_u64_m64(x) vreinterpret_u64_s64(x) ++ ++#define vreinterpret_s8_m64(x) vreinterpret_s8_s64(x) ++#define vreinterpret_s16_m64(x) vreinterpret_s16_s64(x) ++#define vreinterpret_s32_m64(x) vreinterpret_s32_s64(x) ++#define vreinterpret_s64_m64(x) (x) ++ ++#define vreinterpret_f32_m64(x) vreinterpret_f32_s64(x) ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f64_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f64_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) vreinterpretq_f64_f32(x) ++#define vreinterpretq_m128d_f64(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f64(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f64(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f64(x) ++ ++#define vreinterpretq_f64_m128d(x) (x) ++#define vreinterpretq_f32_m128d(x) vreinterpretq_f32_f64(x) ++#else ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_m128d_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_f32_m128d(x) (x) ++#endif ++ ++// A struct is defined in this header file called 'SIMDVec' which can be used ++// by applications which attempt to access the contents of an __m128 struct ++// directly. It is important to note that accessing the __m128 struct directly ++// is bad coding practice by Microsoft: @see: ++// https://learn.microsoft.com/en-us/cpp/cpp/m128 ++// ++// However, some legacy source code may try to access the contents of an __m128 ++// struct directly so the developer can use the SIMDVec as an alias for it. Any ++// casting must be done manually by the developer, as you cannot cast or ++// otherwise alias the base NEON data type for intrinsic operations. ++// ++// union intended to allow direct access to an __m128 variable using the names ++// that the MSVC compiler provides. This union should really only be used when ++// trying to access the members of the vector as integer values. GCC/clang ++// allow native access to the float members through a simple array access ++// operator (in C since 4.6, in C++ since 4.8). ++// ++// Ideally direct accesses to SIMD vectors should not be used since it can cause ++// a performance hit. If it really is needed however, the original __m128 ++// variable can be aliased with a pointer to this union and used to access ++// individual components. The use of this union should be hidden behind a macro ++// that is used throughout the codebase to access the members instead of always ++// declaring this type of variable. ++typedef union ALIGN_STRUCT(16) SIMDVec { ++ float m128_f32[4]; // as floats - DON'T USE. Added for convenience. ++ int8_t m128_i8[16]; // as signed 8-bit integers. ++ int16_t m128_i16[8]; // as signed 16-bit integers. ++ int32_t m128_i32[4]; // as signed 32-bit integers. ++ int64_t m128_i64[2]; // as signed 64-bit integers. ++ uint8_t m128_u8[16]; // as unsigned 8-bit integers. ++ uint16_t m128_u16[8]; // as unsigned 16-bit integers. ++ uint32_t m128_u32[4]; // as unsigned 32-bit integers. ++ uint64_t m128_u64[2]; // as unsigned 64-bit integers. ++} SIMDVec; ++ ++// casting using SIMDVec ++#define vreinterpretq_nth_u64_m128i(x, n) (((SIMDVec *) &x)->m128_u64[n]) ++#define vreinterpretq_nth_u32_m128i(x, n) (((SIMDVec *) &x)->m128_u32[n]) ++#define vreinterpretq_nth_u8_m128i(x, n) (((SIMDVec *) &x)->m128_u8[n]) ++ ++/* SSE macros */ ++#define _MM_GET_FLUSH_ZERO_MODE _sse2neon_mm_get_flush_zero_mode ++#define _MM_SET_FLUSH_ZERO_MODE _sse2neon_mm_set_flush_zero_mode ++#define _MM_GET_DENORMALS_ZERO_MODE _sse2neon_mm_get_denormals_zero_mode ++#define _MM_SET_DENORMALS_ZERO_MODE _sse2neon_mm_set_denormals_zero_mode ++ ++// Function declaration ++// SSE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void); ++FORCE_INLINE __m128 _mm_move_ss(__m128, __m128); ++FORCE_INLINE __m128 _mm_or_ps(__m128, __m128); ++FORCE_INLINE __m128 _mm_set_ps1(float); ++FORCE_INLINE __m128 _mm_setzero_ps(void); ++// SSE2 ++FORCE_INLINE __m128i _mm_and_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_castps_si128(__m128); ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128); ++FORCE_INLINE __m128d _mm_move_sd(__m128d, __m128d); ++FORCE_INLINE __m128i _mm_or_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_set_epi32(int, int, int, int); ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t, int64_t); ++FORCE_INLINE __m128d _mm_set_pd(double, double); ++FORCE_INLINE __m128i _mm_set1_epi32(int); ++FORCE_INLINE __m128i _mm_setzero_si128(void); ++// SSE4.1 ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d); ++FORCE_INLINE __m128 _mm_ceil_ps(__m128); ++FORCE_INLINE __m128d _mm_floor_pd(__m128d); ++FORCE_INLINE __m128 _mm_floor_ps(__m128); ++FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d, int); ++FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128, int); ++// SSE4.2 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t, uint8_t); ++ ++/* Backwards compatibility for compilers with lack of specific type support */ ++ ++// Older gcc does not define vld1q_u8_x4 type ++#if defined(__GNUC__) && !defined(__clang__) && \ ++ ((__GNUC__ <= 13 && defined(__arm__)) || \ ++ (__GNUC__ == 10 && __GNUC_MINOR__ < 3 && defined(__aarch64__)) || \ ++ (__GNUC__ <= 9 && defined(__aarch64__))) ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ uint8x16x4_t ret; ++ ret.val[0] = vld1q_u8(p + 0); ++ ret.val[1] = vld1q_u8(p + 16); ++ ret.val[2] = vld1q_u8(p + 32); ++ ret.val[3] = vld1q_u8(p + 48); ++ return ret; ++} ++#else ++// Wraps vld1q_u8_x4 ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ return vld1q_u8_x4(p); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddv u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ const uint64x1_t v1 = vpaddl_u32(vpaddl_u16(vpaddl_u8(v8))); ++ return vget_lane_u8(vreinterpret_u8_u64(v1), 0); ++} ++#else ++// Wraps vaddv_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ return vaddv_u8(v8); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ uint8x8_t tmp = vpadd_u8(vget_low_u8(a), vget_high_u8(a)); ++ uint8_t res = 0; ++ for (int i = 0; i < 8; ++i) ++ res += tmp[i]; ++ return res; ++} ++#else ++// Wraps vaddvq_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ return vaddvq_u8(a); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u16 variant */ ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ uint32x4_t m = vpaddlq_u16(a); ++ uint64x2_t n = vpaddlq_u32(m); ++ uint64x1_t o = vget_low_u64(n) + vget_high_u64(n); ++ ++ return vget_lane_u32((uint32x2_t) o, 0); ++} ++#else ++// Wraps vaddvq_u16 ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ return vaddvq_u16(a); ++} ++#endif ++ ++/* Function Naming Conventions ++ * The naming convention of SSE intrinsics is straightforward. A generic SSE ++ * intrinsic function is given as follows: ++ * _mm__ ++ * ++ * The parts of this format are given as follows: ++ * 1. describes the operation performed by the intrinsic ++ * 2. identifies the data type of the function's primary arguments ++ * ++ * This last part, , is a little complicated. It identifies the ++ * content of the input values, and can be set to any of the following values: ++ * + ps - vectors contain floats (ps stands for packed single-precision) ++ * + pd - vectors contain doubles (pd stands for packed double-precision) ++ * + epi8/epi16/epi32/epi64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * signed integers ++ * + epu8/epu16/epu32/epu64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * unsigned integers ++ * + si128 - unspecified 128-bit vector or 256-bit vector ++ * + m128/m128i/m128d - identifies input vector types when they are different ++ * than the type of the returned vector ++ * ++ * For example, _mm_setzero_ps. The _mm implies that the function returns ++ * a 128-bit vector. The _ps at the end implies that the argument vectors ++ * contain floats. ++ * ++ * A complete example: Byte Shuffle - pshufb (_mm_shuffle_epi8) ++ * // Set packed 16-bit integers. 128 bits, 8 short, per 16 bits ++ * __m128i v_in = _mm_setr_epi16(1, 2, 3, 4, 5, 6, 7, 8); ++ * // Set packed 8-bit integers ++ * // 128 bits, 16 chars, per 8 bits ++ * __m128i v_perm = _mm_setr_epi8(1, 0, 2, 3, 8, 9, 10, 11, ++ * 4, 5, 12, 13, 6, 7, 14, 15); ++ * // Shuffle packed 8-bit integers ++ * __m128i v_out = _mm_shuffle_epi8(v_in, v_perm); // pshufb ++ */ ++ ++/* Constants for use with _mm_prefetch. */ ++enum _mm_hint { ++ _MM_HINT_NTA = 0, /* load data to L1 and L2 cache, mark it as NTA */ ++ _MM_HINT_T0 = 1, /* load data to L1 and L2 cache */ ++ _MM_HINT_T1 = 2, /* load data to L2 cache only */ ++ _MM_HINT_T2 = 3, /* load data to L2 cache only, mark it as NTA */ ++}; ++ ++// The bit field mapping to the FPCR(floating-point control register) ++typedef struct { ++ uint16_t res0; ++ uint8_t res1 : 6; ++ uint8_t bit22 : 1; ++ uint8_t bit23 : 1; ++ uint8_t bit24 : 1; ++ uint8_t res2 : 7; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32_t res3; ++#endif ++} fpcr_bitfield; ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of b and places it into the high end of the result. ++FORCE_INLINE __m128 _mm_shuffle_ps_1032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in high ++// end of result takes the higher two 32 bit values from b and swaps them and ++// places in low end of result. ++FORCE_INLINE __m128 _mm_shuffle_ps_2301(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b23 = vrev64_f32(vget_high_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b23)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0321(__m128 a, __m128 b) ++{ ++ float32x2_t a21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a21, b03)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2103(__m128 a, __m128 b) ++{ ++ float32x2_t a03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a03, b21)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0101(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b01)); ++} ++ ++// keeps the low 64 bits of b in the low and puts the high 64 bits of a in the ++// high ++FORCE_INLINE __m128 _mm_shuffle_ps_3210(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0011(__m128 a, __m128 b) ++{ ++ float32x2_t a11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a11, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0022(__m128 a, __m128 b) ++{ ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a22, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2200(__m128 a, __m128 b) ++{ ++ float32x2_t a00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a00, b22)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_3202(__m128 a, __m128 b) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t a02 = vset_lane_f32(a0, a22, 1); /* TODO: use vzip ?*/ ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a02, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1133(__m128 a, __m128 b) ++{ ++ float32x2_t a33 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a33, b11)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b20)); ++} ++ ++// For MSVC, we check only if it is ARM64, as every single ARM64 processor ++// supported by WoA has crypto extensions. If this changes in the future, ++// this can be verified via the runtime-only method of: ++// IsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE) ++#if (defined(_M_ARM64) && !defined(__clang__)) || \ ++ (defined(__ARM_FEATURE_CRYPTO) && \ ++ (defined(__aarch64__) || __has_builtin(__builtin_arm_crypto_vmullp64))) ++// Wraps vmull_p64 ++FORCE_INLINE uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly64_t a = vget_lane_p64(vreinterpret_p64_u64(_a), 0); ++ poly64_t b = vget_lane_p64(vreinterpret_p64_u64(_b), 0); ++#if defined(_MSC_VER) ++ __n64 a1 = {a}, b1 = {b}; ++ return vreinterpretq_u64_p128(vmull_p64(a1, b1)); ++#else ++ return vreinterpretq_u64_p128(vmull_p64(a, b)); ++#endif ++} ++#else // ARMv7 polyfill ++// ARMv7/some A64 lacks vmull_p64, but it has vmull_p8. ++// ++// vmull_p8 calculates 8 8-bit->16-bit polynomial multiplies, but we need a ++// 64-bit->128-bit polynomial multiply. ++// ++// It needs some work and is somewhat slow, but it is still faster than all ++// known scalar methods. ++// ++// Algorithm adapted to C from ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/, which is adapted ++// from "Fast Software Polynomial Multiplication on ARM Processors Using the ++// NEON Engine" by Danilo Camara, Conrado Gouvea, Julio Lopez and Ricardo Dahab ++// (https://hal.inria.fr/hal-01506572) ++static uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly8x8_t a = vreinterpret_p8_u64(_a); ++ poly8x8_t b = vreinterpret_p8_u64(_b); ++ ++ // Masks ++ uint8x16_t k48_32 = vcombine_u8(vcreate_u8(0x0000ffffffffffff), ++ vcreate_u8(0x00000000ffffffff)); ++ uint8x16_t k16_00 = vcombine_u8(vcreate_u8(0x000000000000ffff), ++ vcreate_u8(0x0000000000000000)); ++ ++ // Do the multiplies, rotating with vext to get all combinations ++ uint8x16_t d = vreinterpretq_u8_p16(vmull_p8(a, b)); // D = A0 * B0 ++ uint8x16_t e = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 1))); // E = A0 * B1 ++ uint8x16_t f = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 1), b)); // F = A1 * B0 ++ uint8x16_t g = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 2))); // G = A0 * B2 ++ uint8x16_t h = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 2), b)); // H = A2 * B0 ++ uint8x16_t i = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 3))); // I = A0 * B3 ++ uint8x16_t j = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 3), b)); // J = A3 * B0 ++ uint8x16_t k = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 4))); // L = A0 * B4 ++ ++ // Add cross products ++ uint8x16_t l = veorq_u8(e, f); // L = E + F ++ uint8x16_t m = veorq_u8(g, h); // M = G + H ++ uint8x16_t n = veorq_u8(i, j); // N = I + J ++ ++ // Interleave. Using vzip1 and vzip2 prevents Clang from emitting TBL ++ // instructions. ++#if defined(__aarch64__) ++ uint8x16_t lm_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t lm_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t nk_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++ uint8x16_t nk_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++#else ++ uint8x16_t lm_p0 = vcombine_u8(vget_low_u8(l), vget_low_u8(m)); ++ uint8x16_t lm_p1 = vcombine_u8(vget_high_u8(l), vget_high_u8(m)); ++ uint8x16_t nk_p0 = vcombine_u8(vget_low_u8(n), vget_low_u8(k)); ++ uint8x16_t nk_p1 = vcombine_u8(vget_high_u8(n), vget_high_u8(k)); ++#endif ++ // t0 = (L) (P0 + P1) << 8 ++ // t1 = (M) (P2 + P3) << 16 ++ uint8x16_t t0t1_tmp = veorq_u8(lm_p0, lm_p1); ++ uint8x16_t t0t1_h = vandq_u8(lm_p1, k48_32); ++ uint8x16_t t0t1_l = veorq_u8(t0t1_tmp, t0t1_h); ++ ++ // t2 = (N) (P4 + P5) << 24 ++ // t3 = (K) (P6 + P7) << 32 ++ uint8x16_t t2t3_tmp = veorq_u8(nk_p0, nk_p1); ++ uint8x16_t t2t3_h = vandq_u8(nk_p1, k16_00); ++ uint8x16_t t2t3_l = veorq_u8(t2t3_tmp, t2t3_h); ++ ++ // De-interleave ++#if defined(__aarch64__) ++ uint8x16_t t0 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t1 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t2 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++ uint8x16_t t3 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++#else ++ uint8x16_t t1 = vcombine_u8(vget_high_u8(t0t1_l), vget_high_u8(t0t1_h)); ++ uint8x16_t t0 = vcombine_u8(vget_low_u8(t0t1_l), vget_low_u8(t0t1_h)); ++ uint8x16_t t3 = vcombine_u8(vget_high_u8(t2t3_l), vget_high_u8(t2t3_h)); ++ uint8x16_t t2 = vcombine_u8(vget_low_u8(t2t3_l), vget_low_u8(t2t3_h)); ++#endif ++ // Shift the cross products ++ uint8x16_t t0_shift = vextq_u8(t0, t0, 15); // t0 << 8 ++ uint8x16_t t1_shift = vextq_u8(t1, t1, 14); // t1 << 16 ++ uint8x16_t t2_shift = vextq_u8(t2, t2, 13); // t2 << 24 ++ uint8x16_t t3_shift = vextq_u8(t3, t3, 12); // t3 << 32 ++ ++ // Accumulate the products ++ uint8x16_t cross1 = veorq_u8(t0_shift, t1_shift); ++ uint8x16_t cross2 = veorq_u8(t2_shift, t3_shift); ++ uint8x16_t mix = veorq_u8(d, cross1); ++ uint8x16_t r = veorq_u8(mix, cross2); ++ return vreinterpretq_u64_u8(r); ++} ++#endif // ARMv7 polyfill ++ ++// C equivalent: ++// __m128i _mm_shuffle_epi32_default(__m128i a, ++// __constrange(0, 255) int imm) { ++// __m128i ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = a[(imm >> 4) & 0x03]; ret[3] = a[(imm >> 6) & 0x03]; ++// return ret; ++// } ++#define _mm_shuffle_epi32_default(a, imm) \ ++ vreinterpretq_m128i_s32(vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), \ ++ ((imm) >> 2) & 0x3), \ ++ vmovq_n_s32(vgetq_lane_s32( \ ++ vreinterpretq_s32_m128i(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of a and places it into the high end of the result. ++FORCE_INLINE __m128i _mm_shuffle_epi_1032(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in low end ++// of result takes the higher two 32 bit values from a and swaps them and places ++// in high end of result. ++FORCE_INLINE __m128i _mm_shuffle_epi_2301(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a23 = vrev64_s32(vget_high_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a23)); ++} ++ ++// rotates the least significant 32 bits into the most significant 32 bits, and ++// shifts the rest down ++FORCE_INLINE __m128i _mm_shuffle_epi_0321(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 1)); ++} ++ ++// rotates the most significant 32 bits into the least significant 32 bits, and ++// shifts the rest up ++FORCE_INLINE __m128i _mm_shuffle_epi_2103(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 3)); ++} ++ ++// gets the lower 64 bits of a, and places it in the upper 64 bits ++// gets the lower 64 bits of a and places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1010(__m128i a) ++{ ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a10, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements, and places it in the ++// lower 64 bits gets the lower 64 bits of a, and places it in the upper 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1001(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements and places it in the ++// upper 64 bits gets the lower 64 bits of a, swaps the 0 and 1 elements, and ++// places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_0101(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_2211(__m128i a) ++{ ++ int32x2_t a11 = vdup_lane_s32(vget_low_s32(vreinterpretq_s32_m128i(a)), 1); ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ return vreinterpretq_m128i_s32(vcombine_s32(a11, a22)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_0122(__m128i a) ++{ ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a22, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_3332(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a33 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 1); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a33)); ++} ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32(vdupq_laneq_s32(vreinterpretq_s32_m128i(a), (imm))) ++#else ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vdupq_n_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)))) ++#endif ++ ++// NEON does not support a general purpose permute intrinsic. ++// Shuffle single-precision (32-bit) floating-point elements in a using the ++// control in imm8, and store the results in dst. ++// ++// C equivalent: ++// __m128 _mm_shuffle_ps_default(__m128 a, __m128 b, ++// __constrange(0, 255) int imm) { ++// __m128 ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = b[(imm >> 4) & 0x03]; ret[3] = b[(imm >> 6) & 0x03]; ++// return ret; ++// } ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_ps ++#define _mm_shuffle_ps_default(a, b, imm) \ ++ vreinterpretq_m128_f32(vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), ((imm) >> 2) & 0x3), \ ++ vmovq_n_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Shuffle 16-bit integers in the low 64 bits of a using the control in imm8. ++// Store the results in the low 64 bits of dst, with the high 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflelo_epi16 ++#define _mm_shufflelo_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t lowBits = vget_low_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, (imm) & (0x3)), ret, 0); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++// Shuffle 16-bit integers in the high 64 bits of a using the control in imm8. ++// Store the results in the high 64 bits of dst, with the low 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflehi_epi16 ++#define _mm_shufflehi_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t highBits = vget_high_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, (imm) & (0x3)), ret, 4); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 2) & 0x3), ret, \ ++ 5); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 4) & 0x3), ret, \ ++ 6); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 6) & 0x3), ret, \ ++ 7); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++/* MMX */ ++ ++//_mm_empty is a no-op on arm ++FORCE_INLINE void _mm_empty(void) {} ++ ++/* SSE */ ++ ++// Add packed single-precision (32-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ps ++FORCE_INLINE __m128 _mm_add_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Add the lower single-precision (32-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ss ++FORCE_INLINE __m128 _mm_add_ss(__m128 a, __m128 b) ++{ ++ float32_t b0 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++ float32x4_t value = vsetq_lane_f32(b0, vdupq_n_f32(0), 0); ++ // the upper values in the result must be the remnants of . ++ return vreinterpretq_m128_f32(vaddq_f32(a, value)); ++} ++ ++// Compute the bitwise AND of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_ps ++FORCE_INLINE __m128 _mm_and_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vandq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Compute the bitwise NOT of packed single-precision (32-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_ps ++FORCE_INLINE __m128 _mm_andnot_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vbicq_s32(vreinterpretq_s32_m128(b), ++ vreinterpretq_s32_m128(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu16 ++FORCE_INLINE __m64 _mm_avg_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16( ++ vrhadd_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu8 ++FORCE_INLINE __m64 _mm_avg_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vrhadd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ps ++FORCE_INLINE __m128 _mm_cmpeq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ss ++FORCE_INLINE __m128 _mm_cmpeq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpeq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ps ++FORCE_INLINE __m128 _mm_cmpge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ss ++FORCE_INLINE __m128 _mm_cmpge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ps ++FORCE_INLINE __m128 _mm_cmpgt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ss ++FORCE_INLINE __m128 _mm_cmpgt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpgt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ps ++FORCE_INLINE __m128 _mm_cmple_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ss ++FORCE_INLINE __m128 _mm_cmple_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmple_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ps ++FORCE_INLINE __m128 _mm_cmplt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ss ++FORCE_INLINE __m128 _mm_cmplt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmplt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ps ++FORCE_INLINE __m128 _mm_cmpneq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ss ++FORCE_INLINE __m128 _mm_cmpneq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpneq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ps ++FORCE_INLINE __m128 _mm_cmpnge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ss ++FORCE_INLINE __m128 _mm_cmpnge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ps ++FORCE_INLINE __m128 _mm_cmpngt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ss ++FORCE_INLINE __m128 _mm_cmpngt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpngt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ps ++FORCE_INLINE __m128 _mm_cmpnle_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ss ++FORCE_INLINE __m128 _mm_cmpnle_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnle_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ps ++FORCE_INLINE __m128 _mm_cmpnlt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ss ++FORCE_INLINE __m128 _mm_cmpnlt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnlt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ps ++// ++// See also: ++// http://stackoverflow.com/questions/8627331/what-does-ordered-unordered-comparison-mean ++// http://stackoverflow.com/questions/29349621/neon-isnanval-intrinsics ++FORCE_INLINE __m128 _mm_cmpord_ps(__m128 a, __m128 b) ++{ ++ // Note: NEON does not have ordered compare builtin ++ // Need to compare a eq a and b eq b to check for NaN ++ // Do AND of results to get final ++ uint32x4_t ceqaa = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t ceqbb = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vandq_u32(ceqaa, ceqbb)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ss ++FORCE_INLINE __m128 _mm_cmpord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpord_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ps ++FORCE_INLINE __m128 _mm_cmpunord_ps(__m128 a, __m128 b) ++{ ++ uint32x4_t f32a = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t f32b = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vmvnq_u32(vandq_u32(f32a, f32b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ss ++FORCE_INLINE __m128 _mm_cmpunord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpunord_ps(a, b)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_ss ++FORCE_INLINE int _mm_comieq_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_eq_b = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_eq_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_ss ++FORCE_INLINE int _mm_comige_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_ge_b = ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_ge_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_ss ++FORCE_INLINE int _mm_comigt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_gt_b = ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_gt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_ss ++FORCE_INLINE int _mm_comile_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_le_b = ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_le_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_ss ++FORCE_INLINE int _mm_comilt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_lt_b = ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_lt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_ss ++FORCE_INLINE int _mm_comineq_ss(__m128 a, __m128 b) ++{ ++ return !_mm_comieq_ss(a, b); ++} ++ ++// Convert packed signed 32-bit integers in b to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, and copy the upper 2 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_pi2ps ++FORCE_INLINE __m128 _mm_cvt_pi2ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ps2pi ++FORCE_INLINE __m64 _mm_cvt_ps2pi(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))))); ++#else ++ return vreinterpret_m64_s32(vcvt_s32_f32(vget_low_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION))))); ++#endif ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_si2ss ++FORCE_INLINE __m128 _mm_cvt_si2ss(__m128 a, int b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ss2si ++FORCE_INLINE int _mm_cvt_ss2si(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vgetq_lane_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))), ++ 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int32_t) data; ++#endif ++} ++ ++// Convert packed 16-bit integers in a to packed single-precision (32-bit) ++// floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi16_ps ++FORCE_INLINE __m128 _mm_cvtpi16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vmovl_s16(vreinterpret_s16_m64(a)))); ++} ++ ++// Convert packed 32-bit integers in b to packed single-precision (32-bit) ++// floating-point elements, store the results in the lower 2 elements of dst, ++// and copy the upper 2 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_ps ++FORCE_INLINE __m128 _mm_cvtpi32_ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, then convert the packed signed 32-bit integers in b to ++// single-precision (32-bit) floating-point element, and store the results in ++// the upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32x2_ps ++FORCE_INLINE __m128 _mm_cvtpi32x2_ps(__m64 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vcombine_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b)))); ++} ++ ++// Convert the lower packed 8-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi8_ps ++FORCE_INLINE __m128 _mm_cvtpi8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vmovl_s16(vget_low_s16(vmovl_s8(vreinterpret_s8_m64(a)))))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 16-bit integers, and store the results in dst. Note: this intrinsic ++// will generate 0x7FFF, rather than 0x8000, for input values between 0x7FFF and ++// 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi16 ++FORCE_INLINE __m64 _mm_cvtps_pi16(__m128 a) ++{ ++ return vreinterpret_m64_s16( ++ vqmovn_s32(vreinterpretq_s32_m128i(_mm_cvtps_epi32(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi32 ++#define _mm_cvtps_pi32(a) _mm_cvt_ps2pi(a) ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 8-bit integers, and store the results in lower 4 elements of dst. ++// Note: this intrinsic will generate 0x7F, rather than 0x80, for input values ++// between 0x7F and 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi8 ++FORCE_INLINE __m64 _mm_cvtps_pi8(__m128 a) ++{ ++ return vreinterpret_m64_s8(vqmovn_s16( ++ vcombine_s16(vreinterpret_s16_m64(_mm_cvtps_pi16(a)), vdup_n_s16(0)))); ++} ++ ++// Convert packed unsigned 16-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu16_ps ++FORCE_INLINE __m128 _mm_cvtpu16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_u32(vmovl_u16(vreinterpret_u16_m64(a)))); ++} ++ ++// Convert the lower packed unsigned 8-bit integers in a to packed ++// single-precision (32-bit) floating-point elements, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu8_ps ++FORCE_INLINE __m128 _mm_cvtpu8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_u32( ++ vmovl_u16(vget_low_u16(vmovl_u8(vreinterpret_u8_m64(a)))))); ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_ss ++#define _mm_cvtsi32_ss(a, b) _mm_cvt_si2ss(a, b) ++ ++// Convert the signed 64-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_ss ++FORCE_INLINE __m128 _mm_cvtsi64_ss(__m128 a, int64_t b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Copy the lower single-precision (32-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_f32 ++FORCE_INLINE float _mm_cvtss_f32(__m128 a) ++{ ++ return vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si32 ++#define _mm_cvtss_si32(a) _mm_cvt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si64 ++FORCE_INLINE int64_t _mm_cvtss_si64(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return (int64_t) vgetq_lane_f32(vrndiq_f32(vreinterpretq_f32_m128(a)), 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int64_t) data; ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ps2pi ++FORCE_INLINE __m64 _mm_cvtt_ps2pi(__m128 a) ++{ ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ss2si ++FORCE_INLINE int _mm_cvtt_ss2si(__m128 a) ++{ ++ return vgetq_lane_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)), 0); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_pi32 ++#define _mm_cvttps_pi32(a) _mm_cvtt_ps2pi(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si32 ++#define _mm_cvttss_si32(a) _mm_cvtt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si64 ++FORCE_INLINE int64_t _mm_cvttss_si64(__m128 a) ++{ ++ return (int64_t) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Divide packed single-precision (32-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise division intrinsic, we implement ++// division by multiplying a by b's reciprocal before using the Newton-Raphson ++// method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ps ++FORCE_INLINE __m128 _mm_div_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vdivq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(b)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(a), recip)); ++#endif ++} ++ ++// Divide the lower single-precision (32-bit) floating-point element in a by the ++// lower single-precision (32-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper 3 packed elements from a to ++// the upper elements of dst. ++// Warning: ARMv7-A does not produce the same result compared to Intel and not ++// IEEE-compliant. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ss ++FORCE_INLINE __m128 _mm_div_ss(__m128 a, __m128 b) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_div_ps(a, b)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_pi16 ++#define _mm_extract_pi16(a, imm) \ ++ (int32_t) vget_lane_u16(vreinterpret_u16_m64(a), (imm)) ++ ++// Free aligned memory that was allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_free ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void _mm_free(void *addr) ++{ ++ free(addr); ++} ++#endif ++ ++FORCE_INLINE uint64_t _sse2neon_get_fpcr(void) ++{ ++ uint64_t value; ++#if defined(_MSC_VER) ++ value = _ReadStatusReg(ARM64_FPCR); ++#else ++ __asm__ __volatile__("mrs %0, FPCR" : "=r"(value)); /* read */ ++#endif ++ return value; ++} ++ ++FORCE_INLINE void _sse2neon_set_fpcr(uint64_t value) ++{ ++#if defined(_MSC_VER) ++ _WriteStatusReg(ARM64_FPCR, value); ++#else ++ __asm__ __volatile__("msr FPCR, %0" ::"r"(value)); /* write */ ++#endif ++} ++ ++// Macro: Get the flush zero bits from the MXCSR control and status register. ++// The flush zero may contain any of the following flags: _MM_FLUSH_ZERO_ON or ++// _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_FLUSH_ZERO_MODE ++FORCE_INLINE unsigned int _sse2neon_mm_get_flush_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_FLUSH_ZERO_ON : _MM_FLUSH_ZERO_OFF; ++} ++ ++// Macro: Get the rounding mode bits from the MXCSR control and status register. ++// The rounding mode may contain any of the following flags: _MM_ROUND_NEAREST, ++// _MM_ROUND_DOWN, _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_ROUNDING_MODE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ if (r.field.bit22) { ++ return r.field.bit23 ? _MM_ROUND_TOWARD_ZERO : _MM_ROUND_UP; ++ } else { ++ return r.field.bit23 ? _MM_ROUND_DOWN : _MM_ROUND_NEAREST; ++ } ++} ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_pi16 ++#define _mm_insert_pi16(a, b, imm) \ ++ vreinterpret_m64_s16(vset_lane_s16((b), vreinterpret_s16_m64(a), (imm))) ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps ++FORCE_INLINE __m128 _mm_load_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// ++// dst[31:0] := MEM[mem_addr+31:mem_addr] ++// dst[63:32] := MEM[mem_addr+31:mem_addr] ++// dst[95:64] := MEM[mem_addr+31:mem_addr] ++// dst[127:96] := MEM[mem_addr+31:mem_addr] ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps1 ++#define _mm_load_ps1 _mm_load1_ps ++ ++// Load a single-precision (32-bit) floating-point element from memory into the ++// lower of dst, and zero the upper 3 elements. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ss ++FORCE_INLINE __m128 _mm_load_ss(const float *p) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(*p, vdupq_n_f32(0), 0)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_ps ++FORCE_INLINE __m128 _mm_load1_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_dup_f32(p)); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// upper 2 elements of dst, and copy the lower 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pi ++FORCE_INLINE __m128 _mm_loadh_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vget_low_f32(a), vld1_f32((const float32_t *) p))); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// lower 2 elements of dst, and copy the upper 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pi ++FORCE_INLINE __m128 _mm_loadl_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vld1_f32((const float32_t *) p), vget_high_f32(a))); ++} ++ ++// Load 4 single-precision (32-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_ps ++FORCE_INLINE __m128 _mm_loadr_ps(const float *p) ++{ ++ float32x4_t v = vrev64q_f32(vld1q_f32(p)); ++ return vreinterpretq_m128_f32(vextq_f32(v, v, 2)); ++} ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_ps ++FORCE_INLINE __m128 _mm_loadu_ps(const float *p) ++{ ++ // for neon, alignment doesn't matter, so _mm_load_ps and _mm_loadu_ps are ++ // equivalent for neon ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load unaligned 16-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si16 ++FORCE_INLINE __m128i _mm_loadu_si16(const void *p) ++{ ++ return vreinterpretq_m128i_s16( ++ vsetq_lane_s16(*(const unaligned_int16_t *) p, vdupq_n_s16(0), 0)); ++} ++ ++// Load unaligned 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si64 ++FORCE_INLINE __m128i _mm_loadu_si64(const void *p) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(*(const unaligned_int64_t *) p, vdupq_n_s64(0), 0)); ++} ++ ++// Allocate size bytes of memory, aligned to the alignment specified in align, ++// and return a pointer to the allocated memory. _mm_free should be used to free ++// memory that is allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_malloc ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void *_mm_malloc(size_t size, size_t align) ++{ ++ void *ptr; ++ if (align == 1) ++ return malloc(size); ++ if (align == 2 || (sizeof(void *) == 8 && align == 4)) ++ align = sizeof(void *); ++ if (!posix_memalign(&ptr, align, size)) ++ return ptr; ++ return NULL; ++} ++#endif ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmove_si64 ++FORCE_INLINE void _mm_maskmove_si64(__m64 a, __m64 mask, char *mem_addr) ++{ ++ int8x8_t shr_mask = vshr_n_s8(vreinterpret_s8_m64(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x8_t masked = ++ vbsl_s8(vreinterpret_u8_s8(shr_mask), vreinterpret_s8_m64(a), ++ vreinterpret_s8_u64(vget_low_u64(vreinterpretq_u64_m128(b)))); ++ vst1_s8((int8_t *) mem_addr, masked); ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_maskmovq ++#define _m_maskmovq(a, mask, mem_addr) _mm_maskmove_si64(a, mask, mem_addr) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pi16 ++FORCE_INLINE __m64 _mm_max_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmax_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) maximum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ps ++FORCE_INLINE __m128 _mm_max_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcgtq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vmaxq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pu8 ++FORCE_INLINE __m64 _mm_max_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmax_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) maximum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ss ++FORCE_INLINE __m128 _mm_max_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_max_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pi16 ++FORCE_INLINE __m64 _mm_min_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmin_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) minimum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ps ++FORCE_INLINE __m128 _mm_min_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcltq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vminq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pu8 ++FORCE_INLINE __m64 _mm_min_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmin_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) minimum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ss ++FORCE_INLINE __m128 _mm_min_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_min_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the lower single-precision (32-bit) floating-point element from b to the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_ss ++FORCE_INLINE __m128 _mm_move_ss(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(vgetq_lane_f32(vreinterpretq_f32_m128(b), 0), ++ vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the upper 2 single-precision (32-bit) floating-point elements from b to ++// the lower 2 elements of dst, and copy the upper 2 elements from a to the ++// upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehl_ps ++FORCE_INLINE __m128 _mm_movehl_ps(__m128 a, __m128 b) ++{ ++#if defined(aarch64__) ++ return vreinterpretq_m128_u64( ++ vzip2q_u64(vreinterpretq_u64_m128(b), vreinterpretq_u64_m128(a))); ++#else ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(b32, a32)); ++#endif ++} ++ ++// Move the lower 2 single-precision (32-bit) floating-point elements from b to ++// the upper 2 elements of dst, and copy the lower 2 elements from a to the ++// lower 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movelh_ps ++FORCE_INLINE __m128 _mm_movelh_ps(__m128 __A, __m128 __B) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(__A)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(__B)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pi8 ++FORCE_INLINE int _mm_movemask_pi8(__m64 a) ++{ ++ uint8x8_t input = vreinterpret_u8_m64(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int8_t shift[8] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint8x8_t tmp = vshr_n_u8(input, 7); ++ return vaddv_u8(vshl_u8(tmp, vld1_s8(shift))); ++#else ++ // Refer the implementation of `_mm_movemask_epi8` ++ uint16x4_t high_bits = vreinterpret_u16_u8(vshr_n_u8(input, 7)); ++ uint32x2_t paired16 = ++ vreinterpret_u32_u16(vsra_n_u16(high_bits, high_bits, 7)); ++ uint8x8_t paired32 = ++ vreinterpret_u8_u32(vsra_n_u32(paired16, paired16, 14)); ++ return vget_lane_u8(paired32, 0) | ((int) vget_lane_u8(paired32, 4) << 4); ++#endif ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed single-precision (32-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_ps ++FORCE_INLINE int _mm_movemask_ps(__m128 a) ++{ ++ uint32x4_t input = vreinterpretq_u32_m128(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int32_t shift[4] = {0, 1, 2, 3}; ++ uint32x4_t tmp = vshrq_n_u32(input, 31); ++ return vaddvq_u32(vshlq_u32(tmp, vld1q_s32(shift))); ++#else ++ // Uses the exact same method as _mm_movemask_epi8, see that for details. ++ // Shift out everything but the sign bits with a 32-bit unsigned shift ++ // right. ++ uint64x2_t high_bits = vreinterpretq_u64_u32(vshrq_n_u32(input, 31)); ++ // Merge the two pairs together with a 64-bit unsigned shift right + add. ++ uint8x16_t paired = ++ vreinterpretq_u8_u64(vsraq_n_u64(high_bits, high_bits, 31)); ++ // Extract the result. ++ return vgetq_lane_u8(paired, 0) | (vgetq_lane_u8(paired, 8) << 2); ++#endif ++} ++ ++// Multiply packed single-precision (32-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ps ++FORCE_INLINE_OPTNONE __m128 _mm_mul_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vmulq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Multiply the lower single-precision (32-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ss ++FORCE_INLINE __m128 _mm_mul_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_mul_ps(a, b)); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_pu16 ++FORCE_INLINE __m64 _mm_mulhi_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16(vshrn_n_u32( ++ vmull_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b)), 16)); ++} ++ ++// Compute the bitwise OR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_ps ++FORCE_INLINE __m128 _mm_or_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vorrq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgb ++#define _m_pavgb(a, b) _mm_avg_pu8(a, b) ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgw ++#define _m_pavgw(a, b) _mm_avg_pu16(a, b) ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pextrw ++#define _m_pextrw(a, imm) _mm_extract_pi16(a, imm) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_pinsrw ++#define _m_pinsrw(a, i, imm) _mm_insert_pi16(a, i, imm) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxsw ++#define _m_pmaxsw(a, b) _mm_max_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxub ++#define _m_pmaxub(a, b) _mm_max_pu8(a, b) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminsw ++#define _m_pminsw(a, b) _mm_min_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminub ++#define _m_pminub(a, b) _mm_min_pu8(a, b) ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmovmskb ++#define _m_pmovmskb(a) _mm_movemask_pi8(a) ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmulhuw ++#define _m_pmulhuw(a, b) _mm_mulhi_pu16(a, b) ++ ++// Fetch the line of data from memory that contains address p to a location in ++// the cache hierarchy specified by the locality hint i. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_prefetch ++FORCE_INLINE void _mm_prefetch(char const *p, int i) ++{ ++ (void) i; ++#if defined(_MSC_VER) ++ switch (i) { ++ case _MM_HINT_NTA: ++ __prefetch2(p, 1); ++ break; ++ case _MM_HINT_T0: ++ __prefetch2(p, 0); ++ break; ++ case _MM_HINT_T1: ++ __prefetch2(p, 2); ++ break; ++ case _MM_HINT_T2: ++ __prefetch2(p, 4); ++ break; ++ } ++#else ++ switch (i) { ++ case _MM_HINT_NTA: ++ __builtin_prefetch(p, 0, 0); ++ break; ++ case _MM_HINT_T0: ++ __builtin_prefetch(p, 0, 3); ++ break; ++ case _MM_HINT_T1: ++ __builtin_prefetch(p, 0, 2); ++ break; ++ case _MM_HINT_T2: ++ __builtin_prefetch(p, 0, 1); ++ break; ++ } ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_psadbw ++#define _m_psadbw(a, b) _mm_sad_pu8(a, b) ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pshufw ++#define _m_pshufw(a, imm) _mm_shuffle_pi16(a, imm) ++ ++// Compute the approximate reciprocal of packed single-precision (32-bit) ++// floating-point elements in a, and store the results in dst. The maximum ++// relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ps ++FORCE_INLINE __m128 _mm_rcp_ps(__m128 in) ++{ ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(in)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#if SSE2NEON_PRECISE_DIV ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#endif ++ return vreinterpretq_m128_f32(recip); ++} ++ ++// Compute the approximate reciprocal of the lower single-precision (32-bit) ++// floating-point element in a, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ss ++FORCE_INLINE __m128 _mm_rcp_ss(__m128 a) ++{ ++ return _mm_move_ss(a, _mm_rcp_ps(a)); ++} ++ ++// Compute the approximate reciprocal square root of packed single-precision ++// (32-bit) floating-point elements in a, and store the results in dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ps ++FORCE_INLINE __m128 _mm_rsqrt_ps(__m128 in) ++{ ++ float32x4_t out = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Generate masks for detecting whether input has any 0.0f/-0.0f ++ // (which becomes positive/negative infinity by IEEE-754 arithmetic rules). ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t neg_inf = vdupq_n_u32(0xFF800000); ++ const uint32x4_t has_pos_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(out)); ++ const uint32x4_t has_neg_zero = ++ vceqq_u32(neg_inf, vreinterpretq_u32_f32(out)); ++ ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#if SSE2NEON_PRECISE_SQRT ++ // Additional Netwon-Raphson iteration for accuracy ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#endif ++ ++ // Set output vector element to infinity/negative-infinity if ++ // the corresponding input vector element is 0.0f/-0.0f. ++ out = vbslq_f32(has_pos_zero, (float32x4_t) pos_inf, out); ++ out = vbslq_f32(has_neg_zero, (float32x4_t) neg_inf, out); ++ ++ return vreinterpretq_m128_f32(out); ++} ++ ++// Compute the approximate reciprocal square root of the lower single-precision ++// (32-bit) floating-point element in a, store the result in the lower element ++// of dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ss ++FORCE_INLINE __m128 _mm_rsqrt_ss(__m128 in) ++{ ++ return vsetq_lane_f32(vgetq_lane_f32(_mm_rsqrt_ps(in), 0), in, 0); ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_pu8 ++FORCE_INLINE __m64 _mm_sad_pu8(__m64 a, __m64 b) ++{ ++ uint64x1_t t = vpaddl_u32(vpaddl_u16( ++ vpaddl_u8(vabd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))))); ++ return vreinterpret_m64_u16( ++ vset_lane_u16((int) vget_lane_u64(t, 0), vdup_n_u16(0), 0)); ++} ++ ++// Macro: Set the flush zero bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The flush zero may contain any of the ++// following flags: _MM_FLUSH_ZERO_ON or _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_FLUSH_ZERO_MODE ++FORCE_INLINE void _sse2neon_mm_set_flush_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_FLUSH_ZERO_MASK) == _MM_FLUSH_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps ++FORCE_INLINE __m128 _mm_set_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {x, y, z, w}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps1 ++FORCE_INLINE __m128 _mm_set_ps1(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Macro: Set the rounding mode bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The rounding mode may contain any of ++// the following flags: _MM_ROUND_NEAREST, _MM_ROUND_DOWN, _MM_ROUND_UP, ++// _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_ROUNDING_MODE ++FORCE_INLINE void _MM_SET_ROUNDING_MODE(int rounding) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ switch (rounding) { ++ case _MM_ROUND_TOWARD_ZERO: ++ r.field.bit22 = 1; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_DOWN: ++ r.field.bit22 = 0; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_UP: ++ r.field.bit22 = 1; ++ r.field.bit23 = 0; ++ break; ++ default: //_MM_ROUND_NEAREST ++ r.field.bit22 = 0; ++ r.field.bit23 = 0; ++ } ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Copy single-precision (32-bit) floating-point element a to the lower element ++// of dst, and zero the upper 3 elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ss ++FORCE_INLINE __m128 _mm_set_ss(float a) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(a, vdupq_n_f32(0), 0)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_ps ++FORCE_INLINE __m128 _mm_set1_ps(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Set the MXCSR control and status register with the value in unsigned 32-bit ++// integer a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setcsr ++// FIXME: _mm_setcsr() implementation supports changing the rounding mode only. ++FORCE_INLINE void _mm_setcsr(unsigned int a) ++{ ++ _MM_SET_ROUNDING_MODE(a); ++} ++ ++// Get the unsigned 32-bit value of the MXCSR control and status register. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_getcsr ++// FIXME: _mm_getcsr() implementation supports reading the rounding mode only. ++FORCE_INLINE unsigned int _mm_getcsr(void) ++{ ++ return _MM_GET_ROUNDING_MODE(); ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_ps ++FORCE_INLINE __m128 _mm_setr_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {w, z, y, x}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Return vector of type __m128 with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_ps ++FORCE_INLINE __m128 _mm_setzero_ps(void) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(0)); ++} ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi16 ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pi16(a, imm) \ ++ vreinterpret_m64_s16(vshuffle_s16( \ ++ vreinterpret_s16_m64(a), vreinterpret_s16_m64(a), (imm & 0x3), \ ++ ((imm >> 2) & 0x3), ((imm >> 4) & 0x3), ((imm >> 6) & 0x3))) ++#else ++#define _mm_shuffle_pi16(a, imm) \ ++ _sse2neon_define1( \ ++ __m64, a, int16x4_t ret; \ ++ ret = vmov_n_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), (imm) & (0x3))); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpret_m64_s16(ret));) ++#endif ++ ++// Perform a serializing operation on all store-to-memory instructions that were ++// issued prior to this instruction. Guarantees that every store instruction ++// that precedes, in program order, is globally visible before any store ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sfence ++FORCE_INLINE void _mm_sfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory and store-to-memory ++// instructions that were issued prior to this instruction. Guarantees that ++// every memory access that precedes, in program order, the memory fence ++// instruction is globally visible before any memory instruction which follows ++// the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mfence ++FORCE_INLINE void _mm_mfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory instructions that ++// were issued prior to this instruction. Guarantees that every load instruction ++// that precedes, in program order, is globally visible before any load ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lfence ++FORCE_INLINE void _mm_lfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// FORCE_INLINE __m128 _mm_shuffle_ps(__m128 a, __m128 b, __constrange(0,255) ++// int imm) ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_ps(a, b, imm) \ ++ __extension__({ \ ++ float32x4_t _input1 = vreinterpretq_f32_m128(a); \ ++ float32x4_t _input2 = vreinterpretq_f32_m128(b); \ ++ float32x4_t _shuf = \ ++ vshuffleq_s32(_input1, _input2, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ (((imm) >> 4) & 0x3) + 4, (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128_f32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_ps(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128, a, b, __m128 ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_1032(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_ps_2301(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_ps_0321(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_ps_2103(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_movelh_ps(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_1001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_ps_0101(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 1, 0): \ ++ ret = _mm_shuffle_ps_3210(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 1, 1): \ ++ ret = _mm_shuffle_ps_0011(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 2, 2): \ ++ ret = _mm_shuffle_ps_0022(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 0, 0): \ ++ ret = _mm_shuffle_ps_2200(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 0, 2): \ ++ ret = _mm_shuffle_ps_3202(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 3, 2): \ ++ ret = _mm_movehl_ps(_b, _a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 3, 3): \ ++ ret = _mm_shuffle_ps_1133(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 1, 0): \ ++ ret = _mm_shuffle_ps_2010(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_2001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_2032(_a, _b); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_ps_default(_a, _b, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Compute the square root of packed single-precision (32-bit) floating-point ++// elements in a, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise square root intrinsic, we implement ++// square root by multiplying input in with its reciprocal square root before ++// using the Newton-Raphson method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ps ++FORCE_INLINE __m128 _mm_sqrt_ps(__m128 in) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) && !SSE2NEON_PRECISE_SQRT ++ return vreinterpretq_m128_f32(vsqrtq_f32(vreinterpretq_f32_m128(in))); ++#else ++ float32x4_t recip = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Test for vrsqrteq_f32(0) -> positive infinity case. ++ // Change to zero, so that s * 1/sqrt(s) result is zero too. ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t div_by_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(recip)); ++ recip = vreinterpretq_f32_u32( ++ vandq_u32(vmvnq_u32(div_by_zero), vreinterpretq_u32_f32(recip))); ++ ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ ++ // sqrt(s) = s * 1/sqrt(s) ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(in), recip)); ++#endif ++} ++ ++// Compute the square root of the lower single-precision (32-bit) floating-point ++// element in a, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ss ++FORCE_INLINE __m128 _mm_sqrt_ss(__m128 in) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_sqrt_ps(in)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(in), 0)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps ++FORCE_INLINE void _mm_store_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps1 ++FORCE_INLINE void _mm_store_ps1(float *p, __m128 a) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ vst1q_f32(p, vdupq_n_f32(a0)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ss ++FORCE_INLINE void _mm_store_ss(float *p, __m128 a) ++{ ++ vst1q_lane_f32(p, vreinterpretq_f32_m128(a), 0); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store1_ps ++#define _mm_store1_ps _mm_store_ps1 ++ ++// Store the upper 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pi ++FORCE_INLINE void _mm_storeh_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_high_f32(a)); ++} ++ ++// Store the lower 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pi ++FORCE_INLINE void _mm_storel_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_low_f32(a)); ++} ++ ++// Store 4 single-precision (32-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_ps ++FORCE_INLINE void _mm_storer_ps(float *p, __m128 a) ++{ ++ float32x4_t tmp = vrev64q_f32(vreinterpretq_f32_m128(a)); ++ float32x4_t rev = vextq_f32(tmp, tmp, 2); ++ vst1q_f32(p, rev); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_ps ++FORCE_INLINE void _mm_storeu_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Stores 16-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si16 ++FORCE_INLINE void _mm_storeu_si16(void *p, __m128i a) ++{ ++ vst1q_lane_s16((int16_t *) p, vreinterpretq_s16_m128i(a), 0); ++} ++ ++// Stores 64-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si64 ++FORCE_INLINE void _mm_storeu_si64(void *p, __m128i a) ++{ ++ vst1q_lane_s64((int64_t *) p, vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Store 64-bits of integer data from a into memory using a non-temporal memory ++// hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pi ++FORCE_INLINE void _mm_stream_pi(__m64 *p, __m64 a) ++{ ++ vst1_s64((int64_t *) p, vreinterpret_s64_m64(a)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating- ++// point elements) from a into memory using a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_ps ++FORCE_INLINE void _mm_stream_ps(float *p, __m128 a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (float32x4_t *) p); ++#else ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++#endif ++} ++ ++// Subtract packed single-precision (32-bit) floating-point elements in b from ++// packed single-precision (32-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ps ++FORCE_INLINE __m128 _mm_sub_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Subtract the lower single-precision (32-bit) floating-point element in b from ++// the lower single-precision (32-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper 3 packed elements from ++// a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ss ++FORCE_INLINE __m128 _mm_sub_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_sub_ps(a, b)); ++} ++ ++// Macro: Transpose the 4x4 matrix formed by the 4 rows of single-precision ++// (32-bit) floating-point elements in row0, row1, row2, and row3, and store the ++// transposed matrix in these vectors (row0 now contains column 0, etc.). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=MM_TRANSPOSE4_PS ++#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \ ++ do { \ ++ float32x4x2_t ROW01 = vtrnq_f32(row0, row1); \ ++ float32x4x2_t ROW23 = vtrnq_f32(row2, row3); \ ++ row0 = vcombine_f32(vget_low_f32(ROW01.val[0]), \ ++ vget_low_f32(ROW23.val[0])); \ ++ row1 = vcombine_f32(vget_low_f32(ROW01.val[1]), \ ++ vget_low_f32(ROW23.val[1])); \ ++ row2 = vcombine_f32(vget_high_f32(ROW01.val[0]), \ ++ vget_high_f32(ROW23.val[0])); \ ++ row3 = vcombine_f32(vget_high_f32(ROW01.val[1]), \ ++ vget_high_f32(ROW23.val[1])); \ ++ } while (0) ++ ++// according to the documentation, these intrinsics behave the same as the ++// non-'u' versions. We'll just alias them here. ++#define _mm_ucomieq_ss _mm_comieq_ss ++#define _mm_ucomige_ss _mm_comige_ss ++#define _mm_ucomigt_ss _mm_comigt_ss ++#define _mm_ucomile_ss _mm_comile_ss ++#define _mm_ucomilt_ss _mm_comilt_ss ++#define _mm_ucomineq_ss _mm_comineq_ss ++ ++// Return vector of type __m128i with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_undefined_si128 ++FORCE_INLINE __m128i _mm_undefined_si128(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128i a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_si128(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Return vector of type __m128 with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_ps ++FORCE_INLINE __m128 _mm_undefined_ps(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128 a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_ps(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the high half a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_ps ++FORCE_INLINE __m128 _mm_unpackhi_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_ps ++FORCE_INLINE __m128 _mm_unpacklo_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Compute the bitwise XOR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_ps ++FORCE_INLINE __m128 _mm_xor_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ veorq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++/* SSE2 */ ++ ++// Add packed 16-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi16 ++FORCE_INLINE __m128i _mm_add_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed 32-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi32 ++FORCE_INLINE __m128i _mm_add_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vaddq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Add packed 64-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi64 ++FORCE_INLINE __m128i _mm_add_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vaddq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Add packed 8-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi8 ++FORCE_INLINE __m128i _mm_add_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed double-precision (64-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_pd ++FORCE_INLINE __m128d _mm_add_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1] + db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add the lower double-precision (64-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper element from ++// a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_sd ++FORCE_INLINE __m128d _mm_add_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_add_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add 64-bit integers a and b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_si64 ++FORCE_INLINE __m64 _mm_add_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vadd_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Add packed signed 16-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi16 ++FORCE_INLINE __m128i _mm_adds_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed signed 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi8 ++FORCE_INLINE __m128i _mm_adds_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed unsigned 16-bit integers in a and b using saturation, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu16 ++FORCE_INLINE __m128i _mm_adds_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqaddq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Add packed unsigned 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu8 ++FORCE_INLINE __m128i _mm_adds_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compute the bitwise AND of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_pd ++FORCE_INLINE __m128d _mm_and_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vandq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_si128 ++FORCE_INLINE __m128i _mm_and_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vandq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compute the bitwise NOT of packed double-precision (64-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_pd ++FORCE_INLINE __m128d _mm_andnot_pd(__m128d a, __m128d b) ++{ ++ // *NOTE* argument swap ++ return vreinterpretq_m128d_s64( ++ vbicq_s64(vreinterpretq_s64_m128d(b), vreinterpretq_s64_m128d(a))); ++} ++ ++// Compute the bitwise NOT of 128 bits (representing integer data) in a and then ++// AND with b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_si128 ++FORCE_INLINE __m128i _mm_andnot_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vbicq_s32(vreinterpretq_s32_m128i(b), ++ vreinterpretq_s32_m128i(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu16 ++FORCE_INLINE __m128i _mm_avg_epu16(__m128i a, __m128i b) ++{ ++ return (__m128i) vrhaddq_u16(vreinterpretq_u16_m128i(a), ++ vreinterpretq_u16_m128i(b)); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu8 ++FORCE_INLINE __m128i _mm_avg_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vrhaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bslli_si128 ++#define _mm_bslli_si128(a, imm) _mm_slli_si128(a, imm) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bsrli_si128 ++#define _mm_bsrli_si128(a, imm) _mm_srli_si128(a, imm) ++ ++// Cast vector of type __m128d to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_ps ++FORCE_INLINE __m128 _mm_castpd_ps(__m128d a) ++{ ++ return vreinterpretq_m128_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128d to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_si128 ++FORCE_INLINE __m128i _mm_castpd_si128(__m128d a) ++{ ++ return vreinterpretq_m128i_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128 to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_pd ++FORCE_INLINE __m128d _mm_castps_pd(__m128 a) ++{ ++ return vreinterpretq_m128d_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128 to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_si128 ++FORCE_INLINE __m128i _mm_castps_si128(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128i to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_pd ++FORCE_INLINE __m128d _mm_castsi128_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vreinterpretq_f64_m128i(a)); ++#else ++ return vreinterpretq_m128d_f32(vreinterpretq_f32_m128i(a)); ++#endif ++} ++ ++// Cast vector of type __m128i to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_ps ++FORCE_INLINE __m128 _mm_castsi128_ps(__m128i a) ++{ ++ return vreinterpretq_m128_s32(vreinterpretq_s32_m128i(a)); ++} ++ ++// Invalidate and flush the cache line that contains p from all levels of the ++// cache hierarchy. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clflush ++#if defined(__APPLE__) ++#include ++#endif ++FORCE_INLINE void _mm_clflush(void const *p) ++{ ++ (void) p; ++ ++ /* sys_icache_invalidate is supported since macOS 10.5. ++ * However, it does not work on non-jailbroken iOS devices, although the ++ * compilation is successful. ++ */ ++#if defined(__APPLE__) ++ sys_icache_invalidate((void *) (uintptr_t) p, SSE2NEON_CACHELINE_SIZE); ++#elif defined(__GNUC__) || defined(__clang__) ++ uintptr_t ptr = (uintptr_t) p; ++ __builtin___clear_cache((char *) ptr, ++ (char *) ptr + SSE2NEON_CACHELINE_SIZE); ++#elif (_MSC_VER) && SSE2NEON_INCLUDE_WINDOWS_H ++ FlushInstructionCache(GetCurrentProcess(), p, SSE2NEON_CACHELINE_SIZE); ++#endif ++} ++ ++// Compare packed 16-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi16 ++FORCE_INLINE __m128i _mm_cmpeq_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vceqq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed 32-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi32 ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vceqq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed 8-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi8 ++FORCE_INLINE __m128i _mm_cmpeq_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vceqq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_pd ++FORCE_INLINE __m128d _mm_cmpeq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_sd ++FORCE_INLINE __m128d _mm_cmpeq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpeq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_pd ++FORCE_INLINE __m128d _mm_cmpge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) >= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_sd ++FORCE_INLINE __m128d _mm_cmpge_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpge_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi16 ++FORCE_INLINE __m128i _mm_cmpgt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcgtq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi32 ++FORCE_INLINE __m128i _mm_cmpgt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcgtq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi8 ++FORCE_INLINE __m128i _mm_cmpgt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcgtq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_pd ++FORCE_INLINE __m128d _mm_cmpgt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_sd ++FORCE_INLINE __m128d _mm_cmpgt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpgt_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_pd ++FORCE_INLINE __m128d _mm_cmple_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) <= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_sd ++FORCE_INLINE __m128d _mm_cmple_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmple_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtw instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi16 ++FORCE_INLINE __m128i _mm_cmplt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcltq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtd instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi32 ++FORCE_INLINE __m128i _mm_cmplt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcltq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtb instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi8 ++FORCE_INLINE __m128i _mm_cmplt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcltq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_pd ++FORCE_INLINE __m128d _mm_cmplt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_sd ++FORCE_INLINE __m128d _mm_cmplt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmplt_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_pd ++FORCE_INLINE __m128d _mm_cmpneq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_s32(vmvnq_s32(vreinterpretq_s32_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vmvnq_u32(vandq_u32(cmp, swapped))); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_sd ++FORCE_INLINE __m128d _mm_cmpneq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpneq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_pd ++FORCE_INLINE __m128d _mm_cmpnge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) >= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) >= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_sd ++FORCE_INLINE __m128d _mm_cmpnge_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnge_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_cmpngt_pd ++FORCE_INLINE __m128d _mm_cmpngt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) > (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) > (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_sd ++FORCE_INLINE __m128d _mm_cmpngt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpngt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_pd ++FORCE_INLINE __m128d _mm_cmpnle_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) <= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) <= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_sd ++FORCE_INLINE __m128d _mm_cmpnle_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnle_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_pd ++FORCE_INLINE __m128d _mm_cmpnlt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) < (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) < (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_sd ++FORCE_INLINE __m128d _mm_cmpnlt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnlt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_pd ++FORCE_INLINE __m128d _mm_cmpord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Excluding NaNs, any two floating point numbers can be compared. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_u64(vandq_u64(not_nan_a, not_nan_b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_sd ++FORCE_INLINE __m128d _mm_cmpord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_pd ++FORCE_INLINE __m128d _mm_cmpunord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Two NaNs are not equal in comparison operation. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_s32( ++ vmvnq_s32(vreinterpretq_s32_u64(vandq_u64(not_nan_a, not_nan_b)))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_sd ++FORCE_INLINE __m128d _mm_cmpunord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpunord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_sd ++FORCE_INLINE int _mm_comige_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgeq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 >= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_sd ++FORCE_INLINE int _mm_comigt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgtq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 > *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_sd ++FORCE_INLINE int _mm_comile_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcleq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 <= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_sd ++FORCE_INLINE int _mm_comilt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcltq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 < *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_sd ++FORCE_INLINE int _mm_comieq_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vceqq_f64(a, b), 0) & 0x1; ++#else ++ uint32x4_t a_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(a)); ++ uint32x4_t b_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(b), vreinterpretq_u32_m128d(b)); ++ uint32x4_t a_and_b_not_nan = vandq_u32(a_not_nan, b_not_nan); ++ uint32x4_t a_eq_b = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint64x2_t and_results = vandq_u64(vreinterpretq_u64_u32(a_and_b_not_nan), ++ vreinterpretq_u64_u32(a_eq_b)); ++ return vgetq_lane_u64(and_results, 0) & 0x1; ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_sd ++FORCE_INLINE int _mm_comineq_sd(__m128d a, __m128d b) ++{ ++ return !_mm_comieq_sd(a, b); ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_pd ++FORCE_INLINE __m128d _mm_cvtepi32_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a))))); ++#else ++ double a0 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++ double a1 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_ps ++FORCE_INLINE __m128 _mm_cvtepi32_ps(__m128i a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_epi32 ++FORCE_INLINE_OPTNONE __m128i _mm_cvtpd_epi32(__m128d a) ++{ ++// vrnd32xq_f64 not supported on clang ++#if defined(__ARM_FEATURE_FRINT) && !defined(__clang__) ++ float64x2_t rounded = vrnd32xq_f64(vreinterpretq_f64_m128d(a)); ++ int64x2_t integers = vcvtq_s64_f64(rounded); ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vmovn_s64(integers), vdup_n_s32(0))); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) d1, (int32_t) d0); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_pi32 ++FORCE_INLINE_OPTNONE __m64 _mm_cvtpd_pi32(__m128d a) ++{ ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) d0, (int32_t) d1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed single-precision (32-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_ps ++FORCE_INLINE __m128 _mm_cvtpd_ps(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float32x2_t tmp = vcvt_f32_f64(vreinterpretq_f64_m128d(a)); ++ return vreinterpretq_m128_f32(vcombine_f32(tmp, vdup_n_f32(0))); ++#else ++ float a0 = (float) ((double *) &a)[0]; ++ float a1 = (float) ((double *) &a)[1]; ++ return _mm_set_ps(0, 0, a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_pd ++FORCE_INLINE __m128d _mm_cvtpi32_pd(__m64 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vreinterpret_s32_m64(a)))); ++#else ++ double a0 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 0); ++ double a1 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_epi32 ++// *NOTE*. The default rounding mode on SSE is 'round to even', which ARMv7-A ++// does not support! It is supported on ARMv8-A however. ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128 a) ++{ ++#if defined(__ARM_FEATURE_FRINT) ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vrnd32xq_f32(a))); ++#elif (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: ++ return vreinterpretq_m128i_s32(vcvtnq_s32_f32(a)); ++ case _MM_ROUND_DOWN: ++ return vreinterpretq_m128i_s32(vcvtmq_s32_f32(a)); ++ case _MM_ROUND_UP: ++ return vreinterpretq_m128i_s32(vcvtpq_s32_f32(a)); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(a)); ++ } ++#else ++ float *f = (float *) &a; ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128i_s32( ++ vbslq_s32(is_delta_half, r_even, r_normal)); ++ } ++ case _MM_ROUND_DOWN: ++ return _mm_set_epi32(floorf(f[3]), floorf(f[2]), floorf(f[1]), ++ floorf(f[0])); ++ case _MM_ROUND_UP: ++ return _mm_set_epi32(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ++ ceilf(f[0])); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return _mm_set_epi32((int32_t) f[3], (int32_t) f[2], (int32_t) f[1], ++ (int32_t) f[0]); ++ } ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed double-precision (64-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pd ++FORCE_INLINE __m128d _mm_cvtps_pd(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvt_f64_f32(vget_low_f32(vreinterpretq_f32_m128(a)))); ++#else ++ double a0 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ double a1 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Copy the lower double-precision (64-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_f64 ++FORCE_INLINE double _mm_cvtsd_f64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (double) vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0); ++#else ++ return ((double *) &a)[0]; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si32 ++FORCE_INLINE int32_t _mm_cvtsd_si32(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int32_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int32_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64 ++FORCE_INLINE int64_t _mm_cvtsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int64_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64x ++#define _mm_cvtsd_si64x _mm_cvtsd_si64 ++ ++// Convert the lower double-precision (64-bit) floating-point element in b to a ++// single-precision (32-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_ss ++FORCE_INLINE __m128 _mm_cvtsd_ss(__m128 a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32(vsetq_lane_f32( ++ vget_lane_f32(vcvt_f32_f64(vreinterpretq_f64_m128d(b)), 0), ++ vreinterpretq_f32_m128(a), 0)); ++#else ++ return vreinterpretq_m128_f32(vsetq_lane_f32((float) ((double *) &b)[0], ++ vreinterpretq_f32_m128(a), 0)); ++#endif ++} ++ ++// Copy the lower 32-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si32 ++FORCE_INLINE int _mm_cvtsi128_si32(__m128i a) ++{ ++ return vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64 ++FORCE_INLINE int64_t _mm_cvtsi128_si64(__m128i a) ++{ ++ return vgetq_lane_s64(vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Convert the signed 32-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_sd ++FORCE_INLINE __m128d _mm_cvtsi32_sd(__m128d a, int32_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Copy 32-bit integer a to the lower elements of dst, and zero the upper ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_si128 ++FORCE_INLINE __m128i _mm_cvtsi32_si128(int a) ++{ ++ return vreinterpretq_m128i_s32(vsetq_lane_s32(a, vdupq_n_s32(0), 0)); ++} ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_sd ++FORCE_INLINE __m128d _mm_cvtsi64_sd(__m128d a, int64_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_si128 ++FORCE_INLINE __m128i _mm_cvtsi64_si128(int64_t a) ++{ ++ return vreinterpretq_m128i_s64(vsetq_lane_s64(a, vdupq_n_s64(0), 0)); ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_si128 ++#define _mm_cvtsi64x_si128(a) _mm_cvtsi64_si128(a) ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_sd ++#define _mm_cvtsi64x_sd(a, b) _mm_cvtsi64_sd(a, b) ++ ++// Convert the lower single-precision (32-bit) floating-point element in b to a ++// double-precision (64-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_sd ++FORCE_INLINE __m128d _mm_cvtss_sd(__m128d a, __m128 b) ++{ ++ double d = (double) vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(d, vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &d, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_epi32 ++FORCE_INLINE __m128i _mm_cvttpd_epi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) a1, (int32_t) a0); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_pi32 ++FORCE_INLINE __m64 _mm_cvttpd_pi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) a0, (int32_t) a1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_epi32 ++FORCE_INLINE __m128i _mm_cvttps_epi32(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a))); ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si32 ++FORCE_INLINE int32_t _mm_cvttsd_si32(__m128d a) ++{ ++ double ret = *((double *) &a); ++ return (int32_t) ret; ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64 ++FORCE_INLINE int64_t _mm_cvttsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_s64(vcvtq_s64_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ double ret = *((double *) &a); ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64x ++#define _mm_cvttsd_si64x(a) _mm_cvttsd_si64(a) ++ ++// Divide packed double-precision (64-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_pd ++FORCE_INLINE __m128d _mm_div_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] / db[0]; ++ c[1] = da[1] / db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Divide the lower double-precision (64-bit) floating-point element in a by the ++// lower double-precision (64-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper element from a to the upper ++// element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_sd ++FORCE_INLINE __m128d _mm_div_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t tmp = ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1), tmp, 1)); ++#else ++ return _mm_move_sd(a, _mm_div_pd(a, b)); ++#endif ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi16 ++// FORCE_INLINE int _mm_extract_epi16(__m128i a, __constrange(0,8) int imm) ++#define _mm_extract_epi16(a, imm) \ ++ vgetq_lane_u16(vreinterpretq_u16_m128i(a), (imm)) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi16 ++// FORCE_INLINE __m128i _mm_insert_epi16(__m128i a, int b, ++// __constrange(0,8) int imm) ++#define _mm_insert_epi16(a, b, imm) \ ++ vreinterpretq_m128i_s16( \ ++ vsetq_lane_s16((b), vreinterpretq_s16_m128i(a), (imm))) ++ ++// Load 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd ++FORCE_INLINE __m128d _mm_load_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64(p)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], fp[2], fp[3]}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd1 ++#define _mm_load_pd1 _mm_load1_pd ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower of dst, and zero the upper element. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_sd ++FORCE_INLINE __m128d _mm_load_sd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(*p, vdupq_n_f64(0), 0)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], 0, 0}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_si128 ++FORCE_INLINE __m128i _mm_load_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const int32_t *) p)); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_pd ++FORCE_INLINE __m128d _mm_load1_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_dup_f64(p)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(const int64_t *) p)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// upper element of dst, and copy the lower element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pd ++FORCE_INLINE __m128d _mm_loadh_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vget_low_f64(vreinterpretq_f64_m128d(a)), vld1_f64(p))); ++#else ++ return vreinterpretq_m128d_f32(vcombine_f32( ++ vget_low_f32(vreinterpretq_f32_m128d(a)), vld1_f32((const float *) p))); ++#endif ++} ++ ++// Load 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_epi64 ++FORCE_INLINE __m128i _mm_loadl_epi64(__m128i const *p) ++{ ++ /* Load the lower 64 bits of the value pointed to by p into the ++ * lower 64 bits of the result, zeroing the upper 64 bits of the result. ++ */ ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vld1_s32((int32_t const *) p), vcreate_s32(0))); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower element of dst, and copy the upper element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pd ++FORCE_INLINE __m128d _mm_loadl_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vld1_f64(p), vget_high_f64(vreinterpretq_f64_m128d(a)))); ++#else ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vld1_f32((const float *) p), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++#endif ++} ++ ++// Load 2 double-precision (64-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_pd ++FORCE_INLINE __m128d _mm_loadr_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t v = vld1q_f64(p); ++ return vreinterpretq_m128d_f64(vextq_f64(v, v, 1)); ++#else ++ int64x2_t v = vld1q_s64((const int64_t *) p); ++ return vreinterpretq_m128d_s64(vextq_s64(v, v, 1)); ++#endif ++} ++ ++// Loads two double-precision from unaligned memory, floating-point values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_pd ++FORCE_INLINE __m128d _mm_loadu_pd(const double *p) ++{ ++ return _mm_load_pd(p); ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si128 ++FORCE_INLINE __m128i _mm_loadu_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const unaligned_int32_t *) p)); ++} ++ ++// Load unaligned 32-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si32 ++FORCE_INLINE __m128i _mm_loadu_si32(const void *p) ++{ ++ return vreinterpretq_m128i_s32( ++ vsetq_lane_s32(*(const unaligned_int32_t *) p, vdupq_n_s32(0), 0)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Horizontally add adjacent pairs of intermediate ++// 32-bit integers, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_madd_epi16 ++FORCE_INLINE __m128i _mm_madd_epi16(__m128i a, __m128i b) ++{ ++ int32x4_t low = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t high = ++ vmull_high_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)); ++ ++ return vreinterpretq_m128i_s32(vpaddq_s32(low, high)); ++#else ++ int32x4_t high = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ int32x2_t low_sum = vpadd_s32(vget_low_s32(low), vget_high_s32(low)); ++ int32x2_t high_sum = vpadd_s32(vget_low_s32(high), vget_high_s32(high)); ++ ++ return vreinterpretq_m128i_s32(vcombine_s32(low_sum, high_sum)); ++#endif ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. mem_addr does not need to be aligned ++// on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmoveu_si128 ++FORCE_INLINE void _mm_maskmoveu_si128(__m128i a, __m128i mask, char *mem_addr) ++{ ++ int8x16_t shr_mask = vshrq_n_s8(vreinterpretq_s8_m128i(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x16_t masked = ++ vbslq_s8(vreinterpretq_u8_s8(shr_mask), vreinterpretq_s8_m128i(a), ++ vreinterpretq_s8_m128(b)); ++ vst1q_s8((int8_t *) mem_addr, masked); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi16 ++FORCE_INLINE __m128i _mm_max_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmaxq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu8 ++FORCE_INLINE __m128i _mm_max_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vmaxq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pd ++FORCE_INLINE __m128d _mm_max_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcgtq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vmaxq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? a1 : b1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_sd ++FORCE_INLINE __m128d _mm_max_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_max_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] > db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi16 ++FORCE_INLINE __m128i _mm_min_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vminq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu8 ++FORCE_INLINE __m128i _mm_min_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vminq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pd ++FORCE_INLINE __m128d _mm_min_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcltq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vminq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? a1 : b1; ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_sd ++FORCE_INLINE __m128d _mm_min_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_min_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] < db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to the lower element of dst, and zero the ++// upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_epi64 ++FORCE_INLINE __m128i _mm_move_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(0, vreinterpretq_s64_m128i(a), 1)); ++} ++ ++// Move the lower double-precision (64-bit) floating-point element from b to the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_sd ++FORCE_INLINE __m128d _mm_move_sd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vget_low_f32(vreinterpretq_f32_m128d(b)), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_epi8 ++FORCE_INLINE int _mm_movemask_epi8(__m128i a) ++{ ++ // Use increasingly wide shifts+adds to collect the sign bits ++ // together. ++ // Since the widening shifts would be rather confusing to follow in little ++ // endian, everything will be illustrated in big endian order instead. This ++ // has a different result - the bits would actually be reversed on a big ++ // endian machine. ++ ++ // Starting input (only half the elements are shown): ++ // 89 ff 1d c0 00 10 99 33 ++ uint8x16_t input = vreinterpretq_u8_m128i(a); ++ ++ // Shift out everything but the sign bits with an unsigned shift right. ++ // ++ // Bytes of the vector:: ++ // 89 ff 1d c0 00 10 99 33 ++ // \ \ \ \ \ \ \ \ high_bits = (uint16x4_t)(input >> 7) ++ // | | | | | | | | ++ // 01 01 00 01 00 00 01 00 ++ // ++ // Bits of first important lane(s): ++ // 10001001 (89) ++ // \______ ++ // | ++ // 00000001 (01) ++ uint16x8_t high_bits = vreinterpretq_u16_u8(vshrq_n_u8(input, 7)); ++ ++ // Merge the even lanes together with a 16-bit unsigned shift right + add. ++ // 'xx' represents garbage data which will be ignored in the final result. ++ // In the important bytes, the add functions like a binary OR. ++ // ++ // 01 01 00 01 00 00 01 00 ++ // \_ | \_ | \_ | \_ | paired16 = (uint32x4_t)(input + (input >> 7)) ++ // \| \| \| \| ++ // xx 03 xx 01 xx 00 xx 02 ++ // ++ // 00000001 00000001 (01 01) ++ // \_______ | ++ // \| ++ // xxxxxxxx xxxxxx11 (xx 03) ++ uint32x4_t paired16 = ++ vreinterpretq_u32_u16(vsraq_n_u16(high_bits, high_bits, 7)); ++ ++ // Repeat with a wider 32-bit shift + add. ++ // xx 03 xx 01 xx 00 xx 02 ++ // \____ | \____ | paired32 = (uint64x1_t)(paired16 + (paired16 >> ++ // 14)) ++ // \| \| ++ // xx xx xx 0d xx xx xx 02 ++ // ++ // 00000011 00000001 (03 01) ++ // \\_____ || ++ // '----.\|| ++ // xxxxxxxx xxxx1101 (xx 0d) ++ uint64x2_t paired32 = ++ vreinterpretq_u64_u32(vsraq_n_u32(paired16, paired16, 14)); ++ ++ // Last, an even wider 64-bit shift + add to get our result in the low 8 bit ++ // lanes. xx xx xx 0d xx xx xx 02 ++ // \_________ | paired64 = (uint8x8_t)(paired32 + (paired32 >> ++ // 28)) ++ // \| ++ // xx xx xx xx xx xx xx d2 ++ // ++ // 00001101 00000010 (0d 02) ++ // \ \___ | | ++ // '---. \| | ++ // xxxxxxxx 11010010 (xx d2) ++ uint8x16_t paired64 = ++ vreinterpretq_u8_u64(vsraq_n_u64(paired32, paired32, 28)); ++ ++ // Extract the low 8 bits from each 64-bit lane with 2 8-bit extracts. ++ // xx xx xx xx xx xx xx d2 ++ // || return paired64[0] ++ // d2 ++ // Note: Little endian would return the correct value 4b (01001011) instead. ++ return vgetq_lane_u8(paired64, 0) | ((int) vgetq_lane_u8(paired64, 8) << 8); ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed double-precision (64-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pd ++FORCE_INLINE int _mm_movemask_pd(__m128d a) ++{ ++ uint64x2_t input = vreinterpretq_u64_m128d(a); ++ uint64x2_t high_bits = vshrq_n_u64(input, 63); ++ return (int) (vgetq_lane_u64(high_bits, 0) | ++ (vgetq_lane_u64(high_bits, 1) << 1)); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movepi64_pi64 ++FORCE_INLINE __m64 _mm_movepi64_pi64(__m128i a) ++{ ++ return vreinterpret_m64_s64(vget_low_s64(vreinterpretq_s64_m128i(a))); ++} ++ ++// Copy the 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movpi64_epi64 ++FORCE_INLINE __m128i _mm_movpi64_epi64(__m64 a) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vreinterpret_s64_m64(a), vdup_n_s64(0))); ++} ++ ++// Multiply the low unsigned 32-bit integers from each packed 64-bit element in ++// a and b, and store the unsigned 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epu32 ++FORCE_INLINE __m128i _mm_mul_epu32(__m128i a, __m128i b) ++{ ++ // vmull_u32 upcasts instead of masking, so we downcast. ++ uint32x2_t a_lo = vmovn_u64(vreinterpretq_u64_m128i(a)); ++ uint32x2_t b_lo = vmovn_u64(vreinterpretq_u64_m128i(b)); ++ return vreinterpretq_m128i_u64(vmull_u32(a_lo, b_lo)); ++} ++ ++// Multiply packed double-precision (64-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_pd ++FORCE_INLINE __m128d _mm_mul_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vmulq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] * db[0]; ++ c[1] = da[1] * db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Multiply the lower double-precision (64-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper element ++// from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_mul_sd ++FORCE_INLINE __m128d _mm_mul_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_mul_pd(a, b)); ++} ++ ++// Multiply the low unsigned 32-bit integers from a and b, and store the ++// unsigned 64-bit result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_su32 ++FORCE_INLINE __m64 _mm_mul_su32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u64(vget_low_u64( ++ vmull_u32(vreinterpret_u32_m64(a), vreinterpret_u32_m64(b)))); ++} ++ ++// Multiply the packed signed 16-bit integers in a and b, producing intermediate ++// 32-bit integers, and store the high 16 bits of the intermediate integers in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epi16 ++FORCE_INLINE __m128i _mm_mulhi_epi16(__m128i a, __m128i b) ++{ ++ /* FIXME: issue with large values because of result saturation */ ++ // int16x8_t ret = vqdmulhq_s16(vreinterpretq_s16_m128i(a), ++ // vreinterpretq_s16_m128i(b)); /* =2*a*b */ return ++ // vreinterpretq_m128i_s16(vshrq_n_s16(ret, 1)); ++ int16x4_t a3210 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b3210 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab3210 = vmull_s16(a3210, b3210); /* 3333222211110000 */ ++ int16x4_t a7654 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b7654 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab7654 = vmull_s16(a7654, b7654); /* 7777666655554444 */ ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_s32(ab3210), vreinterpretq_u16_s32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epu16 ++FORCE_INLINE __m128i _mm_mulhi_epu16(__m128i a, __m128i b) ++{ ++ uint16x4_t a3210 = vget_low_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b3210 = vget_low_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab3210 = vmull_u16(a3210, b3210); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32x4_t ab7654 = ++ vmull_high_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ uint16x8_t r = vuzp2q_u16(vreinterpretq_u16_u32(ab3210), ++ vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r); ++#else ++ uint16x4_t a7654 = vget_high_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b7654 = vget_high_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab7654 = vmull_u16(a7654, b7654); ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_u32(ab3210), vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++#endif ++} ++ ++// Multiply the packed 16-bit integers in a and b, producing intermediate 32-bit ++// integers, and store the low 16 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi16 ++FORCE_INLINE __m128i _mm_mullo_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmulq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compute the bitwise OR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_or_pd ++FORCE_INLINE __m128d _mm_or_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vorrq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise OR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_si128 ++FORCE_INLINE __m128i _mm_or_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vorrq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi16 ++FORCE_INLINE __m128i _mm_packs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vqmovn_s16(vreinterpretq_s16_m128i(a)), ++ vqmovn_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi32 ++FORCE_INLINE __m128i _mm_packs_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vqmovn_s32(vreinterpretq_s32_m128i(a)), ++ vqmovn_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi16 ++FORCE_INLINE __m128i _mm_packus_epi16(const __m128i a, const __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcombine_u8(vqmovun_s16(vreinterpretq_s16_m128i(a)), ++ vqmovun_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Pause the processor. This is typically used in spin-wait loops and depending ++// on the x86 processor typical values are in the 40-100 cycle range. The ++// 'yield' instruction isn't a good fit because it's effectively a nop on most ++// Arm cores. Experience with several databases has shown has shown an 'isb' is ++// a reasonable approximation. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_pause ++FORCE_INLINE void _mm_pause(void) ++{ ++#if defined(_MSC_VER) ++ __isb(_ARM64_BARRIER_SY); ++#else ++ __asm__ __volatile__("isb\n"); ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce two ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of 64-bit elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_epu8 ++FORCE_INLINE __m128i _mm_sad_epu8(__m128i a, __m128i b) ++{ ++ uint16x8_t t = vpaddlq_u8(vabdq_u8((uint8x16_t) a, (uint8x16_t) b)); ++ return vreinterpretq_m128i_u64(vpaddlq_u32(vpaddlq_u16(t))); ++} ++ ++// Set packed 16-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi16 ++FORCE_INLINE __m128i _mm_set_epi16(short i7, ++ short i6, ++ short i5, ++ short i4, ++ short i3, ++ short i2, ++ short i1, ++ short i0) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {i0, i1, i2, i3, i4, i5, i6, i7}; ++ return vreinterpretq_m128i_s16(vld1q_s16(data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi32 ++FORCE_INLINE __m128i _mm_set_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i0, i1, i2, i3}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64 ++FORCE_INLINE __m128i _mm_set_epi64(__m64 i1, __m64 i2) ++{ ++ return _mm_set_epi64x(vget_lane_s64(i1, 0), vget_lane_s64(i2, 0)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64x ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t i1, int64_t i2) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vcreate_s64(i2), vcreate_s64(i1))); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi8 ++FORCE_INLINE __m128i _mm_set_epi8(signed char b15, ++ signed char b14, ++ signed char b13, ++ signed char b12, ++ signed char b11, ++ signed char b10, ++ signed char b9, ++ signed char b8, ++ signed char b7, ++ signed char b6, ++ signed char b5, ++ signed char b4, ++ signed char b3, ++ signed char b2, ++ signed char b1, ++ signed char b0) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd ++FORCE_INLINE __m128d _mm_set_pd(double e1, double e0) ++{ ++ double ALIGN_STRUCT(16) data[2] = {e0, e1}; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64((float64_t *) data)); ++#else ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) data)); ++#endif ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd1 ++#define _mm_set_pd1 _mm_set1_pd ++ ++// Copy double-precision (64-bit) floating-point element a to the lower element ++// of dst, and zero the upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_sd ++FORCE_INLINE __m128d _mm_set_sd(double a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(a, vdupq_n_f64(0), 0)); ++#else ++ return _mm_set_pd(0, a); ++#endif ++} ++ ++// Broadcast 16-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi16 ++FORCE_INLINE __m128i _mm_set1_epi16(short w) ++{ ++ return vreinterpretq_m128i_s16(vdupq_n_s16(w)); ++} ++ ++// Broadcast 32-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi32 ++FORCE_INLINE __m128i _mm_set1_epi32(int _i) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(_i)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64 ++FORCE_INLINE __m128i _mm_set1_epi64(__m64 _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_lane_s64(_i, 0)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64x ++FORCE_INLINE __m128i _mm_set1_epi64x(int64_t _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_n_s64(_i)); ++} ++ ++// Broadcast 8-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi8 ++FORCE_INLINE __m128i _mm_set1_epi8(signed char w) ++{ ++ return vreinterpretq_m128i_s8(vdupq_n_s8(w)); ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_pd ++FORCE_INLINE __m128d _mm_set1_pd(double d) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(d)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(int64_t *) &d)); ++#endif ++} ++ ++// Set packed 16-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi16 ++FORCE_INLINE __m128i _mm_setr_epi16(short w0, ++ short w1, ++ short w2, ++ short w3, ++ short w4, ++ short w5, ++ short w6, ++ short w7) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {w0, w1, w2, w3, w4, w5, w6, w7}; ++ return vreinterpretq_m128i_s16(vld1q_s16((int16_t *) data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi32 ++FORCE_INLINE __m128i _mm_setr_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i3, i2, i1, i0}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi64 ++FORCE_INLINE __m128i _mm_setr_epi64(__m64 e1, __m64 e0) ++{ ++ return vreinterpretq_m128i_s64(vcombine_s64(e1, e0)); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi8 ++FORCE_INLINE __m128i _mm_setr_epi8(signed char b0, ++ signed char b1, ++ signed char b2, ++ signed char b3, ++ signed char b4, ++ signed char b5, ++ signed char b6, ++ signed char b7, ++ signed char b8, ++ signed char b9, ++ signed char b10, ++ signed char b11, ++ signed char b12, ++ signed char b13, ++ signed char b14, ++ signed char b15) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_pd ++FORCE_INLINE __m128d _mm_setr_pd(double e1, double e0) ++{ ++ return _mm_set_pd(e0, e1); ++} ++ ++// Return vector of type __m128d with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_pd ++FORCE_INLINE __m128d _mm_setzero_pd(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(0)); ++#else ++ return vreinterpretq_m128d_f32(vdupq_n_f32(0)); ++#endif ++} ++ ++// Return vector of type __m128i with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_si128 ++FORCE_INLINE __m128i _mm_setzero_si128(void) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(0)); ++} ++ ++// Shuffle 32-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi32 ++// FORCE_INLINE __m128i _mm_shuffle_epi32(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shuffle_epi32(a, imm) \ ++ __extension__({ \ ++ int32x4_t _input = vreinterpretq_s32_m128i(a); \ ++ int32x4_t _shuf = \ ++ vshuffleq_s32(_input, _input, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ ((imm) >> 4) & 0x3, ((imm) >> 6) & 0x3); \ ++ vreinterpretq_m128i_s32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_epi32(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, __m128i ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_epi_1032(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_epi_2301(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_epi_0321(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_epi_2103(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_shuffle_epi_1010(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_epi_1001(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_epi_0101(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 1, 1): \ ++ ret = _mm_shuffle_epi_2211(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 2, 2): \ ++ ret = _mm_shuffle_epi_0122(_a); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 2): \ ++ ret = _mm_shuffle_epi_3332(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 0, 0): \ ++ ret = _mm_shuffle_epi32_splat(_a, 0); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 1, 1): \ ++ ret = _mm_shuffle_epi32_splat(_a, 1); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 2, 2): \ ++ ret = _mm_shuffle_epi32_splat(_a, 2); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 3): \ ++ ret = _mm_shuffle_epi32_splat(_a, 3); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_epi32_default(_a, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Shuffle double-precision (64-bit) floating-point elements using the control ++// in imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pd ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pd(a, b, imm8) \ ++ vreinterpretq_m128d_s64( \ ++ vshuffleq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b), \ ++ imm8 & 0x1, ((imm8 & 0x2) >> 1) + 2)) ++#else ++#define _mm_shuffle_pd(a, b, imm8) \ ++ _mm_castsi128_pd(_mm_set_epi64x( \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(b), (imm8 & 0x2) >> 1), \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(a), imm8 & 0x1))) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflehi_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflehi_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = \ ++ vshuffleq_s16(_input, _input, 0, 1, 2, 3, ((imm) & (0x3)) + 4, \ ++ (((imm) >> 2) & 0x3) + 4, (((imm) >> 4) & 0x3) + 4, \ ++ (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflehi_epi16(a, imm) _mm_shufflehi_epi16_function((a), (imm)) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflelo_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflelo_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = vshuffleq_s16( \ ++ _input, _input, ((imm) & (0x3)), (((imm) >> 2) & 0x3), \ ++ (((imm) >> 4) & 0x3), (((imm) >> 6) & 0x3), 4, 5, 6, 7); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflelo_epi16(a, imm) _mm_shufflelo_epi16_function((a), (imm)) ++#endif ++ ++// Shift packed 16-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi16 ++FORCE_INLINE __m128i _mm_sll_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16((int16_t) c); ++ return vreinterpretq_m128i_s16(vshlq_s16(vreinterpretq_s16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi32 ++FORCE_INLINE __m128i _mm_sll_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32((int32_t) c); ++ return vreinterpretq_m128i_s32(vshlq_s32(vreinterpretq_s32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi64 ++FORCE_INLINE __m128i _mm_sll_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64((int64_t) c); ++ return vreinterpretq_m128i_s64(vshlq_s64(vreinterpretq_s64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi16 ++FORCE_INLINE __m128i _mm_slli_epi16(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~15)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16(vreinterpretq_s16_m128i(a), vdupq_n_s16(imm))); ++} ++ ++// Shift packed 32-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi32 ++FORCE_INLINE __m128i _mm_slli_epi32(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~31)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32(vreinterpretq_s32_m128i(a), vdupq_n_s32(imm))); ++} ++ ++// Shift packed 64-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi64 ++FORCE_INLINE __m128i _mm_slli_epi64(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~63)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s64( ++ vshlq_s64(vreinterpretq_s64_m128i(a), vdupq_n_s64(imm))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_si128 ++#define _mm_slli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely(imm == 0)) ret = vreinterpretq_s8_m128i(_a); \ ++ else if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vdupq_n_s8(0), vreinterpretq_s8_m128i(_a), \ ++ ((imm <= 0 || imm > 15) ? 0 : (16 - imm))); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Compute the square root of packed double-precision (64-bit) floating-point ++// elements in a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_pd ++FORCE_INLINE __m128d _mm_sqrt_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsqrtq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double a0 = sqrt(((double *) &a)[0]); ++ double a1 = sqrt(((double *) &a)[1]); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Compute the square root of the lower double-precision (64-bit) floating-point ++// element in b, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_sd ++FORCE_INLINE __m128d _mm_sqrt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_sqrt_pd(b)); ++#else ++ return _mm_set_pd(((double *) &a)[1], sqrt(((double *) &b)[0])); ++#endif ++} ++ ++// Shift packed 16-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi16 ++FORCE_INLINE __m128i _mm_sra_epi16(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_cmplt_epi16(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16((int16x8_t) a, vdupq_n_s16((int) -c))); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi32 ++FORCE_INLINE __m128i _mm_sra_epi32(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_cmplt_epi32(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32((int32x4_t) a, vdupq_n_s32((int) -c))); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in sign ++// bits, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi16 ++FORCE_INLINE __m128i _mm_srai_epi16(__m128i a, int imm) ++{ ++ const int count = (imm & ~15) ? 15 : imm; ++ return (__m128i) vshlq_s16((int16x8_t) a, vdupq_n_s16(-count)); ++} ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi32 ++// FORCE_INLINE __m128i _mm_srai_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srai_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) == 0)) { \ ++ ret = _a; \ ++ } else if (_sse2neon_likely(0 < (imm) && (imm) < 32)) { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshlq_s32(vreinterpretq_s32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } else { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshrq_n_s32(vreinterpretq_s32_m128i(_a), 31)); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 16-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi16 ++FORCE_INLINE __m128i _mm_srl_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16(-(int16_t) c); ++ return vreinterpretq_m128i_u16(vshlq_u16(vreinterpretq_u16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi32 ++FORCE_INLINE __m128i _mm_srl_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32(-(int32_t) c); ++ return vreinterpretq_m128i_u32(vshlq_u32(vreinterpretq_u32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi64 ++FORCE_INLINE __m128i _mm_srl_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64(-(int64_t) c); ++ return vreinterpretq_m128i_u64(vshlq_u64(vreinterpretq_u64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi16 ++#define _mm_srli_epi16(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~15)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u16( \ ++ vshlq_u16(vreinterpretq_u16_m128i(_a), vdupq_n_s16(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi32 ++// FORCE_INLINE __m128i _mm_srli_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srli_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~31)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u32( \ ++ vshlq_u32(vreinterpretq_u32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 64-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi64 ++#define _mm_srli_epi64(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~63)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u64( \ ++ vshlq_u64(vreinterpretq_u64_m128i(_a), vdupq_n_s64(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_si128 ++#define _mm_srli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vreinterpretq_s8_m128i(_a), vdupq_n_s8(0), \ ++ (imm > 15 ? 0 : imm)); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd ++FORCE_INLINE void _mm_store_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64((float64_t *) mem_addr, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_f32((float32_t *) mem_addr, vreinterpretq_f32_m128d(a)); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd1 ++FORCE_INLINE void _mm_store_pd1(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x1_t a_low = vget_low_f64(vreinterpretq_f64_m128d(a)); ++ vst1q_f64((float64_t *) mem_addr, ++ vreinterpretq_f64_m128d(vcombine_f64(a_low, a_low))); ++#else ++ float32x2_t a_low = vget_low_f32(vreinterpretq_f32_m128d(a)); ++ vst1q_f32((float32_t *) mem_addr, ++ vreinterpretq_f32_m128d(vcombine_f32(a_low, a_low))); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_store_sd ++FORCE_INLINE void _mm_store_sd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_u64((uint64_t *) mem_addr, vget_low_u64(vreinterpretq_u64_m128d(a))); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_si128 ++FORCE_INLINE void _mm_store_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#expand=9,526,5601&text=_mm_store1_pd ++#define _mm_store1_pd _mm_store_pd1 ++ ++// Store the upper double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pd ++FORCE_INLINE void _mm_storeh_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_high_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_high_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 64-bit integer from the first element of a into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_epi64 ++FORCE_INLINE void _mm_storel_epi64(__m128i *a, __m128i b) ++{ ++ vst1_u64((uint64_t *) a, vget_low_u64(vreinterpretq_u64_m128i(b))); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pd ++FORCE_INLINE void _mm_storel_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_low_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 2 double-precision (64-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_pd ++FORCE_INLINE void _mm_storer_pd(double *mem_addr, __m128d a) ++{ ++ float32x4_t f = vreinterpretq_f32_m128d(a); ++ _mm_store_pd(mem_addr, vreinterpretq_m128d_f32(vextq_f32(f, f, 2))); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_pd ++FORCE_INLINE void _mm_storeu_pd(double *mem_addr, __m128d a) ++{ ++ _mm_store_pd(mem_addr, a); ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si128 ++FORCE_INLINE void _mm_storeu_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store 32-bit integer from the first element of a into memory. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si32 ++FORCE_INLINE void _mm_storeu_si32(void *p, __m128i a) ++{ ++ vst1q_lane_s32((int32_t *) p, vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory using a non-temporal memory hint. mem_addr must ++// be aligned on a 16-byte boundary or a general-protection exception may be ++// generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pd ++FORCE_INLINE void _mm_stream_pd(double *p, __m128d a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (__m128d *) p); ++#elif defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64(p, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128d(a)); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory using a non-temporal memory ++// hint. mem_addr must be aligned on a 16-byte boundary or a general-protection ++// exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si128 ++FORCE_INLINE void _mm_stream_si128(__m128i *p, __m128i a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, p); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128i(a)); ++#endif ++} ++ ++// Store 32-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si32 ++FORCE_INLINE void _mm_stream_si32(int *p, int a) ++{ ++ vst1q_lane_s32((int32_t *) p, vdupq_n_s32(a), 0); ++} ++ ++// Store 64-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si64 ++FORCE_INLINE void _mm_stream_si64(__int64 *p, __int64 a) ++{ ++ vst1_s64((int64_t *) p, vdup_n_s64((int64_t) a)); ++} ++ ++// Subtract packed 16-bit integers in b from packed 16-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi16 ++FORCE_INLINE __m128i _mm_sub_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed 32-bit integers in b from packed 32-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi32 ++FORCE_INLINE __m128i _mm_sub_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Subtract packed 64-bit integers in b from packed 64-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi64 ++FORCE_INLINE __m128i _mm_sub_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vsubq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Subtract packed 8-bit integers in b from packed 8-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi8 ++FORCE_INLINE __m128i _mm_sub_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed double-precision (64-bit) floating-point elements in b from ++// packed double-precision (64-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_sub_pd ++FORCE_INLINE __m128d _mm_sub_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] - db[0]; ++ c[1] = da[1] - db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Subtract the lower double-precision (64-bit) floating-point element in b from ++// the lower double-precision (64-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_sd ++FORCE_INLINE __m128d _mm_sub_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_sub_pd(a, b)); ++} ++ ++// Subtract 64-bit integer b from 64-bit integer a, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_si64 ++FORCE_INLINE __m64 _mm_sub_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vsub_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Subtract packed signed 16-bit integers in b from packed 16-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi16 ++FORCE_INLINE __m128i _mm_subs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed signed 8-bit integers in b from packed 8-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi8 ++FORCE_INLINE __m128i _mm_subs_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed unsigned 16-bit integers in b from packed unsigned 16-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu16 ++FORCE_INLINE __m128i _mm_subs_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqsubq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Subtract packed unsigned 8-bit integers in b from packed unsigned 8-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu8 ++FORCE_INLINE __m128i _mm_subs_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqsubq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++#define _mm_ucomieq_sd _mm_comieq_sd ++#define _mm_ucomige_sd _mm_comige_sd ++#define _mm_ucomigt_sd _mm_comigt_sd ++#define _mm_ucomile_sd _mm_comile_sd ++#define _mm_ucomilt_sd _mm_comilt_sd ++#define _mm_ucomineq_sd _mm_comineq_sd ++ ++// Return vector of type __m128d with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_pd ++FORCE_INLINE __m128d _mm_undefined_pd(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128d a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_pd(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi16 ++FORCE_INLINE __m128i _mm_unpackhi_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip2q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi32 ++FORCE_INLINE __m128i _mm_unpackhi_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip2q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_high_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi64 ++FORCE_INLINE __m128i _mm_unpackhi_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip2q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_h = vget_high_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_h = vget_high_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_h, b_h)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the high half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi8 ++FORCE_INLINE __m128i _mm_unpackhi_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip2q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the high half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_pd ++FORCE_INLINE __m128d _mm_unpackhi_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip2q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_high_s64(vreinterpretq_s64_m128d(a)), ++ vget_high_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi16 ++FORCE_INLINE __m128i _mm_unpacklo_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip1q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi32 ++FORCE_INLINE __m128i _mm_unpacklo_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip1q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_low_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi64 ++FORCE_INLINE __m128i _mm_unpacklo_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip1q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_l = vget_low_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_l = vget_low_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_l, b_l)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi8 ++FORCE_INLINE __m128i _mm_unpacklo_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip1q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_pd ++FORCE_INLINE __m128d _mm_unpacklo_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip1q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_low_s64(vreinterpretq_s64_m128d(a)), ++ vget_low_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Compute the bitwise XOR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_pd ++FORCE_INLINE __m128d _mm_xor_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ veorq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise XOR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_si128 ++FORCE_INLINE __m128i _mm_xor_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ veorq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++/* SSE3 */ ++ ++// Alternatively add and subtract packed double-precision (64-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_addsub_pd ++FORCE_INLINE __m128d _mm_addsub_pd(__m128d a, __m128d b) ++{ ++ _sse2neon_const __m128d mask = _mm_set_pd(1.0f, -1.0f); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vfmaq_f64(vreinterpretq_f64_m128d(a), ++ vreinterpretq_f64_m128d(b), ++ vreinterpretq_f64_m128d(mask))); ++#else ++ return _mm_add_pd(_mm_mul_pd(b, mask), a); ++#endif ++} ++ ++// Alternatively add and subtract packed single-precision (32-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=addsub_ps ++FORCE_INLINE __m128 _mm_addsub_ps(__m128 a, __m128 b) ++{ ++ _sse2neon_const __m128 mask = _mm_setr_ps(-1.0f, 1.0f, -1.0f, 1.0f); ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_FMA) /* VFPv4+ */ ++ return vreinterpretq_m128_f32(vfmaq_f32(vreinterpretq_f32_m128(a), ++ vreinterpretq_f32_m128(mask), ++ vreinterpretq_f32_m128(b))); ++#else ++ return _mm_add_ps(_mm_mul_ps(b, mask), a); ++#endif ++} ++ ++// Horizontally add adjacent pairs of double-precision (64-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pd ++FORCE_INLINE __m128d _mm_hadd_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vpaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[] = {da[0] + da[1], db[0] + db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of single-precision (32-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_ps ++FORCE_INLINE __m128 _mm_hadd_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vpaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vpadd_f32(a10, a32), vpadd_f32(b10, b32))); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of double-precision (64-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pd ++FORCE_INLINE __m128d _mm_hsub_pd(__m128d _a, __m128d _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vuzp1q_f64(a, b), vuzp2q_f64(a, b))); ++#else ++ double *da = (double *) &_a; ++ double *db = (double *) &_b; ++ double c[] = {da[0] - da[1], db[0] - db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of single-precision (32-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_ps ++FORCE_INLINE __m128 _mm_hsub_ps(__m128 _a, __m128 _b) ++{ ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vuzp1q_f32(a, b), vuzp2q_f32(a, b))); ++#else ++ float32x4x2_t c = vuzpq_f32(a, b); ++ return vreinterpretq_m128_f32(vsubq_f32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Load 128-bits of integer data from unaligned memory into dst. This intrinsic ++// may perform better than _mm_loadu_si128 when the data crosses a cache line ++// boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lddqu_si128 ++#define _mm_lddqu_si128 _mm_loadu_si128 ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loaddup_pd ++#define _mm_loaddup_pd _mm_load1_pd ++ ++// Duplicate the low double-precision (64-bit) floating-point element from a, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movedup_pd ++FORCE_INLINE __m128d _mm_movedup_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdupq_laneq_f64(vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_u64( ++ vdupq_n_u64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0))); ++#endif ++} ++ ++// Duplicate odd-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehdup_ps ++FORCE_INLINE __m128 _mm_movehdup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 1, 1, 3, 3)); ++#else ++ float32_t a1 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ float32_t a3 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 3); ++ float ALIGN_STRUCT(16) data[4] = {a1, a1, a3, a3}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Duplicate even-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_moveldup_ps ++FORCE_INLINE __m128 _mm_moveldup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 0, 0, 2, 2)); ++#else ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32_t a2 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 2); ++ float ALIGN_STRUCT(16) data[4] = {a0, a0, a2, a2}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++/* SSSE3 */ ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi16 ++FORCE_INLINE __m128i _mm_abs_epi16(__m128i a) ++{ ++ return vreinterpretq_m128i_s16(vabsq_s16(vreinterpretq_s16_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi32 ++FORCE_INLINE __m128i _mm_abs_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32(vabsq_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi8 ++FORCE_INLINE __m128i _mm_abs_epi8(__m128i a) ++{ ++ return vreinterpretq_m128i_s8(vabsq_s8(vreinterpretq_s8_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi16 ++FORCE_INLINE __m64 _mm_abs_pi16(__m64 a) ++{ ++ return vreinterpret_m64_s16(vabs_s16(vreinterpret_s16_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi32 ++FORCE_INLINE __m64 _mm_abs_pi32(__m64 a) ++{ ++ return vreinterpret_m64_s32(vabs_s32(vreinterpret_s32_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi8 ++FORCE_INLINE __m64 _mm_abs_pi8(__m64 a) ++{ ++ return vreinterpret_m64_s8(vabs_s8(vreinterpret_s8_m64(a))); ++} ++ ++// Concatenate 16-byte blocks in a and b into a 32-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 16 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_epi8 ++#if defined(__GNUC__) && !defined(__clang__) ++#define _mm_alignr_epi8(a, b, imm) \ ++ __extension__({ \ ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); \ ++ uint8x16_t _b = vreinterpretq_u8_m128i(b); \ ++ __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) \ ++ ret = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) \ ++ ret = _mm_srli_si128(a, imm >= 16 ? imm - 16 : 0); \ ++ else \ ++ ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(_b, _a, imm < 16 ? imm : 0)); \ ++ ret; \ ++ }) ++ ++#else ++#define _mm_alignr_epi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, uint8x16_t __a = vreinterpretq_u8_m128i(_a); \ ++ uint8x16_t __b = vreinterpretq_u8_m128i(_b); __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) ret = \ ++ vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) ret = \ ++ _mm_srli_si128(_a, imm >= 16 ? imm - 16 : 0); \ ++ else ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(__b, __a, imm < 16 ? imm : 0)); \ ++ _sse2neon_return(ret);) ++ ++#endif ++ ++// Concatenate 8-byte blocks in a and b into a 16-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 8 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_pi8 ++#define _mm_alignr_pi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m64, a, b, __m64 ret; if (_sse2neon_unlikely((imm) >= 16)) { \ ++ ret = vreinterpret_m64_s8(vdup_n_s8(0)); \ ++ } else { \ ++ uint8x8_t tmp_low; \ ++ uint8x8_t tmp_high; \ ++ if ((imm) >= 8) { \ ++ const int idx = (imm) -8; \ ++ tmp_low = vreinterpret_u8_m64(_a); \ ++ tmp_high = vdup_n_u8(0); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } else { \ ++ const int idx = (imm); \ ++ tmp_low = vreinterpret_u8_m64(_b); \ ++ tmp_high = vreinterpret_u8_m64(_a); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } \ ++ } _sse2neon_return(ret);) ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi16 ++FORCE_INLINE __m128i _mm_hadd_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16(vpaddq_s16(a, b)); ++#else ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(vget_low_s16(a), vget_high_s16(a)), ++ vpadd_s16(vget_low_s16(b), vget_high_s16(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi32 ++FORCE_INLINE __m128i _mm_hadd_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32(vpaddq_s32(a, b)); ++#else ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vpadd_s32(vget_low_s32(a), vget_high_s32(a)), ++ vpadd_s32(vget_low_s32(b), vget_high_s32(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi16 ++FORCE_INLINE __m64 _mm_hadd_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vpadd_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi32 ++FORCE_INLINE __m64 _mm_hadd_pi32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s32( ++ vpadd_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_epi16 ++FORCE_INLINE __m128i _mm_hadds_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ return vreinterpretq_s64_s16( ++ vqaddq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ // Interleave using vshrn/vmovn ++ // [a0|a2|a4|a6|b0|b2|b4|b6] ++ // [a1|a3|a5|a7|b1|b3|b5|b7] ++ int16x8_t ab0246 = vcombine_s16(vmovn_s32(a), vmovn_s32(b)); ++ int16x8_t ab1357 = vcombine_s16(vshrn_n_s32(a, 16), vshrn_n_s32(b, 16)); ++ // Saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(ab0246, ab1357)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_pi16 ++FORCE_INLINE __m64 _mm_hadds_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_s64_s16(vqadd_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t res = vuzp_s16(a, b); ++ return vreinterpret_s64_s16(vqadd_s16(res.val[0], res.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi16 ++FORCE_INLINE __m128i _mm_hsub_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi32 ++FORCE_INLINE __m128i _mm_hsub_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vuzp1q_s32(a, b), vuzp2q_s32(a, b))); ++#else ++ int32x4x2_t c = vuzpq_s32(a, b); ++ return vreinterpretq_m128i_s32(vsubq_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pi16 ++FORCE_INLINE __m64 _mm_hsub_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_hsub_pi32 ++FORCE_INLINE __m64 _mm_hsub_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s32(vsub_s32(vuzp1_s32(a, b), vuzp2_s32(a, b))); ++#else ++ int32x2x2_t c = vuzp_s32(a, b); ++ return vreinterpret_m64_s32(vsub_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_epi16 ++FORCE_INLINE __m128i _mm_hsubs_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vqsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_pi16 ++FORCE_INLINE __m64 _mm_hsubs_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vqsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vqsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, ++// and pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_epi16 ++FORCE_INLINE __m128i _mm_maddubs_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ int16x8_t tl = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_low_u8(a))), ++ vmovl_s8(vget_low_s8(b))); ++ int16x8_t th = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_high_u8(a))), ++ vmovl_s8(vget_high_s8(b))); ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vuzp1q_s16(tl, th), vuzp2q_s16(tl, th))); ++#else ++ // This would be much simpler if x86 would choose to zero extend OR sign ++ // extend, not both. This could probably be optimized better. ++ uint16x8_t a = vreinterpretq_u16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // Zero extend a ++ int16x8_t a_odd = vreinterpretq_s16_u16(vshrq_n_u16(a, 8)); ++ int16x8_t a_even = vreinterpretq_s16_u16(vbicq_u16(a, vdupq_n_u16(0xff00))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x8_t b_even = vshrq_n_s16(vshlq_n_s16(b, 8), 8); ++ int16x8_t b_odd = vshrq_n_s16(b, 8); ++ ++ // multiply ++ int16x8_t prod1 = vmulq_s16(a_even, b_even); ++ int16x8_t prod2 = vmulq_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(prod1, prod2)); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, and ++// pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_pi16 ++FORCE_INLINE __m64 _mm_maddubs_pi16(__m64 _a, __m64 _b) ++{ ++ uint16x4_t a = vreinterpret_u16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // Zero extend a ++ int16x4_t a_odd = vreinterpret_s16_u16(vshr_n_u16(a, 8)); ++ int16x4_t a_even = vreinterpret_s16_u16(vand_u16(a, vdup_n_u16(0xff))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x4_t b_even = vshr_n_s16(vshl_n_s16(b, 8), 8); ++ int16x4_t b_odd = vshr_n_s16(b, 8); ++ ++ // multiply ++ int16x4_t prod1 = vmul_s16(a_even, b_even); ++ int16x4_t prod2 = vmul_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpret_m64_s16(vqadd_s16(prod1, prod2)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Shift right by 15 bits while rounding up, and store ++// the packed 16-bit integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_epi16 ++FORCE_INLINE __m128i _mm_mulhrs_epi16(__m128i a, __m128i b) ++{ ++ // Has issues due to saturation ++ // return vreinterpretq_m128i_s16(vqrdmulhq_s16(a, b)); ++ ++ // Multiply ++ int32x4_t mul_lo = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int32x4_t mul_hi = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ // Rounding narrowing shift right ++ // narrow = (int16_t)((mul + 16384) >> 15); ++ int16x4_t narrow_lo = vrshrn_n_s32(mul_lo, 15); ++ int16x4_t narrow_hi = vrshrn_n_s32(mul_hi, 15); ++ ++ // Join together ++ return vreinterpretq_m128i_s16(vcombine_s16(narrow_lo, narrow_hi)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Truncate each intermediate integer to the 18 most ++// significant bits, round by adding 1, and store bits [16:1] to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_pi16 ++FORCE_INLINE __m64 _mm_mulhrs_pi16(__m64 a, __m64 b) ++{ ++ int32x4_t mul_extend = ++ vmull_s16((vreinterpret_s16_m64(a)), (vreinterpret_s16_m64(b))); ++ ++ // Rounding narrowing shift right ++ return vreinterpret_m64_s16(vrshrn_n_s32(mul_extend, 15)); ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi8 ++FORCE_INLINE __m128i _mm_shuffle_epi8(__m128i a, __m128i b) ++{ ++ int8x16_t tbl = vreinterpretq_s8_m128i(a); // input a ++ uint8x16_t idx = vreinterpretq_u8_m128i(b); // input b ++ uint8x16_t idx_masked = ++ vandq_u8(idx, vdupq_n_u8(0x8F)); // avoid using meaningless bits ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8(vqtbl1q_s8(tbl, idx_masked)); ++#elif defined(__GNUC__) ++ int8x16_t ret; ++ // %e and %f represent the even and odd D registers ++ // respectively. ++ __asm__ __volatile__( ++ "vtbl.8 %e[ret], {%e[tbl], %f[tbl]}, %e[idx]\n" ++ "vtbl.8 %f[ret], {%e[tbl], %f[tbl]}, %f[idx]\n" ++ : [ret] "=&w"(ret) ++ : [tbl] "w"(tbl), [idx] "w"(idx_masked)); ++ return vreinterpretq_m128i_s8(ret); ++#else ++ // use this line if testing on aarch64 ++ int8x8x2_t a_split = {vget_low_s8(tbl), vget_high_s8(tbl)}; ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vtbl2_s8(a_split, vget_low_u8(idx_masked)), ++ vtbl2_s8(a_split, vget_high_u8(idx_masked)))); ++#endif ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi8 ++FORCE_INLINE __m64 _mm_shuffle_pi8(__m64 a, __m64 b) ++{ ++ const int8x8_t controlMask = ++ vand_s8(vreinterpret_s8_m64(b), vdup_n_s8((int8_t) (0x1 << 7 | 0x07))); ++ int8x8_t res = vtbl1_s8(vreinterpret_s8_m64(a), controlMask); ++ return vreinterpret_m64_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed ++// 16-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi16 ++FORCE_INLINE __m128i _mm_sign_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x8_t ltMask = vreinterpretq_u16_s16(vshrq_n_s16(b, 15)); ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqzq_s16(b)); ++#else ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqq_s16(b, vdupq_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s16(a) equals to negative ++ // 'a') based on ltMask ++ int16x8_t masked = vbslq_s16(ltMask, vnegq_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x8_t res = vbicq_s16(masked, zeroMask); ++ return vreinterpretq_m128i_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed ++// 32-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi32 ++FORCE_INLINE __m128i _mm_sign_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x4_t ltMask = vreinterpretq_u32_s32(vshrq_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqzq_s32(b)); ++#else ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqq_s32(b, vdupq_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s32(a) equals to negative ++ // 'a') based on ltMask ++ int32x4_t masked = vbslq_s32(ltMask, vnegq_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x4_t res = vbicq_s32(masked, zeroMask); ++ return vreinterpretq_m128i_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed ++// 8-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi8 ++FORCE_INLINE __m128i _mm_sign_epi8(__m128i _a, __m128i _b) ++{ ++ int8x16_t a = vreinterpretq_s8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x16_t ltMask = vreinterpretq_u8_s8(vshrq_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqzq_s8(b)); ++#else ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqq_s8(b, vdupq_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s8(a) return negative 'a') ++ // based on ltMask ++ int8x16_t masked = vbslq_s8(ltMask, vnegq_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x16_t res = vbicq_s8(masked, zeroMask); ++ ++ return vreinterpretq_m128i_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed 16-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi16 ++FORCE_INLINE __m64 _mm_sign_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x4_t ltMask = vreinterpret_u16_s16(vshr_n_s16(b, 15)); ++ ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceqz_s16(b)); ++#else ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceq_s16(b, vdup_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s16(a) return negative 'a') ++ // based on ltMask ++ int16x4_t masked = vbsl_s16(ltMask, vneg_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x4_t res = vbic_s16(masked, zeroMask); ++ ++ return vreinterpret_m64_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed 32-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi32 ++FORCE_INLINE __m64 _mm_sign_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x2_t ltMask = vreinterpret_u32_s32(vshr_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceqz_s32(b)); ++#else ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceq_s32(b, vdup_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s32(a) return negative 'a') ++ // based on ltMask ++ int32x2_t masked = vbsl_s32(ltMask, vneg_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x2_t res = vbic_s32(masked, zeroMask); ++ ++ return vreinterpret_m64_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed 8-bit integer ++// in b is negative, and store the results in dst. Element in dst are zeroed out ++// when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi8 ++FORCE_INLINE __m64 _mm_sign_pi8(__m64 _a, __m64 _b) ++{ ++ int8x8_t a = vreinterpret_s8_m64(_a); ++ int8x8_t b = vreinterpret_s8_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x8_t ltMask = vreinterpret_u8_s8(vshr_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceqz_s8(b)); ++#else ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceq_s8(b, vdup_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s8(a) return negative 'a') ++ // based on ltMask ++ int8x8_t masked = vbsl_s8(ltMask, vneg_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x8_t res = vbic_s8(masked, zeroMask); ++ ++ return vreinterpret_m64_s8(res); ++} ++ ++/* SSE4.1 */ ++ ++// Blend packed 16-bit integers from a and b using control mask imm8, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_epi16 ++// FORCE_INLINE __m128i _mm_blend_epi16(__m128i a, __m128i b, ++// __constrange(0,255) int imm) ++#define _mm_blend_epi16(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, \ ++ const uint16_t _mask[8] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 1)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 2)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 3)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 4)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 5)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 6)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 7)) ? (uint16_t) -1 : 0x0); \ ++ uint16x8_t _mask_vec = vld1q_u16(_mask); \ ++ uint16x8_t __a = vreinterpretq_u16_m128i(_a); \ ++ uint16x8_t __b = vreinterpretq_u16_m128i(_b); _sse2neon_return( \ ++ vreinterpretq_m128i_u16(vbslq_u16(_mask_vec, __b, __a)));) ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using control mask imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_pd ++#define _mm_blend_pd(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128d, a, b, \ ++ const uint64_t _mask[2] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? ~UINT64_C(0) : UINT64_C(0), \ ++ ((imm) & (1 << 1)) ? ~UINT64_C(0) : UINT64_C(0)); \ ++ uint64x2_t _mask_vec = vld1q_u64(_mask); \ ++ uint64x2_t __a = vreinterpretq_u64_m128d(_a); \ ++ uint64x2_t __b = vreinterpretq_u64_m128d(_b); _sse2neon_return( \ ++ vreinterpretq_m128d_u64(vbslq_u64(_mask_vec, __b, __a)));) ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_ps ++FORCE_INLINE __m128 _mm_blend_ps(__m128 _a, __m128 _b, const char imm8) ++{ ++ const uint32_t ALIGN_STRUCT(16) ++ data[4] = {((imm8) & (1 << 0)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0}; ++ uint32x4_t mask = vld1q_u32(data); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Blend packed 8-bit integers from a and b using mask, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_epi8 ++FORCE_INLINE __m128i _mm_blendv_epi8(__m128i _a, __m128i _b, __m128i _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint8x16_t mask = ++ vreinterpretq_u8_s8(vshrq_n_s8(vreinterpretq_s8_m128i(_mask), 7)); ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ uint8x16_t b = vreinterpretq_u8_m128i(_b); ++ return vreinterpretq_m128i_u8(vbslq_u8(mask, b, a)); ++} ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_pd ++FORCE_INLINE __m128d _mm_blendv_pd(__m128d _a, __m128d _b, __m128d _mask) ++{ ++ uint64x2_t mask = ++ vreinterpretq_u64_s64(vshrq_n_s64(vreinterpretq_s64_m128d(_mask), 63)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64(vbslq_f64(mask, b, a)); ++#else ++ uint64x2_t a = vreinterpretq_u64_m128d(_a); ++ uint64x2_t b = vreinterpretq_u64_m128d(_b); ++ return vreinterpretq_m128d_u64(vbslq_u64(mask, b, a)); ++#endif ++} ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_ps ++FORCE_INLINE __m128 _mm_blendv_ps(__m128 _a, __m128 _b, __m128 _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint32x4_t mask = ++ vreinterpretq_u32_s32(vshrq_n_s32(vreinterpretq_s32_m128(_mask), 31)); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a up ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_pd ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndpq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(ceil(f[1]), ceil(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a up to ++// an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ps ++FORCE_INLINE __m128 _mm_ceil_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndpq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ceilf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b up to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_sd ++FORCE_INLINE __m128d _mm_ceil_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_ceil_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b up to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ss ++FORCE_INLINE __m128 _mm_ceil_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_ceil_ps(b)); ++} ++ ++// Compare packed 64-bit integers in a and b for equality, and store the results ++// in dst ++FORCE_INLINE __m128i _mm_cmpeq_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vceqq_u64(vreinterpretq_u64_m128i(a), vreinterpretq_u64_m128i(b))); ++#else ++ // ARMv7 lacks vceqq_u64 ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128i_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Sign extend packed 16-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi32 ++FORCE_INLINE __m128i _mm_cvtepi16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vmovl_s16(vget_low_s16(vreinterpretq_s16_m128i(a)))); ++} ++ ++// Sign extend packed 16-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi64 ++FORCE_INLINE __m128i _mm_cvtepi16_epi64(__m128i a) ++{ ++ int16x8_t s16x8 = vreinterpretq_s16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Sign extend packed 32-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_epi64 ++FORCE_INLINE __m128i _mm_cvtepi32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a)))); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 16-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi16 ++FORCE_INLINE __m128i _mm_cvtepi8_epi16(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ return vreinterpretq_m128i_s16(s16x8); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi32 ++FORCE_INLINE __m128i _mm_cvtepi8_epi32(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_s32(s32x4); ++} ++ ++// Sign extend packed 8-bit integers in the low 8 bytes of a to packed 64-bit ++// integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi64 ++FORCE_INLINE __m128i _mm_cvtepi8_epi64(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi32 ++FORCE_INLINE __m128i _mm_cvtepu16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_u32( ++ vmovl_u16(vget_low_u16(vreinterpretq_u16_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi64 ++FORCE_INLINE __m128i _mm_cvtepu16_epi64(__m128i a) ++{ ++ uint16x8_t u16x8 = vreinterpretq_u16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Zero extend packed unsigned 32-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu32_epi64 ++FORCE_INLINE __m128i _mm_cvtepu32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_u64( ++ vmovl_u32(vget_low_u32(vreinterpretq_u32_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 16-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi16 ++FORCE_INLINE __m128i _mm_cvtepu8_epi16(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx HGFE DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0H0G 0F0E 0D0C 0B0A */ ++ return vreinterpretq_m128i_u16(u16x8); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi32 ++FORCE_INLINE __m128i _mm_cvtepu8_epi32(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_u32(u32x4); ++} ++ ++// Zero extend packed unsigned 8-bit integers in the low 8 bytes of a to packed ++// 64-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi64 ++FORCE_INLINE __m128i _mm_cvtepu8_epi64(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Conditionally multiply the packed double-precision (64-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, and ++// conditionally store the sum in dst using the low 4 bits of imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_pd ++FORCE_INLINE __m128d _mm_dp_pd(__m128d a, __m128d b, const int imm) ++{ ++ // Generate mask value from constant immediate bit value ++ const int64_t bit0Mask = imm & 0x01 ? UINT64_MAX : 0; ++ const int64_t bit1Mask = imm & 0x02 ? UINT64_MAX : 0; ++#if !SSE2NEON_PRECISE_DP ++ const int64_t bit4Mask = imm & 0x10 ? UINT64_MAX : 0; ++ const int64_t bit5Mask = imm & 0x20 ? UINT64_MAX : 0; ++#endif ++ // Conditional multiplication ++#if !SSE2NEON_PRECISE_DP ++ __m128d mul = _mm_mul_pd(a, b); ++ const __m128d mulMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit5Mask, bit4Mask)); ++ __m128d tmp = _mm_and_pd(mul, mulMask); ++#else ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double d0 = (imm & 0x10) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 0) ++ : 0; ++ double d1 = (imm & 0x20) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 1) ++ : 0; ++#else ++ double d0 = (imm & 0x10) ? ((double *) &a)[0] * ((double *) &b)[0] : 0; ++ double d1 = (imm & 0x20) ? ((double *) &a)[1] * ((double *) &b)[1] : 0; ++#endif ++ __m128d tmp = _mm_set_pd(d1, d0); ++#endif ++ // Sum the products ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double sum = vpaddd_f64(vreinterpretq_f64_m128d(tmp)); ++#else ++ double sum = *((double *) &tmp) + *(((double *) &tmp) + 1); ++#endif ++ // Conditionally store the sum ++ const __m128d sumMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit1Mask, bit0Mask)); ++ __m128d res = _mm_and_pd(_mm_set_pd1(sum), sumMask); ++ return res; ++} ++ ++// Conditionally multiply the packed single-precision (32-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, ++// and conditionally store the sum in dst using the low 4 bits of imm. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_ps ++FORCE_INLINE __m128 _mm_dp_ps(__m128 a, __m128 b, const int imm) ++{ ++ float32x4_t elementwise_prod = _mm_mul_ps(a, b); ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ /* shortcuts */ ++ if (imm == 0xFF) { ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++ ++ if ((imm & 0x0F) == 0x0F) { ++ if (!(imm & (1 << 4))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 0); ++ if (!(imm & (1 << 5))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 1); ++ if (!(imm & (1 << 6))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 2); ++ if (!(imm & (1 << 7))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 3); ++ ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++#endif ++ ++ float s = 0.0f; ++ ++ if (imm & (1 << 4)) ++ s += vgetq_lane_f32(elementwise_prod, 0); ++ if (imm & (1 << 5)) ++ s += vgetq_lane_f32(elementwise_prod, 1); ++ if (imm & (1 << 6)) ++ s += vgetq_lane_f32(elementwise_prod, 2); ++ if (imm & (1 << 7)) ++ s += vgetq_lane_f32(elementwise_prod, 3); ++ ++ const float32_t res[4] = { ++ (imm & 0x1) ? s : 0.0f, ++ (imm & 0x2) ? s : 0.0f, ++ (imm & 0x4) ? s : 0.0f, ++ (imm & 0x8) ? s : 0.0f, ++ }; ++ return vreinterpretq_m128_f32(vld1q_f32(res)); ++} ++ ++// Extract a 32-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi32 ++// FORCE_INLINE int _mm_extract_epi32(__m128i a, __constrange(0,4) int imm) ++#define _mm_extract_epi32(a, imm) \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)) ++ ++// Extract a 64-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi64 ++// FORCE_INLINE __int64 _mm_extract_epi64(__m128i a, __constrange(0,2) int imm) ++#define _mm_extract_epi64(a, imm) \ ++ vgetq_lane_s64(vreinterpretq_s64_m128i(a), (imm)) ++ ++// Extract an 8-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. FORCE_INLINE int _mm_extract_epi8(__m128i a, ++// __constrange(0,16) int imm) ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi8 ++#define _mm_extract_epi8(a, imm) vgetq_lane_u8(vreinterpretq_u8_m128i(a), (imm)) ++ ++// Extracts the selected single-precision (32-bit) floating-point from a. ++// FORCE_INLINE int _mm_extract_ps(__m128 a, __constrange(0,4) int imm) ++#define _mm_extract_ps(a, imm) vgetq_lane_s32(vreinterpretq_s32_m128(a), (imm)) ++ ++// Round the packed double-precision (64-bit) floating-point elements in a down ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_pd ++FORCE_INLINE __m128d _mm_floor_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndmq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(floor(f[1]), floor(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a down ++// to an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ps ++FORCE_INLINE __m128 _mm_floor_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndmq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(floorf(f[3]), floorf(f[2]), floorf(f[1]), floorf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b down to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_sd ++FORCE_INLINE __m128d _mm_floor_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_floor_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b down to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ss ++FORCE_INLINE __m128 _mm_floor_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_floor_ps(b)); ++} ++ ++// Copy a to dst, and insert the 32-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi32 ++// FORCE_INLINE __m128i _mm_insert_epi32(__m128i a, int b, ++// __constrange(0,4) int imm) ++#define _mm_insert_epi32(a, b, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vsetq_lane_s32((b), vreinterpretq_s32_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the 64-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi64 ++// FORCE_INLINE __m128i _mm_insert_epi64(__m128i a, __int64 b, ++// __constrange(0,2) int imm) ++#define _mm_insert_epi64(a, b, imm) \ ++ vreinterpretq_m128i_s64( \ ++ vsetq_lane_s64((b), vreinterpretq_s64_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the lower 8-bit integer from i into dst at the ++// location specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi8 ++// FORCE_INLINE __m128i _mm_insert_epi8(__m128i a, int b, ++// __constrange(0,16) int imm) ++#define _mm_insert_epi8(a, b, imm) \ ++ vreinterpretq_m128i_s8(vsetq_lane_s8((b), vreinterpretq_s8_m128i(a), (imm))) ++ ++// Copy a to tmp, then insert a single-precision (32-bit) floating-point ++// element from b into tmp using the control in imm8. Store tmp to dst using ++// the mask in imm8 (elements are zeroed out when the corresponding bit is set). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=insert_ps ++#define _mm_insert_ps(a, b, imm8) \ ++ _sse2neon_define2( \ ++ __m128, a, b, \ ++ float32x4_t tmp1 = \ ++ vsetq_lane_f32(vgetq_lane_f32(_b, (imm8 >> 6) & 0x3), \ ++ vreinterpretq_f32_m128(_a), 0); \ ++ float32x4_t tmp2 = \ ++ vsetq_lane_f32(vgetq_lane_f32(tmp1, 0), \ ++ vreinterpretq_f32_m128(_a), ((imm8 >> 4) & 0x3)); \ ++ const uint32_t data[4] = \ ++ _sse2neon_init(((imm8) & (1 << 0)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0); \ ++ uint32x4_t mask = vld1q_u32(data); \ ++ float32x4_t all_zeros = vdupq_n_f32(0); \ ++ \ ++ _sse2neon_return(vreinterpretq_m128_f32( \ ++ vbslq_f32(mask, all_zeros, vreinterpretq_f32_m128(tmp2))));) ++ ++// Compare packed signed 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi32 ++FORCE_INLINE __m128i _mm_max_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmaxq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi8 ++FORCE_INLINE __m128i _mm_max_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vmaxq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu16 ++FORCE_INLINE __m128i _mm_max_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vmaxq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_max_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vmaxq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi32 ++FORCE_INLINE __m128i _mm_min_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vminq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi8 ++FORCE_INLINE __m128i _mm_min_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vminq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu16 ++FORCE_INLINE __m128i _mm_min_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vminq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_min_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vminq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Horizontally compute the minimum amongst the packed unsigned 16-bit integers ++// in a, store the minimum and index in dst, and zero the remaining bits in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_minpos_epu16 ++FORCE_INLINE __m128i _mm_minpos_epu16(__m128i a) ++{ ++ __m128i dst; ++ uint16_t min, idx = 0; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Find the minimum value ++ min = vminvq_u16(vreinterpretq_u16_m128i(a)); ++ ++ // Get the index of the minimum value ++ static const uint16_t idxv[] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint16x8_t minv = vdupq_n_u16(min); ++ uint16x8_t cmeq = vceqq_u16(minv, vreinterpretq_u16_m128i(a)); ++ idx = vminvq_u16(vornq_u16(vld1q_u16(idxv), cmeq)); ++#else ++ // Find the minimum value ++ __m64 tmp; ++ tmp = vreinterpret_m64_u16( ++ vmin_u16(vget_low_u16(vreinterpretq_u16_m128i(a)), ++ vget_high_u16(vreinterpretq_u16_m128i(a)))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ min = vget_lane_u16(vreinterpret_u16_m64(tmp), 0); ++ // Get the index of the minimum value ++ int i; ++ for (i = 0; i < 8; i++) { ++ if (min == vgetq_lane_u16(vreinterpretq_u16_m128i(a), 0)) { ++ idx = (uint16_t) i; ++ break; ++ } ++ a = _mm_srli_si128(a, 2); ++ } ++#endif ++ // Generate result ++ dst = _mm_setzero_si128(); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(min, vreinterpretq_u16_m128i(dst), 0)); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(idx, vreinterpretq_u16_m128i(dst), 1)); ++ return dst; ++} ++ ++// Compute the sum of absolute differences (SADs) of quadruplets of unsigned ++// 8-bit integers in a compared to those in b, and store the 16-bit results in ++// dst. Eight SADs are performed using one quadruplet from b and eight ++// quadruplets from a. One quadruplet is selected from b starting at on the ++// offset specified in imm8. Eight quadruplets are formed from sequential 8-bit ++// integers selected from a starting at the offset specified in imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mpsadbw_epu8 ++FORCE_INLINE __m128i _mm_mpsadbw_epu8(__m128i a, __m128i b, const int imm) ++{ ++ uint8x16_t _a, _b; ++ ++ switch (imm & 0x4) { ++ case 0: ++ // do nothing ++ _a = vreinterpretq_u8_m128i(a); ++ break; ++ case 4: ++ _a = vreinterpretq_u8_u32(vextq_u32(vreinterpretq_u32_m128i(a), ++ vreinterpretq_u32_m128i(a), 1)); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ switch (imm & 0x3) { ++ case 0: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 0))); ++ break; ++ case 1: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 1))); ++ break; ++ case 2: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 2))); ++ break; ++ case 3: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 3))); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ int16x8_t c04, c15, c26, c37; ++ uint8x8_t low_b = vget_low_u8(_b); ++ c04 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a), low_b)); ++ uint8x16_t _a_1 = vextq_u8(_a, _a, 1); ++ c15 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_1), low_b)); ++ uint8x16_t _a_2 = vextq_u8(_a, _a, 2); ++ c26 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_2), low_b)); ++ uint8x16_t _a_3 = vextq_u8(_a, _a, 3); ++ c37 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_3), low_b)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // |0|4|2|6| ++ c04 = vpaddq_s16(c04, c26); ++ // |1|5|3|7| ++ c15 = vpaddq_s16(c15, c37); ++ ++ int32x4_t trn1_c = ++ vtrn1q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ int32x4_t trn2_c = ++ vtrn2q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ return vreinterpretq_m128i_s16(vpaddq_s16(vreinterpretq_s16_s32(trn1_c), ++ vreinterpretq_s16_s32(trn2_c))); ++#else ++ int16x4_t c01, c23, c45, c67; ++ c01 = vpadd_s16(vget_low_s16(c04), vget_low_s16(c15)); ++ c23 = vpadd_s16(vget_low_s16(c26), vget_low_s16(c37)); ++ c45 = vpadd_s16(vget_high_s16(c04), vget_high_s16(c15)); ++ c67 = vpadd_s16(vget_high_s16(c26), vget_high_s16(c37)); ++ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(c01, c23), vpadd_s16(c45, c67))); ++#endif ++} ++ ++// Multiply the low signed 32-bit integers from each packed 64-bit element in ++// a and b, and store the signed 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epi32 ++FORCE_INLINE __m128i _mm_mul_epi32(__m128i a, __m128i b) ++{ ++ // vmull_s32 upcasts instead of masking, so we downcast. ++ int32x2_t a_lo = vmovn_s64(vreinterpretq_s64_m128i(a)); ++ int32x2_t b_lo = vmovn_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vmull_s32(a_lo, b_lo)); ++} ++ ++// Multiply the packed 32-bit integers in a and b, producing intermediate 64-bit ++// integers, and store the low 32 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi32 ++FORCE_INLINE __m128i _mm_mullo_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmulq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi32 ++FORCE_INLINE __m128i _mm_packus_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcombine_u16(vqmovun_s32(vreinterpretq_s32_m128i(a)), ++ vqmovun_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_pd ++FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d a, int rounding) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndnq_f64(vreinterpretq_f64_m128d(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_pd(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_pd(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndq_f64(vreinterpretq_f64_m128d(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128d_f64(vrndiq_f64(vreinterpretq_f64_m128d(a))); ++ } ++#else ++ double *v_double = (double *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ double res[2], tmp; ++ for (int i = 0; i < 2; i++) { ++ tmp = (v_double[i] < 0) ? -v_double[i] : v_double[i]; ++ double roundDown = floor(tmp); // Round down value ++ double roundUp = ceil(tmp); // Round up value ++ double diffDown = tmp - roundDown; ++ double diffUp = roundUp - tmp; ++ if (diffDown < diffUp) { ++ /* If it's closer to the round down value, then use it */ ++ res[i] = roundDown; ++ } else if (diffDown > diffUp) { ++ /* If it's closer to the round up value, then use it */ ++ res[i] = roundUp; ++ } else { ++ /* If it's equidistant between round up and round down value, ++ * pick the one which is an even number */ ++ double half = roundDown / 2; ++ if (half != floor(half)) { ++ /* If the round down value is odd, return the round up value ++ */ ++ res[i] = roundUp; ++ } else { ++ /* If the round up value is odd, return the round down value ++ */ ++ res[i] = roundDown; ++ } ++ } ++ res[i] = (v_double[i] < 0) ? -res[i] : res[i]; ++ } ++ return _mm_set_pd(res[1], res[0]); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_pd(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_pd(a); ++ } ++ return _mm_set_pd(v_double[1] > 0 ? floor(v_double[1]) : ceil(v_double[1]), ++ v_double[0] > 0 ? floor(v_double[0]) : ceil(v_double[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed single-precision ++// floating-point elements in dst. ++// software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_round_ps ++FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128 a, int rounding) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndnq_f32(vreinterpretq_f32_m128(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_ps(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_ps(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndq_f32(vreinterpretq_f32_m128(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128_f32(vrndiq_f32(vreinterpretq_f32_m128(a))); ++ } ++#else ++ float *v_float = (float *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vbslq_s32(is_delta_half, r_even, r_normal))); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_ps(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_ps(a); ++ } ++ return _mm_set_ps(v_float[3] > 0 ? floorf(v_float[3]) : ceilf(v_float[3]), ++ v_float[2] > 0 ? floorf(v_float[2]) : ceilf(v_float[2]), ++ v_float[1] > 0 ? floorf(v_float[1]) : ceilf(v_float[1]), ++ v_float[0] > 0 ? floorf(v_float[0]) : ceilf(v_float[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b using ++// the rounding parameter, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_sd ++FORCE_INLINE __m128d _mm_round_sd(__m128d a, __m128d b, int rounding) ++{ ++ return _mm_move_sd(a, _mm_round_pd(b, rounding)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b using ++// the rounding parameter, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. Rounding is done according to the ++// rounding[3:0] parameter, which can be one of: ++// (_MM_FROUND_TO_NEAREST_INT |_MM_FROUND_NO_EXC) // round to nearest, and ++// suppress exceptions ++// (_MM_FROUND_TO_NEG_INF |_MM_FROUND_NO_EXC) // round down, and ++// suppress exceptions ++// (_MM_FROUND_TO_POS_INF |_MM_FROUND_NO_EXC) // round up, and suppress ++// exceptions ++// (_MM_FROUND_TO_ZERO |_MM_FROUND_NO_EXC) // truncate, and suppress ++// exceptions _MM_FROUND_CUR_DIRECTION // use MXCSR.RC; see ++// _MM_SET_ROUNDING_MODE ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_ss ++FORCE_INLINE __m128 _mm_round_ss(__m128 a, __m128 b, int rounding) ++{ ++ return _mm_move_ss(a, _mm_round_ps(b, rounding)); ++} ++ ++// Load 128-bits of integer data from memory into dst using a non-temporal ++// memory hint. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_load_si128 ++FORCE_INLINE __m128i _mm_stream_load_si128(__m128i *p) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ return __builtin_nontemporal_load(p); ++#else ++ return vreinterpretq_m128i_s64(vld1q_s64((int64_t *) p)); ++#endif ++} ++ ++// Compute the bitwise NOT of a and then AND with a 128-bit vector containing ++// all 1's, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_ones ++FORCE_INLINE int _mm_test_all_ones(__m128i a) ++{ ++ return (uint64_t) (vgetq_lane_s64(a, 0) & vgetq_lane_s64(a, 1)) == ++ ~(uint64_t) 0; ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_zeros ++FORCE_INLINE int _mm_test_all_zeros(__m128i a, __m128i mask) ++{ ++ int64x2_t a_and_mask = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(mask)); ++ return !(vgetq_lane_s64(a_and_mask, 0) | vgetq_lane_s64(a_and_mask, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute ++// the bitwise NOT of a and then AND with mask, and set CF to 1 if the result is ++// zero, otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_test_mix_ones_zero ++// Note: Argument names may be wrong in the Intel intrinsics guide. ++FORCE_INLINE int _mm_test_mix_ones_zeros(__m128i a, __m128i mask) ++{ ++ uint64x2_t v = vreinterpretq_u64_m128i(a); ++ uint64x2_t m = vreinterpretq_u64_m128i(mask); ++ ++ // find ones (set-bits) and zeros (clear-bits) under clip mask ++ uint64x2_t ones = vandq_u64(m, v); ++ uint64x2_t zeros = vbicq_u64(m, v); ++ ++ // If both 128-bit variables are populated (non-zero) then return 1. ++ // For comparision purposes, first compact each var down to 32-bits. ++ uint32x2_t reduced = vpmax_u32(vqmovn_u64(ones), vqmovn_u64(zeros)); ++ ++ // if folding minimum is non-zero then both vars must be non-zero ++ return (vget_lane_u32(vpmin_u32(reduced, reduced), 0) != 0); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the CF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testc_si128 ++FORCE_INLINE int _mm_testc_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vbicq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testnzc_si128 ++#define _mm_testnzc_si128(a, b) _mm_test_mix_ones_zeros(a, b) ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the ZF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testz_si128 ++FORCE_INLINE int _mm_testz_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++/* SSE4.2 */ ++ ++static const uint16_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask16b[8] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++static const uint8_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask8b[16] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++ ++/* specify the source data format */ ++#define _SIDD_UBYTE_OPS 0x00 /* unsigned 8-bit characters */ ++#define _SIDD_UWORD_OPS 0x01 /* unsigned 16-bit characters */ ++#define _SIDD_SBYTE_OPS 0x02 /* signed 8-bit characters */ ++#define _SIDD_SWORD_OPS 0x03 /* signed 16-bit characters */ ++ ++/* specify the comparison operation */ ++#define _SIDD_CMP_EQUAL_ANY 0x00 /* compare equal any: strchr */ ++#define _SIDD_CMP_RANGES 0x04 /* compare ranges */ ++#define _SIDD_CMP_EQUAL_EACH 0x08 /* compare equal each: strcmp */ ++#define _SIDD_CMP_EQUAL_ORDERED 0x0C /* compare equal ordered */ ++ ++/* specify the polarity */ ++#define _SIDD_POSITIVE_POLARITY 0x00 ++#define _SIDD_MASKED_POSITIVE_POLARITY 0x20 ++#define _SIDD_NEGATIVE_POLARITY 0x10 /* negate results */ ++#define _SIDD_MASKED_NEGATIVE_POLARITY \ ++ 0x30 /* negate results only before end of string */ ++ ++/* specify the output selection in _mm_cmpXstri */ ++#define _SIDD_LEAST_SIGNIFICANT 0x00 ++#define _SIDD_MOST_SIGNIFICANT 0x40 ++ ++/* specify the output selection in _mm_cmpXstrm */ ++#define _SIDD_BIT_MASK 0x00 ++#define _SIDD_UNIT_MASK 0x40 ++ ++/* Pattern Matching for C macros. ++ * https://github.com/pfultz2/Cloak/wiki/C-Preprocessor-tricks,-tips,-and-idioms ++ */ ++ ++/* catenate */ ++#define SSE2NEON_PRIMITIVE_CAT(a, ...) a##__VA_ARGS__ ++#define SSE2NEON_CAT(a, b) SSE2NEON_PRIMITIVE_CAT(a, b) ++ ++#define SSE2NEON_IIF(c) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_IIF_, c) ++/* run the 2nd parameter */ ++#define SSE2NEON_IIF_0(t, ...) __VA_ARGS__ ++/* run the 1st parameter */ ++#define SSE2NEON_IIF_1(t, ...) t ++ ++#define SSE2NEON_COMPL(b) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_COMPL_, b) ++#define SSE2NEON_COMPL_0 1 ++#define SSE2NEON_COMPL_1 0 ++ ++#define SSE2NEON_DEC(x) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_DEC_, x) ++#define SSE2NEON_DEC_1 0 ++#define SSE2NEON_DEC_2 1 ++#define SSE2NEON_DEC_3 2 ++#define SSE2NEON_DEC_4 3 ++#define SSE2NEON_DEC_5 4 ++#define SSE2NEON_DEC_6 5 ++#define SSE2NEON_DEC_7 6 ++#define SSE2NEON_DEC_8 7 ++#define SSE2NEON_DEC_9 8 ++#define SSE2NEON_DEC_10 9 ++#define SSE2NEON_DEC_11 10 ++#define SSE2NEON_DEC_12 11 ++#define SSE2NEON_DEC_13 12 ++#define SSE2NEON_DEC_14 13 ++#define SSE2NEON_DEC_15 14 ++#define SSE2NEON_DEC_16 15 ++ ++/* detection */ ++#define SSE2NEON_CHECK_N(x, n, ...) n ++#define SSE2NEON_CHECK(...) SSE2NEON_CHECK_N(__VA_ARGS__, 0, ) ++#define SSE2NEON_PROBE(x) x, 1, ++ ++#define SSE2NEON_NOT(x) SSE2NEON_CHECK(SSE2NEON_PRIMITIVE_CAT(SSE2NEON_NOT_, x)) ++#define SSE2NEON_NOT_0 SSE2NEON_PROBE(~) ++ ++#define SSE2NEON_BOOL(x) SSE2NEON_COMPL(SSE2NEON_NOT(x)) ++#define SSE2NEON_IF(c) SSE2NEON_IIF(SSE2NEON_BOOL(c)) ++ ++#define SSE2NEON_EAT(...) ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++#define SSE2NEON_WHEN(c) SSE2NEON_IF(c)(SSE2NEON_EXPAND, SSE2NEON_EAT) ++ ++/* recursion */ ++/* deferred expression */ ++#define SSE2NEON_EMPTY() ++#define SSE2NEON_DEFER(id) id SSE2NEON_EMPTY() ++#define SSE2NEON_OBSTRUCT(...) __VA_ARGS__ SSE2NEON_DEFER(SSE2NEON_EMPTY)() ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++ ++#define SSE2NEON_EVAL(...) \ ++ SSE2NEON_EVAL1(SSE2NEON_EVAL1(SSE2NEON_EVAL1(__VA_ARGS__))) ++#define SSE2NEON_EVAL1(...) \ ++ SSE2NEON_EVAL2(SSE2NEON_EVAL2(SSE2NEON_EVAL2(__VA_ARGS__))) ++#define SSE2NEON_EVAL2(...) \ ++ SSE2NEON_EVAL3(SSE2NEON_EVAL3(SSE2NEON_EVAL3(__VA_ARGS__))) ++#define SSE2NEON_EVAL3(...) __VA_ARGS__ ++ ++#define SSE2NEON_REPEAT(count, macro, ...) \ ++ SSE2NEON_WHEN(count) \ ++ (SSE2NEON_OBSTRUCT(SSE2NEON_REPEAT_INDIRECT)()( \ ++ SSE2NEON_DEC(count), macro, \ ++ __VA_ARGS__) SSE2NEON_OBSTRUCT(macro)(SSE2NEON_DEC(count), \ ++ __VA_ARGS__)) ++#define SSE2NEON_REPEAT_INDIRECT() SSE2NEON_REPEAT ++ ++#define SSE2NEON_SIZE_OF_byte 8 ++#define SSE2NEON_NUMBER_OF_LANES_byte 16 ++#define SSE2NEON_SIZE_OF_word 16 ++#define SSE2NEON_NUMBER_OF_LANES_word 8 ++ ++#define SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE(i, type) \ ++ mtx[i] = vreinterpretq_m128i_##type(vceqq_##type( \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)), \ ++ vreinterpretq_##type##_m128i(a))); ++ ++#define SSE2NEON_FILL_LANE(i, type) \ ++ vec_b[i] = \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)); ++ ++#define PCMPSTR_RANGES(a, b, mtx, data_type_prefix, type_prefix, size, \ ++ number_of_lanes, byte_or_word) \ ++ do { \ ++ SSE2NEON_CAT( \ ++ data_type_prefix, \ ++ SSE2NEON_CAT(size, \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(number_of_lanes, _t)))) \ ++ vec_b[number_of_lanes]; \ ++ __m128i mask = SSE2NEON_IIF(byte_or_word)( \ ++ vreinterpretq_m128i_u16(vdupq_n_u16(0xff)), \ ++ vreinterpretq_m128i_u32(vdupq_n_u32(0xffff))); \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, SSE2NEON_FILL_LANE, \ ++ SSE2NEON_CAT(type_prefix, size))) \ ++ for (int i = 0; i < number_of_lanes; i++) { \ ++ mtx[i] = SSE2NEON_CAT(vreinterpretq_m128i_u, \ ++ size)(SSE2NEON_CAT(vbslq_u, size)( \ ++ SSE2NEON_CAT(vreinterpretq_u, \ ++ SSE2NEON_CAT(size, _m128i))(mask), \ ++ SSE2NEON_CAT(vcgeq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))), \ ++ SSE2NEON_CAT(vcleq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))))); \ ++ } \ ++ } while (0) ++ ++#define PCMPSTR_EQ(a, b, mtx, size, number_of_lanes) \ ++ do { \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, \ ++ SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE, \ ++ SSE2NEON_CAT(u, size))) \ ++ } while (0) ++ ++#define SSE2NEON_CMP_EQUAL_ANY_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_any(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_any_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_RANGES_IMPL(type, data_type, us, byte_or_word) \ ++ static int _sse2neon_cmp_##us##type##_ranges(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_RANGES( \ ++ a, b, mtx, data_type, us, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), byte_or_word); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_ranges_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_EQUAL_ORDERED_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_ordered(__m128i a, int la, \ ++ __m128i b, int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_ordered_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type))))( \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), la, lb, mtx); \ ++ } ++ ++static int _sse2neon_aggregate_equal_any_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ int tmp = _sse2neon_vaddvq_u8(vreinterpretq_u8_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_equal_any_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ int tmp = _sse2neon_vaddvq_u16(vreinterpretq_u16_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ANY(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ANY(SSE2NEON_CMP_EQUAL_ANY_) ++ ++static int _sse2neon_aggregate_ranges_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ __m128i tmp = vreinterpretq_m128i_u32( ++ vshrq_n_u32(vreinterpretq_u32_m128i(mtx[j]), 16)); ++ uint32x4_t vec_res = vandq_u32(vreinterpretq_u32_m128i(mtx[j]), ++ vreinterpretq_u32_m128i(tmp)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int t = vaddvq_u32(vec_res) ? 1 : 0; ++#else ++ uint64x2_t sumh = vpaddlq_u32(vec_res); ++ int t = vgetq_lane_u64(sumh, 0) + vgetq_lane_u64(sumh, 1); ++#endif ++ res |= (t << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_ranges_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ __m128i tmp = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 8)); ++ uint16x8_t vec_res = vandq_u16(vreinterpretq_u16_m128i(mtx[j]), ++ vreinterpretq_u16_m128i(tmp)); ++ int t = _sse2neon_vaddvq_u16(vec_res) ? 1 : 0; ++ res |= (t << j); ++ } ++ return res; ++} ++ ++#define SSE2NEON_CMP_RANGES_IS_BYTE 1 ++#define SSE2NEON_CMP_RANGES_IS_WORD 0 ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_RANGES(prefix) \ ++ prefix##IMPL(byte, uint, u, prefix##IS_BYTE) \ ++ prefix##IMPL(byte, int, s, prefix##IS_BYTE) \ ++ prefix##IMPL(word, uint, u, prefix##IS_WORD) \ ++ prefix##IMPL(word, int, s, prefix##IS_WORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_RANGES(SSE2NEON_CMP_RANGES_) ++ ++#undef SSE2NEON_CMP_RANGES_IS_BYTE ++#undef SSE2NEON_CMP_RANGES_IS_WORD ++ ++static int _sse2neon_cmp_byte_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint8x16_t mtx = ++ vceqq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x10000 - (1 << la); ++ int tb = 0x10000 - (1 << lb); ++ uint8x8_t vec_mask, vec0_lo, vec0_hi, vec1_lo, vec1_hi; ++ uint8x8_t tmp_lo, tmp_hi, res_lo, res_hi; ++ vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ vec0_lo = vtst_u8(vdup_n_u8(m0), vec_mask); ++ vec0_hi = vtst_u8(vdup_n_u8(m0 >> 8), vec_mask); ++ vec1_lo = vtst_u8(vdup_n_u8(m1), vec_mask); ++ vec1_hi = vtst_u8(vdup_n_u8(m1 >> 8), vec_mask); ++ tmp_lo = vtst_u8(vdup_n_u8(tb), vec_mask); ++ tmp_hi = vtst_u8(vdup_n_u8(tb >> 8), vec_mask); ++ ++ res_lo = vbsl_u8(vec0_lo, vdup_n_u8(0), vget_low_u8(mtx)); ++ res_hi = vbsl_u8(vec0_hi, vdup_n_u8(0), vget_high_u8(mtx)); ++ res_lo = vbsl_u8(vec1_lo, tmp_lo, res_lo); ++ res_hi = vbsl_u8(vec1_hi, tmp_hi, res_hi); ++ res_lo = vand_u8(res_lo, vec_mask); ++ res_hi = vand_u8(res_hi, vec_mask); ++ ++ int res = _sse2neon_vaddv_u8(res_lo) + (_sse2neon_vaddv_u8(res_hi) << 8); ++ return res; ++} ++ ++static int _sse2neon_cmp_word_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint16x8_t mtx = ++ vceqq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x100 - (1 << la); ++ int tb = 0x100 - (1 << lb); ++ uint16x8_t vec_mask = vld1q_u16(_sse2neon_cmpestr_mask16b); ++ uint16x8_t vec0 = vtstq_u16(vdupq_n_u16(m0), vec_mask); ++ uint16x8_t vec1 = vtstq_u16(vdupq_n_u16(m1), vec_mask); ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(tb), vec_mask); ++ mtx = vbslq_u16(vec0, vdupq_n_u16(0), mtx); ++ mtx = vbslq_u16(vec1, tmp, mtx); ++ mtx = vandq_u16(mtx, vec_mask); ++ return _sse2neon_vaddvq_u16(mtx); ++} ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE 1 ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD 0 ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IMPL(size, number_of_lanes, data_type) \ ++ static int _sse2neon_aggregate_equal_ordered_##size##x##number_of_lanes( \ ++ int bound, int la, int lb, __m128i mtx[16]) \ ++ { \ ++ int res = 0; \ ++ int m1 = SSE2NEON_IIF(data_type)(0x10000, 0x100) - (1 << la); \ ++ uint##size##x8_t vec_mask = SSE2NEON_IIF(data_type)( \ ++ vld1_u##size(_sse2neon_cmpestr_mask##size##b), \ ++ vld1q_u##size(_sse2neon_cmpestr_mask##size##b)); \ ++ uint##size##x##number_of_lanes##_t vec1 = SSE2NEON_IIF(data_type)( \ ++ vcombine_u##size(vtst_u##size(vdup_n_u##size(m1), vec_mask), \ ++ vtst_u##size(vdup_n_u##size(m1 >> 8), vec_mask)), \ ++ vtstq_u##size(vdupq_n_u##size(m1), vec_mask)); \ ++ uint##size##x##number_of_lanes##_t vec_minusone = vdupq_n_u##size(-1); \ ++ uint##size##x##number_of_lanes##_t vec_zero = vdupq_n_u##size(0); \ ++ for (int j = 0; j < lb; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size(vbslq_u##size( \ ++ vec1, vec_minusone, vreinterpretq_u##size##_m128i(mtx[j]))); \ ++ } \ ++ for (int j = lb; j < bound; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size( \ ++ vbslq_u##size(vec1, vec_minusone, vec_zero)); \ ++ } \ ++ unsigned SSE2NEON_IIF(data_type)(char, short) *ptr = \ ++ (unsigned SSE2NEON_IIF(data_type)(char, short) *) mtx; \ ++ for (int i = 0; i < bound; i++) { \ ++ int val = 1; \ ++ for (int j = 0, k = i; j < bound - i && k < bound; j++, k++) \ ++ val &= ptr[k * bound + j]; \ ++ res += val << i; \ ++ } \ ++ return res; \ ++ } ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(prefix) \ ++ prefix##IMPL(8, 16, prefix##IS_UBYTE) \ ++ prefix##IMPL(16, 8, prefix##IS_UWORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(SSE2NEON_AGGREGATE_EQUAL_ORDER_) ++ ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(SSE2NEON_CMP_EQUAL_ORDERED_) ++ ++#define SSE2NEON_CMPESTR_LIST \ ++ _(CMP_UBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_UWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_SBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_SWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_UBYTE_RANGES, cmp_ubyte_ranges) \ ++ _(CMP_UWORD_RANGES, cmp_uword_ranges) \ ++ _(CMP_SBYTE_RANGES, cmp_sbyte_ranges) \ ++ _(CMP_SWORD_RANGES, cmp_sword_ranges) \ ++ _(CMP_UBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_UWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_SBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_SWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_UBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_UWORD_EQUAL_ORDERED, cmp_word_equal_ordered) \ ++ _(CMP_SBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_SWORD_EQUAL_ORDERED, cmp_word_equal_ordered) ++ ++enum { ++#define _(name, func_suffix) name, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++typedef int (*cmpestr_func_t)(__m128i a, int la, __m128i b, int lb); ++static cmpestr_func_t _sse2neon_cmpfunc_table[] = { ++#define _(name, func_suffix) _sse2neon_##func_suffix, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++ ++FORCE_INLINE int _sse2neon_sido_negative(int res, int lb, int imm8, int bound) ++{ ++ switch (imm8 & 0x30) { ++ case _SIDD_NEGATIVE_POLARITY: ++ res ^= 0xffffffff; ++ break; ++ case _SIDD_MASKED_NEGATIVE_POLARITY: ++ res ^= (1 << lb) - 1; ++ break; ++ default: ++ break; ++ } ++ ++ return res & ((bound == 8) ? 0xFF : 0xFFFF); ++} ++ ++FORCE_INLINE int _sse2neon_clz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanReverse(&cnt, x)) ++ return 31 - cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_clz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanForward(&cnt, x)) ++ return cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_ctz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctzll(unsigned long long x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt; ++#if defined(SSE2NEON_HAS_BITSCAN64) ++ if (_BitScanForward64(&cnt, x)) ++ return (int) (cnt); ++#else ++ if (_BitScanForward(&cnt, (unsigned long) (x))) ++ return (int) cnt; ++ if (_BitScanForward(&cnt, (unsigned long) (x >> 32))) ++ return (int) (cnt + 32); ++#endif /* SSE2NEON_HAS_BITSCAN64 */ ++ return 64; ++#else /* assume GNU compatible compilers */ ++ return x != 0 ? __builtin_ctzll(x) : 64; ++#endif ++} ++ ++#define SSE2NEON_MIN(x, y) (x) < (y) ? (x) : (y) ++ ++#define SSE2NEON_CMPSTR_SET_UPPER(var, imm) \ ++ const int var = (imm & 0x01) ? 8 : 16 ++ ++#define SSE2NEON_CMPESTRX_LEN_PAIR(a, b, la, lb) \ ++ int tmp1 = la ^ (la >> 31); \ ++ la = tmp1 - (la >> 31); \ ++ int tmp2 = lb ^ (lb >> 31); \ ++ lb = tmp2 - (lb >> 31); \ ++ la = SSE2NEON_MIN(la, bound); \ ++ lb = SSE2NEON_MIN(lb, bound) ++ ++// Compare all pairs of character in string a and b, ++// then aggregate the result. ++// As the only difference of PCMPESTR* and PCMPISTR* is the way to calculate the ++// length of string, we use SSE2NEON_CMP{I,E}STRX_GET_LEN to get the length of ++// string a and b. ++#define SSE2NEON_COMP_AGG(a, b, la, lb, imm8, IE) \ ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); \ ++ SSE2NEON_##IE##_LEN_PAIR(a, b, la, lb); \ ++ int r2 = (_sse2neon_cmpfunc_table[imm8 & 0x0f])(a, la, b, lb); \ ++ r2 = _sse2neon_sido_negative(r2, lb, imm8, bound) ++ ++#define SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8) \ ++ return (r2 == 0) ? bound \ ++ : ((imm8 & 0x40) ? (31 - _sse2neon_clz(r2)) \ ++ : _sse2neon_ctz(r2)) ++ ++#define SSE2NEON_CMPSTR_GENERATE_MASK(dst) \ ++ __m128i dst = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ if (imm8 & 0x40) { \ ++ if (bound == 8) { \ ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(r2), \ ++ vld1q_u16(_sse2neon_cmpestr_mask16b)); \ ++ dst = vreinterpretq_m128i_u16(vbslq_u16( \ ++ tmp, vdupq_n_u16(-1), vreinterpretq_u16_m128i(dst))); \ ++ } else { \ ++ uint8x16_t vec_r2 = \ ++ vcombine_u8(vdup_n_u8(r2), vdup_n_u8(r2 >> 8)); \ ++ uint8x16_t tmp = \ ++ vtstq_u8(vec_r2, vld1q_u8(_sse2neon_cmpestr_mask8b)); \ ++ dst = vreinterpretq_m128i_u8( \ ++ vbslq_u8(tmp, vdupq_n_u8(-1), vreinterpretq_u8_m128i(dst))); \ ++ } \ ++ } else { \ ++ if (bound == 16) { \ ++ dst = vreinterpretq_m128i_u16( \ ++ vsetq_lane_u16(r2 & 0xffff, vreinterpretq_u16_m128i(dst), 0)); \ ++ } else { \ ++ dst = vreinterpretq_m128i_u8( \ ++ vsetq_lane_u8(r2 & 0xff, vreinterpretq_u8_m128i(dst), 0)); \ ++ } \ ++ } \ ++ return dst ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and returns 1 if b did not contain a null character and the ++// resulting mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestra ++FORCE_INLINE int _mm_cmpestra(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ int lb_cpy = lb; ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return !r2 & (lb_cpy > bound); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrc ++FORCE_INLINE int _mm_cmpestrc(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestri ++FORCE_INLINE int _mm_cmpestri(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrm ++FORCE_INLINE __m128i ++_mm_cmpestrm(__m128i a, int la, __m128i b, int lb, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestro ++FORCE_INLINE int _mm_cmpestro(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrs ++FORCE_INLINE int _mm_cmpestrs(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) lb; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrz ++FORCE_INLINE int _mm_cmpestrz(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) la; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return lb <= (bound - 1); ++} ++ ++#define SSE2NEON_CMPISTRX_LENGTH(str, len, imm8) \ ++ do { \ ++ if (imm8 & 0x01) { \ ++ uint16x8_t equal_mask_##str = \ ++ vceqq_u16(vreinterpretq_u16_m128i(str), vdupq_n_u16(0)); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 3; \ ++ } else { \ ++ uint16x8_t equal_mask_##str = vreinterpretq_u16_u8( \ ++ vceqq_u8(vreinterpretq_u8_m128i(str), vdupq_n_u8(0))); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 2; \ ++ } \ ++ } while (0) ++ ++#define SSE2NEON_CMPISTRX_LEN_PAIR(a, b, la, lb) \ ++ int la, lb; \ ++ do { \ ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); \ ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); \ ++ } while (0) ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if b did not contain a null character and the resulting ++// mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistra ++FORCE_INLINE int _mm_cmpistra(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return !r2 & (lb >= bound); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrc ++FORCE_INLINE int _mm_cmpistrc(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistri ++FORCE_INLINE int _mm_cmpistri(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrm ++FORCE_INLINE __m128i _mm_cmpistrm(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistro ++FORCE_INLINE int _mm_cmpistro(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrs ++FORCE_INLINE int _mm_cmpistrs(__m128i a, __m128i b, const int imm8) ++{ ++ (void) b; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int la; ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrz ++FORCE_INLINE int _mm_cmpistrz(__m128i a, __m128i b, const int imm8) ++{ ++ (void) a; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int lb; ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); ++ return lb <= (bound - 1); ++} ++ ++// Compares the 2 signed 64-bit integers in a and the 2 signed 64-bit integers ++// in b for greater than. ++FORCE_INLINE __m128i _mm_cmpgt_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vcgtq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ return vreinterpretq_m128i_s64(vshrq_n_s64( ++ vqsubq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)), ++ 63)); ++#endif ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 16-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u16 ++FORCE_INLINE uint32_t _mm_crc32_u16(uint32_t crc, uint16_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32ch %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32ch(crc, v); ++#else ++ crc = _mm_crc32_u8(crc, v & 0xff); ++ crc = _mm_crc32_u8(crc, (v >> 8) & 0xff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 32-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u32 ++FORCE_INLINE uint32_t _mm_crc32_u32(uint32_t crc, uint32_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cw %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cw(crc, v); ++#else ++ crc = _mm_crc32_u16(crc, v & 0xffff); ++ crc = _mm_crc32_u16(crc, (v >> 16) & 0xffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 64-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u64 ++FORCE_INLINE uint64_t _mm_crc32_u64(uint64_t crc, uint64_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cx %w[c], %w[c], %x[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cd((uint32_t) crc, v); ++#else ++ crc = _mm_crc32_u32((uint32_t) (crc), v & 0xffffffff); ++ crc = _mm_crc32_u32((uint32_t) (crc), (v >> 32) & 0xffffffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 8-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u8 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t crc, uint8_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cb %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cb(crc, v); ++#else ++ crc ^= v; ++#if defined(__ARM_FEATURE_CRYPTO) ++ // Adapted from: https://mary.rs/lab/crc32/ ++ // Barrent reduction ++ uint64x2_t orig = ++ vcombine_u64(vcreate_u64((uint64_t) (crc) << 24), vcreate_u64(0x0)); ++ uint64x2_t tmp = orig; ++ ++ // Polynomial P(x) of CRC32C ++ uint64_t p = 0x105EC76F1; ++ // Barrett Reduction (in bit-reflected form) constant mu_{64} = \lfloor ++ // 2^{64} / P(x) \rfloor = 0x11f91caf6 ++ uint64_t mu = 0x1dea713f1; ++ ++ // Multiply by mu_{64} ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(mu)); ++ // Divide by 2^{64} (mask away the unnecessary bits) ++ tmp = ++ vandq_u64(tmp, vcombine_u64(vcreate_u64(0xFFFFFFFF), vcreate_u64(0x0))); ++ // Multiply by P(x) (shifted left by 1 for alignment reasons) ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(p)); ++ // Subtract original from result ++ tmp = veorq_u64(tmp, orig); ++ ++ // Extract the 'lower' (in bit-reflected sense) 32 bits ++ crc = vgetq_lane_u32(vreinterpretq_u32_u64(tmp), 1); ++#else // Fall back to the generic table lookup approach ++ // Adapted from: https://create.stephan-brumme.com/crc32/ ++ // Apply half-byte comparision algorithm for the best ratio between ++ // performance and lookup table. ++ ++ // The lookup table just needs to store every 16th entry ++ // of the standard look-up table. ++ static const uint32_t crc32_half_byte_tbl[] = { ++ 0x00000000, 0x105ec76f, 0x20bd8ede, 0x30e349b1, 0x417b1dbc, 0x5125dad3, ++ 0x61c69362, 0x7198540d, 0x82f63b78, 0x92a8fc17, 0xa24bb5a6, 0xb21572c9, ++ 0xc38d26c4, 0xd3d3e1ab, 0xe330a81a, 0xf36e6f75, ++ }; ++ ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++#endif ++#endif ++ return crc; ++} ++ ++/* AES */ ++ ++#if !defined(__ARM_FEATURE_CRYPTO) && (!defined(_M_ARM64) || defined(__clang__)) ++/* clang-format off */ ++#define SSE2NEON_AES_SBOX(w) \ ++ { \ ++ w(0x63), w(0x7c), w(0x77), w(0x7b), w(0xf2), w(0x6b), w(0x6f), \ ++ w(0xc5), w(0x30), w(0x01), w(0x67), w(0x2b), w(0xfe), w(0xd7), \ ++ w(0xab), w(0x76), w(0xca), w(0x82), w(0xc9), w(0x7d), w(0xfa), \ ++ w(0x59), w(0x47), w(0xf0), w(0xad), w(0xd4), w(0xa2), w(0xaf), \ ++ w(0x9c), w(0xa4), w(0x72), w(0xc0), w(0xb7), w(0xfd), w(0x93), \ ++ w(0x26), w(0x36), w(0x3f), w(0xf7), w(0xcc), w(0x34), w(0xa5), \ ++ w(0xe5), w(0xf1), w(0x71), w(0xd8), w(0x31), w(0x15), w(0x04), \ ++ w(0xc7), w(0x23), w(0xc3), w(0x18), w(0x96), w(0x05), w(0x9a), \ ++ w(0x07), w(0x12), w(0x80), w(0xe2), w(0xeb), w(0x27), w(0xb2), \ ++ w(0x75), w(0x09), w(0x83), w(0x2c), w(0x1a), w(0x1b), w(0x6e), \ ++ w(0x5a), w(0xa0), w(0x52), w(0x3b), w(0xd6), w(0xb3), w(0x29), \ ++ w(0xe3), w(0x2f), w(0x84), w(0x53), w(0xd1), w(0x00), w(0xed), \ ++ w(0x20), w(0xfc), w(0xb1), w(0x5b), w(0x6a), w(0xcb), w(0xbe), \ ++ w(0x39), w(0x4a), w(0x4c), w(0x58), w(0xcf), w(0xd0), w(0xef), \ ++ w(0xaa), w(0xfb), w(0x43), w(0x4d), w(0x33), w(0x85), w(0x45), \ ++ w(0xf9), w(0x02), w(0x7f), w(0x50), w(0x3c), w(0x9f), w(0xa8), \ ++ w(0x51), w(0xa3), w(0x40), w(0x8f), w(0x92), w(0x9d), w(0x38), \ ++ w(0xf5), w(0xbc), w(0xb6), w(0xda), w(0x21), w(0x10), w(0xff), \ ++ w(0xf3), w(0xd2), w(0xcd), w(0x0c), w(0x13), w(0xec), w(0x5f), \ ++ w(0x97), w(0x44), w(0x17), w(0xc4), w(0xa7), w(0x7e), w(0x3d), \ ++ w(0x64), w(0x5d), w(0x19), w(0x73), w(0x60), w(0x81), w(0x4f), \ ++ w(0xdc), w(0x22), w(0x2a), w(0x90), w(0x88), w(0x46), w(0xee), \ ++ w(0xb8), w(0x14), w(0xde), w(0x5e), w(0x0b), w(0xdb), w(0xe0), \ ++ w(0x32), w(0x3a), w(0x0a), w(0x49), w(0x06), w(0x24), w(0x5c), \ ++ w(0xc2), w(0xd3), w(0xac), w(0x62), w(0x91), w(0x95), w(0xe4), \ ++ w(0x79), w(0xe7), w(0xc8), w(0x37), w(0x6d), w(0x8d), w(0xd5), \ ++ w(0x4e), w(0xa9), w(0x6c), w(0x56), w(0xf4), w(0xea), w(0x65), \ ++ w(0x7a), w(0xae), w(0x08), w(0xba), w(0x78), w(0x25), w(0x2e), \ ++ w(0x1c), w(0xa6), w(0xb4), w(0xc6), w(0xe8), w(0xdd), w(0x74), \ ++ w(0x1f), w(0x4b), w(0xbd), w(0x8b), w(0x8a), w(0x70), w(0x3e), \ ++ w(0xb5), w(0x66), w(0x48), w(0x03), w(0xf6), w(0x0e), w(0x61), \ ++ w(0x35), w(0x57), w(0xb9), w(0x86), w(0xc1), w(0x1d), w(0x9e), \ ++ w(0xe1), w(0xf8), w(0x98), w(0x11), w(0x69), w(0xd9), w(0x8e), \ ++ w(0x94), w(0x9b), w(0x1e), w(0x87), w(0xe9), w(0xce), w(0x55), \ ++ w(0x28), w(0xdf), w(0x8c), w(0xa1), w(0x89), w(0x0d), w(0xbf), \ ++ w(0xe6), w(0x42), w(0x68), w(0x41), w(0x99), w(0x2d), w(0x0f), \ ++ w(0xb0), w(0x54), w(0xbb), w(0x16) \ ++ } ++#define SSE2NEON_AES_RSBOX(w) \ ++ { \ ++ w(0x52), w(0x09), w(0x6a), w(0xd5), w(0x30), w(0x36), w(0xa5), \ ++ w(0x38), w(0xbf), w(0x40), w(0xa3), w(0x9e), w(0x81), w(0xf3), \ ++ w(0xd7), w(0xfb), w(0x7c), w(0xe3), w(0x39), w(0x82), w(0x9b), \ ++ w(0x2f), w(0xff), w(0x87), w(0x34), w(0x8e), w(0x43), w(0x44), \ ++ w(0xc4), w(0xde), w(0xe9), w(0xcb), w(0x54), w(0x7b), w(0x94), \ ++ w(0x32), w(0xa6), w(0xc2), w(0x23), w(0x3d), w(0xee), w(0x4c), \ ++ w(0x95), w(0x0b), w(0x42), w(0xfa), w(0xc3), w(0x4e), w(0x08), \ ++ w(0x2e), w(0xa1), w(0x66), w(0x28), w(0xd9), w(0x24), w(0xb2), \ ++ w(0x76), w(0x5b), w(0xa2), w(0x49), w(0x6d), w(0x8b), w(0xd1), \ ++ w(0x25), w(0x72), w(0xf8), w(0xf6), w(0x64), w(0x86), w(0x68), \ ++ w(0x98), w(0x16), w(0xd4), w(0xa4), w(0x5c), w(0xcc), w(0x5d), \ ++ w(0x65), w(0xb6), w(0x92), w(0x6c), w(0x70), w(0x48), w(0x50), \ ++ w(0xfd), w(0xed), w(0xb9), w(0xda), w(0x5e), w(0x15), w(0x46), \ ++ w(0x57), w(0xa7), w(0x8d), w(0x9d), w(0x84), w(0x90), w(0xd8), \ ++ w(0xab), w(0x00), w(0x8c), w(0xbc), w(0xd3), w(0x0a), w(0xf7), \ ++ w(0xe4), w(0x58), w(0x05), w(0xb8), w(0xb3), w(0x45), w(0x06), \ ++ w(0xd0), w(0x2c), w(0x1e), w(0x8f), w(0xca), w(0x3f), w(0x0f), \ ++ w(0x02), w(0xc1), w(0xaf), w(0xbd), w(0x03), w(0x01), w(0x13), \ ++ w(0x8a), w(0x6b), w(0x3a), w(0x91), w(0x11), w(0x41), w(0x4f), \ ++ w(0x67), w(0xdc), w(0xea), w(0x97), w(0xf2), w(0xcf), w(0xce), \ ++ w(0xf0), w(0xb4), w(0xe6), w(0x73), w(0x96), w(0xac), w(0x74), \ ++ w(0x22), w(0xe7), w(0xad), w(0x35), w(0x85), w(0xe2), w(0xf9), \ ++ w(0x37), w(0xe8), w(0x1c), w(0x75), w(0xdf), w(0x6e), w(0x47), \ ++ w(0xf1), w(0x1a), w(0x71), w(0x1d), w(0x29), w(0xc5), w(0x89), \ ++ w(0x6f), w(0xb7), w(0x62), w(0x0e), w(0xaa), w(0x18), w(0xbe), \ ++ w(0x1b), w(0xfc), w(0x56), w(0x3e), w(0x4b), w(0xc6), w(0xd2), \ ++ w(0x79), w(0x20), w(0x9a), w(0xdb), w(0xc0), w(0xfe), w(0x78), \ ++ w(0xcd), w(0x5a), w(0xf4), w(0x1f), w(0xdd), w(0xa8), w(0x33), \ ++ w(0x88), w(0x07), w(0xc7), w(0x31), w(0xb1), w(0x12), w(0x10), \ ++ w(0x59), w(0x27), w(0x80), w(0xec), w(0x5f), w(0x60), w(0x51), \ ++ w(0x7f), w(0xa9), w(0x19), w(0xb5), w(0x4a), w(0x0d), w(0x2d), \ ++ w(0xe5), w(0x7a), w(0x9f), w(0x93), w(0xc9), w(0x9c), w(0xef), \ ++ w(0xa0), w(0xe0), w(0x3b), w(0x4d), w(0xae), w(0x2a), w(0xf5), \ ++ w(0xb0), w(0xc8), w(0xeb), w(0xbb), w(0x3c), w(0x83), w(0x53), \ ++ w(0x99), w(0x61), w(0x17), w(0x2b), w(0x04), w(0x7e), w(0xba), \ ++ w(0x77), w(0xd6), w(0x26), w(0xe1), w(0x69), w(0x14), w(0x63), \ ++ w(0x55), w(0x21), w(0x0c), w(0x7d) \ ++ } ++/* clang-format on */ ++ ++/* X Macro trick. See https://en.wikipedia.org/wiki/X_Macro */ ++#define SSE2NEON_AES_H0(x) (x) ++static const uint8_t _sse2neon_sbox[256] = SSE2NEON_AES_SBOX(SSE2NEON_AES_H0); ++static const uint8_t _sse2neon_rsbox[256] = SSE2NEON_AES_RSBOX(SSE2NEON_AES_H0); ++#undef SSE2NEON_AES_H0 ++ ++/* x_time function and matrix multiply function */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#define SSE2NEON_XT(x) (((x) << 1) ^ ((((x) >> 7) & 1) * 0x1b)) ++#define SSE2NEON_MULTIPLY(x, y) \ ++ (((y & 1) * x) ^ ((y >> 1 & 1) * SSE2NEON_XT(x)) ^ \ ++ ((y >> 2 & 1) * SSE2NEON_XT(SSE2NEON_XT(x))) ^ \ ++ ((y >> 3 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))) ^ \ ++ ((y >> 4 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))))) ++#endif ++ ++// In the absence of crypto extensions, implement aesenc using regular NEON ++// intrinsics instead. See: ++// https://www.workofard.com/2017/01/accelerated-aes-for-the-arm64-linux-kernel/ ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/ and ++// for more information. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ /* shift rows */ ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ /* sub bytes */ ++ // Here, we separate the whole 256-bytes table into 4 64-bytes tables, and ++ // look up each of the table. After each lookup, we load the next table ++ // which locates at the next 64-bytes. In the meantime, the index in the ++ // table would be smaller than it was, so the index parameters of ++ // `vqtbx4q_u8()` need to be added the same constant as the loaded tables. ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ // 'w-0x40' equals to 'vsubq_u8(w, vdupq_n_u8(0x40))' ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ /* mix columns */ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ /* add round key */ ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A implementation for a table-based AES */ ++#define SSE2NEON_AES_B2W(b0, b1, b2, b3) \ ++ (((uint32_t) (b3) << 24) | ((uint32_t) (b2) << 16) | \ ++ ((uint32_t) (b1) << 8) | (uint32_t) (b0)) ++// muliplying 'x' by 2 in GF(2^8) ++#define SSE2NEON_AES_F2(x) ((x << 1) ^ (((x >> 7) & 1) * 0x011b /* WPOLY */)) ++// muliplying 'x' by 3 in GF(2^8) ++#define SSE2NEON_AES_F3(x) (SSE2NEON_AES_F2(x) ^ x) ++#define SSE2NEON_AES_U0(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F2(p), p, p, SSE2NEON_AES_F3(p)) ++#define SSE2NEON_AES_U1(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p, p) ++#define SSE2NEON_AES_U2(p) \ ++ SSE2NEON_AES_B2W(p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p) ++#define SSE2NEON_AES_U3(p) \ ++ SSE2NEON_AES_B2W(p, p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p)) ++ ++ // this generates a table containing every possible permutation of ++ // shift_rows() and sub_bytes() with mix_columns(). ++ static const uint32_t ALIGN_STRUCT(16) aes_table[4][256] = { ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U0), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U1), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U2), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U3), ++ }; ++#undef SSE2NEON_AES_B2W ++#undef SSE2NEON_AES_F2 ++#undef SSE2NEON_AES_F3 ++#undef SSE2NEON_AES_U0 ++#undef SSE2NEON_AES_U1 ++#undef SSE2NEON_AES_U2 ++#undef SSE2NEON_AES_U3 ++ ++ uint32_t x0 = _mm_cvtsi128_si32(a); // get a[31:0] ++ uint32_t x1 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); // get a[63:32] ++ uint32_t x2 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xAA)); // get a[95:64] ++ uint32_t x3 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); // get a[127:96] ++ ++ // finish the modulo addition step in mix_columns() ++ __m128i out = _mm_set_epi32( ++ (aes_table[0][x3 & 0xff] ^ aes_table[1][(x0 >> 8) & 0xff] ^ ++ aes_table[2][(x1 >> 16) & 0xff] ^ aes_table[3][x2 >> 24]), ++ (aes_table[0][x2 & 0xff] ^ aes_table[1][(x3 >> 8) & 0xff] ^ ++ aes_table[2][(x0 >> 16) & 0xff] ^ aes_table[3][x1 >> 24]), ++ (aes_table[0][x1 & 0xff] ^ aes_table[1][(x2 >> 8) & 0xff] ^ ++ aes_table[2][(x3 >> 16) & 0xff] ^ aes_table[3][x0 >> 24]), ++ (aes_table[0][x0 & 0xff] ^ aes_table[1][(x1 >> 8) & 0xff] ^ ++ aes_table[2][(x2 >> 16) & 0xff] ^ aes_table[3][x3 >> 24])); ++ ++ return _mm_xor_si128(out, RoundKey); ++#endif ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // inverse mix columns ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & ++ 0x1b); // muliplying 'v' by 2 in GF(2^8) ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ // inverse mix columns ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ // sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A implementation */ ++ uint8_t v[16] = { ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 0)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 5)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 10)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 15)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 4)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 9)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 14)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 3)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 8)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 13)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 2)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 7)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 12)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 1)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 6)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 11)], ++ }; ++ ++ return vreinterpretq_m128i_u8(vld1q_u8(v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (int i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++#if defined(__aarch64__) ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ uint8x16_t v = vreinterpretq_u8_m128i(a); ++ uint8x16_t w; ++ ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ // multiplying 'v' by 2 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ return vreinterpretq_m128i_u8(w); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ vst1q_u8((uint8_t *) v, vreinterpretq_u8_m128i(a)); ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)); ++#endif ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++// ++// Emits the Advanced Encryption Standard (AES) instruction aeskeygenassist. ++// This instruction generates a round key for AES encryption. See ++// https://kazakov.life/2017/11/01/cryptocurrency-mining-on-ios-devices/ ++// for details. ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++#if defined(__aarch64__) ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); ++ uint8x16_t v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), _a); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), _a - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), _a - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), _a - 0xc0); ++ ++ uint32x4_t v_u32 = vreinterpretq_u32_u8(v); ++ uint32x4_t ror_v = vorrq_u32(vshrq_n_u32(v_u32, 8), vshlq_n_u32(v_u32, 24)); ++ uint32x4_t ror_xor_v = veorq_u32(ror_v, vdupq_n_u32(rcon)); ++ ++ return vreinterpretq_m128i_u32(vtrn2q_u32(v_u32, ror_xor_v)); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint32_t X1 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); ++ uint32_t X3 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); ++ for (int i = 0; i < 4; ++i) { ++ ((uint8_t *) &X1)[i] = _sse2neon_sbox[((uint8_t *) &X1)[i]]; ++ ((uint8_t *) &X3)[i] = _sse2neon_sbox[((uint8_t *) &X3)[i]]; ++ } ++ return _mm_set_epi32(((X3 >> 8) | (X3 << 24)) ^ rcon, X3, ++ ((X1 >> 8) | (X1 << 24)) ^ rcon, X1); ++#endif ++} ++#undef SSE2NEON_AES_SBOX ++#undef SSE2NEON_AES_RSBOX ++ ++#if defined(__aarch64__) ++#undef SSE2NEON_XT ++#undef SSE2NEON_MULTIPLY ++#endif ++ ++#else /* __ARM_FEATURE_CRYPTO */ ++// Implements equivalent of 'aesenc' by combining AESE (with an empty key) and ++// AESMC and then manually applying the real key as an xor operation. This ++// unfortunately means an additional xor op; the compiler should be able to ++// optimize this away for repeated calls however. See ++// https://blog.michaelbrase.com/2018/05/08/emulating-x86-aes-intrinsics-on-armv8-a ++// for more details. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesmcq_u8(vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(b))); ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesimcq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return _mm_xor_si128(vreinterpretq_m128i_u8(vaeseq_u8( ++ vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ RoundKey); ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8( ++ veorq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++ return vreinterpretq_m128i_u8(vaesimcq_u8(vreinterpretq_u8_m128i(a))); ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst." ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++ // AESE does ShiftRows and SubBytes on A ++ uint8x16_t u8 = vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)); ++ ++#ifndef _MSC_VER ++ uint8x16_t dest = { ++ // Undo ShiftRows step from AESE and extract X1 and X3 ++ u8[0x4], u8[0x1], u8[0xE], u8[0xB], // SubBytes(X1) ++ u8[0x1], u8[0xE], u8[0xB], u8[0x4], // ROT(SubBytes(X1)) ++ u8[0xC], u8[0x9], u8[0x6], u8[0x3], // SubBytes(X3) ++ u8[0x9], u8[0x6], u8[0x3], u8[0xC], // ROT(SubBytes(X3)) ++ }; ++ uint32x4_t r = {0, (unsigned) rcon, 0, (unsigned) rcon}; ++ return vreinterpretq_m128i_u8(dest) ^ vreinterpretq_m128i_u32(r); ++#else ++ // We have to do this hack because MSVC is strictly adhering to the CPP ++ // standard, in particular C++03 8.5.1 sub-section 15, which states that ++ // unions must be initialized by their first member type. ++ ++ // As per the Windows ARM64 ABI, it is always little endian, so this works ++ __n128 dest{ ++ ((uint64_t) u8.n128_u8[0x4] << 0) | ((uint64_t) u8.n128_u8[0x1] << 8) | ++ ((uint64_t) u8.n128_u8[0xE] << 16) | ++ ((uint64_t) u8.n128_u8[0xB] << 24) | ++ ((uint64_t) u8.n128_u8[0x1] << 32) | ++ ((uint64_t) u8.n128_u8[0xE] << 40) | ++ ((uint64_t) u8.n128_u8[0xB] << 48) | ++ ((uint64_t) u8.n128_u8[0x4] << 56), ++ ((uint64_t) u8.n128_u8[0xC] << 0) | ((uint64_t) u8.n128_u8[0x9] << 8) | ++ ((uint64_t) u8.n128_u8[0x6] << 16) | ++ ((uint64_t) u8.n128_u8[0x3] << 24) | ++ ((uint64_t) u8.n128_u8[0x9] << 32) | ++ ((uint64_t) u8.n128_u8[0x6] << 40) | ++ ((uint64_t) u8.n128_u8[0x3] << 48) | ++ ((uint64_t) u8.n128_u8[0xC] << 56)}; ++ ++ dest.n128_u32[1] = dest.n128_u32[1] ^ rcon; ++ dest.n128_u32[3] = dest.n128_u32[3] ^ rcon; ++ ++ return dest; ++#endif ++} ++#endif ++ ++/* Others */ ++ ++// Perform a carry-less multiplication of two 64-bit integers, selected from a ++// and b according to imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clmulepi64_si128 ++FORCE_INLINE __m128i _mm_clmulepi64_si128(__m128i _a, __m128i _b, const int imm) ++{ ++ uint64x2_t a = vreinterpretq_u64_m128i(_a); ++ uint64x2_t b = vreinterpretq_u64_m128i(_b); ++ switch (imm & 0x11) { ++ case 0x00: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_low_u64(b))); ++ case 0x01: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_low_u64(b))); ++ case 0x10: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_high_u64(b))); ++ case 0x11: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_high_u64(b))); ++ default: ++ abort(); ++ } ++} ++ ++FORCE_INLINE unsigned int _sse2neon_mm_get_denormals_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_DENORMALS_ZERO_ON : _MM_DENORMALS_ZERO_OFF; ++} ++ ++// Count the number of bits set to 1 in unsigned 32-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u32 ++FORCE_INLINE int _mm_popcnt_u32(unsigned int a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcount) ++ return __builtin_popcount(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits(a); ++#else ++ return (int) vaddlv_u8(vcnt_u8(vcreate_u8((uint64_t) a))); ++#endif ++#else ++ uint32_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ ++ vst1_u32(&count, count32x2_val); ++ return count; ++#endif ++} ++ ++// Count the number of bits set to 1 in unsigned 64-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u64 ++FORCE_INLINE int64_t _mm_popcnt_u64(uint64_t a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcountll) ++ return __builtin_popcountll(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits64(a); ++#else ++ return (int64_t) vaddlv_u8(vcnt_u8(vcreate_u8(a))); ++#endif ++#else ++ uint64_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ uint64x1_t count64x1_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ count64x1_val = vpaddl_u32(count32x2_val); ++ vst1_u64(&count, count64x1_val); ++ return count; ++#endif ++} ++ ++FORCE_INLINE void _sse2neon_mm_set_denormals_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_DENORMALS_ZERO_MASK) == _MM_DENORMALS_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Return the current 64-bit value of the processor's time-stamp counter. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=rdtsc ++FORCE_INLINE uint64_t _rdtsc(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t val; ++ ++ /* According to ARM DDI 0487F.c, from Armv8.0 to Armv8.5 inclusive, the ++ * system counter is at least 56 bits wide; from Armv8.6, the counter ++ * must be 64 bits wide. So the system counter could be less than 64 ++ * bits wide and it is attributed with the flag 'cap_user_time_short' ++ * is true. ++ */ ++#if defined(_MSC_VER) ++ val = _ReadStatusReg(ARM64_SYSREG(3, 3, 14, 0, 2)); ++#else ++ __asm__ __volatile__("mrs %0, cntvct_el0" : "=r"(val)); ++#endif ++ ++ return val; ++#else ++ uint32_t pmccntr, pmuseren, pmcntenset; ++ // Read the user mode Performance Monitoring Unit (PMU) ++ // User Enable Register (PMUSERENR) access permissions. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c14, 0" : "=r"(pmuseren)); ++ if (pmuseren & 1) { // Allows reading PMUSERENR for user mode code. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c12, 1" : "=r"(pmcntenset)); ++ if (pmcntenset & 0x80000000UL) { // Is it counting? ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c13, 0" : "=r"(pmccntr)); ++ // The counter is set up to count every 64th cycle ++ return (uint64_t) (pmccntr) << 6; ++ } ++ } ++ ++ // Fallback to syscall as we can't enable PMUSERENR in user mode. ++ struct timeval tv; ++ gettimeofday(&tv, NULL); ++ return (uint64_t) (tv.tv_sec) * 1000000 + tv.tv_usec; ++#endif ++} ++ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma pop_macro("ALIGN_STRUCT") ++#pragma pop_macro("FORCE_INLINE") ++#pragma pop_macro("FORCE_INLINE_OPTNONE") ++#endif ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma GCC pop_options ++#endif ++ ++#endif +diff --git c/src/ssw.c i/src/ssw.c +index af8f4f3..87eeb57 100644 +--- c/src/ssw.c ++++ i/src/ssw.c +@@ -36,7 +36,11 @@ + */ + + //#include ++#ifdef __ARM_NEON ++#include "sse2neon.h" ++#else + #include ++#endif + #include + #include + #include +diff --git c/src/ssw.h i/src/ssw.h +index 510f5f4..0a68166 100644 +--- c/src/ssw.h ++++ i/src/ssw.h +@@ -14,7 +14,11 @@ + #include + #include + #include ++#ifdef __ARM_NEON ++#include "sse2neon.h" ++#else + #include ++#endif + + #ifdef __cplusplus + extern "C" { diff --git a/recipes/gangstr/meta.yaml b/recipes/gangstr/meta.yaml index 5d84543b84a15..b6bb7c7a52853 100644 --- a/recipes/gangstr/meta.yaml +++ b/recipes/gangstr/meta.yaml @@ -11,9 +11,12 @@ source: sha256: {{ sha256 }} patches: - 0001-Unvendor-dependencies-use-pkg-config-instead.patch + - gangstr-aarch64.patch # [linux and aarch64] build: - number: 7 + number: 8 + run_exports: + - {{ pin_subpackage('gangstr', max_pin="x") }} requirements: build: @@ -25,6 +28,7 @@ requirements: - gsl - htslib - nlopt + - zlib run: test: @@ -38,5 +42,7 @@ about: summary: GangSTR is a tool for genome-wide profiling tandem repeats from short reads. extra: + additional-platforms: + - linux-aarch64 identifiers: - doi:10.1093/nar/gkz501 From 769a1e42f181ffa1fd4a5f7dedb91ad8239cd741 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 28 Jun 2024 17:56:53 +0300 Subject: [PATCH 0237/1514] merfishtools: add linux-aarch64 build (#48648) * merfishtools: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Fix the build with newer Rust (1.79) Signed-off-by: Martin Tzvetanov Grigorov * Use "cargo install" to copy the binary to $PREFIX/bin Signed-off-by: Martin Tzvetanov Grigorov * Remove '--release' for `cargo install` * Remove some obsolete env vars and debug info Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 3 - recipes/merfishtools/build.sh | 15 ++--- recipes/merfishtools/fix-build.patch | 99 ++++++++++++++++++++++++++++ recipes/merfishtools/meta.yaml | 16 +++-- 4 files changed, 116 insertions(+), 17 deletions(-) create mode 100644 recipes/merfishtools/fix-build.patch diff --git a/build-fail-blacklist b/build-fail-blacklist index 01febe62bdb4b..78f3903a23284 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -712,9 +712,6 @@ recipes/protk # Does not link include -lGL -lGLU when linking, might require libOSMesa. recipes/connectome-workbench -# GSL linking problem (-lgsl not used?): "undefined reference to `gsl_ran_multinomial_pdf'" -recipes/merfishtools - # Build fails during boostrap of vendored Boost. recipes/gvcftools recipes/seer diff --git a/recipes/merfishtools/build.sh b/recipes/merfishtools/build.sh index 470e09e235de3..7ce9bedb3cf54 100644 --- a/recipes/merfishtools/build.sh +++ b/recipes/merfishtools/build.sh @@ -1,14 +1,9 @@ -#!/bin/bash -e +#!/bin/bash -# circumvent a bug in conda-build >=2.1.18,<3.0.10 -# https://github.com/conda/conda-build/issues/2255 -# TODO: remove once CI uses conda-build >=3.0.10 -[[ -z $REQUESTS_CA_BUNDLE && ${REQUESTS_CA_BUNDLE+x} ]] && unset REQUESTS_CA_BUNDLE -[[ -z $SSL_CERT_FILE && ${SSL_CERT_FILE+x} ]] && unset SSL_CERT_FILE +set -xe + +# build statically linked binary with Rust and install it to $PREFIX/bin +LIBRARY_PATH=$PREFIX/lib cargo install --root ${PREFIX} --path . -# build statically linked binary with Rust -LIBRARY_PATH=$PREFIX/lib cargo build --release -# install the binary -cp target/release/merfishtools $PREFIX/bin # install the Python package $PYTHON setup.py install diff --git a/recipes/merfishtools/fix-build.patch b/recipes/merfishtools/fix-build.patch new file mode 100644 index 0000000000000..0491f45772770 --- /dev/null +++ b/recipes/merfishtools/fix-build.patch @@ -0,0 +1,99 @@ +diff --git i/Cargo.toml w/Cargo.toml +index 996c2d3..208c16f 100644 +--- i/Cargo.toml ++++ w/Cargo.toml +@@ -8,10 +8,9 @@ bio = "0.14" + regex = "0.1" + bit-set = "0.4" + csv = "1.0" +-nalgebra = "0.5.1" ++nalgebra = "0.32.6" + itertools = "0.5" + num = "0.1" +-rustc-serialize = "0.3" + argparse = "0.2" + log = "0.3" + fern = "0.3" +diff --git i/src/cli.rs w/src/cli.rs +index 0faef3e..e7395e2 100644 +--- i/src/cli.rs ++++ w/src/cli.rs +@@ -176,7 +176,7 @@ impl Expression { + } + if let Some(ref mut stats_writer) = stats_writer { + stats_writer +- .serialize([&cell, &format!("{:.4}", noise_rate)]) ++ .serialize([&cell, &&format!("{:.4}", noise_rate)]) + .unwrap(); + } + }, +diff --git i/src/codebook.rs w/src/codebook.rs +index 77658fe..c3fec80 100644 +--- i/src/codebook.rs ++++ w/src/codebook.rs +@@ -80,7 +80,7 @@ mod tests { + } + + let d = hamming_dist(&a, &b); +- assert!(d >= dist, format!("{} < {}", d, dist)); ++ assert!(d >= dist, "{} < {}", d, dist); + if d == dist { + is_tight = true; + } +diff --git i/src/io/cdf/expression.rs w/src/io/cdf/expression.rs +index e29236c..3ba70e4 100644 +--- i/src/io/cdf/expression.rs ++++ w/src/io/cdf/expression.rs +@@ -97,7 +97,7 @@ impl Reader { + value: NotNaN::new(rec.expression).unwrap(), + prob: rec.prob, + })); +- let mut cdfs = features.entry(feature).or_insert_with(Vec::new); ++ let cdfs = features.entry(feature).or_insert_with(Vec::new); + cdfs.push(cdf); + } + CDFs { inner: features } +diff --git i/src/io/mod.rs w/src/io/mod.rs +index ab14d15..5c95071 100644 +--- i/src/io/mod.rs ++++ w/src/io/mod.rs +@@ -7,8 +7,9 @@ pub mod cdf; + pub mod codebook; + pub mod estimation; + pub mod merfishdata; ++use serde::{Serialize, Deserialize}; + +-#[derive(RustcEncodable, RustcDecodable, PartialEq, Eq, Clone, Copy, Hash)] ++#[derive(Serialize, Deserialize, PartialEq, Eq, Clone, Copy, Hash)] + pub struct Cell { + pub experiment: u32, + pub cell: u32, +diff --git i/src/lib.rs w/src/lib.rs +index d9b2a7b..14c3165 100644 +--- i/src/lib.rs ++++ w/src/lib.rs +@@ -26,7 +26,6 @@ extern crate petgraph; + extern crate rand; + extern crate regex; + extern crate rgsl; +-extern crate rustc_serialize; + extern crate serde; + #[macro_use] + extern crate serde_derive; +diff --git i/src/model/readout/joint_model.rs w/src/model/readout/joint_model.rs +index 4a995e6..b475ca5 100644 +--- i/src/model/readout/joint_model.rs ++++ w/src/model/readout/joint_model.rs +@@ -99,10 +99,10 @@ impl JointModel { + /// + /// * ID of cell that is investigated (for debugging purposes). + pub fn expectation_maximization(&mut self, cell: &str) { +- let mut feature_models: Vec> = self ++ let mut feature_models: Vec> = self + .feature_models + .values() +- .map(|m| Box::new(m as &AbstractFeatureModel)) ++ .map(|m| Box::new(m as &dyn AbstractFeatureModel)) + .collect_vec(); + feature_models.push(Box::new(&self.noise_model)); + diff --git a/recipes/merfishtools/meta.yaml b/recipes/merfishtools/meta.yaml index df5bcbe9e0cbf..414515d22a58b 100644 --- a/recipes/merfishtools/meta.yaml +++ b/recipes/merfishtools/meta.yaml @@ -5,27 +5,31 @@ package: version: {{ version }} build: - number: 1 + number: 2 + run_exports: + - {{ pin_subpackage('merfishtools', max_pin="x") }} skip: True # [not py3k or osx] source: url: https://github.com/merfishtools/merfishtools/archive/v{{version}}.tar.gz sha256: 5ee49804b88b0ff57c6e4e277954b098bd2e6c21d826aa3c416073aec4dcf208 + patches: + - fix-build.patch requirements: build: - - rust >=1.19 - {{ compiler('c') }} + - {{ compiler('rust') }} host: - gsl - python - - matplotlib + - matplotlib-base - numpy - pandas - openblas run: - python - - matplotlib + - matplotlib-base - numpy - pandas - gsl @@ -45,3 +49,7 @@ about: analysis can be performed for two or multiple conditions, including credible intervals for fold change and coefficient of variation, and controlling the expected false discovery rate." + +extra: + additional-platforms: + - linux-aarch64 From d580f7cce70c3e74f7220a1c9f42a0bdcf483426 Mon Sep 17 00:00:00 2001 From: KChigira <83323455+KChigira@users.noreply.github.com> Date: Sat, 29 Jun 2024 00:14:52 +0900 Subject: [PATCH 0238/1514] Update mkdesigner (#48739) * update mkdesigner * bump build number and fix sha256 * add matplotlib-base back --------- Co-authored-by: mencian Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/mkdesigner/meta.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/recipes/mkdesigner/meta.yaml b/recipes/mkdesigner/meta.yaml index 528f9f1c06ce6..fd06695b14dd6 100644 --- a/recipes/mkdesigner/meta.yaml +++ b/recipes/mkdesigner/meta.yaml @@ -15,8 +15,8 @@ build: - mkprimer = mkdesigner.mkprimer:main - mkselect = mkdesigner.mkselect:main noarch: python - script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv - number: 0 + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv + number: 1 run_exports: - {{ pin_subpackage('mkdesigner', max_pin="x") }} @@ -27,12 +27,12 @@ requirements: run: - python >=3.8,<4.0 - pandas >=2.0.2,<3.0.0 - - samtools >=1.6,<2.0 - - bcftools >=1.5,<2.0 - blast >=2.14.0,<3.0.0 - gatk4 >=4.4.0.0,<5.0.0.0 - - picard >=2.18.29,<3.0.0 - - r-base >=4.2.3,<5.0.0 + - picard-slim >=2.18.29,<3.0.0 + - primer3 >=2.6.1,<3.0.0 + - samtools >=1.6,<2.0 + - bcftools >=1.5,<2.0 - matplotlib-base test: From cb4177f9a67f6393885b81cc5eb684ea1ea1614f Mon Sep 17 00:00:00 2001 From: PatschD <48880710+PatschD@users.noreply.github.com> Date: Fri, 28 Jun 2024 17:44:28 +0200 Subject: [PATCH 0239/1514] small adjustments (#48343) * small adjustments * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/mapseq/meta.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/recipes/mapseq/meta.yaml b/recipes/mapseq/meta.yaml index 8b345a23288f8..46a663ed8d742 100644 --- a/recipes/mapseq/meta.yaml +++ b/recipes/mapseq/meta.yaml @@ -1,15 +1,16 @@ -{% set version = "2.1.1a" %} -{% set sha256 = "5a33c6ff169b34a9e6985f68e808172035a0f0cb5fea699f7ed997dd537d9fc1" %} +{% set version = "2.1.1b" %} +{% set sha256 = "9be4f46cc6d8e7273c4d11f8ac8133a63fe2da39f420100d5d4e1828acaa6d47" %} package: name: mapseq version: '{{ version }}' source: - url: https://github.com/meringlab/MAPseq/archive/{{ version }}.tar.gz + url: https://github.com/meringlab/MAPseq/archive/v{{ version }}.tar.gz sha256: '{{ sha256 }}' build: + skip: True # [osx] number: 0 run_exports: - {{ pin_subpackage('mapseq', max_pin="x") }} @@ -22,7 +23,7 @@ requirements: - autoconf - libtool - make - - svn + - subversion host: - zlib - gsl From abd50dbf34298af47b491fdb301309d62d846c08 Mon Sep 17 00:00:00 2001 From: santiago-es Date: Fri, 28 Jun 2024 09:04:38 -0700 Subject: [PATCH 0240/1514] Update telometer (#47979) * Create setup.sh * Create meta.yaml * Add files via upload * Add recipe for telometer * x x * telometer try2 * add telometer fixing meta yaml * add telometer2 * add telometer3 * add telometer4 * fix metayaml * updating telometer to 0.73 * clean up recipe * add regex --------- Co-authored-by: mencian Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/telometer/meta.yaml | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/recipes/telometer/meta.yaml b/recipes/telometer/meta.yaml index 9635ae5603af9..2480b9109616a 100644 --- a/recipes/telometer/meta.yaml +++ b/recipes/telometer/meta.yaml @@ -1,32 +1,32 @@ {% set name = "telometer" %} -{% set version = "0.5" %} +{% set version = "0.81" %} package: name: "{{ name|lower }}" version: "{{ version }}" source: - url: https://test.pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 6225b28342a8120ed2dc138cfc30c07f2c887b1ac996d27eeddee62544a37572 + url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/telometer-{{ version }}.tar.gz" + sha256: 88e3f4d0c4018d83f6406be6ecf772a9ea232eab774a8a268bb3b0d427707da3 build: number: 0 noarch: python entry_points: - telometer=telometer:calculate_telomere_length - script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv" + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" run_exports: - - {{ pin_subpackage(name, max_pin='x.x') }} - + - {{ pin_subpackage(name, max_pin='x') }} requirements: host: - pip - - python + - python >=3.7 run: - - python + - python >=3.7 - pysam - pandas + - regex test: imports: @@ -37,9 +37,11 @@ test: about: home: https://github.com/santiago-es/Telometer license: MIT + license_family: MIT license_file: LICENSE.txt - summary: "Tool for measuring telomeres from long-read data." - dev_url: https://github.com/santiago-es + summary: "A simple regular expression based method for measuring individual, chromosome-specific telomere lengths from long-read sequencing data." + dev_url: https://github.com/santiago-es/Telometer + From 9d4bf4217933aa1a8f89badb6d7934c1e03f9262 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 28 Jun 2024 13:50:04 -0400 Subject: [PATCH 0241/1514] Update hicexplorer to 3.7.5 (#48809) --- recipes/hicexplorer/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/hicexplorer/meta.yaml b/recipes/hicexplorer/meta.yaml index 02e1d69a4de4a..e33d5c5f9ea3b 100644 --- a/recipes/hicexplorer/meta.yaml +++ b/recipes/hicexplorer/meta.yaml @@ -1,5 +1,5 @@ {% set name = "hicexplorer" %} -{% set version = "3.7.4" %} +{% set version = "3.7.5" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/deeptools/HiCExplorer/archive/{{ version }}.tar.gz - sha256: 4c19c0bbb74417a87096ec0c9238bb7e59874020c6c82fadf114efb96d3be0d8 + sha256: 5d798d47bc4b4067e9a1446a5745c8146e073b7d9df18390eb1f414a741d2715 build: number: 0 From 5b6d769ec2d2b78f6ac024500110e05c446049d8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 28 Jun 2024 14:44:39 -0400 Subject: [PATCH 0242/1514] Update tiddit to 3.7.0 (#48807) * Update tiddit to 3.7.0 * add pysam to host --------- Co-authored-by: mencian --- recipes/tiddit/meta.yaml | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/recipes/tiddit/meta.yaml b/recipes/tiddit/meta.yaml index 1f3bce3e17e76..f42bb5eb1f8a1 100644 --- a/recipes/tiddit/meta.yaml +++ b/recipes/tiddit/meta.yaml @@ -1,19 +1,19 @@ -{% set version = "3.6.1" %} +{% set name = "tiddit" %} +{% set version = "3.7.0" %} package: - name: tiddit - version: '{{ version }}' + name: {{ name }} + version: {{ version }} source: url: https://github.com/SciLifeLab/TIDDIT/archive/TIDDIT-{{ version }}.tar.gz - sha256: 0b88391f15b6bf854f6f62179c6a8c8c6cda8c87964259602ab8d42bc6dd5d0f + sha256: ae373b33e0036fbe5af7cd69e769c3c3fb869e28345a8e0067a0416e64ba76f6 build: - number: 2 + number: 0 entry_points: - tiddit = tiddit.__main__:main - script: python -m pip install --no-deps --ignore-installed . - skip: True # [osx] + script: {{ PYTHON }} -m pip install --no-deps --no-build-isolation --no-cache-dir . -vvv run_exports: - {{ pin_subpackage('tiddit', max_pin="x") }} @@ -25,10 +25,11 @@ requirements: - cython - numpy - pip + - pysam - joblib run: - python - - numpy + - {{ pin_compatible('numpy') }} - joblib - pysam - fermi2 @@ -38,16 +39,14 @@ requirements: test: commands: - tiddit --help - - fermi2 2>&1 | grep "^Usage:" - - ropebwt2 /dev/null 2>&1 | grep ropebwt2 - - bwa 2>&1 | grep "index sequences in the" about: home: https://github.com/SciLifeLab/TIDDIT - license: GPL-3.0-only + license: "GPL-3.0-only" + license_family: GPL3 license_file: LICENSE summary: "TIDDIT - structural variant calling" extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 From 6d59310009c4c8048950168af496e656d4ce98aa Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 28 Jun 2024 16:24:08 -0400 Subject: [PATCH 0243/1514] Update flumut to 0.6.0 (#48806) * Update flumut to 0.6.0 * clean up recipe * edit tests --------- Co-authored-by: mencian Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/flumut/meta.yaml | 99 +++++++++++++++++++--------------------- 1 file changed, 48 insertions(+), 51 deletions(-) diff --git a/recipes/flumut/meta.yaml b/recipes/flumut/meta.yaml index 9fca1d7f56e9e..2b969e5af56ed 100644 --- a/recipes/flumut/meta.yaml +++ b/recipes/flumut/meta.yaml @@ -1,51 +1,48 @@ -{% set name = "flumut" %} -{% set version = "0.5.3" %} - -package: - name: {{ name|lower }} - version: {{ version }} - -source: - url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/flumut-{{ version }}.tar.gz - sha256: 02821d4ca6f0e547ac3d17d865e357f0c4696dca14959d369d46c8f725a207da - -build: - run_exports: - - {{ pin_subpackage(name, max_pin="x.x") }} - entry_points: - - flumut = flumut.flumut:main - noarch: python - script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation - number: 0 - -requirements: - host: - - python >=3.7 - - setuptools >=61.2 - - pip - run: - - python >=3.7 - - click >=8.0.0 - - biopython >=1.81 - - openpyxl >=3.1.2 - - importlib-resources >=1.3 - -test: - imports: - - flumut - commands: - - pip check - - flumut --help - requires: - - pip - -about: - home: https://github.com/izsvenezie-virology/FluMut - summary: A tool to search for molecular markers with potential impact on the biological characteristics of Influenza A viruses of the A(H5N1) subtype. - license: AGPL-3.0 - license_file: LICENSE - -extra: - recipe-maintainers: - - EdoardoGiussani - - AlexSartori +{% set name = "flumut" %} +{% set version = "0.6.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/flumut-{{ version }}.tar.gz + sha256: 62c4240629bfcd187b3efe6e2a4cd0c6d3a90ccf4c40f3b9ce26a48ff8c0b096 + +build: + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} + entry_points: + - flumut = flumut.flumut:main + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + number: 0 + +requirements: + host: + - python >=3.7 + - pip + run: + - python >=3.7 + - click >=8.0.0 + - biopython >=1.81 + - openpyxl >=3.1.2 + - importlib-resources >=1.3 + +test: + imports: + - flumut + #commands: + #- flumut --help + +about: + home: https://github.com/izsvenezie-virology/FluMut + summary: A tool to search for molecular markers with potential impact on the biological characteristics of Influenza A viruses of the A(H5N1) subtype. + license: AGPL-3.0-or-later + license_family: AGPL + license_file: LICENSE + +extra: + recipe-maintainers: + - EdoardoGiussani + - AlexSartori From 1501fce92a0f68f27f18d2e26e0bd8601dccd0d3 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 28 Jun 2024 16:31:31 -0400 Subject: [PATCH 0244/1514] Update amdirt to 1.6.1 (#48747) * Update amdirt to 1.6.1 * pin streamlit to <=1.35.0 * try removing streamlit pin * edit tests --------- Co-authored-by: mencian --- recipes/amdirt/meta.yaml | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/recipes/amdirt/meta.yaml b/recipes/amdirt/meta.yaml index a28aeb665778a..607c51f610b82 100644 --- a/recipes/amdirt/meta.yaml +++ b/recipes/amdirt/meta.yaml @@ -1,5 +1,5 @@ {% set name = "amdirt" %} -{% set version = "1.6.0" %} +{% set version = "1.6.1" %} package: name: {{ name|lower }} @@ -7,16 +7,16 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/AMDirT-{{ version }}.tar.gz - sha256: 15feb7872d98e73225886a81a6b7b1af0e6a962e9a398d6e0343c31adeb9640c + sha256: dbeb4f50972ad2c01aeb3221d0a8bd35e1cb7bf45418dd913fa45fa1c2c9050c build: entry_points: - AMDirT = AMDirT.cli:cli noarch: python - script: {{ PYTHON }} -m pip install . -vv + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv number: 0 run_exports: - - {{ pin_subpackage("amdirt", max_pin="x.x") }} + - {{ pin_subpackage("amdirt", max_pin="x") }} requirements: host: @@ -32,24 +32,23 @@ requirements: - python >=3.9 - requests - rich - - streamlit >=1.21.0 + - streamlit - streamlit-aggrid - tabulate test: imports: - AMDirT - commands: - - pip check - - AMDirT --help - requires: - - pip + #commands: + #- AMDirT --help about: home: https://github.com/SPAAM-community/AMDirT summary: 'AMDirT: AncientMetagenomeDir Toolkit' license: GPL-3.0-or-later + license_family: GPL3 license_file: LICENSE + dev_url: https://github.com/SPAAM-community/AMDirT extra: recipe-maintainers: From 5ee85cf5c961e96fe109991bb3f791faee470539 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 28 Jun 2024 17:07:12 -0400 Subject: [PATCH 0245/1514] Update nonpareil to 3.5.3 (#48810) Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/nonpareil/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/nonpareil/meta.yaml b/recipes/nonpareil/meta.yaml index 59c5d0cc17f90..1d4d4f046d7fa 100644 --- a/recipes/nonpareil/meta.yaml +++ b/recipes/nonpareil/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "3.5.2" %} -{% set sha256 = "d0c65268add14b428e206ef601e945403ec77ed425eecaf23046e57582908c00" %} +{% set version = "3.5.3" %} +{% set sha256 = "0b38cfd16931b6005992d3c902aaa91943fbf67f67a64c5c0b9ed6a419e7ec90" %} package: name: nonpareil From 590a5a18da5f4960df58b211433a5c571ecbad19 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 29 Jun 2024 01:48:30 -0400 Subject: [PATCH 0246/1514] Update paragone to 1.1.1 (#48789) --- recipes/paragone/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/paragone/meta.yaml b/recipes/paragone/meta.yaml index d41448dab4277..d2c06021b0d7f 100644 --- a/recipes/paragone/meta.yaml +++ b/recipes/paragone/meta.yaml @@ -1,5 +1,5 @@ {% set name = "paragone" %} -{% set version = "1.1.0" %} +{% set version = "1.1.1" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: "https://github.com/chrisjackson-pellicle/ParaGone/archive/refs/tags/v{{ version }}.tar.gz" - sha256: 4ed8a774418bf4a06ddde2088fc3331df5b212b1aeecdc9bc87272725aaf1928 + sha256: 33927eb32a0f11bb1f9d8f41c229886eeef2106fd8de44da248f1a31b3fd4e23 build: - number: 1 + number: 0 skip: True # [win] entry_points: - paragone = paragone.paragone_main:main From 9fa27bdf0420190b325dbdeabb8290b16c36172b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 29 Jun 2024 20:03:06 -0400 Subject: [PATCH 0247/1514] Update sourmash to 4.8.10 (#48814) --- recipes/sourmash/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sourmash/meta.yaml b/recipes/sourmash/meta.yaml index 41fdcffd5c006..e756d099f72be 100644 --- a/recipes/sourmash/meta.yaml +++ b/recipes/sourmash/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "4.8.9" %} +{% set version = "4.8.10" %} package: name: sourmash @@ -6,7 +6,7 @@ package: source: url: https://pypi.io/packages/source/s/sourmash/sourmash-{{ version }}.tar.gz - sha256: b11f5eeaf99e6ea58c6d76602a454bb3ed1bf6e8607e6418e01b9722da439fa3 + sha256: e945120f932c976e84ca85c978e56db6b7782e33682ab126a1da9bfa0107b7c2 build: number: 0 From 47cab72ae20ce02268a15d92cae9f06867295afc Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 30 Jun 2024 08:30:59 -0400 Subject: [PATCH 0248/1514] Update crispector2 to 2.1.0 (#48819) --- recipes/crispector2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/crispector2/meta.yaml b/recipes/crispector2/meta.yaml index cf882e1b1ee03..288138c9508da 100644 --- a/recipes/crispector2/meta.yaml +++ b/recipes/crispector2/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.0.8" %} +{% set version = "2.1.0" %} package: name: crispector2 @@ -15,7 +15,7 @@ build: source: url: https://github.com/theAguy/crispector2/archive/refs/tags/v{{ version }}.tar.gz - sha256: 9ca7823cbd4decdd3b1bbe3bd4bb7c77e87142ce4d1df21f06565ee9ee465177 + sha256: 77dc557d8d57a947a13fce352831d5e433307dd59524eb77b9fca2a581c2e372 requirements: host: From cbf1c0d3db4896003f268275a653a36da23788b4 Mon Sep 17 00:00:00 2001 From: yanyew <90335707+yanyew@users.noreply.github.com> Date: Mon, 1 Jul 2024 02:07:12 +0800 Subject: [PATCH 0249/1514] Update syngap to v1.2.4 (#48821) --- recipes/syngap/build.sh | 1 - recipes/syngap/meta.yaml | 12 ++++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/recipes/syngap/build.sh b/recipes/syngap/build.sh index febcbd3db0e1e..84a877857690c 100644 --- a/recipes/syngap/build.sh +++ b/recipes/syngap/build.sh @@ -4,5 +4,4 @@ mkdir -p ${PREFIX}/bin cp -rf ${SRC_DIR}/bin ${PREFIX}/bin cp -rf ${SRC_DIR}/scripts ${PREFIX}/bin - cp -f ${SRC_DIR}/*.py ${PREFIX}/bin diff --git a/recipes/syngap/meta.yaml b/recipes/syngap/meta.yaml index 568a9902f57c7..cb9af56f58df9 100644 --- a/recipes/syngap/meta.yaml +++ b/recipes/syngap/meta.yaml @@ -1,5 +1,5 @@ {% set name = "syngap" %} -{% set version = "1.2.3" %} +{% set version = "1.2.4" %} package: name: {{ name }} @@ -7,18 +7,18 @@ package: source: url: https://github.com/yanyew/SynGAP/releases/download/v{{ version }}/{{ name }}_v{{ version }}.tar.gz - sha256: 0b8303c0a9b681dee83cab0fecacb0a073cd19e5225d6557c4c735c88d3513c8 + sha256: 508d1f4c92f76a472b5fed489ac99bb3930e213ca80f979c2c2e5ffaff9cfa77 build: - number: 1 - entry_points: + number: 0 + entry_points: - syngap = SynGAP:main noarch: generic run_exports: - {{ pin_subpackage('syngap', max_pin="x") }} -requirements: - host: +requirements: + host: - python >=3.10 - pip run: From 003ebc73de2bd67423dd55ad4b815502dfbc604c Mon Sep 17 00:00:00 2001 From: Xi Chen <38089207+xinehc@users.noreply.github.com> Date: Mon, 1 Jul 2024 14:35:34 +0800 Subject: [PATCH 0250/1514] add recipe argo (#48817) * add recipe argo * fix sha * Update recipes/argo/meta.yaml Co-authored-by: Martin Grigorov --------- Co-authored-by: Martin Grigorov --- recipes/argo/meta.yaml | 43 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 recipes/argo/meta.yaml diff --git a/recipes/argo/meta.yaml b/recipes/argo/meta.yaml new file mode 100644 index 0000000000000..ef376602011c1 --- /dev/null +++ b/recipes/argo/meta.yaml @@ -0,0 +1,43 @@ +{% set name = "argo" %} +{% set version = "0.0.1" %} + +package: + name: '{{ name|lower }}' + version: '{{ version }}' + +source: + url: https://github.com/xinehc/argo/archive/refs/tags/v{{ version }}.tar.gz + sha256: 88d4993c1509442a933db4a5d406ac5af1d0816637e3d05e53735c188291a1b4 + +build: + noarch: python + number: 0 + script: '{{ PYTHON }} -m pip install . --no-deps --ignore-installed --no-cache-dir -vvv' + run_exports: + - {{ pin_subpackage('argo', max_pin='x.x') }} + +requirements: + host: + - pip + - python >=3.7 + run: + - python >=3.7 + - diamond ==2.1.8 + - melon >=0.2.0 + - scikit-learn + +test: + imports: + - argo + commands: + - argo -h + +about: + home: https://github.com/xinehc/argo + license: MIT + license_family: MIT + summary: 'Argo: species-resolved profiling of antibiotic resistant genes with long-read metagenomics' + +extra: + recipe-maintainers: + - xinehc From 3daddd254a6df84b53102906765974922bda0b03 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 1 Jul 2024 02:40:21 -0400 Subject: [PATCH 0251/1514] Update clinvar-this to 0.17.1 (#48826) --- recipes/clinvar-this/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/clinvar-this/meta.yaml b/recipes/clinvar-this/meta.yaml index f6b5744bed0c6..e073332a1cf96 100644 --- a/recipes/clinvar-this/meta.yaml +++ b/recipes/clinvar-this/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.17.0" %} -{% set sha256 = "7a8e5781cf00a6f9201bc8c3c89c6df205b000c81de58a0426e7763ca0a63440" %} +{% set version = "0.17.1" %} +{% set sha256 = "9fc21858d673a9f4daa459741a5425790402ad7ef12544d62c13e750d73888af" %} package: name: clinvar-this From 353ca6172484374d028859dbae07994fa0499157 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 1 Jul 2024 03:23:17 -0400 Subject: [PATCH 0252/1514] Update tides-ml to 1.3.0 (#48824) * Update tides-ml to 1.3.0 * Pin Python to <=3.11.7 Suggested by the following error: ERROR: Package 'tides-ml' requires a different Python: 3.11.9 not in '<=3.11.7' Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov --- recipes/tides-ml/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/tides-ml/meta.yaml b/recipes/tides-ml/meta.yaml index 75f14a4175336..c07781303977e 100644 --- a/recipes/tides-ml/meta.yaml +++ b/recipes/tides-ml/meta.yaml @@ -1,5 +1,5 @@ {% set name = "tides-ml" %} -{% set version = "1.2.0" %} +{% set version = "1.3.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/TIdeS-ML-{{ version }}.tar.gz - sha256: 8c31f4429303e5d34c031b243963fae3eec1f0d9c97e856949a7eac17f82452c + sha256: 8bfcd9f56a943a9099536e9a61664023aa9ca9f21fc036c53f0e4d925b95b770 build: entry_points: @@ -20,10 +20,10 @@ build: requirements: host: - - python <3.12 + - python <=3.11.7 - pip run: - - python <3.12 + - python <=3.11.7 - biopython >=1.79 - ete3 >=3.1.2 - optuna >=3.0 From 8cc3515f7d6ad84c9c1743d2217b88ac2e4e3e51 Mon Sep 17 00:00:00 2001 From: Nabil-Fareed Alikhan Date: Mon, 1 Jul 2024 08:32:26 +0100 Subject: [PATCH 0253/1514] Add Clermontyping (#48793) * clermontyping * clermontyping * adding .sh * additional changes from review * additional changes from review * additional changes from review * Copy clermonTyping.sh to $PREFIX/bin Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov --- recipes/clermontyping/build.sh | 8 ++++++ recipes/clermontyping/meta.yaml | 49 +++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 recipes/clermontyping/build.sh create mode 100644 recipes/clermontyping/meta.yaml diff --git a/recipes/clermontyping/build.sh b/recipes/clermontyping/build.sh new file mode 100644 index 0000000000000..05b90b57289ce --- /dev/null +++ b/recipes/clermontyping/build.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +set -xe + +mkdir -p ${PREFIX}/bin +cp $SRC_DIR/clermonTyping.sh ${PREFIX}/bin/ +mkdir -p ${PREFIX}/bin/bin +cp $SRC_DIR/bin/* ${PREFIX}/bin/bin \ No newline at end of file diff --git a/recipes/clermontyping/meta.yaml b/recipes/clermontyping/meta.yaml new file mode 100644 index 0000000000000..13691f5d2e92b --- /dev/null +++ b/recipes/clermontyping/meta.yaml @@ -0,0 +1,49 @@ +{% set version = "1.0.2" %} +{% set sha256 = "6b14a7a1450f13dfc5fc4ca39349baf94d9a09b726f982213119284d06bf2f8c" %} + +package: + name: "clermontyping" + version: '{{version}}' + + +source: + url: https://github.com/happykhan/ClermonTyping/archive/refs/tags/{{version}}.tar.gz + sha256: '{{sha256}}' + +build: + number: 0 + noarch: generic + run_exports: + - {{ pin_subpackage('clermontyping', max_pin="x") }} + +requirements: + host: + - python >=3.8 + run: + - blast + - biopython + - r-readr + - r-dplyr + - r-tidyr + - r-stringr + - r-knitr + - r-rmarkdown + - r-markdown + - pandoc + - mash + +test: + commands: + - clermonTyping.sh -h + +about: + home: "https://github.com/happykhan/ClermonTyping" + summary: " determine the Clermont E coli phylotype" + license: GPL-3.0-only + license_family: GPL + license_file: 'LICENSE' + description: 'Determines the Clermont phylotype of a given E coli strain by performing in silico quadriplex PCR' + +extra: + recipe-maintainers: + - happykhan \ No newline at end of file From 2279cdbe2641e38c786ec79c50c5a686f673b683 Mon Sep 17 00:00:00 2001 From: james hadfield Date: Mon, 1 Jul 2024 19:45:02 +1200 Subject: [PATCH 0254/1514] Update Auspice to 2.56.0 (#48825) * Update Auspice to 2.56.0 See the changelog on the [Auspice releases page](https://github.com/nextstrain/auspice/releases/) for more details * Reset the build number --------- Co-authored-by: Martin Grigorov --- recipes/auspice/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/auspice/meta.yaml b/recipes/auspice/meta.yaml index 51f2c349d4db4..036ed1bc4e16c 100644 --- a/recipes/auspice/meta.yaml +++ b/recipes/auspice/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.54.1" %} +{% set version = "2.56.0" %} package: name: auspice @@ -6,10 +6,10 @@ package: source: url: https://registry.npmjs.org/auspice/-/auspice-{{ version }}.tgz - sha256: 67533ac3545089f200ef44598ab12d4a937b7018cc8c4c192e0516ab6081731b + sha256: 89c620bc790c5e3f28969a253f41e36bf35a13346cb8c6ab55868d9c6ee08714 build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage("auspice", max_pin="x.x") }} From d408840e462c42f2f2ba6be006204029b97c1db8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 1 Jul 2024 04:03:17 -0400 Subject: [PATCH 0255/1514] Update mkdesigner to 0.4.2 (#48827) --- recipes/mkdesigner/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/mkdesigner/meta.yaml b/recipes/mkdesigner/meta.yaml index fd06695b14dd6..629629f63bcb1 100644 --- a/recipes/mkdesigner/meta.yaml +++ b/recipes/mkdesigner/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mkdesigner" %} -{% set version = "0.4.1" %} +{% set version = "0.4.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mkdesigner-{{ version }}.tar.gz - sha256: 4b13795e8461e2fb3bfe4c58556f6bc66c9e986dc1e65606094cb07afdead061 + sha256: 60026c11cd7510835af2cc8d99cd126293ef243c585b3d5b4fd01540f9a58473 build: entry_points: @@ -16,7 +16,7 @@ build: - mkselect = mkdesigner.mkselect:main noarch: python script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv - number: 1 + number: 0 run_exports: - {{ pin_subpackage('mkdesigner', max_pin="x") }} From cad42a96c31dfe8529e2a7104e4340db37aa3573 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 1 Jul 2024 04:03:46 -0400 Subject: [PATCH 0256/1514] Update omamer to 2.0.4 (#48828) --- recipes/omamer/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/omamer/meta.yaml b/recipes/omamer/meta.yaml index 9bbc65251e0ac..2efe270cd63c8 100644 --- a/recipes/omamer/meta.yaml +++ b/recipes/omamer/meta.yaml @@ -1,5 +1,5 @@ {% set name = "omamer" %} -{% set version = "2.0.3" %} +{% set version = "2.0.4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/omamer-{{ version }}.tar.gz - sha256: c29fcaf5aa39fc3a3f2ff860159ce4df1832229751a6a623ef9af4eba503b525 + sha256: 292a9bc0534452f0480144620a57135a498b5e54cb252f1ee6f93a816037e3e0 build: entry_points: From 8d19f7be600733d2fb7e160fdaee39a50dc38c0c Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Mon, 1 Jul 2024 10:28:20 +0200 Subject: [PATCH 0257/1514] remove tsv-utils as it is moved to conda-forge (#48813) --- recipes/tsv-utils/build.sh | 5 ----- recipes/tsv-utils/meta.yaml | 40 ------------------------------------- 2 files changed, 45 deletions(-) delete mode 100644 recipes/tsv-utils/build.sh delete mode 100644 recipes/tsv-utils/meta.yaml diff --git a/recipes/tsv-utils/build.sh b/recipes/tsv-utils/build.sh deleted file mode 100644 index d6cfc9ee1ccf8..0000000000000 --- a/recipes/tsv-utils/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -x - -cp -r bin $PREFIX diff --git a/recipes/tsv-utils/meta.yaml b/recipes/tsv-utils/meta.yaml deleted file mode 100644 index acdfd5e7da7a1..0000000000000 --- a/recipes/tsv-utils/meta.yaml +++ /dev/null @@ -1,40 +0,0 @@ -{% set name = "tsv-utils" %} -{% set version = "2.2.0" %} - -package: - name: {{ name|lower }} - version: {{ version }} - -source: - - url: https://github.com/eBay/tsv-utils/releases/download/v{{ version }}/tsv-utils-v{{ version }}_linux-x86_64_ldc2.tar.gz # [linux64] - sha256: f8b1132521ceaa566fee75f4b75a1e0a0ef654fc8f6212fb11d5ec65d427e412 # [linux64] - - url: https://github.com/eBay/tsv-utils/releases/download/v{{ version }}/tsv-utils-v{{ version }}_osx-x86_64_ldc2.tar.gz # [osx and x86_64] - sha256: caa97c9bb838130ba824003ac991009819a681e6c824ed93b58ae2bec35252a6 # [osx and x86_64] - -build: - number: 0 - binary_relocation: false - -requirements: - -test: - commands: - - "csv2tsv -V" - -about: - home: https://github.com/eBay/tsv-utils - license: BSL-1.0 - license_file: LICENSE.txt - summary: "eBay's TSV Utilities" - description: | - Command line tools for large, tabular data files. - Filtering, statistics, sampling, joins and more. - doc_url: https://ebay.github.io/tsv-utils/ - dev_url: https://github.com/eBay/tsv-utils#obtaining-and-installation - -extra: - recipe-maintainers: - - corneliusroemer - skip-lints: - # repackaged binary - - should_be_noarch_generic From db61ea20e0f27c1c406dd0928f49f47241bb4520 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 1 Jul 2024 06:44:39 -0400 Subject: [PATCH 0258/1514] Update deeplc to 2.2.38 (#48830) * Update deeplc to 2.2.37 * Update deeplc to 2.2.38 --- recipes/deeplc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/deeplc/meta.yaml b/recipes/deeplc/meta.yaml index 7767b086a0b26..eab5e428730fa 100644 --- a/recipes/deeplc/meta.yaml +++ b/recipes/deeplc/meta.yaml @@ -1,6 +1,6 @@ {% set name = "DeepLC" %} -{% set version = "2.2.36" %} -{% set sha256 = "984679ca4141d74af5f1dd2537e66c68b30f0cd8a02cf8357b8209f32edc38f4" %} +{% set version = "2.2.38" %} +{% set sha256 = "9c66dd629246ce422ca57a8628c122765770c8eeebdc2f6a71a8f88d9a9193a5" %} package: name: {{ name|lower }} From 6f666d57d044913baaa191b368eb4b8de4a83060 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 1 Jul 2024 06:48:26 -0400 Subject: [PATCH 0259/1514] Update alignoth to 0.12.1 (#48835) --- recipes/alignoth/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/alignoth/meta.yaml b/recipes/alignoth/meta.yaml index 452eea4bb43a6..70647c20c246d 100644 --- a/recipes/alignoth/meta.yaml +++ b/recipes/alignoth/meta.yaml @@ -1,11 +1,11 @@ -{% set version = "0.12.0" %} +{% set version = "0.12.1" %} package: name: alignoth version: {{ version }} build: - number: 1 + number: 0 # TODO fails to build on osx with # Undefined symbols for architecture x86_64: "_SSLCopyALPNProtocols", referenced from: _sectransp_connect_step2 in libcurl_sys-1f07db570920ba9f.rlib(sectransp.o) skip: true #[osx] @@ -14,7 +14,7 @@ build: source: url: https://github.com/alignoth/alignoth/archive/v{{ version }}.tar.gz - sha256: e430a257f5ab440846756f53a0c618ebec86bd5d6f3627eab1fed11dd68f3b5c + sha256: 9bbff76754c3f183b63047f44995e72a356b0628aee3638addbf6eb15e9a4813 requirements: build: From 2bba688973d519b13826ce8df718c55a87620c07 Mon Sep 17 00:00:00 2001 From: yanyew <90335707+yanyew@users.noreply.github.com> Date: Mon, 1 Jul 2024 18:53:05 +0800 Subject: [PATCH 0260/1514] Update syngap to v1.2.5 (#48834) --- recipes/syngap/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/syngap/meta.yaml b/recipes/syngap/meta.yaml index cb9af56f58df9..df6b8ee3f6c50 100644 --- a/recipes/syngap/meta.yaml +++ b/recipes/syngap/meta.yaml @@ -1,5 +1,5 @@ {% set name = "syngap" %} -{% set version = "1.2.4" %} +{% set version = "1.2.5" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/yanyew/SynGAP/releases/download/v{{ version }}/{{ name }}_v{{ version }}.tar.gz - sha256: 508d1f4c92f76a472b5fed489ac99bb3930e213ca80f979c2c2e5ffaff9cfa77 + sha256: fac15832dd419d4ed85ba32b5108aeb24da1eb54134be6f170fdb18b11840d0b build: number: 0 From 90674584790e465eb376473f00701caaf5d4954a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 1 Jul 2024 06:53:49 -0400 Subject: [PATCH 0261/1514] Update meteor to 2.0.14 (#48836) --- recipes/meteor/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/meteor/meta.yaml b/recipes/meteor/meta.yaml index bf7a4e1309557..79252b893256f 100644 --- a/recipes/meteor/meta.yaml +++ b/recipes/meteor/meta.yaml @@ -1,6 +1,6 @@ {% set name = "meteor" %} -{% set version = "2.0.13" %} -{% set sha256 = "bb7b8a9342dda2ee59689d235d13ca61f22990f43956e8fd927288a1a0858bec" %} +{% set version = "2.0.14" %} +{% set sha256 = "0f70351c94b5a2290fb5bfe7bbb671771c607d704565ce73a2a2a0b69beb1e23" %} package: name: {{ name }} From 8263f34bf1b888370752e280a22b5f7c9611d146 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 1 Jul 2024 07:31:18 -0400 Subject: [PATCH 0262/1514] Update pybiolib to 1.1.2204 (#48839) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index 856fbbcd1689d..c8cf60a048984 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.1.2199" %} +{% set version = "1.1.2204" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: c8e10e88ff17af8027bffe5e57ffd1ffaf48232e11472f4835f1541a005e7d48 + sha256: 8975bba56293d0977ecbfd7d07f76a7d04fa29797fb4c8381254cfb6deda073b build: noarch: python From 77c9042c68d1f2bed9dabdc18fcb520fa5ec2ce3 Mon Sep 17 00:00:00 2001 From: EdoardoGiussani <47834675+EdoardoGiussani@users.noreply.github.com> Date: Mon, 1 Jul 2024 13:57:11 +0200 Subject: [PATCH 0263/1514] Add flumutdb (#48837) * Updated dependencies and restored tests * Added FluMutDB, required by FluMut * Update recipes/flumutdb/meta.yaml Co-authored-by: Martin Grigorov * Fixed sha256 --------- Co-authored-by: Martin Grigorov --- recipes/flumut/meta.yaml | 10 ++++++---- recipes/flumutdb/meta.yaml | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 recipes/flumutdb/meta.yaml diff --git a/recipes/flumut/meta.yaml b/recipes/flumut/meta.yaml index 2b969e5af56ed..c4c1776a4b791 100644 --- a/recipes/flumut/meta.yaml +++ b/recipes/flumut/meta.yaml @@ -13,10 +13,10 @@ build: run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} entry_points: - - flumut = flumut.flumut:main + - flumut = flumut.cli:cli noarch: python script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir - number: 0 + number: 1 requirements: host: @@ -25,6 +25,7 @@ requirements: run: - python >=3.7 - click >=8.0.0 + - flumutdb >=6.0 - biopython >=1.81 - openpyxl >=3.1.2 - importlib-resources >=1.3 @@ -32,8 +33,9 @@ requirements: test: imports: - flumut - #commands: - #- flumut --help + commands: + - flumut --help + - flumut --update about: home: https://github.com/izsvenezie-virology/FluMut diff --git a/recipes/flumutdb/meta.yaml b/recipes/flumutdb/meta.yaml new file mode 100644 index 0000000000000..c99e8feb36b17 --- /dev/null +++ b/recipes/flumutdb/meta.yaml @@ -0,0 +1,37 @@ +{% set name = "flumutdb" %} +{% set version = "6.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/flumutdb-{{ version }}.tar.gz + + sha256: 281c3f033d2bd242bfd2a267216f7bc480f4ec4299493565402b332e943ebc54 + +build: + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + number: 0 + +requirements: + host: + - python >=3.7 + - pip + run: + - python >=3.7 + +about: + home: https://github.com/izsvenezie-virology/FluMutDB + summary: Utility module for FluMut database. + license: AGPL-3.0-or-later + license_family: AGPL + license_file: LICENSE + +extra: + recipe-maintainers: + - EdoardoGiussani + - AlexSartori From a8e365e4729b787f78d254a8fe8c27b370d404d0 Mon Sep 17 00:00:00 2001 From: Rob Patro Date: Mon, 1 Jul 2024 09:24:34 -0400 Subject: [PATCH 0264/1514] Update meta.yaml for piscem v0.9.0 (#48816) * Update meta.yaml for piscem v0.9.0 * Update meta.yaml * Update build.sh * Update build.sh * Update build.sh * Update build.sh * Create build_rs.patch * Update meta.yaml --- recipes/piscem/build.sh | 3 +-- recipes/piscem/build_rs.patch | 21 +++++++++++++++++++++ recipes/piscem/meta.yaml | 13 +++++++------ 3 files changed, 29 insertions(+), 8 deletions(-) create mode 100644 recipes/piscem/build_rs.patch diff --git a/recipes/piscem/build.sh b/recipes/piscem/build.sh index 4f3eb6f967819..4f056176a5dcd 100644 --- a/recipes/piscem/build.sh +++ b/recipes/piscem/build.sh @@ -29,10 +29,9 @@ then RUSTFLAGS="-C link-args=-Wl,-undefined,dynamic_lookup" RUST_BACKTRACE=1 cargo install -v -v -j 1 --verbose --root $PREFIX --path . else - export CFLAGS="${CFLAGS} --param ggc-min-expand=20 --param ggc-min-heapsize=8192" export CXXFLAGS="${CXXFLAGS} --param ggc-min-expand=20 --param ggc-min-heapsize=8192" # build statically linked binary with Rust -RUST_BACKTRACE=1 cargo install -v -v -j 1 --verbose --root $PREFIX --path . +RUSTFLAGS="-L $PREFIX/lib64" RUST_BACKTRACE=1 cargo install -v -v -j 1 --verbose --root $PREFIX --path . fi diff --git a/recipes/piscem/build_rs.patch b/recipes/piscem/build_rs.patch new file mode 100644 index 0000000000000..b9cb5fd73dc91 --- /dev/null +++ b/recipes/piscem/build_rs.patch @@ -0,0 +1,21 @@ +diff --git a/build.rs b/build.rs +index 9a5b4c1..7aa001f 100644 +--- a/build.rs ++++ b/build.rs +@@ -67,6 +67,16 @@ fn main() { + dst_piscem_cpp.join("lib").display() + ); + ++ // Arghhh conda! ++ println!( ++ "cargo:rustc-link-search=native={}", ++ dst_cf.join("lib64").display() ++ ); ++ println!( ++ "cargo:rustc-link-search=native={}", ++ dst_piscem_cpp.join("lib64").display() ++ ); ++ + println!("cargo:rustc-link-lib=static=kmc_core"); + //println!("cargo:rustc-link-lib=static=pesc_static"); + //println!("cargo:rustc-link-lib=static=build_static"); diff --git a/recipes/piscem/meta.yaml b/recipes/piscem/meta.yaml index 2d201ea73f29e..6c1944eb1ed03 100644 --- a/recipes/piscem/meta.yaml +++ b/recipes/piscem/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "0.8.0" %} -{% set git_commit = "413dd69008519c5d8157b7985578e767b321109c" %} -{% set sha256 = "a72af2ab728e95aa6766a3bb4520af6273a9ea3be44a6a8dc260cd97615877df" %} +{% set version = "0.9.0" %} +{% set git_commit = "904675fe0dd73335121a588ab883cc19708368e9" %} +{% set sha256 = "ebc61e115e883201c0a64918fe6d20b681090102a1d2ea4fd321fa94e673670d" %} package: name: piscem @@ -16,23 +16,24 @@ source: git_url: https://github.com/COMBINE-lab/piscem git_rev: "{{ git_commit }}" sha256: {{ sha256 }} + patches: + - build_rs.patch requirements: build: - - rust >=1.75 - cmake - autoconf - make - zlib - bzip2 - - jemalloc >=5.1.2 + - jemalloc >=5.2.1 - {{ compiler('rust') }} - {{ compiler('cxx') }} - pkg-config host: - zlib - bzip2 - - jemalloc >=5.1.2 + - jemalloc >=5.2.1 run: - __osx >={{ MACOSX_DEPLOYMENT_TARGET|default("10.9") }} # [osx and x86_64] From 1759a0c85182897f4d6de90f4db03d483f6db49f Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 1 Jul 2024 16:25:43 +0300 Subject: [PATCH 0265/1514] r-sigminer: add linux-aarch64 build (#48841) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/r-sigminer/meta.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/recipes/r-sigminer/meta.yaml b/recipes/r-sigminer/meta.yaml index 8b1838e6de8da..b892cc923d1bd 100644 --- a/recipes/r-sigminer/meta.yaml +++ b/recipes/r-sigminer/meta.yaml @@ -11,7 +11,7 @@ source: sha256: b2836c76a52f7c7add8756afb09dc50ab31d736b4640b803bee57b6caec1953b build: - number: 0 + number: 1 rpaths: - lib/R/lib/ - lib/ @@ -76,3 +76,7 @@ about: license_file: - {{ environ["PREFIX"] }}/lib/R/share/licenses/MIT - LICENSE + +extra: + additional-platforms: + - linux-aarch64 From f1ef5d19ff701d9d6f0482db0d27c51e576fb2e4 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 1 Jul 2024 16:26:25 +0300 Subject: [PATCH 0266/1514] expansionhunter: add linux-aarch64 build (#48842) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/expansionhunter/build.sh | 5 ++++- recipes/expansionhunter/meta.yaml | 6 +++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/recipes/expansionhunter/build.sh b/recipes/expansionhunter/build.sh index 137e450f192d5..962b1a50e591d 100644 --- a/recipes/expansionhunter/build.sh +++ b/recipes/expansionhunter/build.sh @@ -1,8 +1,11 @@ #!/bin/bash + +set -xe + mkdir build cd build cmake .. -make +make -j ${CPU_COUNT} mkdir -p $PREFIX/bin cp install/bin/ExpansionHunter $PREFIX/bin mkdir -p $PREFIX/share/ExpansionHunter diff --git a/recipes/expansionhunter/meta.yaml b/recipes/expansionhunter/meta.yaml index 83f3a8659c474..67ab975bf2c03 100644 --- a/recipes/expansionhunter/meta.yaml +++ b/recipes/expansionhunter/meta.yaml @@ -15,7 +15,7 @@ source: - 0004-add-fmt-formatters-for-classes.patch - 0005-apply-bioconda-4.0.2-patches.patch # [osx] build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage('expansionhunter', max_pin="x") }} requirements: @@ -47,3 +47,7 @@ about: license: APACHE license_file: LICENSE.txt summary: "A tool for estimating repeat sizes" + +extra: + additional-platforms: + - linux-aarch64 From dc06ea70185409d274a068ec066593ef87f385ea Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 1 Jul 2024 16:26:54 +0300 Subject: [PATCH 0267/1514] rasusa: add linux-aarch64 build (#48843) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/rasusa/meta.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/rasusa/meta.yaml b/recipes/rasusa/meta.yaml index 62ab2ce9115a0..04639bcc50d6d 100644 --- a/recipes/rasusa/meta.yaml +++ b/recipes/rasusa/meta.yaml @@ -10,13 +10,13 @@ source: sha256: 7921a94cb5c30c194c3d966e7dd80d034a9cf840d853b3fe1725d90d5800e2bd build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('rasusa', max_pin="x.x") }} requirements: build: - - rust >=1.74.1 + - {{ compiler('rust') }} - {{ compiler('c') }} # [not win] test: @@ -33,5 +33,7 @@ about: license_file: LICENSE extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - mbhall88 From 1b114b93916c949c16ac3011c592c8f8091450ac Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 1 Jul 2024 16:27:38 +0300 Subject: [PATCH 0268/1514] krbalancing: add linux-aarch64 build (#48844) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/krbalancing/meta.yaml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/recipes/krbalancing/meta.yaml b/recipes/krbalancing/meta.yaml index aa3c4305aaffc..d511ecac5eced 100644 --- a/recipes/krbalancing/meta.yaml +++ b/recipes/krbalancing/meta.yaml @@ -9,7 +9,9 @@ source: sha256: 890dee5c98d2037a2d19ba1fc3f700744858e7b22c61b40c714629125e65f464 build: - number: 8 + number: 9 + run_exports: + - {{ pin_subpackage('krbalancing', max_pin="x.x") }} requirements: build: @@ -34,3 +36,7 @@ about: home: 'https://github.com/deeptools/Knight-Ruiz-Matrix-balancing-algorithm' license: GPL3 summary: This is a c++ extension for python which computes K.R. balanced matrices. + +extra: + additional-platforms: + - linux-aarch64 From 2d1e50d578b81b37b013f7450cb03602d536f211 Mon Sep 17 00:00:00 2001 From: Mitchell Robert Vollger Date: Mon, 1 Jul 2024 06:34:36 -0700 Subject: [PATCH 0269/1514] Update : Fix build script for fibertools-rs (#48812) --- recipes/fibertools-rs/build.sh | 88 +++------------------------------ recipes/fibertools-rs/meta.yaml | 11 +---- 2 files changed, 8 insertions(+), 91 deletions(-) diff --git a/recipes/fibertools-rs/build.sh b/recipes/fibertools-rs/build.sh index e5418801f8fdf..e73cd0dd01dcb 100644 --- a/recipes/fibertools-rs/build.sh +++ b/recipes/fibertools-rs/build.sh @@ -2,77 +2,6 @@ # # Set the desitnation for the libtorch files # -OUTDIR=${PREFIX}/share/${PKG_NAME}-${PKG_VERSION}-${PKG_BUILDNUM} -mkdir -p ${OUTDIR} ${OUTDIR}/bin ${PREFIX}/bin -OUTDIR=${PREFIX} - -# -# set up environment variables -# -export LIBTORCH=${OUTDIR} -export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${LIBTORCH}/lib -export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH}:${LIBTORCH}/lib - -# -# download pytorch libraries -# -# unfortunetally newish size limits on bioconda packages prevent me from including this. -# keeping this code block here in case the size limits change, or bioconda/conda-forge allow the pytorch channel to be accessed. -if [[ "x" == "y" ]]; then - -export TORCH_VERSION="2.0.1" -export INSTALL_TYPE="cu118" # "cu117" or "cu118" or "cpu" -export INSTALL_TYPE="cpu" -if [[ ${target_platform} =~ linux.* ]]; then - export file=https://download.pytorch.org/libtorch/${INSTALL_TYPE}/libtorch-shared-with-deps-${TORCH_VERSION}%2B${INSTALL_TYPE}.zip - export LIBTORCH_CXX11_ABI=0 - curl $file --output ${PREFIX}/libtorch.zip -elif [[ ${target_platform} =~ osx.* ]]; then - # Add this becuase of this: https://twitter.com/nomad421/status/1619713549668065280 - export RUSTFLAGS="-C link-arg=-undefined -C link-arg=dynamic_lookup" - export file=https://download.pytorch.org/libtorch/cpu/libtorch-macos-${TORCH_VERSION}.zip - curl $file --output ${PREFIX}/libtorch.zip -fi - -# -# unpack the libtorch libs -# -pushd ${PREFIX} -unzip -q libtorch.zip -rm libtorch.zip -# give the libtorch things a different SONAME -# patchelf --set-soname $SONAME $F -popd - -echo "Done downloading libtorch" 1>&2 - -# -# move libtorch to OUTDIR -# -if [ ${PREFIX} != ${OUTDIR} ]; then - mv ${PREFIX}/libtorch/* ${OUTDIR}/. -else - mkdir -p ${OUTDIR}/include ${OUTDIR}/share ${OUTDIR}/lib - mv ${PREFIX}/libtorch/lib/* ${OUTDIR}/lib/. - mv ${PREFIX}/libtorch/include/* ${OUTDIR}/include/. - mv ${PREFIX}/libtorch/share/* ${OUTDIR}/share/. -fi - -echo "Done setting up libtorch" 1>&2 - -# -# fix conflict with libgomp -# -if [[ ${target_platform} =~ linux.* ]]; then - # this finally worked!!! getting rid of the pytorch version - rm -f ${OUTDIR}/lib/libgomp-a34b3233.so.1 - ln -s ${PREFIX}/lib/libgomp.so.1.0.0 ${OUTDIR}/lib/libgomp-a34b3233.so.1 - #rm -f ${OUTDIR}/lib/libcudart-d0da41ae.so.11.0 - #ln -s ${PREFIX}/lib/libcudart.so.11.* ${OUTDIR}/lib/libcudart-d0da41ae.so.11.0 - echo "Using the included libgomp" -fi - -fi # # TODO: Remove the following export when pinning is updated and we use @@ -87,22 +16,19 @@ export BINDGEN_EXTRA_CLANG_ARGS="${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" # HOME=$(pwd) pushd ${PREFIX} -# --all-features + +# remove cpu specifc cargo flags +pushd ${HOME} +sed 's/native/generic/g' .cargo/config.toml >tmp +mv tmp .cargo/config.toml +popd + cargo install --no-track --verbose \ --root "${PREFIX}" --path "${HOME}" popd echo "Done building ft" 1>&2 -# -# clean up the include files since they are not needed and there is a lot of them ~8,000 -# -rm -rf ${OUTDIR}/include/* -if [[ ${target_platform} =~ linux.* ]]; then - # clean up the static libraries since they are not needed - rm ${OUTDIR}/lib/*.a -fi - # # test install # diff --git a/recipes/fibertools-rs/meta.yaml b/recipes/fibertools-rs/meta.yaml index 589520189e587..160e43029b101 100644 --- a/recipes/fibertools-rs/meta.yaml +++ b/recipes/fibertools-rs/meta.yaml @@ -1,6 +1,6 @@ {% set version = "0.4.2" %} {% set name = "fibertools-rs" %} -{% set build_number = "0" %} +{% set build_number = "1" %} package: name: {{ name }} @@ -16,15 +16,6 @@ build: run_exports: - {{ pin_subpackage('fibertools-rs', max_pin="x") }} number: {{ build_number }} - rpaths: - - lib/ - - share/{{ name }}-{{ version }}-{{ build_number }}/lib/ - #detect_binary_files_with_prefix: False - #missing_dso_whitelist: - # - share/{{ name }}-{{ version }}-{{ build_number }}/lib/* - # - "$RPATH/libgomp-a34b3233.so.1" - # - "$RPATH/libcudart-d0da41ae.so.11.0" - # skip: True # [osx] requirements: From 893ad45fde0d1186f22d28f0e86628ed06e6c5cb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 1 Jul 2024 09:55:24 -0400 Subject: [PATCH 0270/1514] Update varlociraptor to 8.4.9 (#48847) --- recipes/varlociraptor/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/varlociraptor/meta.yaml b/recipes/varlociraptor/meta.yaml index 5d96d31208fd7..a7b36a5733c75 100644 --- a/recipes/varlociraptor/meta.yaml +++ b/recipes/varlociraptor/meta.yaml @@ -1,5 +1,5 @@ {% set name = "varlociraptor" %} -{% set version = "8.4.8" %} +{% set version = "8.4.9" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/varlociraptor/varlociraptor/archive/v{{ version }}.tar.gz - sha256: 98b2af2b97ee0ebd54c243de21b7eb33a137a6008a3939f70130e56dbf1db5e4 + sha256: f55476d87dabf3e4a6792b42b91beb06ec1b7c5812aca937765f15b13bc6222d build: number: 0 From 24c8647164db494a7683b4e40c7166fb6208148f Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 1 Jul 2024 18:08:49 +0300 Subject: [PATCH 0271/1514] squizz: add linux-aarch64 build (#48846) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/squizz/build.sh | 3 ++- recipes/squizz/meta.yaml | 12 ++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/recipes/squizz/build.sh b/recipes/squizz/build.sh index d0e9d0dc8de9f..48649a149aad1 100644 --- a/recipes/squizz/build.sh +++ b/recipes/squizz/build.sh @@ -1,7 +1,8 @@ #!/bin/sh +set -xe ./configure --prefix=${PREFIX} -make +make -j ${CPU_COUNT} make install diff --git a/recipes/squizz/meta.yaml b/recipes/squizz/meta.yaml index e0e1cfa9b2044..72dee1727b56c 100644 --- a/recipes/squizz/meta.yaml +++ b/recipes/squizz/meta.yaml @@ -7,7 +7,9 @@ source: md5: 12d9b316a7772911ec3baa2e3f6dda12 build: - number: 6 + number: 7 + run_exports: + - {{ pin_subpackage('squizz', max_pin="x.x") }} requirements: build: @@ -22,4 +24,10 @@ test: about: home: http://ftp.pasteur.fr/pub/gensoft/projects/squizz/ summary: Squizz is a sequence/alignment format checker, but it has some conversion capabilities too. - license: GPL 2 + license: GPL-2.0-only + license_file: COPYING + license_family: GPL + +extra: + additional-platforms: + - linux-aarch64 From 436acb9742a88348a4e1c9c4dfe5498aa184ffb6 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 1 Jul 2024 18:13:58 +0300 Subject: [PATCH 0272/1514] extract_fullseq: add linux-aarch64 build (#48840) * extract_fullseq: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Build bmtagger the same way as in bmtool and bmfilter Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - .../0001-Cast-getline-stream-to-bool.patch | 13 +++++++++++++ .../extract_fullseq/bmtool-cplusplus-template.patch | 11 +++++++++++ recipes/extract_fullseq/bmtool-fix-ctime.patch | 10 ++++++++++ recipes/extract_fullseq/build.sh | 7 +++---- recipes/extract_fullseq/meta.yaml | 11 ++++++++++- 6 files changed, 47 insertions(+), 6 deletions(-) create mode 100644 recipes/extract_fullseq/0001-Cast-getline-stream-to-bool.patch create mode 100644 recipes/extract_fullseq/bmtool-cplusplus-template.patch create mode 100644 recipes/extract_fullseq/bmtool-fix-ctime.patch diff --git a/build-fail-blacklist b/build-fail-blacklist index 78f3903a23284..20997a9079d19 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -182,7 +182,6 @@ recipes/gottcha recipes/pepnovo recipes/ea-utils recipes/nextgenmap -recipes/extract_fullseq recipes/igor_vdj recipes/pargenes recipes/porfast diff --git a/recipes/extract_fullseq/0001-Cast-getline-stream-to-bool.patch b/recipes/extract_fullseq/0001-Cast-getline-stream-to-bool.patch new file mode 100644 index 0000000000000..ee5a26b793321 --- /dev/null +++ b/recipes/extract_fullseq/0001-Cast-getline-stream-to-bool.patch @@ -0,0 +1,13 @@ +--- general/cfareader.hpp ++++ general/cfareader.hpp +@@ -40 +40 @@ +- m_good = std::getline( *m_fin, m_buffer ); ++ m_good = static_cast(std::getline( *m_fin, m_buffer )); +@@ -46 +46 @@ +- m_good = std::getline( *m_fin, m_buffer ); ++ m_good = static_cast(std::getline( *m_fin, m_buffer )); +--- general/of-debug.hpp ++++ general/of-debug.hpp +@@ -10 +10 @@ +-#define VT100(c) "\x1b["c ++#define VT100(c) "\x1b[" c diff --git a/recipes/extract_fullseq/bmtool-cplusplus-template.patch b/recipes/extract_fullseq/bmtool-cplusplus-template.patch new file mode 100644 index 0000000000000..b44d6af00181c --- /dev/null +++ b/recipes/extract_fullseq/bmtool-cplusplus-template.patch @@ -0,0 +1,11 @@ +--- a/general/cgetopt.hpp 2024-06-27 12:43:39.692000000 +0000 ++++ b/general/cgetopt.hpp 2024-06-27 12:42:10.116000000 +0000 +@@ -267,7 +267,7 @@ + int m_cnt; + }; + +-template<> ++//template<> + template + class COptArg > : public COption + { diff --git a/recipes/extract_fullseq/bmtool-fix-ctime.patch b/recipes/extract_fullseq/bmtool-fix-ctime.patch new file mode 100644 index 0000000000000..6abf282624c27 --- /dev/null +++ b/recipes/extract_fullseq/bmtool-fix-ctime.patch @@ -0,0 +1,10 @@ +--- general/cprogressindicator.hpp.orig 2024-06-28 08:59:12.756000000 +0000 ++++ general/cprogressindicator.hpp 2024-06-28 09:27:08.976000000 +0000 +@@ -6,6 +6,7 @@ + #ifndef _WIN32 + #include + #include ++#include + #else + #include + #endif diff --git a/recipes/extract_fullseq/build.sh b/recipes/extract_fullseq/build.sh index 2bc27046bbc18..202d0a80c3f86 100644 --- a/recipes/extract_fullseq/build.sh +++ b/recipes/extract_fullseq/build.sh @@ -17,10 +17,9 @@ if [ "$(uname)" == "Darwin" ]; then elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then echo "Platform: Linux" - # cd to location of Makefile and source - cd $SRC_DIR/ - make - + make -j ${CPU_COUNT} -C general CC="${CC}" CXX="${CXX}" DEBUG="${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} -std=c++03" + make -j ${CPU_COUNT} -C bmtagger CC="${CC}" CXX="${CXX}" DEBUG="${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} -std=c++03" + for i in $binaries; do cp $SRC_DIR/bmtagger/$i $PREFIX/bin/ && chmod +x $PREFIX/bin/$i; done fi diff --git a/recipes/extract_fullseq/meta.yaml b/recipes/extract_fullseq/meta.yaml index 0c0d048f50bae..e5740131593ad 100644 --- a/recipes/extract_fullseq/meta.yaml +++ b/recipes/extract_fullseq/meta.yaml @@ -4,15 +4,22 @@ package: source: - url: ftp://ftp.ncbi.nlm.nih.gov/pub/agarwala/bmtagger/bmtools.tar.gz # [linux] md5: 719474a0e3b54449cbe06f6e442994dd # [linux] + patches: # [linux] + - 0001-Cast-getline-stream-to-bool.patch # [linux] + - bmtool-cplusplus-template.patch # [linux] + - bmtool-fix-ctime.patch # [linux] - url: ftp://ftp.ncbi.nlm.nih.gov/pub/agarwala/bmtagger/mac-os/extract_fullseq # [osx] sha256: 1e2c8cd314498bf56ba0291185190d0ed20cbd839098492ab573be2ca6770a66 # [osx] build: - number: 4 + number: 5 + run_exports: + - {{ pin_subpackage('extract_fullseq', max_pin="x") }} requirements: build: - make + - {{ compiler('cxx') }} #- blast #- srprism run: @@ -27,6 +34,8 @@ about: summary: "extract_fullseq is part of BMTagger aka Best Match Tagger, for removing human reads from metagenomics datasets" extra: + additional-platforms: + - linux-aarch64 skip-lints: - should_be_noarch_generic - should_not_be_noarch_source From 1359c758496259f341de1bb86a32e0bfac514252 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 1 Jul 2024 11:14:17 -0400 Subject: [PATCH 0273/1514] Update neat to 4.2.2 (#48849) --- recipes/neat/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/neat/meta.yaml b/recipes/neat/meta.yaml index 6609a5675e559..2d08b62643311 100644 --- a/recipes/neat/meta.yaml +++ b/recipes/neat/meta.yaml @@ -1,5 +1,5 @@ {% set name = "NEAT" %} -{% set version = "4.2.1" %} +{% set version = "4.2.2" %} package: name: '{{ name|lower }}' @@ -7,7 +7,7 @@ package: source: url: https://github.com/ncsa/{{ name }}/archive/{{ version }}.tar.gz - sha256: a79b2d733495fadb0e9fbcfffa98f9112a5afa03490f8c484c3542ee178e9bdb + sha256: ce8449ad0227a59cab354cc34441127064a3ebd84864b2f8441f496e65d94b38 build: From 45654bd807e0732cd632e384c3bbff61b481eb92 Mon Sep 17 00:00:00 2001 From: "Pavel V. Dimens" <19176506+pdimens@users.noreply.github.com> Date: Mon, 1 Jul 2024 15:44:31 -0400 Subject: [PATCH 0274/1514] add pysam dep (#48848) --- recipes/harpy/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index a363fb17b20b7..a988d54d40023 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -11,7 +11,7 @@ source: build: skip: True # [osx] - number: 0 + number: 1 missing_dso_whitelist: - /lib64/libstdc++.so.6 - /lib64/libc.so.6 @@ -34,6 +34,7 @@ requirements: - apptainer - bcftools =1.20 - pandas + - pysam - python >3.10 - rich-click - snakemake-minimal >7 From 7f7dd032c4c255c5acd07f81150959dcebd784b1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 1 Jul 2024 18:37:57 -0400 Subject: [PATCH 0275/1514] Update simpleaf to 0.17.0 (#48860) * Update simpleaf to 0.17.0 * Update meta.yaml * Update meta.yaml --------- Co-authored-by: Rob Patro --- recipes/simpleaf/meta.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/recipes/simpleaf/meta.yaml b/recipes/simpleaf/meta.yaml index 3d1763a882e62..59f8b233d3aaf 100644 --- a/recipes/simpleaf/meta.yaml +++ b/recipes/simpleaf/meta.yaml @@ -1,10 +1,10 @@ -{% set version = "0.16.2" %} +{% set version = "0.17.0" %} package: name: simpleaf version: {{ version }} -build: +build: # [not linux-aarch64] number: 0 run_exports: - {{ pin_subpackage("simpleaf", max_pin="x.x") }} @@ -12,20 +12,20 @@ build: source: url: https://github.com/COMBINE-lab/simpleaf/archive/v{{ version }}.tar.gz - sha256: e35fb2773b3f4f158d23ebc6d0b51aed29ea54206a3c57a56931325e67add720 + sha256: 584fec26f3841e53793dc5de1abb5a4b19373d744f7c205c85ae8abac3c77f2a requirements: build: - - rust >=1.73 - autoconf - make - {{ compiler('cxx') }} + - {{ compiler('rust') }} - pkg-config host: run: - - alevin-fry >=0.8.1 + - alevin-fry >=0.8.2 - salmon >=1.10.1 - - piscem >=0.7.0 # [not osx-arm64] + - piscem >=0.9.0 # [not osx-arm64] test: commands: From 58a94775a86b3d7dceed75e6f09d72d93436b63e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 1 Jul 2024 22:57:10 -0400 Subject: [PATCH 0276/1514] Update oakvar to 2.11.2 (#48863) --- recipes/oakvar/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/oakvar/meta.yaml b/recipes/oakvar/meta.yaml index 8281a7181a604..2cb2f69006dcd 100644 --- a/recipes/oakvar/meta.yaml +++ b/recipes/oakvar/meta.yaml @@ -1,6 +1,6 @@ {% set name = "OakVar" %} -{% set version = "2.11.1" %} -{% set sha256 = "40945a3ecbed8cf71956f9efcad83c7fedeedd1ca6c59e036cee95faac6fa8db" %} +{% set version = "2.11.2" %} +{% set sha256 = "cbdbb57b8df6815b121fca4ef17bff8360ac9c3e00d8799aa342ffcfef1a8fa3" %} package: name: {{ name|lower }} From e6f52514a695bd4eb3b4f07bee232c29c988e053 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 1 Jul 2024 22:57:25 -0400 Subject: [PATCH 0277/1514] Update stranger to 0.9.1 (#48852) --- recipes/stranger/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/stranger/meta.yaml b/recipes/stranger/meta.yaml index a303d4a75b34d..7c22e48e2acc5 100644 --- a/recipes/stranger/meta.yaml +++ b/recipes/stranger/meta.yaml @@ -1,5 +1,5 @@ {% set name = "stranger" %} -{% set version = "0.9.0" %} +{% set version = "0.9.1" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: ecc1fc0b4f38c6415ee682ecbe4ecbd2df6db3b6807d11c82763d20e64109b93 + sha256: b9322384836e46ed9373fdb30b4e7656ea59d6b293f22692a1b9125b6cb8ca76 build: number: 0 From 3a8cf0a6a19e6064f87a0152c8dcfa1186438ae9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 1 Jul 2024 22:57:45 -0400 Subject: [PATCH 0278/1514] Update gencove to 2.18.0 (#48853) --- recipes/gencove/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gencove/meta.yaml b/recipes/gencove/meta.yaml index 2f8adabb53067..d68732c137bbb 100644 --- a/recipes/gencove/meta.yaml +++ b/recipes/gencove/meta.yaml @@ -1,6 +1,6 @@ {% set name = "gencove" %} -{% set version = "2.17.1" %} -{% set sha256 = "bc27eda8126a87f8a439d88f74e9a963ed634a8625df1d7875586b1c814cbfe6" %} +{% set version = "2.18.0" %} +{% set sha256 = "c918361baadae2f27fee47a570c02a07392e7d2bfaed64ee537a7ee284251c09" %} package: name: {{ name }} From 96b391c72b50bfbd5ce9fbc6c53317c66ef017f9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 1 Jul 2024 22:58:03 -0400 Subject: [PATCH 0279/1514] Update centrifuger to 1.0.4 (#48857) --- recipes/centrifuger/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/centrifuger/meta.yaml b/recipes/centrifuger/meta.yaml index 722829e13b066..0cfbb3bdb2a85 100644 --- a/recipes/centrifuger/meta.yaml +++ b/recipes/centrifuger/meta.yaml @@ -1,5 +1,5 @@ {% set name = "centrifuger" %} -{% set version = "1.0.3" %} +{% set version = "1.0.4" %} package: name: {{ name|lower }} @@ -12,7 +12,7 @@ build: source: url: https://github.com/mourisl/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz - sha256: 04c08bb17aa9ab00bc1d5c0f8547cf6a6335003e315766ff1f07d5dedbbe2904 + sha256: 5261abcfb3b88126000ae7708702d07704a0ee19d6f54f9f89f0d2e195e24d1d requirements: build: From adad849602773579c640cb56deef0899362b46f6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 1 Jul 2024 22:58:27 -0400 Subject: [PATCH 0280/1514] Update harpy to 1.1 (#48858) --- recipes/harpy/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index a988d54d40023..2945f0e1411ac 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.0" %} -{% set sha256 = "c00013ba577f7be64f0a20975ec16a86cd8719aab860d170a8c095d821b90116" %} +{% set version = "1.1" %} +{% set sha256 = "1dd0d64b75f8820994d109f855cd4a883988ff811d6ec152b41f5332c50688e1" %} package: name: harpy @@ -11,7 +11,7 @@ source: build: skip: True # [osx] - number: 1 + number: 0 missing_dso_whitelist: - /lib64/libstdc++.so.6 - /lib64/libc.so.6 From f289a2bdeaac47a5fd60e24afd380e9adbb9e594 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 2 Jul 2024 01:56:33 -0400 Subject: [PATCH 0281/1514] Update mvip to 1.1.0 (#48859) Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/mvip/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mvip/meta.yaml b/recipes/mvip/meta.yaml index b68a886d17a03..10e104099b1ba 100644 --- a/recipes/mvip/meta.yaml +++ b/recipes/mvip/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mvip" %} -{% set version = "1.0.0" %} +{% set version = "1.1.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: f46d97de0916faa6f747d611160df7bb33219337cb9b01de5608b35421aa2b53 + sha256: ee9ea0d29e1d98ccdc7336ab9e41775e1dc0e1e9853d6f42b09bbb2d2f52b28d build: number: 0 From 714f554c2c1675a484da37370511d4a725d75f4b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 2 Jul 2024 04:17:54 -0400 Subject: [PATCH 0282/1514] Update mycotools to 0.31.36 (#48869) --- recipes/mycotools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index 387bd640c8e60..33d32cea9238d 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mycotools" %} -{% set version = "0.31.35" %} +{% set version = "0.31.36" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mycotools-{{ version }}.tar.gz - sha256: 4174100f5d8e6af21208802b7c808ecf333ab12554306e1bb18e8584a4705656 + sha256: 58edb69ba33a12f7a27e1e013bb1f0377d9231f5e2672cae35a2205f0d71d112 build: entry_points: From 1f107b73dd52dd142389cd710e9cdc67d6085bc7 Mon Sep 17 00:00:00 2001 From: Clea Siguret <37694850+clsiguret@users.noreply.github.com> Date: Tue, 2 Jul 2024 10:27:11 +0200 Subject: [PATCH 0283/1514] Update ToolDistillator 0.9 (#48850) --- recipes/tooldistillator/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/tooldistillator/meta.yaml b/recipes/tooldistillator/meta.yaml index b32c2a1446e8e..278963cd3d1f7 100644 --- a/recipes/tooldistillator/meta.yaml +++ b/recipes/tooldistillator/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.8.5.0" %} -{% set sha256 = "67b8de2f9633fcd9a48c89b5cae9230e9600568ed0905c36284f75dd48745a83" %} +{% set version = "0.9" %} +{% set sha256 = "e2b52e29971ef0da84d9bb8370db060dbc6c58fc61e509e852d297b3d7648817" %} context: {} From fcfda83b4cb290cf530f077990a2fdd0f2125b3e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 2 Jul 2024 05:41:30 -0400 Subject: [PATCH 0284/1514] Update wfmash to 0.16.0 (#48871) --- recipes/wfmash/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/wfmash/meta.yaml b/recipes/wfmash/meta.yaml index 1274d4cb38164..79efc9cc86ab9 100644 --- a/recipes/wfmash/meta.yaml +++ b/recipes/wfmash/meta.yaml @@ -1,5 +1,5 @@ {% set name = "wfmash" %} -{% set version = "0.15.0" %} +{% set version = "0.16.0" %} package: name: "{{ name }}" @@ -7,13 +7,13 @@ package: source: url: https://github.com/waveygang/{{ name }}/releases/download/v{{ version }}/{{ name }}-v{{ version }}.tar.gz - sha256: 57d5fb6f8edc80d4af643d457cece0b118913818beb0583b17c88d911af829d2 + sha256: a3e59f27553d900ec2ce5b832a548d55b9c4f1e8a034040e39f6cb02bff7860e build: skip: True # [osx] run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} - number: 1 + number: 0 requirements: build: From 278da856b35aa29bb7a9d2b06aaec9f101ed32cd Mon Sep 17 00:00:00 2001 From: Jody Phelan Date: Tue, 2 Jul 2024 13:17:13 +0200 Subject: [PATCH 0285/1514] update dependancy (#48870) * update dependancy * update build number --- recipes/pathogen-profiler/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pathogen-profiler/meta.yaml b/recipes/pathogen-profiler/meta.yaml index fa717d8bd2388..fc0a41b76c4dd 100644 --- a/recipes/pathogen-profiler/meta.yaml +++ b/recipes/pathogen-profiler/meta.yaml @@ -13,7 +13,7 @@ source: build: script: python -m pip install --no-deps --ignore-installed . noarch: python - number: 0 + number: 1 run_exports: - { pin_subpackage('pathogen-profiler', max_pin="x") } @@ -31,7 +31,7 @@ requirements: - samtools >=1.12 - bcftools >=1.12 - tqdm - - delly >=0.8.7 + - delly >=0.8.7,<=1.1.6 - gatk4 - bedtools - freebayes =1.3.6 From 7ac1fb5b3cfa072c892d6a79c59aea4913749850 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 2 Jul 2024 07:19:45 -0400 Subject: [PATCH 0286/1514] Update crispector2 to 2.1.1 (#48874) --- recipes/crispector2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/crispector2/meta.yaml b/recipes/crispector2/meta.yaml index 288138c9508da..053f01342c522 100644 --- a/recipes/crispector2/meta.yaml +++ b/recipes/crispector2/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.1.0" %} +{% set version = "2.1.1" %} package: name: crispector2 @@ -15,7 +15,7 @@ build: source: url: https://github.com/theAguy/crispector2/archive/refs/tags/v{{ version }}.tar.gz - sha256: 77dc557d8d57a947a13fce352831d5e433307dd59524eb77b9fca2a581c2e372 + sha256: 6a741b8434056e1f0ed8cb1412448ea66507f7f6f425a53e2c4de4d424e47dab requirements: host: From cb9629c46ce16559f0ec19c0a0fd2dee110de946 Mon Sep 17 00:00:00 2001 From: Guy Assa <78320514+theAguy@users.noreply.github.com> Date: Tue, 2 Jul 2024 14:20:36 +0300 Subject: [PATCH 0287/1514] add crispector2 2.1.1 (#48873) --- recipes/crispector2/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/crispector2/meta.yaml b/recipes/crispector2/meta.yaml index 053f01342c522..341087d2dc5fa 100644 --- a/recipes/crispector2/meta.yaml +++ b/recipes/crispector2/meta.yaml @@ -33,7 +33,7 @@ requirements: - numpy >=1.12.1 - seaborn >=0.9.0 - plotly >=4.3.0 - - pandas >=0.24.2 + - pandas ==1.3.5 - statsmodels - jinja2 - tqdm >=4.66.0 From 433bb9d707b84485214736cf86bb2e6081fa8b9d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 2 Jul 2024 07:34:28 -0400 Subject: [PATCH 0288/1514] Update mintie to 0.4.3 (#48862) * Update mintie to 0.4.3 * Add run_exports * Disable the tests temporary to debug the produced binaries Signed-off-by: Martin Tzvetanov Grigorov * mintie: re-enable `mintie -h` test command Signed-off-by: Martin Tzvetanov Grigorov * mintie: re-enable the test command for bpipe Signed-off-by: Martin Tzvetanov Grigorov * Disable the test for bpipe. v0.9.12 returns 1 as a status code --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Grigorov Co-authored-by: Martin Tzvetanov Grigorov --- recipes/mintie/meta.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recipes/mintie/meta.yaml b/recipes/mintie/meta.yaml index 823b8c0e7b146..23db67ac42422 100644 --- a/recipes/mintie/meta.yaml +++ b/recipes/mintie/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.4.2" %} +{% set version = "0.4.3" %} package: name: mintie @@ -6,10 +6,12 @@ package: source: url: https://github.com/Oshlack/MINTIE/archive/refs/tags/v{{ version }}.tar.gz - sha256: 3de32e6b6a365f9b9e3469b3c8bfb5d3514c718386f0c32f49cc811547fef409 + sha256: 93dbdc1c6328ad7e768d3031eaa9378102b861f96c97b7b11f0c5199f8c50cec build: number: 0 + run_exports: + - {{ pin_subpackage('mintie', max_pin="x.x") }} noarch: generic requirements: @@ -44,7 +46,7 @@ requirements: test: commands: - mintie -h - - cd /tmp && bpipe --help + # - bpipe --help about: home: https://github.com/Oshlack/MINTIE From 676328a7fef02b7cc7b43c521d7131dd5e2df0dd Mon Sep 17 00:00:00 2001 From: Matthias Zepper <6963520+MatthiasZepper@users.noreply.github.com> Date: Tue, 2 Jul 2024 15:11:58 +0200 Subject: [PATCH 0289/1514] Update `umi-transfer` recipe (#48811) * Try to optimise umi-transfer recipe. * Apply Martin Grigorov's suggestions from code review Co-authored-by: Martin Grigorov * Update sha256 after updating tags. * Add make, cmake, C, C++ compiler and zlib. * Remove unnecessary dependencies for umi-transfer. * Run the tests as part of the build routine. --------- Co-authored-by: Matthias Zepper Co-authored-by: Martin Grigorov --- recipes/umi-transfer/build.sh | 10 +++++++--- recipes/umi-transfer/meta.yaml | 26 ++++++++++++++------------ 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/recipes/umi-transfer/build.sh b/recipes/umi-transfer/build.sh index 5c4efc2ca83d4..dcb80951993e6 100644 --- a/recipes/umi-transfer/build.sh +++ b/recipes/umi-transfer/build.sh @@ -1,10 +1,14 @@ -#!/bin/bash -euo +#!/bin/bash -euo pipefail export CFLAGS="${CFLAGS} -fcommon" -export CXXFLAGS="${CFLAGS} -fcommon" +export CXXFLAGS="${CXXFLAGS} -fcommon" +export RUSTFLAGS="-C link-arg=-s" # Add workaround for SSH-based Git connections from Rust/cargo. See https://github.com/rust-lang/cargo/issues/2078 for details. # We set CARGO_HOME because we don't pass on HOME to conda-build, thus rendering the default "${HOME}/.cargo" defunct. export CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_HOME="$(pwd)/.cargo" +# Run the tests +RUST_BACKTRACE=1 cargo test --verbose --locked + # build statically linked binary with Rust -RUST_BACKTRACE=1 cargo install --verbose --root $PREFIX --path . \ No newline at end of file +RUST_BACKTRACE=1 cargo install --verbose --locked --root $PREFIX --path . \ No newline at end of file diff --git a/recipes/umi-transfer/meta.yaml b/recipes/umi-transfer/meta.yaml index 061cfdc1d4b78..acf6e68d657d7 100644 --- a/recipes/umi-transfer/meta.yaml +++ b/recipes/umi-transfer/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.0.0" %} -{% set sha256 = "04e2ee89487fde9be51984a5143931f349b39563b7e0b1861221389c5c5d1b7a" %} +{% set version = "1.5.0" %} +{% set sha256 = "eeacc6c12aea055f624a29623c96b9396e6b412461f57a8ff9e19ba849c4538d" %} package: name: umi-transfer @@ -11,20 +11,16 @@ source: build: number: 0 + run_exports: + - {{ pin_subpackage('umi-transfer', max_pin="x") }} requirements: build: - - rust >=1.40 - - cmake - make - - autoconf - - {{ compiler('cxx') }} - - pkg-config - - zlib - host: - - zlib - run: - + - cmake + - {{ compiler('c') }} + - {{ compiler("rust") }} + - cargo-bundle-licenses test: commands: @@ -36,3 +32,9 @@ about: license_family: MIT license_file: LICENSE summary: A tool for transferring Unique Molecular Identifiers (UMIs) from a separate FastQ file. + +extra: + recipe-maintainers: + - MatthiasZepper + additional-platforms: + - linux-aarch64 From 3229b3a7d87ca21f25dd0f484e941a1d73465552 Mon Sep 17 00:00:00 2001 From: RolandFaure <64131971+RolandFaure@users.noreply.github.com> Date: Tue, 2 Jul 2024 15:18:47 +0200 Subject: [PATCH 0290/1514] Update hairsplitter package to version 1.9.5 (#48876) * added hairsplitter * correct linting * corrected hairsplitter recipe * updated hairsplitter version to correct bugs in installation * update hairsplitter version * update version of hairsplitter * update version of hairsplitter --- recipes/hairsplitter/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/hairsplitter/meta.yaml b/recipes/hairsplitter/meta.yaml index e8a86de57ea0b..a6711415add34 100644 --- a/recipes/hairsplitter/meta.yaml +++ b/recipes/hairsplitter/meta.yaml @@ -1,6 +1,6 @@ {% set name = "HairSplitter" %} -{% set version = "1.8.0" %} -{% set sha256 = "a4b22e3d50860a51d657ccc233a034f38f143b74eeb9cafc6c3ca0b19b628207" %} +{% set version = "1.9.5" %} +{% set sha256 = "b05e9e6681056c18af7e136b3d537dac18a5ed24402612ca2173a4cced115c0b" %} package: name: {{ name|lower }} From 39ab89662775323699eeef700205e98d80ac4af6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 2 Jul 2024 09:19:37 -0400 Subject: [PATCH 0291/1514] Update flumutdb to 6.1 (#48879) * Update flumutdb to 6.1 * fix: added test to solve linter fail (#48872) --------- Co-authored-by: EdoardoGiussani <47834675+EdoardoGiussani@users.noreply.github.com> --- recipes/flumutdb/meta.yaml | 80 ++++++++++++++++++++------------------ 1 file changed, 43 insertions(+), 37 deletions(-) diff --git a/recipes/flumutdb/meta.yaml b/recipes/flumutdb/meta.yaml index c99e8feb36b17..772ab45fc1186 100644 --- a/recipes/flumutdb/meta.yaml +++ b/recipes/flumutdb/meta.yaml @@ -1,37 +1,43 @@ -{% set name = "flumutdb" %} -{% set version = "6.0" %} - -package: - name: {{ name|lower }} - version: {{ version }} - -source: - url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/flumutdb-{{ version }}.tar.gz - - sha256: 281c3f033d2bd242bfd2a267216f7bc480f4ec4299493565402b332e943ebc54 - -build: - run_exports: - - {{ pin_subpackage(name, max_pin="x") }} - noarch: python - script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir - number: 0 - -requirements: - host: - - python >=3.7 - - pip - run: - - python >=3.7 - -about: - home: https://github.com/izsvenezie-virology/FluMutDB - summary: Utility module for FluMut database. - license: AGPL-3.0-or-later - license_family: AGPL - license_file: LICENSE - -extra: - recipe-maintainers: - - EdoardoGiussani - - AlexSartori +{% set name = "flumutdb" %} +{% set version = "6.1" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/flumutdb-{{ version }}.tar.gz + + sha256: e85a4145b81017996dcd69fa7e52a0ec4c9140dfc557bc30a6e7ea91d7d80bf0 + +build: + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + number: 0 + +requirements: + host: + - python >=3.7 + - pip + run: + - python >=3.7 + +test: + imports: + - flumutdb + commands: + - python -c "import flumutdb" + +about: + home: https://github.com/izsvenezie-virology/FluMutDB + summary: Utility module for FluMut database. + license: AGPL-3.0-or-later + license_family: AGPL + license_file: LICENSE + +extra: + recipe-maintainers: + - EdoardoGiussani + - AlexSartori From 974a305880f1535a8a2e9459c61808d0bbc88178 Mon Sep 17 00:00:00 2001 From: Niek de Jonge <76995965+niekdejonge@users.noreply.github.com> Date: Tue, 2 Jul 2024 15:37:48 +0200 Subject: [PATCH 0292/1514] Update recipe MS2Query (#45309) * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Change to rerun tests --- recipes/ms2query/meta.yaml | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/recipes/ms2query/meta.yaml b/recipes/ms2query/meta.yaml index 9c03dfc03553a..7e0654830d053 100644 --- a/recipes/ms2query/meta.yaml +++ b/recipes/ms2query/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ms2query" %} -{% set version = "1.2.3" %} -{% set sha256 = "2111d9bb6d6b35144128f396d6141ec151b4f4d14a262de0516e3673bfd9a9f1" %} +{% set version = "1.5.0" %} +{% set sha256 = "7f72a7b2f4a6bf4b8d73e99e6708184decf34d36afe359fc38b3678561a44772" %} package: name: {{ name|lower }} @@ -21,23 +21,22 @@ build: requirements: host: - - python >=3.7 + - python >=3.9 run: - - python >=3.7 - - matchms >=0.14.0,<=0.17.0 - - spec2vec >=0.6.0 - - h5py >=3.8.0 - - tensorflow <2.9 - - scikit-learn - - ms2deepscore - - gensim >=4.0.0 - - pandas >=1.2.5,<2.0.0 - - matchmsextras =0.4.1 - - pubchempy - - tqdm + - python >=3.9 + - matchms =0.26.4 + - spec2vec =0.8.0 + - numpy =1.24.4 + - h5py =3.11.0 + - scikit-learn =1.5.0 + - pyarrow =16.1.0 + - ms2deepscore =2.0.0 + - pandas =2.2.2 - matplotlib-base - - skl2onnx - - onnxruntime + - skl2onnx =1.16.0 + - onnxruntime =1.17.0 + - pytest =8.2.2 + - pytest-cov =5.0.0 - rdkit test: @@ -48,7 +47,7 @@ about: home: https://github.com/iomega/ms2query license: Apache-2.0 license_file: LICENSE - summary: "Reliable and fast MS/MS spectral-based analogue search" + summary: "Reliable and fast MS/MS spectral based analogue search" extra: identifiers: From aa77aab8a9bf4cfdedc42c9f20f5505df4281a31 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 2 Jul 2024 09:49:46 -0400 Subject: [PATCH 0293/1514] Update chewbbaca to 3.3.8 (#48882) --- recipes/chewbbaca/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/chewbbaca/meta.yaml b/recipes/chewbbaca/meta.yaml index fc620e21f3c48..43705581cdfaf 100644 --- a/recipes/chewbbaca/meta.yaml +++ b/recipes/chewbbaca/meta.yaml @@ -1,5 +1,5 @@ {% set name = 'chewBBACA' %} -{% set version = '3.3.7' %} +{% set version = '3.3.8' %} package: name: {{ name|lower }} @@ -8,7 +8,7 @@ package: source: url: https://github.com/B-UMMI/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz # url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: a12ac7604422d12961c31b763344eaab6ed151efd45339597a2b8f3dadfdb8ec + sha256: de00c13dbd83f91ad7fc427262ceca3ae6746d0395213fb15e3c816965bf33dc # sha256: b54c5f4fb2f3c943f9ec51e5b81f4fb9a312fcc87fdea6e0a9f3edbebdf62308 build: From b3b5b19c5e398af3d07af7e231daf10e857481a5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 2 Jul 2024 09:50:12 -0400 Subject: [PATCH 0294/1514] Update pydeseq2 to 0.4.10 (#48881) --- recipes/pydeseq2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pydeseq2/meta.yaml b/recipes/pydeseq2/meta.yaml index 245e1501865d3..4bcdcbc360961 100644 --- a/recipes/pydeseq2/meta.yaml +++ b/recipes/pydeseq2/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pydeseq2" %} -{% set version = "0.4.9" %} +{% set version = "0.4.10" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pydeseq2-{{ version }}.tar.gz - sha256: 0375207775953f43f84ed4279fcb9f11a430d79d038e158bbe74acbc58326d31 + sha256: 8a296938c565035f2c219c870d8e0138e699d71b30f2add04a647b4fbd0b8b6a build: noarch: python From 8b8116e0f4c06dc7f85cff6e234a613e218551a0 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 2 Jul 2024 18:05:47 +0300 Subject: [PATCH 0295/1514] harpy: add linux-aarch64 build (#48865) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/harpy/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index 2945f0e1411ac..cf0bf28f04882 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -11,7 +11,7 @@ source: build: skip: True # [osx] - number: 0 + number: 1 missing_dso_whitelist: - /lib64/libstdc++.so.6 - /lib64/libc.so.6 @@ -64,6 +64,8 @@ about: dev_url: https://github.com/pdimens/harpy extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - pdimens skip-lints: From 86d441bdc65adcdab46b826acb695e16aa68d5c8 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 2 Jul 2024 18:06:46 +0300 Subject: [PATCH 0296/1514] centrifuger: add linux-aarch64 build (#48866) * centrifuger: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Empty commit to build * Export LINKPATH instead of the standard LDFLAGS https://github.com/mourisl/centrifuger/blob/v1.0.4/Makefile#L3 Preserve "-msse4.2" in CXXFLAGS for x86_64 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/centrifuger/build.sh | 10 ++++++++-- recipes/centrifuger/meta.yaml | 5 +++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/recipes/centrifuger/build.sh b/recipes/centrifuger/build.sh index 5198e76cc7426..f91276b92437d 100644 --- a/recipes/centrifuger/build.sh +++ b/recipes/centrifuger/build.sh @@ -1,10 +1,16 @@ #!/bin/bash -export LDFLAGS="-L$PREFIX/lib" + +set -xe + export CPATH=${PREFIX}/include +if [ $(uname -m) == "x86_64" ]; then + CXXFLAGS="${CXXFLAGS} -msse4.2" +fi + mkdir -p $PREFIX/bin -make CXX=$CXX RELEASE_FLAGS="$CXXFLAGS" +make -j ${CPU_COUNT} CXX="$CXX" CXXFLAGS="$CXXFLAGS" LINKPATH="-L${PREFIX}/lib" chmod +x centrifuger-download chmod +x centrifuger-kreport chmod +x centrifuger-inspect diff --git a/recipes/centrifuger/meta.yaml b/recipes/centrifuger/meta.yaml index 0cfbb3bdb2a85..25087132e9a81 100644 --- a/recipes/centrifuger/meta.yaml +++ b/recipes/centrifuger/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} @@ -16,7 +16,6 @@ source: requirements: build: - - zlib - make - {{ compiler('cxx') }} host: @@ -40,5 +39,7 @@ about: summary: 'Lossless compression of microbial genomes for efficient and accurate metagenomic sequence classification.' extra: + additional-platforms: + - linux-aarch64 identifiers: - doi:10.1101/2023.11.15.567129 From 1faf925947ad802b1c95af68fb85133e73b94a68 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 2 Jul 2024 18:07:34 +0300 Subject: [PATCH 0297/1514] slclust: add linux-aarch64 build (#48877) * slclust: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * slclust: Use conda's c++ compiler Signed-off-by: Martin Tzvetanov Grigorov * Pass CXXFLAGS and -I./include to "CC" because it overwrites Signed-off-by: Martin Tzvetanov Grigorov * Debug the test program Signed-off-by: Martin Tzvetanov Grigorov * mkdir -p $PREFIX/bin because otherwise it is the slclust binary Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/slclust/build.sh | 8 ++++++-- recipes/slclust/meta.yaml | 10 ++++++++-- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 20997a9079d19..6916faaba447a 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -363,7 +363,6 @@ recipes/fwdpp recipes/parafly recipes/smashbenchmarking recipes/saffrontree -recipes/slclust # tracking master branch recipes/frc diff --git a/recipes/slclust/build.sh b/recipes/slclust/build.sh index eaddf0285507e..dc99d24e2542e 100644 --- a/recipes/slclust/build.sh +++ b/recipes/slclust/build.sh @@ -1,3 +1,7 @@ #!/bin/bash -make install -cp bin/slclust $PREFIX/bin + +set -xe + +make -j ${CPU_COUNT} CC="${CXX} ${CXXFLAGS} -I${PWD}/include" install +mkdir -p $PREFIX/bin +cp -f bin/slclust $PREFIX/bin diff --git a/recipes/slclust/meta.yaml b/recipes/slclust/meta.yaml index 96893ef87aecf..3e2f82a2d39e1 100644 --- a/recipes/slclust/meta.yaml +++ b/recipes/slclust/meta.yaml @@ -7,12 +7,14 @@ source: sha256: 9e21b65288e7fc35647721380cfedffd68608e164b4240c692c511c18c1620f8 build: - number: 3 + number: 4 + run_exports: + - {{ pin_subpackage("slclust", max_pin=None) }} requirements: build: - make - - {{ compiler('c') }} + - {{ compiler('cxx') }} host: - zlib run: @@ -26,3 +28,7 @@ about: home: https://sourceforge.net/projects/slclust/ license: Artistic License summary: A utility that performs single-linkage clustering with the option of applying a Jaccard similarity coefficient to break weakly bound clusters into distinct clusters. + +extra: + additional-platforms: + - linux-aarch64 From df6c78dc4a968049a562301af66cba7a6e0a3fc7 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 2 Jul 2024 18:07:44 +0300 Subject: [PATCH 0298/1514] r-biodb: add linux-aarch64 build (#48878) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/r-biodb/meta.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/recipes/r-biodb/meta.yaml b/recipes/r-biodb/meta.yaml index 3625bba7d5baa..1f5bd0438fbb8 100644 --- a/recipes/r-biodb/meta.yaml +++ b/recipes/r-biodb/meta.yaml @@ -9,7 +9,9 @@ source: sha256: abc4c533a2824e98bb6b4e94b5288bf89c6cf2ba5e62804d0e8dc75147eecb88 build: - number: 8 + number: 9 + run_exports: + - {{ pin_subpackage('r-biodb', max_pin="x") }} rpaths: - lib/R/lib/ - lib/ @@ -49,7 +51,10 @@ about: license: AGPL-3.0 summary: 'An R package for connecting to chemical and biological databases.' home: https://github.com/pkrog/biodb + extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - MathiasHaudgaard - FrodePedersen From a8c289da8e43f332cba63630d452286cb5f72cbd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 2 Jul 2024 11:35:17 -0400 Subject: [PATCH 0299/1514] Update kegg-pathways-completeness to 1.0.3 (#48886) --- recipes/kegg-pathways-completeness/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/kegg-pathways-completeness/meta.yaml b/recipes/kegg-pathways-completeness/meta.yaml index 59e936b7cb839..7380bc6b6a9d3 100644 --- a/recipes/kegg-pathways-completeness/meta.yaml +++ b/recipes/kegg-pathways-completeness/meta.yaml @@ -1,5 +1,5 @@ {% set name = "kegg-pathways-completeness" %} -{% set version = "1.0.2" %} +{% set version = "1.0.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/kegg_pathways_completeness-{{ version }}.tar.gz - sha256: 70dde6ce82fad1de40f58e8a3637a8e518507ec63bfaef3c1ab3a839679379bd + sha256: 9c2e274f39efb4f0111074d34262df9990871fd94f6c8e9d91a146a20881373f build: entry_points: From cadb658c6b445f9203ccc2211085dcab2086c615 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 2 Jul 2024 13:54:03 -0400 Subject: [PATCH 0300/1514] Update ntroot to 1.1.1 (#48889) --- recipes/ntroot/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ntroot/meta.yaml b/recipes/ntroot/meta.yaml index f1d0979b9a359..1f80980f59125 100644 --- a/recipes/ntroot/meta.yaml +++ b/recipes/ntroot/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ntRoot" %} -{% set version = "1.1.0" %} +{% set version = "1.1.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/bcgsc/ntRoot/releases/download/v{{ version }}/{{ name }}-{{ version }}.tar.gz - sha256: 96bb474f0fa91e8730117d64448e427f0a39c6d15a7e25a5132014bb168a919b + sha256: 0bf8a037b78a619a1c95d658a6dae7bd814d5a04b3c9e97a353317fafa662526 build: number: 0 From ccd33a24f05a1eb4def92107195c13401bdd2540 Mon Sep 17 00:00:00 2001 From: stekaz Date: Wed, 3 Jul 2024 03:55:15 +1000 Subject: [PATCH 0301/1514] Update bwakit to use 0.7.18 (#48885) --- recipes/bwakit/build.sh | 2 +- recipes/bwakit/meta.yaml | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/recipes/bwakit/build.sh b/recipes/bwakit/build.sh index 1be79bf22fcda..c76110961b8cf 100644 --- a/recipes/bwakit/build.sh +++ b/recipes/bwakit/build.sh @@ -6,7 +6,7 @@ pushd bwakit-0.7.15 cp -r resource-* $PREFIX/bin popd -pushd bwa-0.7.17/bwakit +pushd bwa-0.7.18/bwakit for file in *.js ; do { echo '#!/usr/bin/env k8'; cat "${file}"; } > "${file}.tmp" mv "${file}.tmp" "${file}" && chmod 0755 "${file}" diff --git a/recipes/bwakit/meta.yaml b/recipes/bwakit/meta.yaml index 2359d6f407876..abfb0d80b9737 100644 --- a/recipes/bwakit/meta.yaml +++ b/recipes/bwakit/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.7.17.dev1" %} +{% set version = "0.7.18.dev1" %} package: name: bwakit version: {{ version }} @@ -7,21 +7,23 @@ source: - url: http://downloads.sourceforge.net/project/bio-bwa/bwakit/bwakit-0.7.15_x64-linux.tar.bz2 folder: bwakit-0.7.15 sha256: 0a7b11971bc7916b68e9df35a364afe77cb3000df02ffb3a6fbd1aff9be5878c - - url: https://github.com/lh3/bwa/archive/v0.7.17.tar.gz - folder: bwa-0.7.17 - sha256: 980b9591b61c60042c4a39b9e31ccaad8d17ff179d44d347997825da3fdf47fd + - url: https://github.com/lh3/bwa/archive/v0.7.18.tar.gz + folder: bwa-0.7.18 + sha256: 194788087f7b9a77c0114aa481b2ef21439f6abab72488c83917302e8d0e7870 patches: - patches/run-HLA.patch build: noarch: generic - number: 1 + number: 0 + run_exports: + - {{ pin_subpackage('bwakit', max_pin="x.x") }} requirements: run: - k8 - perl - - bwa ==0.7.17 + - bwa ==0.7.18 - fermi2 ==r170 - htsbox ==r315 - ropebwt2 ==r187 From d0a36c4d695bc38028f341fdcc3138d8479c7ba6 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 3 Jul 2024 00:25:55 +0300 Subject: [PATCH 0302/1514] simpleaf & alevin-fry & piscem: add linux-aarch64 build (#48867) * simpleaf: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * piscem: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * alevin-fry: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * alevin-fry: Use libradicl 0.8.2 from crates.io Signed-off-by: Martin Tzvetanov Grigorov * Update build.sh cargo `--config` line should obviate the need for a patch * Update meta.yaml should be able to avoid the patch * Update build.sh --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Rob Patro --- recipes/alevin-fry/build.sh | 5 +- recipes/alevin-fry/meta.yaml | 8 +- recipes/alevin-fry/use-libradicl-0.8.2.patch | 13 +++ recipes/piscem/build_failure.osx-64.yaml | 104 ------------------- recipes/piscem/meta.yaml | 7 +- recipes/simpleaf/build_failure.linux-64.yaml | 104 ------------------- recipes/simpleaf/build_failure.osx-64.yaml | 104 ------------------- recipes/simpleaf/meta.yaml | 9 +- 8 files changed, 34 insertions(+), 320 deletions(-) create mode 100644 recipes/alevin-fry/use-libradicl-0.8.2.patch delete mode 100644 recipes/piscem/build_failure.osx-64.yaml delete mode 100644 recipes/simpleaf/build_failure.linux-64.yaml delete mode 100644 recipes/simpleaf/build_failure.osx-64.yaml diff --git a/recipes/alevin-fry/build.sh b/recipes/alevin-fry/build.sh index be24ecc64d3c6..716bef9e20efb 100644 --- a/recipes/alevin-fry/build.sh +++ b/recipes/alevin-fry/build.sh @@ -6,5 +6,8 @@ export CXXFLAGS="${CFLAGS} -fcommon" # We set CARGO_HOME because we don't pass on HOME to conda-build, thus rendering the default "${HOME}/.cargo" defunct. export CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_HOME="$(pwd)/.cargo" +# get the version of libradicl on which we will be depending +LIBRAD_VER=`grep 'libradicl' Cargo.toml | grep -oh 'version = "[^\"]\+"' | grep -oh '"[^\"]\+"'` + # build statically linked binary with Rust -RUST_BACKTRACE=1 cargo install --verbose --root $PREFIX --path . +RUST_BACKTRACE=1 cargo install --config 'patch."https://github.com/COMBINE-lab/libradicl".libradicl='$LIBRAD_VER'' --verbose --root $PREFIX --path . diff --git a/recipes/alevin-fry/meta.yaml b/recipes/alevin-fry/meta.yaml index 446695091e5e6..4897b13e4470b 100644 --- a/recipes/alevin-fry/meta.yaml +++ b/recipes/alevin-fry/meta.yaml @@ -5,13 +5,15 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("alevin-fry", max_pin="x.x") }} source: url: https://github.com/COMBINE-lab/alevin-fry/archive/v{{ version }}.tar.gz sha256: 80fa964ba998c21dfd1190629015924e53d633be64cb8c8ee105bd7e3a33ac21 + #patches: + # - use-libradicl-0.8.2.patch requirements: build: @@ -33,3 +35,7 @@ about: license: BSD 3-Clause license_file: LICENSE summary: alevin-fry is a tool for the efficient processing of single-cell data based on RAD files produced by alevin + +extra: + additional-platforms: + - linux-aarch64 diff --git a/recipes/alevin-fry/use-libradicl-0.8.2.patch b/recipes/alevin-fry/use-libradicl-0.8.2.patch new file mode 100644 index 0000000000000..f74047259d5ec --- /dev/null +++ b/recipes/alevin-fry/use-libradicl-0.8.2.patch @@ -0,0 +1,13 @@ +diff --git i/Cargo.toml w/Cargo.toml +index eeefa95..e8a7b28 100644 +--- i/Cargo.toml ++++ w/Cargo.toml +@@ -35,7 +35,7 @@ categories = ["command-line-utilities", "science"] + [dependencies] + # for local development, look in the libradicl git repository + # but when published, pull the specified version +-libradicl = { git = "https://github.com/COMBINE-lab/libradicl", branch = "develop", version = "0.8.2" } ++libradicl = "0.8.2" + anyhow = "1.0.80" + arrayvec = "0.7.4" + ahash = "0.8.11" diff --git a/recipes/piscem/build_failure.osx-64.yaml b/recipes/piscem/build_failure.osx-64.yaml deleted file mode 100644 index 2bf52c5362a5c..0000000000000 --- a/recipes/piscem/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: ec6992505a5cb84510a706c0a0c9ca75751618dbb0fdf9f0d304febb83444c50 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - return ::aligned_alloc(__alignment, __size > __rounded_size ? __size : __rounded_size); - ~~^ - 9 warnings and 6 errors generated. - make[2]: *** [CMakeFiles/pesc_static.dir/build.make:76: CMakeFiles/pesc_static.dir/src/pesc_bulk.cpp.o] Error 1 - make[2]: *** Waiting for unfinished jobs.... - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/src/hit_searcher.cpp:1: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/src/../include/hit_searcher.hpp:5: - /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/CanonicalKmerIterator.hpp:17:17: warning: 'iterator, int>' is deprecated [-Wdeprecated-declarations] - : public std::iterator, int> { - ^ - /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/_build_env/bin/../include/c/v1/__iterator/iterator.h:24:29: note: 'iterator, int>' has been explicitly marked deprecated here - struct _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX17 iterator - ^ - /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/_build_env/bin/../include/c/v1/__config:874:41: note: expanded from macro '_LIBCPP_DEPRECATED_IN_CXX17' - # define _LIBCPP_DEPRECATED_IN_CXX17 _LIBCPP_DEPRECATED - ^ - /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/_build_env/bin/../include/c/v1/__config:847:49: note: expanded from macro '_LIBCPP_DEPRECATED' - # define _LIBCPP_DEPRECATED __attribute__((deprecated)) - ^ - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/src/hit_searcher.cpp:1: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/src/../include/hit_searcher.hpp:6: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/projected_hits.hpp:4: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/util.hpp:8: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/../external/pthash/include/pthash.hpp:4: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/../external/pthash/include/single_phf.hpp:3: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/../external/pthash/include/utils/bucketers.hpp:3: - /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/../external/pthash/include/utils/util.hpp:16:71: error: use of undeclared identifier '_SC_PHYS_PAGES' - static const uint64_t available_ram = sysconf(_SC_PAGESIZE) * sysconf(_SC_PHYS_PAGES); - ^ - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/src/hit_searcher.cpp:1: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/src/../include/hit_searcher.hpp:6: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/projected_hits.hpp:4: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/util.hpp:8: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/../external/pthash/include/pthash.hpp:4: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/../external/pthash/include/single_phf.hpp:3: - /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/../external/pthash/include/utils/bucketers.hpp:18:41: warning: implicit conversion from 'unsigned long long' to 'double' changes value from 18446744073709551615 to 18446744073709551616 [-Wimplicit-const-int-float-conversion] - static const uint64_t T = 0.6 * UINT64_MAX; - ~ ^~~~~~~~~~ - /Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/stdint.h:87:27: note: expanded from macro 'UINT64_MAX' - #define UINT64_MAX 18446744073709551615ULL - ^~~~~~~~~~~~~~~~~~~~~~~ - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/src/hit_searcher.cpp:1: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/src/../include/hit_searcher.hpp:7: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/reference_index.hpp:13: - /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/../include/ghc/filesystem.hpp:4626:24: error: use of undeclared identifier 'UTIME_OMIT' - times[0].tv_nsec = UTIME_OMIT; - ^ - /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/../include/ghc/filesystem.hpp:4629:11: error: no member named 'utimensat' in the global namespace - if (::utimensat(AT_FDCWD, p.c_str(), times, AT_SYMLINK_NOFOLLOW) != 0) { - ~~^ - /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/../include/ghc/filesystem.hpp:4629:21: error: use of undeclared identifier 'AT_FDCWD' - if (::utimensat(AT_FDCWD, p.c_str(), times, AT_SYMLINK_NOFOLLOW) != 0) { - ^ - /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/include/../include/ghc/filesystem.hpp:4629:49: error: use of undeclared identifier 'AT_SYMLINK_NOFOLLOW' - if (::utimensat(AT_FDCWD, p.c_str(), times, AT_SYMLINK_NOFOLLOW) != 0) { - ^ - In file included from /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/src/hit_searcher.cpp:1: - /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/piscem-cpp/src/../include/hit_searcher.hpp:49:8: warning: private field 'isSingleEnd' is not used [-Wunused-private-field] - bool isSingleEnd = false; - ^ - 3 warnings and 6 errors generated. - make[2]: *** [CMakeFiles/pesc_static.dir/build.make:104: CMakeFiles/pesc_static.dir/src/hit_searcher.cpp.o] Error 1 - 10 warnings and 6 errors generated. - make[2]: *** [CMakeFiles/pesc_static.dir/build.make:90: CMakeFiles/pesc_static.dir/src/pesc_sc.cpp.o] Error 1 - make[1]: *** [CMakeFiles/Makefile2:123: CMakeFiles/pesc_static.dir/all] Error 2 - make: *** [Makefile:136: all] Error 2 - thread 'main' panicked at ' - command did not execute successfully, got: exit status: 2 - - build script failed, must exit now', /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.50/src/lib.rs:1098:5 - stack backtrace: - 0: rust_begin_unwind - at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:579:5 - 1: core::panicking::panic_fmt - at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/panicking.rs:64:14 - 2: cmake::fail - 3: cmake::run - 4: cmake::Config::build - 5: build_script_build::main - 6: core::ops::function::FnOnce::call_once - note: Some details are omitted, run with RUST_BACKTRACE=full for a verbose backtrace. - error: failed to compile piscem v0.6.0 (/opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work), intermediate artifacts can be found at /opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/target - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/piscem_1685382270655/work/conda_build.sh']' returned non-zero exit status 101. -# Last 100 lines of the build log. diff --git a/recipes/piscem/meta.yaml b/recipes/piscem/meta.yaml index 6c1944eb1ed03..c4a69cd798f80 100644 --- a/recipes/piscem/meta.yaml +++ b/recipes/piscem/meta.yaml @@ -7,11 +7,10 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("piscem", max_pin="x.x") }} - # skip: True # [linux] - + source: git_url: https://github.com/COMBINE-lab/piscem git_rev: "{{ git_commit }}" @@ -48,5 +47,7 @@ about: summary: piscem is a next-generation compacted colored de Bruijn Graph-based indexer and mapper extra: + additional-platforms: + - linux-aarch64 skip-lints: - uses_vcs_url diff --git a/recipes/simpleaf/build_failure.linux-64.yaml b/recipes/simpleaf/build_failure.linux-64.yaml deleted file mode 100644 index f7241c00952d4..0000000000000 --- a/recipes/simpleaf/build_failure.linux-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: fc9e5f6ccb23b5ce477989885aad22c550fc4997bb62461438f4887faaba8cb4 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - Running rustc --crate-name phf_shared --edition=2021 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/phf_shared-0.11.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="std"' -C metadata=55830bec45f75c14 -C extra-filename=-55830bec45f75c14 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern siphasher=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libsiphasher-36cf79d95e7c288b.rmeta --cap-lints allow - Compiling nix v0.26.2 - Running rustc --crate-name nix --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/nix-0.26.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="acct"' --cfg 'feature="aio"' --cfg 'feature="default"' --cfg 'feature="dir"' --cfg 'feature="env"' --cfg 'feature="event"' --cfg 'feature="feature"' --cfg 'feature="fs"' --cfg 'feature="hostname"' --cfg 'feature="inotify"' --cfg 'feature="ioctl"' --cfg 'feature="kmod"' --cfg 'feature="memoffset"' --cfg 'feature="mman"' --cfg 'feature="mount"' --cfg 'feature="mqueue"' --cfg 'feature="net"' --cfg 'feature="personality"' --cfg 'feature="pin-utils"' --cfg 'feature="poll"' --cfg 'feature="process"' --cfg 'feature="pthread"' --cfg 'feature="ptrace"' --cfg 'feature="quota"' --cfg 'feature="reboot"' --cfg 'feature="resource"' --cfg 'feature="sched"' --cfg 'feature="signal"' --cfg 'feature="socket"' --cfg 'feature="term"' --cfg 'feature="time"' --cfg 'feature="ucontext"' --cfg 'feature="uio"' --cfg 'feature="user"' --cfg 'feature="zerocopy"' -C metadata=2722793fe78cdba8 -C extra-filename=-2722793fe78cdba8 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern bitflags=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libbitflags-f63ed375a8247fc1.rmeta --extern cfg_if=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libcfg_if-e30bb64288f055a5.rmeta --extern libc=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/liblibc-b67c909beeb06a35.rmeta --extern memoffset=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libmemoffset-ed6a68cc066745ca.rmeta --extern pin_utils=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libpin_utils-21afeaae78b837f7.rmeta --extern static_assertions=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libstatic_assertions-e585bd5f691dbb90.rmeta --cap-lints allow - Compiling papergrid v0.8.2 - Running rustc --crate-name papergrid --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/papergrid-0.8.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="std"' -C metadata=c9987ae8f991124d -C extra-filename=-c9987ae8f991124d --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern bytecount=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libbytecount-0acee41dc88e4e72.rmeta --extern fnv=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libfnv-07150e3bdfd17a92.rmeta --extern unicode_width=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libunicode_width-9116f259e4e998f4.rmeta --cap-lints allow - Compiling tracing-subscriber v0.3.17 - Running rustc --crate-name tracing_subscriber --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/tracing-subscriber-0.3.17/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="alloc"' --cfg 'feature="ansi"' --cfg 'feature="default"' --cfg 'feature="env-filter"' --cfg 'feature="fmt"' --cfg 'feature="matchers"' --cfg 'feature="nu-ansi-term"' --cfg 'feature="once_cell"' --cfg 'feature="regex"' --cfg 'feature="registry"' --cfg 'feature="sharded-slab"' --cfg 'feature="smallvec"' --cfg 'feature="std"' --cfg 'feature="thread_local"' --cfg 'feature="tracing"' --cfg 'feature="tracing-log"' -C metadata=7c9273dde5a33dbf -C extra-filename=-7c9273dde5a33dbf --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern matchers=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libmatchers-ee6f50ab11e6bcc1.rmeta --extern nu_ansi_term=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libnu_ansi_term-c73453d09fa402e0.rmeta --extern once_cell=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libonce_cell-4222a1721ff08b9c.rmeta --extern regex=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libregex-c1138367945b7bab.rmeta --extern sharded_slab=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libsharded_slab-931a04761a6a08eb.rmeta --extern smallvec=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libsmallvec-ebc1587b63429e1e.rmeta --extern thread_local=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libthread_local-7de605d2f86a876a.rmeta --extern tracing=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtracing-5beba820ab0c10d7.rmeta --extern tracing_core=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtracing_core-5aa6203a60784f10.rmeta --extern tracing_log=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtracing_log-d0b16f7fc3d8713d.rmeta --cap-lints allow - Compiling seq_geom_parser v0.3.0 (https://github.com/COMBINE-lab/seq_geom_parser?branch=dev#f5f3f9f7) - Running rustc --crate-name seq_geom_parser --edition=2021 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/git/checkouts/seq_geom_parser-828dba3bab9b7afe/f5f3f9f/src/lib/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=2e4aab5dafc15174 -C extra-filename=-2e4aab5dafc15174 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern anyhow=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libanyhow-caab6b502aba6c94.rmeta --extern pest=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libpest-1241ff5a1307c205.rmeta --extern pest_derive=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libpest_derive-07f390c64e57469f.so --cap-lints allow - Running rustc --crate-name num_integer /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/num-integer-0.1.45/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=b49dccab28c28c7b -C extra-filename=-b49dccab28c28c7b --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern num_traits=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libnum_traits-b51f8527a098198c.rmeta --cap-lints allow --cfg has_i128 - Compiling phf_macros v0.11.1 - Running rustc --crate-name phf_macros --edition=2021 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/phf_macros-0.11.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type proc-macro --emit=dep-info,link -C prefer-dynamic -C embed-bitcode=no -C debug-assertions=off -C metadata=9a6d176f935126d3 -C extra-filename=-9a6d176f935126d3 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern phf_generator=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libphf_generator-3a9e807069b2416d.rlib --extern phf_shared=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libphf_shared-e5849a6857dc5a1d.rlib --extern proc_macro2=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libproc_macro2-090712d1aa35a6d6.rlib --extern quote=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libquote-068068936dd8d8a3.rlib --extern syn=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libsyn-ed153e362cdac877.rlib --extern proc_macro --cap-lints allow - Compiling needletail v0.5.1 - Running rustc --crate-name needletail --edition=2021 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/needletail-0.5.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type cdylib --crate-type rlib --emit=dep-info,link -C opt-level=3 --cfg 'feature="bzip2"' --cfg 'feature="compression"' --cfg 'feature="default"' --cfg 'feature="flate2"' --cfg 'feature="xz2"' -C metadata=896f2ff7feaf0eeb -C extra-filename=-896f2ff7feaf0eeb --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern buffer_redux=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libbuffer_redux-fce80a929ba088b3.rlib --extern bytecount=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libbytecount-0acee41dc88e4e72.rlib --extern bzip2=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libbzip2-18797058f7bb73bb.rlib --extern flate2=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libflate2-7d4c45aec80b043c.rlib --extern memchr=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libmemchr-6325122094cc2039.rlib --extern xz2=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libxz2-0b3e73abd6b32ce1.rlib --cap-lints allow -L native=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/build/bzip2-sys-12e3ca26969e3f4d/out/lib -L native=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/build/lzma-sys-505d9198e0987d26/out - Compiling tabled_derive v0.6.0 - Running rustc --crate-name tabled_derive --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/tabled_derive-0.6.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type proc-macro --emit=dep-info,link -C prefer-dynamic -C embed-bitcode=no -C debug-assertions=off -C metadata=d4596a1ad85edb9b -C extra-filename=-d4596a1ad85edb9b --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern heck=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libheck-ef45e9ada66517fc.rlib --extern proc_macro_error=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libproc_macro_error-4c8d51c259682028.rlib --extern proc_macro2=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libproc_macro2-090712d1aa35a6d6.rlib --extern quote=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libquote-068068936dd8d8a3.rlib --extern syn=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libsyn-ed153e362cdac877.rlib --extern proc_macro --cap-lints allow - Compiling cmd_lib_macros v1.3.0 - Running rustc --crate-name cmd_lib_macros --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/cmd_lib_macros-1.3.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type proc-macro --emit=dep-info,link -C prefer-dynamic -C embed-bitcode=no -C debug-assertions=off -C metadata=f7f4fca7b9cc4e58 -C extra-filename=-f7f4fca7b9cc4e58 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern proc_macro_error=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libproc_macro_error-4c8d51c259682028.rlib --extern proc_macro2=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libproc_macro2-090712d1aa35a6d6.rlib --extern quote=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libquote-068068936dd8d8a3.rlib --extern syn=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libsyn-ed153e362cdac877.rlib --extern proc_macro --cap-lints allow - Compiling faccess v0.2.4 - Running rustc --crate-name faccess --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/faccess-0.2.4/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=86362437400bde4c -C extra-filename=-86362437400bde4c --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern bitflags=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libbitflags-f63ed375a8247fc1.rmeta --extern libc=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/liblibc-b67c909beeb06a35.rmeta --cap-lints allow - Compiling time v0.1.45 - Running rustc --crate-name time /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/time-0.1.45/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=1c1c70c62a7b1af2 -C extra-filename=-1c1c70c62a7b1af2 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern libc=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/liblibc-b67c909beeb06a35.rmeta --cap-lints allow - Compiling os_pipe v0.9.2 - Running rustc --crate-name os_pipe --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/os_pipe-0.9.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=66dbc1e8d2e7a189 -C extra-filename=-66dbc1e8d2e7a189 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern libc=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/liblibc-b67c909beeb06a35.rmeta --cap-lints allow - Compiling iana-time-zone v0.1.56 - Running rustc --crate-name iana_time_zone --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/iana-time-zone-0.1.56/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="fallback"' -C metadata=606472333f754996 -C extra-filename=-606472333f754996 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --cap-lints allow - Compiling thousands v0.2.0 - Running rustc --crate-name thousands /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/thousands-0.2.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=8ebc164f7888b4bb -C extra-filename=-8ebc164f7888b4bb --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --cap-lints allow - Compiling either v1.8.1 - Running rustc --crate-name either --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/either-1.8.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="default"' --cfg 'feature="use_std"' -C metadata=a95983fef6555c26 -C extra-filename=-a95983fef6555c26 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --cap-lints allow - Running rustc --crate-name time_core --edition=2021 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/time-core-0.1.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=d668f969e457fa46 -C extra-filename=-d668f969e457fa46 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --cap-lints allow - Compiling time v0.3.21 - Running rustc --crate-name time --edition=2021 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/time-0.3.21/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="alloc"' --cfg 'feature="default"' --cfg 'feature="formatting"' --cfg 'feature="macros"' --cfg 'feature="parsing"' --cfg 'feature="serde"' --cfg 'feature="serde-human-readable"' --cfg 'feature="std"' -C metadata=5ab5fad82ee181d6 -C extra-filename=-5ab5fad82ee181d6 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern itoa=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libitoa-c812248f2497cf5d.rmeta --extern serde=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libserde-d732564bfe21410f.rmeta --extern time_core=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtime_core-d668f969e457fa46.rmeta --extern time_macros=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtime_macros-bbb52bf06b87b22a.so --cap-lints allow - Compiling which v4.4.0 - Running rustc --crate-name which --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/which-4.4.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=2a48af3c0d85b680 -C extra-filename=-2a48af3c0d85b680 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern either=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libeither-a95983fef6555c26.rmeta --extern libc=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/liblibc-b67c909beeb06a35.rmeta --cap-lints allow - Compiling seq_geom_xform v0.4.0 (https://github.com/COMBINE-lab/seq_geom_xform?branch=dev#445dab71) - Running rustc --crate-name seq_geom_xform --edition=2021 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/git/checkouts/seq_geom_xform-a23507250fdb4dc9/445dab7/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=b6e07d2e55cd3dcc -C extra-filename=-b6e07d2e55cd3dcc --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern anyhow=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libanyhow-caab6b502aba6c94.rmeta --extern clap=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libclap-cf7e573feb26e85c.rmeta --extern needletail=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libneedletail-896f2ff7feaf0eeb.rlib --extern nix=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libnix-2722793fe78cdba8.rmeta --extern regex=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libregex-c1138367945b7bab.rmeta --extern seq_geom_parser=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libseq_geom_parser-2e4aab5dafc15174.rmeta --extern tempfile=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtempfile-3744176247edafd7.rmeta --extern thousands=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libthousands-8ebc164f7888b4bb.rmeta --extern tracing=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtracing-5beba820ab0c10d7.rmeta --extern tracing_subscriber=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtracing_subscriber-7c9273dde5a33dbf.rmeta --cap-lints allow -L native=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/build/bzip2-sys-12e3ca26969e3f4d/out/lib -L native=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/build/lzma-sys-505d9198e0987d26/out - Compiling chrono v0.4.24 - Running rustc --crate-name chrono --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/chrono-0.4.24/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="clock"' --cfg 'feature="default"' --cfg 'feature="iana-time-zone"' --cfg 'feature="js-sys"' --cfg 'feature="oldtime"' --cfg 'feature="std"' --cfg 'feature="time"' --cfg 'feature="wasm-bindgen"' --cfg 'feature="wasmbind"' --cfg 'feature="winapi"' -C metadata=a7190f141a17e8ac -C extra-filename=-a7190f141a17e8ac --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern iana_time_zone=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libiana_time_zone-606472333f754996.rmeta --extern num_integer=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libnum_integer-b49dccab28c28c7b.rmeta --extern num_traits=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libnum_traits-b51f8527a098198c.rmeta --extern time=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtime-1c1c70c62a7b1af2.rmeta --cap-lints allow - Compiling cmd_lib v1.3.0 - Running rustc --crate-name cmd_lib --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/cmd_lib-1.3.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=b2db1000401d3615 -C extra-filename=-b2db1000401d3615 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern cmd_lib_macros=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libcmd_lib_macros-f7f4fca7b9cc4e58.so --extern faccess=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libfaccess-86362437400bde4c.rmeta --extern lazy_static=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/liblazy_static-54f40fc0627688f4.rmeta --extern log=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/liblog-029eff22a745bf9a.rmeta --extern os_pipe=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libos_pipe-66dbc1e8d2e7a189.rmeta --cap-lints allow - Compiling tabled v0.11.1 - Running rustc --crate-name tabled --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/tabled-0.11.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="default"' --cfg 'feature="derive"' --cfg 'feature="macros"' --cfg 'feature="std"' --cfg 'feature="tabled_derive"' -C metadata=e4359bc48b861bc8 -C extra-filename=-e4359bc48b861bc8 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern papergrid=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libpapergrid-c9987ae8f991124d.rmeta --extern tabled_derive=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtabled_derive-d4596a1ad85edb9b.so --extern unicode_width=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libunicode_width-9116f259e4e998f4.rmeta --cap-lints allow - Compiling phf v0.11.1 - Running rustc --crate-name phf --edition=2021 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/phf-0.11.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="default"' --cfg 'feature="macros"' --cfg 'feature="phf_macros"' --cfg 'feature="std"' -C metadata=8569b1746874b2df -C extra-filename=-8569b1746874b2df --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern phf_macros=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libphf_macros-9a6d176f935126d3.so --extern phf_shared=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libphf_shared-55830bec45f75c14.rmeta --cap-lints allow - Compiling jrsonnet-cli v0.5.0-pre9 - Running rustc --crate-name jrsonnet_cli --edition=2021 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/jrsonnet-cli-0.5.0-pre9/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=660f0f393deb8909 -C extra-filename=-660f0f393deb8909 --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern clap=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libclap-cf7e573feb26e85c.rmeta --extern jrsonnet_evaluator=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libjrsonnet_evaluator-49af99412539f67c.rmeta --extern jrsonnet_gcmodule=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libjrsonnet_gcmodule-52316dd04c19e76e.rmeta --extern jrsonnet_parser=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libjrsonnet_parser-02235bdb3e68d16f.rmeta --extern jrsonnet_stdlib=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libjrsonnet_stdlib-904de553303f4322.rmeta --cap-lints allow - Running rustc --crate-name semver --edition=2018 /opt/conda/conda-bld/simpleaf_1685351446930/work/.cargo/registry/src/github.com-1ecc6299db9ec823/semver-1.0.17/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=c68837e4f494233c -C extra-filename=-c68837e4f494233c --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --cap-lints allow - Compiling simpleaf v0.13.0 (/opt/conda/conda-bld/simpleaf_1685351446930/work) - Running rustc --crate-name simpleaf --edition=2021 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C opt-level=3 -C lto=thin -C metadata=65549e517ca9f4ea -C extra-filename=-65549e517ca9f4ea --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern anyhow=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libanyhow-caab6b502aba6c94.rlib --extern chrono=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libchrono-a7190f141a17e8ac.rlib --extern clap=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libclap-cf7e573feb26e85c.rlib --extern cmd_lib=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libcmd_lib-b2db1000401d3615.rlib --extern jrsonnet_cli=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libjrsonnet_cli-660f0f393deb8909.rlib --extern jrsonnet_evaluator=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libjrsonnet_evaluator-49af99412539f67c.rlib --extern jrsonnet_parser=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libjrsonnet_parser-02235bdb3e68d16f.rlib --extern phf=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libphf-8569b1746874b2df.rlib --extern semver=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libsemver-c68837e4f494233c.rlib --extern seq_geom_parser=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libseq_geom_parser-2e4aab5dafc15174.rlib --extern seq_geom_xform=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libseq_geom_xform-b6e07d2e55cd3dcc.rlib --extern serde=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libserde-d732564bfe21410f.rlib --extern serde_json=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libserde_json-6d60fee60c54363d.rlib --extern tabled=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtabled-e4359bc48b861bc8.rlib --extern thiserror=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libthiserror-cf668e5af5c707b8.rlib --extern time=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtime-5ab5fad82ee181d6.rlib --extern tracing=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtracing-5beba820ab0c10d7.rlib --extern tracing_subscriber=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtracing_subscriber-7c9273dde5a33dbf.rlib --extern which=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libwhich-2a48af3c0d85b680.rlib -L native=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/build/bzip2-sys-12e3ca26969e3f4d/out/lib -L native=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/build/lzma-sys-505d9198e0987d26/out - error[E0432]: unresolved imports jrsonnet_cli::ConfigureState, jrsonnet_cli::GeneralOpts - --> src/utils/jrsonnet_main.rs:6:20 - | - 6 | use jrsonnet_cli::{ConfigureState, GeneralOpts, ManifestOpts, OutputOpts, TraceOpts}; - | ^^^^^^^^^^^^^^ ^^^^^^^^^^^ no GeneralOpts in the root - | | - | no ConfigureState in the root - - error[E0599]: no method named configure found for struct TraceOpts in the current scope - --> src/utils/jrsonnet_main.rs:161:10 - | - 159 | let trace = opts - | _________________- - 160 | | .trace - 161 | | .configure(&s) - | | -^^^^^^^^^ method not found in TraceOpts - | |_________| - | - - error[E0599]: no method named configure found for struct ManifestOpts in the current scope - --> src/utils/jrsonnet_main.rs:183:41 - | - 183 | let manifest_format = opts.manifest.configure(s)?; - | ^^^^^^^^^ method not found in ManifestOpts - - Some errors have detailed explanations: E0432, E0599. - For more information about an error, try rustc --explain E0432. - error: could not compile simpleaf due to 3 previous errors - - Caused by: - process didn't exit successfully: rustc --crate-name simpleaf --edition=2021 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C opt-level=3 -C lto=thin -C metadata=65549e517ca9f4ea -C extra-filename=-65549e517ca9f4ea --out-dir /opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps -C linker=/opt/conda/conda-bld/simpleaf_1685351446930/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps --extern anyhow=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libanyhow-caab6b502aba6c94.rlib --extern chrono=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libchrono-a7190f141a17e8ac.rlib --extern clap=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libclap-cf7e573feb26e85c.rlib --extern cmd_lib=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libcmd_lib-b2db1000401d3615.rlib --extern jrsonnet_cli=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libjrsonnet_cli-660f0f393deb8909.rlib --extern jrsonnet_evaluator=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libjrsonnet_evaluator-49af99412539f67c.rlib --extern jrsonnet_parser=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libjrsonnet_parser-02235bdb3e68d16f.rlib --extern phf=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libphf-8569b1746874b2df.rlib --extern semver=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libsemver-c68837e4f494233c.rlib --extern seq_geom_parser=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libseq_geom_parser-2e4aab5dafc15174.rlib --extern seq_geom_xform=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libseq_geom_xform-b6e07d2e55cd3dcc.rlib --extern serde=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libserde-d732564bfe21410f.rlib --extern serde_json=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libserde_json-6d60fee60c54363d.rlib --extern tabled=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtabled-e4359bc48b861bc8.rlib --extern thiserror=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libthiserror-cf668e5af5c707b8.rlib --extern time=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtime-5ab5fad82ee181d6.rlib --extern tracing=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtracing-5beba820ab0c10d7.rlib --extern tracing_subscriber=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libtracing_subscriber-7c9273dde5a33dbf.rlib --extern which=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/deps/libwhich-2a48af3c0d85b680.rlib -L native=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/build/bzip2-sys-12e3ca26969e3f4d/out/lib -L native=/opt/conda/conda-bld/simpleaf_1685351446930/work/target/release/build/lzma-sys-505d9198e0987d26/out (exit status: 1) - error: failed to compile simpleaf v0.13.0 (/opt/conda/conda-bld/simpleaf_1685351446930/work), intermediate artifacts can be found at /opt/conda/conda-bld/simpleaf_1685351446930/work/target - Traceback (most recent call last): - File "/opt/conda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/conda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/conda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/conda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/simpleaf_1685351446930/work/conda_build.sh']' returned non-zero exit status 101. -# Last 100 lines of the build log. diff --git a/recipes/simpleaf/build_failure.osx-64.yaml b/recipes/simpleaf/build_failure.osx-64.yaml deleted file mode 100644 index db87de2b20443..0000000000000 --- a/recipes/simpleaf/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: fc9e5f6ccb23b5ce477989885aad22c550fc4997bb62461438f4887faaba8cb4 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - Compiling papergrid v0.8.2 - Running rustc --crate-name papergrid --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/papergrid-0.8.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="std"' -C metadata=1db6cb3ddb430e4e -C extra-filename=-1db6cb3ddb430e4e --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern bytecount=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libbytecount-868b87dade1a0fcf.rmeta --extern fnv=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libfnv-ce714d716e87bbb1.rmeta --extern unicode_width=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libunicode_width-9d6c71b14d08b56a.rmeta --cap-lints allow - Running /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/build/semver-c34caa4188444a7c/build-script-build - Compiling nix v0.26.2 - Running rustc --crate-name nix --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/nix-0.26.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="acct"' --cfg 'feature="aio"' --cfg 'feature="default"' --cfg 'feature="dir"' --cfg 'feature="env"' --cfg 'feature="event"' --cfg 'feature="feature"' --cfg 'feature="fs"' --cfg 'feature="hostname"' --cfg 'feature="inotify"' --cfg 'feature="ioctl"' --cfg 'feature="kmod"' --cfg 'feature="memoffset"' --cfg 'feature="mman"' --cfg 'feature="mount"' --cfg 'feature="mqueue"' --cfg 'feature="net"' --cfg 'feature="personality"' --cfg 'feature="pin-utils"' --cfg 'feature="poll"' --cfg 'feature="process"' --cfg 'feature="pthread"' --cfg 'feature="ptrace"' --cfg 'feature="quota"' --cfg 'feature="reboot"' --cfg 'feature="resource"' --cfg 'feature="sched"' --cfg 'feature="signal"' --cfg 'feature="socket"' --cfg 'feature="term"' --cfg 'feature="time"' --cfg 'feature="ucontext"' --cfg 'feature="uio"' --cfg 'feature="user"' --cfg 'feature="zerocopy"' -C metadata=dfc8415d599dc92b -C extra-filename=-dfc8415d599dc92b --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern bitflags=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libbitflags-b35bb543d22c0689.rmeta --extern cfg_if=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libcfg_if-7edd500440d32e4e.rmeta --extern libc=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/liblibc-3d718bdb769ad7d7.rmeta --extern memoffset=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libmemoffset-6a33c7855872ce8b.rmeta --extern pin_utils=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libpin_utils-bcb58eaf5026e26e.rmeta --extern static_assertions=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libstatic_assertions-9662bcb71d6e1757.rmeta --cap-lints allow - Compiling time-macros v0.2.9 - Running rustc --crate-name time_macros --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/time-macros-0.2.9/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type proc-macro --emit=dep-info,link -C prefer-dynamic -C embed-bitcode=no -C debug-assertions=off --cfg 'feature="formatting"' --cfg 'feature="parsing"' --cfg 'feature="serde"' -C metadata=47212a2dabf9c651 -C extra-filename=-47212a2dabf9c651 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern time_core=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtime_core-df0666df9bdd2840.rlib --extern proc_macro --cap-lints allow - Compiling iana-time-zone v0.1.56 - Running rustc --crate-name iana_time_zone --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/iana-time-zone-0.1.56/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="fallback"' -C metadata=8f91552d2d9f513d -C extra-filename=-8f91552d2d9f513d --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern core_foundation_sys=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libcore_foundation_sys-725c7c566a525751.rmeta --cap-lints allow - Compiling phf_macros v0.11.1 - Running rustc --crate-name phf_macros --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/phf_macros-0.11.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type proc-macro --emit=dep-info,link -C prefer-dynamic -C embed-bitcode=no -C debug-assertions=off -C metadata=dd593841c499c4e8 -C extra-filename=-dd593841c499c4e8 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern phf_generator=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libphf_generator-475948d72bcff59e.rlib --extern phf_shared=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libphf_shared-4f2653f829fdeb7f.rlib --extern proc_macro2=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libproc_macro2-93b69be28cdcbdcc.rlib --extern quote=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libquote-18c15777a4069f56.rlib --extern syn=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libsyn-8d51e3da2ab7ab42.rlib --extern proc_macro --cap-lints allow - Compiling needletail v0.5.1 - Running rustc --crate-name needletail --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/needletail-0.5.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type cdylib --crate-type rlib --emit=dep-info,link -C opt-level=3 --cfg 'feature="bzip2"' --cfg 'feature="compression"' --cfg 'feature="default"' --cfg 'feature="flate2"' --cfg 'feature="xz2"' -C metadata=ea9623fd2e390f62 -C extra-filename=-ea9623fd2e390f62 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern buffer_redux=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libbuffer_redux-4871f2f6d832d8ca.rlib --extern bytecount=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libbytecount-868b87dade1a0fcf.rlib --extern bzip2=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libbzip2-5b7c3214c5add5d9.rlib --extern flate2=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libflate2-38b1718354e1e35b.rlib --extern memchr=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libmemchr-ae1e20517f079a90.rlib --extern xz2=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libxz2-8eddd196638bc94b.rlib --cap-lints allow -L native=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/build/bzip2-sys-8b21c5785fa8f903/out/lib -L native=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/build/lzma-sys-6bdcec93cfc8c508/out - Compiling seq_geom_parser v0.3.0 (https://github.com/COMBINE-lab/seq_geom_parser?branch=dev#f5f3f9f7) - Running rustc --crate-name seq_geom_parser --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/git/checkouts/seq_geom_parser-828dba3bab9b7afe/f5f3f9f/src/lib/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=0442010df99b3d87 -C extra-filename=-0442010df99b3d87 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern anyhow=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libanyhow-b80a85593aeefba3.rmeta --extern pest=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libpest-098946f0754789db.rmeta --extern pest_derive=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libpest_derive-6dac551992e03b48.dylib --cap-lints allow - Running rustc --crate-name num_traits /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/num-traits-0.2.15/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=a300c41cddd17c36 -C extra-filename=-a300c41cddd17c36 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --cap-lints allow --cfg has_i128 --cfg has_to_int_unchecked --cfg has_reverse_bits --cfg has_leading_trailing_ones --cfg has_int_assignop_ref --cfg has_div_euclid - Compiling tabled_derive v0.6.0 - Running rustc --crate-name tabled_derive --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/tabled_derive-0.6.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type proc-macro --emit=dep-info,link -C prefer-dynamic -C embed-bitcode=no -C debug-assertions=off -C metadata=3d54dca5e6a7f001 -C extra-filename=-3d54dca5e6a7f001 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern heck=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libheck-6ab390209e8badea.rlib --extern proc_macro_error=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libproc_macro_error-c6c0c2a6878bed17.rlib --extern proc_macro2=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libproc_macro2-93b69be28cdcbdcc.rlib --extern quote=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libquote-18c15777a4069f56.rlib --extern syn=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libsyn-8d51e3da2ab7ab42.rlib --extern proc_macro --cap-lints allow - Compiling cmd_lib_macros v1.3.0 - Running rustc --crate-name cmd_lib_macros --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/cmd_lib_macros-1.3.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type proc-macro --emit=dep-info,link -C prefer-dynamic -C embed-bitcode=no -C debug-assertions=off -C metadata=ab47f886b740473e -C extra-filename=-ab47f886b740473e --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern proc_macro_error=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libproc_macro_error-c6c0c2a6878bed17.rlib --extern proc_macro2=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libproc_macro2-93b69be28cdcbdcc.rlib --extern quote=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libquote-18c15777a4069f56.rlib --extern syn=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libsyn-8d51e3da2ab7ab42.rlib --extern proc_macro --cap-lints allow - Compiling faccess v0.2.4 - Running rustc --crate-name faccess --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/faccess-0.2.4/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=ecfb70f7f62e22e9 -C extra-filename=-ecfb70f7f62e22e9 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern bitflags=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libbitflags-b35bb543d22c0689.rmeta --extern libc=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/liblibc-3d718bdb769ad7d7.rmeta --cap-lints allow - Compiling time v0.1.45 - Running rustc --crate-name time /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/time-0.1.45/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=cbbf3f3cd7914776 -C extra-filename=-cbbf3f3cd7914776 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern libc=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/liblibc-3d718bdb769ad7d7.rmeta --cap-lints allow - Compiling os_pipe v0.9.2 - Running rustc --crate-name os_pipe --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/os_pipe-0.9.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=22d69789ea35ef32 -C extra-filename=-22d69789ea35ef32 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern libc=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/liblibc-3d718bdb769ad7d7.rmeta --cap-lints allow - Compiling either v1.8.1 - Running rustc --crate-name either --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/either-1.8.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="default"' --cfg 'feature="use_std"' -C metadata=e37cf1d8e72e00cc -C extra-filename=-e37cf1d8e72e00cc --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --cap-lints allow - Running rustc --crate-name time_core --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/time-core-0.1.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=d34914af90726fc1 -C extra-filename=-d34914af90726fc1 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --cap-lints allow - Compiling thousands v0.2.0 - Running rustc --crate-name thousands /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/thousands-0.2.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=37a716a6121926f0 -C extra-filename=-37a716a6121926f0 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --cap-lints allow - Compiling cmd_lib v1.3.0 - Running rustc --crate-name cmd_lib --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/cmd_lib-1.3.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=26a436b681489884 -C extra-filename=-26a436b681489884 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern cmd_lib_macros=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libcmd_lib_macros-ab47f886b740473e.dylib --extern faccess=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libfaccess-ecfb70f7f62e22e9.rmeta --extern lazy_static=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/liblazy_static-2e34461a10f4f31f.rmeta --extern log=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/liblog-ffca4fb4a2bcd336.rmeta --extern os_pipe=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libos_pipe-22d69789ea35ef32.rmeta --cap-lints allow - Compiling seq_geom_xform v0.4.0 (https://github.com/COMBINE-lab/seq_geom_xform?branch=dev#445dab71) - Running rustc --crate-name seq_geom_xform --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/git/checkouts/seq_geom_xform-a23507250fdb4dc9/445dab7/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=292205e0d7a67fe5 -C extra-filename=-292205e0d7a67fe5 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern anyhow=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libanyhow-b80a85593aeefba3.rmeta --extern clap=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libclap-7b87bbb20cad8991.rmeta --extern needletail=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libneedletail-ea9623fd2e390f62.rlib --extern nix=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libnix-dfc8415d599dc92b.rmeta --extern regex=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libregex-ccdc79f6417f08f9.rmeta --extern seq_geom_parser=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libseq_geom_parser-0442010df99b3d87.rmeta --extern tempfile=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtempfile-f2cafef9d6167f98.rmeta --extern thousands=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libthousands-37a716a6121926f0.rmeta --extern tracing=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtracing-0937b9a2e770b9e1.rmeta --extern tracing_subscriber=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtracing_subscriber-b0ab2a6d342d7b41.rmeta --cap-lints allow -L native=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/build/bzip2-sys-8b21c5785fa8f903/out/lib -L native=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/build/lzma-sys-6bdcec93cfc8c508/out - Compiling time v0.3.21 - Running rustc --crate-name time --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/time-0.3.21/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="alloc"' --cfg 'feature="default"' --cfg 'feature="formatting"' --cfg 'feature="macros"' --cfg 'feature="parsing"' --cfg 'feature="serde"' --cfg 'feature="serde-human-readable"' --cfg 'feature="std"' -C metadata=7636379577217ab2 -C extra-filename=-7636379577217ab2 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern itoa=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libitoa-3bf9d1c21ff1a952.rmeta --extern serde=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libserde-5f6319e482099067.rmeta --extern time_core=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtime_core-d34914af90726fc1.rmeta --extern time_macros=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtime_macros-47212a2dabf9c651.dylib --cap-lints allow - Compiling which v4.4.0 - Running rustc --crate-name which --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/which-4.4.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=8a64c9b7068b2b06 -C extra-filename=-8a64c9b7068b2b06 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern either=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libeither-e37cf1d8e72e00cc.rmeta --extern libc=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/liblibc-3d718bdb769ad7d7.rmeta --cap-lints allow - Compiling chrono v0.4.25 - Running rustc --crate-name chrono --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/chrono-0.4.25/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="clock"' --cfg 'feature="default"' --cfg 'feature="iana-time-zone"' --cfg 'feature="js-sys"' --cfg 'feature="oldtime"' --cfg 'feature="std"' --cfg 'feature="time"' --cfg 'feature="wasm-bindgen"' --cfg 'feature="wasmbind"' --cfg 'feature="winapi"' -C metadata=ae3f18f5c69ac662 -C extra-filename=-ae3f18f5c69ac662 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern iana_time_zone=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libiana_time_zone-8f91552d2d9f513d.rmeta --extern num_traits=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libnum_traits-a300c41cddd17c36.rmeta --extern time=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtime-cbbf3f3cd7914776.rmeta --cap-lints allow - Compiling tabled v0.11.1 - Running rustc --crate-name tabled --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/tabled-0.11.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="default"' --cfg 'feature="derive"' --cfg 'feature="macros"' --cfg 'feature="std"' --cfg 'feature="tabled_derive"' -C metadata=c64648fb465a3b7d -C extra-filename=-c64648fb465a3b7d --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern papergrid=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libpapergrid-1db6cb3ddb430e4e.rmeta --extern tabled_derive=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtabled_derive-3d54dca5e6a7f001.dylib --extern unicode_width=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libunicode_width-9d6c71b14d08b56a.rmeta --cap-lints allow - Compiling phf v0.11.1 - Running rustc --crate-name phf --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/phf-0.11.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="default"' --cfg 'feature="macros"' --cfg 'feature="phf_macros"' --cfg 'feature="std"' -C metadata=f6ad2ab91360c1a1 -C extra-filename=-f6ad2ab91360c1a1 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern phf_macros=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libphf_macros-dd593841c499c4e8.dylib --extern phf_shared=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libphf_shared-9b998f23dfda90f3.rmeta --cap-lints allow - Running rustc --crate-name semver --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/semver-1.0.17/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=7b10fb415045608d -C extra-filename=-7b10fb415045608d --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --cap-lints allow - Compiling jrsonnet-cli v0.5.0-pre9 - Running rustc --crate-name jrsonnet_cli --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/.cargo/registry/src/github.com-1ecc6299db9ec823/jrsonnet-cli-0.5.0-pre9/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=8d3a3707c491228e -C extra-filename=-8d3a3707c491228e --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern clap=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libclap-7b87bbb20cad8991.rmeta --extern jrsonnet_evaluator=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libjrsonnet_evaluator-c5ca3e38034fc7b6.rmeta --extern jrsonnet_gcmodule=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libjrsonnet_gcmodule-0d88eb7299710fda.rmeta --extern jrsonnet_parser=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libjrsonnet_parser-fa112be4891722c4.rmeta --extern jrsonnet_stdlib=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libjrsonnet_stdlib-ab37d97aaf0698e3.rmeta --cap-lints allow - Compiling simpleaf v0.13.0 (/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work) - Running rustc --crate-name simpleaf --edition=2021 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C opt-level=3 -C lto=thin -C metadata=5b70b728e9be5cb2 -C extra-filename=-5b70b728e9be5cb2 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern anyhow=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libanyhow-b80a85593aeefba3.rlib --extern chrono=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libchrono-ae3f18f5c69ac662.rlib --extern clap=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libclap-7b87bbb20cad8991.rlib --extern cmd_lib=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libcmd_lib-26a436b681489884.rlib --extern jrsonnet_cli=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libjrsonnet_cli-8d3a3707c491228e.rlib --extern jrsonnet_evaluator=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libjrsonnet_evaluator-c5ca3e38034fc7b6.rlib --extern jrsonnet_parser=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libjrsonnet_parser-fa112be4891722c4.rlib --extern phf=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libphf-f6ad2ab91360c1a1.rlib --extern semver=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libsemver-7b10fb415045608d.rlib --extern seq_geom_parser=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libseq_geom_parser-0442010df99b3d87.rlib --extern seq_geom_xform=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libseq_geom_xform-292205e0d7a67fe5.rlib --extern serde=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libserde-5f6319e482099067.rlib --extern serde_json=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libserde_json-290368b682119d88.rlib --extern tabled=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtabled-c64648fb465a3b7d.rlib --extern thiserror=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libthiserror-0ef86794fbf15b6d.rlib --extern time=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtime-7636379577217ab2.rlib --extern tracing=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtracing-0937b9a2e770b9e1.rlib --extern tracing_subscriber=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtracing_subscriber-b0ab2a6d342d7b41.rlib --extern which=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libwhich-8a64c9b7068b2b06.rlib -L native=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/build/bzip2-sys-8b21c5785fa8f903/out/lib -L native=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/build/lzma-sys-6bdcec93cfc8c508/out - error[E0432]: unresolved imports jrsonnet_cli::ConfigureState, jrsonnet_cli::GeneralOpts - --> src/utils/jrsonnet_main.rs:6:20 - | - 6 | use jrsonnet_cli::{ConfigureState, GeneralOpts, ManifestOpts, OutputOpts, TraceOpts}; - | ^^^^^^^^^^^^^^ ^^^^^^^^^^^ no GeneralOpts in the root - | | - | no ConfigureState in the root - - error[E0599]: no method named configure found for struct TraceOpts in the current scope - --> src/utils/jrsonnet_main.rs:161:10 - | - 159 | let trace = opts - | _________________- - 160 | | .trace - 161 | | .configure(&s) - | | -^^^^^^^^^ method not found in TraceOpts - | |_________| - | - - error[E0599]: no method named configure found for struct ManifestOpts in the current scope - --> src/utils/jrsonnet_main.rs:183:41 - | - 183 | let manifest_format = opts.manifest.configure(s)?; - | ^^^^^^^^^ method not found in ManifestOpts - - Some errors have detailed explanations: E0432, E0599. - For more information about an error, try rustc --explain E0432. - error: could not compile simpleaf due to 3 previous errors - - Caused by: - process didn't exit successfully: rustc --crate-name simpleaf --edition=2021 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C opt-level=3 -C lto=thin -C metadata=5b70b728e9be5cb2 -C extra-filename=-5b70b728e9be5cb2 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps --extern anyhow=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libanyhow-b80a85593aeefba3.rlib --extern chrono=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libchrono-ae3f18f5c69ac662.rlib --extern clap=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libclap-7b87bbb20cad8991.rlib --extern cmd_lib=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libcmd_lib-26a436b681489884.rlib --extern jrsonnet_cli=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libjrsonnet_cli-8d3a3707c491228e.rlib --extern jrsonnet_evaluator=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libjrsonnet_evaluator-c5ca3e38034fc7b6.rlib --extern jrsonnet_parser=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libjrsonnet_parser-fa112be4891722c4.rlib --extern phf=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libphf-f6ad2ab91360c1a1.rlib --extern semver=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libsemver-7b10fb415045608d.rlib --extern seq_geom_parser=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libseq_geom_parser-0442010df99b3d87.rlib --extern seq_geom_xform=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libseq_geom_xform-292205e0d7a67fe5.rlib --extern serde=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libserde-5f6319e482099067.rlib --extern serde_json=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libserde_json-290368b682119d88.rlib --extern tabled=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtabled-c64648fb465a3b7d.rlib --extern thiserror=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libthiserror-0ef86794fbf15b6d.rlib --extern time=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtime-7636379577217ab2.rlib --extern tracing=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtracing-0937b9a2e770b9e1.rlib --extern tracing_subscriber=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libtracing_subscriber-b0ab2a6d342d7b41.rlib --extern which=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/deps/libwhich-8a64c9b7068b2b06.rlib -L native=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/build/bzip2-sys-8b21c5785fa8f903/out/lib -L native=/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target/release/build/lzma-sys-6bdcec93cfc8c508/out (exit status: 1) - error: failed to compile simpleaf v0.13.0 (/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work), intermediate artifacts can be found at /opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/target - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/simpleaf_1685357442631/work/conda_build.sh']' returned non-zero exit status 101. -# Last 100 lines of the build log. diff --git a/recipes/simpleaf/meta.yaml b/recipes/simpleaf/meta.yaml index 59f8b233d3aaf..be28ce13f2e79 100644 --- a/recipes/simpleaf/meta.yaml +++ b/recipes/simpleaf/meta.yaml @@ -4,11 +4,10 @@ package: name: simpleaf version: {{ version }} -build: # [not linux-aarch64] - number: 0 +build: + number: 1 run_exports: - {{ pin_subpackage("simpleaf", max_pin="x.x") }} -# script: cargo install --path . --root ${PREFIX} source: url: https://github.com/COMBINE-lab/simpleaf/archive/v{{ version }}.tar.gz @@ -36,3 +35,7 @@ about: license: BSD 3-Clause license_file: LICENSE summary: A rust framework to make using alevin-fry even simpler. + +extra: + additional-platforms: + - linux-aarch64 From 969d49ea557db79ef4fe273e88e7cafb2e6df340 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 2 Jul 2024 20:50:25 -0400 Subject: [PATCH 0303/1514] Update skder to 1.2.1 (#48900) * Update skder to 1.2.1 * Update meta.yaml * Update meta.yaml * Update meta.yaml --------- Co-authored-by: Rauf Salamzade --- recipes/skder/meta.yaml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/recipes/skder/meta.yaml b/recipes/skder/meta.yaml index e553cf16cdd95..f8e8f2b8de92e 100644 --- a/recipes/skder/meta.yaml +++ b/recipes/skder/meta.yaml @@ -1,5 +1,5 @@ {% set name = "skder" %} -{% set version = "1.1.1" %} +{% set version = "1.2.1" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: https://github.com/raufs/skDER/archive/refs/tags/v{{ version }}.tar.gz - sha256: 486b717bca65c0efe89c9108305fe93bbf3cd4562508a6db8a3ed440de3db71c + sha256: 5ccd4b33b94ad7a4c03baaeaaf2def51627161c006bd71a0e51b913a25d0d776 build: - number: 1 + number: 0 skip: True # [py <= 39] run_exports: - {{ pin_subpackage('skder', max_pin='x.x') }} @@ -25,12 +25,17 @@ requirements: - wget run: - python =3.10 - - biopython =1.79 + - biopython - setuptools - skani - ncbi-genome-download - pyfastx - wget + - seaborn + - matplotlib-base + - pandas + - pyrodigal + - cd-hit test: commands: From 654680621cb6b511b0b408d4a298f6ad982095b4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 01:58:29 -0400 Subject: [PATCH 0304/1514] Update neat to 4.2.3 (#48901) --- recipes/neat/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/neat/meta.yaml b/recipes/neat/meta.yaml index 2d08b62643311..d79c967a7fb41 100644 --- a/recipes/neat/meta.yaml +++ b/recipes/neat/meta.yaml @@ -1,5 +1,5 @@ {% set name = "NEAT" %} -{% set version = "4.2.2" %} +{% set version = "4.2.3" %} package: name: '{{ name|lower }}' @@ -7,7 +7,7 @@ package: source: url: https://github.com/ncsa/{{ name }}/archive/{{ version }}.tar.gz - sha256: ce8449ad0227a59cab354cc34441127064a3ebd84864b2f8441f496e65d94b38 + sha256: 915d297842d4f775a79f59f37aac729ade742676f37473dbdbbedab64e81a046 build: From b443ff1c16f9b4661c3200f4e20490e0fe250aaf Mon Sep 17 00:00:00 2001 From: John Huddleston Date: Tue, 2 Jul 2024 22:59:00 -0700 Subject: [PATCH 0305/1514] Update pathogen-embed to 2.1.0 (#48899) --- recipes/pathogen-embed/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pathogen-embed/meta.yaml b/recipes/pathogen-embed/meta.yaml index 5fbf80b9b9890..fecfe32bcb2a5 100644 --- a/recipes/pathogen-embed/meta.yaml +++ b/recipes/pathogen-embed/meta.yaml @@ -1,12 +1,12 @@ -{% set version = "2.0.0" %} +{% set version = "2.1.0" %} package: name: pathogen-embed version: {{ version }} source: - url: https://files.pythonhosted.org/packages/40/30/39a81cc78c8771cbc5eea9562960a7f170533691aa728d17200216d333b6/pathogen_embed-{{ version }}.tar.gz - sha256: c2641a7cbdeed9d5c8c49fd604668a7c8ceef2769c53f12d1edd0af09281aaaa + url: https://files.pythonhosted.org/packages/0c/71/38ca9c5ad8f2893637ebf62bb4703e59162821860a6d9635b8a2794d2258/pathogen_embed-{{ version }}.tar.gz + sha256: b8339ed5b6b672e4da788c07c82d25b4b7cc5f533e4625bc1786056ad5097f9b build: number: 0 From cf55a501958e35980cbf9eeed7130df55914d680 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 01:59:27 -0400 Subject: [PATCH 0306/1514] Update callingcardstools to 1.7.1 (#48897) --- recipes/callingcardstools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/callingcardstools/meta.yaml b/recipes/callingcardstools/meta.yaml index a11c78a7172fc..5fa8e90fbbc22 100644 --- a/recipes/callingcardstools/meta.yaml +++ b/recipes/callingcardstools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "callingcardstools" %} -{% set version = "1.6" %} +{% set version = "1.7.1" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 2506c0e788b8bfa4c715ebca012c48197e6d892c66fbbe2bd39472175de86994 + sha256: 45dee48898336883b91cae93f9a34db68b1992a0f16a436d7f904f71ab061999 build: noarch: python From e5fb7b41431d87d7e1c988e25163ce6a415a96a4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 01:59:57 -0400 Subject: [PATCH 0307/1514] Update ucsc-cell-browser to 1.2.7 (#48896) --- recipes/ucsc-cell-browser/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ucsc-cell-browser/meta.yaml b/recipes/ucsc-cell-browser/meta.yaml index 68c277405ff52..fef5654535f84 100644 --- a/recipes/ucsc-cell-browser/meta.yaml +++ b/recipes/ucsc-cell-browser/meta.yaml @@ -1,4 +1,4 @@ -{% set version = '1.2.6' %} +{% set version = '1.2.7' %} {% set name = "cellbrowser" %} package: @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: "1a088c7ccfdd8300d59955b2b9c9e2633c973dad9fb90006f6b726aed0354877" + sha256: "67b1c96db001ba4bf1a126a4923d404e1edc6a2dd344b2b15cf70b96f1f338f5" build: number: 0 From 569d5fe949d0c4b74399bdaa7e871f8074a094fd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 02:00:22 -0400 Subject: [PATCH 0308/1514] Update pia to 1.5.1 (#48895) --- recipes/pia/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pia/meta.yaml b/recipes/pia/meta.yaml index 187827de84b2a..e4ac7d094bb9f 100644 --- a/recipes/pia/meta.yaml +++ b/recipes/pia/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pia" %} -{% set version = "1.5.0" %} -{% set sha256 = "1f7dee6522927dfec13fadaf12a75e209f6f19f16cf20e8bb2ffa27993d4d886" %} +{% set version = "1.5.1" %} +{% set sha256 = "46bd90546afc324246087552fa478c84b5e9dc324984109310ed46dbbd78412d" %} package: name: {{ name|lower }} From ca5d0d03e0ea0cecef2616344996219970d5c492 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 02:00:56 -0400 Subject: [PATCH 0309/1514] Update pangolin-data to 1.28.1 (#48893) --- recipes/pangolin-data/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pangolin-data/meta.yaml b/recipes/pangolin-data/meta.yaml index 5929703c67fcb..6fcedd8d0f4c4 100644 --- a/recipes/pangolin-data/meta.yaml +++ b/recipes/pangolin-data/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.28" %} +{% set version = "1.28.1" %} package: name: pangolin-data @@ -6,7 +6,7 @@ package: source: url: https://github.com/cov-lineages/pangolin-data/archive/refs/tags/v{{ version }}.tar.gz - sha256: a9b403f1266b4a2977478ddc25e2f2b089ce7a51c47f58aaec2372ee2126db17 + sha256: 1d24d1a3c702ce947fac9ba164079622d5b074624aa5104d236b85ab26a2361b build: number: 0 From 7bff576367367269a2db37f43b2f96b41277dbf5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 02:01:22 -0400 Subject: [PATCH 0310/1514] Update flumut to 0.6.1 (#48892) --- recipes/flumut/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/flumut/meta.yaml b/recipes/flumut/meta.yaml index c4c1776a4b791..e2447627c4345 100644 --- a/recipes/flumut/meta.yaml +++ b/recipes/flumut/meta.yaml @@ -1,5 +1,5 @@ {% set name = "flumut" %} -{% set version = "0.6.0" %} +{% set version = "0.6.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/flumut-{{ version }}.tar.gz - sha256: 62c4240629bfcd187b3efe6e2a4cd0c6d3a90ccf4c40f3b9ce26a48ff8c0b096 + sha256: 48604a3bb0a708f012ee749c3376ab3f7369fed56f9025a8a4677b27d228b34f build: run_exports: @@ -16,7 +16,7 @@ build: - flumut = flumut.cli:cli noarch: python script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir - number: 1 + number: 0 requirements: host: @@ -35,7 +35,7 @@ test: - flumut commands: - flumut --help - - flumut --update + - flumut --update about: home: https://github.com/izsvenezie-virology/FluMut From 639c505cebc81dcfa39462122a9e8be39e0a7f5e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 02:01:44 -0400 Subject: [PATCH 0311/1514] Update pyclone-vi to 0.1.6 (#48891) --- recipes/pyclone-vi/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pyclone-vi/meta.yaml b/recipes/pyclone-vi/meta.yaml index cc5ef95b6313a..86e3312658866 100644 --- a/recipes/pyclone-vi/meta.yaml +++ b/recipes/pyclone-vi/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pyclone-vi" %} -{% set version = "0.1.5" %} +{% set version = "0.1.6" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Roth-Lab/pyclone-vi/archive/{{ version }}.tar.gz - sha256: 242a77b159958054853e8156c718a18b1cb9220461385def554aeed9e054070f + sha256: 883ac95dd7903a9fb0418314e38a4bb5d028b5569942ab02135427201cef4f1f build: number: 0 From 4ecd9d4f2a2f07f6b08a636441f0b31d0f285c1c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 03:16:29 -0400 Subject: [PATCH 0312/1514] Update vcf2circos to 1.2.0 (#48619) * Update vcf2circos to 1.2.0 * Add run_exports Signed-off-by: Martin Tzvetanov Grigorov * pin webcolors to <=1.13 --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov Co-authored-by: mencian --- recipes/vcf2circos/meta.yaml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/recipes/vcf2circos/meta.yaml b/recipes/vcf2circos/meta.yaml index afff96a9bfe2f..e41891030c13e 100644 --- a/recipes/vcf2circos/meta.yaml +++ b/recipes/vcf2circos/meta.yaml @@ -1,6 +1,6 @@ {% set name = "vcf2circos" %} -{% set version = "1.1.1" %} -{% set sha256 = "51305686728685d2cfd934031e5d93079f6887480f90779667186ff24a2cf76f" %} +{% set version = "1.2.0" %} +{% set sha256 = "02a0a62f90a8675bd1a0c2aedd69783a32f431bba4ff3325080aad1303210bf4" %} package: name: {{ name }} @@ -13,9 +13,11 @@ source: build: number: 0 noarch: python - script: {{ PYTHON }} -m pip install . -vv + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv entry_points: - vcf2circos = vcf2circos.__main__:main + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} requirements: host: @@ -34,7 +36,7 @@ requirements: - numpy - pandas - colour - - webcolors + - webcolors <=1.13 - pyfiglet - scipy - python-kaleido @@ -47,6 +49,7 @@ test: about: home: https://github.com/bioinfo-chru-strasbourg/vcf2circos - license: AGPL-3.0 + license: "AGPL-3.0-or-later" + license_family: AGPL license_file: LICENSE summary: "A python package based on Plotly to help generate Circos plots from a VCF file or a JSON configuration file." From 02307173720f108461d02980427b28dae64c0b50 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 04:53:22 -0400 Subject: [PATCH 0313/1514] Update scirpy to 0.17.1 (#48903) --- recipes/scirpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/scirpy/meta.yaml b/recipes/scirpy/meta.yaml index 160e6540d5bf3..290b5babc4e93 100644 --- a/recipes/scirpy/meta.yaml +++ b/recipes/scirpy/meta.yaml @@ -1,5 +1,5 @@ {% set name = "scirpy" %} -{% set version = "0.17.0" %} +{% set version = "0.17.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: f61653a4f7387562ec89b00fbfd7cab762c0bf3320f21ccfc47df80a13cc5d41 + sha256: 8fbca858f432fbf3c34d02aa5100f4dcd3520219ce2978c90bc084dc0951f2fe folder: "{{ name }}-{{ version }}" build: From c686c8e82f3071444c377b2db7566445f141d32f Mon Sep 17 00:00:00 2001 From: Nextstrain bot <78992647+nextstrain-bot@users.noreply.github.com> Date: Wed, 3 Jul 2024 02:58:44 -0700 Subject: [PATCH 0314/1514] Update nextclade to 3.8.0 (#48907) --- recipes/nextclade/meta.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/recipes/nextclade/meta.yaml b/recipes/nextclade/meta.yaml index 7f5eba47272a5..3be9be6471196 100644 --- a/recipes/nextclade/meta.yaml +++ b/recipes/nextclade/meta.yaml @@ -1,5 +1,5 @@ {% set name = "nextclade" %} -{% set version = "3.7.4" %} +{% set version = "3.8.0" %} package: name: "{{ name|lower }}" @@ -7,13 +7,13 @@ package: source: - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-x86_64-unknown-linux-gnu # [linux64] - sha256: 5b3b8b155fa3bb3614284362bf265d7662220fee09a29ec8f5092b520a851ff6 # [linux64] + sha256: 6251f3c46236fba7a51924c6dd49581a150645efddf4248f426123524b23af7f # [linux64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-aarch64-unknown-linux-gnu # [aarch64] - sha256: 68a14acccb0f893e3baaf19c7f1581781ea8aec7e61deee09ceec4d55aa3f280 # [aarch64] + sha256: 3575e0c1a20f1ff4f69e77ea1bcd08cb01bc80a74a750eba02cc5fa1227a3400 # [aarch64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-x86_64-apple-darwin # [osx and x86_64] - sha256: 7255d7d75996654cf134e4cf145456a93a443c103be27da8b2f9b3952769986c # [osx and x86_64] + sha256: a5ad4c2ca527929ab8c8b3b2521287488383f78fc1ee3030cbf5af23856b58b0 # [osx and x86_64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-aarch64-apple-darwin # [osx and arm64] - sha256: 8d61bcb2036c2317fdc3d1d1ab75616a00e3864b9993ec2b342f418ea9055f59 # [osx and arm64] + sha256: 579f499f7f0f5f2b9d520971ded4e265140859317f083ff8e2879ad74373ec33 # [osx and arm64] build: number: 0 From f726bc3991147cfc973b5ec6fe62a22cd941dece Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20D=C3=ADaz=20Roussel?= <46527244+nicodr97@users.noreply.github.com> Date: Wed, 3 Jul 2024 13:15:07 +0200 Subject: [PATCH 0315/1514] Update meta.yaml for v1.5.0 (#48905) --- recipes/trimal/meta.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/recipes/trimal/meta.yaml b/recipes/trimal/meta.yaml index c9a3dea2d9fab..659a5cb83b357 100644 --- a/recipes/trimal/meta.yaml +++ b/recipes/trimal/meta.yaml @@ -1,13 +1,13 @@ package: name: trimal - version: "1.4.1" + version: "1.5.0" source: - url: https://github.com/scapella/trimal/archive/v1.4.1.tar.gz - md5: cb193397635da45be350e9ac96dafe45 + url: https://github.com/inab/trimal/archive/v1.5.0.tar.gz + md5: 414cebd328157f63704e49a592645286 build: - number: 9 + number: 0 run_exports: - {{ pin_subpackage('trimal', max_pin='x') }} @@ -24,7 +24,7 @@ test: - trimal --version | grep trimAl > /dev/null about: - home: 'http://trimal.cgenomics.org' + home: 'https://trimal.readthedocs.io' summary: 'A tool for the automated removal of spurious sequences or poorly aligned regions from a multiple sequence alignment' license: GNU General Public License v3 or later (GPLv3+) From 9419ff46476a2062d16005834a6e029328453581 Mon Sep 17 00:00:00 2001 From: clementcoclet <94937696+clementcoclet@users.noreply.github.com> Date: Wed, 3 Jul 2024 04:20:12 -0700 Subject: [PATCH 0316/1514] Mvip (#48861) * mvip_recipes * update_meta.yaml * mvip_new_version_release * build_number_Update_meta_yaml --------- Co-authored-by: Clement Coclet - 067048 Co-authored-by: Martin Grigorov --- recipes/mvip/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mvip/meta.yaml b/recipes/mvip/meta.yaml index 10e104099b1ba..94f524761e912 100644 --- a/recipes/mvip/meta.yaml +++ b/recipes/mvip/meta.yaml @@ -10,7 +10,7 @@ source: sha256: ee9ea0d29e1d98ccdc7336ab9e41775e1dc0e1e9853d6f42b09bbb2d2f52b28d build: - number: 0 + number: 1 noarch: python script: "{{ PYTHON }} -m pip install . --no-deps -vv" run_exports: @@ -25,7 +25,7 @@ requirements: - python >=3.7 - tqdm - importlib_resources - - genomad + - genomad >=1.5 - pandas - checkv - bowtie2 From a59bb8370e9c2e3c1286724128265a19815c833f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 09:29:36 -0400 Subject: [PATCH 0317/1514] Update svist4get to 1.3.1.1 (#48887) * Update svist4get to 1.3.1.1 * add run_exports * svist4get: Update the patch - remove argparse install require Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: mencian Co-authored-by: Martin Tzvetanov Grigorov --- recipes/svist4get/meta.yaml | 8 +++++--- recipes/svist4get/patch | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/recipes/svist4get/meta.yaml b/recipes/svist4get/meta.yaml index ab229ecc669b8..934337d6a4420 100644 --- a/recipes/svist4get/meta.yaml +++ b/recipes/svist4get/meta.yaml @@ -1,5 +1,5 @@ {% set name = "svist4get" %} -{% set version = "1.3.1" %} +{% set version = "1.3.1.1" %} package: name: "{{ name|lower }}" @@ -7,14 +7,16 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 22311fdc956cca531dac7ba924744e8f870a57bc6f27cbe4e8ba9854117e720c + sha256: 66f4a82497aa0da08691a6b35ca8ab6ec5a1830a5adaf3c4f048950ea6bbf466 patches: - patch build: number: 0 noarch: python - script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv" + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" + run_exports: + - {{ pin_subpackage('svist4get', max_pin="x") }} requirements: host: diff --git a/recipes/svist4get/patch b/recipes/svist4get/patch index fc8b5fefdb7aa..b10c92c981718 100644 --- a/recipes/svist4get/patch +++ b/recipes/svist4get/patch @@ -6,7 +6,7 @@ index 5062c55..6f12e48 100644 author_email='artyom.egorov@hotmail.com', license='WTFPL', packages=['svist4get'], -- install_requires = ['reportlab', 'biopython','configs','argparse','Pybedtools', 'wand', 'statistics'], +- install_requires = ['reportlab', 'biopython','configs','Pybedtools', 'wand', 'statistics'], + install_requires = ['reportlab', 'biopython','configs','Pybedtools', 'wand'], long_description = long_description, long_description_content_type = "text/markdown", From 11fae884c1a01b0e186db75d41ff11b0fc0e27bc Mon Sep 17 00:00:00 2001 From: "Zachary Konkel, PhD" Date: Wed, 3 Jul 2024 06:37:35 -0700 Subject: [PATCH 0318/1514] Add cloci (#48894) * init * add linting error fixes * update version * add cython to host section * add cython to run * remove clipkit, wont compile without cython and cython cant be in the run section * remove unnecessary pins * update mycotools * remove PYTHON variable * correct checksumg * Update meta.yaml * update mycotools * update mycotools * add cloci * need to add on its own branch * add cloci * include website * include all dependencies * Use SPDX value for the license --------- Co-authored-by: Martin Grigorov --- recipes/cloci/meta.yaml | 56 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 recipes/cloci/meta.yaml diff --git a/recipes/cloci/meta.yaml b/recipes/cloci/meta.yaml new file mode 100644 index 0000000000000..99e3b7b279aee --- /dev/null +++ b/recipes/cloci/meta.yaml @@ -0,0 +1,56 @@ +{% set name = "cloci" %} +{% set version = "0.3.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/cloci-{{ version }}.tar.gz + sha256: 46f5387ff625b79038a130f5d501e6dd18b3ccd8ec79d027e6ca78d97e8ad0c2 + +build: + entry_points: + - cloci = cloci.main:cli + - cloci2enrich = cloci.tools.cloci2enrich:cli + - cloci2stats = cloci.tools.cloci2stats:cli + - hg2hg_net = cloci.tools.hg2hg_net:cli + - hlg2biofile = cloci.tools.hlg2biofile:cli + - hlg2hlg_net = cloci.tools.hlg2hlg_net:cli + noarch: python + script: python -m pip install . -vv --no-deps --no-build-isolation + number: 0 + run_exports: + - {{ pin_subpackage('cloci', max_pin="x.x") }} + +requirements: + host: + - setuptools-scm + - pip + run: + - python >=3.0,<4.0 + - mycotools + - cogent3 + - tqdm + - plotly + - graph-tool + +test: + imports: + - cloci + commands: + - pip check + - cloci --help + - update_mtdb --help + requires: + - pip + +about: + home: https://github.com/xonq/cloci + summary: Co-occurrence Locus and Orthologous Cluster Identifier + license: AGPL-3.0-only + license_file: LICENSE + +extra: + recipe-maintainers: + - xonq From 2b3742cc9ec2c2f98470042d70b65e786daeb26e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 09:44:09 -0400 Subject: [PATCH 0319/1514] Update viroconstrictor to 1.4.3 (#48908) --- recipes/viroconstrictor/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/viroconstrictor/meta.yaml b/recipes/viroconstrictor/meta.yaml index d34ea1322c12f..2bbfb5a0c5666 100644 --- a/recipes/viroconstrictor/meta.yaml +++ b/recipes/viroconstrictor/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ViroConstrictor" %} -{% set version = "1.4.2" %} +{% set version = "1.4.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/RIVM-bioinformatics/ViroConstrictor/archive/v{{ version }}.tar.gz - sha256: 7b7f8c0f129b9fa1ccc8c374c7436b6065f7dea87ee6e0423d75fd7f04d81d29 + sha256: 43e7e6b29745367f3eabaef4ea736dfb25e2797fbe0e532b10f8594f71fc5883 build: noarch: python From 41d7a5ce38892f370e348ec9e2dc22b2da7ab45c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 09:46:07 -0400 Subject: [PATCH 0320/1514] Update severus to 1.1 (#48909) --- recipes/severus/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/severus/meta.yaml b/recipes/severus/meta.yaml index 313e6ac2f4c3d..8f3899b47acaa 100644 --- a/recipes/severus/meta.yaml +++ b/recipes/severus/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.0" %} +{% set version = "1.1" %} package: name: severus @@ -6,7 +6,7 @@ package: source: url: https://github.com/KolmogorovLab/Severus/archive/refs/tags/{{ version }}.tar.gz - sha256: c14b76b4c952f8c68adbdd885e7c59e3500714aad39eaef00302a8c57aea82c7 + sha256: 9479ff6c5ee09d28c047b7088414f5cc626cc77523940f2a22fa939506772d1d build: number: 0 From ea7e0336dc6e9e8d0918783de5f48ef940ea7393 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 09:46:27 -0400 Subject: [PATCH 0321/1514] Update pybiolib to 1.1.2208 (#48910) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index c8cf60a048984..a03ef6f84d28d 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.1.2204" %} +{% set version = "1.1.2208" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 8975bba56293d0977ecbfd7d07f76a7d04fa29797fb4c8381254cfb6deda073b + sha256: 5a2f43f9e68ef89a2d951228928e97573b89745285baa7f0b8b0898d60a7afb3 build: noarch: python From bd3df819167bde79357a1632131c5800143dbda7 Mon Sep 17 00:00:00 2001 From: Wei Shen Date: Wed, 3 Jul 2024 15:49:54 +0100 Subject: [PATCH 0322/1514] Update TaxonKit to 0.17.0 (#48917) --- recipes/taxonkit/meta.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/recipes/taxonkit/meta.yaml b/recipes/taxonkit/meta.yaml index 1027498def2d6..61fb6071c45fb 100644 --- a/recipes/taxonkit/meta.yaml +++ b/recipes/taxonkit/meta.yaml @@ -1,21 +1,21 @@ -{% set version = "0.16.0" %} +{% set version = "0.17.0" %} package: name: taxonkit version: {{ version }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('taxonkit', max_pin='x.x') }} source: - url: https://github.com/shenwei356/taxonkit/releases/download/v{{ version }}/taxonkit_darwin_amd64.tar.gz # [osx] - md5: 0f36df3f255caf87004087b4f6a3c718 # [osx] + md5: 5c12cfac4939f966824eda8eb774cf9b # [osx] - url: https://github.com/shenwei356/taxonkit/releases/download/v{{ version }}/taxonkit_linux_amd64.tar.gz # [linux and x86_64] - md5: dcf41d21493a29594b399cdafce16233 # [linux and x86_64] + md5: bfedc8dbfc2db63460ed31843fc5f3c3 # [linux and x86_64] - url: https://github.com/shenwei356/taxonkit/releases/download/v{{ version }}/taxonkit_linux_arm64.tar.gz # [linux and aarch64] - md5: f07a5cff687752de4d03a0b1e6df9a9c # [linux and aarch64] + md5: d0af9a15d225005705d8af63db6a970d # [linux and aarch64] test: commands: From 74934d5f8a3c9b84a050c733eecfafa833511583 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 3 Jul 2024 18:43:04 +0300 Subject: [PATCH 0323/1514] arriba: add linux-aarch64 build (#48914) * arriba: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Require star >=2.7.11b because it is the first one that provides support for linux-aarch64 Signed-off-by: Martin Tzvetanov Grigorov * Require htslib 1.20+ for linux-aarch64 support Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/arriba/build.sh | 4 +++- recipes/arriba/meta.yaml | 9 +++++++-- recipes/star/meta.yaml | 6 +++--- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/recipes/arriba/build.sh b/recipes/arriba/build.sh index cab61cd78f8b2..9e3a2cc7c3b7e 100644 --- a/recipes/arriba/build.sh +++ b/recipes/arriba/build.sh @@ -1,7 +1,9 @@ #!/bin/bash +set -xe + # compile Arriba -make CPPFLAGS="-I$PREFIX/include -I$PREFIX/include/htslib" LDFLAGS="$LDFLAGS" CXX=$CXX bioconda +make -j ${CPU_COUNT} CPPFLAGS="-I$PREFIX/include -I$PREFIX/include/htslib" LDFLAGS="$LDFLAGS" CXX=$CXX bioconda # copy executables mkdir -p "$PREFIX/bin" diff --git a/recipes/arriba/meta.yaml b/recipes/arriba/meta.yaml index 3e6a58c7b67ee..126939ca54892 100644 --- a/recipes/arriba/meta.yaml +++ b/recipes/arriba/meta.yaml @@ -10,7 +10,9 @@ source: sha256: {{ sha256 }} build: - number: 3 + number: 4 + run_exports: + - {{ pin_subpackage('arriba', max_pin="x") }} requirements: build: @@ -22,7 +24,7 @@ requirements: - htslib run: - htslib - - star >=2.7.10a + - star >=2.7.11b - samtools >=1.9 - r-base >=3.3.0 - bioconductor-genomicalignments @@ -40,3 +42,6 @@ test: - arriba -h > /dev/null - draw_fusions.R 2>&1 | grep -q Usage +extra: + additional-platforms: + - linux-aarch64 diff --git a/recipes/star/meta.yaml b/recipes/star/meta.yaml index d0504bcb00d36..f6946392cd1ab 100644 --- a/recipes/star/meta.yaml +++ b/recipes/star/meta.yaml @@ -15,7 +15,7 @@ source: - patches/0003-create-simd-dispatch.patch build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('star', max_pin="x") }} @@ -26,10 +26,10 @@ requirements: - make - vim host: - - htslib + - htslib >=1.20 - zlib run: - - htslib + - htslib >=1.20 - zlib test: From 335c9ca60d52fbba6f6b9f12f16652706381ac72 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 16:38:30 -0400 Subject: [PATCH 0324/1514] Update harpy to 1.1.1 (#48922) --- recipes/harpy/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index cf0bf28f04882..8d31b064ed9ea 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.1" %} -{% set sha256 = "1dd0d64b75f8820994d109f855cd4a883988ff811d6ec152b41f5332c50688e1" %} +{% set version = "1.1.1" %} +{% set sha256 = "db45572cb2592a8b55dcaad606c79443a411b6c58cbb2a7183a16abdd5da3e1f" %} package: name: harpy @@ -11,7 +11,7 @@ source: build: skip: True # [osx] - number: 1 + number: 0 missing_dso_whitelist: - /lib64/libstdc++.so.6 - /lib64/libc.so.6 From 0ae560dd79d427e09808cbf97242dd0540a0faed Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 16:39:02 -0400 Subject: [PATCH 0325/1514] Update varcode to 1.2.1 (#48921) --- recipes/varcode/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/varcode/meta.yaml b/recipes/varcode/meta.yaml index 061bbf466712d..11373e7ebae26 100644 --- a/recipes/varcode/meta.yaml +++ b/recipes/varcode/meta.yaml @@ -1,5 +1,5 @@ {% set name = "varcode" %} -{% set version = "1.2.0" %} +{% set version = "1.2.1" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: e3ae050bf772fca49417044f7dfc5f68c373b11ace7afea106d4f35b4721091f + sha256: f2f0f608b266304cb6ceaa353357ea089cc6ae3f1fa15c8824b44e61fcf567cb build: number: 0 From ab91674827ad3c2b3ce9e5715378b696bb04a71d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 16:40:04 -0400 Subject: [PATCH 0326/1514] Update querynator to 0.5.1 (#48918) --- recipes/querynator/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/querynator/meta.yaml b/recipes/querynator/meta.yaml index b8401f5168b4e..3b1fdabd9f683 100644 --- a/recipes/querynator/meta.yaml +++ b/recipes/querynator/meta.yaml @@ -1,5 +1,5 @@ {% set name = "querynator" %} -{% set version = "0.5.0" %} +{% set version = "0.5.1" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 01712498ecd492e67a85d9b5a809f2528ab7040ccc0170c2d06823eabef65814 + sha256: 21a0a77062b86ebf20bc87a7746ab1a58526f485cf2e981ff06ef2dd8fe021f3 build: number: 0 From 29b41011ade5e97e5a115be76ed8d3eef9862d2a Mon Sep 17 00:00:00 2001 From: Rauf Salamzade Date: Wed, 3 Jul 2024 15:41:43 -0500 Subject: [PATCH 0327/1514] Update codoff (#48923) --- recipes/codoff/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/codoff/meta.yaml b/recipes/codoff/meta.yaml index 3777b0487eae2..abd114e0c7e2c 100644 --- a/recipes/codoff/meta.yaml +++ b/recipes/codoff/meta.yaml @@ -10,7 +10,7 @@ source: sha256: ffa16c6f4fba96bfb6b0a4d9efda202bb6215d1aca558cac9d96761e02962237 build: - number: 0 + number: 1 noarch: python script: "{{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv" run_exports: @@ -24,7 +24,7 @@ requirements: - wget run: - python =3.10 - - biopython =1.79 + - biopython - setuptools - scipy - seaborn From d435b9a5ce12ea9b30e23ea63db9aa04e34aef0f Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 4 Jul 2024 00:01:26 +0300 Subject: [PATCH 0328/1514] survivor: add linux-aarch64 build (#48911) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/survivor/build.sh | 4 +++- recipes/survivor/meta.yaml | 8 +++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/recipes/survivor/build.sh b/recipes/survivor/build.sh index 54fefce8d9432..b5c3979560c46 100644 --- a/recipes/survivor/build.sh +++ b/recipes/survivor/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + mkdir -p $PREFIX/bin sed -i.bak "s#g++#$CXX -I$PREFIX/include -L$PREFIX/lib#g" Debug/makefile for f in Debug/src/*/subdir.mk; do @@ -8,5 +10,5 @@ done sed -i.bak "s#g++#$CXX -I$PREFIX/include -L$PREFIX/lib#g" Debug/src/subdir.mk cd Debug -make +make -j ${CPU_COUNT} cp SURVIVOR $PREFIX/bin diff --git a/recipes/survivor/meta.yaml b/recipes/survivor/meta.yaml index 09901ea81b65f..b54e5e2cd021b 100644 --- a/recipes/survivor/meta.yaml +++ b/recipes/survivor/meta.yaml @@ -5,7 +5,9 @@ package: version: {{ version }} build: - number: 4 + number: 5 + run_exports: + - {{ pin_subpackage('survivor', max_pin="x") }} source: url: https://github.com/fritzsedlazeck/SURVIVOR/archive/{{ version }}.tar.gz @@ -29,3 +31,7 @@ about: test: commands: - SURVIVOR + +extra: + additional-platforms: + - linux-aarch64 From d2faa3b70646a33a27713dbb42d4e14abd924ff5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 3 Jul 2024 18:09:44 -0400 Subject: [PATCH 0329/1514] Update regenie to 3.5 (#48926) * Update regenie to 3.4.1 * Update regenie to 3.4.1 * add patch for v3.4.1 * Update regenie to 3.5 * update patch * fix boost version --------- Co-authored-by: Joelle Mbatchou --- recipes/regenie/meta.yaml | 11 +- .../0014-update-cmakelist.txt-for-v3.5.patch | 355 ++++++++++++++++++ 2 files changed, 361 insertions(+), 5 deletions(-) create mode 100644 recipes/regenie/patches/0014-update-cmakelist.txt-for-v3.5.patch diff --git a/recipes/regenie/meta.yaml b/recipes/regenie/meta.yaml index 0ee50bfab1262..ef14c2e5919c7 100644 --- a/recipes/regenie/meta.yaml +++ b/recipes/regenie/meta.yaml @@ -1,6 +1,6 @@ {% set name = "regenie" %} -{% set version = "3.4.1" %} -{% set sha256 = "e2683cd4078015ece44cfbea28957695155dbad3b6a5ef6017654b1d8254f214" %} +{% set version = "3.5" %} +{% set sha256 = "48dfe8efa7b8acb6771452e3b53008f97d4a5c1241d5dbc3380d994b70a07a8c" %} package: name: {{ name|lower }} @@ -23,7 +23,8 @@ source: # - patches/0010-update-cmakelist-file-for-v3.2.7.patch # - patches/0011-update-cmakelist-file-for-v3.2.9.patch # - patches/0012-update-cmakelist-file-for-v3.4.patch - - patches/0013-update-cmakelist-file-for-v3.4.1.patch + # - patches/0013-update-cmakelist-file-for-v3.4.1.patch + - patches/0014-update-cmakelist.txt-for-v3.5.patch build: number: 0 @@ -42,14 +43,14 @@ requirements: - libgomp # [linux] host: - bgenix >=1.1.7 - - boost-cpp >=1.7 + - boost-cpp 1.74 - liblapack * *mkl - mkl >=2020.4 - mkl-include - zlib - zstd run: - - boost-cpp >=1.7 + - boost-cpp 1.74 - mkl >=2020.4 - sqlite - zlib diff --git a/recipes/regenie/patches/0014-update-cmakelist.txt-for-v3.5.patch b/recipes/regenie/patches/0014-update-cmakelist.txt-for-v3.5.patch new file mode 100644 index 0000000000000..0637586f8c9c0 --- /dev/null +++ b/recipes/regenie/patches/0014-update-cmakelist.txt-for-v3.5.patch @@ -0,0 +1,355 @@ +From 70b5249cb7a454d7eeaa94c262050adee124aea6 Mon Sep 17 00:00:00 2001 +From: Joelle Mbatchou +Date: Wed, 3 Jul 2024 16:15:46 -0400 +Subject: [PATCH] update cmakelist.txt for v3.5 + +--- + CMakeLists.txt | 241 ++++++++++++++++++++----------------------------- + 1 file changed, 97 insertions(+), 144 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b955d8e..02bdbbb 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,11 +1,3 @@ +-# For Intel MKL, set MKLROOT= when running cmake +-# e.g. MKLROOT=/opt/mkl/ cmake -S regenie_dir/ -B regenie_dir/build/ +-# For OpenBLAS, set OPENBLAS_ROOT= when running cmake +-# note: it also requires lapacke library +-# For static compilation on Linux systems, set STATIC=1 when running cmake +-# -> this excludes GLIBC +- +- + cmake_minimum_required(VERSION 3.13) + + # detect OS architecture +@@ -33,57 +25,16 @@ set(CMAKE_CXX_EXTENSIONS OFF) # Ensures -std=c++11 + ###################################### + ######## check input variables + +-# check BGEN_PATH +-if("$ENV{BGEN_PATH}" STREQUAL "") +- message( FATAL_ERROR "Must specify path to BGEN library in 'BGEN_PATH'") +-else() +- set(BGEN_PATH "$ENV{BGEN_PATH}" CACHE INTERNAL "Set BGEN library path") +- if (NOT EXISTS ${BGEN_PATH}) +- message( FATAL_ERROR "Specified BGEN library directory '${BGEN_PATH}' does not exist") +- endif() +-endif() +- + # check for static compilation +-if($ENV{STATIC}) ++if(BUILD_SHARED_LIBS) ++ set(BUILD_STATIC OFF CACHE INTERNAL "Dynamic compilation") ++ set(Boost_USE_STATIC_LIBS OFF) ++else() + set(BUILD_STATIC ON CACHE INTERNAL "Static compilation") ++ set(Boost_USE_STATIC_LIBS ON) + message( STATUS "Static compilation mode") + endif() + +-# check Boost IOStreams +-if($ENV{HAS_BOOST_IOSTREAM}) +- set(HAS_BOOST_IOSTREAM 1 CACHE INTERNAL "Add Boost IO") +- set(RG_VERSION "${RG_VERSION}.gz" CACHE INTERNAL "Update version") +-else() +- set(HAS_BOOST_IOSTREAM 0 CACHE INTERNAL "Skip Boost IO") +-endif() +- +-# check MKL +-if(NOT "$ENV{MKLROOT}" STREQUAL "") +- set(MKLROOT "$ENV{MKLROOT}" CACHE INTERNAL "Set MKL library path") +- if (NOT EXISTS ${MKLROOT}) +- message( FATAL_ERROR "Specified MKL library directory '${MKLROOT}' does not exist") +- endif() +- message( STATUS "Will compile with Intel MKL library") +-endif() +- +-# check HTSlib +-if(NOT "$ENV{HTSLIB_PATH}" STREQUAL "") +- set(HTSLIB_PATH "$ENV{HTSLIB_PATH}" CACHE INTERNAL "Set HTSlib library path") +- if (NOT EXISTS ${HTSLIB_PATH}) +- message( FATAL_ERROR "Specified HTSlib library directory '${HTSLIB_PATH}' does not exist") +- endif() +- message( STATUS "Will compile with HTSlib") +-endif() +- +-# check OpenBLAS +-if(NOT "$ENV{OPENBLAS_ROOT}" STREQUAL "") +- set(OPENBLAS_ROOT "$ENV{OPENBLAS_ROOT}" CACHE INTERNAL "Set OpenBLAS library path") +- if (NOT EXISTS ${OPENBLAS_ROOT}) +- message( FATAL_ERROR "Specified OpenBLAS library directory '${OPENBLAS_ROOT}' does not exist") +- endif() +- message( STATUS "Will compile with OpenBLAS library") +-endif() +- + ###################################### + ######## set flags and required libraries + +@@ -92,9 +43,10 @@ set(Boost_USE_STATIC_LIBS ${BUILD_STATIC}) + set(Boost_USE_DEBUG_LIBS OFF) + set(Boost_USE_MULTITHREADED ON) + set(Boost_USE_STATIC_RUNTIME OFF) ++set(MKLROOT "${CMAKE_PREFIX_PATH}") + +-# list each file specifically +-add_executable(regenie ++# list each file specifically ++add_executable(regenie + ${CMAKE_SOURCE_DIR}/src/Data.cpp + ${CMAKE_SOURCE_DIR}/src/Files.cpp + ${CMAKE_SOURCE_DIR}/src/Geno.cpp +@@ -112,32 +64,54 @@ add_executable(regenie + ${CMAKE_SOURCE_DIR}/src/MCC.cpp + ${CMAKE_SOURCE_DIR}/src/Ordinal.cpp + ) +-target_include_directories(regenie PRIVATE ${CMAKE_SOURCE_DIR}/src) ++target_include_directories(regenie PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_PREFIX_PATH}/include) + + set(CMAKE_CXX_FLAGS "-O3 -Wall -pedantic -ffast-math -Wno-unused-local-typedefs -Wno-deprecated-declarations -Wno-long-long -Wno-c11-extensions -fPIC") +-add_definitions(-DVERSION_NUMBER="${RG_VERSION}") + ++find_package(OpenMP REQUIRED) ++target_link_libraries(regenie OpenMP::OpenMP_CXX) + if("${UNAME_S}" STREQUAL "Linux") +- find_package(OpenMP REQUIRED) +- target_link_libraries(regenie PRIVATE OpenMP::OpenMP_CXX) + if(${BUILD_STATIC}) +- target_link_options(regenie BEFORE PRIVATE -static-libgcc PRIVATE -static-libstdc++) ++ target_link_options(regenie BEFORE -static-libgcc -static-libstdc++) + endif() + elseif("${UNAME_S}" STREQUAL "Darwin") +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") + endif() + +-set(EXTERN_LIBS_PATH "${CMAKE_SOURCE_DIR}/external_libs") +-target_include_directories(regenie PRIVATE ${EXTERN_LIBS_PATH}/) ++set(EXTERN_LIBS_PATH "${CMAKE_CURRENT_SOURCE_DIR}/external_libs") ++target_include_directories(regenie PUBLIC ${EXTERN_LIBS_PATH}/) ++ ++# for BGEN (choose static if present first) ++find_library(ZSTD_LIBRARY zstd REQUIRED) ++find_library(DB_LIBRARY ++ NAMES libdb.a db ++ REQUIRED ++ ) ++find_library(SQLITE3_LIBRARY sqlite3 REQUIRED) ++find_package(Boost ++ REQUIRED COMPONENTS system filesystem thread ++ OPTIONAL_COMPONENTS iostreams ++ ) ++find_library(BGEN_LIBRARY ++ NAMES libbgen.a ++ REQUIRED ++ ) ++target_link_libraries(regenie ${ZSTD_LIBRARY} ${BGEN_LIBRARY} ${DB_LIBRARY} ${SQLITE3_LIBRARY} ${Boost_LIBRARIES}) ++target_include_directories(regenie ++ PUBLIC ++ $ ++ $ ++ $ ++ $ ++ ) ++add_definitions(${Boost_DEFINITIONS}) + +-# BGEN library and its dependencies +-find_library(ZSTD_LIBRARY libzstd.a HINTS "${BGEN_PATH}/build/3rd_party/zstd-1.1.0" REQUIRED) +-find_library(DB_LIBRARY libdb.a HINTS "${BGEN_PATH}/build/db" REQUIRED) +-find_library(SQLITE3_LIBRARY libsqlite3.a HINTS "${BGEN_PATH}/build/3rd_party/sqlite3" REQUIRED) +-find_library(Boost_LIBRARY libboost.a HINTS "${BGEN_PATH}/build/3rd_party/boost_1_55_0" REQUIRED) +-find_library(BGEN_LIBRARY libbgen.a HINTS "${BGEN_PATH}/build" REQUIRED) +-target_link_libraries(regenie PRIVATE ${ZSTD_LIBRARY} ${BGEN_LIBRARY} ${DB_LIBRARY} ${SQLITE3_LIBRARY} ${Boost_LIBRARY}) +-target_include_directories(regenie PRIVATE ${BGEN_PATH} ${BGEN_PATH}/genfile/include/ ${BGEN_PATH}/3rd_party/boost_1_55_0/ ${BGEN_PATH}/3rd_party/zstd-1.1.0/lib ${BGEN_PATH}/db/include/ ${BGEN_PATH}/3rd_party/sqlite3) ++# Boost IO ++if(Boost_iostreams_FOUND) ++ add_definitions(-DHAS_BOOST_IOSTREAM) ++ set(RG_VERSION "${RG_VERSION}.gz" CACHE INTERNAL "Update version") ++ message( STATUS "Will compile with Boost Iostreams library") ++endif() + + # MVTNorm library + set(MVTN_PATH "${EXTERN_LIBS_PATH}/mvtnorm") +@@ -146,7 +120,7 @@ add_custom_target( + COMMAND make + WORKING_DIRECTORY ${MVTN_PATH} + ) +-target_link_libraries(regenie PRIVATE ${MVTN_PATH}/libMvtnorm.a) ++target_link_libraries(regenie ${MVTN_PATH}/libMvtnorm.a) + add_dependencies(regenie libMvtnorm) + + # QF library +@@ -156,7 +130,7 @@ add_custom_target( + COMMAND make + WORKING_DIRECTORY ${QF_PATH} + ) +-target_link_libraries(regenie PRIVATE ${QF_PATH}/qf.a) ++target_link_libraries(regenie ${QF_PATH}/qf.a) + add_dependencies(regenie libqf) + + # Quadpack library +@@ -166,7 +140,7 @@ add_custom_target( + COMMAND make + WORKING_DIRECTORY ${QUAD_PATH} + ) +-target_link_libraries(regenie PRIVATE ${QUAD_PATH}/libquad.a) ++target_link_libraries(regenie ${QUAD_PATH}/libquad.a) + add_dependencies(regenie libquad) + + # PGEN library +@@ -176,12 +150,12 @@ add_custom_target( + COMMAND make + WORKING_DIRECTORY ${PGEN_PATH} + ) +-target_link_libraries(regenie PRIVATE ${PGEN_PATH}/pgenlib.a) +-target_include_directories(regenie PRIVATE ${PGEN_PATH} ${PGEN_PATH}/simde/ ${PGEN_PATH}/include/) ++target_link_libraries(regenie ${PGEN_PATH}/pgenlib.a) ++target_include_directories(regenie PUBLIC ${PGEN_PATH} ${PGEN_PATH}/simde/ ${PGEN_PATH}/include/) + add_dependencies(regenie pgenlib) + + # REMETA library +-if(EXISTS ${HTSLIB_PATH}) ++if(DEFINED HTSLIB_PATH) + set(REMETA_PATH "${EXTERN_LIBS_PATH}/remeta") + add_custom_target( + remeta +@@ -205,91 +179,70 @@ if(EXISTS ${HTSLIB_PATH}) + endif() + + # Intel MKL +-if(EXISTS ${MKLROOT}) ++if(DEFINED MKLROOT) + add_definitions(-DWITH_MKL -DEIGEN_USE_BLAS -DEIGEN_USE_LAPACKE) +- target_include_directories(regenie PRIVATE ${MKLROOT}/include/) +- if(${BUILD_STATIC}) # specify static libs +- find_library(MKL_LP64_LIB libmkl_intel_lp64.a +- HINTS "${MKLROOT}/lib/intel64" +- "${MKLROOT}/lib" +- REQUIRED) +- find_library(MKL_THREAD_LIB libmkl_gnu_thread.a +- HINTS "${MKLROOT}/lib/intel64" +- "${MKLROOT}/lib" +- REQUIRED) +- find_library(MKL_CORE_LIB libmkl_core.a +- HINTS "${MKLROOT}/lib/intel64" +- "${MKLROOT}/lib" +- REQUIRED) +- target_link_libraries(regenie PRIVATE "-Wl,--start-group" ${MKL_LP64_LIB} ${MKL_THREAD_LIB} ${MKL_CORE_LIB} "-Wl,--end-group" -lgomp) +- else() # use dynamic libs +- find_library(MKL_LP64_LIB mkl_intel_lp64 +- PATHS "${MKLROOT}/lib/intel64" +- "${MKLROOT}/lib" +- REQUIRED) ++ target_include_directories(regenie PUBLIC ${MKLROOT}/include/) ++ find_library(MKL_LP64_LIB mkl_intel_lp64 ++ HINTS "${MKLROOT}/lib/intel64" ++ "${MKLROOT}/lib" ++ REQUIRED ++ ) ++ if("${UNAME_S}" STREQUAL "Linux") + find_library(MKL_THREAD_LIB mkl_gnu_thread +- PATHS "${MKLROOT}/lib/intel64" ++ HINTS "${MKLROOT}/lib/intel64" + "${MKLROOT}/lib" +- REQUIRED) +- find_library(MKL_CORE_LIB mkl_core +- PATHS "${MKLROOT}/lib/intel64" ++ REQUIRED ++ ) ++ elseif("${UNAME_S}" STREQUAL "Darwin") ++ find_library(MKL_THREAD_LIB mkl_intel_thread ++ HINTS "${MKLROOT}/lib/intel64" + "${MKLROOT}/lib" +- REQUIRED) +- target_link_libraries(regenie PRIVATE "-Wl,--no-as-needed" ${MKL_LP64_LIB} ${MKL_THREAD_LIB} ${MKL_CORE_LIB} -lgomp) ++ REQUIRED ++ ) ++ endif() ++ find_library(MKL_CORE_LIB mkl_core ++ HINTS "${MKLROOT}/lib/intel64" ++ "${MKLROOT}/lib" ++ REQUIRED ++ ) ++ if("${UNAME_S}" STREQUAL "Darwin") ++ target_link_libraries(regenie ${MKL_LP64_LIB} ${MKL_THREAD_LIB} ${MKL_CORE_LIB}) ++ elseif(${BUILD_STATIC}) ++ target_link_libraries(regenie "-Wl,--start-group" ${MKL_LP64_LIB} ${MKL_THREAD_LIB} ${MKL_CORE_LIB} "-Wl,--end-group" -lgomp) ++ else() # use dynamic libs ++ target_link_libraries(regenie "-Wl,--no-as-needed" ${MKL_LP64_LIB} ${MKL_THREAD_LIB} ${MKL_CORE_LIB} -lgomp) + endif() +-elseif(EXISTS ${OPENBLAS_ROOT}) # OpenBLAS +- add_definitions(-DWITH_OPENBLAS -DEIGEN_USE_BLAS -DEIGEN_USE_LAPACKE) +- target_include_directories(regenie PRIVATE ${OPENBLAS_ROOT}/include/) +- find_library(LAPACK_LIB lapack REQUIRED) +- find_library(BLAS_LIB openblas HINTS "${OPENBLAS_ROOT}/lib/" REQUIRED) +- target_link_libraries(regenie PRIVATE ${LAPACK_LIB} -llapacke ${BLAS_LIB}) ++ message( STATUS "Will compile with Intel MKL library") + endif() + + # cxxopts (header-only) +-target_include_directories(regenie PRIVATE ${EXTERN_LIBS_PATH}/cxxopts/include/) ++target_include_directories(regenie PUBLIC ${CMAKE_SOURCE_DIR}/external_libs/cxxopts/include/) + + # LBFGS (header-only) +-target_include_directories(regenie PRIVATE ${EXTERN_LIBS_PATH}/LBFGSpp/include/) ++target_include_directories(regenie PUBLIC ${CMAKE_SOURCE_DIR}/external_libs/LBFGSpp/include/) + + # Eigen (header-only) +-target_include_directories(regenie PRIVATE ${EXTERN_LIBS_PATH}/eigen-3.4.0/) +- +-# Boost IO +-if(${HAS_BOOST_IOSTREAM}) +- if("${UNAME_S}" STREQUAL "Darwin") +- find_library(BOOST_LIB_IO libboost_iostreams libboost_iostreams.a REQUIRED) +- target_link_libraries(regenie PRIVATE ${BOOST_LIB_IO}) +- elseif(${BUILD_STATIC}) +- find_library(BOOST_LIB_IO libboost_iostreams.a REQUIRED) +- target_link_libraries(regenie PRIVATE ${BOOST_LIB_IO}) +- else() +- target_link_libraries(regenie PRIVATE -lboost_iostreams) +- endif() +- add_definitions(-DHAS_BOOST_IOSTREAM) +- message( STATUS "Will compile with Boost Iostreams library") +-endif() ++target_include_directories(regenie PUBLIC ${CMAKE_SOURCE_DIR}/external_libs/eigen-3.4.0/) + + # Other libraries +-find_library(ZLIB_LIBRARY libz.a z REQUIRED) +-find_library(M_LIB m REQUIRED) +-find_library(DL_LIB dl REQUIRED) ++find_library(ZLIB_LIBRARY z REQUIRED) ++find_library(M_LIB m REQUIRED) ++find_library(DL_LIB dl REQUIRED) + if("${UNAME_S}" STREQUAL "Linux") + set(GFORTRAN_LIBRARY "-lgfortran") + elseif("${UNAME_S}" STREQUAL "Darwin") + find_library(GFORTRAN_LIBRARY gfortran REQUIRED) + endif() +-target_link_libraries( +- regenie PRIVATE +- ${ZLIB_LIBRARY} ${M_LIB} ${DL_LIB} ${PTHREAD_LIB} +- ${GFORTRAN_LIBRARY} +-) ++target_link_libraries(regenie ${ZLIB_LIBRARY} ${M_LIB} ${DL_LIB} ${PTHREAD_LIB} ${GFORTRAN_LIBRARY}) + +-install(TARGETS regenie RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) ++add_definitions(-DVERSION_NUMBER="${RG_VERSION}") ++install(TARGETS regenie RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} OPTIONAL) + message( STATUS "REGENIE v" ${RG_VERSION}) + +-add_custom_target(full-clean +- COMMAND cd "${MVTN_PATH}" && make clean +- COMMAND cd "${QF_PATH}" && make clean +- COMMAND cd "${QUAD_PATH}" && make clean +- COMMAND cd "${PGEN_PATH}" && make clean +- ) ++write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake COMPATIBILITY SameMajorVersion) ++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake DESTINATION share/${PROJECT_NAME}) ++ ++set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR}) ++set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR}) ++set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH}) ++include(CPack) +-- +2.34.1 + From fac3ddc68c9cf1e907b09f2082f0dae331e1fbf6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 4 Jul 2024 02:53:12 -0400 Subject: [PATCH 0330/1514] Update tcdemux to 0.0.26 (#48930) --- recipes/tcdemux/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/tcdemux/meta.yaml b/recipes/tcdemux/meta.yaml index 68c8d6e811719..79f4793f66a72 100644 --- a/recipes/tcdemux/meta.yaml +++ b/recipes/tcdemux/meta.yaml @@ -1,5 +1,5 @@ --- -{% set version = "0.0.25" %} +{% set version = "0.0.26" %} package: name: tcdemux @@ -7,10 +7,10 @@ package: source: url: https://github.com/TomHarrop/tcdemux/archive/refs/tags/{{ version }}.tar.gz - sha256: 03d8deea92762ad8ccc3fb3e2231cc00ec702efe52682c71fb8737f8317e819e + sha256: 120b57d54d9fd30e96186c4d11f25691bd54e758e1d7dde99b24868bd2788e59 build: - number: 1 + number: 0 noarch: python script: {{ PYTHON }} -m pip install --ignore-installed . run_exports: From ba48407c69a0a5ab5d85ffe73b23a9740a87ef40 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 4 Jul 2024 04:52:01 -0400 Subject: [PATCH 0331/1514] Update mkdesigner to 0.4.3 (#48932) --- recipes/mkdesigner/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mkdesigner/meta.yaml b/recipes/mkdesigner/meta.yaml index 629629f63bcb1..e00b2fa6ba705 100644 --- a/recipes/mkdesigner/meta.yaml +++ b/recipes/mkdesigner/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mkdesigner" %} -{% set version = "0.4.2" %} +{% set version = "0.4.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mkdesigner-{{ version }}.tar.gz - sha256: 60026c11cd7510835af2cc8d99cd126293ef243c585b3d5b4fd01540f9a58473 + sha256: b56c5fd1f60e300e2bfefb4997e3af7bfd5a37ed6643138114ba810a83250e1a build: entry_points: From 2be09f84cba02d118ae377437fb2a8254fcbd1e5 Mon Sep 17 00:00:00 2001 From: Rauf Salamzade Date: Thu, 4 Jul 2024 03:52:39 -0500 Subject: [PATCH 0332/1514] Update codoff (#48928) * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml --- recipes/codoff/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/codoff/meta.yaml b/recipes/codoff/meta.yaml index abd114e0c7e2c..d16742c487629 100644 --- a/recipes/codoff/meta.yaml +++ b/recipes/codoff/meta.yaml @@ -10,7 +10,7 @@ source: sha256: ffa16c6f4fba96bfb6b0a4d9efda202bb6215d1aca558cac9d96761e02962237 build: - number: 1 + number: 2 noarch: python script: "{{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv" run_exports: @@ -23,7 +23,7 @@ requirements: - pip - wget run: - - python =3.10 + - python >=3.10 - biopython - setuptools - scipy From f6b8662a31725628c47f3b3202f0b94fe989595c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 4 Jul 2024 04:53:16 -0400 Subject: [PATCH 0333/1514] Update icfree-ml to 2.3.1 (#48927) --- recipes/icfree-ml/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/icfree-ml/meta.yaml b/recipes/icfree-ml/meta.yaml index 2a5db33a3daf2..3a9839d03b9ee 100644 --- a/recipes/icfree-ml/meta.yaml +++ b/recipes/icfree-ml/meta.yaml @@ -1,13 +1,13 @@ {% set name = "icfree-ml" %} -{% set version = "2.3.0" %} +{% set version = "2.3.1" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://github.com/brsynth/icfree-ml/archive/refs/tags/2.3.0.tar.gz - sha256: 6dbefeeeba16a3f02658a45164caa0974befdb008cae1d91147f242fe56542b8 + url: https://github.com/brsynth/icfree-ml/archive/refs/tags/2.3.1.tar.gz + sha256: b3b9743cf54f8688d70189c28946254a0ea71d86ca5e3bfbf6ec32eff8572ab3 build: number: 0 @@ -44,4 +44,4 @@ about: extra: recipe-maintainers: - - tduigou \ No newline at end of file + - tduigou From f00e514789f783fa7741532133b957d3e5450cae Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Thu, 4 Jul 2024 11:04:55 +0200 Subject: [PATCH 0334/1514] Remove superfluous constraints from sambamba (#48925) * Remove superfluous constraints from sambamba, by using ignore_run_exports --- recipes/sambamba/meta.yaml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/recipes/sambamba/meta.yaml b/recipes/sambamba/meta.yaml index 04704448e5319..4c0ba4a6f249f 100644 --- a/recipes/sambamba/meta.yaml +++ b/recipes/sambamba/meta.yaml @@ -12,23 +12,24 @@ source: - 0001-fix-osx-compile.patch build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} + ignore_run_exports: + - bzip2 + - xz requirements: build: - - make - {{ compiler('c') }} + - make - python host: - - ldc >=1.17.0 - bzip2 - - zlib - - xz + - ldc >=1.17.0 - lz4-c - run: - - {{ pin_compatible('ldc', max_pin='x.x') }} + - xz + - zlib test: commands: From 3e69ee80757a0f22903e495ec8524f347c9baca6 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 4 Jul 2024 12:05:22 +0300 Subject: [PATCH 0335/1514] metasnv: add linux-aarch64 build (#48913) * metasnv: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Replace libboost with boost-cpp Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/metasnv/build.sh | 5 +- recipes/metasnv/build_failure.linux-64.yaml | 106 -------------------- recipes/metasnv/meta.yaml | 6 +- 3 files changed, 8 insertions(+), 109 deletions(-) delete mode 100644 recipes/metasnv/build_failure.linux-64.yaml diff --git a/recipes/metasnv/build.sh b/recipes/metasnv/build.sh index 20d8509a0ddf6..34397169a47c7 100644 --- a/recipes/metasnv/build.sh +++ b/recipes/metasnv/build.sh @@ -1,11 +1,14 @@ #!/bin/bash + +set -xe + export CFLAGS="-I$PREFIX/include" export CPPFLAGS="-I$PREFIX/include" export LDFLAGS="-L$PREFIX/lib" tag=share/metasnv-${PKG_VERSION}/ odir=$PREFIX/$tag -make +make -j ${CPU_COUNT} mkdir -p $odir cp -pr src $odir cp -pr metaSNV.py $odir diff --git a/recipes/metasnv/build_failure.linux-64.yaml b/recipes/metasnv/build_failure.linux-64.yaml deleted file mode 100644 index 4d24c6192613b..0000000000000 --- a/recipes/metasnv/build_failure.linux-64.yaml +++ /dev/null @@ -1,106 +0,0 @@ -recipe_sha: fcd5aa4e4395bffa4397115a278d95ea6f6a7358eafcbd21930ac850be38d1b1 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - libsanitizer: 12.3.0-hb8811af_7 conda-forge - libstdcxx-devel_linux-64: 12.3.0-h0223996_107 conda-forge - libstdcxx-ng: 13.2.0-hc0a3c3a_7 conda-forge - libtool: 2.4.7-h27087fc_0 conda-forge - make: 4.3-hd18ef5c_1 conda-forge - pkg-config: 0.29.2-h36c2ea0_1008 conda-forge - sysroot_linux-64: 2.12-he073ed8_17 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - Source cache directory is: /opt/conda/conda-bld/src_cache - Downloading source to cache: v2.0.4_7fcd9db7e3.tar.gz - Downloading https://github.com/metasnv-tool/metaSNV/archive/refs/tags/v2.0.4.tar.gz - Success - Extracting download - source tree in: /opt/conda/conda-bld/metasnv_1717953487418/work - export PREFIX=/opt/conda/conda-bld/metasnv_1717953487418/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place - export BUILD_PREFIX=/opt/conda/conda-bld/metasnv_1717953487418/_build_env - export SRC_DIR=/opt/conda/conda-bld/metasnv_1717953487418/work - INFO: activate-binutils_linux-64.sh made the following environmental changes: - ADDR2LINE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-addr2line - AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar - AS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-as - CXXFILT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cfilt - ELFEDIT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-elfedit - GPROF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gprof - LD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld - LD_GOLD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld.gold - NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-nm - OBJCOPY=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objcopy - OBJDUMP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objdump - RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib - READELF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-readelf - SIZE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-size - STRINGS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strings - STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip - INFO: activate-gcc_linux-64.sh made the following environmental changes: - BUILD=x86_64-conda-linux-gnu - CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc - CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc - CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/metasnv-2.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin - CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr - CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot - CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu - CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu - CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp - CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include - DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/metasnv-2.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include - GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc - GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar - GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm - GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib - HOST=x86_64-conda-linux-gnu - LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib - MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu - build_alias=x86_64-conda-linux-gnu - host_alias=x86_64-conda-linux-gnu - -BUILD=x86_64-conda_cos6-linux-gnu - -CONDA_BUILD_SYSROOT= - INFO: activate-gxx_linux-64.sh made the following environmental changes: - CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c - CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/metasnv-2.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c - DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/metasnv-2.0.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - GXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-g - cd src/qaTools && make - make[1]: Entering directory '$SRC_DIR/src/qaTools' - $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -I$PREFIX/include -Wno-sign-compare -I$PREFIX/include -c -o qaCompute.o qaCompute.cpp - $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c qaCompute.o -o qaCompute -L$PREFIX/lib -lhts -lhts -pthread -lz - make[1]: Leaving directory '$SRC_DIR/src/qaTools' - cd src/snpCaller && make - make[1]: Entering directory '$SRC_DIR/src/snpCaller' - $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c -c -I$PREFIX/include -std=c0x -O2 -Wall -Wno-sign-compare call_vC.cpp -o snpCall.o - call_vC.cpp:20:10: fatal error: boost/icl/discrete_interval.hpp: No such file or directory - 20 | #include - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - compilation terminated. - make[1]: *** [Makefile:12: snpCall.o] Error 1 - make[1]: Leaving directory '$SRC_DIR/src/snpCaller' - make: *** [Makefile:9: snpCaller] Error 2 - Traceback (most recent call last): - File "/opt/conda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/metasnv_1717953487418/work/conda_build.sh']' returned non-zero exit status 2. -# Last 100 lines of the build log. -category: |- - compiler error diff --git a/recipes/metasnv/meta.yaml b/recipes/metasnv/meta.yaml index 7415dc87cf3bd..4e0732276cf00 100644 --- a/recipes/metasnv/meta.yaml +++ b/recipes/metasnv/meta.yaml @@ -12,7 +12,7 @@ source: build: # on macOS, build error from rpath complaining of a too-long path skip: True # [py2k or py36 or osx] - number: 7 + number: 8 run_exports: - {{ pin_subpackage( "metasnv", max_pin="x") }} @@ -24,7 +24,7 @@ requirements: - libtool host: - python - - libboost + - boost-cpp - htslib - numpy - pandas @@ -74,6 +74,8 @@ about: summary: SNV calling software extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - AlessioMilanese - LucasPaoli From 80c08bbd49ddcca813cf84034537c269bf96d3d6 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 4 Jul 2024 12:05:34 +0300 Subject: [PATCH 0336/1514] skder & skani: add linux-aarch64 build (#48904) * skder: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * skani: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/skani/meta.yaml | 8 +- recipes/skder/build_failure.linux-64.yaml | 104 ---------------------- recipes/skder/build_failure.osx-64.yaml | 104 ---------------------- recipes/skder/meta.yaml | 6 +- 4 files changed, 10 insertions(+), 212 deletions(-) delete mode 100644 recipes/skder/build_failure.linux-64.yaml delete mode 100644 recipes/skder/build_failure.osx-64.yaml diff --git a/recipes/skani/meta.yaml b/recipes/skani/meta.yaml index 7c86f9a689682..45491e5f892be 100644 --- a/recipes/skani/meta.yaml +++ b/recipes/skani/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('skani', max_pin="x") }} @@ -16,7 +16,7 @@ source: requirements: build: - {{ compiler("cxx") }} - - rust >=1.39 + - {{ compiler("rust") }} - make test: @@ -28,4 +28,6 @@ about: license: MIT summary: skani is a fast and robust tool for calculating ANI between metagenome assembled genomes and contigs. - +extra: + additional-platforms: + - linux-aarch64 diff --git a/recipes/skder/build_failure.linux-64.yaml b/recipes/skder/build_failure.linux-64.yaml deleted file mode 100644 index 44fff03789b11..0000000000000 --- a/recipes/skder/build_failure.linux-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 71e743ddb5fe1ba445d3bdee7c0844e6b0aedce09ddb9a2008891a7ba50c254f # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("python_abi=3.10[build=*_cp310]"), MatchSpec("biopython==1.79=py310h5764c6d_2")} - Encountered problems while solving: - - package biopython-1.79-py310h5764c6d_2 requires python_abi 3.10.* *_cp310, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - [32mbiopython 1.79.* [0m is installable with the potential options - [32mbiopython 1.79[0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.11.* *_cp311[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.6 *_pypy36_pp73[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.7 *_pypy37_pp73[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; - [31mpython_abi 3.12.* *_cp312[0m is not installable because it conflicts with any installable versions previously reported. - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/conda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build - create_build_envs(top_level_pkg, notest) - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs - raise e - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs - environ.get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions - precs = _install_actions(prefix, index, specs)["LINK"] - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions - txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction - unlink_precs, link_precs = self.solve_for_diff( - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff - final_precs = self.solve_final_state( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state - out_state = self._solving_loop(in_state, out_state, index) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop - solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("python_abi=3.10[build=*_cp310]"), MatchSpec("biopython==1.79=py310h5764c6d_2")} - Encountered problems while solving: - - package biopython-1.79-py310h5764c6d_2 requires python_abi 3.10.* *_cp310, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - [32mbiopython 1.79.* [0m is installable with the potential options - [32mbiopython 1.79[0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.11.* *_cp311[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.6 *_pypy36_pp73[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.7 *_pypy37_pp73[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; - [31mpython_abi 3.12.* *_cp312[0m is not installable because it conflicts with any installable versions previously reported. -# Last 100 lines of the build log. diff --git a/recipes/skder/build_failure.osx-64.yaml b/recipes/skder/build_failure.osx-64.yaml deleted file mode 100644 index 02f0732422e62..0000000000000 --- a/recipes/skder/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 71e743ddb5fe1ba445d3bdee7c0844e6b0aedce09ddb9a2008891a7ba50c254f # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("biopython==1.79=py310h1961e1f_2"), MatchSpec("python_abi=3.10[build=*_cp310]")} - Encountered problems while solving: - - package biopython-1.79-py310h1961e1f_2 requires python_abi 3.10.* *_cp310, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - biopython 1.79.* is installable with the potential options - biopython 1.79 would require - python_abi 3.10.* *_cp310, which can be installed; - biopython 1.79 would require - python_abi 3.11.* *_cp311, which can be installed; - biopython 1.79 would require - python_abi 3.6 *_pypy36_pp73, which can be installed; - biopython 1.79 would require - python_abi 3.6.* *_cp36m, which can be installed; - biopython 1.79 would require - python_abi 3.7.* *_cp37m, which can be installed; - biopython 1.79 would require - python_abi 3.7 *_pypy37_pp73, which can be installed; - biopython 1.79 would require - python_abi 3.8 *_pypy38_pp73, which can be installed; - biopython 1.79 would require - python_abi 3.8.* *_cp38, which can be installed; - biopython 1.79 would require - python_abi 3.9 *_pypy39_pp73, which can be installed; - biopython 1.79 would require - python_abi 3.9.* *_cp39, which can be installed; - python_abi 3.12.* *_cp312 is not installable because it conflicts with any installable versions previously reported. - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build - create_build_envs(top_level_pkg, notest) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs - raise e - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs - environ.get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions - precs = _install_actions(prefix, index, specs)["LINK"] - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions - txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction - unlink_precs, link_precs = self.solve_for_diff( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff - final_precs = self.solve_final_state( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state - out_state = self._solving_loop(in_state, out_state, index) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop - solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("biopython==1.79=py310h1961e1f_2"), MatchSpec("python_abi=3.10[build=*_cp310]")} - Encountered problems while solving: - - package biopython-1.79-py310h1961e1f_2 requires python_abi 3.10.* *_cp310, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - biopython 1.79.* is installable with the potential options - biopython 1.79 would require - python_abi 3.10.* *_cp310, which can be installed; - biopython 1.79 would require - python_abi 3.11.* *_cp311, which can be installed; - biopython 1.79 would require - python_abi 3.6 *_pypy36_pp73, which can be installed; - biopython 1.79 would require - python_abi 3.6.* *_cp36m, which can be installed; - biopython 1.79 would require - python_abi 3.7.* *_cp37m, which can be installed; - biopython 1.79 would require - python_abi 3.7 *_pypy37_pp73, which can be installed; - biopython 1.79 would require - python_abi 3.8 *_pypy38_pp73, which can be installed; - biopython 1.79 would require - python_abi 3.8.* *_cp38, which can be installed; - biopython 1.79 would require - python_abi 3.9 *_pypy39_pp73, which can be installed; - biopython 1.79 would require - python_abi 3.9.* *_cp39, which can be installed; - python_abi 3.12.* *_cp312 is not installable because it conflicts with any installable versions previously reported. -# Last 100 lines of the build log. diff --git a/recipes/skder/meta.yaml b/recipes/skder/meta.yaml index f8e8f2b8de92e..aafb34b595df6 100644 --- a/recipes/skder/meta.yaml +++ b/recipes/skder/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 5ccd4b33b94ad7a4c03baaeaaf2def51627161c006bd71a0e51b913a25d0d776 build: - number: 0 + number: 1 skip: True # [py <= 39] run_exports: - {{ pin_subpackage('skder', max_pin='x.x') }} @@ -48,3 +48,7 @@ about: license_family: BSD summary: "skDER: efficient & high-resolution dereplication of microbial genomes" dev_url: https://github.com/raufs/skDER + +extra: + additional-platforms: + - linux-aarch64 From a9a595e836142b4fa0653536d590a110384959bb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 4 Jul 2024 05:18:40 -0400 Subject: [PATCH 0337/1514] Update kegg-pathways-completeness to 1.0.4 (#48919) --- recipes/kegg-pathways-completeness/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/kegg-pathways-completeness/meta.yaml b/recipes/kegg-pathways-completeness/meta.yaml index 7380bc6b6a9d3..6e24a0a0c3ed1 100644 --- a/recipes/kegg-pathways-completeness/meta.yaml +++ b/recipes/kegg-pathways-completeness/meta.yaml @@ -1,5 +1,5 @@ {% set name = "kegg-pathways-completeness" %} -{% set version = "1.0.3" %} +{% set version = "1.0.4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/kegg_pathways_completeness-{{ version }}.tar.gz - sha256: 9c2e274f39efb4f0111074d34262df9990871fd94f6c8e9d91a146a20881373f + sha256: 4772c0d2cc8364e7b26483a889531f18b43ab37ed38d722b260a2ee13c2232e5 build: entry_points: From 4ef4e5d3d500786d77e06c2d94fa3712bb19ed0c Mon Sep 17 00:00:00 2001 From: Tom Harrop Date: Thu, 4 Jul 2024 21:07:03 +1000 Subject: [PATCH 0338/1514] Update tcdemux recipe (#48931) * Update tcdemux recipe * Pin python to avoid snakemake f-string bug See https://github.com/snakemake/snakemake/issues/2480#issuecomment-1767902894 --- recipes/tcdemux/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/tcdemux/meta.yaml b/recipes/tcdemux/meta.yaml index 79f4793f66a72..23b03ecb70bdd 100644 --- a/recipes/tcdemux/meta.yaml +++ b/recipes/tcdemux/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 120b57d54d9fd30e96186c4d11f25691bd54e758e1d7dde99b24868bd2788e59 build: - number: 0 + number: 1 noarch: python script: {{ PYTHON }} -m pip install --ignore-installed . run_exports: @@ -25,12 +25,12 @@ requirements: - cutadapt >=4.5 - pandas >=2.1.1 - pigz - - python >=3.10 + - python >=3.10,<3.12 - r-bit64 >=4.0.5 - r-data.table >=1.14.8 - r-ggplot2 >=3.4.3 - r-viridis >=0.6.4 - - snakemake >=7.32.4 + - snakemake >=7.32.4,<8.0.0 test: commands: From bb42706be9809838c1fce3a4901399a46dfc4808 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 4 Jul 2024 14:35:56 +0300 Subject: [PATCH 0339/1514] sambamba: add linux-aarch64 build (#46735) * sambamba: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * sambamba: bump the build number Signed-off-by: Martin Tzvetanov Grigorov * sambamba: Use large VM at CircleCI. It seems the build needs more memory Signed-off-by: Martin Tzvetanov Grigorov * sambamba: Try again with medium VM on CircleCI. Use `make -j` Signed-off-by: Martin Tzvetanov Grigorov * CircleCI large VM is needed by sambamba Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- .circleci/config.yml | 2 +- recipes/sambamba/build.sh | 6 ++++-- recipes/sambamba/meta.yaml | 4 +++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 4631c4c8db830..c4a3117dd6022 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -9,7 +9,7 @@ executors: linux-aarch64: machine: image: ubuntu-2204:current - resource_class: arm.medium + resource_class: arm.large jobs: # a basic unit of work in a run build_and_test: diff --git a/recipes/sambamba/build.sh b/recipes/sambamba/build.sh index bfde907c08111..d05576daff9c5 100644 --- a/recipes/sambamba/build.sh +++ b/recipes/sambamba/build.sh @@ -1,12 +1,14 @@ #!/bin/bash +set -xe + export C_INCLUDE_PATH=${PREFIX}/include export LIBRARY_PATH=${PREFIX}/lib # Running `make check` recompiles as an unoptimised binary so must be done prior to release compile -make check CC=${CC} +make -j ${CPU_COUNT} check CC=${CC} -make release CC=${CC} LIBRARY_PATH=${PREFIX}/lib +make -j ${CPU_COUNT} release CC=${CC} LIBRARY_PATH=${PREFIX}/lib make install prefix=${PREFIX} # The binaries are versioned for some reason diff --git a/recipes/sambamba/meta.yaml b/recipes/sambamba/meta.yaml index 4c0ba4a6f249f..4f6491692d307 100644 --- a/recipes/sambamba/meta.yaml +++ b/recipes/sambamba/meta.yaml @@ -39,12 +39,14 @@ about: home: "https://github.com/biod/sambamba" doc_url: "https://lomereiter.github.io/sambamba/docs/sambamba-view.html" dev_url: "https://github.com/biod/sambamba" - license: GPL2 + license: GPL-2.0-only license_family: GPL2 license_file: LICENSE summary: "Tools for working with SAM/BAM data" extra: + additional-platforms: + - linux-aarch64 identifiers: - doi:10.1093/bioinformatics/btv098 recipe-maintainers: From 756f7bb954bfa28553217e10eab2314c9142788b Mon Sep 17 00:00:00 2001 From: Tom Harrop Date: Thu, 4 Jul 2024 21:36:46 +1000 Subject: [PATCH 0340/1514] Update iqtree to 2.3.5 (#48929) * bump iqtree * iqtree: Temporarily use large VM for Linux ARM64 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov --- recipes/iqtree/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/iqtree/meta.yaml b/recipes/iqtree/meta.yaml index 2b9c52c9fef99..87081d98ed2fa 100644 --- a/recipes/iqtree/meta.yaml +++ b/recipes/iqtree/meta.yaml @@ -1,13 +1,13 @@ {% set name = "IQTREE" %} -{% set version = "2.3.4" %} -{% set sha256 = "3c348a937593262c829d47f4a63cf7de1c8230efcdccccc0885a1826eed66172" %} +{% set version = "2.3.5" %} +{% set sha256 = "8e323e0b7c46e97901d3500f11e810703e0e5d25848188047eca9602d03fa6b1" %} package: name: {{ name|lower }} version: {{ version | replace("-", "_") }} build: - number: 2 + number: 0 run_exports: - {{ pin_subpackage('iqtree', max_pin="x") }} From 542c7fc824ba9c8aed3606e9b5be391d4209c4aa Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 4 Jul 2024 07:43:46 -0400 Subject: [PATCH 0341/1514] Update submission-excel2xml to 2.9.1 (#48934) --- recipes/submission-excel2xml/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/submission-excel2xml/meta.yaml b/recipes/submission-excel2xml/meta.yaml index 82d05fea366a5..7a4a792cfebf9 100644 --- a/recipes/submission-excel2xml/meta.yaml +++ b/recipes/submission-excel2xml/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.9" %} +{% set version = "2.9.1" %} package: name: submission-excel2xml @@ -12,7 +12,7 @@ build: source: url: https://github.com/ddbj/submission-excel2xml/archive/refs/tags/v{{ version }}.tar.gz - sha256: 93d5c98a562097c6dd3468f006e62901382925156f9d8c40fccd077fc0ce1a01 + sha256: 2dc560c4e602563483489b18fc45106a2e02c7ffa1636ed801f43fdc47639d45 requirements: host: From fa55acfa697c51c584ddbd6661d7c416b1d944b9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 4 Jul 2024 07:44:09 -0400 Subject: [PATCH 0342/1514] Update snakemake-interface-executor-plugins to 9.2.0 (#48935) --- recipes/snakemake-interface-executor-plugins/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-interface-executor-plugins/meta.yaml b/recipes/snakemake-interface-executor-plugins/meta.yaml index fd5036d4ce8bb..8f3da6758ad78 100644 --- a/recipes/snakemake-interface-executor-plugins/meta.yaml +++ b/recipes/snakemake-interface-executor-plugins/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-interface-executor-plugins" %} -{% set version = "9.1.1" %} +{% set version = "9.2.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_interface_executor_plugins-{{ version }}.tar.gz - sha256: 357c3b1d633b26241693a4e5ce291fbe198c03a54a30acfa86dd97dc252fa2c6 + sha256: 67feaf438a0b8b041ec5f1a1dd859f729036c70c07c9fdad895135f5b949e40a build: noarch: python From 7d389b9031aaedc6d1e8b2a04f920886bae6072e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 4 Jul 2024 08:38:33 -0400 Subject: [PATCH 0343/1514] Update snakemake to 8.15.0 (#48936) --- recipes/snakemake/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake/meta.yaml b/recipes/snakemake/meta.yaml index 301afac503d3c..38120a64bc824 100644 --- a/recipes/snakemake/meta.yaml +++ b/recipes/snakemake/meta.yaml @@ -1,7 +1,7 @@ # Attention: when upgrading the version, please compare below dependencies with # https://github.com/snakemake/snakemake/blob/{version}/setup.cfg {% set name = "snakemake" %} -{% set version = "8.14.0" %} +{% set version = "8.15.0" %} package: name: {{ name }} @@ -9,7 +9,7 @@ package: source: url: https://pypi.io/packages/source/s/{{ name }}/snakemake-{{ version }}.tar.gz - sha256: f7ea6ce0fc7544ef4329fa808d6e2e1c1b3adff2b4658dcc096a41741a7e8d81 + sha256: d05db7b52817ab9390a19f2e8f70ee556c89dfb74aea9bad0f709bca3b6580ca build: number: 0 From 7f4b0684539ef913f5f4a2984fbcaeed6fc09f52 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Thu, 4 Jul 2024 16:34:33 +0200 Subject: [PATCH 0344/1514] Fix ribotaper readlink bug (#48937) * Fix ribotaper readline bug, add aarch64 build Fix #48920 * f * f * f * f --- recipes/ribotaper/meta.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/recipes/ribotaper/meta.yaml b/recipes/ribotaper/meta.yaml index 0c54ba619072e..491b1f4c1fc18 100644 --- a/recipes/ribotaper/meta.yaml +++ b/recipes/ribotaper/meta.yaml @@ -8,12 +8,14 @@ source: build: skip: True # [not linux] - number: 6 + number: 7 + run_exports: + - {{ pin_subpackage('ribotaper', max_pin='x') }} requirements: build: - - make - {{ compiler('c') }} + - make host: - bedtools ==2.17.0 - samtools @@ -34,6 +36,7 @@ requirements: - r-seqinr - r-multitaper - r-xnomial + - readline test: commands: From d32ae5638ec61cbd7995550b38c3a0fb9b5dd321 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 4 Jul 2024 14:08:35 -0400 Subject: [PATCH 0345/1514] Update zol to 1.4.7 (#48902) * Update zol to 1.4.6 * Update meta.yaml * Update zol to 1.4.7 * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml --------- Co-authored-by: Rauf Salamzade --- recipes/zol/meta.yaml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/recipes/zol/meta.yaml b/recipes/zol/meta.yaml index c67937d62bf00..8b410a2c7ad91 100644 --- a/recipes/zol/meta.yaml +++ b/recipes/zol/meta.yaml @@ -1,5 +1,5 @@ {% set name = "zol" %} -{% set version = "1.4.5" %} +{% set version = "1.4.7" %} package: name: {{ name|lower }} @@ -7,11 +7,11 @@ package: source: url: https://github.com/Kalan-Lab/zol/archive/refs/tags/v{{ version }}.tar.gz - sha256: 316a7703d1f2bd027a0907652712dda84bfdcd672133665ddbda3dff5976a2e5 + sha256: 9ef285ddbdbea6e63ed9fd4c4e09985fb969a377155d4544e7bd5914b110bd2e build: - number: 1 - skip: True # [py <= 39] + number: 0 + skip: True # [py <= 311] run_exports: - {{ pin_subpackage('zol', max_pin='x.x') }} @@ -24,15 +24,16 @@ requirements: - pip - axel run: - - python =3.10 - - biopython =1.79 + - python =3.12 + - r-base + - biopython - muscle - setuptools - mcl - pal2nal >=14.1 - hmmer >=3.0.0 - - fasttree >=2.0.0 - - diamond =2.0.15 + - fasttree + - diamond - pyrodigal - prodigal - prodigal-gv @@ -41,11 +42,10 @@ requirements: - xlsxwriter >=3.0.3 - scikit-learn - axel - - hyphy =2.5.14 - - pomegranate >0.13,<=0.14.8 + - hyphy >=2.5.14 + - pomegranate >=1.0.0 - cd-hit - ncbi-genome-download - - r-base - r-ggplot2 - r-cowplot - r-gggenes From 51c011e278c394fe045dad8f61704e8500129790 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 4 Jul 2024 19:10:19 -0400 Subject: [PATCH 0346/1514] Update zol to 1.4.8 (#48951) --- recipes/zol/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/zol/meta.yaml b/recipes/zol/meta.yaml index 8b410a2c7ad91..7bd43afd0cba9 100644 --- a/recipes/zol/meta.yaml +++ b/recipes/zol/meta.yaml @@ -1,5 +1,5 @@ {% set name = "zol" %} -{% set version = "1.4.7" %} +{% set version = "1.4.8" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Kalan-Lab/zol/archive/refs/tags/v{{ version }}.tar.gz - sha256: 9ef285ddbdbea6e63ed9fd4c4e09985fb969a377155d4544e7bd5914b110bd2e + sha256: 9991713dd8f05638f0f50362be4b79fd8411fa62a037475768d0737927a257b3 build: number: 0 From 03e6ffa4c1d34d425b559b2f85bbd3e98c1e68d2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 5 Jul 2024 01:06:02 -0400 Subject: [PATCH 0347/1514] Update skani to 0.2.2 (#48955) --- recipes/skani/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/skani/meta.yaml b/recipes/skani/meta.yaml index 45491e5f892be..25c158e4324c6 100644 --- a/recipes/skani/meta.yaml +++ b/recipes/skani/meta.yaml @@ -1,17 +1,17 @@ -{% set version = "0.2.1" %} +{% set version = "0.2.2" %} package: name: skani version: {{ version }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('skani', max_pin="x") }} source: url: https://github.com/bluenote-1577/skani/archive/v{{ version }}.tar.gz - sha256: 0516323d2ccc90889206b215f67e84bfa8fc9c4233608113508f27c1771bd126 + sha256: e047d52b9f753625eff480fe90f1abb68f82cc6892d9d1910b18bfcedbfc0b9d requirements: build: From b18fbe73978bb60794aff5a7d2a505d91e9d544a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 5 Jul 2024 01:06:57 -0400 Subject: [PATCH 0348/1514] Update bigtools to 0.5.0 (#48953) --- recipes/bigtools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/bigtools/meta.yaml b/recipes/bigtools/meta.yaml index 4544a87e1ee32..050a3e268e854 100644 --- a/recipes/bigtools/meta.yaml +++ b/recipes/bigtools/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.4.3" %} +{% set version = "0.5.0" %} package: name: bigtools @@ -11,7 +11,7 @@ build: source: url: https://github.com/jackh726/bigtools/archive/refs/tags/v{{ version }}.tar.gz - sha256: "cb9a11e4efe10b103f65c24bba19980ba3df1e57c9bbff8aac34d74fa3a45e8a" + sha256: "f17f8129ea9bb3cdde5ce7ecc2465bd3a228409eb10620594911de22c86ba4ef" requirements: build: From 24908276f2c1fc0c91d24d05390124614ebb707f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 5 Jul 2024 01:07:19 -0400 Subject: [PATCH 0349/1514] Update oakvar to 2.11.3 (#48952) --- recipes/oakvar/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/oakvar/meta.yaml b/recipes/oakvar/meta.yaml index 2cb2f69006dcd..7f05f8d15b67a 100644 --- a/recipes/oakvar/meta.yaml +++ b/recipes/oakvar/meta.yaml @@ -1,6 +1,6 @@ {% set name = "OakVar" %} -{% set version = "2.11.2" %} -{% set sha256 = "cbdbb57b8df6815b121fca4ef17bff8360ac9c3e00d8799aa342ffcfef1a8fa3" %} +{% set version = "2.11.3" %} +{% set sha256 = "2d79d3b313338ad22ba32588261e0795567c9687b951746472ca46e8ee6e61dd" %} package: name: {{ name|lower }} From 47688f59098e807fcee108bcdb89cf6864198942 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 5 Jul 2024 01:07:44 -0400 Subject: [PATCH 0350/1514] Update handyreadgenotyper to 0.1.20 (#48950) --- recipes/handyreadgenotyper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/handyreadgenotyper/meta.yaml b/recipes/handyreadgenotyper/meta.yaml index f4dcf18a067e7..6710fdea12746 100644 --- a/recipes/handyreadgenotyper/meta.yaml +++ b/recipes/handyreadgenotyper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "HandyReadGenotyper" %} -{% set version = "0.1.18" %} +{% set version = "0.1.20" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/AntonS-bio/HandyReadGenotyper/archive/{{ version }}.tar.gz - sha256: 70bac2fa184f770066952629975f7721cd601850c1572a55bd3189608767a9ea + sha256: 7e20556165a279f28f5862f38ef681d71b2a6176c72398b99dbce7089820b14b build: number: 0 From 9e64bba0d4f68d1f384d24b3f3d091bf0ab63408 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Fri, 5 Jul 2024 07:08:39 +0200 Subject: [PATCH 0351/1514] fix: readlink is in coreutils contains readlink, not readline (#48946) --- recipes/ribotaper/LICENSE | 641 ++++++++++++++++++++++++++++++++++++ recipes/ribotaper/meta.yaml | 7 +- 2 files changed, 645 insertions(+), 3 deletions(-) create mode 100644 recipes/ribotaper/LICENSE diff --git a/recipes/ribotaper/LICENSE b/recipes/ribotaper/LICENSE new file mode 100644 index 0000000000000..fc0e482aaad2e --- /dev/null +++ b/recipes/ribotaper/LICENSE @@ -0,0 +1,641 @@ +RiboTaper is a method for defining traslated ORFs using +Ribosome Profiling data. + +Copyright (C) 2015 Lorenzo Calviello + +RiboTaper is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +RiboTaper is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with RiboTaper. If not, see . + +Contact: Lorenzo.Calviello@mdc-berlin.de + + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + +Copyright (C) 2007 Free Software Foundation, Inc. +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. + + Preamble + +The GNU General Public License is a free, copyleft license for +software and other kinds of works. + +The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + +To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + +For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + +Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + +For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + +Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + +Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + +The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + +0. Definitions. + +"This License" refers to version 3 of the GNU General Public License. + +"Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + +"The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + +To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + +A "covered work" means either the unmodified Program or a work based +on the Program. + +To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + +To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + +An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + +1. Source Code. + +The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + +A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + +The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + +The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + +The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + +The Corresponding Source for a work in source code form is that +same work. + +2. Basic Permissions. + +All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + +You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + +Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + +3. Protecting Users' Legal Rights From Anti-Circumvention Law. + +No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + +When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + +4. Conveying Verbatim Copies. + +You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + +You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + +5. Conveying Modified Source Versions. + +You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + +A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + +6. Conveying Non-Source Forms. + +You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + +A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + +A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + +"Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + +If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + +The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + +Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + +7. Additional Terms. + +"Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + +When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + +Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + +All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + +If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + +Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + +8. Termination. + +You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + +However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + +Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + +Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + +9. Acceptance Not Required for Having Copies. + +You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + +10. Automatic Licensing of Downstream Recipients. + +Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + +An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + +You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + +11. Patents. + +A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + +A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + +Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + +In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + +If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + +If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + +A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + +Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + +12. No Surrender of Others' Freedom. + +If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + +13. Use with the GNU Affero General Public License. + +Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + +14. Revised Versions of this License. + +The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + +If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + +Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + +15. Disclaimer of Warranty. + +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +16. Limitation of Liability. + +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + +17. Interpretation of Sections 15 and 16. + +If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS diff --git a/recipes/ribotaper/meta.yaml b/recipes/ribotaper/meta.yaml index 491b1f4c1fc18..719b76d9d487e 100644 --- a/recipes/ribotaper/meta.yaml +++ b/recipes/ribotaper/meta.yaml @@ -8,7 +8,7 @@ source: build: skip: True # [not linux] - number: 7 + number: 8 run_exports: - {{ pin_subpackage('ribotaper', max_pin='x') }} @@ -28,6 +28,7 @@ requirements: - r-xnomial run: - bedtools ==2.17.0 + - coreutils - samtools - r-iterators - r-foreach @@ -36,7 +37,6 @@ requirements: - r-seqinr - r-multitaper - r-xnomial - - readline test: commands: @@ -46,7 +46,8 @@ test: about: home: https://ohlerlab.mdc-berlin.de/software/RiboTaper_126/ - license: GPL + license: GPL-3.0-or-later + license_file: LICENSE summary: 'RiboTaper is a new analysis pipeline for Ribosome Profiling (Ribo-seq) experiments, which exploits the triplet periodicity of From 1ce31f1dcfbe45f696c35e6b69a97493066ae964 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 5 Jul 2024 01:09:06 -0400 Subject: [PATCH 0352/1514] Update snakemake to 8.15.1 (#48945) --- recipes/snakemake/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake/meta.yaml b/recipes/snakemake/meta.yaml index 38120a64bc824..ff49e71b157ff 100644 --- a/recipes/snakemake/meta.yaml +++ b/recipes/snakemake/meta.yaml @@ -1,7 +1,7 @@ # Attention: when upgrading the version, please compare below dependencies with # https://github.com/snakemake/snakemake/blob/{version}/setup.cfg {% set name = "snakemake" %} -{% set version = "8.15.0" %} +{% set version = "8.15.1" %} package: name: {{ name }} @@ -9,7 +9,7 @@ package: source: url: https://pypi.io/packages/source/s/{{ name }}/snakemake-{{ version }}.tar.gz - sha256: d05db7b52817ab9390a19f2e8f70ee556c89dfb74aea9bad0f709bca3b6580ca + sha256: 20f84a63a2cf254a2ca6c6c2e02ee351693e41787e0ed9b73f0e17ee1c91b8f8 build: number: 0 From 654afe20f1bbebef49de6d1ecb0f489195fb0412 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 5 Jul 2024 01:09:32 -0400 Subject: [PATCH 0353/1514] Update snakemake-interface-storage-plugins to 3.2.3 (#48944) --- recipes/snakemake-interface-storage-plugins/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-interface-storage-plugins/meta.yaml b/recipes/snakemake-interface-storage-plugins/meta.yaml index f837051ef43ce..377dfe94187ab 100644 --- a/recipes/snakemake-interface-storage-plugins/meta.yaml +++ b/recipes/snakemake-interface-storage-plugins/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-interface-storage-plugins" %} -{% set version = "3.2.2" %} +{% set version = "3.2.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_interface_storage_plugins-{{ version }}.tar.gz - sha256: fc8a70ef5b1fd054bc64270925228e2054158da9bcf8fa8bd4be36d93a82678b + sha256: b5be7c7dd0b4ec283bfc24f56070aa4047f67de44d8bc64c7aa9bf6ee590b27d build: noarch: python From 6beaef95724163cc80aabb3a2f74173e6da8d917 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 5 Jul 2024 01:09:57 -0400 Subject: [PATCH 0354/1514] Update snakemake-storage-plugin-fs to 1.0.5 (#48942) --- recipes/snakemake-storage-plugin-fs/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-fs/meta.yaml b/recipes/snakemake-storage-plugin-fs/meta.yaml index 0790f6203c2b5..579a4f5664acd 100644 --- a/recipes/snakemake-storage-plugin-fs/meta.yaml +++ b/recipes/snakemake-storage-plugin-fs/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-fs" %} -{% set version = "1.0.4" %} +{% set version = "1.0.5" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_fs-{{ version }}.tar.gz - sha256: d9467d2d8f00689c6af6478f67f693373ce3cb0404d10c6d783997465d5110a9 + sha256: 4f7ce1bf16d10510f8f4a2fde2ae22d047131020bd5efa603132dabfc85f444b build: noarch: python From 3e1bed487d66d25bf98a24337a5de3b3bd191b25 Mon Sep 17 00:00:00 2001 From: Kez Cleal <42997789+kcleal@users.noreply.github.com> Date: Fri, 5 Jul 2024 08:14:02 +0100 Subject: [PATCH 0355/1514] dysgu 1.6.4 Update meta.yaml (#48933) * dysgu 1.6.4 Update meta.yaml * dysgu 1.6.4 Update meta.yaml * Reset the build number * dysgu 1.6.4 Update meta.yaml * Update meta.yaml * Update meta.yaml * Update recipes/dysgu/meta.yaml Co-authored-by: Martin Grigorov --------- Co-authored-by: Martin Grigorov --- recipes/dysgu/meta.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/recipes/dysgu/meta.yaml b/recipes/dysgu/meta.yaml index 2837afb3d0291..06a1bbf643e3b 100644 --- a/recipes/dysgu/meta.yaml +++ b/recipes/dysgu/meta.yaml @@ -1,6 +1,6 @@ {% set name = "dysgu" %} -{% set version = "1.6.2" %} -{% set sha256hash = "6db67f3abd45ca60f768adc9e154a879e604496909e9d243efd55513d6009910" %} +{% set version = "1.6.4" %} +{% set sha256hash = "28b3ef1f84c5a33160c44ec095df7e6c14dfdede6362dc65068f5fb34817c4fd" %} package: name: {{ name|lower }} @@ -24,8 +24,7 @@ requirements: - {{ compiler('c') }} - {{ compiler('cxx') }} host: - - python >=3.7 - - setuptools >=63.0 + - python - cython - htslib >=1.12 - numpy >=1.18 @@ -45,7 +44,7 @@ requirements: - sortedcontainers - click >=8.0 run: - - python >=3.7 + - python - numpy >=1.18 - scipy >1.7 - pandas >=1.2 @@ -56,7 +55,7 @@ requirements: - lightgbm - zlib - click >=8.0 - - pysam >=0.19 + - pysam >=0.22 - libcurl - openssl - bzip2 @@ -81,6 +80,7 @@ about: license: MIT license_family: MIT license_file: LICENSE.md + dev_url: https://github.com/kcleal/dysgu extra: container: From 5d38cabce8bf7fec72ba34f3feede10e224a4d74 Mon Sep 17 00:00:00 2001 From: Zijie Jiang Date: Fri, 5 Jul 2024 15:22:01 +0800 Subject: [PATCH 0356/1514] add cpstools recipes (#48957) * add cpstools recipes * update cpstools recipes * update cpstools recipes * update cpstools recipes * update cpstools recipes * update cpstools recipes * update cpstools recipes * update cpstools recipes --------- Co-authored-by: Jwindler <1033199817@qq.com> --- recipes/cpstools/build.sh | 3 +++ recipes/cpstools/meta.yaml | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 recipes/cpstools/build.sh create mode 100644 recipes/cpstools/meta.yaml diff --git a/recipes/cpstools/build.sh b/recipes/cpstools/build.sh new file mode 100644 index 0000000000000..04547dc83fe20 --- /dev/null +++ b/recipes/cpstools/build.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +$PYTHON setup.py install --single-version-externally-managed --record=record.txt \ No newline at end of file diff --git a/recipes/cpstools/meta.yaml b/recipes/cpstools/meta.yaml new file mode 100644 index 0000000000000..0004e60bd506b --- /dev/null +++ b/recipes/cpstools/meta.yaml @@ -0,0 +1,37 @@ +package: + name: cpstools + version: 1.0.0 + +source: + url: "https://files.pythonhosted.org/packages/2b/97/6614cf90ac95ac650bd2561405c2dbb69264548e7b3a5e7b0a8c2c86a07a/cpstools-1.0.1.tar.gz" + sha256: 7aafded5255edd3be05b1ba4eff94a74f12d37c4b59a177a2696cea90985b35a + +build: + number: 0 + noarch: python + run_exports: + - {{ pin_subpackage('cpstools', max_pin="x") }} + entry_points: + - cpstools = cpstools.cmdline:main + +requirements: + build: + - python >=3.8 + - setuptools + run: + - python >=3.8 + - numpy >=1.24 + - biopython >=1.83 + +test: + imports: + - cpstools + + commands: + - cpstools -h + +about: + home: https://github.com/Xwb7533/CPStools + license: MIT + summary: "CPStools is a package for analyzing chloroplast genome sequences." + description: "CPStools is a package for analyzing chloroplast genome sequences." From d3e019b3f796b11e75d7e4670428ac106ac97e43 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 5 Jul 2024 03:34:47 -0400 Subject: [PATCH 0357/1514] Update submission-excel2xml to 3.0 (#48959) --- recipes/submission-excel2xml/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/submission-excel2xml/meta.yaml b/recipes/submission-excel2xml/meta.yaml index 7a4a792cfebf9..ca1e3897af0c0 100644 --- a/recipes/submission-excel2xml/meta.yaml +++ b/recipes/submission-excel2xml/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.9.1" %} +{% set version = "3.0" %} package: name: submission-excel2xml @@ -12,7 +12,7 @@ build: source: url: https://github.com/ddbj/submission-excel2xml/archive/refs/tags/v{{ version }}.tar.gz - sha256: 2dc560c4e602563483489b18fc45106a2e02c7ffa1636ed801f43fdc47639d45 + sha256: 57346c7adf11191e3163036595de96cd840978c384e851f9035cbd6f6f196f1c requirements: host: From 8820eb89a6805ca584a92552b38fda2b8592333f Mon Sep 17 00:00:00 2001 From: clementcoclet <94937696+clementcoclet@users.noreply.github.com> Date: Fri, 5 Jul 2024 00:47:12 -0700 Subject: [PATCH 0358/1514] MViP (#48948) * mvip_recipes * update_meta.yaml * mvip_new_version_release * build_number_Update_meta_yaml * mvip v.1.1.1 minor issues * Reset the build number --------- Co-authored-by: Clement Coclet - 067048 Co-authored-by: Martin Grigorov --- recipes/mvip/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/mvip/meta.yaml b/recipes/mvip/meta.yaml index 94f524761e912..f0f8bbd911427 100644 --- a/recipes/mvip/meta.yaml +++ b/recipes/mvip/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mvip" %} -{% set version = "1.1.0" %} +{% set version = "1.1.1" %} package: name: "{{ name|lower }}" @@ -7,10 +7,10 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: ee9ea0d29e1d98ccdc7336ab9e41775e1dc0e1e9853d6f42b09bbb2d2f52b28d + sha256: 53e82ef6b4ffddba5c14d19d267c148a6d41432c5833a2b4750bb4ccdadcf0f3 build: - number: 1 + number: 0 noarch: python script: "{{ PYTHON }} -m pip install . --no-deps -vv" run_exports: @@ -25,7 +25,7 @@ requirements: - python >=3.7 - tqdm - importlib_resources - - genomad >=1.5 + - genomad ==1.7.4 - pandas - checkv - bowtie2 From aceaa32a1ebe7cd9db7aa7d4a21ca244787a48af Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 5 Jul 2024 08:30:24 -0400 Subject: [PATCH 0359/1514] Update harmonypy to 0.0.10 (#48949) * Update harmonypy to 0.0.10 * add missing dependency * hatchling is a build dep --------- Co-authored-by: Jonathan Manning --- recipes/harmonypy/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/harmonypy/meta.yaml b/recipes/harmonypy/meta.yaml index fa2d43585bcc3..d5200816c072c 100644 --- a/recipes/harmonypy/meta.yaml +++ b/recipes/harmonypy/meta.yaml @@ -1,5 +1,5 @@ {% set name = "harmonypy" %} -{% set version = "0.0.9" %} +{% set version = "0.0.10" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: "85bfdd4e6ec6e0fa8816a276639358d3598a40d60ba9f7a5d9dada8706be8c4d" + sha256: "27bd39a6f9ada1708ffa577e46c9b7363d1e2fd62740e477ce11fd61819a54df" build: number: 0 @@ -18,6 +18,7 @@ build: requirements: host: + - hatchling - pip - python >=3.6 run: From 7b21fc9adfd595b713b290e98d6ee8120a827926 Mon Sep 17 00:00:00 2001 From: AntonS-bio <47866509+AntonS-bio@users.noreply.github.com> Date: Fri, 5 Jul 2024 14:18:03 +0100 Subject: [PATCH 0360/1514] Update to version 0.1.21 (#48969) * Release of version 0.1.20 * Use SPDX value for the license * Update to 0.1.21 --------- Co-authored-by: Martin Grigorov --- recipes/handyreadgenotyper/meta.yaml | 29 +++++++++++++--------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/recipes/handyreadgenotyper/meta.yaml b/recipes/handyreadgenotyper/meta.yaml index 6710fdea12746..cf317d8534fd1 100644 --- a/recipes/handyreadgenotyper/meta.yaml +++ b/recipes/handyreadgenotyper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "HandyReadGenotyper" %} -{% set version = "0.1.20" %} +{% set version = "0.1.21" %} package: name: {{ name|lower }} @@ -7,25 +7,21 @@ package: source: url: https://github.com/AntonS-bio/HandyReadGenotyper/archive/{{ version }}.tar.gz - sha256: 7e20556165a279f28f5862f38ef681d71b2a6176c72398b99dbce7089820b14b + sha256: ac0f0bc3f5db78f400e67f355f5cc6de7089bf481d6c8272e42b271a571c2bed build: - number: 0 noarch: python - script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation run_exports: - - {{ pin_subpackage('handyreadgenotyper', max_pin="x.x") }} - entry_points: - - classify = classify:main - - train = train:main - - genotyper_utilities = genotyper_utilities:main + - {{ pin_subpackage('handyreadgenotyper', max_pin="x.x") }} + number: 0 requirements: host: - pip - - python >=3.8,<3.9 + - python >=3.10 run: - - python >=3.8,<3.9 + - python >=3.10 - pandas >=2.0.0 - scikit-learn >=1.3.* - pysam >=0.22.0 @@ -38,17 +34,18 @@ requirements: test: commands: - train -h + requires: + - pip about: - license: "GPL-3.0-or-later" - license_family: GPL3 + license: GPL-3.0-only license_file: LICENSE - home: "https://github.com/AntonS-bio/HandyReadGenotyper" + home: https://github.com/AntonS-bio/HandyReadGenotyper summary: 'Tool for training model and classifying reads from environmental ONT amplicon sequencing.' description: | Tool for training model and classifying reads from environmental ONT amplicon sequencing. - doc_url: "https://github.com/AntonS-bio/HandyAmpliconTool/blob/main/README.md" - dev_url: "https://github.com/AntonS-bio/HandyReadGenotyper" + doc_source_url: https://github.com/AntonS-bio/HandyAmpliconTool/blob/main/README.md + extra: recipe-maintainers: From 9e7287668e67689466af1b1d011f2eea7c1f91f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20Diaz?= Date: Fri, 5 Jul 2024 15:33:00 +0200 Subject: [PATCH 0361/1514] Update b2bTools to v3.0.7 (#48749) * Fixing versions for dependencies * Add missing license text file * Fix linting errors * Fix Pomegranate version * Update recipes/b2btools/meta.yaml * Try to fix recipe * Fix lint errors * Add py311 and p312 * Fix pandas dep * Update meta.yaml * test pandas py312 * Better recipe with test files * Fix py version * Support until py310 * New attempt * [ci skip] add build failure record for recipe recipes/b2btools * [ci skip] add build failure record for recipe recipes/b2btools * Better tags * Fix pandas * Simplify recipe --- recipes/b2btools/LICENSE | 674 ++++++++++++++++++++++++++ recipes/b2btools/meta.yaml | 146 ++---- recipes/b2btools/run_test.sh | 151 +++--- recipes/b2btools/test.msa.fasta | 23 + recipes/b2btools/test.singleseq.fasta | 23 + 5 files changed, 838 insertions(+), 179 deletions(-) create mode 100644 recipes/b2btools/LICENSE create mode 100644 recipes/b2btools/test.msa.fasta create mode 100644 recipes/b2btools/test.singleseq.fasta diff --git a/recipes/b2btools/LICENSE b/recipes/b2btools/LICENSE new file mode 100644 index 0000000000000..e72bfddabc15b --- /dev/null +++ b/recipes/b2btools/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. \ No newline at end of file diff --git a/recipes/b2btools/meta.yaml b/recipes/b2btools/meta.yaml index ee132b4d4c57d..de3f610bf4e45 100644 --- a/recipes/b2btools/meta.yaml +++ b/recipes/b2btools/meta.yaml @@ -1,5 +1,5 @@ -{% set name = "b2bTools" %} -{% set version = "3.0.6" %} +{% set name = "b2btools" %} +{% set version = "3.0.7" %} package: name: "{{ name|lower }}" @@ -7,128 +7,84 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 3617afcfe76cbff3a6bfad4060f962568565fb691b978f87d8db78cde97da58b + sha256: b3c9f10c10c8a12c390a79016e01b7e4d165bf1c94dce48e72d31891cb552c29 build: number: 0 - script: "{{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv" - noarch: python + skip: true # [py >= 311] entry_points: - b2bTools = b2bTools.__main__:main + - b2btools = b2bTools.__main__:main + script: "{{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv" + run_exports: + - {{ pin_subpackage('b2btools', max_pin="x.x") }} requirements: + build: + - {{ compiler('c') }} # [linux] + - {{ compiler('cxx') }} # [linux] + - clang_osx-64 # [osx] + - clangxx_osx-64 # [osx] host: - - python >=3.7,<3.10 + - python <3.11 - pip run: - - biopython ==1.81 - - certifi ==2023.5.7 - - charset-normalizer ==3.1.0 - - cycler ==0.11.0 - - exceptiongroup ==1.1.1 - - fonttools ==4.38.0 + - python <3.11 - hmmer - - idna ==3.4 - - importlib-metadata ==6.7.0 - - iniconfig ==2.0.0 - - joblib ==1.2.0 - - kiwisolver ==1.4.4 - - matplotlib-base ==3.5.3 - - networkx ==2.6.3 - - numpy ==1.21.6 #[py37] - - numpy ==1.24.4 #[py38, py39] - - packaging ==23.1 - - pandas >=1.1,<=1.2 - - pillow ==9.5.0 - - pluggy ==1.2.0 - - pomegranate ==0.14.8 - - pyparsing ==3.1.0 - - python-dateutil ==2.8.2 - - pytorch >=1.8.0 #,<1.13.1 - - pytz ==2023.3 - - PyYAML ==6.0 - - requests ==2.31.0 - - scikit-learn ==1.0.1 - - scipy ==1.10.1 - t-coffee - - threadpoolctl ==3.1.0 - - tomli ==2.0.1 - - tqdm ==4.65.0 - - typing_extensions ==4.6.3 - - urllib3 ==1.26.6 - - zipp ==3.15.0 + - biopython >=1.80,<2 # [py < 310] + - biopython >=1.83,<2 # [py >= 310] + - matplotlib-base >=3.5.3,<3.6 + - numpy ==1.21.6 # [py == 37] + - numpy ==1.24.4 # [py == 38] + - numpy >=1.21.6,<1.27 # [py >= 39] + - pandas >=1.1,<1.2 # [py < 38] + - pandas >=1.5.3,<1.6 # [py >= 38] + - pomegranate >=0.14.8,<=0.14.9 + - requests >=2.0 # [py <= 39] + - requests >=2.31.0,<2.32 # [py > 39] + - scikit-learn ==1.0.2 # [py <= 310] + - scipy ==1.7.3 # [py < 38] + - scipy ==1.10.1 # [py >= 38 and py < 310] + - scipy ==1.12.0 # [py >= 310] + - pytorch >=1.11.0,<=1.13.1 # [py <= 310] + - urllib3 >=1.26.6,<1.27 test: imports: - b2bTools - - b2bTools.general - - b2bTools.general.bmrb - - b2bTools.general.ccpn - - b2bTools.general.ccpn.format - - b2bTools.general.ccpn.format.general - - b2bTools.general.ccpn.format.nmrStar - - b2bTools.general.ccpn.general - - b2bTools.general.ccpn.universal - - b2bTools.general.parsers - - b2bTools.multipleSeq - - b2bTools.nmr - - b2bTools.nmr.shiftCrypt - - b2bTools.nmr.shiftCrypt.models - - b2bTools.nmr.shiftCrypt.shiftcrypt_pkg - - b2bTools.singleSeq - - b2bTools.singleSeq.Agmata - - b2bTools.singleSeq.Agmata.bin - - b2bTools.singleSeq.Agmata.marshalled - - b2bTools.singleSeq.Agmata.sources - - b2bTools.singleSeq.DisoMine - - b2bTools.singleSeq.DisoMine.vector_builder - - b2bTools.singleSeq.DisoMine.vector_builder.psipred - - b2bTools.singleSeq.DisoMine.vector_builder.psipred.bin - - b2bTools.singleSeq.DisoMine.vector_builder.psipred.bin.linux - - b2bTools.singleSeq.DisoMine.vector_builder.psipred.bin.osx - - b2bTools.singleSeq.DisoMine.vector_builder.psipred.data - - b2bTools.singleSeq.DynaMine - - b2bTools.singleSeq.DynaMine.models - - b2bTools.singleSeq.DynaMine.models.backbone - - b2bTools.singleSeq.DynaMine.models.coil - - b2bTools.singleSeq.DynaMine.models.helix - - b2bTools.singleSeq.DynaMine.models.ppII - - b2bTools.singleSeq.DynaMine.models.sheet - - b2bTools.singleSeq.DynaMine.models.sidechain - - b2bTools.singleSeq.EFoldMine - - b2bTools.singleSeq.EFoldMine.models - - b2bTools.singleSeq.PSPer - - b2bTools.singleSeq.PSPer.hmmer_research - - b2bTools.singleSeq.PSPer.marshalled - - b2bTools.singleSeq.PSPer.source - b2bTools.wrapper_source - commands: - - b2bTools --help - - b2bTools --version + files: + - test.singleseq.fasta + - test.msa.fasta about: - home: "https://bio2byte.be/" + home: "https://bio2byte.be/b2btools" license: 'GNU General Public License v3 (GPLv3)' license_family: GPL3 - license_file: - summary: "bio2Byte software suite to predict protein biophysical properties from their amino-acid sequences" + license_file: LICENSE + summary: "The bio2Byte software suite to predict protein biophysical properties" description: | This package provides you with structural predictions for protein sequences made by the Bio2Byte group which researches the relation between protein sequence and biophysical behavior. + List of available predictors: - - Dynamine: Fast predictor of protein backbone dynamics using only sequence information as input. The version here also predicts side-chain dynamics and secondary structure predictors using the same principle. - - Disomine: Predicts protein disorder with recurrent neural networks not directly from the amino acid sequence, but instead from more generic predictions of key biophysical properties, here protein dynamics, secondary structure, and early folding. - - EfoldMine: Predicts from the primary amino acid sequence of a protein, which amino acids are likely involved in early folding events. - - AgMata: Single-sequence-based predictor of protein regions that are likely to cause beta-aggregation. - - PSPer: PSP (Phase Separating Protein) predicts whether a protein is likely to phase-separate with a particular mechanism involving RNA interacts (FUS-like proteins). - doc_url: https://bio2byte.be/b2btools/package-documentation - dev_url: https://pypi.org/project/b2bTools/ + 1. Dynamine: Fast predictor of protein backbone dynamics using only sequence information as input. The version here also predicts side-chain dynamics and secondary structure predictors using the same principle. + 2. Disomine: Predicts protein disorder with recurrent neural networks not directly from the amino acid sequence, but instead from more generic predictions of key biophysical properties, here protein dynamics, secondary structure, and early folding. + 3. EfoldMine: Predicts from the primary amino acid sequence of a protein, which amino acids are likely involved in early folding events. + 4. AgMata: Single-sequence-based predictor of protein regions that are likely to cause beta-aggregation. + 5. PSPer: PSP (Phase Separating Protein) predicts whether a protein is likely to phase-separate with a particular mechanism involving RNA interacts (FUS-like proteins). + 6. ShiftCrypt: Auto-encoding NMR chemical shifts from their native vector space to a residue-level biophysical index. + doc_url: https://pypi.org/project/b2bTools/ + dev_url: http://bitbucket.org/bio2byte/b2btools_releases extra: - author: - - Wim Vranken + author: Wim Vranken recipe-maintainers: - Adrián Díaz (@agdiaz) - Jose Gavaldá-García (@GavaldaGarcia) maintainers: - Adrián Díaz (@agdiaz) - Jose Gavaldá-García (@GavaldaGarcia) + identifiers: + - doi:10.48550/arXiv.2405.02136 # bioRxiv preprint + - biotools:b2btools diff --git a/recipes/b2btools/run_test.sh b/recipes/b2btools/run_test.sh index 040ee3b063011..a3e98342a187b 100755 --- a/recipes/b2btools/run_test.sh +++ b/recipes/b2btools/run_test.sh @@ -4,74 +4,54 @@ # - https://bioconda.github.io/contributor/building-locally.html # - https://docs.openfree.energy/en/stable/installation.html -cat <> ./input_example.fasta ->SEQ_1 -MEDLNVVDSINGAGSWLVANQALLLSYAVNIVAALAIIIVGLIIARMISNAVNRLMISRK - ->SEQ_2 -EPVRRNEFIIGVAYDSDIDQVKQILTNIIQSEDRILKDREMTVRLNELGASSINFVVRVW -EOT - -cat <> ./small_alignment.clustal -CLUSTAL O(1.2.4) multiple sequence alignment - - -SEQ_1 -VYVGNLGNNG 10 -SEQ_2 RVRCGCLTRG- 10 - * * * .. -EOT - print_message() { - current_time=$(date +"%T") - echo "[$current_time - b2bTools] run_test.sh: $1" + current_time=$(date +"%Y-%m-%d %T") # Include date and time + yellow='\033[1;33m' + no_color='\033[0m' + echo -e "${yellow}[$current_time - b2bTools] run_test.sh: $1${no_color}" } preconditions() { - print_message "Testing HMMER dependencies" + print_message "0.1) Testing HMMER installation" + print_message "0.1.a) Testing HMMER installation: hmmalign" hmmalign -h + + print_message "0.1.b) Testing HMMER installation: hmmsearch" hmmsearch -h - print_message "Testing T-Coffee dependencies" + print_message "0.2) Testing T-Coffee installation" t_coffee --help - print_message "Testing b2bTools itself" - b2bTools -h + print_message "0.3) Testing b2bTools itself" + b2bTools --help } postconditions() { - print_message "Removing testing files" - - rm ./input_example.fasta ./small_alignment.clustal + print_message "Nothing to do actually." } scenario_single_seq_without_agmata_psper() { print_message "1.1) Testing b2bTools for Single Seq mode without AgMata nor PSPer" - # Check if the status code is non-zero and exit with an error code - if [ $status -ne 0 ]; then - echo "Error: b2bTools command failed with status code $status" - exit $status - fi - python -m b2bTools \ --dynamine \ --disomine \ --efoldmine \ - --input_file ./input_example.fasta \ - --output_json_file ./input_example.fasta.json \ - --output_tabular_file ./input_example.fasta.csv \ - --metadata_file ./input_example.fasta.meta.csv - status=$? + --input_file ./test.singleseq.fasta \ + --output_json_file ./test.singleseq.fasta.json \ + --output_tabular_file ./test.singleseq.fasta.csv \ + --metadata_file ./test.singleseq.fasta.meta.csv + b2bTools_command_status=$? # Check if the status code is non-zero and exit with an error code - if [ $status -ne 0 ]; then + if [ "$b2bTools_command_status" -ne 0 ]; then print_message "1.1) Error: b2bTools command failed with status code $status" exit $status fi # Validate the presence and content of output files - files=("input_example.fasta.json" "input_example.fasta.csv" "input_example.fasta.meta.csv") + files=("test.singleseq.fasta.json" "test.singleseq.fasta.csv" "test.singleseq.fasta.meta.csv") for file in "${files[@]}"; do if [ ! -f "$file" ]; then print_message "1.1) Error: Output file $file not found" @@ -101,20 +81,20 @@ scenario_single_seq_only_psper() { python -m b2bTools \ --psper \ - --input_file ./input_example.fasta \ - --output_json_file ./input_example.fasta.json \ - --output_tabular_file ./input_example.fasta.csv \ - --metadata_file ./input_example.fasta.meta.csv - status=$? + --input_file ./test.singleseq.fasta \ + --output_json_file ./test.singleseq.fasta.json \ + --output_tabular_file ./test.singleseq.fasta.csv \ + --metadata_file ./test.singleseq.fasta.meta.csv + b2bTools_command_status=$? # Check if the status code is non-zero and exit with an error code - if [ $status -ne 0 ]; then + if [ "$b2bTools_command_status" -ne 0 ]; then print_message "1.2) Error: b2bTools command failed with status code $status" exit $status fi # Validate the presence and content of output files - files=("input_example.fasta.json" "input_example.fasta.csv" "input_example.fasta.meta.csv") + files=("test.singleseq.fasta.json" "test.singleseq.fasta.csv" "test.singleseq.fasta.meta.csv") for file in "${files[@]}"; do if [ ! -f "$file" ]; then print_message "1.2)Error: Output file $file not found" @@ -144,20 +124,20 @@ scenario_single_seq_only_agmata() { python -m b2bTools \ --agmata \ - --input_file ./input_example.fasta \ - --output_json_file ./input_example.fasta.json \ - --output_tabular_file ./input_example.fasta.csv \ - --metadata_file ./input_example.fasta.meta.csv - status=$? + --input_file ./test.singleseq.fasta \ + --output_json_file ./test.singleseq.fasta.json \ + --output_tabular_file ./test.singleseq.fasta.csv \ + --metadata_file ./test.singleseq.fasta.meta.csv + b2bTools_command_status=$? # Check if the status code is non-zero and exit with an error code - if [ $status -ne 0 ]; then + if [ "$b2bTools_command_status" -ne 0 ]; then print_message "1.3) Error: b2bTools command failed with status code $status" exit $status fi # Validate the presence and content of output files - files=("input_example.fasta.json" "input_example.fasta.csv" "input_example.fasta.meta.csv") + files=("test.singleseq.fasta.json" "test.singleseq.fasta.csv" "test.singleseq.fasta.meta.csv") for file in "${files[@]}"; do if [ ! -f "$file" ]; then print_message "1.3)Error: Output file $file not found" @@ -190,23 +170,23 @@ scenario_msa_without_agmata_psper() { --dynamine \ --disomine \ --efoldmine \ - --input_file ./small_alignment.clustal \ - --output_json_file ./small_alignment.clustal.json \ - --output_tabular_file ./small_alignment.clustal.csv \ - --metadata_file ./small_alignment.clustal.meta.csv \ - --distribution_json_file ./small_alignment.clustal.distrib.json \ - --distribution_tabular_file ./small_alignment.clustal.distrib.csv + --input_file ./test.msa.fasta \ + --output_json_file ./test.msa.fasta.json \ + --output_tabular_file ./test.msa.fasta.csv \ + --metadata_file ./test.msa.fasta.meta.csv \ + --distribution_json_file ./test.msa.fasta.distrib.json \ + --distribution_tabular_file ./test.msa.fasta.distrib.csv - status=$? + b2bTools_command_status=$? # Check if the status code is non-zero and exit with an error code - if [ $status -ne 0 ]; then + if [ "$b2bTools_command_status" -ne 0 ]; then print_message "2.1) Error: b2bTools command failed with status code $status" exit $status fi # Validate the presence and content of output files - files=("small_alignment.clustal.json" "small_alignment.clustal.csv" "small_alignment.clustal.meta.csv" "small_alignment.clustal.distrib.json" "small_alignment.clustal.distrib.csv") + files=("test.msa.fasta.json" "test.msa.fasta.csv" "test.msa.fasta.meta.csv" "test.msa.fasta.distrib.json" "test.msa.fasta.distrib.csv") for file in "${files[@]}"; do if [ ! -f "$file" ]; then print_message "2.1) Error: Output file $file not found" @@ -237,23 +217,23 @@ scenario_msa_only_psper() { python -m b2bTools \ --mode msa \ --psper \ - --input_file ./small_alignment.clustal \ - --output_json_file ./small_alignment.clustal.json \ - --output_tabular_file ./small_alignment.clustal.csv \ - --metadata_file ./small_alignment.clustal.meta.csv \ - --distribution_json_file ./small_alignment.clustal.distrib.json \ - --distribution_tabular_file ./small_alignment.clustal.distrib.csv + --input_file ./test.msa.fasta \ + --output_json_file ./test.msa.fasta.json \ + --output_tabular_file ./test.msa.fasta.csv \ + --metadata_file ./test.msa.fasta.meta.csv \ + --distribution_json_file ./test.msa.fasta.distrib.json \ + --distribution_tabular_file ./test.msa.fasta.distrib.csv - status=$? + b2bTools_command_status=$? # Check if the status code is non-zero and exit with an error code - if [ $status -ne 0 ]; then + if [ "$b2bTools_command_status" -ne 0 ]; then print_message "2.1) Error: b2bTools command failed with status code $status" exit $status fi # Validate the presence and content of output files - files=("small_alignment.clustal.json" "small_alignment.clustal.csv" "small_alignment.clustal.meta.csv" "small_alignment.clustal.distrib.json" "small_alignment.clustal.distrib.csv") + files=("test.msa.fasta.json" "test.msa.fasta.csv" "test.msa.fasta.meta.csv" "test.msa.fasta.distrib.json" "test.msa.fasta.distrib.csv") for file in "${files[@]}"; do if [ ! -f "$file" ]; then print_message "2.1) Error: Output file $file not found" @@ -280,25 +260,25 @@ scenario_msa_only_agmata() { print_message "2.2) Testing b2bTools for MSA mode with PSPer" python -m b2bTools \ - --mode msa \ - --agmata \ - --input_file ./small_alignment.clustal \ - --output_json_file ./small_alignment.clustal.json \ - --output_tabular_file ./small_alignment.clustal.csv \ - --metadata_file ./small_alignment.clustal.meta.csv \ - --distribution_json_file ./small_alignment.clustal.distrib.json \ - --distribution_tabular_file ./small_alignment.clustal.distrib.csv + --mode msa \ + --agmata \ + --input_file ./test.msa.fasta \ + --output_json_file ./test.msa.fasta.json \ + --output_tabular_file ./test.msa.fasta.csv \ + --metadata_file ./test.msa.fasta.meta.csv \ + --distribution_json_file ./test.msa.fasta.distrib.json \ + --distribution_tabular_file ./test.msa.fasta.distrib.csv - status=$? + b2bTools_command_status=$? # Check if the status code is non-zero and exit with an error code - if [ $status -ne 0 ]; then + if [ "$b2bTools_command_status" -ne 0 ]; then print_message "2.1) Error: b2bTools command failed with status code $status" exit $status fi # Validate the presence and content of output files - files=("small_alignment.clustal.json" "small_alignment.clustal.csv" "small_alignment.clustal.meta.csv" "small_alignment.clustal.distrib.json" "small_alignment.clustal.distrib.csv") + files=("test.msa.fasta.json" "test.msa.fasta.csv" "test.msa.fasta.meta.csv" "test.msa.fasta.distrib.json" "test.msa.fasta.distrib.csv") for file in "${files[@]}"; do if [ ! -f "$file" ]; then print_message "2.1) Error: Output file $file not found" @@ -321,20 +301,23 @@ scenario_msa_only_agmata() { done } -print_message "Running test scenarios" - +print_message "Running test preconditions" preconditions # Scenarios for Single Sequence input +print_message "Running test scenarios for Single Sequence input" scenario_single_seq_without_agmata_psper scenario_single_seq_only_psper scenario_single_seq_only_agmata # Scenarios for Multiple Sequence Alignment input +print_message "Running test scenarios for Multiple Sequence Alignment input" scenario_msa_without_agmata_psper scenario_msa_only_psper scenario_msa_only_agmata +print_message "Running test postconditions" postconditions print_message "All test scenarios have been executed with success" +exit 0 diff --git a/recipes/b2btools/test.msa.fasta b/recipes/b2btools/test.msa.fasta new file mode 100644 index 0000000000000..5313057d507bf --- /dev/null +++ b/recipes/b2btools/test.msa.fasta @@ -0,0 +1,23 @@ +>P01308 +MALWMRLLPLLALLALWGPDPAAAFVNQHLCGSHLVEALYLVCGERGFFYTPKTRREAED +LQVGQVELGGGPGAGSLQPL-ALEGSLQKRGIVEQCCTSICSLYQLENYCN + +>P01315 +MALWTRLLPLLALLALWAPAPAQAFVNQHLCGSHLVEALYLVCGERGFFYTPKARREAEN +PQAGAVELGGG--LGGLQAL-ALEGPPQKRGIVEQCCTSICSLYQLENYCN + +>P01317 +MALWTRLRPLLALLALWPPPPARAFVNQHLCGSHLVEALYLVCGERGFFYTPKARREVEG +PQVGALELAGGPGAGGL------EGPPQKRGIVEQCCASVCSLYQLENYCN + +>P01321 +MALWMRLLPLLALLALWAPAPTRAFVNQHLCGSHLVEALYLVCGERGFFYTPKARREVED +LQVRDVELAGAPGEGGLQPL-ALEGALQKRGIVEQCCTSICSLYQLENYCN + +>P01329 +MALWMHLLTVLALLALWGPNTGQAFVSRHLCGSNLVETLYSVCQDDGFFYIPKDRRELED +PQVEQTELGMGLGAGGLQPL-ALEMALQKRGIVDQCCTGTCTRHQLQSYCN + +>P67970 +MALWIRSLPLLALLVFSGPGTSYAAANQHLCGSHLVEALYLVCGERGFFYSPKARRDVEQ +PLVSSPLR-G---EAGVLPFQQEEYEKVKRGIVEQCCHNTCSLYQLENYCN diff --git a/recipes/b2btools/test.singleseq.fasta b/recipes/b2btools/test.singleseq.fasta new file mode 100644 index 0000000000000..ba3d60206b78e --- /dev/null +++ b/recipes/b2btools/test.singleseq.fasta @@ -0,0 +1,23 @@ +>P01308 +MALWMRLLPLLALLALWGPDPAAAFVNQHLCGSHLVEALYLVCGERGFFYTPKTRREAED +LQVGQVELGGGPGAGSLQPLALEGSLQKRGIVEQCCTSICSLYQLENYCN + +>P01315 +MALWTRLLPLLALLALWAPAPAQAFVNQHLCGSHLVEALYLVCGERGFFYTPKARREAEN +PQAGAVELGGGLGGLQALALEGPPQKRGIVEQCCTSICSLYQLENYCN + +>P01317 +MALWTRLRPLLALLALWPPPPARAFVNQHLCGSHLVEALYLVCGERGFFYTPKARREVEG +PQVGALELAGGPGAGGLEGPPQKRGIVEQCCASVCSLYQLENYCN + +>P01321 +MALWMRLLPLLALLALWAPAPTRAFVNQHLCGSHLVEALYLVCGERGFFYTPKARREVED +LQVRDVELAGAPGEGGLQPLALEGALQKRGIVEQCCTSICSLYQLENYCN + +>P01329 +MALWMHLLTVLALLALWGPNTGQAFVSRHLCGSNLVETLYSVCQDDGFFYIPKDRRELED +PQVEQTELGMGLGAGGLQPLALEMALQKRGIVDQCCTGTCTRHQLQSYCN + +>P67970 +MALWIRSLPLLALLVFSGPGTSYAAANQHLCGSHLVEALYLVCGERGFFYSPKARRDVEQ +PLVSSPLRGEAGVLPFQQEEYEKVKRGIVEQCCHNTCSLYQLENYCN From 6ca44693b3ef907290a59809f9eca034a9278e65 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 5 Jul 2024 09:33:19 -0400 Subject: [PATCH 0362/1514] Update dysgu to 1.6.5 (#48966) --- recipes/dysgu/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/dysgu/meta.yaml b/recipes/dysgu/meta.yaml index 06a1bbf643e3b..ee40705b83fa5 100644 --- a/recipes/dysgu/meta.yaml +++ b/recipes/dysgu/meta.yaml @@ -1,6 +1,6 @@ {% set name = "dysgu" %} -{% set version = "1.6.4" %} -{% set sha256hash = "28b3ef1f84c5a33160c44ec095df7e6c14dfdede6362dc65068f5fb34817c4fd" %} +{% set version = "1.6.5" %} +{% set sha256hash = "9c64989f56d9c83ba28a3d8876abc068b55c631e752a77fd8de2e43cc49fe14a" %} package: name: {{ name|lower }} From 2e4f2af8051e8934a6ce92c9b5b797d054b6228d Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 5 Jul 2024 16:33:35 +0300 Subject: [PATCH 0363/1514] decifer: add linux-aarch64 build (#48963) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/decifer/build.sh | 6 +++++- recipes/decifer/meta.yaml | 7 ++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/recipes/decifer/build.sh b/recipes/decifer/build.sh index 61c508c1a2a22..d539e8bff629a 100644 --- a/recipes/decifer/build.sh +++ b/recipes/decifer/build.sh @@ -1,3 +1,7 @@ +#!/usr/bin/env bash + +set -xe + mkdir build cd build @@ -7,7 +11,7 @@ cmake \ -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX \ ../src/decifer/cpp/ -make VERBOSE=1 +make -j ${CPU_COUNT} VERBOSE=1 cp mergestatetrees $PREFIX/bin cp generatestatetrees $PREFIX/bin diff --git a/recipes/decifer/meta.yaml b/recipes/decifer/meta.yaml index da44494ac7dd5..c8ff8beddc81c 100644 --- a/recipes/decifer/meta.yaml +++ b/recipes/decifer/meta.yaml @@ -10,9 +10,11 @@ source: sha256: 9b67b66cd9dd5c538204c22994b9c61d97f3691d01146bd76500dbd4ed4d3685 build: - number: 1 + number: 2 entry_points: - decifer = decifer.__main__:main + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} requirements: build: @@ -45,3 +47,6 @@ about: description: | DeCiFer is an algorithm that simultaneously selects mutation multiplicities and clusters SNVs by their corresponding descendant cell fractions (DCF), a statistic that quantifies the proportion of cells which acquired the SNV or whose ancestors acquired the SNV. DCF is related to the commonly used cancer cell fraction (CCF) but further accounts for SNVs which are lost due to deleterious somatic copy-number aberrations (CNAs), identifying clusters of SNVs which occur in the same phylogenetic branch of tumour evolution. +extra: + additional-platforms: + - linux-aarch64 From a37ac4f48d7db89ce061974f2c95eb771a71f0fd Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 5 Jul 2024 16:33:46 +0300 Subject: [PATCH 0364/1514] bigtools: add linux-aarch64 build (#48961) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/bigtools/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/bigtools/meta.yaml b/recipes/bigtools/meta.yaml index 050a3e268e854..a53fbc5eb40d8 100644 --- a/recipes/bigtools/meta.yaml +++ b/recipes/bigtools/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('bigtools', max_pin="x.x") }} @@ -32,5 +32,7 @@ about: dev_url: "https://github.com/jackh726/bigtools" extra: + additional-platforms: + - linux-aarch64 identifiers: - doi:10.5281/zenodo.10606493 From 15b1b6e741139a63000ead8d644fe492753d7ef9 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 5 Jul 2024 16:33:57 +0300 Subject: [PATCH 0365/1514] dysgu: add linux-aarch64 build (#48960) * dysgu: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Bump build number * Try again with build number = 1 * Use Clang 15 for the OSX build Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/dysgu/conda_build_config.yaml | 5 +++++ recipes/dysgu/meta.yaml | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 recipes/dysgu/conda_build_config.yaml diff --git a/recipes/dysgu/conda_build_config.yaml b/recipes/dysgu/conda_build_config.yaml new file mode 100644 index 0000000000000..3e1f5e680f301 --- /dev/null +++ b/recipes/dysgu/conda_build_config.yaml @@ -0,0 +1,5 @@ +# current version does not build with newer compilers +cxx_compiler_version: + - 15 # [osx] +c_compiler_version: + - 15 # [osx] diff --git a/recipes/dysgu/meta.yaml b/recipes/dysgu/meta.yaml index ee40705b83fa5..c5378708979f1 100644 --- a/recipes/dysgu/meta.yaml +++ b/recipes/dysgu/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256hash }} build: - number: 0 + number: 1 binary_relocation: False entry_points: - dysgu = dysgu.main:cli @@ -83,6 +83,8 @@ about: dev_url: https://github.com/kcleal/dysgu extra: + additional-platforms: + - linux-aarch64 container: extended-base: True recipe-maintainers: From c8878a3de30683268887f6cbbb8d38ac0d8350ca Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 5 Jul 2024 09:34:36 -0400 Subject: [PATCH 0366/1514] Update handyreadgenotyper to 0.1.21 (#48970) From 1fa85e735f51f8a6dab9b793b677cba2887b6661 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 5 Jul 2024 09:34:56 -0400 Subject: [PATCH 0367/1514] Update pia to 1.5.2 (#48967) --- recipes/pia/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pia/meta.yaml b/recipes/pia/meta.yaml index e4ac7d094bb9f..4c87fb3b28903 100644 --- a/recipes/pia/meta.yaml +++ b/recipes/pia/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pia" %} -{% set version = "1.5.1" %} -{% set sha256 = "46bd90546afc324246087552fa478c84b5e9dc324984109310ed46dbbd78412d" %} +{% set version = "1.5.2" %} +{% set sha256 = "7a72e0ab93982a707b829e68453a567c3fd1d1d24de1e5bdc6bd0b2fe8f2e05a" %} package: name: {{ name|lower }} From dc1f3da4d100749e042a9970e2a335dfdd762c9f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 5 Jul 2024 09:36:23 -0400 Subject: [PATCH 0368/1514] Update lollipop to 0.4.0 (#48958) * Update lollipop to 0.4.0 * Ruamel API LolliPop fixes ruamel 0.18 change of API * Python 3.10 match/case (PEP 634) is used. --------- Co-authored-by: DrYak --- recipes/lollipop/meta.yaml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/recipes/lollipop/meta.yaml b/recipes/lollipop/meta.yaml index 5680df67393eb..a54a2ab6379e4 100644 --- a/recipes/lollipop/meta.yaml +++ b/recipes/lollipop/meta.yaml @@ -1,6 +1,6 @@ {% set name = "LolliPop" %} -{% set version = "0.3.0" %} -{% set sha256 = "15135a929b87c209e84a096c9c345a12b1a4f6b2c00b37ec99ee88e5555acfec" %} +{% set version = "0.4.0" %} +{% set sha256 = "e13f3e2e74b3720de429b2e6b05e12d8505e12e399b4fe3cfe94a4b9bca60964" %} package: name: {{ name|lower }} @@ -12,28 +12,29 @@ source: build: noarch: python - number: 1 + number: 0 run_exports: - {{ pin_subpackage(name|lower, max_pin="x.x") }} script: - {{ PYTHON }} -m pip install '.[cli]' --ignore-installed --no-deps -v - - mkdir -p ${PREFIX}/share/{{ name }}/presets + - mkdir -p ${PREFIX}/share/{{ name }}/{presets,examples} - cp -vr presets/* ${PREFIX}/share/{{ name }}/presets/ + - cp -vr *preprint*yaml ${PREFIX}/share/{{ name }}/examples/ requirements: host: - - python >=3 + - python >=3.10 - pip - poetry-core >=1.0.8 - poetry-dynamic-versioning run: - - python >=3 + - python >=3.10 - numpy - scipy - pandas - zstandard # NOTE: change of API between ruamel.yaml 0.17.x and 0.18 - - ruamel.yaml <0.18 + - ruamel.yaml >=0.18 - strictyaml - tqdm - click From b2901f64bcb15fa610a4d16a11c288d1a13e23a7 Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Fri, 5 Jul 2024 16:05:09 -0400 Subject: [PATCH 0369/1514] fix: disable unused trigger (#48976) --- .github/workflows/CommentResponder.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/CommentResponder.yml b/.github/workflows/CommentResponder.yml index 4dd311ff95318..ec8fbabdeb9c1 100644 --- a/.github/workflows/CommentResponder.yml +++ b/.github/workflows/CommentResponder.yml @@ -1,9 +1,9 @@ name: CommentResponder on: status: - check_suite: - types: - - completed + # check_suite: + # types: + # - completed issue_comment: types: - created From fd38d36ea670baac117a62903a8d542df146f737 Mon Sep 17 00:00:00 2001 From: David Laehnemann Date: Fri, 5 Jul 2024 23:36:01 +0200 Subject: [PATCH 0370/1514] fix: ensure minimum python version of 2.6 for manta (#48973) * fix: ensure minimum python version of 2.6 for manta * see the minimum specification here: https://github.com/Illumina/manta/blob/75b5c38d4fcd2f6961197b28a41eb61856f2d976/docs/userGuide/installation.md?plain=1#L59 * also note, we had it installing a python version `1.6` in the snakemake wrapper: https://github.com/snakemake/snakemake-wrappers/pull/2114/files#diff-8b4a5764a647f4182cb9f49051b48b25e5b72e38365ec1311475134a3440ed76R7 * chore: bump build number * fix: add run_exports * fix: adjust run_exports syntax * fix: actually set the name variable --- recipes/manta/meta.yaml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/recipes/manta/meta.yaml b/recipes/manta/meta.yaml index 4ed7dfc6fd319..63dd36d4d8d04 100644 --- a/recipes/manta/meta.yaml +++ b/recipes/manta/meta.yaml @@ -1,19 +1,22 @@ +{% set name = "manta" %} {% set version = "1.6.0" %} package: - name: manta - version: '{{ version }}' + name: {{ name }} + version: {{ version }} source: url: https://github.com/Illumina/manta/releases/download/v{{ version }}/manta-{{ version }}.centos6_x86_64.tar.bz2 sha256: ae19b1b934cf5bb605dfb58b29e8e2b843cb469ec5ff12441ca3d9d39179abf4 build: - number: 2 + number: 3 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} requirements: run: - - python <3 + - python >=2.6,<3 test: commands: From d41f77a950541964c7167772a018d46e24033f6f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 6 Jul 2024 05:35:47 -0400 Subject: [PATCH 0371/1514] Update syny to 1.2 (#48977) --- recipes/syny/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/syny/meta.yaml b/recipes/syny/meta.yaml index ad63a3db56362..e51b7c923118e 100644 --- a/recipes/syny/meta.yaml +++ b/recipes/syny/meta.yaml @@ -1,6 +1,6 @@ {% set name = "syny" %} -{% set version = "1.1b" %} -{% set sha256 = "f3eae10ac4a204c89f0f94223f088e50af324a89d3f7a83e0b8b4540b8cf34c3" %} +{% set version = "1.2" %} +{% set sha256 = "ad54ccfd22135fdd4770d1d37eadd12f917c47dc35280ebf9c6fc1cf94786dbe" %} package: name: "{{ name|lower }}" From 4135a0d07711121ffc99955c5c4273ccf4a0453c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 6 Jul 2024 05:36:31 -0400 Subject: [PATCH 0372/1514] Update harpy to 1.2.0 (#48975) --- recipes/harpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index 8d31b064ed9ea..5b0fdf27c89b5 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.1.1" %} -{% set sha256 = "db45572cb2592a8b55dcaad606c79443a411b6c58cbb2a7183a16abdd5da3e1f" %} +{% set version = "1.2.0" %} +{% set sha256 = "01675fc5fee40e3fd43aafd54725cf84009d73cc2f630289a7c23ed46530bc9a" %} package: name: harpy From 2f97f78274e9ea84e0d37af658aad0b4b2c11bf3 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 6 Jul 2024 05:36:54 -0400 Subject: [PATCH 0373/1514] Update snakemake to 8.15.2 (#48974) --- recipes/snakemake/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake/meta.yaml b/recipes/snakemake/meta.yaml index ff49e71b157ff..de065cbd5e5ac 100644 --- a/recipes/snakemake/meta.yaml +++ b/recipes/snakemake/meta.yaml @@ -1,7 +1,7 @@ # Attention: when upgrading the version, please compare below dependencies with # https://github.com/snakemake/snakemake/blob/{version}/setup.cfg {% set name = "snakemake" %} -{% set version = "8.15.1" %} +{% set version = "8.15.2" %} package: name: {{ name }} @@ -9,7 +9,7 @@ package: source: url: https://pypi.io/packages/source/s/{{ name }}/snakemake-{{ version }}.tar.gz - sha256: 20f84a63a2cf254a2ca6c6c2e02ee351693e41787e0ed9b73f0e17ee1c91b8f8 + sha256: 3bcc407dc02cc25c545691b275e9d5e65d414e6361f7682020fc76cb8164267a build: number: 0 From 2245542c90f6c68f736caa31dcb1613d0193f8ee Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 6 Jul 2024 05:37:18 -0400 Subject: [PATCH 0374/1514] Update pybiolib to 1.1.2226 (#48972) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index a03ef6f84d28d..e54473db9776a 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.1.2208" %} +{% set version = "1.1.2226" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 5a2f43f9e68ef89a2d951228928e97573b89745285baa7f0b8b0898d60a7afb3 + sha256: 276b1fdbce5ea38b3fc9aa8a015b816923b1ad3c1a74780a9afb98078b2e7239 build: noarch: python From 93a799e1ded82be577b48f34a6ab1d12a1744cce Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 6 Jul 2024 07:12:03 -0400 Subject: [PATCH 0375/1514] Update lollipop to 0.4.1 (#48983) --- recipes/lollipop/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/lollipop/meta.yaml b/recipes/lollipop/meta.yaml index a54a2ab6379e4..ca883fd13e81d 100644 --- a/recipes/lollipop/meta.yaml +++ b/recipes/lollipop/meta.yaml @@ -1,6 +1,6 @@ {% set name = "LolliPop" %} -{% set version = "0.4.0" %} -{% set sha256 = "e13f3e2e74b3720de429b2e6b05e12d8505e12e399b4fe3cfe94a4b9bca60964" %} +{% set version = "0.4.1" %} +{% set sha256 = "9991ba2740fcf37a9f0b13febe02025d66bbb4b8c46e0fa7c369adf0d11fc385" %} package: name: {{ name|lower }} From 168958c99eb3251f8d8567d62abae2fcb0e2ed9a Mon Sep 17 00:00:00 2001 From: Vijini Mallawaarachchi Date: Sat, 6 Jul 2024 21:17:10 +0930 Subject: [PATCH 0376/1514] Add kmertools v0.1.0 (#48981) --- recipes/kmertools/build.sh | 7 +++++++ recipes/kmertools/meta.yaml | 38 +++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 recipes/kmertools/build.sh create mode 100644 recipes/kmertools/meta.yaml diff --git a/recipes/kmertools/build.sh b/recipes/kmertools/build.sh new file mode 100644 index 0000000000000..9a40edcacf2d1 --- /dev/null +++ b/recipes/kmertools/build.sh @@ -0,0 +1,7 @@ +#!/bin/bash -e + +# Build with Rust +cargo build --release + +# Install the binaries +cargo install --path kmertools --root $PREFIX diff --git a/recipes/kmertools/meta.yaml b/recipes/kmertools/meta.yaml new file mode 100644 index 0000000000000..0e97b0c0e1d13 --- /dev/null +++ b/recipes/kmertools/meta.yaml @@ -0,0 +1,38 @@ +{% set version = "0.1.0" %} +{% set name = "kmertools" %} +{% set sha256 = "3c8cf78c95ab0baf0f69e7bc631ea52a54733bed0122b9d20e76d49df5639a4c" %} + +package: + name: {{ name }} + version: {{ version }} + +build: + number: 0 + run_exports: + - {{ pin_subpackage('kmertools', max_pin="x.x") }} + +source: + url: https://github.com/anuradhawick/{{ name }}/archive/v{{ version }}.tar.gz + sha256: {{ sha256 }} + +requirements: + build: + - {{ compiler("rust") }} + +test: + commands: + - {{ name }} --help + +about: + home: https://github.com/anuradhawick/kmertools + license: GPL-3.0-only + license_family: GPL3 + summary: "kmertools: DNA Vectorisation Tool" + description: "kmertools is a k-mer based feature extraction tool designed to support metagenomics and other bioinformatics analytics." + doc_url: https://github.com/anuradhawick/kmertools/wiki + dev_url: https://github.com/anuradhawick/kmertools + +extra: + recipe-maintainers: + - anuradhawick + - Vini2 From 64f828aba8d80644b0709d3dd58da4d825025d2d Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Sat, 6 Jul 2024 22:21:02 +0200 Subject: [PATCH 0377/1514] Update meta.yaml (#48979) --- recipes/handyreadgenotyper/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/handyreadgenotyper/meta.yaml b/recipes/handyreadgenotyper/meta.yaml index cf317d8534fd1..173b1894489fa 100644 --- a/recipes/handyreadgenotyper/meta.yaml +++ b/recipes/handyreadgenotyper/meta.yaml @@ -14,7 +14,7 @@ build: script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation run_exports: - {{ pin_subpackage('handyreadgenotyper', max_pin="x.x") }} - number: 0 + number: 1 requirements: host: From 4132613df41186cda6c8d3b103038b7735233901 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 6 Jul 2024 19:24:00 -0400 Subject: [PATCH 0378/1514] Update skder to 1.2.2 (#48986) --- recipes/skder/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/skder/meta.yaml b/recipes/skder/meta.yaml index aafb34b595df6..b75f11cc4b5bc 100644 --- a/recipes/skder/meta.yaml +++ b/recipes/skder/meta.yaml @@ -1,5 +1,5 @@ {% set name = "skder" %} -{% set version = "1.2.1" %} +{% set version = "1.2.2" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: https://github.com/raufs/skDER/archive/refs/tags/v{{ version }}.tar.gz - sha256: 5ccd4b33b94ad7a4c03baaeaaf2def51627161c006bd71a0e51b913a25d0d776 + sha256: 13b7c9f900843d0cf5b1f06a9e89ace19cc9ba9eb7e360c5d2cfff290932988f build: - number: 1 + number: 0 skip: True # [py <= 39] run_exports: - {{ pin_subpackage('skder', max_pin='x.x') }} From 69cf21aef7f2f8199be1dfc1ac1e58e786327bea Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 7 Jul 2024 01:09:17 -0400 Subject: [PATCH 0379/1514] Update icfree-ml to 2.3.2 (#48985) --- recipes/icfree-ml/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/icfree-ml/meta.yaml b/recipes/icfree-ml/meta.yaml index 3a9839d03b9ee..8afdf12e50e75 100644 --- a/recipes/icfree-ml/meta.yaml +++ b/recipes/icfree-ml/meta.yaml @@ -1,13 +1,13 @@ {% set name = "icfree-ml" %} -{% set version = "2.3.1" %} +{% set version = "2.3.2" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://github.com/brsynth/icfree-ml/archive/refs/tags/2.3.1.tar.gz - sha256: b3b9743cf54f8688d70189c28946254a0ea71d86ca5e3bfbf6ec32eff8572ab3 + url: https://github.com/brsynth/icfree-ml/archive/refs/tags/2.3.2.tar.gz + sha256: e57f358a372f5f8b5040dca9c500c25be1e1594a73557cc5ae97bf7784aba384 build: number: 0 From 45246bf6ce78db845fbaf94d9cd2918c754b920a Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Sun, 7 Jul 2024 07:12:36 +0200 Subject: [PATCH 0380/1514] Add publication identifiers to nextstrain recipes, aarch64 to nextclade2 (#48938) --- recipes/augur/meta.yaml | 4 +++- recipes/auspice/meta.yaml | 5 ++++- recipes/nextclade/meta.yaml | 4 +++- recipes/nextclade2/meta.yaml | 16 +++++++++++----- recipes/nextclade2/run_test.sh | 7 +++++++ recipes/nextstrain-cli/meta.yaml | 11 ++++++++--- recipes/nextstrain/meta.yaml | 9 ++++++--- recipes/treetime/meta.yaml | 4 +++- 8 files changed, 45 insertions(+), 15 deletions(-) diff --git a/recipes/augur/meta.yaml b/recipes/augur/meta.yaml index 0b33c3437e803..ffb57fe59c453 100644 --- a/recipes/augur/meta.yaml +++ b/recipes/augur/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 88ecf208384fff1ba8dee20596c2905a4d27707a39e1e9590d2fef717d29dd5f build: - number: 0 + number: 1 noarch: python entry_points: - augur = augur.__main__:main @@ -58,6 +58,8 @@ about: license_file: LICENSE.txt extra: + identifiers: + - doi:10.21105/joss.02906 recipe-maintainers: - huddlej - tsibley diff --git a/recipes/auspice/meta.yaml b/recipes/auspice/meta.yaml index 036ed1bc4e16c..f8698c51454a3 100644 --- a/recipes/auspice/meta.yaml +++ b/recipes/auspice/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 89c620bc790c5e3f28969a253f41e36bf35a13346cb8c6ab55868d9c6ee08714 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("auspice", max_pin="x.x") }} @@ -42,6 +42,9 @@ about: license_family: AGPL extra: + identifiers: + # Generic Nextstrain paper, for lack of specific Auspice one + - doi:10.1093/bioinformatics/bty407 additional-platforms: - linux-aarch64 recipe-maintainers: diff --git a/recipes/nextclade/meta.yaml b/recipes/nextclade/meta.yaml index 3be9be6471196..cf73fca924452 100644 --- a/recipes/nextclade/meta.yaml +++ b/recipes/nextclade/meta.yaml @@ -16,7 +16,7 @@ source: sha256: 579f499f7f0f5f2b9d520971ded4e265140859317f083ff8e2879ad74373ec33 # [osx and arm64] build: - number: 0 + number: 1 binary_relocation: False run_exports: - {{ pin_compatible(name, max_pin='x') }} @@ -37,6 +37,8 @@ about: dev_url: https://github.com/nextstrain/nextclade extra: + identifiers: + - doi:10.21105/joss.03773 additional-platforms: - linux-aarch64 recipe-maintainers: diff --git a/recipes/nextclade2/meta.yaml b/recipes/nextclade2/meta.yaml index 6c32c4579b5ae..6e2fb8e0e9bed 100644 --- a/recipes/nextclade2/meta.yaml +++ b/recipes/nextclade2/meta.yaml @@ -6,15 +6,17 @@ package: version: "{{ version }}" source: - - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/nextclade-x86_64-unknown-linux-gnu # [linux64] + - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/nextclade-x86_64-unknown-linux-gnu # [linux64] sha256: 1a9a82655830243ffd01937ebb895744ff46ec49f725ef6feff9a3f0e37d90d1 # [linux64] - - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/nextclade-x86_64-apple-darwin # [osx and x86_64] - sha256: 432f56d2152edda49b8c4a2c3f81d9a5da7419a6cc7c4a3d5205d17d5f834cf6 # [osx and x86_64] - - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/nextclade-aarch64-apple-darwin # [arm64] + - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/nextclade-x86_64-apple-darwin # [osx and x86_64] + sha256: a5ad4c2ca527929ab8c8b3b2521287488383f78fc1ee3030cbf5af23856b58b0 # [osx and x86_64] + - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/nextclade-aarch64-apple-darwin # [arm64] sha256: aaac669618d953381428eac3674fe6cb22bef66e7c1ae55552f6a1567f3d3030 # [arm64] + - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/nextclade-aarch64-unknown-linux-gnu # [aarch64] + sha256: e8bf11ba18c40aaad6b91b1a65bd49b304375f77b9273b1a17e75ba32cffbca8 # [aarch64] build: - number: 0 + number: 1 binary_relocation: False run_exports: - {{ pin_compatible(name, max_pin='x') }} @@ -34,6 +36,10 @@ about: dev_url: https://github.com/nextstrain/nextclade extra: + identifiers: + - doi:10.21105/joss.03773 + additional-platforms: + - linux-aarch64 recipe-maintainers: - corneliusroemer skip-lints: diff --git a/recipes/nextclade2/run_test.sh b/recipes/nextclade2/run_test.sh index 62e0808d80930..baa2c9a2feea6 100644 --- a/recipes/nextclade2/run_test.sh +++ b/recipes/nextclade2/run_test.sh @@ -3,6 +3,13 @@ set -x set -e +# Skip if aarch64 on linux +# Because Nextclade requires glibc >= 2.18 not available yet on aarch64 builder +if [[ $target_platform == linux-aarch64 ]]; then + echo "Skipping test on aarch64" + exit 0 +fi + nextclade2 --version nextclade2 dataset get --name 'sars-cov-2' --output-dir 'data/sars-cov-2' diff --git a/recipes/nextstrain-cli/meta.yaml b/recipes/nextstrain-cli/meta.yaml index 1cef58d2d3db1..09d58b61cae64 100644 --- a/recipes/nextstrain-cli/meta.yaml +++ b/recipes/nextstrain-cli/meta.yaml @@ -1,12 +1,12 @@ -{% set version = "8.2.0" %} +{% set version = "8.5.0" %} package: name: nextstrain-cli version: {{ version }} source: - url: https://pypi.io/packages/source/n/nextstrain-cli/nextstrain-cli-{{ version }}.tar.gz - sha256: 9b48dd8f32416d43b5f7db8a4a5ca045913a41a4967a5ae189240cbd67c285a2 + url: https://pypi.io/packages/source/n/nextstrain-cli/nextstrain_cli-{{ version }}.tar.gz + sha256: f5b41b5185560e77f35ce1498ed24dd5ce5561ebd7ca58f434935d8e79f22ac5 build: number: 0 @@ -71,3 +71,8 @@ extra: recipe-maintainers: - tsibley - corneliusroemer + - genehack + - victorlin + identifiers: + - doi:10.1093/bioinformatics/bty407 + diff --git a/recipes/nextstrain/meta.yaml b/recipes/nextstrain/meta.yaml index 10f48cf9b2b9f..87460a674b790 100644 --- a/recipes/nextstrain/meta.yaml +++ b/recipes/nextstrain/meta.yaml @@ -4,14 +4,14 @@ package: build: noarch: generic - number: 1 + number: 2 requirements: run: # Nextstrain components in Conda - augur - auspice - - nextalign + - nextclade - nextstrain-cli # Necessary for several of our core builds/tutorials @@ -23,7 +23,7 @@ test: commands: - augur --help - auspice --help - - nextalign --help + # - nextclade --help fails on aarch64 due to glibc being too low here - nextstrain --help about: @@ -45,3 +45,6 @@ extra: recipe-maintainers: - tsibley - huddlej + identifiers: + - doi:10.1093/bioinformatics/bty407 + diff --git a/recipes/treetime/meta.yaml b/recipes/treetime/meta.yaml index 55bc9b5fb05f4..ae44e4a810ad5 100644 --- a/recipes/treetime/meta.yaml +++ b/recipes/treetime/meta.yaml @@ -11,7 +11,7 @@ source: build: noarch: python - number: 0 + number: 1 script: {{ PYTHON }} -m pip install --no-deps --ignore-installed . -vvv entry_points: - treetime = treetime.__main__:main @@ -46,6 +46,8 @@ about: dev_url: https://github.com/neherlab/treetime extra: + identifiers: + - doi:10.1093/ve/vex042 recipe-maintainers: - corneliusroemer - rneher From ae08e247e1a99bddd60e66d6ac02005f6831cf63 Mon Sep 17 00:00:00 2001 From: Benjamin Linard <22132778+blinard-BIOINFO@users.noreply.github.com> Date: Sun, 7 Jul 2024 12:37:18 +0200 Subject: [PATCH 0381/1514] Update ipk to v0.5.1 (#47946) * add ipk * remove noarch * reset build version * fix url * change shasum * change compilation destination * replace boost by boost-cpp and pin the version * pin python >=3.8 * ipk recipe, first commit * Add recipe ipk (#45958) * Squash and merge * Revert "Add recipe ipk (#45958)" This reverts commit 859c9a1ca6a1898ff75b989641df3317216d4330. * transplant @blinard modifications related to IPK only from #45958 * make URL standard for bioconda autobump * modify shasum to default release * Use the specific release that include sources from git submodules that are not present by default * Use phyml instead of raxml-ng in tests, to avoid CPU oversubscription issues in CI docker. * Disables tests E and F until we find a fix to Azure test timout. * attempt to reuse raxml-ng with #threads patch * fix in test * osx compilation patch * removed last run test (>15 minutes on Azure) following bioconda's team demand * bumps to v0.5.1 * bumps to v0.5.1 * Update meta.yaml * removes osx patch, following new release * removes patch related to raxml-oversubscription during bioconda tests * removes patch related to binary expected directory * build script updated following bugfix * build in build * bugfix * Update recipes/ipk/build.sh Co-authored-by: Martin Grigorov * removes useless lines --------- Co-authored-by: Jacques Dainat Co-authored-by: Benjamin Linard Co-authored-by: Jacques Dainat Co-authored-by: B. Linard h Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Co-authored-by: Martin Grigorov --- ...to_expect_binaries_in_same_directory.patch | 20 ------------------- ..._1_to_avoid_raxmlng_oversubscription.patch | 13 ------------ ..._sstream_for_std-basic_istringstream.patch | 11 ---------- recipes/ipk/build.sh | 15 +++++++------- recipes/ipk/meta.yaml | 8 ++------ 5 files changed, 10 insertions(+), 57 deletions(-) delete mode 100644 recipes/ipk/0001_makes_python_wrapper_to_expect_binaries_in_same_directory.patch delete mode 100644 recipes/ipk/0002_default_threads_to_1_to_avoid_raxmlng_oversubscription.patch delete mode 100644 recipes/ipk/0003_osx_compilation_requires_sstream_for_std-basic_istringstream.patch diff --git a/recipes/ipk/0001_makes_python_wrapper_to_expect_binaries_in_same_directory.patch b/recipes/ipk/0001_makes_python_wrapper_to_expect_binaries_in_same_directory.patch deleted file mode 100644 index 09fbddb9e465f..0000000000000 --- a/recipes/ipk/0001_makes_python_wrapper_to_expect_binaries_in_same_directory.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/ipk.py b/ipk.py -index fb884f3..71bf356 100755 ---- a/ipk.py -+++ b/ipk.py -@@ -268,12 +268,12 @@ def build_database(ar, - if keep_positions: - raise RuntimeError("--keep-positions is not supported for DNA.") - else: -- bin = f"{current_dir}/bin/ipk/ipk-dna" -+ bin = f"{current_dir}/ipk-dna" - else: - if keep_positions: -- bin = f"{current_dir}/bin/ipk/ipk-aa-pos" -+ bin = f"{current_dir}/ipk-aa-pos" - else: -- bin = f"{current_dir}/bin/ipk/ipk-aa" -+ bin = f"{current_dir}/ipk-aa" - - - command = [ diff --git a/recipes/ipk/0002_default_threads_to_1_to_avoid_raxmlng_oversubscription.patch b/recipes/ipk/0002_default_threads_to_1_to_avoid_raxmlng_oversubscription.patch deleted file mode 100644 index a8ca9c821a683..0000000000000 --- a/recipes/ipk/0002_default_threads_to_1_to_avoid_raxmlng_oversubscription.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/ipk.py b/ipk.py -index fb884f3..1310237 100755 ---- a/ipk.py -+++ b/ipk.py -@@ -191,7 +191,7 @@ def validate_model(ctx, param, value): - Saves time during database load and save, but requires more disk space.""") - @click.option('--threads', - type=int, -- default=4, -+ default=1, - show_default=True, - help="Number of threads used to compute phylo-k-mers.") - def build(ar, diff --git a/recipes/ipk/0003_osx_compilation_requires_sstream_for_std-basic_istringstream.patch b/recipes/ipk/0003_osx_compilation_requires_sstream_for_std-basic_istringstream.patch deleted file mode 100644 index 3e26523c379f4..0000000000000 --- a/recipes/ipk/0003_osx_compilation_requires_sstream_for_std-basic_istringstream.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff --git a/ipk/src/ar.cpp b/ipk/src/ar.cpp -index 2ea4eed..cebe283 100644 ---- a/ipk/src/ar.cpp -+++ b/ipk/src/ar.cpp -@@ -1,5 +1,6 @@ - #include - #include -+#include - #include - #include - #include diff --git a/recipes/ipk/build.sh b/recipes/ipk/build.sh index 7bc80e3d09470..5886c722ba711 100644 --- a/recipes/ipk/build.sh +++ b/recipes/ipk/build.sh @@ -13,16 +13,17 @@ mkdir -p $PREFIX/bin mkdir -p $PREFIX/lib cmake -B build -DHASH_MAP=USE_TSL_ROBIN_MAP -DCMAKE_CXX_FLAGS="-O3" -DBUILD_SHARED_LIBS=ON --install-prefix=$PREFIX -cmake --build build --target all +cmake --build build --target all --target diff-dna --target diff-aa --target dump-dna --target dump-aa -j ${CPU_COUNT} cmake --install build -ls build/ipk - cp build/ipk/ipk-aa $PREFIX/bin cp build/ipk/ipk-aa-pos $PREFIX/bin cp build/ipk/ipk-dna $PREFIX/bin +cp build/tools/ipkdiff-dna $PREFIX/bin +cp build/tools/ipkdiff-aa $PREFIX/bin +cp build/tools/ipkdump-dna $PREFIX/bin +cp build/tools/ipkdump-aa $PREFIX/bin -chmod +x $PREFIX/bin/ipk-aa -chmod +x $PREFIX/bin/ipk-dna -chmod +x $PREFIX/bin/ipk-aa-pos -chmod +x $PREFIX/bin/ipk.py +cp build/i2l/libi2l_aa.a $PREFIX/lib +cp build/i2l/libi2l_aa_pos.a $PREFIX/lib +cp build/i2l/libi2l_dna.a $PREFIX/lib diff --git a/recipes/ipk/meta.yaml b/recipes/ipk/meta.yaml index a44263c3004b3..4820721d2a44e 100644 --- a/recipes/ipk/meta.yaml +++ b/recipes/ipk/meta.yaml @@ -1,6 +1,6 @@ {% set name = "IPK" %} -{% set version = "0.5.0" %} -{% set sha256 = "7d073583d0f9891a30ec6865fee33818b526086a1f0de04028409496b279004c" %} +{% set version = "0.5.1" %} +{% set sha256 = "22efbfe282a37d153b69f44f6a655f39727d6ae955690b60fe1c6c785bbc0535" %} package: name: {{ name|lower }} @@ -9,10 +9,6 @@ package: source: url: https://github.com/phylo42/{{ name|lower }}/releases/download/v{{ version }}/IPK-v{{ version }}_src_for_bioconda.tar.gz sha256: {{ sha256 }} - patches: - - 0001_makes_python_wrapper_to_expect_binaries_in_same_directory.patch - - 0002_default_threads_to_1_to_avoid_raxmlng_oversubscription.patch - - 0003_osx_compilation_requires_sstream_for_std-basic_istringstream.patch build: number: 0 From d57efefcb5141c27f1f2c21d766ae8e25af746b5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 7 Jul 2024 06:50:33 -0400 Subject: [PATCH 0382/1514] Update flumut to 0.6.2 (#48987) --- recipes/flumut/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/flumut/meta.yaml b/recipes/flumut/meta.yaml index e2447627c4345..5c56a5bdf3788 100644 --- a/recipes/flumut/meta.yaml +++ b/recipes/flumut/meta.yaml @@ -1,5 +1,5 @@ {% set name = "flumut" %} -{% set version = "0.6.1" %} +{% set version = "0.6.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/flumut-{{ version }}.tar.gz - sha256: 48604a3bb0a708f012ee749c3376ab3f7369fed56f9025a8a4677b27d228b34f + sha256: cf7ea2cf97b449defc7bcd6c209af79874830fec3b6a5f63811f57fe9d3a5624 build: run_exports: From 09e3234ad47307385d464003f447e11c84bbfc93 Mon Sep 17 00:00:00 2001 From: Edmund Miller <20095261+edmundmiller@users.noreply.github.com> Date: Sun, 7 Jul 2024 23:16:39 -0500 Subject: [PATCH 0383/1514] Update NARFMAP to 1.4.2 (#48978) * Update NARFMAP to 1.4.1 * Update NARFMAP to 1.4.2 * chore: Remove build-failure * chore: Update homepage --- recipes/narfmap/build_failure.linux-64.yaml | 104 -------------------- recipes/narfmap/meta.yaml | 8 +- 2 files changed, 4 insertions(+), 108 deletions(-) delete mode 100644 recipes/narfmap/build_failure.linux-64.yaml diff --git a/recipes/narfmap/build_failure.linux-64.yaml b/recipes/narfmap/build_failure.linux-64.yaml deleted file mode 100644 index 9f9e250ad5fad..0000000000000 --- a/recipes/narfmap/build_failure.linux-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 209cdb29657554e651ee0ae81e54e3769518a8034f693f2907959e386db48168 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |- - Success - Extracting download - source tree in: /opt/conda/conda-bld/narfmap_1717537454419/work - export PREFIX=/opt/conda/conda-bld/narfmap_1717537454419/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place - export BUILD_PREFIX=/opt/conda/conda-bld/narfmap_1717537454419/_build_env - export SRC_DIR=/opt/conda/conda-bld/narfmap_1717537454419/work - INFO: activate-binutils_linux-64.sh made the following environmental changes: - ADDR2LINE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-addr2line - AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar - AS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-as - CXXFILT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cfilt - ELFEDIT=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-elfedit - GPROF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gprof - LD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld - LD_GOLD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld.gold - NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-nm - OBJCOPY=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objcopy - OBJDUMP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-objdump - RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib - READELF=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-readelf - SIZE=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-size - STRINGS=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strings - STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip - INFO: activate-gcc_linux-64.sh made the following environmental changes: - BUILD=x86_64-conda-linux-gnu - CC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc - CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc - CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/narfmap-1.4.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-strip -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH=$PREFIX;$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin - CMAKE_PREFIX_PATH=$PREFIX:$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot/usr - CONDA_BUILD_SYSROOT=$BUILD_PREFIX/x86_64-conda-linux-gnu/sysroot - CONDA_TOOLCHAIN_BUILD=x86_64-conda-linux-gnu - CONDA_TOOLCHAIN_HOST=x86_64-conda-linux-gnu - CPP=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cpp - CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include - DEBUG_CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/narfmap-1.4.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - DEBUG_CPPFLAGS=-D_DEBUG -D_FORTIFY_SOURCE=2 -Og -isystem $PREFIX/include - GCC=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc - GCC_AR=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ar - GCC_NM=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-nm - GCC_RANLIB=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc-ranlib - HOST=x86_64-conda-linux-gnu - LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib - MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_conda_cos6_linux_gnu - build_alias=x86_64-conda-linux-gnu - host_alias=x86_64-conda-linux-gnu - -BUILD=x86_64-conda_cos6-linux-gnu - -CONDA_BUILD_SYSROOT= - INFO: activate-gxx_linux-64.sh made the following environmental changes: - CXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c - CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/narfmap-1.4.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c - DEBUG_CXXFLAGS=-fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-all -fno-plt -Og -g -Wall -Wextra -fvar-tracking-assignments -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/narfmap-1.4.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - GXX=$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-g - making $SRC_DIR/build/release/compare.o - making $SRC_DIR/build/release/workflow/DualFastq2SamWorkflow.o - making $SRC_DIR/build/release/workflow/GenHashTableWorkflow.o - making $SRC_DIR/build/release/workflow/Input2SamWorkflow.o - making $SRC_DIR/build/release/libdragmap-workflow.a - making $SRC_DIR/build/release/align/Aligner.o - making $SRC_DIR/build/release/align/AlignmentGenerator.o - making $SRC_DIR/build/release/align/AlignmentRescue.o - making $SRC_DIR/build/release/align/Alignments.o - making $SRC_DIR/build/release/align/CalculateRefStartEnd.o - making $SRC_DIR/build/release/align/Cigar.o - making $SRC_DIR/build/release/align/InsertSizeDistribution.o - making $SRC_DIR/build/release/align/PairBuilder.o - making $SRC_DIR/build/release/align/Pairs.o - making $SRC_DIR/build/release/align/SinglePicker.o - making $SRC_DIR/build/release/align/SmithWaterman.o - making $SRC_DIR/build/release/align/Tlen.o - making $SRC_DIR/build/release/align/VectorSmithWaterman.o - making $SRC_DIR/build/release/align/Wavefront.o - making $SRC_DIR/build/release/libdragmap-align.a - making $SRC_DIR/build/release/map/BestIntervalTracker.o - making $SRC_DIR/build/release/map/ChainBuilder.o - making $SRC_DIR/build/release/map/Mapper.o - /opt/conda/conda-bld/narfmap_1717537454419/work/src/lib/map/Mapper.cpp: In member function 'void dragenos::map::Mapper::addToPositionChains(const Seed&, dragenos::map::ChainBuilder&, std::vector&, uint32_t&, uint32_t&) const': - /opt/conda/conda-bld/narfmap_1717537454419/work/src/lib/map/Mapper.cpp:338:38: error: 'make_iterator_range' is not a member of 'boost'; did you mean 'iterator_range'? - 338 | for (const auto& record : boost::make_iterator_range(hashRecords_.rbegin(), hashRecords_.rend())) { - | ^~~~~~~~~~~~~~~~~~~ - | iterator_range - make: *** [/opt/conda/conda-bld/narfmap_1717537454419/work/make/lib.mk:110: /opt/conda/conda-bld/narfmap_1717537454419/work/build/release/map/Mapper.o] Error 1 - Traceback (most recent call last): - File "/opt/conda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/narfmap_1717537454419/work/conda_build.sh']' returned non-zero exit status 2. -# Last 100 lines of the build log. diff --git a/recipes/narfmap/meta.yaml b/recipes/narfmap/meta.yaml index fc575ed7b58b2..71cd11b7b0534 100644 --- a/recipes/narfmap/meta.yaml +++ b/recipes/narfmap/meta.yaml @@ -1,6 +1,6 @@ {% set name = "narfmap" %} -{% set version = "1.4.0" %} -{% set sha256 = "86dc55dcad1fd83b6d486ec18aa5e212412e65546ce8c9e59134c827128aff71" %} +{% set version = "1.4.2" %} +{% set sha256 = "ffb2d92c9a953c28ebd433cec055a8368453077e99457c978f05d2ac5b36a9d6" %} package: name: {{ name }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 skip: True # [osx] run_exports: - {{ pin_subpackage("narfmap", max_pin="x") }} @@ -35,7 +35,7 @@ test: - dragen-os -h about: - home: https://github.com/Emiller88/NARFMAP + home: https://github.com/bioinformaticsorphanage/NARFMAP license: GPL-3 licence_file: COPYRIGHT summary: "NARFMAP is a fork of the Dragen mapper/aligner Open Source Software." From 5997866c720a4e8d1ebf0866dbf764ff7048555d Mon Sep 17 00:00:00 2001 From: Akihiro Kuno Date: Mon, 8 Jul 2024 18:35:16 +0900 Subject: [PATCH 0384/1514] Update DAJIN2 (#48989) --- recipes/dajin2/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/dajin2/meta.yaml b/recipes/dajin2/meta.yaml index 455a10d127bb8..9dc6207716c85 100644 --- a/recipes/dajin2/meta.yaml +++ b/recipes/dajin2/meta.yaml @@ -1,5 +1,5 @@ {% set name = "DAJIN2" %} -{% set version = "0.5.1" %} +{% set version = "0.5.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/dajin2-{{ version }}.tar.gz - sha256: d74e22739f655396b19c532e5d77d403e8690838898f0f0bd4fbd53730f58226 + sha256: aab7698d00d514664cd626a5173cef29a59b2de8d38c9771088906a7cf5a66da build: entry_points: @@ -20,11 +20,11 @@ build: requirements: host: - - python >=3.8,<3.11 + - python >=3.8,<4.0 - poetry-core >=1.0.0 - pip run: - - python >=3.8,<3.11 + - python >=3.8.0,<4.0.0 - numpy >=1.24.0 - scipy >=1.10.0 - pandas >=1.0.0 From 2d80fb3b7a23060df6f14e06d78537ec778518b5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 8 Jul 2024 05:38:16 -0400 Subject: [PATCH 0385/1514] Update pybiolib to 1.1.2229 (#48990) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index e54473db9776a..29d676aa3744e 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.1.2226" %} +{% set version = "1.1.2229" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 276b1fdbce5ea38b3fc9aa8a015b816923b1ad3c1a74780a9afb98078b2e7239 + sha256: 8a3aa7329e7fd8fcef92d63a41af96785e160557228648a2b5cdf0d28114a204 build: noarch: python From 63798fe724eeb3a86d47ea093985814cc26b8184 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 8 Jul 2024 07:52:54 -0400 Subject: [PATCH 0386/1514] Update kegg-pathways-completeness to 1.0.5 (#48995) --- recipes/kegg-pathways-completeness/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/kegg-pathways-completeness/meta.yaml b/recipes/kegg-pathways-completeness/meta.yaml index 6e24a0a0c3ed1..c530adfc6bd9d 100644 --- a/recipes/kegg-pathways-completeness/meta.yaml +++ b/recipes/kegg-pathways-completeness/meta.yaml @@ -1,5 +1,5 @@ {% set name = "kegg-pathways-completeness" %} -{% set version = "1.0.4" %} +{% set version = "1.0.5" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/kegg_pathways_completeness-{{ version }}.tar.gz - sha256: 4772c0d2cc8364e7b26483a889531f18b43ab37ed38d722b260a2ee13c2232e5 + sha256: b7ec0b1ceabd168296a18ab1184a26e40cfa4fdcaf156cd1d75b0e12c51f8aaa build: entry_points: From a2fe739a60566c51829fc6386e17cc677c544c3c Mon Sep 17 00:00:00 2001 From: Guy Assa <78320514+theAguy@users.noreply.github.com> Date: Mon, 8 Jul 2024 14:53:46 +0300 Subject: [PATCH 0387/1514] v2.1.2 (#48993) newer pandas package version --- recipes/crispector2/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/crispector2/meta.yaml b/recipes/crispector2/meta.yaml index 341087d2dc5fa..e159b8c39c584 100644 --- a/recipes/crispector2/meta.yaml +++ b/recipes/crispector2/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.1.1" %} +{% set version = "2.1.2" %} package: name: crispector2 @@ -15,7 +15,7 @@ build: source: url: https://github.com/theAguy/crispector2/archive/refs/tags/v{{ version }}.tar.gz - sha256: 6a741b8434056e1f0ed8cb1412448ea66507f7f6f425a53e2c4de4d424e47dab + sha256: 1c624fda975f293b5acab8b2c6afe98cacaaa77a79dc54c923b18c08fa1942cc requirements: host: @@ -33,7 +33,7 @@ requirements: - numpy >=1.12.1 - seaborn >=0.9.0 - plotly >=4.3.0 - - pandas ==1.3.5 + - pandas >=0.24.2 - statsmodels - jinja2 - tqdm >=4.66.0 From dd5688eeed4d212f69d919ddee980ee8bd4cde52 Mon Sep 17 00:00:00 2001 From: Hamdiye Uzuner Date: Mon, 8 Jul 2024 14:18:07 +0200 Subject: [PATCH 0388/1514] Update orthanq (#48832) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update dependencies * increment build number in meta.yaml * add whitespaces before tool versions in meta.yaml * Update meta.yaml --------- Co-authored-by: Felix Mölder --- recipes/orthanq/meta.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/recipes/orthanq/meta.yaml b/recipes/orthanq/meta.yaml index 772e7ac067d13..383c8ddc45954 100644 --- a/recipes/orthanq/meta.yaml +++ b/recipes/orthanq/meta.yaml @@ -5,7 +5,8 @@ package: version: {{ version }} build: - number: 0 + number: 1 + skip: True # [osx] run_exports: - {{ pin_subpackage("orthanq", max_pin="x") }} @@ -34,6 +35,10 @@ requirements: - coincbc - hdf5 =1.10.5 - fontconfig + - htslib + - varlociraptor =8.4.7 + - samtools =1.19 + - vg =1.56 run: - gsl - libcblas From 55dc72510671fc61a411ef6ed5ce76f12c67559e Mon Sep 17 00:00:00 2001 From: Edmund Miller <20095261+edmundmiller@users.noreply.github.com> Date: Mon, 8 Jul 2024 10:17:56 -0500 Subject: [PATCH 0389/1514] chore: Emiller88 => bioinformaticsorphanange (#49004) --- recipes/narfmap/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/narfmap/meta.yaml b/recipes/narfmap/meta.yaml index 71cd11b7b0534..633f583be5646 100644 --- a/recipes/narfmap/meta.yaml +++ b/recipes/narfmap/meta.yaml @@ -7,11 +7,11 @@ package: version: {{ version }} source: - url: https://github.com/Emiller88/NARFMAP/archive/refs/tags/{{ version }}.tar.gz + url: https://github.com/bioinformaticsorphanage/NARFMAP/archive/refs/tags/{{ version }}.tar.gz sha256: {{ sha256 }} build: - number: 0 + number: 1 skip: True # [osx] run_exports: - {{ pin_subpackage("narfmap", max_pin="x") }} From 336be882c4766ffa36a553a97fa7c53d28347085 Mon Sep 17 00:00:00 2001 From: Luis M Rodriguez-R Date: Mon, 8 Jul 2024 17:31:56 +0200 Subject: [PATCH 0390/1514] Nonpareil 3.5.4 (#49008) --- recipes/nonpareil/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/nonpareil/meta.yaml b/recipes/nonpareil/meta.yaml index 1d4d4f046d7fa..553c4d5f0a67e 100644 --- a/recipes/nonpareil/meta.yaml +++ b/recipes/nonpareil/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "3.5.3" %} -{% set sha256 = "0b38cfd16931b6005992d3c902aaa91943fbf67f67a64c5c0b9ed6a419e7ec90" %} +{% set version = "3.5.4" %} +{% set sha256 = "41ea9c1378e85787142b29c7cdf8d352073764a620f818333492266e6bbec1cd" %} package: name: nonpareil From 2c3294645ca9342ee79463443eb7d702a7fe15c6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 8 Jul 2024 11:47:42 -0400 Subject: [PATCH 0391/1514] Update nonpareil to 3.5.4 (#49011) From a8eb70a83f09aed94f36c3c32836b11596610733 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 8 Jul 2024 11:48:45 -0400 Subject: [PATCH 0392/1514] Update dxpy to 0.379.0 (#49010) --- recipes/dxpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/dxpy/meta.yaml b/recipes/dxpy/meta.yaml index cc419f0ad4aad..51818f8006263 100644 --- a/recipes/dxpy/meta.yaml +++ b/recipes/dxpy/meta.yaml @@ -1,5 +1,5 @@ {% set name = "dxpy" %} -{% set version = "0.378.0" %} +{% set version = "0.379.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: fe82611e622f8a5016cee3821f337a0e20808c4a9d70da93dc900574fee2897e + sha256: 09cf1e418be0fc91dd23ee916e83eacd1f5f3baa8972484f713e1cd4ed081ff1 build: number: 0 From 0a3798758c7f47330584742fc45be296e7e50229 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 8 Jul 2024 11:49:11 -0400 Subject: [PATCH 0393/1514] Update sniffles to 2.4 (#49009) --- recipes/sniffles/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sniffles/meta.yaml b/recipes/sniffles/meta.yaml index 59a64c05b52ab..445120497e1c0 100644 --- a/recipes/sniffles/meta.yaml +++ b/recipes/sniffles/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "2.3.3" %} -{% set sha256 = "b9218d37944a1d8b5b234c994d0303c42b04dc40e65bec33ba48601495ff891a" %} +{% set version = "2.4" %} +{% set sha256 = "e3c2f552105cd5f5941d6291b9ee9dbfe634ad19b5e7a64fa26b9e2daa6547d4" %} package: name: sniffles From 684188a3fda115907aaded0f369534149ff80b47 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 8 Jul 2024 11:51:37 -0400 Subject: [PATCH 0394/1514] Update harpy to 1.2.1 (#49005) --- recipes/harpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index 5b0fdf27c89b5..09bfca5bdf8f1 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.2.0" %} -{% set sha256 = "01675fc5fee40e3fd43aafd54725cf84009d73cc2f630289a7c23ed46530bc9a" %} +{% set version = "1.2.1" %} +{% set sha256 = "d028c751815cdba8cbbef81e14241314f5937831c079eb0164ee338e56a982a0" %} package: name: harpy From 2c145a9133bc998baeb00b7ce1af337dfbfa25ca Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 8 Jul 2024 11:52:07 -0400 Subject: [PATCH 0395/1514] Update orthanq to 1.6.0 (#49002) --- recipes/orthanq/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/orthanq/meta.yaml b/recipes/orthanq/meta.yaml index 383c8ddc45954..4a92e28023818 100644 --- a/recipes/orthanq/meta.yaml +++ b/recipes/orthanq/meta.yaml @@ -1,18 +1,18 @@ -{% set version = "1.5.0" %} +{% set version = "1.6.0" %} package: name: orthanq version: {{ version }} build: - number: 1 + number: 0 skip: True # [osx] run_exports: - {{ pin_subpackage("orthanq", max_pin="x") }} source: url: https://github.com/orthanq/orthanq/archive/v{{ version }}.tar.gz - sha256: 90c2cb4f90fe701fa6bc3d26a7655f49a7bfa0dd16efea069d7f7bbe7ce0cd68 + sha256: 70b64aa96ec43e160de8c32b379288c15ccbe201447a524c22583ef62cf4d518 requirements: build: From dfc4f9732eaad842ade755e8b7e7746b31cff340 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 8 Jul 2024 13:35:17 -0400 Subject: [PATCH 0396/1514] Update fq to 0.12.0 (#49015) --- recipes/fq/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/fq/meta.yaml b/recipes/fq/meta.yaml index 473e91edef61f..4c6f5e690814b 100644 --- a/recipes/fq/meta.yaml +++ b/recipes/fq/meta.yaml @@ -1,6 +1,6 @@ {% set name = "fq" %} -{% set version = "0.11.0" %} -{% set sha256 = "9bd87c66f230ad8bdd29d1220d0a7079d4d2c53df6c2ad33f4e5d845ece63c78" %} +{% set version = "0.12.0" %} +{% set sha256 = "d17ef77d2f57ace316a7b35d910c5cd73be2a0d70ec7fcd31f2d0e3afbe1273c" %} package: name: {{ name|lower }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('fq', max_pin="x") }} From 5da26f83276bb04f587473d4dbcce9ca69da613a Mon Sep 17 00:00:00 2001 From: Daniel DW Kim <49298377+endixk@users.noreply.github.com> Date: Mon, 8 Jul 2024 15:09:35 -0600 Subject: [PATCH 0397/1514] update ufcg to 1.0.6 (#49014) --- recipes/ufcg/meta.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/ufcg/meta.yaml b/recipes/ufcg/meta.yaml index 3a687eaf90ffe..55819a6636192 100644 --- a/recipes/ufcg/meta.yaml +++ b/recipes/ufcg/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ufcg" %} -{% set version = "1.0.5" %} -{% set sha256 = "819176e4097c8654e70e1ae49f731aa26f450282f8642783005009b526ce22c3" %} +{% set version = "1.0.6" %} +{% set sha256 = "5b4f171f066eb30a546713e68e67b0dd229314a1941a5796bebd41e028239092" %} package: name: {{ name|lower }} @@ -11,6 +11,8 @@ source: sha256: {{ sha256 }} build: + run_exports: + - {{ pin_subpackage('ufcg', max_pin="x") }} noarch: generic number: 0 From e8df2c13d71016060d0830bef7a8385d9d8839af Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 8 Jul 2024 17:10:42 -0400 Subject: [PATCH 0398/1514] Update trust4 to 1.1.2 (#49016) --- recipes/trust4/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/trust4/meta.yaml b/recipes/trust4/meta.yaml index 97f07b02111e8..b80e36056574d 100644 --- a/recipes/trust4/meta.yaml +++ b/recipes/trust4/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.1.1" %} +{% set version = "1.1.2" %} package: name: trust4 @@ -11,7 +11,7 @@ build: source: url: https://github.com/liulab-dfci/TRUST4/archive/v{{ version }}.tar.gz - sha256: 65ea98d468a2921c1591120041c3ca1caac76c37bd804b0d4b64b11c73a382ed + sha256: 9321775c9636e31e4448952a9338c78736b652d46f219c0aef28386a0ca3d5a0 requirements: build: From 055e4399ef6bd571f0fe6e8f37eb0e982c8cf9ad Mon Sep 17 00:00:00 2001 From: Rob Patro Date: Mon, 8 Jul 2024 21:50:11 -0400 Subject: [PATCH 0399/1514] bump piscem to v0.10.0 (#49020) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update meta.yaml Move from vcs to `source_recursive` for build. * Update meta.yaml --------- Co-authored-by: Björn Grüning --- recipes/piscem/meta.yaml | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/recipes/piscem/meta.yaml b/recipes/piscem/meta.yaml index c4a69cd798f80..fd6566d3b29ab 100644 --- a/recipes/piscem/meta.yaml +++ b/recipes/piscem/meta.yaml @@ -1,22 +1,17 @@ -{% set version = "0.9.0" %} -{% set git_commit = "904675fe0dd73335121a588ab883cc19708368e9" %} -{% set sha256 = "ebc61e115e883201c0a64918fe6d20b681090102a1d2ea4fd321fa94e673670d" %} +{% set version = "0.10.0" %} package: name: piscem version: {{ version }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage("piscem", max_pin="x.x") }} source: - git_url: https://github.com/COMBINE-lab/piscem - git_rev: "{{ git_commit }}" - sha256: {{ sha256 }} - patches: - - build_rs.patch + url: https://github.com/COMBINE-lab/piscem/releases/download/v{{ version }}/source_recursive.tar.gz + sha256: c2bad3704086e6f7d1930fe5ac38c1d724a50aa88dc19b82445cc23e3b7a207c requirements: build: @@ -49,5 +44,3 @@ about: extra: additional-platforms: - linux-aarch64 - skip-lints: - - uses_vcs_url From 93388f21ab210aaf64f12f2baa801702c6fc1070 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 00:04:57 -0400 Subject: [PATCH 0400/1514] Update simpleaf to 0.17.1 (#49024) --- recipes/simpleaf/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/simpleaf/meta.yaml b/recipes/simpleaf/meta.yaml index be28ce13f2e79..527f757ef3a3a 100644 --- a/recipes/simpleaf/meta.yaml +++ b/recipes/simpleaf/meta.yaml @@ -1,17 +1,17 @@ -{% set version = "0.17.0" %} +{% set version = "0.17.1" %} package: name: simpleaf version: {{ version }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage("simpleaf", max_pin="x.x") }} source: url: https://github.com/COMBINE-lab/simpleaf/archive/v{{ version }}.tar.gz - sha256: 584fec26f3841e53793dc5de1abb5a4b19373d744f7c205c85ae8abac3c77f2a + sha256: f7e2a3a187918b7d8c67b77ddd4cd2591cde4acb0ce5d27a5529de500a6ed396 requirements: build: From d55a748c993359dae2ef471063a993d9f092bffe Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 00:17:08 -0400 Subject: [PATCH 0401/1514] Update zol to 1.4.9 (#49023) --- recipes/zol/build_failure.linux-64.yaml | 104 ------------------------ recipes/zol/build_failure.osx-64.yaml | 104 ------------------------ recipes/zol/meta.yaml | 6 +- 3 files changed, 3 insertions(+), 211 deletions(-) delete mode 100644 recipes/zol/build_failure.linux-64.yaml delete mode 100644 recipes/zol/build_failure.osx-64.yaml diff --git a/recipes/zol/build_failure.linux-64.yaml b/recipes/zol/build_failure.linux-64.yaml deleted file mode 100644 index e41e8093e2c86..0000000000000 --- a/recipes/zol/build_failure.linux-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 73d1967c85e3d7352bc7911468e2d69a9404a57ea581d74ba1acf86db3c0be9f # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - [31mpython_abi 3.12.* *_cp312[0m is not installable because it conflicts with any installable versions previously reported. - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/conda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build - create_build_envs(top_level_pkg, notest) - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs - raise e - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs - environ.get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions - precs = _install_actions(prefix, index, specs)["LINK"] - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions - txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction - unlink_precs, link_precs = self.solve_for_diff( - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff - final_precs = self.solve_final_state( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state - out_state = self._solving_loop(in_state, out_state, index) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop - solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("biopython==1.79=py310h6acc77f_1"), MatchSpec("python_abi=3.10[build=*_cp310]"), MatchSpec("pomegranate==0.13.3=py310h91b1402_3")} - Encountered problems while solving: - - package pomegranate-0.13.3-py310h91b1402_3 requires python_abi 3.10.* *_cp310, but none of the providers can be installed - - package biopython-1.79-py310h6acc77f_1 requires python_abi 3.10.* *_cp310, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - [32mbiopython 1.79.* [0m is installable with the potential options - [32mbiopython 1.79[0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.11.* *_cp311[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.6 *_pypy36_pp73[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.7 *_pypy37_pp73[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [32mbiopython 1.79[0m would require - [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; - [32mpandas >=2.0 [0m is installable with the potential options - [32mpandas [2.0.0|2.0.1|...|2.2.2][0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [32mpandas [2.0.0|2.0.1|...|2.2.2][0m would require - [32mpython_abi 3.11.* *_cp311[0m, which can be installed; - [32mpandas [2.0.0|2.0.1|2.0.2|2.0.3][0m would require - [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; - [32mpandas [2.0.0|2.0.1|2.0.2|2.0.3][0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mpandas [2.0.0|2.0.1|...|2.2.2][0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [32mpandas [2.0.0|2.0.1|...|2.2.2][0m would require - [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; - [31mpandas [2.1.1|2.1.2|...|2.2.2][0m would require - [31mpython_abi 3.12.* *_cp312[0m, which conflicts with any installable versions previously reported; - [32mpomegranate >0.13,<=0.14.8 [0m is installable with the potential options - [32mpomegranate [0.13.3|0.14.8][0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [32mpomegranate 0.13.3[0m would require - [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; - [32mpomegranate [0.13.3|0.14.8][0m would require - [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; - [32mpomegranate [0.13.3|0.14.8][0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mpomegranate [0.13.3|0.14.8][0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [31mpython >=3.12,<3.13.0a0 [0m is not installable because it requires - [31mpython_abi 3.12.* *_cp312[0m, which conflicts with any installable versions previously reported; - [31mpython_abi 3.12.* *_cp312[0m is not installable because it conflicts with any installable versions previously reported. -# Last 100 lines of the build log. diff --git a/recipes/zol/build_failure.osx-64.yaml b/recipes/zol/build_failure.osx-64.yaml deleted file mode 100644 index 6c896971a0cd6..0000000000000 --- a/recipes/zol/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 73d1967c85e3d7352bc7911468e2d69a9404a57ea581d74ba1acf86db3c0be9f # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("python=3.10"), MatchSpec("python_abi=3.10[build=*_cp310]"), MatchSpec("codoff==1.0.0=pyh7cba7a3_0"), MatchSpec("pomegranate==0.13.3=py310h2fea185_3")} - Encountered problems while solving: - - package pomegranate-0.13.3-py310h2fea185_3 requires python_abi 3.10.* *_cp310, but none of the providers can be installed - - package codoff-1.0.0-pyh7cba7a3_0 requires python 3.10.*, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - codoff is installable with the potential options - codoff 1.0.0 would require - python_abi 3.10.* *_cp310, which can be installed; - codoff [1.0.0|1.1.0] would require - python 3.10.* , which requires - python_abi 3.10.* *_cp310, which can be installed; - pomegranate >0.13,<=0.14.8 is installable with the potential options - pomegranate [0.13.3|0.14.8] would require - python_abi 3.10.* *_cp310, which can be installed; - pomegranate 0.13.3 would require - python_abi 3.6.* *_cp36m, which can be installed; - pomegranate [0.13.3|0.14.8] would require - python_abi 3.7.* *_cp37m, which can be installed; - pomegranate [0.13.3|0.14.8] would require - python_abi 3.8.* *_cp38, which can be installed; - pomegranate [0.13.3|0.14.8] would require - python_abi 3.9.* *_cp39, which can be installed; - python >=3.11,<3.12.0a0 is not installable because it requires - python_abi 3.11.* *_cp311, which conflicts with any installable versions previously reported; - python_abi 3.11.* *_cp311 is not installable because it conflicts with any installable versions previously reported. - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build - create_build_envs(top_level_pkg, notest) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs - raise e - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs - environ.get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions - precs = _install_actions(prefix, index, specs)["LINK"] - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions - txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction - unlink_precs, link_precs = self.solve_for_diff( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff - final_precs = self.solve_final_state( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state - out_state = self._solving_loop(in_state, out_state, index) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop - solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("python=3.10"), MatchSpec("python_abi=3.10[build=*_cp310]"), MatchSpec("codoff==1.0.0=pyh7cba7a3_0"), MatchSpec("pomegranate==0.13.3=py310h2fea185_3")} - Encountered problems while solving: - - package pomegranate-0.13.3-py310h2fea185_3 requires python_abi 3.10.* *_cp310, but none of the providers can be installed - - package codoff-1.0.0-pyh7cba7a3_0 requires python 3.10.*, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - codoff is installable with the potential options - codoff 1.0.0 would require - python_abi 3.10.* *_cp310, which can be installed; - codoff [1.0.0|1.1.0] would require - python 3.10.* , which requires - python_abi 3.10.* *_cp310, which can be installed; - pomegranate >0.13,<=0.14.8 is installable with the potential options - pomegranate [0.13.3|0.14.8] would require - python_abi 3.10.* *_cp310, which can be installed; - pomegranate 0.13.3 would require - python_abi 3.6.* *_cp36m, which can be installed; - pomegranate [0.13.3|0.14.8] would require - python_abi 3.7.* *_cp37m, which can be installed; - pomegranate [0.13.3|0.14.8] would require - python_abi 3.8.* *_cp38, which can be installed; - pomegranate [0.13.3|0.14.8] would require - python_abi 3.9.* *_cp39, which can be installed; - python >=3.11,<3.12.0a0 is not installable because it requires - python_abi 3.11.* *_cp311, which conflicts with any installable versions previously reported; - python_abi 3.11.* *_cp311 is not installable because it conflicts with any installable versions previously reported. -# Last 100 lines of the build log. diff --git a/recipes/zol/meta.yaml b/recipes/zol/meta.yaml index 7bd43afd0cba9..09a59909ca95f 100644 --- a/recipes/zol/meta.yaml +++ b/recipes/zol/meta.yaml @@ -1,5 +1,5 @@ {% set name = "zol" %} -{% set version = "1.4.8" %} +{% set version = "1.4.9" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Kalan-Lab/zol/archive/refs/tags/v{{ version }}.tar.gz - sha256: 9991713dd8f05638f0f50362be4b79fd8411fa62a037475768d0737927a257b3 + sha256: b4a6a2f62bf9763de6b78ab0832a692696ac8250161998adc50677d829df1a7b build: number: 0 @@ -24,7 +24,7 @@ requirements: - pip - axel run: - - python =3.12 + - python >=3.10 - r-base - biopython - muscle From 614e85c141ea15606b958bfe74c3d73540a6c486 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 02:52:12 -0400 Subject: [PATCH 0402/1514] Update fwdpy11 to 0.23.0 (#49019) --- recipes/fwdpy11/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/fwdpy11/meta.yaml b/recipes/fwdpy11/meta.yaml index a68b9132ad4b0..8100a53c23f66 100644 --- a/recipes/fwdpy11/meta.yaml +++ b/recipes/fwdpy11/meta.yaml @@ -1,5 +1,5 @@ {% set name = "fwdpy11" %} -{% set version = "0.22.2" %} +{% set version = "0.23.0" %} package: name: {{ name|lower }} @@ -7,11 +7,11 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/fwdpy11-{{ version }}.tar.gz - sha256: 4bdd42d749d3c4e12f728c16d6db8c97bb5d03fff7362fe98b3c8cdfa759841d + sha256: 2ba384af7fcf71ebd8ff348be0234d6ac37066f29aae5a85e5a4af8967b5d14d build: skip: True # [py < 38 or py > 312] - number: 1 + number: 0 script_env: - SETUPTOOLS_SCM_PRETEND_VERSION={{ version }} entry_points: From 03c51886a5553282a77fb4698d6ccb51824ee246 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 02:53:09 -0400 Subject: [PATCH 0403/1514] Update arvados-python-client to 2.7.4 (#49022) --- recipes/arvados-python-client/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/arvados-python-client/meta.yaml b/recipes/arvados-python-client/meta.yaml index d651b2f31f9ae..c3bd699301f87 100644 --- a/recipes/arvados-python-client/meta.yaml +++ b/recipes/arvados-python-client/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.7.3" %} +{% set version = "2.7.4" %} package: name: arvados-python-client @@ -6,7 +6,7 @@ package: source: url: https://pypi.io/packages/source/a/arvados-python-client/arvados-python-client-{{ version }}.tar.gz - sha256: 9ef9050ce680832bff76f8d283e3b445252f21ee927b2b63949271fe9b2a4bc2 + sha256: 932398da39daba88041f1084d19019e7300cac462ef93f181f40aa85562ff275 build: noarch: python From 10c42c720142cd1466c2959cc03e3ff56c9a4af7 Mon Sep 17 00:00:00 2001 From: Jack Huey <31162821+jackh726@users.noreply.github.com> Date: Tue, 9 Jul 2024 02:58:39 -0400 Subject: [PATCH 0404/1514] Bump pybigtools to 0.2.0 (#49017) * Bump pybigtools to 0.2.0 and attempt to fix CI by specifying macos target * Try to fix otool SIGABT --- recipes/pybigtools/build.sh | 15 +++ recipes/pybigtools/build_failure.osx-64.yaml | 104 ------------------- recipes/pybigtools/meta.yaml | 6 +- 3 files changed, 18 insertions(+), 107 deletions(-) delete mode 100644 recipes/pybigtools/build_failure.osx-64.yaml diff --git a/recipes/pybigtools/build.sh b/recipes/pybigtools/build.sh index cefe90b6b78af..9f7a317e6924c 100644 --- a/recipes/pybigtools/build.sh +++ b/recipes/pybigtools/build.sh @@ -8,6 +8,21 @@ set -ex # We set CARGO_HOME because we don't pass on HOME to conda-build, thus rendering the default "${HOME}/.cargo" defunct. export CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_HOME="${BUILD_PREFIX}/.cargo" +# There is some issue here building with Python 3.8 on macOS >= 11 +# See https://github.com/pypa/cibuildwheel/issues/1410 +export MACOSX_DEPLOYMENT_TARGET=12.7 +export MACOS_DEPLOYMENT_TARGET=12.7 +export SYSTEM_VERSION_COMPAT=0 + +# See https://github.com/conda/conda-build/issues/4392#issuecomment-1370281802 +if [[ $target_platform == osx-* ]]; then + for toolname in "otool" "install_name_tool"; do + tool=$(find "${BUILD_PREFIX}/bin/" -name "*apple*-$toolname") + mv "${tool}" "${tool}.bak" + ln -s "/Library/Developer/CommandLineTools/usr/bin/${toolname}" "$tool" + done +fi + # Use a custom temporary directory as home on macOS. # (not sure why this is useful, but people use it in bioconda recipes) if [ `uname` == Darwin ]; then diff --git a/recipes/pybigtools/build_failure.osx-64.yaml b/recipes/pybigtools/build_failure.osx-64.yaml deleted file mode 100644 index bd6db290ad53d..0000000000000 --- a/recipes/pybigtools/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: b9846a21ec9bbbc46ad39d8e456cece6d42e6d609a0ff345cf122226589854ab # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-e92d517a950bccd8.rlib(addr2line-e92d517a950bccd8.addr2line.7eb29e6a0a38fefd-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-8ce93eee8bf4c86e.rlib(panic_unwind-8ce93eee8bf4c86e.panic_unwind.a3b8ea81b157ee45-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-7f42af62722c8f43.rlib(compiler_builtins-7f42af62722c8f43.compiler_builtins.19fed66cffb9e9f5-cgu.089.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - Undefined symbols for architecture x86_64: - "_getentropy", referenced from: - std::sys::pal::unix::rand::hashmap_random_keys::hcc27ed0e9fd421d6 in libstd-2ad7f97be9e16ca5.rlib(std-2ad7f97be9e16ca5.std.73125d0ae810e61b-cgu.0.rcgu.o) - ld: symbol(s) not found for architecture x86_64 - clang-16: error: linker command failed with exit code 1 (use -v to see invocation) - - - error: linking with x86_64-apple-darwin13.4.0-clang failed: exit status: 1 - | - = note: env -u IPHONEOS_DEPLOYMENT_TARGET -u TVOS_DEPLOYMENT_TARGET LC_ALL="C" PATH="/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/bin:/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/.cargo/bin:/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/bin:/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin:/opt/mambaforge/envs/bioconda/condabin:/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/bin:/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin:/opt/mambaforge/envs/bioconda/bin:/opt/mambaforge/condabin:/opt/mambaforge/bin:/usr/local/lib/ruby/gems/3.0.0/bin:/usr/local/opt/ruby@3.0/bin:/usr/local/opt/pipx_bin:/Users/runner/.cargo/bin:/usr/local/opt/curl/bin:/usr/local/bin:/usr/local/sbin:/Users/runner/bin:/Users/runner/.yarn/bin:/Users/runner/Library/Android/sdk/tools:/Users/runner/Library/Android/sdk/platform-tools:/Library/Frameworks/Python.framework/Versions/Current/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/usr/bin:/bin:/usr/sbin:/sbin:/Users/runner/.dotnet/tools" VSLANG="1033" ZERO_AR_DATE="1" "x86_64-apple-darwin13.4.0-clang" "-arch" "x86_64" "-m64" "/tmp/rustcDjA4SX/symbols.o" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/build/ring-e2a4c35a507cf1ef/build_script_build-e2a4c35a507cf1ef.build_script_build.4b1b86ea32bc8395-cgu.0.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/build/ring-e2a4c35a507cf1ef/build_script_build-e2a4c35a507cf1ef.build_script_build.4b1b86ea32bc8395-cgu.1.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/build/ring-e2a4c35a507cf1ef/build_script_build-e2a4c35a507cf1ef.build_script_build.4b1b86ea32bc8395-cgu.2.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/build/ring-e2a4c35a507cf1ef/build_script_build-e2a4c35a507cf1ef.build_script_build.4b1b86ea32bc8395-cgu.3.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/build/ring-e2a4c35a507cf1ef/build_script_build-e2a4c35a507cf1ef.build_script_build.4b1b86ea32bc8395-cgu.4.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/build/ring-e2a4c35a507cf1ef/build_script_build-e2a4c35a507cf1ef.build_script_build.4b1b86ea32bc8395-cgu.5.rcgu.o" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/build/ring-e2a4c35a507cf1ef/build_script_build-e2a4c35a507cf1ef.vmxxw6nstdc094v.rcgu.o" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/deps" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/deps/libcc-313c0a1ebd4656a8.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libstd-2ad7f97be9e16ca5.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-8ce93eee8bf4c86e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libobject-0e1339b212cc7409.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libmemchr-925e672b3deb429c.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-e92d517a950bccd8.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libgimli-de95e5c2a2ace281.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-37f4c48e230f618e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libstd_detect-dfeb4bb0652b6b8e.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-0e3ea0ec18336be2.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_alloc-39dd3003e36d7872.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libminiz_oxide-5ea1513e08ee15e0.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libadler-2967159221f4860d.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libunwind-b70656709e3eca11.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcfg_if-cc5626b2e0399737.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/liblibc-8378684dba6ab463.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/liballoc-0ff05b9b25b786cc.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_core-9a6da74aeab39c54.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcore-1638dc700d175798.rlib" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-7f42af62722c8f43.rlib" "-lSystem" "-lc" "-lm" "-L" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib" "-o" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/target/release/build/ring-e2a4c35a507cf1ef/build_script_build-e2a4c35a507cf1ef" "-Wl,-dead_strip" "-nodefaultlibs" - = note: ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libstd-2ad7f97be9e16ca5.rlib(std-2ad7f97be9e16ca5.std.73125d0ae810e61b-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcore-1638dc700d175798.rlib(core-1638dc700d175798.core.b1c2fc210f4dfff9-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/liballoc-0ff05b9b25b786cc.rlib(alloc-0ff05b9b25b786cc.alloc.9242d371e396bc4c-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-37f4c48e230f618e.rlib(rustc_demangle-37f4c48e230f618e.rustc_demangle.9fdffeb2b56169d1-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libgimli-de95e5c2a2ace281.rlib(gimli-de95e5c2a2ace281.gimli.72653df79598dcb2-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libobject-0e1339b212cc7409.rlib(object-0e1339b212cc7409.object.e3756fe3fb577255-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libmemchr-925e672b3deb429c.rlib(memchr-925e672b3deb429c.memchr.4dc4a05d80618598-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-e92d517a950bccd8.rlib(addr2line-e92d517a950bccd8.addr2line.7eb29e6a0a38fefd-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-8ce93eee8bf4c86e.rlib(panic_unwind-8ce93eee8bf4c86e.panic_unwind.a3b8ea81b157ee45-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-7f42af62722c8f43.rlib(compiler_builtins-7f42af62722c8f43.compiler_builtins.19fed66cffb9e9f5-cgu.089.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - ld: warning: object file (/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-0e3ea0ec18336be2.rlib(hashbrown-0e3ea0ec18336be2.hashbrown.febebf65344cb99d-cgu.0.rcgu.o)) was built for newer macOS version (10.12) than being linked (10.9) - Undefined symbols for architecture x86_64: - "_getentropy", referenced from: - std::sys::pal::unix::rand::hashmap_random_keys::hcc27ed0e9fd421d6 in libstd-2ad7f97be9e16ca5.rlib(std-2ad7f97be9e16ca5.std.73125d0ae810e61b-cgu.0.rcgu.o) - ld: symbol(s) not found for architecture x86_64 - clang-16: error: linker command failed with exit code 1 (use -v to see invocation) - - - error: could not compile ring (build script) due to 1 previous error - warning: build failed, waiting for other jobs to finish... - error: could not compile pyo3-build-config (build script) due to 1 previous error - maturin failed - Caused by: Failed to build a native library through cargo - Caused by: Cargo build finished with "exit status: 101": env -u CARGO PYO3_ENVIRONMENT_SIGNATURE="cpython-3.10-64bit" PYO3_PYTHON="/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/python" PYTHON_SYS_EXECUTABLE="/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/python" "cargo" "rustc" "--target" "x86_64-apple-darwin" "--message-format" "json-render-diagnostics" "--manifest-path" "/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/pybigtools/Cargo.toml" "--release" "--lib" "--" "-C" "link-arg=-undefined" "-C" "link-arg=dynamic_lookup" "-C" "link-args=-Wl,-install_name,@rpath/pybigtools.cpython-310-darwin.so" "-C" "link-arg=-s" - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in - Extracting download - source tree in: /opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work - export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla - export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/_build_env - export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work - INFO: activate_clang_osx-64.sh made the following environmental changes: - AR=x86_64-apple-darwin13.4.0-ar - AS=x86_64-apple-darwin13.4.0-as - sys.exit(execute()) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - CC=x86_64-apple-darwin13.4.0-clang - CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pybigtools-0.1.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - CLANG=x86_64-apple-darwin13.4.0-clang - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/pybigtools_1717525317406/work/conda_build.sh']' returned non-zero exit status 1. - CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin - CMAKE_PREFIX_PATH=:$PREFIX - CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 - CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 - CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 - DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pybigtools-0.1.4 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - HOST=x86_64-apple-darwin13.4.0 - INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool - LD=x86_64-apple-darwin13.4.0-ld - LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib - LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib - LIBTOOL=x86_64-apple-darwin13.4.0-libtool - LIPO=x86_64-apple-darwin13.4.0-lipo - MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib - NM=x86_64-apple-darwin13.4.0-nm - NMEDIT=x86_64-apple-darwin13.4.0-nmedit - OBJC=x86_64-apple-darwin13.4.0-clang - OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - OTOOL=x86_64-apple-darwin13.4.0-otool - PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff - RANLIB=x86_64-apple-darwin13.4.0-ranlib - REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding - SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk - SEGEDIT=x86_64-apple-darwin13.4.0-segedit - SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table - SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack - SIZE=x86_64-apple-darwin13.4.0-size - STRINGS=x86_64-apple-darwin13.4.0-strings - STRIP=x86_64-apple-darwin13.4.0-strip - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 - ac_cv_func_malloc_0_nonnull=yes - ac_cv_func_realloc_0_nonnull=yes - build_alias=x86_64-apple-darwin13.4.0 - host_alias=x86_64-apple-darwin13.4.0 -# Last 100 lines of the build log. diff --git a/recipes/pybigtools/meta.yaml b/recipes/pybigtools/meta.yaml index 3711f68418a60..d584f297c19e9 100644 --- a/recipes/pybigtools/meta.yaml +++ b/recipes/pybigtools/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pybigtools" %} -{% set version = "0.1.4" %} -{% set sha256 = "79650f78178b05c293843c378d455b60f98119d5201d09938a62d41d4e0bd313" %} +{% set version = "0.2.0" %} +{% set sha256 = "7c5d1676c5042b92f3f11bae3166cda92f5b33eb1a0a8c3411eb4c54ed94dd12" %} package: name: {{ name }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('pybigtools', max_pin="x.x") }} From f2702e7f8438402ba9986e62b052bd1edbe4348f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?An=C5=BEe=20Stari=C4=8D?= Date: Tue, 9 Jul 2024 09:08:24 +0200 Subject: [PATCH 0405/1514] Update sentieon to 202308.03 (#49025) --- recipes/sentieon/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sentieon/meta.yaml b/recipes/sentieon/meta.yaml index cb9b80ca081b4..be624c6675928 100644 --- a/recipes/sentieon/meta.yaml +++ b/recipes/sentieon/meta.yaml @@ -1,11 +1,11 @@ -{% set version="202308.02" %} +{% set version="202308.03" %} package: name: sentieon version: {{ version }} source: - url: https://s3.amazonaws.com/sentieon-release/software/sentieon-genomics-{{ version }}.tar.gz # [linux64] - sha256: a04b98c1b7c4e8916fdc45f15685d5fd83db56386ec2478eb5ea594170405bd5 # [linux64] + sha256: d51d1a192aa9fd3108f4baa5e1d0784ea80af6734fcc1a27a57e15779f43fcf1 # [linux64] patches: # [linux64] # Fix driver scripts so they resolves location including symlinks - sentieon_symlinks.patch # [linux64] From 8cb3e1a04e98a58e410ba6c477086895bc206534 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20H=2E=20Franceschini-Santos?= Date: Tue, 9 Jul 2024 06:02:52 -0300 Subject: [PATCH 0406/1514] Update parm to v0.0.3 (#49029) --- recipes/parm/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/parm/meta.yaml b/recipes/parm/meta.yaml index b1563801d83de..8a9136750dcbc 100644 --- a/recipes/parm/meta.yaml +++ b/recipes/parm/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.0.2" %} -{% set sha256 = "a4a39e3f07eab33968ae6a96d1853c63b50b8acbfd1cf5361bae8288fa389ddf" %} +{% set version = "0.0.3" %} +{% set sha256 = "c04f8ec7d0d595e6dee291115aa1626371f17a36e125724d1576e7d4b829d8c7" %} package: name: parm From 13936c7070c2b7726f51259e8c956ce62bc4432d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 08:01:13 -0400 Subject: [PATCH 0407/1514] Update metabolights-utils to 1.1.3 (#49031) --- recipes/metabolights-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/metabolights-utils/meta.yaml b/recipes/metabolights-utils/meta.yaml index 7cf6ac64097b8..c2ed7fc4b6ca6 100644 --- a/recipes/metabolights-utils/meta.yaml +++ b/recipes/metabolights-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "metabolights-utils" %} -{% set version = "1.1.2" %} +{% set version = "1.1.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/metabolights_utils-{{ version }}.tar.gz - sha256: 8ee604a991c739203c3f228253a9465399682b9bd8ae985350f50fdcc56b9a03 + sha256: 77a18d9f69e61f6fe607b7497f9b627b56a773a1d00575776f01f0ae3f901eb9 build: entry_points: From a71c97784847e95470d4cd0e2e081acbc74427e3 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 08:01:42 -0400 Subject: [PATCH 0408/1514] Update scirpy to 0.17.2 (#49032) --- recipes/scirpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/scirpy/meta.yaml b/recipes/scirpy/meta.yaml index 290b5babc4e93..98fde15171638 100644 --- a/recipes/scirpy/meta.yaml +++ b/recipes/scirpy/meta.yaml @@ -1,5 +1,5 @@ {% set name = "scirpy" %} -{% set version = "0.17.1" %} +{% set version = "0.17.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 8fbca858f432fbf3c34d02aa5100f4dcd3520219ce2978c90bc084dc0951f2fe + sha256: 37dc159bb6d4f033039dde9073a69104f8445be4459cec4532fdcbf84eef13b3 folder: "{{ name }}-{{ version }}" build: From 8b57681bf042d4b743be9bc4cef129a385db46e7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 08:06:29 -0400 Subject: [PATCH 0409/1514] Update ska2 to 0.3.8 (#49036) --- recipes/ska2/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/ska2/meta.yaml b/recipes/ska2/meta.yaml index 715c5a72cae5e..02b0a45464bd5 100644 --- a/recipes/ska2/meta.yaml +++ b/recipes/ska2/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ska2" %} -{% set version = "0.3.7" %} +{% set version = "0.3.8" %} package: name: {{ name|lower}} @@ -7,10 +7,10 @@ package: source: url: https://github.com/bacpop/ska.rust/archive/v{{ version }}.tar.gz - sha256: ea7234428f253638b2093abdd6c8b1e8362ecad0ba56e3b29700af9a4481d911 + sha256: 5abadd0222db05b2bfa787a896d422675312837c7ac850df6283e6a64d4f204b build: - number: 2 + number: 0 script: "cargo install --no-track --locked --verbose --root \"${PREFIX}\" --path ." run_exports: - {{ pin_subpackage("ska2", max_pin="x.x") }} @@ -32,4 +32,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 From 8da1c31fe6fb46185075741f95f2a1fd2317a569 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 08:18:43 -0400 Subject: [PATCH 0410/1514] Update seqchromloader to 0.7.6 (#49018) --- recipes/seqchromloader/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/seqchromloader/meta.yaml b/recipes/seqchromloader/meta.yaml index ec89ee7eb03ce..0dc4fe0e80f6a 100644 --- a/recipes/seqchromloader/meta.yaml +++ b/recipes/seqchromloader/meta.yaml @@ -1,5 +1,5 @@ {% set name = "seqchromloader" %} -{% set version = "0.7.5" %} +{% set version = "0.7.6" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 151335f3197a16140106ec55733321f7a01c3571ffaeaa968618cc88ac21393a + sha256: 17fa1f9c1a3f286a93c454518c3af5f70bf9274003bdfcdb436f30419a29f93e build: number: 0 From af3db253a20d527ee42eda20eb452341e2a2321f Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 9 Jul 2024 15:18:58 +0300 Subject: [PATCH 0411/1514] pybigtools: add linux-aarch64 build (#49027) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/pybigtools/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/pybigtools/meta.yaml b/recipes/pybigtools/meta.yaml index d584f297c19e9..ccc184ca0c425 100644 --- a/recipes/pybigtools/meta.yaml +++ b/recipes/pybigtools/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('pybigtools', max_pin="x.x") }} @@ -41,5 +41,7 @@ about: dev_url: https://github.com/jackh726/bigtools/ extra: + additional-platforms: + - linux-aarch64 identifiers: - doi:10.5281/zenodo.10606493 From 837c446dc4caf2719d89c1f4a7887820f793bb91 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 9 Jul 2024 15:19:57 +0300 Subject: [PATCH 0412/1514] art: add linux-aarch64 build (#48998) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/art/build.sh | 4 +- recipes/art/build_failure.linux-64.yaml | 104 ------------------------ recipes/art/build_failure.osx-64.yaml | 104 ------------------------ recipes/art/meta.yaml | 12 ++- 4 files changed, 13 insertions(+), 211 deletions(-) delete mode 100644 recipes/art/build_failure.linux-64.yaml delete mode 100644 recipes/art/build_failure.osx-64.yaml diff --git a/recipes/art/build.sh b/recipes/art/build.sh index dba8ae009f959..0ed4c0e67646f 100644 --- a/recipes/art/build.sh +++ b/recipes/art/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + export CFLAGS="-I$PREFIX/include" export LDFLAGS="-L$PREFIX/lib" export CPATH=${PREFIX}/include @@ -7,7 +9,7 @@ export CPATH=${PREFIX}/include mkdir -p $PREFIX/bin ./configure --prefix=$PREFIX -make +make -j ${CPU_COUNT} make install for platform in illumina 454 SOLiD; diff --git a/recipes/art/build_failure.linux-64.yaml b/recipes/art/build_failure.linux-64.yaml deleted file mode 100644 index fe51189dce6f4..0000000000000 --- a/recipes/art/build_failure.linux-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: f30c59ba2eda60063e1b2d77f2a81886d1fa778acb7bf4d97990fd57e56b6189 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - sysroot_linux-64: 2.12-he073ed8_15 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - Source cache directory is: /opt/conda/conda-bld/src_cache - INFO:conda_build.source:Source cache directory is: /opt/conda/conda-bld/src_cache - Downloading source to cache: artsrcmountrainier2016.06.05linux_6df7ce4760.tgz - INFO:conda_build.source:Downloading source to cache: artsrcmountrainier2016.06.05linux_6df7ce4760.tgz - Downloading https://www.niehs.nih.gov/research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz - INFO:conda_build.source:Downloading https://www.niehs.nih.gov/research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz - DEBUG:urllib3.util.retry:Incremented Retry for (url='/research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz'): Retry(total=2, connect=None, read=None, redirect=None, status=None) - WARNING:urllib3.connectionpool:Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))': /research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz - DEBUG:urllib3.util.retry:Incremented Retry for (url='/research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz'): Retry(total=1, connect=None, read=None, redirect=None, status=None) - WARNING:urllib3.connectionpool:Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))': /research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz - DEBUG:urllib3.util.retry:Incremented Retry for (url='/research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz'): Retry(total=0, connect=None, read=None, redirect=None, status=None) - WARNING:urllib3.connectionpool:Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))': /research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz - Traceback (most recent call last): - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 670, in urlopen - httplib_response = self._make_request( - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 381, in _make_request - self._validate_conn(conn) - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 978, in _validate_conn - conn.connect() - File "/opt/conda/lib/python3.8/site-packages/urllib3/connection.py", line 362, in connect - self.sock = ssl_wrap_socket( - File "/opt/conda/lib/python3.8/site-packages/urllib3/util/ssl_.py", line 386, in ssl_wrap_socket - return context.wrap_socket(sock, server_hostname=server_hostname) - File "/opt/conda/lib/python3.8/ssl.py", line 500, in wrap_socket - return self.sslsocket_class._create( - File "/opt/conda/lib/python3.8/ssl.py", line 1040, in _create - self.do_handshake() - File "/opt/conda/lib/python3.8/ssl.py", line 1309, in do_handshake - self._sslobj.do_handshake() - ssl.SSLError: [SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131) - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/conda/lib/python3.8/site-packages/requests/adapters.py", line 439, in send - resp = conn.urlopen( - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 754, in urlopen - return self.urlopen( - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 754, in urlopen - return self.urlopen( - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 754, in urlopen - return self.urlopen( - File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 726, in urlopen - retries = retries.increment( - File "/opt/conda/lib/python3.8/site-packages/urllib3/util/retry.py", line 446, in increment - raise MaxRetryError(_pool, url, error or ResponseError(cause)) - urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='www.niehs.nih.gov', port=443): Max retries exceeded with url: /research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz (Caused by SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))) - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/conda/lib/python3.8/site-packages/conda/gateways/connection/download.py", line 48, in download - resp = session.get(url, stream=True, proxies=session.proxies, timeout=timeout) - File "/opt/conda/lib/python3.8/site-packages/requests/sessions.py", line 546, in get - return self.request('GET', url, **kwargs) - File "/opt/conda/lib/python3.8/site-packages/requests/sessions.py", line 533, in request - resp = self.send(prep, **send_kwargs) - File "/opt/conda/lib/python3.8/site-packages/requests/sessions.py", line 646, in send - r = adapter.send(request, **kwargs) - File "/opt/conda/lib/python3.8/site-packages/requests/adapters.py", line 514, in send - raise SSLError(e, request=request) - requests.exceptions.SSLError: HTTPSConnectionPool(host='www.niehs.nih.gov', port=443): Max retries exceeded with url: /research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz (Caused by SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))) - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/conda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/conda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 2125, in build - try_download(m, no_download_source=False, raise_error=True) - File "/opt/conda/lib/python3.8/site-packages/conda_build/render.py", line 650, in try_download - source.provide(metadata) - File "/opt/conda/lib/python3.8/site-packages/conda_build/source.py", line 871, in provide - unpack(source_dict, src_dir, metadata.config.src_cache, recipe_path=metadata.path, - File "/opt/conda/lib/python3.8/site-packages/conda_build/source.py", line 146, in unpack - src_path, unhashed_fn = download_to_cache(cache_folder, recipe_path, source_dict, verbose) - File "/opt/conda/lib/python3.8/site-packages/conda_build/source.py", line 89, in download_to_cache - download(url, path) - File "/opt/conda/lib/python3.8/site-packages/conda/exports.py", line 374, in download - return _download(url, dst_path, md5=md5sum, sha256=sha256, size=size) - File "/opt/conda/lib/python3.8/site-packages/conda/common/io.py", line 84, in decorated - return f(*args, **kwds) - File "/opt/conda/lib/python3.8/site-packages/conda/gateways/connection/download.py", line 152, in download - raise CondaSSLError( - conda.exceptions.CondaSSLError: Encountered an SSL error. Most likely a certificate verification issue. - - Exception: HTTPSConnectionPool(host='www.niehs.nih.gov', port=443): Max retries exceeded with url: /research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz (Caused by SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))) -# Last 100 lines of the build log. diff --git a/recipes/art/build_failure.osx-64.yaml b/recipes/art/build_failure.osx-64.yaml deleted file mode 100644 index 7c058b08fdcd6..0000000000000 --- a/recipes/art/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: f30c59ba2eda60063e1b2d77f2a81886d1fa778acb7bf4d97990fd57e56b6189 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - zstd: 1.5.2-hbc0c0cd_6 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache - Downloading source to cache: artsrcmountrainier2016.06.05linux_6df7ce4760.tgz - INFO:conda_build.source:Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache - Downloading https://www.niehs.nih.gov/research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz - INFO:conda_build.source:Downloading source to cache: artsrcmountrainier2016.06.05linux_6df7ce4760.tgz - INFO:conda_build.source:Downloading https://www.niehs.nih.gov/research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz - DEBUG:urllib3.util.retry:Incremented Retry for (url='/research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz'): Retry(total=2, connect=None, read=None, redirect=None, status=None) - WARNING:urllib3.connectionpool:Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))': /research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz - DEBUG:urllib3.util.retry:Incremented Retry for (url='/research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz'): Retry(total=1, connect=None, read=None, redirect=None, status=None) - WARNING:urllib3.connectionpool:Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))': /research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz - DEBUG:urllib3.util.retry:Incremented Retry for (url='/research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz'): Retry(total=0, connect=None, read=None, redirect=None, status=None) - WARNING:urllib3.connectionpool:Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))': /research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 670, in urlopen - httplib_response = self._make_request( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 381, in _make_request - self._validate_conn(conn) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 978, in _validate_conn - conn.connect() - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connection.py", line 362, in connect - self.sock = ssl_wrap_socket( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/util/ssl_.py", line 386, in ssl_wrap_socket - return context.wrap_socket(sock, server_hostname=server_hostname) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/ssl.py", line 500, in wrap_socket - return self.sslsocket_class._create( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/ssl.py", line 1040, in _create - self.do_handshake() - File "/opt/mambaforge/envs/bioconda/lib/python3.8/ssl.py", line 1309, in do_handshake - self._sslobj.do_handshake() - ssl.SSLError: [SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131) - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/requests/adapters.py", line 439, in send - resp = conn.urlopen( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 754, in urlopen - return self.urlopen( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 754, in urlopen - return self.urlopen( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 754, in urlopen - return self.urlopen( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 726, in urlopen - retries = retries.increment( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/urllib3/util/retry.py", line 446, in increment - raise MaxRetryError(_pool, url, error or ResponseError(cause)) - urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='www.niehs.nih.gov', port=443): Max retries exceeded with url: /research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz (Caused by SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))) - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda/gateways/connection/download.py", line 48, in download - resp = session.get(url, stream=True, proxies=session.proxies, timeout=timeout) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/requests/sessions.py", line 546, in get - return self.request('GET', url, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/requests/sessions.py", line 533, in request - resp = self.send(prep, **send_kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/requests/sessions.py", line 646, in send - r = adapter.send(request, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/requests/adapters.py", line 514, in send - raise SSLError(e, request=request) - requests.exceptions.SSLError: HTTPSConnectionPool(host='www.niehs.nih.gov', port=443): Max retries exceeded with url: /research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz (Caused by SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))) - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 2125, in build - try_download(m, no_download_source=False, raise_error=True) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/render.py", line 650, in try_download - source.provide(metadata) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/source.py", line 871, in provide - unpack(source_dict, src_dir, metadata.config.src_cache, recipe_path=metadata.path, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/source.py", line 146, in unpack - src_path, unhashed_fn = download_to_cache(cache_folder, recipe_path, source_dict, verbose) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/source.py", line 89, in download_to_cache - download(url, path) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda/exports.py", line 374, in download - return _download(url, dst_path, md5=md5sum, sha256=sha256, size=size) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda/common/io.py", line 84, in decorated - return f(*args, **kwds) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda/gateways/connection/download.py", line 152, in download - raise CondaSSLError( - conda.exceptions.CondaSSLError: Encountered an SSL error. Most likely a certificate verification issue. - - Exception: HTTPSConnectionPool(host='www.niehs.nih.gov', port=443): Max retries exceeded with url: /research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz (Caused by SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)'))) -# Last 100 lines of the build log. diff --git a/recipes/art/meta.yaml b/recipes/art/meta.yaml index 77be0c47cf51c..cefbaaa1b2e1e 100644 --- a/recipes/art/meta.yaml +++ b/recipes/art/meta.yaml @@ -6,7 +6,9 @@ package: version: {{ version }} build: - number: 10 + number: 11 + run_exports: + - {{ pin_subpackage(name, max_pin=None) }} source: url: https://www.niehs.nih.gov/research/resources/assets/docs/artsrcmountrainier2016.06.05linux.tgz @@ -30,5 +32,11 @@ test: about: home: http://www.niehs.nih.gov/research/resources/software/biostatistics/art/ - license: GPLv2 + license: GPL-3.0-only + license_file: GPLv3.txt + license_family: GPL3 summary: 'Illumina, 454 and Solid read simulator' + +extra: + additional-platforms: + - linux-aarch64 From 172a4e4f3f1724a6d5988e77fef0bd7517efad53 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 09:27:08 -0400 Subject: [PATCH 0413/1514] Update somaticseq to 3.8.0 (#49026) * Update somaticseq to 3.8.0 * Add pydantic as a runtime dependency Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov --- recipes/somaticseq/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/somaticseq/meta.yaml b/recipes/somaticseq/meta.yaml index cd81c589f93e9..74a9c02ee9b89 100644 --- a/recipes/somaticseq/meta.yaml +++ b/recipes/somaticseq/meta.yaml @@ -1,6 +1,6 @@ {% set name = "somaticseq" %} -{% set version = "3.7.4" %} -{% set sha256 = "d072300bc403f12265fcadba74c4e6ba82175e749f22f66b46a1e32bf851e24d" %} +{% set version = "3.8.0" %} +{% set sha256 = "d936bab4b042ce6f7e13420fda747c264e4047be9e1ed0186c2379a74f526412" %} package: name: {{ name|lower }} @@ -37,6 +37,7 @@ requirements: - muse - lofreq - scalpel + - pydantic # Strelka relies on python 2 and cannot be included test: From 35ea8f5b3240f61403fbcdcfa21890e4adb6a211 Mon Sep 17 00:00:00 2001 From: sverre-branders <154252137+sverre-branders@users.noreply.github.com> Date: Tue, 9 Jul 2024 15:27:39 +0200 Subject: [PATCH 0414/1514] Add voyager (#49034) * Added voyager recipe * Minor fixes * updated recipe data * Fixed lint * Updated licence in recipes/voyager/meta.yaml Co-authored-by: Martin Grigorov --------- Co-authored-by: Martin Grigorov --- recipes/voyager/build.sh | 14 ++++++++++++++ recipes/voyager/meta.yaml | 37 +++++++++++++++++++++++++++++++++++++ recipes/voyager/run_test.sh | 5 +++++ 3 files changed, 56 insertions(+) create mode 100755 recipes/voyager/build.sh create mode 100755 recipes/voyager/meta.yaml create mode 100644 recipes/voyager/run_test.sh diff --git a/recipes/voyager/build.sh b/recipes/voyager/build.sh new file mode 100755 index 0000000000000..110e53095ec3f --- /dev/null +++ b/recipes/voyager/build.sh @@ -0,0 +1,14 @@ +#!/bin/bash +mkdir -p "$PREFIX/bin" + +cp voyager-cli $PREFIX/bin/ +cp voyager-build-cli $PREFIX/bin/ +cp voyager-combine-cli $PREFIX/bin/ +cp voyager-debug-index $PREFIX/bin/ + +mkdir -p "$PREFIX/lib" +cp voyager-monitor-0.1.0-SNAPSHOT.jar $PREFIX/lib/ + +echo '#!/bin/bash' > ${PREFIX}/bin/voyager-monitor +echo 'java -jar "'$PREFIX'/lib/voyager-monitor-1.0.00-SNAPSHOT.jar" "$@"' >> $PREFIX/bin/voyager-monitor +chmod +x "${PREFIX}/bin/voyager-monitor" diff --git a/recipes/voyager/meta.yaml b/recipes/voyager/meta.yaml new file mode 100755 index 0000000000000..dc5947046d51d --- /dev/null +++ b/recipes/voyager/meta.yaml @@ -0,0 +1,37 @@ +{% set version = "0.1.0" %} +{% set base = "https://bitbucket.org/sverre-phd-work/voyager/downloads" %} +{% set sha256 = "57a87fb9878a25a3848c1bde6f6f873fd154ff6f1b229b09afccf602d3ea82a9" %} + +package: + name: voyager + version: '{{version}}' + +source: + url: {{base}}/voyager-linux64-v{{version}}.tar.gz + sha256: '{{sha256}}' + +build: + number: 0 + noarch: generic + run_exports: + - {{ pin_subpackage('voyager', max_pin="x.x") }} + +requirements: + build: + # + host: + - openjdk >=11 + run: + - openjdk >=11 + +about: + home: "https://bitbucket.org/sverre-phd-work/voyager/" + license: LGPL-3.0-only + license_file : COPYING.LESSER + summary: "Rapid and efficient mapping algorithm for long sequencing reads with insertion- and deletion errors." + doc_url: "https://bitbucket.org/sverre-phd-work/voyager/wiki/Home" + dev_url: "https://bitbucket.org/sverre-phd-work/voyager/" + +extra: + identifiers: + - doi:10.1101/2024.04.13.589333 diff --git a/recipes/voyager/run_test.sh b/recipes/voyager/run_test.sh new file mode 100644 index 0000000000000..b99b38a28a097 --- /dev/null +++ b/recipes/voyager/run_test.sh @@ -0,0 +1,5 @@ +#!/bin/bash +voyager-cli -v >/dev/null +voyager-build-cli -v >/dev/null +voyager-combine-cli -v >/dev/null +voyager-debug-index -v >/dev/null From c293285c4deeeaf2c24c794992ce3ee57b2e1b82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20Diaz?= Date: Tue, 9 Jul 2024 16:24:07 +0200 Subject: [PATCH 0415/1514] Add Constava v1.1.0 (#49033) * Add constava v1.0.0 * Add GPL3 license file * Fix meta * Better meta * Update LICENSE * Fix build issues * Update meta * Bump version to 1.1.0 * Apply suggestions from code review Co-authored-by: Martin Grigorov * Solve review comments * Fix linting issues --------- Co-authored-by: Martin Grigorov --- recipes/constava/LICENSE | 16 +++++ recipes/constava/meta.yaml | 119 +++++++++++++++++++++++++++++++++++++ 2 files changed, 135 insertions(+) create mode 100644 recipes/constava/LICENSE create mode 100644 recipes/constava/meta.yaml diff --git a/recipes/constava/LICENSE b/recipes/constava/LICENSE new file mode 100644 index 0000000000000..f38837717b5a8 --- /dev/null +++ b/recipes/constava/LICENSE @@ -0,0 +1,16 @@ +Constava: Probabilistic assessment of protein conformational states. + +Copyright (C) 2023 Wim Vranken + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . diff --git a/recipes/constava/meta.yaml b/recipes/constava/meta.yaml new file mode 100644 index 0000000000000..b6a6c8bca7bbc --- /dev/null +++ b/recipes/constava/meta.yaml @@ -0,0 +1,119 @@ +{% set name = "constava" %} +{% set version = "1.1.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/constava-{{ version }}.tar.gz + sha256: 6ac0a19544aa7bb800cb2a5b7b85499d5473fe132ded49cefddca032065cb2a9 + +build: + number: 0 + entry_points: + - constava = constava.__main__:main + noarch: python + script: "{{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv" + run_exports: + - {{ pin_subpackage('constava', max_pin="x") }} + +requirements: + host: + - python >=3.8 + - pip + run: + - python >=3.8 + - matplotlib-base + - mdanalysis + - numpy + - pandas + - scikit-learn + +test: + imports: + - constava + - constava.utils + - constava.utils.dihedrals + commands: + - pip check + - constava --version + - constava --help + - constava dihedrals -h + - constava analyze -h + - constava fit-model -h + - constava test + requires: + - pip + + +about: + home: https://github.com/bio2byte/constava + summary: Calculate conformational states probability and variability from a protein structure ensemble + description: | + Constava analyzes conformational ensembles calculating conformational state propensities and + conformational state variability. The conformational state propensities indicate the likelihood + of a residue residing in a given conformational state, while the conformational state variability + is a measure of the residues ability to transition between conformational states. + + Each conformational state is a statistical model of based on the backbone dihedrals (phi, psi). The + default models were derived from an analysis of NMR ensembles and chemical shifts. To analyze a + conformational ensemble, the phi- and psi-angles for each conformational state in the ensemble + need to be provided. + + As input data Constava needs the backbone dihedral angles extracted from the conformational ensemble. + These dihedrals can be obtained using GROMACS' gmx chi module (set `--input-format=xvg`) + or using the constava dihedrals submodule, which supports a wide range of MD and structure formats. + + The software is subdivided in three submodules: + + The constava dihedrals submodule provides a simple way to extract backbone dihedral angles from MD + simulations or PDB ensembles. For more information run: `constava dihedrals -h`. Alternatively, + the backbone dihedrals may be extracted with GROMACS' gmx chi module. + + The constava analyze submodule analyzes the provided backbone dihedral angles and infers + the propensities for each residue to reside in a given conformational state. For more information run: + `constava analyze -h`. + + The constava fit-model can be used to train a custom probabilistic model of conformational states. The + default models were derived from an analysis of NMR ensembles and chemical shifts; they cover six + conformational states: + + 1. Core Helix - Exclusively alpha-helical, low backbone dynamics + 2. Surrounding Helix - Mostly alpha-helical, high backbone dynamics + 3. Core Sheet - Exclusively beta-sheet, low backbone dynamics + 4. Surrounding Sheet - Mostly extended conformation, high backbone dynamics + 5. Turn - Mostly turn, high backbone dynamics + 6. Other - Mostly coil, high backbone dynamics + + For more information run: `constava fit-model -h`. + + This software tool has been developed by the Bio2Byte research group at Vrije Universiteit Brussel (VUB) + in Belgium and it is distributed under the GNU General Public License v3 (GPLv3) License. + + Please cite: + + Jose Gavalda-Garcia, David Bickel, Joel Roca-Martinez, Daniele Raimondi, Gabriele Orlando, Wim Vranken, + Data-driven probabilistic definition of the low energy conformational states of protein residues, + NAR Genomics and Bioinformatics, Volume 6, Issue 3, September 2024, lqae082, + https://doi.org/10.1093/nargab/lqae082 (Published: 09 July 2024) + + Contact us: or + license: GPL-3.0-or-later + license_file: LICENSE + license_family: GPL3 + dev_url: https://github.com/bio2byte/constava + doc_url: https://pypi.org/project/constava/ + doc_source_url: https://github.com/Bio2Byte/constava/blob/main/README.md + +extra: + author: Wim Vranken , Jose Gavalda-Garcia , David Bickel , Joel Roca-Martinez , Daniele Raimondi , Gabriele Orlando + recipe-maintainers: + - agdiaz + - aethertier + - GavaldaGarcia + maintainers: + - aethertier + - GavaldaGarcia + identifiers: + - doi:10.1093/nargab/lqae082 # NAR Genomics and Bioinformatics From 826feb0c111eddae98750237b86fb8d106d8c8e4 Mon Sep 17 00:00:00 2001 From: John Lees Date: Tue, 9 Jul 2024 15:47:16 +0100 Subject: [PATCH 0416/1514] Update poppunk to v2.6.7 (#49039) --- recipes/poppunk/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/poppunk/meta.yaml b/recipes/poppunk/meta.yaml index 88a2bf49f541e..fb5756890a9fc 100644 --- a/recipes/poppunk/meta.yaml +++ b/recipes/poppunk/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.6.5" %} +{% set version = "2.6.7" %} {% set name = "PopPUNK" %} package: @@ -7,10 +7,10 @@ package: source: url: https://github.com/bacpop/{{ name|lower }}/archive/v{{ version }}.tar.gz - sha256: d587b77c6b38e73035f9bd1b5cfcea9a048714112391a77139bb52e0a160b968 + sha256: faa11756c6c7acc0df2ef50a1deaf27432f1e510219a7484cc16f92e44b2e179 build: - number: 1 + number: 0 skip: true # [py < 38] script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed --no-cache-dir -vvv" entry_points: @@ -91,7 +91,7 @@ test: - poppunk_info --help about: - home: https://www.poppunk.net + home: https://poppunk.bacpop.org/ license: Apache-2.0 license_family: APACHE summary: 'PopPUNK (POPulation Partitioning Using Nucleotide Kmers)' From 8fc8f46d4250392a28091245092768e4240e76fc Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 10:47:45 -0400 Subject: [PATCH 0417/1514] Update snakemake to 8.16.0 (#49041) --- recipes/snakemake/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake/meta.yaml b/recipes/snakemake/meta.yaml index de065cbd5e5ac..1081e75cde7ef 100644 --- a/recipes/snakemake/meta.yaml +++ b/recipes/snakemake/meta.yaml @@ -1,7 +1,7 @@ # Attention: when upgrading the version, please compare below dependencies with # https://github.com/snakemake/snakemake/blob/{version}/setup.cfg {% set name = "snakemake" %} -{% set version = "8.15.2" %} +{% set version = "8.16.0" %} package: name: {{ name }} @@ -9,7 +9,7 @@ package: source: url: https://pypi.io/packages/source/s/{{ name }}/snakemake-{{ version }}.tar.gz - sha256: 3bcc407dc02cc25c545691b275e9d5e65d414e6361f7682020fc76cb8164267a + sha256: 3906ae1a5e16b941755b61537a8d16e249106cbbeb0d40b9552933e96ff07af4 build: number: 0 From 493a89dde61db31c8f6486d9d29a9bf455f9310e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 10:48:14 -0400 Subject: [PATCH 0418/1514] Update pycomo to 0.2.0 (#49042) --- recipes/pycomo/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pycomo/meta.yaml b/recipes/pycomo/meta.yaml index a92c2b57fa40f..13a5d832d13b2 100644 --- a/recipes/pycomo/meta.yaml +++ b/recipes/pycomo/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pycomo" %} -{% set version = "0.1.3" %} +{% set version = "0.2.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pycomo-{{ version }}.tar.gz - sha256: be95b8610a3b40ca69dd5ed055356c6bdb838059c66afa796343ea624b07be6c + sha256: 48ffd67190484a57f16ad9a81a631e7464dd5d37a7da79907d9940232f3c3433 build: entry_points: From 07ad2bb2e597aed4b1f214e12c5ef4f8b366614e Mon Sep 17 00:00:00 2001 From: Rauf Salamzade Date: Tue, 9 Jul 2024 09:48:51 -0500 Subject: [PATCH 0419/1514] Update zol (#49038) * Update meta.yaml * Update meta.yaml * Update meta.yaml --- recipes/zol/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/zol/meta.yaml b/recipes/zol/meta.yaml index 09a59909ca95f..503f5652016b7 100644 --- a/recipes/zol/meta.yaml +++ b/recipes/zol/meta.yaml @@ -10,7 +10,7 @@ source: sha256: b4a6a2f62bf9763de6b78ab0832a692696ac8250161998adc50677d829df1a7b build: - number: 0 + number: 1 skip: True # [py <= 311] run_exports: - {{ pin_subpackage('zol', max_pin='x.x') }} @@ -33,7 +33,7 @@ requirements: - pal2nal >=14.1 - hmmer >=3.0.0 - fasttree - - diamond + - diamond >=2.1.7 - pyrodigal - prodigal - prodigal-gv From 589f118e069cbd12840021d0792c687c00a90052 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 12:17:59 -0400 Subject: [PATCH 0420/1514] Update ena-webin-cli to 7.3.1 (#49047) --- recipes/ena-webin-cli/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ena-webin-cli/meta.yaml b/recipes/ena-webin-cli/meta.yaml index 35ddf00a451a6..cd4dc94fffa01 100644 --- a/recipes/ena-webin-cli/meta.yaml +++ b/recipes/ena-webin-cli/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "7.3.0" %} -{% set sha256 = "793a54f4ad01cc32be1b38ce96ce89944485d594affcec6665148854d336f419" %} +{% set version = "7.3.1" %} +{% set sha256 = "e6dbb93e8b39c81e53ef96afcba0e958869c95a2d1dda83e1a6077a73f9f4cfb" %} package: name: ena-webin-cli From b28e9f376eaac4a553bcdfc1ad8561e0a40ee453 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 12:18:19 -0400 Subject: [PATCH 0421/1514] Update seqchromloader to 0.7.7 (#49046) --- recipes/seqchromloader/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/seqchromloader/meta.yaml b/recipes/seqchromloader/meta.yaml index 0dc4fe0e80f6a..6c69d088838a2 100644 --- a/recipes/seqchromloader/meta.yaml +++ b/recipes/seqchromloader/meta.yaml @@ -1,5 +1,5 @@ {% set name = "seqchromloader" %} -{% set version = "0.7.6" %} +{% set version = "0.7.7" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 17fa1f9c1a3f286a93c454518c3af5f70bf9274003bdfcdb436f30419a29f93e + sha256: c4d37d0b8c91e0d666e7ae0a581884c113ed84862526b3621f86704668bb8b27 build: number: 0 From b964737a5b895419a051d1c6d4f7b899ee79ef06 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 9 Jul 2024 19:18:41 +0300 Subject: [PATCH 0422/1514] fasta3: add linux-aarch64 build (#49045) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/fasta3/build.sh | 6 ++++-- recipes/fasta3/meta.yaml | 8 +++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/recipes/fasta3/build.sh b/recipes/fasta3/build.sh index 615d9a68dce78..a66a0586643b0 100755 --- a/recipes/fasta3/build.sh +++ b/recipes/fasta3/build.sh @@ -1,10 +1,12 @@ #!/bin/bash +set -xe + mkdir -pv ${PREFIX}/bin ${PREFIX}/share case $(uname) in - Darwin) make -C src -f ../make/Makefile.os_x86_64 all \ + Darwin) make -j ${CPU_COUNT} -C src -f ../make/Makefile.os_x86_64 all \ CC="${CC} ${CPPFLAGS} ${CFLAGS}" LDFLAGS="${LDFLAGS}" LIB_M='-lm' ;; - *) make -C src -f ../make/Makefile.linux64_sse2 all \ + *) make -j ${CPU_COUNT} -C src -f ../make/Makefile.linux64_sse2 all \ CC="${CC} ${CPPFLAGS} ${CFLAGS}" LDFLAGS="${LDFLAGS}" LIB_M='-lm' ;; esac cp {bin/*36,bin/map_db,scripts/*.pl,misc/*.pl} ${PREFIX}/bin diff --git a/recipes/fasta3/meta.yaml b/recipes/fasta3/meta.yaml index 46874424c5e50..0ea1ef17edd12 100644 --- a/recipes/fasta3/meta.yaml +++ b/recipes/fasta3/meta.yaml @@ -10,7 +10,9 @@ source: sha256: b4b1c3c9be6beebcbaf4215368e159d69255e34c0bdbc84affa10cdb473ce008 build: - number: 0 + number: 1 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} requirements: build: @@ -39,3 +41,7 @@ about: license: Apache 2.0 summary: The FASTA package - protein and DNA sequence similarity searching and alignment programs license_file: LICENSE + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From e9059a7df063e55b09e276fb20b8e96a7153a763 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 9 Jul 2024 19:18:57 +0300 Subject: [PATCH 0423/1514] cpat: add linux-aarch64 build (#49044) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/cpat/meta.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/recipes/cpat/meta.yaml b/recipes/cpat/meta.yaml index 6d65b6398e5eb..b3c44608b4a8c 100644 --- a/recipes/cpat/meta.yaml +++ b/recipes/cpat/meta.yaml @@ -6,8 +6,8 @@ package: version: "{{ version }}" build: - number: 1 - skip: True # [py2k or py > 39] + number: 2 + skip: True # [py > 39] run_exports: - {{ pin_subpackage('cpat', max_pin="x") }} @@ -44,3 +44,7 @@ about: license: GPL-2.0-or-later license_file: LICENSE.txt summary: Coding Potential Assessment Tool + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 86df8ec118e4960adb7159c6e0ffafebb347b755 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 9 Jul 2024 19:19:16 +0300 Subject: [PATCH 0424/1514] generax: add linux-aarch64 build (#49043) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/generax/build.sh | 4 +++- recipes/generax/meta.yaml | 22 ++++++++++++---------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/recipes/generax/build.sh b/recipes/generax/build.sh index 5b2e98394ac02..7ec5e9ac9e71f 100644 --- a/recipes/generax/build.sh +++ b/recipes/generax/build.sh @@ -1,10 +1,12 @@ #!/bin/bash +set -xe + # pthreads mkdir build pushd build cmake .. - make + make -j ${CPU_COUNT} install -d ${PREFIX}/bin install ../build/bin/generax ${PREFIX}/bin popd diff --git a/recipes/generax/meta.yaml b/recipes/generax/meta.yaml index 0c662c20d3c3d..d3bd3bbf28fd4 100644 --- a/recipes/generax/meta.yaml +++ b/recipes/generax/meta.yaml @@ -12,7 +12,7 @@ source: sha256: unused build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('generax', max_pin="x") }} requirements: @@ -33,17 +33,19 @@ test: about: home: https://github.com/benoitmorel/generax - license: AGPL-3 + license: AGPL-3.0-only license_family: AGPL license_file: LICENSE.txt summary: "GeneRax: a parallel tool for species tree-aware maximum likelihood based gene tree inference under gene duplication, transfer, and loss." extra: - container: - # openmpi needs ssh client - extended-base: true - skip-lints: - # uses submodules - - uses_vcs_url - identifiers: - - doi:10.1101/779066 + additional-platforms: + - linux-aarch64 + container: + # openmpi needs ssh client + extended-base: true + skip-lints: + # uses submodules + - uses_vcs_url + identifiers: + - doi:10.1101/779066 From 274ebf04b1ee840746547542e9eb0773f2ee3299 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 9 Jul 2024 19:19:42 +0300 Subject: [PATCH 0425/1514] ipk: add linux-aarch64 build (#48996) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/ipk/meta.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/ipk/meta.yaml b/recipes/ipk/meta.yaml index 4820721d2a44e..d64d17598877b 100644 --- a/recipes/ipk/meta.yaml +++ b/recipes/ipk/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('ipk', max_pin="x.x") }} @@ -50,3 +50,6 @@ about: summary: "IPK is a tool for computing phylo-k-mers for a fixed phylogeny." description: "IPK is a tool for computing phylo-k-mers for a fixed phylogeny. Please cite: doi.org/10.1093/bioinformatics/btad692" +extra: + additional-platforms: + - linux-aarch64 From 461cb2c6227bccb425e7ab64f7fbfa61629345a6 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 9 Jul 2024 22:14:50 +0300 Subject: [PATCH 0426/1514] trust4: add linux-aarch64 build (#49035) * trust4: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Try to build with newer samtools that supports linux-aarch64 Signed-off-by: Martin Tzvetanov Grigorov * Use the inlined samtools 0.1.19 for non-x86_64 Signed-off-by: Martin Tzvetanov Grigorov * Use $CC for the build of samtools 0.1.19 on linux-aarch64 Signed-off-by: Martin Tzvetanov Grigorov * Use ./samtools-0.1.19 only when building it, i.e. for linux-aarch64 Signed-off-by: Martin Tzvetanov Grigorov * Use `test -x $PREFIX/bin/{{executable}}`. `which {{executable}}` does not work Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/trust4/build.sh | 17 ++++++++++++++--- recipes/trust4/meta.yaml | 22 +++++++++++++--------- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/recipes/trust4/build.sh b/recipes/trust4/build.sh index 14a6edf8accf5..0c58f85fd002c 100755 --- a/recipes/trust4/build.sh +++ b/recipes/trust4/build.sh @@ -1,10 +1,21 @@ #!/bin/bash -sed -i.bak 's/-f .\/samtools-0.1.19\/libbam.a/1/' Makefile -make \ +set -xe + +LINKPATH="${LDFLAGS}" +if [ "$(uname -m)" == "x86_64" ]; then + # use samtools 0.1.19 as a dependency + sed -i.bak 's/-f .\/samtools-0.1.19\/libbam.a/1/' Makefile +else + # build the vendored samtools 0.1.19 + sed -i.bak 's/cd samtools-0.1.19 ; make /cd samtools-0.1.19 ; make CC="${CC}" CFLAGS="${CFLAGS} -L${PREFIX}\/lib" LDFLAGS="${LDFLAGS}" LIBPATH="-L${PREFIX}\/lib"/' Makefile + LINKPATH="${LDFLAGS} -I./samtools-0.1.19 -L./samtools-0.1.19" +fi + +make -j ${CPU_COUNT} \ CXX="${CXX}" \ CXXFLAGS="${CXXFLAGS} -Wformat -O3" \ - LINKPATH="${LDFLAGS} -I./samtools-0.1.19" + LINKPATH="${LINKPATH}" install -d "${PREFIX}/bin" install trust4 fastq-extractor bam-extractor annotator run-trust4 \ trust-simplerep.pl trust-barcoderep.pl trust-smartseq.pl trust-airr.pl \ diff --git a/recipes/trust4/meta.yaml b/recipes/trust4/meta.yaml index b80e36056574d..d71466e7da114 100644 --- a/recipes/trust4/meta.yaml +++ b/recipes/trust4/meta.yaml @@ -5,7 +5,7 @@ package: version: '{{ version }}' build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('trust4', max_pin="x") }} @@ -19,7 +19,7 @@ requirements: - {{ compiler('cxx') }} - {{ compiler('c') }} host: - - samtools 0.1.19.* + - samtools 0.1.19.* # [x86_64] - zlib run: - perl @@ -30,13 +30,13 @@ test: - fastq-extractor 2>&1 | cat > /dev/null - bam-extractor 2>&1 | cat > /dev/null - annotator 2>&1 | cat > /dev/null - - which trust-simplerep.pl - - which trust-barcoderep.pl - - which trust-smartseq.pl - - which trust-airr.pl - - which BuildDatabaseFa.pl - - which BuildImgtAnnot.pl - - which run-trust4 + - test -x ${PREFIX}/bin/trust-simplerep.pl + - test -x ${PREFIX}/bin/trust-barcoderep.pl + - test -x ${PREFIX}/bin/trust-smartseq.pl + - test -x ${PREFIX}/bin/trust-airr.pl + - test -x ${PREFIX}/bin/BuildDatabaseFa.pl + - test -x ${PREFIX}/bin/BuildImgtAnnot.pl + - test -x ${PREFIX}/bin/run-trust4 about: home: https://github.com/liulab-dfci/TRUST4 @@ -44,3 +44,7 @@ about: license: GPL-3.0-only license_family: GPL3 license_file: LICENSE.txt + +extra: + additional-platforms: + - linux-aarch64 From 4b67d87f762cd5c52b0d7c4ca36c7d27d3754ee5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 15:14:57 -0400 Subject: [PATCH 0427/1514] Update multiqc to 1.23 (#49055) --- recipes/multiqc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/multiqc/meta.yaml b/recipes/multiqc/meta.yaml index 6fed175b273f5..05c07f9b53a31 100644 --- a/recipes/multiqc/meta.yaml +++ b/recipes/multiqc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "multiqc" %} -{% set version = "1.22.3" %} +{% set version = "1.23" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/MultiQC/MultiQC/archive/v{{ version }}.tar.gz - sha256: b9055c561459bd7e0a4869a6c7d83c7d9f8f31310be6e4ceaaebcdf93c05ae73 + sha256: 1f874e3bdaf3f183ff474126e76791e420732764c2988d8074b826d92aa7282a build: number: 0 From 28047dd6504642979b9ed6dbdd3f61cf1b7dfbb0 Mon Sep 17 00:00:00 2001 From: richard-burhans Date: Tue, 9 Jul 2024 15:18:43 -0400 Subject: [PATCH 0428/1514] removing old files. testing build without no_static.patch (#49053) * removing old files. testing build without no_static.patch * resetting build to 0 --------- Co-authored-by: Richard C. Burhans --- recipes/ncbi-fcs-gx/0.4.1/aria_split_16.patch | 26 ----------- recipes/ncbi-fcs-gx/0.4.1/build.sh | 18 -------- recipes/ncbi-fcs-gx/0.4.1/meta.yaml | 41 ----------------- recipes/ncbi-fcs-gx/0.5.0/aria_split_16.patch | 26 ----------- recipes/ncbi-fcs-gx/0.5.0/build.sh | 13 ------ recipes/ncbi-fcs-gx/0.5.0/meta.yaml | 45 ------------------- recipes/ncbi-fcs-gx/0.5.0/no_static.patch | 10 ----- recipes/ncbi-fcs-gx/aria_split_16.patch | 26 ----------- recipes/ncbi-fcs-gx/no_static.patch | 10 ----- 9 files changed, 215 deletions(-) delete mode 100755 recipes/ncbi-fcs-gx/0.4.1/aria_split_16.patch delete mode 100644 recipes/ncbi-fcs-gx/0.4.1/build.sh delete mode 100644 recipes/ncbi-fcs-gx/0.4.1/meta.yaml delete mode 100755 recipes/ncbi-fcs-gx/0.5.0/aria_split_16.patch delete mode 100644 recipes/ncbi-fcs-gx/0.5.0/build.sh delete mode 100644 recipes/ncbi-fcs-gx/0.5.0/meta.yaml delete mode 100644 recipes/ncbi-fcs-gx/0.5.0/no_static.patch delete mode 100755 recipes/ncbi-fcs-gx/aria_split_16.patch delete mode 100644 recipes/ncbi-fcs-gx/no_static.patch diff --git a/recipes/ncbi-fcs-gx/0.4.1/aria_split_16.patch b/recipes/ncbi-fcs-gx/0.4.1/aria_split_16.patch deleted file mode 100755 index dbc30ef59b262..0000000000000 --- a/recipes/ncbi-fcs-gx/0.4.1/aria_split_16.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/scripts/sync_files.py b/scripts/sync_files.py -index 3c404d37..2d87a87e 100755 ---- a/scripts/sync_files.py -+++ b/scripts/sync_files.py -@@ -360,16 +360,18 @@ def check_space(mft, dir): - def download_file_with_aria(url, file_path): - - aria_config = file_path.with_suffix(".aria2_config") -+ num_connections = 4 if "ncbi.nlm.nih.gov" in url else 16 -+ - with open(aria_config, "w", encoding="ascii") as f: -- f.write(""" -+ f.write(f""" - file-allocation=none - check-certificate=false - allow-overwrite=true - auto-file-renaming=false - max-tries=5 -- max-connection-per-server=5 -- max-concurrent-downloads=5 -- split=5 -+ max-concurrent-downloads=2 -+ max-connection-per-server={num_connections} -+ split={num_connections} - console-log-level=warn - """) diff --git a/recipes/ncbi-fcs-gx/0.4.1/build.sh b/recipes/ncbi-fcs-gx/0.4.1/build.sh deleted file mode 100644 index 1597a84f75f1d..0000000000000 --- a/recipes/ncbi-fcs-gx/0.4.1/build.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash -e -set -uex - -mkdir -vp ${PREFIX}/bin - -ls -l . - -$GCC --version -$GCC -print-search-dirs - -#cd fcs-gx-0.4.0 -make VERBOSE=1 - -cp $SRC_DIR/build/src/gx ${PREFIX}/bin/ -cp $SRC_DIR/scripts/* ${PREFIX}/bin/ -cp $SRC_DIR/make_gxdb/blast_names_mapping.tsv ${PREFIX}/bin/ -chmod ua+x ${PREFIX}/bin/gx - diff --git a/recipes/ncbi-fcs-gx/0.4.1/meta.yaml b/recipes/ncbi-fcs-gx/0.4.1/meta.yaml deleted file mode 100644 index b4503a798fb23..0000000000000 --- a/recipes/ncbi-fcs-gx/0.4.1/meta.yaml +++ /dev/null @@ -1,41 +0,0 @@ -package: - name: ncbi-fcs-gx - version: 0.4.1 - -source: - url: https://github.com/ncbi/fcs-gx/archive/refs/tags/v0.4.1.zip - sha256: 7bedb6a43945df4821d3e23fd1c5c4bf117cd70001cb96b310d177f0fd049a6b - patches: - - aria_split_16.patch - -requirements: - build: - - {{ compiler('cxx') }} - - make - - cmake - - libstdcxx-ng - - libgcc-ng - run: - - python >=3.9 - - aria2 =1.36.0 - - gzip >=1.5 - - pv >=1.4.6 - - rclone =1.61.1 - - grep >=3.4 - -build: - number: 1 - skip: True # [not linux or not x86_64] - run_exports: - - {{ pin_compatible('nxbi-fcs-gx', max_pin="x.x") }} - -test: - commands: - - gx --help - -about: - home: https://github.com/ncbi/fcs - summary: The NCBI Foreign Contamination Screen. Genomic cross-species aligner, for contamination detection. - license: NCBI-PD - license_url: https://github.com/ncbi/fcs/blob/main/LICENSE.txt - diff --git a/recipes/ncbi-fcs-gx/0.5.0/aria_split_16.patch b/recipes/ncbi-fcs-gx/0.5.0/aria_split_16.patch deleted file mode 100755 index dbc30ef59b262..0000000000000 --- a/recipes/ncbi-fcs-gx/0.5.0/aria_split_16.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/scripts/sync_files.py b/scripts/sync_files.py -index 3c404d37..2d87a87e 100755 ---- a/scripts/sync_files.py -+++ b/scripts/sync_files.py -@@ -360,16 +360,18 @@ def check_space(mft, dir): - def download_file_with_aria(url, file_path): - - aria_config = file_path.with_suffix(".aria2_config") -+ num_connections = 4 if "ncbi.nlm.nih.gov" in url else 16 -+ - with open(aria_config, "w", encoding="ascii") as f: -- f.write(""" -+ f.write(f""" - file-allocation=none - check-certificate=false - allow-overwrite=true - auto-file-renaming=false - max-tries=5 -- max-connection-per-server=5 -- max-concurrent-downloads=5 -- split=5 -+ max-concurrent-downloads=2 -+ max-connection-per-server={num_connections} -+ split={num_connections} - console-log-level=warn - """) diff --git a/recipes/ncbi-fcs-gx/0.5.0/build.sh b/recipes/ncbi-fcs-gx/0.5.0/build.sh deleted file mode 100644 index 1f6b00d23102a..0000000000000 --- a/recipes/ncbi-fcs-gx/0.5.0/build.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -e -set -uex - -mkdir -vp ${PREFIX}/bin - -make VERBOSE=1 -j ${CPU_COUNT} - -cp $SRC_DIR/build/src/gx ${PREFIX}/bin/ -cp $SRC_DIR/scripts/* ${PREFIX}/bin/ -cp $SRC_DIR/make_gxdb/blast_names_mapping.tsv ${PREFIX}/bin/ - -chmod ua+x ${PREFIX}/bin/gx - diff --git a/recipes/ncbi-fcs-gx/0.5.0/meta.yaml b/recipes/ncbi-fcs-gx/0.5.0/meta.yaml deleted file mode 100644 index 1173cc87b9678..0000000000000 --- a/recipes/ncbi-fcs-gx/0.5.0/meta.yaml +++ /dev/null @@ -1,45 +0,0 @@ -package: - name: ncbi-fcs-gx - version: 0.5.0 - -source: - url: https://github.com/ncbi/fcs-gx/archive/refs/tags/v0.5.0.zip - sha256: 2f6b6099584495e1a9115403a5e4cb5f5dac1ddbbc691da9a3158a75391ffe8a - patches: - - aria_split_16.patch - - no_static.patch - - -requirements: - build: - - {{ compiler('cxx') }} - - make - - cmake - - libstdcxx-ng <=12.2 - - libgcc-ng <=12.2 - run: - - python >=3.9 - - aria2 =1.36.0 - - gzip >=1.5 - - pv >=1.4.6 - - rclone =1.61.1 - - grep >=3.4 - -build: - number: 3 - skip: True # [not linux or not x86_64] - run_exports: - - {{ pin_compatible('ncbi-fcs-gx', max_pin="x.x") }} - -test: - commands: - - gx --help - - ls -l ${PREFIX}/bin/ - - ${PREFIX}/bin/gx --help - -about: - home: https://github.com/ncbi/fcs - summary: The NCBI Foreign Contamination Screen. Genomic cross-species aligner, for contamination detection. - license: NCBI-PD - license_url: https://github.com/ncbi/fcs/blob/main/LICENSE.txt - diff --git a/recipes/ncbi-fcs-gx/0.5.0/no_static.patch b/recipes/ncbi-fcs-gx/0.5.0/no_static.patch deleted file mode 100644 index 8d8e22f22579e..0000000000000 --- a/recipes/ncbi-fcs-gx/0.5.0/no_static.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -5,6 +5,6 @@ - set(gx_VERSION_MINOR 0) - - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -O0 -ggdb3 -DDEBUG") --set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -static -O2 -DNDEBUG") # TODO: investigate whether can/should enable -march=x86-64-v4 -+set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -O2 -DNDEBUG") # TODO: investigate whether can/should enable -march=x86-64-v4 - - add_subdirectory(src) diff --git a/recipes/ncbi-fcs-gx/aria_split_16.patch b/recipes/ncbi-fcs-gx/aria_split_16.patch deleted file mode 100755 index dbc30ef59b262..0000000000000 --- a/recipes/ncbi-fcs-gx/aria_split_16.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/scripts/sync_files.py b/scripts/sync_files.py -index 3c404d37..2d87a87e 100755 ---- a/scripts/sync_files.py -+++ b/scripts/sync_files.py -@@ -360,16 +360,18 @@ def check_space(mft, dir): - def download_file_with_aria(url, file_path): - - aria_config = file_path.with_suffix(".aria2_config") -+ num_connections = 4 if "ncbi.nlm.nih.gov" in url else 16 -+ - with open(aria_config, "w", encoding="ascii") as f: -- f.write(""" -+ f.write(f""" - file-allocation=none - check-certificate=false - allow-overwrite=true - auto-file-renaming=false - max-tries=5 -- max-connection-per-server=5 -- max-concurrent-downloads=5 -- split=5 -+ max-concurrent-downloads=2 -+ max-connection-per-server={num_connections} -+ split={num_connections} - console-log-level=warn - """) diff --git a/recipes/ncbi-fcs-gx/no_static.patch b/recipes/ncbi-fcs-gx/no_static.patch deleted file mode 100644 index 8d8e22f22579e..0000000000000 --- a/recipes/ncbi-fcs-gx/no_static.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -5,6 +5,6 @@ - set(gx_VERSION_MINOR 0) - - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -O0 -ggdb3 -DDEBUG") --set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -static -O2 -DNDEBUG") # TODO: investigate whether can/should enable -march=x86-64-v4 -+set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -O2 -DNDEBUG") # TODO: investigate whether can/should enable -march=x86-64-v4 - - add_subdirectory(src) From 5cc825ca3813fa09e2be5bcdb1977696bba01315 Mon Sep 17 00:00:00 2001 From: Lee Katz Date: Tue, 9 Jul 2024 15:19:44 -0400 Subject: [PATCH 0429/1514] Sneakernet-qc (#49052) * perl-bio-seqfeature * address errors for bld.bat and having tests * new download instructions; added src tsv and dmp files to build * new download instructions; added src tsv and dmp files to build * remove perl-bio-seqfeature * merged changes * merge * sneakernet v0.27 * ignore kalamari changes * corrected shasum * ignore kalamari changes * negate kalamari artifacts --- recipes/sneakernet-qc/meta.yaml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/recipes/sneakernet-qc/meta.yaml b/recipes/sneakernet-qc/meta.yaml index 7f0f666dbb590..541ebf9d9e863 100644 --- a/recipes/sneakernet-qc/meta.yaml +++ b/recipes/sneakernet-qc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "sneakernet-qc" %} -{% set version = "0.26.0" %} +{% set version = "0.27.0" %} package: name: {{ name }} @@ -13,7 +13,7 @@ build: source: url: https://github.com/lskatz/sneakernet/archive/v{{ version }}.tar.gz - sha256: 668a4a8d5afe9eb882f784f6b85e8917c913ff9763180919608313f3b026caf8 + sha256: 4fd8c041f5c18ea0392c2734f7a09c136ccbb4662afaea7a7f189ca0ca63ddc4 test: commands: @@ -51,8 +51,7 @@ requirements: - krona - lighter - make - # - perl-bio-kmer # remove because requires jellyfish2 which is in conflict with kraken1 - # - lskatz::perl-text-fuzzy + - perl-text-levenshtein >=0.15 - mash >=2 - megahit - mlst From bc6208ec9da53372edfb8f47eb47baec0eae6b11 Mon Sep 17 00:00:00 2001 From: Devon Ryan Date: Tue, 9 Jul 2024 21:19:52 +0200 Subject: [PATCH 0430/1514] Patch odgi for bugfix (#49021) * Debug odgi munmap_chunk in python * patch for stl * Need to LD_PRELOAD libjemalloc or we get a segfault@ --------- Co-authored-by: Devon Ryan --- recipes/odgi/meta.yaml | 4 +++- recipes/odgi/patch | 12 ++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 recipes/odgi/patch diff --git a/recipes/odgi/meta.yaml b/recipes/odgi/meta.yaml index 2302747d1b450..f75494a207e1f 100644 --- a/recipes/odgi/meta.yaml +++ b/recipes/odgi/meta.yaml @@ -8,10 +8,12 @@ package: source: url: https://github.com/pangenome/{{ name }}/releases/download/v{{ version }}/{{ name }}-v{{ version }}.tar.gz sha256: a6db190b782608082b14b42c660389aa18010791de1e2d07e29f7f61d8787754 + patches: + - patch build: skip: True # [osx or py27] - number: 1 + number: 2 run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} diff --git a/recipes/odgi/patch b/recipes/odgi/patch new file mode 100644 index 0000000000000..f5e417a8ecd37 --- /dev/null +++ b/recipes/odgi/patch @@ -0,0 +1,12 @@ +diff --git a/src/pythonmodule.cpp b/src/pythonmodule.cpp +index 6a7942b..e38b12b 100644 +--- a/src/pythonmodule.cpp ++++ b/src/pythonmodule.cpp +@@ -5,6 +5,7 @@ + #include + #include + #include ++#include + + namespace py = pybind11; + From 78a75d86cb49d8866a499ea97e39522b95bc141e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 15:22:19 -0400 Subject: [PATCH 0431/1514] Update cpstools to 1.0.11 (#48982) * Update cpstools to 1.0.6 * Update cpstools to 1.0.8 * Update cpstools to 1.0.10 * Update cpstools to 1.0.11 * clean up recipe * add home URL --------- Co-authored-by: mencian --- recipes/cpstools/build.sh | 3 -- recipes/cpstools/meta.yaml | 66 ++++++++++++++++++++++---------------- 2 files changed, 39 insertions(+), 30 deletions(-) delete mode 100644 recipes/cpstools/build.sh diff --git a/recipes/cpstools/build.sh b/recipes/cpstools/build.sh deleted file mode 100644 index 04547dc83fe20..0000000000000 --- a/recipes/cpstools/build.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -$PYTHON setup.py install --single-version-externally-managed --record=record.txt \ No newline at end of file diff --git a/recipes/cpstools/meta.yaml b/recipes/cpstools/meta.yaml index 0004e60bd506b..1d49cc214a881 100644 --- a/recipes/cpstools/meta.yaml +++ b/recipes/cpstools/meta.yaml @@ -1,37 +1,49 @@ +{% set name = "cpstools" %} +{% set version = "1.0.11" %} +{% set sha256 = "035420514fad0af1e0e06bd6f8932e9fe74e642aa97250b7279e7ce9009b5a31" %} + package: - name: cpstools - version: 1.0.0 + name: {{ name|lower }} + version: {{ version }} source: - url: "https://files.pythonhosted.org/packages/2b/97/6614cf90ac95ac650bd2561405c2dbb69264548e7b3a5e7b0a8c2c86a07a/cpstools-1.0.1.tar.gz" - sha256: 7aafded5255edd3be05b1ba4eff94a74f12d37c4b59a177a2696cea90985b35a + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/cpstools-{{ version }}.tar.gz + sha256: {{ sha256 }} build: - number: 0 - noarch: python - run_exports: - - {{ pin_subpackage('cpstools', max_pin="x") }} - entry_points: - - cpstools = cpstools.cmdline:main + entry_points: + - cpstools = cpstools.cmdline:main + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + number: 0 + run_exports: + - {{ pin_subpackage('cpstools', max_pin="x") }} requirements: - build: - - python >=3.8 - - setuptools - run: - - python >=3.8 - - numpy >=1.24 - - biopython >=1.83 - + host: + - python >=3.10 + - poetry-core + - pip + run: + - python >=3.10.0 + - biopython >=1.84.0 + - numpy >=1.26.4 + test: - imports: - - cpstools - - commands: - - cpstools -h + imports: + - cpstools + commands: + - cpstools --help about: - home: https://github.com/Xwb7533/CPStools - license: MIT - summary: "CPStools is a package for analyzing chloroplast genome sequences." - description: "CPStools is a package for analyzing chloroplast genome sequences." + home: "https://github.com/Xwb7533/CPStools" + summary: "CPStools is a package for analyzing chloroplast genome sequences." + license: MIT + license_family: MIT + license_file: LICENSE + description: "CPStools is a package for analyzing chloroplast genome sequences." + dev_url: "https://github.com/Xwb7533/CPStools" + +extra: + recipe-maintainers: + - mencian From fd7a6da01e5314a93d835ca9caa9fd30719d9fef Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 15:22:34 -0400 Subject: [PATCH 0432/1514] Update phylornn to 1.1 (#48988) * Update phylornn to 1.1 * add ete3 --------- Co-authored-by: mencian --- recipes/phylornn/meta.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/recipes/phylornn/meta.yaml b/recipes/phylornn/meta.yaml index fd87847f297f0..a1331f7fd74c9 100644 --- a/recipes/phylornn/meta.yaml +++ b/recipes/phylornn/meta.yaml @@ -1,29 +1,29 @@ -{% set version = "1.0" %} # Remember to also update sha256 below -{% set sha256 = "3c78cff8031dff8f428c4ec2942d03404a9218cbd138cff85b4614020c531d78" %} +{% set version = "1.1" %} # Remember to also update sha256 below +{% set sha256 = "b06e459ca0d525b37d2b64b9922b1a743b126fca4641bf7512ae349325467bbe" %} package: name: phylornn version: {{ version }} source: - url: https://github.com/phyloRNN/phyloRNN/archive/refs/tags/v{{ version }}.tar.gz + url: https://github.com/phyloRNN/phyloRNN/archive/refs/tags/v{{ version }}.tar.gz sha256: {{ sha256 }} build: noarch: python number: 0 - script: {{ PYTHON }} -m pip install . -vv + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv run_exports: - {{ pin_subpackage('phylornn', max_pin="x") }} requirements: host: - python >=3.8 - # - setuptools + - pip run: - python >=3.8 - numpy >=1.23.1,<1.24 - - seaborn >=0.11.2,<0.12 + - seaborn-base >=0.11.2,<0.12 - matplotlib-base >=3.5.2,<3.6 - pandas >=1.4.3,<1.5 - scipy >=1.8.1,<1.9 @@ -33,6 +33,7 @@ requirements: - seq-gen >=1.3.0,<1.4 - phyml >=3.3.0,<3.4 - biopython >=1.81,<2 + - ete3 test: imports: @@ -43,4 +44,3 @@ about: license: LPGL-2.1-only license_family: LGPL summary: PhyloRNN - From 35437cd4955b84d8173e3acf5657696c2fdefd61 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 15:39:19 -0400 Subject: [PATCH 0433/1514] Update vamos to 2.1.2 (#49056) --- recipes/vamos/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/vamos/meta.yaml b/recipes/vamos/meta.yaml index f682f257b4f28..1e9e60cb01f74 100644 --- a/recipes/vamos/meta.yaml +++ b/recipes/vamos/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.1.1" %} +{% set version = "2.1.2" %} {% set name = "vamos" %} package: @@ -7,11 +7,11 @@ package: source: url: https://github.com/ChaissonLab/vamos/archive/refs/tags/vamos-v{{ version }}.tar.gz - sha256: 2ddd1d0eee9df8090d1a920334154bc3909bddf2a605125a947c8b1da32516aa + sha256: 6c3f7b667daec2723ce970bb6b9dba9f9c2f5ba7379dbd57b3a9068d72251c46 build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage(name, max_pin='x') }} From ac6d23c9d6cf09b867d24b509b3f97f743004ec2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 16:35:17 -0400 Subject: [PATCH 0434/1514] Update selene-sdk to 0.5.3 (#49054) * Update selene-sdk to 0.5.2 * Update selene-sdk to 0.5.3 --- recipes/selene-sdk/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/selene-sdk/meta.yaml b/recipes/selene-sdk/meta.yaml index acaeef01b7fab..663dafc365e8b 100644 --- a/recipes/selene-sdk/meta.yaml +++ b/recipes/selene-sdk/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.5.0" %} +{% set version = "0.5.3" %} package: name: selene-sdk @@ -6,10 +6,10 @@ package: source: url: https://github.com/FunctionLab/selene/archive/refs/tags/{{ version }}.tar.gz - sha256: daa7969fc99f6ffa00dda2f7657442f4a1d84771b7a83c8b3464db0221ca8b32 + sha256: 2b895b29e7be9fee47d2ae21cb5a82e5cfb32e56a32a7367ec0ce0020051ddf7 build: - number: 5 + number: 0 script: python setup.py install --single-version-externally-managed --record=record.txt run_exports: - {{ pin_subpackage("selene-sdk", max_pin="x.x") }} From 32d43f8d134e8441952561b950bb329658373b7a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 9 Jul 2024 16:55:07 -0400 Subject: [PATCH 0435/1514] Update ucsc-cell-browser to 1.2.8 (#49057) --- recipes/ucsc-cell-browser/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ucsc-cell-browser/meta.yaml b/recipes/ucsc-cell-browser/meta.yaml index fef5654535f84..a934f9f917891 100644 --- a/recipes/ucsc-cell-browser/meta.yaml +++ b/recipes/ucsc-cell-browser/meta.yaml @@ -1,4 +1,4 @@ -{% set version = '1.2.7' %} +{% set version = '1.2.8' %} {% set name = "cellbrowser" %} package: @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: "67b1c96db001ba4bf1a126a4923d404e1edc6a2dd344b2b15cf70b96f1f338f5" + sha256: "2fe4a16c8b9daaa04be6d168c187e2c3561d66513600e9e5c847f8539bf4ba4d" build: number: 0 From 2eff3329b2d07b523977b3cbc51eb840a65fb857 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 01:03:12 -0400 Subject: [PATCH 0436/1514] Update physher to 2.0.1 (#49066) --- recipes/physher/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/physher/meta.yaml b/recipes/physher/meta.yaml index 7c864f1e5360d..43d23ed5a48e8 100644 --- a/recipes/physher/meta.yaml +++ b/recipes/physher/meta.yaml @@ -1,5 +1,5 @@ {% set name = "physher" %} -{% set version = "2.0.0" %} +{% set version = "2.0.1" %} package: name: "{{ name|lower }}" @@ -12,7 +12,7 @@ build: source: url: https://github.com/4ment/physher/archive/refs/tags/v{{ version }}.tar.gz - sha256: 89de0789af1136ca9a08f009b1db45d441bcb1d4ea7519103a998916b37c618f + sha256: b87a69f49a81401e02cde0c99331f6ddbb10b53c8b4e671419510fb3093796d4 requirements: From cdb76148ecaa52b453f3f5ad8d75da2387579576 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 01:03:44 -0400 Subject: [PATCH 0437/1514] Update pharokka to 1.7.3 (#49064) --- recipes/pharokka/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pharokka/meta.yaml b/recipes/pharokka/meta.yaml index 063f5f8b190f6..d7af0ffffce0f 100644 --- a/recipes/pharokka/meta.yaml +++ b/recipes/pharokka/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "1.7.2" %} +{% set version = "1.7.3" %} {% set name = "pharokka" %} -{% set sha256 = "2e58e1d15c40d9ac03a0136e1f41ddef0b819e9a8172ee429bdaf5ad1353f78b" %} +{% set sha256 = "52b35358babd46ea2b8ed152e2bfd5486f898fef5163b7c206f65de804d77f9b" %} {% set user = "gbouras13" %} package: From 0fa5758117996b2bc831db31229a9a3ba6721c4f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 01:04:40 -0400 Subject: [PATCH 0438/1514] Update t1k to 1.0.6 (#49063) --- recipes/t1k/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/t1k/meta.yaml b/recipes/t1k/meta.yaml index 8a80c8f20c3f9..4a4914fe77fe5 100644 --- a/recipes/t1k/meta.yaml +++ b/recipes/t1k/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.0.5" %} +{% set version = "1.0.6" %} package: name: t1k @@ -11,7 +11,7 @@ build: source: url: https://github.com/mourisl/T1K/archive/v{{ version }}.tar.gz - sha256: 8230d732ec92f66ca7dedb5786e8823d5def8c00dd020d9b99a889de8ed849e3 + sha256: 4b2a7ac9e7c5813380f60bb65d6c3b8995474217c9c90364f1e1206c6f8ab420 requirements: build: From defda83c45a20b9a39d56988b7fa5ab25ec76636 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 01:07:55 -0400 Subject: [PATCH 0439/1514] Update vamos to 2.1.3 (#49060) --- recipes/vamos/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/vamos/meta.yaml b/recipes/vamos/meta.yaml index 1e9e60cb01f74..57f68480e8002 100644 --- a/recipes/vamos/meta.yaml +++ b/recipes/vamos/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.1.2" %} +{% set version = "2.1.3" %} {% set name = "vamos" %} package: @@ -7,7 +7,7 @@ package: source: url: https://github.com/ChaissonLab/vamos/archive/refs/tags/vamos-v{{ version }}.tar.gz - sha256: 6c3f7b667daec2723ce970bb6b9dba9f9c2f5ba7379dbd57b3a9068d72251c46 + sha256: 7925787ae9cbe214b0eb94b494e393f7fc48c318a884ab106470d7034101b14f build: From 91935bbe59e75c273657ebcafafc20999c0ed6eb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 01:08:57 -0400 Subject: [PATCH 0440/1514] Update nextflow to 24.04.3 (#49058) --- recipes/nextflow/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/nextflow/meta.yaml b/recipes/nextflow/meta.yaml index 02b05a70e1e66..68e2ac3b81319 100644 --- a/recipes/nextflow/meta.yaml +++ b/recipes/nextflow/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "24.04.2" %} -{% set sha256 = "19fb76325146dddc8d09695bab108de77df76aa31c98bf8894f0a764e6b88dc3" %} +{% set version = "24.04.3" %} +{% set sha256 = "e258f6395a38f044eb734cba6790af98b561aa521f63e2701fe95c050986e11c" %} package: name: nextflow From 12cbbc5262c356a52123872970358546ce0fff9f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 03:16:54 -0400 Subject: [PATCH 0441/1514] Update hmftools-cuppa to 2.2.1 (#48501) * Update hmftools-cuppa to 2.2.0 * Update hmftools-cuppa to 2.2.1 * Remove CUPPA chart BASH script * Add pycuppa * Fix classpath regex in CUPPA BASH script * Update dependencies * Update/add tests * Do not create build variants for Python <3.9 * Set arch to python to enable variant build skip * Set correct use of noarch and version pinning * Set noarch python * Revert to noarch: generic and pin Python version --------- Co-authored-by: Stephen Watts --- recipes/hmftools-cuppa/build.sh | 6 ++--- recipes/hmftools-cuppa/cuppa-chart.sh | 23 ------------------ recipes/hmftools-cuppa/cuppa.sh | 2 +- recipes/hmftools-cuppa/meta.yaml | 34 ++++++++++++++------------- 4 files changed, 21 insertions(+), 44 deletions(-) delete mode 100755 recipes/hmftools-cuppa/cuppa-chart.sh diff --git a/recipes/hmftools-cuppa/build.sh b/recipes/hmftools-cuppa/build.sh index a11f515c544f5..0cd12bf1a92f0 100644 --- a/recipes/hmftools-cuppa/build.sh +++ b/recipes/hmftools-cuppa/build.sh @@ -6,9 +6,7 @@ TGT="$PREFIX/share/$PKG_NAME-$PKG_VERSION-$PKG_BUILDNUM" cd "${SRC_DIR}" mv jar/cuppa*.jar $TGT/cuppa.jar -mv src/cuppa/src/main/resources/cuppa-chart/* $TGT/chart/ +${PYTHON} -m pip install --no-build-isolation --no-deps --no-cache-dir -vvv src/cuppa/src/main/python/pycuppa/ cp $RECIPE_DIR/cuppa.sh $TGT/cuppa -cp $RECIPE_DIR/cuppa-chart.sh $TGT/cuppa-chart -ln -s $TGT/cuppa{,-chart} ${PREFIX}/bin/ -chmod 0755 ${PREFIX}/bin/cuppa{,-chart} +ln -s $TGT/cuppa ${PREFIX}/bin/ diff --git a/recipes/hmftools-cuppa/cuppa-chart.sh b/recipes/hmftools-cuppa/cuppa-chart.sh deleted file mode 100755 index 98ffa9f9ad790..0000000000000 --- a/recipes/hmftools-cuppa/cuppa-chart.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -# hmftools CUPPA chart executable shell script -# https://github.com/hartwigmedical/hmftools/tree/master/cuppa -set -eu -o pipefail - -export LC_ALL=en_US.UTF-8 - -# Find original directory of bash script, resolving symlinks -# http://stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in/246128#246128 -SOURCE="${BASH_SOURCE[0]}" -while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink - DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )" - SOURCE="$(readlink "$SOURCE")" - [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located -done -DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )" - -ENV_PREFIX="$(dirname $(dirname $DIR))" -# Use Python installed with Anaconda to ensure correct version -python="$ENV_PREFIX/bin/python" - -# Run with argument passthrough -eval ${python} ${DIR}/chart/cuppa-chart.py ${@} diff --git a/recipes/hmftools-cuppa/cuppa.sh b/recipes/hmftools-cuppa/cuppa.sh index 33e257cb82296..d3300113ab61b 100755 --- a/recipes/hmftools-cuppa/cuppa.sh +++ b/recipes/hmftools-cuppa/cuppa.sh @@ -60,7 +60,7 @@ if [ "$jvm_mem_opts" == "" ]; then fi pass_arr=($pass_args) -if [[ ${pass_arr[0]:=} == org* ]] +if [[ ${pass_arr[0]:=} == com.hartwig.* ]] then eval "$java" $jvm_mem_opts $jvm_prop_opts -cp "$JAR_DIR/cuppa.jar" $pass_args else diff --git a/recipes/hmftools-cuppa/meta.yaml b/recipes/hmftools-cuppa/meta.yaml index 11c76e5964d28..0b3ed8f2b8aa6 100644 --- a/recipes/hmftools-cuppa/meta.yaml +++ b/recipes/hmftools-cuppa/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "2.1.1" %} -{% set sha256_jar = "3d1eadc1b6f270358a182a2dd41f17ae0db745abb43ef4b9f2f56b03c2ae9f6d" %} -{% set sha256_src = "97ae8cab9e6631ce3b31e84ddf3242eabb5613f4a2ca5dda535e9aadbdf4bf99" %} +{% set version = "2.2.1" %} +{% set sha256_jar = "38669b46befd678059426342b9c71ec3a2b007d850174e132e42ec7cd13e8752" %} +{% set sha256_src = "eb27b92670999bd8825305496508df63da56d59569e8eb64ed93bd814e6d35c3" %} package: name: hmftools-cuppa @@ -21,26 +21,28 @@ build: - {{ pin_subpackage("hmftools-cuppa", max_pin="x.x") }} requirements: + host: + - python ==3.11 + - r-base >=4.2,<4.3.0a0 run: - openjdk >=8 - - r-base >=4 - - r-cowplot - - r-ggplot2 - - r-gridextra - - r-stringi - - r-tidyr - - matplotlib-base >=3.3,<4 - - numpy >=1.19,<2 - - pandas >=1.1,<2 - - scipy >=1,<2 - - seaborn >=0.11,<1 + - python ==3.11 + - numpy >=1.24 + - pandas ==2.0.* + - scikit-learn ==1.3.0 + - r-base >=4.2,<4.3.0a0 + - r-ggh4x >=0.2 + - r-ggplot2 >=3.5 + - r-patchwork >=1.2 + - r-stringr >=1.5 test: commands: - - 'cuppa | grep "missing required config: ref_data_dir: Reference data directory"' + - 'cuppa com.hartwig.hmftools.cup.prep.CuppaDataPrep -version | grep "Cuppa version"' + - 'python -m cuppa.predict 2>&1 | grep "predict.py:"' about: home: https://github.com/hartwigmedical/hmftools/blob/master/cuppa/README.md license: GPL-3.0-only license_family: GPL3 - summary: Predict tissue of origin for tumor samples from WGTS data. \ No newline at end of file + summary: Predict tissue of origin for tumor samples from WGTS data. From 6f69b1e8f03a8599c286bb79ba0a90e0ce0f0b2a Mon Sep 17 00:00:00 2001 From: Kez Cleal <42997789+kcleal@users.noreply.github.com> Date: Wed, 10 Jul 2024 12:10:10 +0100 Subject: [PATCH 0442/1514] Gw v0.10.0 (#49007) * GW v0.10.0 * Gw v0.10.0 * Update meta.yaml * Update meta.yaml * Update meta.yaml * Create fix-linker-issues.patch * Update meta.yaml * Update fix-linker-issues.patch * Update fix-linker-issues.patch * Update fix-linker-issues.patch * Update fix-linker-issues.patch * Update fix-linker-issues.patch * Update fix-linker-issues.patch * Update meta.yaml * Update build.sh * Update build.sh * Update build.sh * Update build.sh * Create fix-ldflags.patch * Update meta.yaml * Update fix-ldflags.patch * Update meta.yaml * trigger re build * Update recipes/gw/build.sh Co-authored-by: Martin Grigorov --------- Co-authored-by: Martin Grigorov --- recipes/gw/build.sh | 3 ++- recipes/gw/fix-ldflags.patch | 5 +++++ recipes/gw/fix-linker-issues.patch | 5 +++++ recipes/gw/meta.yaml | 20 ++++++++++++++------ 4 files changed, 26 insertions(+), 7 deletions(-) create mode 100644 recipes/gw/fix-ldflags.patch create mode 100644 recipes/gw/fix-linker-issues.patch diff --git a/recipes/gw/build.sh b/recipes/gw/build.sh index d04ce0b29c4d9..7fddb127f886d 100644 --- a/recipes/gw/build.sh +++ b/recipes/gw/build.sh @@ -5,9 +5,10 @@ if [[ "$OSTYPE" != "darwin"* ]]; then sed -i 's/-lEGL -lGLESv2/-lGL/' Makefile fi make prep -CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" make +CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" LDFLAGS="${LDFLAGS} -L${PREFIX}" prefix="${PREFIX}" make -j ${CPU_COUNT} mkdir -p $PREFIX/bin cp gw $PREFIX/bin/gw cp -n .gw.ini $PREFIX/bin/.gw.ini chmod +x $PREFIX/bin/gw chmod +rw $PREFIX/bin/.gw.ini + diff --git a/recipes/gw/fix-ldflags.patch b/recipes/gw/fix-ldflags.patch new file mode 100644 index 0000000000000..a6ca9f35a7f78 --- /dev/null +++ b/recipes/gw/fix-ldflags.patch @@ -0,0 +1,5 @@ ++++ b/Makefile +@@ -55,1 +55,1 @@ +- LDFLAGS= ++ + diff --git a/recipes/gw/fix-linker-issues.patch b/recipes/gw/fix-linker-issues.patch new file mode 100644 index 0000000000000..b8092058913e6 --- /dev/null +++ b/recipes/gw/fix-linker-issues.patch @@ -0,0 +1,5 @@ +--- a/Makefile ++++ b/Makefile +@@ -132,1 +132,1 @@ +- $(CXX) $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) $(LDLIBS) -o $@ ++ $(CXX) $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) $(LDLIBS) -Wl,-rpath,$(PREFIX)/lib -Wl,-rpath-link,$(PREFIX)/lib -lxcb-glx -lxcb-dri2 -lexpat -o $@ diff --git a/recipes/gw/meta.yaml b/recipes/gw/meta.yaml index 5594f0a8c7aa8..ae43abb52a571 100644 --- a/recipes/gw/meta.yaml +++ b/recipes/gw/meta.yaml @@ -1,6 +1,7 @@ -{% set version = "0.9.3" %} -{% set sha256 = "43445ef6d96bd8a09a9a45cd18e21481d7fefe7e9ab26aec4abd8d1f4bff3fcd" %} +{% set version = "0.10.0" %} +{% set sha256 = "81d9a560152af6d1c45d90336c74ad051edb5ea29bab5b8791c323b1ed3ac608" %} + package: name: gw @@ -10,10 +11,13 @@ package: source: url: https://github.com/kcleal/gw/archive/refs/tags/v{{ version }}.tar.gz sha256: {{ sha256 }} + patches: + - fix-linker-issues.patch # [linux] + - fix-ldflags.patch build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('gw', max_pin="x") }} @@ -29,16 +33,20 @@ requirements: - {{ cdt('libxxf86vm') }} # [linux] - {{ cdt('libxfixes') }} # [linux] - {{ cdt('libxext') }} # [linux] - - wget - - unzip host: - fontconfig + - libuuid - libcurl - libdeflate >=1.0 - htslib >=1.12 - glfw >=3.3 + - wget + - unzip - freetype - - xorg-libxfixes # [linux] + - xorg-libxfixes # [linux] + - xorg-libx11 # [linux] + - xorg-libxcb # [linux] + - expat # [linux] run: - glfw >=3.3 - htslib >=1.12 From 71e8ce72e3a62d419a744dc737ed315d867d0dd5 Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Wed, 10 Jul 2024 13:11:23 +0200 Subject: [PATCH 0443/1514] Fix pathphynder to include auxiliary function files (#49069) * pathphynder: add linux-aarch64 build * Get the reamining function files and patch to point to this * Update recipes/pathphynder/meta.yaml --- recipes/pathphynder/build.sh | 3 +++ recipes/pathphynder/meta.yaml | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/pathphynder/build.sh b/recipes/pathphynder/build.sh index f76d464e2b5e7..492598857ae17 100644 --- a/recipes/pathphynder/build.sh +++ b/recipes/pathphynder/build.sh @@ -1,3 +1,6 @@ #!/bin/bash +mkdir -p $PREFIX/lib/R/library/pathphynder +cp -r R/ data/ $PREFIX/lib/R/library/pathphynder +sed -i "s#^packpwd<-.*\+\$#packpwd<-'$PREFIX/lib/R/library/pathphynder/R'#g" pathPhynder.R cp pathPhynder.R $PREFIX/bin/pathPhynder diff --git a/recipes/pathphynder/meta.yaml b/recipes/pathphynder/meta.yaml index 3a6b98cfae316..b855b661f24ef 100644 --- a/recipes/pathphynder/meta.yaml +++ b/recipes/pathphynder/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 2 noarch: generic run_exports: - {{ pin_subpackage( 'pathphynder', max_pin='x.x') }} From 21c10344824144356d8bc126d6e9eced83d1ac71 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 07:23:06 -0400 Subject: [PATCH 0444/1514] Update cmat to 3.2.1 (#48884) * Update cmat to 3.2.0 * pin requests to 2.32.0 * requests == 2.32.3. There is no 2.32.0 * requests == 2.32.3. There is no 2.32.0 * Update cmat to 3.2.1 --------- Co-authored-by: mencian Co-authored-by: Martin Grigorov --- recipes/cmat/build.sh | 8 ++++---- recipes/cmat/meta.yaml | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/recipes/cmat/build.sh b/recipes/cmat/build.sh index 035f39b8879b4..376a98566a511 100644 --- a/recipes/cmat/build.sh +++ b/recipes/cmat/build.sh @@ -1,11 +1,11 @@ -#!/bin/bash +#!/bin/bash -euo -$PYTHON -m pip install . +$PYTHON -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv CMAT="${PREFIX}/share/${PKG_NAME}-${PKG_VERSION}" mkdir -p ${PREFIX}/bin ${CMAT} chmod 775 bin/cmat/* -cp bin/cmat/* ${PREFIX}/bin +cp -f bin/cmat/* ${PREFIX}/bin -mv bin/ mappings/ pipelines/ ${CMAT} \ No newline at end of file +mv bin/ mappings/ pipelines/ ${CMAT} diff --git a/recipes/cmat/meta.yaml b/recipes/cmat/meta.yaml index b05472e761e06..ffcbd6088a86c 100644 --- a/recipes/cmat/meta.yaml +++ b/recipes/cmat/meta.yaml @@ -1,5 +1,5 @@ {% set name = "cmat" %} -{% set version = "3.1.3" %} +{% set version = "3.2.1" %} package: name: {{ name }} @@ -7,13 +7,13 @@ package: source: url: https://github.com/EBIvariation/CMAT/archive/v{{version}}.tar.gz - sha256: e084d692249e14181c7997c4e09685b6dfe7b9d953078d2872e3005049b2356a + sha256: f7368fe08422080f333b51c90f63b450b59300437169686b9729c21c1f142224 build: number: 0 noarch: generic run_exports: - - {{ pin_subpackage(name, max_pin="x.x") }} + - {{ pin_subpackage(name, max_pin="x") }} requirements: host: @@ -27,7 +27,7 @@ requirements: - pandas ==1.5.3 - pytest ==7.2.2 - pytest-cov ==2.10.0 - - requests ==2.31.0 + - requests ==2.32.3 - requests-mock ==1.8.0 - retry ==0.9.2 run: @@ -41,7 +41,7 @@ requirements: - pandas ==1.5.3 - pytest ==7.2.2 - pytest-cov ==2.10.0 - - requests ==2.31.0 + - requests ==2.32.3 - requests-mock ==1.8.0 - retry ==0.9.2 From 53d10f70cbfd441c8eabba01c27119e67469231a Mon Sep 17 00:00:00 2001 From: Benjamin Linard <22132778+blinard-BIOINFO@users.noreply.github.com> Date: Wed, 10 Jul 2024 13:49:47 +0200 Subject: [PATCH 0445/1514] Ipk: issue related to boost-cpp version which differs in bioconda-build CI and local install. (#49000) * Pin boost version to 1.85 to avoid boost version mismatches when installing the package * bumps build number --------- Co-authored-by: Jacques Dainat Co-authored-by: Benjamin Linard Co-authored-by: Martin Grigorov --- recipes/ipk/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/ipk/meta.yaml b/recipes/ipk/meta.yaml index d64d17598877b..6aa9bfb9e74c2 100644 --- a/recipes/ipk/meta.yaml +++ b/recipes/ipk/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('ipk', max_pin="x.x") }} @@ -21,10 +21,10 @@ requirements: - {{ compiler('cxx') }} - cmake host: - - boost-cpp >=1.67 + - boost-cpp =1.85 - zlib run: - - boost-cpp >=1.67 + - boost-cpp =1.85 - raxml-ng - phyml - python From 42401322feea4633b8fb3ee6ab5f47c6b40827ab Mon Sep 17 00:00:00 2001 From: Rob Patro Date: Wed, 10 Jul 2024 07:57:30 -0400 Subject: [PATCH 0446/1514] Update piscem to 0.10.1 (#49065) * Try to figure out how to trigger autobot * Update meta.yaml * change location to just "source.tar.gz" * Update piscem to 0.10.1 * Update meta.yaml --------- Co-authored-by: BiocondaBot <47040946+BiocondaBot@users.noreply.github.com> --- recipes/piscem/meta.yaml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/recipes/piscem/meta.yaml b/recipes/piscem/meta.yaml index fd6566d3b29ab..b781bafa4b557 100644 --- a/recipes/piscem/meta.yaml +++ b/recipes/piscem/meta.yaml @@ -1,7 +1,9 @@ -{% set version = "0.10.0" %} +{% set version = "0.10.1" %} +{% set name = "piscem" %} +{% set sha256 = "1f53716a6b0c23bd174616893c29cd93a01f57cd5306cb276898bc549d2b7edf" %} package: - name: piscem + name: {{ name }} version: {{ version }} build: @@ -10,8 +12,8 @@ build: - {{ pin_subpackage("piscem", max_pin="x.x") }} source: - url: https://github.com/COMBINE-lab/piscem/releases/download/v{{ version }}/source_recursive.tar.gz - sha256: c2bad3704086e6f7d1930fe5ac38c1d724a50aa88dc19b82445cc23e3b7a207c + url: https://github.com/COMBINE-lab/piscem/releases/download/v{{ version }}/source.tar.gz + sha256: {{ sha256 }} requirements: build: From 0b4352b9922c058bede911f78d2235ca1f240f03 Mon Sep 17 00:00:00 2001 From: Tom L Kaufmann <17513791+tlkaufmann@users.noreply.github.com> Date: Wed, 10 Jul 2024 15:31:02 +0200 Subject: [PATCH 0447/1514] Update MEDICC2 to version 1.0.4 (#49071) * Updated dependencies for MEDICC2 and updated to version 1.0.4 * Reset the build number to 0 Signed-off-by: Martin Tzvetanov Grigorov * restrict python versions for medicc2 --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov --- recipes/medicc2/meta.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/recipes/medicc2/meta.yaml b/recipes/medicc2/meta.yaml index c0c4852257814..34c7f0f7d235e 100644 --- a/recipes/medicc2/meta.yaml +++ b/recipes/medicc2/meta.yaml @@ -1,6 +1,6 @@ {% set name = "medicc2" %} -{% set version = "1.0.2" %} -{% set hash = "0acfcea5646706ce4ceb787a36eef2e9d7272928442b147e23813c56ecde5987" %} +{% set version = "1.0.4" %} +{% set hash = "ed890c608b5d6ad08ea1e459af93a844242c1e12a02bd0f03b542a3654dcc720" %} package: @@ -12,7 +12,7 @@ source: sha256: {{ hash }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage("medicc2", max_pin="x") }} script: {{ PYTHON }} -m pip install . -vv @@ -22,7 +22,7 @@ requirements: - {{ compiler('c') }} - {{ compiler("cxx") }} host: - - python + - python >=3.8,<3.11 - pip # The following are needed for building the Cython extension - numpy >=1.20.1 @@ -30,11 +30,11 @@ requirements: - setuptools - cython ==0.29.* run: - - python - - numpy >=1.20.1 + - python >=3.8,<3.11 + - numpy >=1.20.1,<2.0 - pyyaml >=5.4.1 - {{ pin_compatible('openfst', max_pin='x.x.x') }} - - pandas >=1.2.2 + - pandas >=1.2.2,<2.1 - joblib >=1.0.1 - biopython >=1.78 - scipy >=1.7 From 1ca03e6ca5dd68b23421d9b0e117beac105689d5 Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Wed, 10 Jul 2024 15:50:40 +0200 Subject: [PATCH 0448/1514] Fix AMDirT dependency (#49076) * Update meta.yaml * Pin version of aggrid * Update meta.yaml --- recipes/amdirt/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/amdirt/meta.yaml b/recipes/amdirt/meta.yaml index 607c51f610b82..7969b929a6ad4 100644 --- a/recipes/amdirt/meta.yaml +++ b/recipes/amdirt/meta.yaml @@ -14,7 +14,7 @@ build: - AMDirT = AMDirT.cli:cli noarch: python script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv - number: 0 + number: 1 run_exports: - {{ pin_subpackage("amdirt", max_pin="x") }} @@ -32,8 +32,8 @@ requirements: - python >=3.9 - requests - rich - - streamlit - - streamlit-aggrid + - streamlit <=1.35.0 + - streamlit-aggrid <=0.3.5 - tabulate test: From c6aa5ae015670c9cdf1bbcbcf62ca9c6419e27e2 Mon Sep 17 00:00:00 2001 From: Ryan Koeksal Date: Wed, 10 Jul 2024 15:51:16 +0200 Subject: [PATCH 0449/1514] Add rnaformer (#49072) * Add rnaformer * Update recipes/rnaformer/meta.yml Co-authored-by: Martin Grigorov --------- Co-authored-by: Martin Grigorov --- recipes/rnaformer/meta.yml | 57 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 recipes/rnaformer/meta.yml diff --git a/recipes/rnaformer/meta.yml b/recipes/rnaformer/meta.yml new file mode 100644 index 0000000000000..5259da88ef507 --- /dev/null +++ b/recipes/rnaformer/meta.yml @@ -0,0 +1,57 @@ +{% set name = "RNAformer" %} +{% set version = "0.0.1" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/r/{{ name|lower }}/{{ name|lower }}-{{ version }}.tar.gz + sha256: 36374aa476ffd0be681e8ad29fec64cb074b6e341db1dc8179fcbd43cdf5da55 + +build: + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + +requirements: + host: + - python >=3.10 + - pip + run: + - python >=3.10 + - pytorch + - torchvision + - tqdm + - pyyaml + - pyaml + - numpy + - packaging + - wheel + - tabulate + - scipy + - pandas + - scikit-learn + - matplotlib-base + - polars + - loralib + - tensorboard + - transformers + - datasets + - pytorch-lightning + - deepspeed + - rotary-embedding-torch + +test: + imports: + - RNAformer + +about: + home: https://github.com/automl/RNAformer + summary: 'RNAformer: a simple single-sequence-based deep learning model for RNA secondary structure prediction.' + license: Apache-2.0 + license_file: LICENSE + +extra: + recipe-maintainers: + - ivelet From 80f683ff0b5e84c9b2e9d1ed345a8d26e5b61364 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 10:39:31 -0400 Subject: [PATCH 0450/1514] Update gencove to 2.18.1 (#49081) --- recipes/gencove/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gencove/meta.yaml b/recipes/gencove/meta.yaml index d68732c137bbb..820f2fee7f560 100644 --- a/recipes/gencove/meta.yaml +++ b/recipes/gencove/meta.yaml @@ -1,6 +1,6 @@ {% set name = "gencove" %} -{% set version = "2.18.0" %} -{% set sha256 = "c918361baadae2f27fee47a570c02a07392e7d2bfaed64ee537a7ee284251c09" %} +{% set version = "2.18.1" %} +{% set sha256 = "3e9cd5172ba7b72017685de0e6f141584177f74647746ab964f686f5c6470e8b" %} package: name: {{ name }} From 6d4b410b09d385bfbff32b090513ad173f2237c1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 10:39:43 -0400 Subject: [PATCH 0451/1514] Update locarna to 2.0.1 (#49078) --- recipes/locarna/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/locarna/meta.yaml b/recipes/locarna/meta.yaml index 044f0c71cdf47..68b1253eb8c61 100644 --- a/recipes/locarna/meta.yaml +++ b/recipes/locarna/meta.yaml @@ -1,5 +1,5 @@ -{% set version="2.0.0" %} -{% set sha256="3be0d2cac7f7451f8b741983e22803b546de2074d837b425fb1b69ccc718ebbc" %} +{% set version="2.0.1" %} +{% set sha256="1f50748d2f8f4bf5888394154d366e0eed8d4e20a3cd0da8b33e200aa1d9edf7" %} {% set vrnaversion="2.5.1" %} package: @@ -13,7 +13,7 @@ about: summary: Multiple alignment of RNAs build: - number: 5 + number: 0 run_exports: - {{ pin_subpackage('locarna', max_pin="x.x") }} From ce3804e5229925c3734e2d385d7755c8eca2b72f Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 10 Jul 2024 17:40:25 +0300 Subject: [PATCH 0452/1514] t1k: add linux-aarch64 build (#49077) * t1k: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Allow signed chars for linux-aarch64 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/t1k/build.sh | 21 ++++++++++++++++++--- recipes/t1k/meta.yaml | 20 ++++++++++++-------- 2 files changed, 30 insertions(+), 11 deletions(-) diff --git a/recipes/t1k/build.sh b/recipes/t1k/build.sh index 1edb8133c8526..e86d0285023c0 100755 --- a/recipes/t1k/build.sh +++ b/recipes/t1k/build.sh @@ -1,10 +1,25 @@ #!/bin/bash -sed -i.bak 's/-f .\/samtools-0.1.19\/libbam.a/1/' Makefile -make \ +set -xe + +if [ "$(uname -m)" == "aarch64" ]; then + export CXXFLAGS="${CXXFLAGS} -fsigned-char" +fi + +LINKPATH="${LDFLAGS}" +if [ "$(uname -m)" == "x86_64" ]; then + # use samtools 0.1.19 as a dependency + sed -i.bak 's/-f .\/samtools-0.1.19\/libbam.a/1/' Makefile +else + # build the vendored samtools 0.1.19 + sed -i.bak 's/cd samtools-0.1.19 ; make /cd samtools-0.1.19 ; make CC="${CC}" CFLAGS="${CFLAGS} -L${PREFIX}\/lib" LDFLAGS="${LDFLAGS}" LIBPATH="-L${PREFIX}\/lib"/' Makefile + LINKPATH="${LDFLAGS} -I./samtools-0.1.19 -L./samtools-0.1.19" +fi + +make -j ${CPU_COUNT} \ CXX="${CXX}" \ CXXFLAGS="${CXXFLAGS} -Wformat -O3" \ - LINKPATH="${LDFLAGS} -I./samtools-0.1.19" + LINKPATH="${LINKPATH}" install -d "${PREFIX}/bin" install genotyper analyzer fastq-extractor bam-extractor run-t1k \ t1k-build.pl ParseDatFile.pl AddGeneCoord.pl t1k-smartseq.pl t1k-merge.py \ diff --git a/recipes/t1k/meta.yaml b/recipes/t1k/meta.yaml index 4a4914fe77fe5..d1a157c3a6e45 100644 --- a/recipes/t1k/meta.yaml +++ b/recipes/t1k/meta.yaml @@ -5,7 +5,7 @@ package: version: '{{ version }}' build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('t1k', max_pin="x") }} @@ -19,7 +19,7 @@ requirements: - {{ compiler('cxx') }} - {{ compiler('c') }} host: - - samtools 0.1.19.* + - samtools 0.1.19.* # [x86_64] - zlib run: - perl @@ -31,12 +31,12 @@ test: - fastq-extractor 2>&1 | cat > /dev/null - bam-extractor 2>&1 | cat > /dev/null - analyzer 2>&1 | cat > /dev/null - - which t1k-build.pl - - which ParseDatFile.pl - - which AddGeneCoord.pl - - which t1k-smartseq.pl - - which t1k-merge.py - - which run-t1k + - test -x ${PREFIX}/bin/t1k-build.pl + - test -x ${PREFIX}/bin/ParseDatFile.pl + - test -x ${PREFIX}/bin/AddGeneCoord.pl + - test -x ${PREFIX}/bin/t1k-smartseq.pl + - test -x ${PREFIX}/bin/t1k-merge.py + - test -x ${PREFIX}/bin/run-t1k about: home: https://github.com/mourisl/T1K @@ -44,3 +44,7 @@ about: license: MIT license_family: MIT license_file: LICENSE.txt + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From b39af75326567b00a9a2e89e1fa66101c693e467 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 10 Jul 2024 17:40:45 +0300 Subject: [PATCH 0453/1514] physher: add linux-aarch64 build (#49070) * physher: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Disable SSE for linux-aarch64 Signed-off-by: Martin Tzvetanov Grigorov * Use sse2neon for SSE support for linux-aarch64 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/physher/build.sh | 4 +++- recipes/physher/meta.yaml | 7 +++++-- recipes/physher/physher-aarch64.patch | 27 +++++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 recipes/physher/physher-aarch64.patch diff --git a/recipes/physher/build.sh b/recipes/physher/build.sh index 9e841b22143c6..fe14d56a4bb4f 100644 --- a/recipes/physher/build.sh +++ b/recipes/physher/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + cmake -S . -B build -DBUILD_CPP_WRAPPER=on -DCMAKE_INSTALL_PREFIX=$PREFIX -cmake --build build/ --target install \ No newline at end of file +cmake --build build/ --target install -j ${CPU_COUNT} \ No newline at end of file diff --git a/recipes/physher/meta.yaml b/recipes/physher/meta.yaml index 43d23ed5a48e8..d049c02266827 100644 --- a/recipes/physher/meta.yaml +++ b/recipes/physher/meta.yaml @@ -6,14 +6,15 @@ package: version: "{{ version }}" build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('physher', max_pin="x") }} source: url: https://github.com/4ment/physher/archive/refs/tags/v{{ version }}.tar.gz sha256: b87a69f49a81401e02cde0c99331f6ddbb10b53c8b4e671419510fb3093796d4 - + patches: + - physher-aarch64.patch # [linux and aarch64] requirements: build: @@ -36,6 +37,8 @@ about: summary: A multi-algorithmic framework for phylogenetic inference extra: + additional-platforms: + - linux-aarch64 maintainers: - 4ment identifiers: diff --git a/recipes/physher/physher-aarch64.patch b/recipes/physher/physher-aarch64.patch new file mode 100644 index 0000000000000..0e60282fade6f --- /dev/null +++ b/recipes/physher/physher-aarch64.patch @@ -0,0 +1,27 @@ +diff --git i/CMakeLists.txt w/CMakeLists.txt +index c587912..4b2a2a9 100644 +--- i/CMakeLists.txt ++++ w/CMakeLists.txt +@@ -150,13 +150,8 @@ IF(USE_SSE_SUPPORT) + + add_definitions("-DSSE3_ENABLED") + +- IF(APPLE AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") +- MESSAGE(STATUS "Using sse2neon for arm64 Apple M1") +- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv8-a+fp+simd+crypto+crc") +- ELSE() +- MESSAGE(STATUS "Using SSE ${SSE_LEVEL}") +- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m${SSE_LEVEL}") +- ENDIF() ++ MESSAGE(STATUS "Using sse2neon for aarch64") ++ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=native") + + SET(${LIBRARY_NAME}_SSE_ENABLED "1") + SET(${LIBRARY_NAME}_SSE_LEVEL ${SSE_LEVEL}) +@@ -401,4 +396,4 @@ ENDIF (BUILD_TESTING) + + IF (BUILD_BENCHMARKING) + add_subdirectory(examples) +-ENDIF (BUILD_BENCHMARKING) +\ No newline at end of file ++ENDIF (BUILD_BENCHMARKING) From c57e26e318deb81a7a68dd42324afb206c8baccf Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 10 Jul 2024 17:41:01 +0300 Subject: [PATCH 0454/1514] haplomap: add linux-aarch64 build (#49068) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/haplomap/build.sh | 4 +++- recipes/haplomap/meta.yaml | 10 +++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/recipes/haplomap/build.sh b/recipes/haplomap/build.sh index 86bc15452fabc..5b1eb4c060eee 100644 --- a/recipes/haplomap/build.sh +++ b/recipes/haplomap/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + # https://bioconda.github.io/troubleshooting.html#zlib-errors export CFLAGS="-I${PREFIX}/include" export LDFLAGS="-L${PREFIX}/lib" @@ -11,5 +13,5 @@ export C_INCLUDE_PATH=${PREFIX}/include mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=${PREFIX}/bin -DCMAKE_BUILD_TYPE=Release .. -make +make -j ${CPU_COUNT} make install diff --git a/recipes/haplomap/meta.yaml b/recipes/haplomap/meta.yaml index eed0c6397f6bd..0948847322532 100644 --- a/recipes/haplomap/meta.yaml +++ b/recipes/haplomap/meta.yaml @@ -10,7 +10,9 @@ source: sha256: '{{sha256}}' build: - number: 2 + number: 3 + run_exports: + - {{ pin_subpackage('haplomap', max_pin='x.x') }} requirements: build: @@ -18,8 +20,6 @@ requirements: - cmake - {{ compiler('c') }} - {{ compiler('cxx') }} - - gsl - host: - gsl run: @@ -33,3 +33,7 @@ about: home: https://github.com/zqfang/haplomap license: MIT summary: Haplotype-based computational genetic mapping + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 00e29c0a1badf7fce52c9481337e38b39bce6360 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 10 Jul 2024 17:41:09 +0300 Subject: [PATCH 0455/1514] vamos: add linux-aarch64 build (#49067) * vamos: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Add a patch to build on linux-aarch64. Use sse2neon for abPOA Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/vamos/build.sh | 4 +- recipes/vamos/meta.yaml | 8 +- recipes/vamos/vamos-aarch64.patch | 9336 +++++++++++++++++++++++++++++ 3 files changed, 9346 insertions(+), 2 deletions(-) create mode 100644 recipes/vamos/vamos-aarch64.patch diff --git a/recipes/vamos/build.sh b/recipes/vamos/build.sh index e6e2422f4273f..7906e90e177e4 100644 --- a/recipes/vamos/build.sh +++ b/recipes/vamos/build.sh @@ -1,11 +1,13 @@ #!/bin/bash +set -xe + mkdir -p $PREFIX/bin export CFLAGS="$CFLAGS -I$PREFIX/include" export LDFLAGS="$LDFLAGS -L$PREFIX/lib" export CPATH=${PREFIX}/include -cd src && make CC="${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -fPIE " CXX="${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} -fPIE" && cd .. +cd src && make -j ${CPU_COUNT} CC="${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -fPIE " CXX="${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} -fPIE" && cd .. cp src/vamos $PREFIX/bin diff --git a/recipes/vamos/meta.yaml b/recipes/vamos/meta.yaml index 57f68480e8002..c8358ec898074 100644 --- a/recipes/vamos/meta.yaml +++ b/recipes/vamos/meta.yaml @@ -8,10 +8,12 @@ package: source: url: https://github.com/ChaissonLab/vamos/archive/refs/tags/vamos-v{{ version }}.tar.gz sha256: 7925787ae9cbe214b0eb94b494e393f7fc48c318a884ab106470d7034101b14f + patches: + - vamos-aarch64.patch # [linux and aarch64] build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin='x') }} @@ -41,3 +43,7 @@ about: license: USC-RL v1.0 license_file: LICENSE.txt summary: 'VNTR annotation using efficient motif selection' + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file diff --git a/recipes/vamos/vamos-aarch64.patch b/recipes/vamos/vamos-aarch64.patch new file mode 100644 index 0000000000000..ee5ce9518dc73 --- /dev/null +++ b/recipes/vamos/vamos-aarch64.patch @@ -0,0 +1,9336 @@ +diff --git c/abPOA-1.4.1/include/simd_instruction.h i/abPOA-1.4.1/include/simd_instruction.h +index 41deb16..030adc8 100644 +--- c/abPOA-1.4.1/include/simd_instruction.h ++++ i/abPOA-1.4.1/include/simd_instruction.h +@@ -18,7 +18,11 @@ + #undef __AVX512BW__ + + #ifndef USE_SIMDE ++#ifdef __ARM_NEON ++#include "sse2neon.h" ++#else + #include ++#endif + #else // use SIMDE + #ifdef __AVX512F__ + #include "simde/simde/x86/avx512.h" +diff --git c/abPOA-1.4.1/include/sse2neon.h i/abPOA-1.4.1/include/sse2neon.h +new file mode 100644 +index 0000000..2b12721 +--- /dev/null ++++ i/abPOA-1.4.1/include/sse2neon.h +@@ -0,0 +1,9301 @@ ++#ifndef SSE2NEON_H ++#define SSE2NEON_H ++ ++/* ++ * sse2neon is freely redistributable under the MIT License. ++ * ++ * Copyright (c) 2015-2024 SSE2NEON Contributors. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a copy ++ * of this software and associated documentation files (the "Software"), to deal ++ * in the Software without restriction, including without limitation the rights ++ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ++ * copies of the Software, and to permit persons to whom the Software is ++ * furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be included in ++ * all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++ * SOFTWARE. ++ */ ++ ++// This header file provides a simple API translation layer ++// between SSE intrinsics to their corresponding Arm/Aarch64 NEON versions ++// ++// Contributors to this work are: ++// John W. Ratcliff ++// Brandon Rowlett ++// Ken Fast ++// Eric van Beurden ++// Alexander Potylitsin ++// Hasindu Gamaarachchi ++// Jim Huang ++// Mark Cheng ++// Malcolm James MacLeod ++// Devin Hussey (easyaspi314) ++// Sebastian Pop ++// Developer Ecosystem Engineering ++// Danila Kutenin ++// François Turban (JishinMaster) ++// Pei-Hsuan Hung ++// Yang-Hao Yuan ++// Syoyo Fujita ++// Brecht Van Lommel ++// Jonathan Hue ++// Cuda Chen ++// Aymen Qader ++// Anthony Roberts ++ ++/* Tunable configurations */ ++ ++/* Enable precise implementation of math operations ++ * This would slow down the computation a bit, but gives consistent result with ++ * x86 SSE. (e.g. would solve a hole or NaN pixel in the rendering result) ++ */ ++/* _mm_min|max_ps|ss|pd|sd */ ++#ifndef SSE2NEON_PRECISE_MINMAX ++#define SSE2NEON_PRECISE_MINMAX (0) ++#endif ++/* _mm_rcp_ps */ ++#ifndef SSE2NEON_PRECISE_DIV ++#define SSE2NEON_PRECISE_DIV (0) ++#endif ++/* _mm_sqrt_ps and _mm_rsqrt_ps */ ++#ifndef SSE2NEON_PRECISE_SQRT ++#define SSE2NEON_PRECISE_SQRT (0) ++#endif ++/* _mm_dp_pd */ ++#ifndef SSE2NEON_PRECISE_DP ++#define SSE2NEON_PRECISE_DP (0) ++#endif ++ ++/* Enable inclusion of windows.h on MSVC platforms ++ * This makes _mm_clflush functional on windows, as there is no builtin. ++ */ ++#ifndef SSE2NEON_INCLUDE_WINDOWS_H ++#define SSE2NEON_INCLUDE_WINDOWS_H (0) ++#endif ++ ++/* compiler specific definitions */ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma push_macro("FORCE_INLINE") ++#pragma push_macro("ALIGN_STRUCT") ++#define FORCE_INLINE static inline __attribute__((always_inline)) ++#define ALIGN_STRUCT(x) __attribute__((aligned(x))) ++#define _sse2neon_likely(x) __builtin_expect(!!(x), 1) ++#define _sse2neon_unlikely(x) __builtin_expect(!!(x), 0) ++#elif defined(_MSC_VER) ++#if _MSVC_TRADITIONAL ++#error Using the traditional MSVC preprocessor is not supported! Use /Zc:preprocessor instead. ++#endif ++#ifndef FORCE_INLINE ++#define FORCE_INLINE static inline ++#endif ++#ifndef ALIGN_STRUCT ++#define ALIGN_STRUCT(x) __declspec(align(x)) ++#endif ++#define _sse2neon_likely(x) (x) ++#define _sse2neon_unlikely(x) (x) ++#else ++#pragma message("Macro name collisions may happen with unsupported compilers.") ++#endif ++ ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma push_macro("FORCE_INLINE_OPTNONE") ++#define FORCE_INLINE_OPTNONE static inline __attribute__((optimize("O0"))) ++#elif defined(__clang__) ++#pragma push_macro("FORCE_INLINE_OPTNONE") ++#define FORCE_INLINE_OPTNONE static inline __attribute__((optnone)) ++#else ++#define FORCE_INLINE_OPTNONE FORCE_INLINE ++#endif ++ ++#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ < 10 ++#warning "GCC versions earlier than 10 are not supported." ++#endif ++ ++/* C language does not allow initializing a variable with a function call. */ ++#ifdef __cplusplus ++#define _sse2neon_const static const ++#else ++#define _sse2neon_const const ++#endif ++ ++#include ++#include ++ ++#if defined(_WIN32) ++/* Definitions for _mm_{malloc,free} are provided by ++ * from both MinGW-w64 and MSVC. ++ */ ++#define SSE2NEON_ALLOC_DEFINED ++#endif ++ ++/* If using MSVC */ ++#ifdef _MSC_VER ++#include ++#if SSE2NEON_INCLUDE_WINDOWS_H ++#include ++#include ++#endif ++ ++#if !defined(__cplusplus) ++#error SSE2NEON only supports C++ compilation with this compiler ++#endif ++ ++#ifdef SSE2NEON_ALLOC_DEFINED ++#include ++#endif ++ ++#if (defined(_M_AMD64) || defined(__x86_64__)) || \ ++ (defined(_M_ARM64) || defined(__arm64__)) ++#define SSE2NEON_HAS_BITSCAN64 ++#endif ++#endif ++ ++#if defined(__GNUC__) || defined(__clang__) ++#define _sse2neon_define0(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define1(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define2(type, a, b, body) \ ++ __extension__({ \ ++ type _a = (a), _b = (b); \ ++ body \ ++ }) ++#define _sse2neon_return(ret) (ret) ++#else ++#define _sse2neon_define0(type, a, body) [=](type _a) { body }(a) ++#define _sse2neon_define1(type, a, body) [](type _a) { body }(a) ++#define _sse2neon_define2(type, a, b, body) \ ++ [](type _a, type _b) { body }((a), (b)) ++#define _sse2neon_return(ret) return ret ++#endif ++ ++#define _sse2neon_init(...) \ ++ { \ ++ __VA_ARGS__ \ ++ } ++ ++/* Compiler barrier */ ++#if defined(_MSC_VER) ++#define SSE2NEON_BARRIER() _ReadWriteBarrier() ++#else ++#define SSE2NEON_BARRIER() \ ++ do { \ ++ __asm__ __volatile__("" ::: "memory"); \ ++ (void) 0; \ ++ } while (0) ++#endif ++ ++/* Memory barriers ++ * __atomic_thread_fence does not include a compiler barrier; instead, ++ * the barrier is part of __atomic_load/__atomic_store's "volatile-like" ++ * semantics. ++ */ ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) ++#include ++#endif ++ ++FORCE_INLINE void _sse2neon_smp_mb(void) ++{ ++ SSE2NEON_BARRIER(); ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \ ++ !defined(__STDC_NO_ATOMICS__) ++ atomic_thread_fence(memory_order_seq_cst); ++#elif defined(__GNUC__) || defined(__clang__) ++ __atomic_thread_fence(__ATOMIC_SEQ_CST); ++#else /* MSVC */ ++ __dmb(_ARM64_BARRIER_ISH); ++#endif ++} ++ ++/* Architecture-specific build options */ ++/* FIXME: #pragma GCC push_options is only available on GCC */ ++#if defined(__GNUC__) ++#if defined(__arm__) && __ARM_ARCH == 7 ++/* According to ARM C Language Extensions Architecture specification, ++ * __ARM_NEON is defined to a value indicating the Advanced SIMD (NEON) ++ * architecture supported. ++ */ ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error "You must enable NEON instructions (e.g. -mfpu=neon) to use SSE2NEON." ++#endif ++#if !defined(__clang__) ++#pragma GCC push_options ++#pragma GCC target("fpu=neon") ++#endif ++#elif defined(__aarch64__) || defined(_M_ARM64) ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#pragma GCC target("+simd") ++#endif ++#elif __ARM_ARCH == 8 ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error \ ++ "You must enable NEON instructions (e.g. -mfpu=neon-fp-armv8) to use SSE2NEON." ++#endif ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#endif ++#else ++#error \ ++ "Unsupported target. Must be either ARMv7-A+NEON or ARMv8-A \ ++(you could try setting target explicitly with -march or -mcpu)" ++#endif ++#endif ++ ++#include ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) && (__ARM_ARCH == 8) ++#if defined __has_include && __has_include() ++#include ++#endif ++#endif ++ ++/* Apple Silicon cache lines are double of what is commonly used by Intel, AMD ++ * and other Arm microarchitectures use. ++ * From sysctl -a on Apple M1: ++ * hw.cachelinesize: 128 ++ */ ++#if defined(__APPLE__) && (defined(__aarch64__) || defined(__arm64__)) ++#define SSE2NEON_CACHELINE_SIZE 128 ++#else ++#define SSE2NEON_CACHELINE_SIZE 64 ++#endif ++ ++/* Rounding functions require either Aarch64 instructions or libm fallback */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#include ++#endif ++ ++/* On ARMv7, some registers, such as PMUSERENR and PMCCNTR, are read-only ++ * or even not accessible in user mode. ++ * To write or access to these registers in user mode, ++ * we have to perform syscall instead. ++ */ ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) ++#include ++#endif ++ ++/* "__has_builtin" can be used to query support for built-in functions ++ * provided by gcc/clang and other compilers that support it. ++ */ ++#ifndef __has_builtin /* GCC prior to 10 or non-clang compilers */ ++/* Compatibility with gcc <= 9 */ ++#if defined(__GNUC__) && (__GNUC__ <= 9) ++#define __has_builtin(x) HAS##x ++#define HAS__builtin_popcount 1 ++#define HAS__builtin_popcountll 1 ++ ++// __builtin_shuffle introduced in GCC 4.7.0 ++#if (__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) ++#define HAS__builtin_shuffle 1 ++#else ++#define HAS__builtin_shuffle 0 ++#endif ++ ++#define HAS__builtin_shufflevector 0 ++#define HAS__builtin_nontemporal_store 0 ++#else ++#define __has_builtin(x) 0 ++#endif ++#endif ++ ++/** ++ * MACRO for shuffle parameter for _mm_shuffle_ps(). ++ * Argument fp3 is a digit[0123] that represents the fp from argument "b" ++ * of mm_shuffle_ps that will be placed in fp3 of result. fp2 is the same ++ * for fp2 in result. fp1 is a digit[0123] that represents the fp from ++ * argument "a" of mm_shuffle_ps that will be places in fp1 of result. ++ * fp0 is the same for fp0 of result. ++ */ ++#define _MM_SHUFFLE(fp3, fp2, fp1, fp0) \ ++ (((fp3) << 6) | ((fp2) << 4) | ((fp1) << 2) | ((fp0))) ++ ++#if __has_builtin(__builtin_shufflevector) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __builtin_shufflevector(a, b, __VA_ARGS__) ++#elif __has_builtin(__builtin_shuffle) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __extension__({ \ ++ type tmp = {__VA_ARGS__}; \ ++ __builtin_shuffle(a, b, tmp); \ ++ }) ++#endif ++ ++#ifdef _sse2neon_shuffle ++#define vshuffle_s16(a, b, ...) _sse2neon_shuffle(int16x4_t, a, b, __VA_ARGS__) ++#define vshuffleq_s16(a, b, ...) _sse2neon_shuffle(int16x8_t, a, b, __VA_ARGS__) ++#define vshuffle_s32(a, b, ...) _sse2neon_shuffle(int32x2_t, a, b, __VA_ARGS__) ++#define vshuffleq_s32(a, b, ...) _sse2neon_shuffle(int32x4_t, a, b, __VA_ARGS__) ++#define vshuffle_s64(a, b, ...) _sse2neon_shuffle(int64x1_t, a, b, __VA_ARGS__) ++#define vshuffleq_s64(a, b, ...) _sse2neon_shuffle(int64x2_t, a, b, __VA_ARGS__) ++#endif ++ ++/* Rounding mode macros. */ ++#define _MM_FROUND_TO_NEAREST_INT 0x00 ++#define _MM_FROUND_TO_NEG_INF 0x01 ++#define _MM_FROUND_TO_POS_INF 0x02 ++#define _MM_FROUND_TO_ZERO 0x03 ++#define _MM_FROUND_CUR_DIRECTION 0x04 ++#define _MM_FROUND_NO_EXC 0x08 ++#define _MM_FROUND_RAISE_EXC 0x00 ++#define _MM_FROUND_NINT (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_FLOOR (_MM_FROUND_TO_NEG_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_CEIL (_MM_FROUND_TO_POS_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_TRUNC (_MM_FROUND_TO_ZERO | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_RINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_NEARBYINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_NO_EXC) ++#define _MM_ROUND_NEAREST 0x0000 ++#define _MM_ROUND_DOWN 0x2000 ++#define _MM_ROUND_UP 0x4000 ++#define _MM_ROUND_TOWARD_ZERO 0x6000 ++/* Flush zero mode macros. */ ++#define _MM_FLUSH_ZERO_MASK 0x8000 ++#define _MM_FLUSH_ZERO_ON 0x8000 ++#define _MM_FLUSH_ZERO_OFF 0x0000 ++/* Denormals are zeros mode macros. */ ++#define _MM_DENORMALS_ZERO_MASK 0x0040 ++#define _MM_DENORMALS_ZERO_ON 0x0040 ++#define _MM_DENORMALS_ZERO_OFF 0x0000 ++ ++/* indicate immediate constant argument in a given range */ ++#define __constrange(a, b) const ++ ++/* A few intrinsics accept traditional data types like ints or floats, but ++ * most operate on data types that are specific to SSE. ++ * If a vector type ends in d, it contains doubles, and if it does not have ++ * a suffix, it contains floats. An integer vector type can contain any type ++ * of integer, from chars to shorts to unsigned long longs. ++ */ ++typedef int64x1_t __m64; ++typedef float32x4_t __m128; /* 128-bit vector containing 4 floats */ ++// On ARM 32-bit architecture, the float64x2_t is not supported. ++// The data type __m128d should be represented in a different way for related ++// intrinsic conversion. ++#if defined(__aarch64__) || defined(_M_ARM64) ++typedef float64x2_t __m128d; /* 128-bit vector containing 2 doubles */ ++#else ++typedef float32x4_t __m128d; ++#endif ++typedef int64x2_t __m128i; /* 128-bit vector containing integers */ ++ ++// Some intrinsics operate on unaligned data types. ++typedef int16_t ALIGN_STRUCT(1) unaligned_int16_t; ++typedef int32_t ALIGN_STRUCT(1) unaligned_int32_t; ++typedef int64_t ALIGN_STRUCT(1) unaligned_int64_t; ++ ++// __int64 is defined in the Intrinsics Guide which maps to different datatype ++// in different data model ++#if !(defined(_WIN32) || defined(_WIN64) || defined(__int64)) ++#if (defined(__x86_64__) || defined(__i386__)) ++#define __int64 long long ++#else ++#define __int64 int64_t ++#endif ++#endif ++ ++/* type-safe casting between types */ ++ ++#define vreinterpretq_m128_f16(x) vreinterpretq_f32_f16(x) ++#define vreinterpretq_m128_f32(x) (x) ++#define vreinterpretq_m128_f64(x) vreinterpretq_f32_f64(x) ++ ++#define vreinterpretq_m128_u8(x) vreinterpretq_f32_u8(x) ++#define vreinterpretq_m128_u16(x) vreinterpretq_f32_u16(x) ++#define vreinterpretq_m128_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128_s8(x) vreinterpretq_f32_s8(x) ++#define vreinterpretq_m128_s16(x) vreinterpretq_f32_s16(x) ++#define vreinterpretq_m128_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_f16_m128(x) vreinterpretq_f16_f32(x) ++#define vreinterpretq_f32_m128(x) (x) ++#define vreinterpretq_f64_m128(x) vreinterpretq_f64_f32(x) ++ ++#define vreinterpretq_u8_m128(x) vreinterpretq_u8_f32(x) ++#define vreinterpretq_u16_m128(x) vreinterpretq_u16_f32(x) ++#define vreinterpretq_u32_m128(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_s8_m128(x) vreinterpretq_s8_f32(x) ++#define vreinterpretq_s16_m128(x) vreinterpretq_s16_f32(x) ++#define vreinterpretq_s32_m128(x) vreinterpretq_s32_f32(x) ++#define vreinterpretq_s64_m128(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_m128i_s8(x) vreinterpretq_s64_s8(x) ++#define vreinterpretq_m128i_s16(x) vreinterpretq_s64_s16(x) ++#define vreinterpretq_m128i_s32(x) vreinterpretq_s64_s32(x) ++#define vreinterpretq_m128i_s64(x) (x) ++ ++#define vreinterpretq_m128i_u8(x) vreinterpretq_s64_u8(x) ++#define vreinterpretq_m128i_u16(x) vreinterpretq_s64_u16(x) ++#define vreinterpretq_m128i_u32(x) vreinterpretq_s64_u32(x) ++#define vreinterpretq_m128i_u64(x) vreinterpretq_s64_u64(x) ++ ++#define vreinterpretq_f32_m128i(x) vreinterpretq_f32_s64(x) ++#define vreinterpretq_f64_m128i(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_s8_m128i(x) vreinterpretq_s8_s64(x) ++#define vreinterpretq_s16_m128i(x) vreinterpretq_s16_s64(x) ++#define vreinterpretq_s32_m128i(x) vreinterpretq_s32_s64(x) ++#define vreinterpretq_s64_m128i(x) (x) ++ ++#define vreinterpretq_u8_m128i(x) vreinterpretq_u8_s64(x) ++#define vreinterpretq_u16_m128i(x) vreinterpretq_u16_s64(x) ++#define vreinterpretq_u32_m128i(x) vreinterpretq_u32_s64(x) ++#define vreinterpretq_u64_m128i(x) vreinterpretq_u64_s64(x) ++ ++#define vreinterpret_m64_s8(x) vreinterpret_s64_s8(x) ++#define vreinterpret_m64_s16(x) vreinterpret_s64_s16(x) ++#define vreinterpret_m64_s32(x) vreinterpret_s64_s32(x) ++#define vreinterpret_m64_s64(x) (x) ++ ++#define vreinterpret_m64_u8(x) vreinterpret_s64_u8(x) ++#define vreinterpret_m64_u16(x) vreinterpret_s64_u16(x) ++#define vreinterpret_m64_u32(x) vreinterpret_s64_u32(x) ++#define vreinterpret_m64_u64(x) vreinterpret_s64_u64(x) ++ ++#define vreinterpret_m64_f16(x) vreinterpret_s64_f16(x) ++#define vreinterpret_m64_f32(x) vreinterpret_s64_f32(x) ++#define vreinterpret_m64_f64(x) vreinterpret_s64_f64(x) ++ ++#define vreinterpret_u8_m64(x) vreinterpret_u8_s64(x) ++#define vreinterpret_u16_m64(x) vreinterpret_u16_s64(x) ++#define vreinterpret_u32_m64(x) vreinterpret_u32_s64(x) ++#define vreinterpret_u64_m64(x) vreinterpret_u64_s64(x) ++ ++#define vreinterpret_s8_m64(x) vreinterpret_s8_s64(x) ++#define vreinterpret_s16_m64(x) vreinterpret_s16_s64(x) ++#define vreinterpret_s32_m64(x) vreinterpret_s32_s64(x) ++#define vreinterpret_s64_m64(x) (x) ++ ++#define vreinterpret_f32_m64(x) vreinterpret_f32_s64(x) ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f64_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f64_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) vreinterpretq_f64_f32(x) ++#define vreinterpretq_m128d_f64(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f64(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f64(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f64(x) ++ ++#define vreinterpretq_f64_m128d(x) (x) ++#define vreinterpretq_f32_m128d(x) vreinterpretq_f32_f64(x) ++#else ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_m128d_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_f32_m128d(x) (x) ++#endif ++ ++// A struct is defined in this header file called 'SIMDVec' which can be used ++// by applications which attempt to access the contents of an __m128 struct ++// directly. It is important to note that accessing the __m128 struct directly ++// is bad coding practice by Microsoft: @see: ++// https://learn.microsoft.com/en-us/cpp/cpp/m128 ++// ++// However, some legacy source code may try to access the contents of an __m128 ++// struct directly so the developer can use the SIMDVec as an alias for it. Any ++// casting must be done manually by the developer, as you cannot cast or ++// otherwise alias the base NEON data type for intrinsic operations. ++// ++// union intended to allow direct access to an __m128 variable using the names ++// that the MSVC compiler provides. This union should really only be used when ++// trying to access the members of the vector as integer values. GCC/clang ++// allow native access to the float members through a simple array access ++// operator (in C since 4.6, in C++ since 4.8). ++// ++// Ideally direct accesses to SIMD vectors should not be used since it can cause ++// a performance hit. If it really is needed however, the original __m128 ++// variable can be aliased with a pointer to this union and used to access ++// individual components. The use of this union should be hidden behind a macro ++// that is used throughout the codebase to access the members instead of always ++// declaring this type of variable. ++typedef union ALIGN_STRUCT(16) SIMDVec { ++ float m128_f32[4]; // as floats - DON'T USE. Added for convenience. ++ int8_t m128_i8[16]; // as signed 8-bit integers. ++ int16_t m128_i16[8]; // as signed 16-bit integers. ++ int32_t m128_i32[4]; // as signed 32-bit integers. ++ int64_t m128_i64[2]; // as signed 64-bit integers. ++ uint8_t m128_u8[16]; // as unsigned 8-bit integers. ++ uint16_t m128_u16[8]; // as unsigned 16-bit integers. ++ uint32_t m128_u32[4]; // as unsigned 32-bit integers. ++ uint64_t m128_u64[2]; // as unsigned 64-bit integers. ++} SIMDVec; ++ ++// casting using SIMDVec ++#define vreinterpretq_nth_u64_m128i(x, n) (((SIMDVec *) &x)->m128_u64[n]) ++#define vreinterpretq_nth_u32_m128i(x, n) (((SIMDVec *) &x)->m128_u32[n]) ++#define vreinterpretq_nth_u8_m128i(x, n) (((SIMDVec *) &x)->m128_u8[n]) ++ ++/* SSE macros */ ++#define _MM_GET_FLUSH_ZERO_MODE _sse2neon_mm_get_flush_zero_mode ++#define _MM_SET_FLUSH_ZERO_MODE _sse2neon_mm_set_flush_zero_mode ++#define _MM_GET_DENORMALS_ZERO_MODE _sse2neon_mm_get_denormals_zero_mode ++#define _MM_SET_DENORMALS_ZERO_MODE _sse2neon_mm_set_denormals_zero_mode ++ ++// Function declaration ++// SSE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void); ++FORCE_INLINE __m128 _mm_move_ss(__m128, __m128); ++FORCE_INLINE __m128 _mm_or_ps(__m128, __m128); ++FORCE_INLINE __m128 _mm_set_ps1(float); ++FORCE_INLINE __m128 _mm_setzero_ps(void); ++// SSE2 ++FORCE_INLINE __m128i _mm_and_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_castps_si128(__m128); ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128); ++FORCE_INLINE __m128d _mm_move_sd(__m128d, __m128d); ++FORCE_INLINE __m128i _mm_or_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_set_epi32(int, int, int, int); ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t, int64_t); ++FORCE_INLINE __m128d _mm_set_pd(double, double); ++FORCE_INLINE __m128i _mm_set1_epi32(int); ++FORCE_INLINE __m128i _mm_setzero_si128(void); ++// SSE4.1 ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d); ++FORCE_INLINE __m128 _mm_ceil_ps(__m128); ++FORCE_INLINE __m128d _mm_floor_pd(__m128d); ++FORCE_INLINE __m128 _mm_floor_ps(__m128); ++FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d, int); ++FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128, int); ++// SSE4.2 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t, uint8_t); ++ ++/* Backwards compatibility for compilers with lack of specific type support */ ++ ++// Older gcc does not define vld1q_u8_x4 type ++#if defined(__GNUC__) && !defined(__clang__) && \ ++ ((__GNUC__ <= 13 && defined(__arm__)) || \ ++ (__GNUC__ == 10 && __GNUC_MINOR__ < 3 && defined(__aarch64__)) || \ ++ (__GNUC__ <= 9 && defined(__aarch64__))) ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ uint8x16x4_t ret; ++ ret.val[0] = vld1q_u8(p + 0); ++ ret.val[1] = vld1q_u8(p + 16); ++ ret.val[2] = vld1q_u8(p + 32); ++ ret.val[3] = vld1q_u8(p + 48); ++ return ret; ++} ++#else ++// Wraps vld1q_u8_x4 ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ return vld1q_u8_x4(p); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddv u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ const uint64x1_t v1 = vpaddl_u32(vpaddl_u16(vpaddl_u8(v8))); ++ return vget_lane_u8(vreinterpret_u8_u64(v1), 0); ++} ++#else ++// Wraps vaddv_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ return vaddv_u8(v8); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ uint8x8_t tmp = vpadd_u8(vget_low_u8(a), vget_high_u8(a)); ++ uint8_t res = 0; ++ for (int i = 0; i < 8; ++i) ++ res += tmp[i]; ++ return res; ++} ++#else ++// Wraps vaddvq_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ return vaddvq_u8(a); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u16 variant */ ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ uint32x4_t m = vpaddlq_u16(a); ++ uint64x2_t n = vpaddlq_u32(m); ++ uint64x1_t o = vget_low_u64(n) + vget_high_u64(n); ++ ++ return vget_lane_u32((uint32x2_t) o, 0); ++} ++#else ++// Wraps vaddvq_u16 ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ return vaddvq_u16(a); ++} ++#endif ++ ++/* Function Naming Conventions ++ * The naming convention of SSE intrinsics is straightforward. A generic SSE ++ * intrinsic function is given as follows: ++ * _mm__ ++ * ++ * The parts of this format are given as follows: ++ * 1. describes the operation performed by the intrinsic ++ * 2. identifies the data type of the function's primary arguments ++ * ++ * This last part, , is a little complicated. It identifies the ++ * content of the input values, and can be set to any of the following values: ++ * + ps - vectors contain floats (ps stands for packed single-precision) ++ * + pd - vectors contain doubles (pd stands for packed double-precision) ++ * + epi8/epi16/epi32/epi64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * signed integers ++ * + epu8/epu16/epu32/epu64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * unsigned integers ++ * + si128 - unspecified 128-bit vector or 256-bit vector ++ * + m128/m128i/m128d - identifies input vector types when they are different ++ * than the type of the returned vector ++ * ++ * For example, _mm_setzero_ps. The _mm implies that the function returns ++ * a 128-bit vector. The _ps at the end implies that the argument vectors ++ * contain floats. ++ * ++ * A complete example: Byte Shuffle - pshufb (_mm_shuffle_epi8) ++ * // Set packed 16-bit integers. 128 bits, 8 short, per 16 bits ++ * __m128i v_in = _mm_setr_epi16(1, 2, 3, 4, 5, 6, 7, 8); ++ * // Set packed 8-bit integers ++ * // 128 bits, 16 chars, per 8 bits ++ * __m128i v_perm = _mm_setr_epi8(1, 0, 2, 3, 8, 9, 10, 11, ++ * 4, 5, 12, 13, 6, 7, 14, 15); ++ * // Shuffle packed 8-bit integers ++ * __m128i v_out = _mm_shuffle_epi8(v_in, v_perm); // pshufb ++ */ ++ ++/* Constants for use with _mm_prefetch. */ ++enum _mm_hint { ++ _MM_HINT_NTA = 0, /* load data to L1 and L2 cache, mark it as NTA */ ++ _MM_HINT_T0 = 1, /* load data to L1 and L2 cache */ ++ _MM_HINT_T1 = 2, /* load data to L2 cache only */ ++ _MM_HINT_T2 = 3, /* load data to L2 cache only, mark it as NTA */ ++}; ++ ++// The bit field mapping to the FPCR(floating-point control register) ++typedef struct { ++ uint16_t res0; ++ uint8_t res1 : 6; ++ uint8_t bit22 : 1; ++ uint8_t bit23 : 1; ++ uint8_t bit24 : 1; ++ uint8_t res2 : 7; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32_t res3; ++#endif ++} fpcr_bitfield; ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of b and places it into the high end of the result. ++FORCE_INLINE __m128 _mm_shuffle_ps_1032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in high ++// end of result takes the higher two 32 bit values from b and swaps them and ++// places in low end of result. ++FORCE_INLINE __m128 _mm_shuffle_ps_2301(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b23 = vrev64_f32(vget_high_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b23)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0321(__m128 a, __m128 b) ++{ ++ float32x2_t a21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a21, b03)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2103(__m128 a, __m128 b) ++{ ++ float32x2_t a03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a03, b21)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0101(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b01)); ++} ++ ++// keeps the low 64 bits of b in the low and puts the high 64 bits of a in the ++// high ++FORCE_INLINE __m128 _mm_shuffle_ps_3210(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0011(__m128 a, __m128 b) ++{ ++ float32x2_t a11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a11, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0022(__m128 a, __m128 b) ++{ ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a22, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2200(__m128 a, __m128 b) ++{ ++ float32x2_t a00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a00, b22)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_3202(__m128 a, __m128 b) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t a02 = vset_lane_f32(a0, a22, 1); /* TODO: use vzip ?*/ ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a02, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1133(__m128 a, __m128 b) ++{ ++ float32x2_t a33 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a33, b11)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b20)); ++} ++ ++// For MSVC, we check only if it is ARM64, as every single ARM64 processor ++// supported by WoA has crypto extensions. If this changes in the future, ++// this can be verified via the runtime-only method of: ++// IsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE) ++#if (defined(_M_ARM64) && !defined(__clang__)) || \ ++ (defined(__ARM_FEATURE_CRYPTO) && \ ++ (defined(__aarch64__) || __has_builtin(__builtin_arm_crypto_vmullp64))) ++// Wraps vmull_p64 ++FORCE_INLINE uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly64_t a = vget_lane_p64(vreinterpret_p64_u64(_a), 0); ++ poly64_t b = vget_lane_p64(vreinterpret_p64_u64(_b), 0); ++#if defined(_MSC_VER) ++ __n64 a1 = {a}, b1 = {b}; ++ return vreinterpretq_u64_p128(vmull_p64(a1, b1)); ++#else ++ return vreinterpretq_u64_p128(vmull_p64(a, b)); ++#endif ++} ++#else // ARMv7 polyfill ++// ARMv7/some A64 lacks vmull_p64, but it has vmull_p8. ++// ++// vmull_p8 calculates 8 8-bit->16-bit polynomial multiplies, but we need a ++// 64-bit->128-bit polynomial multiply. ++// ++// It needs some work and is somewhat slow, but it is still faster than all ++// known scalar methods. ++// ++// Algorithm adapted to C from ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/, which is adapted ++// from "Fast Software Polynomial Multiplication on ARM Processors Using the ++// NEON Engine" by Danilo Camara, Conrado Gouvea, Julio Lopez and Ricardo Dahab ++// (https://hal.inria.fr/hal-01506572) ++static uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly8x8_t a = vreinterpret_p8_u64(_a); ++ poly8x8_t b = vreinterpret_p8_u64(_b); ++ ++ // Masks ++ uint8x16_t k48_32 = vcombine_u8(vcreate_u8(0x0000ffffffffffff), ++ vcreate_u8(0x00000000ffffffff)); ++ uint8x16_t k16_00 = vcombine_u8(vcreate_u8(0x000000000000ffff), ++ vcreate_u8(0x0000000000000000)); ++ ++ // Do the multiplies, rotating with vext to get all combinations ++ uint8x16_t d = vreinterpretq_u8_p16(vmull_p8(a, b)); // D = A0 * B0 ++ uint8x16_t e = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 1))); // E = A0 * B1 ++ uint8x16_t f = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 1), b)); // F = A1 * B0 ++ uint8x16_t g = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 2))); // G = A0 * B2 ++ uint8x16_t h = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 2), b)); // H = A2 * B0 ++ uint8x16_t i = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 3))); // I = A0 * B3 ++ uint8x16_t j = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 3), b)); // J = A3 * B0 ++ uint8x16_t k = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 4))); // L = A0 * B4 ++ ++ // Add cross products ++ uint8x16_t l = veorq_u8(e, f); // L = E + F ++ uint8x16_t m = veorq_u8(g, h); // M = G + H ++ uint8x16_t n = veorq_u8(i, j); // N = I + J ++ ++ // Interleave. Using vzip1 and vzip2 prevents Clang from emitting TBL ++ // instructions. ++#if defined(__aarch64__) ++ uint8x16_t lm_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t lm_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t nk_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++ uint8x16_t nk_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++#else ++ uint8x16_t lm_p0 = vcombine_u8(vget_low_u8(l), vget_low_u8(m)); ++ uint8x16_t lm_p1 = vcombine_u8(vget_high_u8(l), vget_high_u8(m)); ++ uint8x16_t nk_p0 = vcombine_u8(vget_low_u8(n), vget_low_u8(k)); ++ uint8x16_t nk_p1 = vcombine_u8(vget_high_u8(n), vget_high_u8(k)); ++#endif ++ // t0 = (L) (P0 + P1) << 8 ++ // t1 = (M) (P2 + P3) << 16 ++ uint8x16_t t0t1_tmp = veorq_u8(lm_p0, lm_p1); ++ uint8x16_t t0t1_h = vandq_u8(lm_p1, k48_32); ++ uint8x16_t t0t1_l = veorq_u8(t0t1_tmp, t0t1_h); ++ ++ // t2 = (N) (P4 + P5) << 24 ++ // t3 = (K) (P6 + P7) << 32 ++ uint8x16_t t2t3_tmp = veorq_u8(nk_p0, nk_p1); ++ uint8x16_t t2t3_h = vandq_u8(nk_p1, k16_00); ++ uint8x16_t t2t3_l = veorq_u8(t2t3_tmp, t2t3_h); ++ ++ // De-interleave ++#if defined(__aarch64__) ++ uint8x16_t t0 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t1 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t2 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++ uint8x16_t t3 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++#else ++ uint8x16_t t1 = vcombine_u8(vget_high_u8(t0t1_l), vget_high_u8(t0t1_h)); ++ uint8x16_t t0 = vcombine_u8(vget_low_u8(t0t1_l), vget_low_u8(t0t1_h)); ++ uint8x16_t t3 = vcombine_u8(vget_high_u8(t2t3_l), vget_high_u8(t2t3_h)); ++ uint8x16_t t2 = vcombine_u8(vget_low_u8(t2t3_l), vget_low_u8(t2t3_h)); ++#endif ++ // Shift the cross products ++ uint8x16_t t0_shift = vextq_u8(t0, t0, 15); // t0 << 8 ++ uint8x16_t t1_shift = vextq_u8(t1, t1, 14); // t1 << 16 ++ uint8x16_t t2_shift = vextq_u8(t2, t2, 13); // t2 << 24 ++ uint8x16_t t3_shift = vextq_u8(t3, t3, 12); // t3 << 32 ++ ++ // Accumulate the products ++ uint8x16_t cross1 = veorq_u8(t0_shift, t1_shift); ++ uint8x16_t cross2 = veorq_u8(t2_shift, t3_shift); ++ uint8x16_t mix = veorq_u8(d, cross1); ++ uint8x16_t r = veorq_u8(mix, cross2); ++ return vreinterpretq_u64_u8(r); ++} ++#endif // ARMv7 polyfill ++ ++// C equivalent: ++// __m128i _mm_shuffle_epi32_default(__m128i a, ++// __constrange(0, 255) int imm) { ++// __m128i ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = a[(imm >> 4) & 0x03]; ret[3] = a[(imm >> 6) & 0x03]; ++// return ret; ++// } ++#define _mm_shuffle_epi32_default(a, imm) \ ++ vreinterpretq_m128i_s32(vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), \ ++ ((imm) >> 2) & 0x3), \ ++ vmovq_n_s32(vgetq_lane_s32( \ ++ vreinterpretq_s32_m128i(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of a and places it into the high end of the result. ++FORCE_INLINE __m128i _mm_shuffle_epi_1032(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in low end ++// of result takes the higher two 32 bit values from a and swaps them and places ++// in high end of result. ++FORCE_INLINE __m128i _mm_shuffle_epi_2301(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a23 = vrev64_s32(vget_high_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a23)); ++} ++ ++// rotates the least significant 32 bits into the most significant 32 bits, and ++// shifts the rest down ++FORCE_INLINE __m128i _mm_shuffle_epi_0321(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 1)); ++} ++ ++// rotates the most significant 32 bits into the least significant 32 bits, and ++// shifts the rest up ++FORCE_INLINE __m128i _mm_shuffle_epi_2103(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 3)); ++} ++ ++// gets the lower 64 bits of a, and places it in the upper 64 bits ++// gets the lower 64 bits of a and places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1010(__m128i a) ++{ ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a10, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements, and places it in the ++// lower 64 bits gets the lower 64 bits of a, and places it in the upper 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1001(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements and places it in the ++// upper 64 bits gets the lower 64 bits of a, swaps the 0 and 1 elements, and ++// places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_0101(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_2211(__m128i a) ++{ ++ int32x2_t a11 = vdup_lane_s32(vget_low_s32(vreinterpretq_s32_m128i(a)), 1); ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ return vreinterpretq_m128i_s32(vcombine_s32(a11, a22)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_0122(__m128i a) ++{ ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a22, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_3332(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a33 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 1); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a33)); ++} ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32(vdupq_laneq_s32(vreinterpretq_s32_m128i(a), (imm))) ++#else ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vdupq_n_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)))) ++#endif ++ ++// NEON does not support a general purpose permute intrinsic. ++// Shuffle single-precision (32-bit) floating-point elements in a using the ++// control in imm8, and store the results in dst. ++// ++// C equivalent: ++// __m128 _mm_shuffle_ps_default(__m128 a, __m128 b, ++// __constrange(0, 255) int imm) { ++// __m128 ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = b[(imm >> 4) & 0x03]; ret[3] = b[(imm >> 6) & 0x03]; ++// return ret; ++// } ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_ps ++#define _mm_shuffle_ps_default(a, b, imm) \ ++ vreinterpretq_m128_f32(vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), ((imm) >> 2) & 0x3), \ ++ vmovq_n_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Shuffle 16-bit integers in the low 64 bits of a using the control in imm8. ++// Store the results in the low 64 bits of dst, with the high 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflelo_epi16 ++#define _mm_shufflelo_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t lowBits = vget_low_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, (imm) & (0x3)), ret, 0); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++// Shuffle 16-bit integers in the high 64 bits of a using the control in imm8. ++// Store the results in the high 64 bits of dst, with the low 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflehi_epi16 ++#define _mm_shufflehi_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t highBits = vget_high_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, (imm) & (0x3)), ret, 4); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 2) & 0x3), ret, \ ++ 5); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 4) & 0x3), ret, \ ++ 6); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 6) & 0x3), ret, \ ++ 7); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++/* MMX */ ++ ++//_mm_empty is a no-op on arm ++FORCE_INLINE void _mm_empty(void) {} ++ ++/* SSE */ ++ ++// Add packed single-precision (32-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ps ++FORCE_INLINE __m128 _mm_add_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Add the lower single-precision (32-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ss ++FORCE_INLINE __m128 _mm_add_ss(__m128 a, __m128 b) ++{ ++ float32_t b0 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++ float32x4_t value = vsetq_lane_f32(b0, vdupq_n_f32(0), 0); ++ // the upper values in the result must be the remnants of . ++ return vreinterpretq_m128_f32(vaddq_f32(a, value)); ++} ++ ++// Compute the bitwise AND of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_ps ++FORCE_INLINE __m128 _mm_and_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vandq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Compute the bitwise NOT of packed single-precision (32-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_ps ++FORCE_INLINE __m128 _mm_andnot_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vbicq_s32(vreinterpretq_s32_m128(b), ++ vreinterpretq_s32_m128(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu16 ++FORCE_INLINE __m64 _mm_avg_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16( ++ vrhadd_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu8 ++FORCE_INLINE __m64 _mm_avg_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vrhadd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ps ++FORCE_INLINE __m128 _mm_cmpeq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ss ++FORCE_INLINE __m128 _mm_cmpeq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpeq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ps ++FORCE_INLINE __m128 _mm_cmpge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ss ++FORCE_INLINE __m128 _mm_cmpge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ps ++FORCE_INLINE __m128 _mm_cmpgt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ss ++FORCE_INLINE __m128 _mm_cmpgt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpgt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ps ++FORCE_INLINE __m128 _mm_cmple_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ss ++FORCE_INLINE __m128 _mm_cmple_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmple_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ps ++FORCE_INLINE __m128 _mm_cmplt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ss ++FORCE_INLINE __m128 _mm_cmplt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmplt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ps ++FORCE_INLINE __m128 _mm_cmpneq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ss ++FORCE_INLINE __m128 _mm_cmpneq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpneq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ps ++FORCE_INLINE __m128 _mm_cmpnge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ss ++FORCE_INLINE __m128 _mm_cmpnge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ps ++FORCE_INLINE __m128 _mm_cmpngt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ss ++FORCE_INLINE __m128 _mm_cmpngt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpngt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ps ++FORCE_INLINE __m128 _mm_cmpnle_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ss ++FORCE_INLINE __m128 _mm_cmpnle_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnle_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ps ++FORCE_INLINE __m128 _mm_cmpnlt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ss ++FORCE_INLINE __m128 _mm_cmpnlt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnlt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ps ++// ++// See also: ++// http://stackoverflow.com/questions/8627331/what-does-ordered-unordered-comparison-mean ++// http://stackoverflow.com/questions/29349621/neon-isnanval-intrinsics ++FORCE_INLINE __m128 _mm_cmpord_ps(__m128 a, __m128 b) ++{ ++ // Note: NEON does not have ordered compare builtin ++ // Need to compare a eq a and b eq b to check for NaN ++ // Do AND of results to get final ++ uint32x4_t ceqaa = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t ceqbb = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vandq_u32(ceqaa, ceqbb)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ss ++FORCE_INLINE __m128 _mm_cmpord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpord_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ps ++FORCE_INLINE __m128 _mm_cmpunord_ps(__m128 a, __m128 b) ++{ ++ uint32x4_t f32a = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t f32b = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vmvnq_u32(vandq_u32(f32a, f32b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ss ++FORCE_INLINE __m128 _mm_cmpunord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpunord_ps(a, b)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_ss ++FORCE_INLINE int _mm_comieq_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_eq_b = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_eq_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_ss ++FORCE_INLINE int _mm_comige_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_ge_b = ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_ge_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_ss ++FORCE_INLINE int _mm_comigt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_gt_b = ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_gt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_ss ++FORCE_INLINE int _mm_comile_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_le_b = ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_le_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_ss ++FORCE_INLINE int _mm_comilt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_lt_b = ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_lt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_ss ++FORCE_INLINE int _mm_comineq_ss(__m128 a, __m128 b) ++{ ++ return !_mm_comieq_ss(a, b); ++} ++ ++// Convert packed signed 32-bit integers in b to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, and copy the upper 2 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_pi2ps ++FORCE_INLINE __m128 _mm_cvt_pi2ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ps2pi ++FORCE_INLINE __m64 _mm_cvt_ps2pi(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))))); ++#else ++ return vreinterpret_m64_s32(vcvt_s32_f32(vget_low_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION))))); ++#endif ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_si2ss ++FORCE_INLINE __m128 _mm_cvt_si2ss(__m128 a, int b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ss2si ++FORCE_INLINE int _mm_cvt_ss2si(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vgetq_lane_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))), ++ 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int32_t) data; ++#endif ++} ++ ++// Convert packed 16-bit integers in a to packed single-precision (32-bit) ++// floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi16_ps ++FORCE_INLINE __m128 _mm_cvtpi16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vmovl_s16(vreinterpret_s16_m64(a)))); ++} ++ ++// Convert packed 32-bit integers in b to packed single-precision (32-bit) ++// floating-point elements, store the results in the lower 2 elements of dst, ++// and copy the upper 2 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_ps ++FORCE_INLINE __m128 _mm_cvtpi32_ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, then convert the packed signed 32-bit integers in b to ++// single-precision (32-bit) floating-point element, and store the results in ++// the upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32x2_ps ++FORCE_INLINE __m128 _mm_cvtpi32x2_ps(__m64 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vcombine_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b)))); ++} ++ ++// Convert the lower packed 8-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi8_ps ++FORCE_INLINE __m128 _mm_cvtpi8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vmovl_s16(vget_low_s16(vmovl_s8(vreinterpret_s8_m64(a)))))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 16-bit integers, and store the results in dst. Note: this intrinsic ++// will generate 0x7FFF, rather than 0x8000, for input values between 0x7FFF and ++// 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi16 ++FORCE_INLINE __m64 _mm_cvtps_pi16(__m128 a) ++{ ++ return vreinterpret_m64_s16( ++ vqmovn_s32(vreinterpretq_s32_m128i(_mm_cvtps_epi32(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi32 ++#define _mm_cvtps_pi32(a) _mm_cvt_ps2pi(a) ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 8-bit integers, and store the results in lower 4 elements of dst. ++// Note: this intrinsic will generate 0x7F, rather than 0x80, for input values ++// between 0x7F and 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi8 ++FORCE_INLINE __m64 _mm_cvtps_pi8(__m128 a) ++{ ++ return vreinterpret_m64_s8(vqmovn_s16( ++ vcombine_s16(vreinterpret_s16_m64(_mm_cvtps_pi16(a)), vdup_n_s16(0)))); ++} ++ ++// Convert packed unsigned 16-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu16_ps ++FORCE_INLINE __m128 _mm_cvtpu16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_u32(vmovl_u16(vreinterpret_u16_m64(a)))); ++} ++ ++// Convert the lower packed unsigned 8-bit integers in a to packed ++// single-precision (32-bit) floating-point elements, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu8_ps ++FORCE_INLINE __m128 _mm_cvtpu8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_u32( ++ vmovl_u16(vget_low_u16(vmovl_u8(vreinterpret_u8_m64(a)))))); ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_ss ++#define _mm_cvtsi32_ss(a, b) _mm_cvt_si2ss(a, b) ++ ++// Convert the signed 64-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_ss ++FORCE_INLINE __m128 _mm_cvtsi64_ss(__m128 a, int64_t b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Copy the lower single-precision (32-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_f32 ++FORCE_INLINE float _mm_cvtss_f32(__m128 a) ++{ ++ return vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si32 ++#define _mm_cvtss_si32(a) _mm_cvt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si64 ++FORCE_INLINE int64_t _mm_cvtss_si64(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return (int64_t) vgetq_lane_f32(vrndiq_f32(vreinterpretq_f32_m128(a)), 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int64_t) data; ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ps2pi ++FORCE_INLINE __m64 _mm_cvtt_ps2pi(__m128 a) ++{ ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ss2si ++FORCE_INLINE int _mm_cvtt_ss2si(__m128 a) ++{ ++ return vgetq_lane_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)), 0); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_pi32 ++#define _mm_cvttps_pi32(a) _mm_cvtt_ps2pi(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si32 ++#define _mm_cvttss_si32(a) _mm_cvtt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si64 ++FORCE_INLINE int64_t _mm_cvttss_si64(__m128 a) ++{ ++ return (int64_t) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Divide packed single-precision (32-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise division intrinsic, we implement ++// division by multiplying a by b's reciprocal before using the Newton-Raphson ++// method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ps ++FORCE_INLINE __m128 _mm_div_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vdivq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(b)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(a), recip)); ++#endif ++} ++ ++// Divide the lower single-precision (32-bit) floating-point element in a by the ++// lower single-precision (32-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper 3 packed elements from a to ++// the upper elements of dst. ++// Warning: ARMv7-A does not produce the same result compared to Intel and not ++// IEEE-compliant. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ss ++FORCE_INLINE __m128 _mm_div_ss(__m128 a, __m128 b) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_div_ps(a, b)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_pi16 ++#define _mm_extract_pi16(a, imm) \ ++ (int32_t) vget_lane_u16(vreinterpret_u16_m64(a), (imm)) ++ ++// Free aligned memory that was allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_free ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void _mm_free(void *addr) ++{ ++ free(addr); ++} ++#endif ++ ++FORCE_INLINE uint64_t _sse2neon_get_fpcr(void) ++{ ++ uint64_t value; ++#if defined(_MSC_VER) ++ value = _ReadStatusReg(ARM64_FPCR); ++#else ++ __asm__ __volatile__("mrs %0, FPCR" : "=r"(value)); /* read */ ++#endif ++ return value; ++} ++ ++FORCE_INLINE void _sse2neon_set_fpcr(uint64_t value) ++{ ++#if defined(_MSC_VER) ++ _WriteStatusReg(ARM64_FPCR, value); ++#else ++ __asm__ __volatile__("msr FPCR, %0" ::"r"(value)); /* write */ ++#endif ++} ++ ++// Macro: Get the flush zero bits from the MXCSR control and status register. ++// The flush zero may contain any of the following flags: _MM_FLUSH_ZERO_ON or ++// _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_FLUSH_ZERO_MODE ++FORCE_INLINE unsigned int _sse2neon_mm_get_flush_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_FLUSH_ZERO_ON : _MM_FLUSH_ZERO_OFF; ++} ++ ++// Macro: Get the rounding mode bits from the MXCSR control and status register. ++// The rounding mode may contain any of the following flags: _MM_ROUND_NEAREST, ++// _MM_ROUND_DOWN, _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_ROUNDING_MODE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ if (r.field.bit22) { ++ return r.field.bit23 ? _MM_ROUND_TOWARD_ZERO : _MM_ROUND_UP; ++ } else { ++ return r.field.bit23 ? _MM_ROUND_DOWN : _MM_ROUND_NEAREST; ++ } ++} ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_pi16 ++#define _mm_insert_pi16(a, b, imm) \ ++ vreinterpret_m64_s16(vset_lane_s16((b), vreinterpret_s16_m64(a), (imm))) ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps ++FORCE_INLINE __m128 _mm_load_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// ++// dst[31:0] := MEM[mem_addr+31:mem_addr] ++// dst[63:32] := MEM[mem_addr+31:mem_addr] ++// dst[95:64] := MEM[mem_addr+31:mem_addr] ++// dst[127:96] := MEM[mem_addr+31:mem_addr] ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps1 ++#define _mm_load_ps1 _mm_load1_ps ++ ++// Load a single-precision (32-bit) floating-point element from memory into the ++// lower of dst, and zero the upper 3 elements. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ss ++FORCE_INLINE __m128 _mm_load_ss(const float *p) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(*p, vdupq_n_f32(0), 0)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_ps ++FORCE_INLINE __m128 _mm_load1_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_dup_f32(p)); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// upper 2 elements of dst, and copy the lower 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pi ++FORCE_INLINE __m128 _mm_loadh_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vget_low_f32(a), vld1_f32((const float32_t *) p))); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// lower 2 elements of dst, and copy the upper 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pi ++FORCE_INLINE __m128 _mm_loadl_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vld1_f32((const float32_t *) p), vget_high_f32(a))); ++} ++ ++// Load 4 single-precision (32-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_ps ++FORCE_INLINE __m128 _mm_loadr_ps(const float *p) ++{ ++ float32x4_t v = vrev64q_f32(vld1q_f32(p)); ++ return vreinterpretq_m128_f32(vextq_f32(v, v, 2)); ++} ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_ps ++FORCE_INLINE __m128 _mm_loadu_ps(const float *p) ++{ ++ // for neon, alignment doesn't matter, so _mm_load_ps and _mm_loadu_ps are ++ // equivalent for neon ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load unaligned 16-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si16 ++FORCE_INLINE __m128i _mm_loadu_si16(const void *p) ++{ ++ return vreinterpretq_m128i_s16( ++ vsetq_lane_s16(*(const unaligned_int16_t *) p, vdupq_n_s16(0), 0)); ++} ++ ++// Load unaligned 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si64 ++FORCE_INLINE __m128i _mm_loadu_si64(const void *p) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(*(const unaligned_int64_t *) p, vdupq_n_s64(0), 0)); ++} ++ ++// Allocate size bytes of memory, aligned to the alignment specified in align, ++// and return a pointer to the allocated memory. _mm_free should be used to free ++// memory that is allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_malloc ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void *_mm_malloc(size_t size, size_t align) ++{ ++ void *ptr; ++ if (align == 1) ++ return malloc(size); ++ if (align == 2 || (sizeof(void *) == 8 && align == 4)) ++ align = sizeof(void *); ++ if (!posix_memalign(&ptr, align, size)) ++ return ptr; ++ return NULL; ++} ++#endif ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmove_si64 ++FORCE_INLINE void _mm_maskmove_si64(__m64 a, __m64 mask, char *mem_addr) ++{ ++ int8x8_t shr_mask = vshr_n_s8(vreinterpret_s8_m64(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x8_t masked = ++ vbsl_s8(vreinterpret_u8_s8(shr_mask), vreinterpret_s8_m64(a), ++ vreinterpret_s8_u64(vget_low_u64(vreinterpretq_u64_m128(b)))); ++ vst1_s8((int8_t *) mem_addr, masked); ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_maskmovq ++#define _m_maskmovq(a, mask, mem_addr) _mm_maskmove_si64(a, mask, mem_addr) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pi16 ++FORCE_INLINE __m64 _mm_max_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmax_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) maximum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ps ++FORCE_INLINE __m128 _mm_max_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcgtq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vmaxq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pu8 ++FORCE_INLINE __m64 _mm_max_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmax_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) maximum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ss ++FORCE_INLINE __m128 _mm_max_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_max_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pi16 ++FORCE_INLINE __m64 _mm_min_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmin_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) minimum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ps ++FORCE_INLINE __m128 _mm_min_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcltq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vminq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pu8 ++FORCE_INLINE __m64 _mm_min_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmin_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) minimum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ss ++FORCE_INLINE __m128 _mm_min_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_min_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the lower single-precision (32-bit) floating-point element from b to the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_ss ++FORCE_INLINE __m128 _mm_move_ss(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(vgetq_lane_f32(vreinterpretq_f32_m128(b), 0), ++ vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the upper 2 single-precision (32-bit) floating-point elements from b to ++// the lower 2 elements of dst, and copy the upper 2 elements from a to the ++// upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehl_ps ++FORCE_INLINE __m128 _mm_movehl_ps(__m128 a, __m128 b) ++{ ++#if defined(aarch64__) ++ return vreinterpretq_m128_u64( ++ vzip2q_u64(vreinterpretq_u64_m128(b), vreinterpretq_u64_m128(a))); ++#else ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(b32, a32)); ++#endif ++} ++ ++// Move the lower 2 single-precision (32-bit) floating-point elements from b to ++// the upper 2 elements of dst, and copy the lower 2 elements from a to the ++// lower 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movelh_ps ++FORCE_INLINE __m128 _mm_movelh_ps(__m128 __A, __m128 __B) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(__A)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(__B)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pi8 ++FORCE_INLINE int _mm_movemask_pi8(__m64 a) ++{ ++ uint8x8_t input = vreinterpret_u8_m64(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int8_t shift[8] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint8x8_t tmp = vshr_n_u8(input, 7); ++ return vaddv_u8(vshl_u8(tmp, vld1_s8(shift))); ++#else ++ // Refer the implementation of `_mm_movemask_epi8` ++ uint16x4_t high_bits = vreinterpret_u16_u8(vshr_n_u8(input, 7)); ++ uint32x2_t paired16 = ++ vreinterpret_u32_u16(vsra_n_u16(high_bits, high_bits, 7)); ++ uint8x8_t paired32 = ++ vreinterpret_u8_u32(vsra_n_u32(paired16, paired16, 14)); ++ return vget_lane_u8(paired32, 0) | ((int) vget_lane_u8(paired32, 4) << 4); ++#endif ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed single-precision (32-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_ps ++FORCE_INLINE int _mm_movemask_ps(__m128 a) ++{ ++ uint32x4_t input = vreinterpretq_u32_m128(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int32_t shift[4] = {0, 1, 2, 3}; ++ uint32x4_t tmp = vshrq_n_u32(input, 31); ++ return vaddvq_u32(vshlq_u32(tmp, vld1q_s32(shift))); ++#else ++ // Uses the exact same method as _mm_movemask_epi8, see that for details. ++ // Shift out everything but the sign bits with a 32-bit unsigned shift ++ // right. ++ uint64x2_t high_bits = vreinterpretq_u64_u32(vshrq_n_u32(input, 31)); ++ // Merge the two pairs together with a 64-bit unsigned shift right + add. ++ uint8x16_t paired = ++ vreinterpretq_u8_u64(vsraq_n_u64(high_bits, high_bits, 31)); ++ // Extract the result. ++ return vgetq_lane_u8(paired, 0) | (vgetq_lane_u8(paired, 8) << 2); ++#endif ++} ++ ++// Multiply packed single-precision (32-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ps ++FORCE_INLINE_OPTNONE __m128 _mm_mul_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vmulq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Multiply the lower single-precision (32-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ss ++FORCE_INLINE __m128 _mm_mul_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_mul_ps(a, b)); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_pu16 ++FORCE_INLINE __m64 _mm_mulhi_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16(vshrn_n_u32( ++ vmull_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b)), 16)); ++} ++ ++// Compute the bitwise OR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_ps ++FORCE_INLINE __m128 _mm_or_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vorrq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgb ++#define _m_pavgb(a, b) _mm_avg_pu8(a, b) ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgw ++#define _m_pavgw(a, b) _mm_avg_pu16(a, b) ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pextrw ++#define _m_pextrw(a, imm) _mm_extract_pi16(a, imm) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_pinsrw ++#define _m_pinsrw(a, i, imm) _mm_insert_pi16(a, i, imm) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxsw ++#define _m_pmaxsw(a, b) _mm_max_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxub ++#define _m_pmaxub(a, b) _mm_max_pu8(a, b) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminsw ++#define _m_pminsw(a, b) _mm_min_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminub ++#define _m_pminub(a, b) _mm_min_pu8(a, b) ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmovmskb ++#define _m_pmovmskb(a) _mm_movemask_pi8(a) ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmulhuw ++#define _m_pmulhuw(a, b) _mm_mulhi_pu16(a, b) ++ ++// Fetch the line of data from memory that contains address p to a location in ++// the cache hierarchy specified by the locality hint i. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_prefetch ++FORCE_INLINE void _mm_prefetch(char const *p, int i) ++{ ++ (void) i; ++#if defined(_MSC_VER) ++ switch (i) { ++ case _MM_HINT_NTA: ++ __prefetch2(p, 1); ++ break; ++ case _MM_HINT_T0: ++ __prefetch2(p, 0); ++ break; ++ case _MM_HINT_T1: ++ __prefetch2(p, 2); ++ break; ++ case _MM_HINT_T2: ++ __prefetch2(p, 4); ++ break; ++ } ++#else ++ switch (i) { ++ case _MM_HINT_NTA: ++ __builtin_prefetch(p, 0, 0); ++ break; ++ case _MM_HINT_T0: ++ __builtin_prefetch(p, 0, 3); ++ break; ++ case _MM_HINT_T1: ++ __builtin_prefetch(p, 0, 2); ++ break; ++ case _MM_HINT_T2: ++ __builtin_prefetch(p, 0, 1); ++ break; ++ } ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_psadbw ++#define _m_psadbw(a, b) _mm_sad_pu8(a, b) ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pshufw ++#define _m_pshufw(a, imm) _mm_shuffle_pi16(a, imm) ++ ++// Compute the approximate reciprocal of packed single-precision (32-bit) ++// floating-point elements in a, and store the results in dst. The maximum ++// relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ps ++FORCE_INLINE __m128 _mm_rcp_ps(__m128 in) ++{ ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(in)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#if SSE2NEON_PRECISE_DIV ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#endif ++ return vreinterpretq_m128_f32(recip); ++} ++ ++// Compute the approximate reciprocal of the lower single-precision (32-bit) ++// floating-point element in a, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ss ++FORCE_INLINE __m128 _mm_rcp_ss(__m128 a) ++{ ++ return _mm_move_ss(a, _mm_rcp_ps(a)); ++} ++ ++// Compute the approximate reciprocal square root of packed single-precision ++// (32-bit) floating-point elements in a, and store the results in dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ps ++FORCE_INLINE __m128 _mm_rsqrt_ps(__m128 in) ++{ ++ float32x4_t out = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Generate masks for detecting whether input has any 0.0f/-0.0f ++ // (which becomes positive/negative infinity by IEEE-754 arithmetic rules). ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t neg_inf = vdupq_n_u32(0xFF800000); ++ const uint32x4_t has_pos_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(out)); ++ const uint32x4_t has_neg_zero = ++ vceqq_u32(neg_inf, vreinterpretq_u32_f32(out)); ++ ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#if SSE2NEON_PRECISE_SQRT ++ // Additional Netwon-Raphson iteration for accuracy ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#endif ++ ++ // Set output vector element to infinity/negative-infinity if ++ // the corresponding input vector element is 0.0f/-0.0f. ++ out = vbslq_f32(has_pos_zero, (float32x4_t) pos_inf, out); ++ out = vbslq_f32(has_neg_zero, (float32x4_t) neg_inf, out); ++ ++ return vreinterpretq_m128_f32(out); ++} ++ ++// Compute the approximate reciprocal square root of the lower single-precision ++// (32-bit) floating-point element in a, store the result in the lower element ++// of dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ss ++FORCE_INLINE __m128 _mm_rsqrt_ss(__m128 in) ++{ ++ return vsetq_lane_f32(vgetq_lane_f32(_mm_rsqrt_ps(in), 0), in, 0); ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_pu8 ++FORCE_INLINE __m64 _mm_sad_pu8(__m64 a, __m64 b) ++{ ++ uint64x1_t t = vpaddl_u32(vpaddl_u16( ++ vpaddl_u8(vabd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))))); ++ return vreinterpret_m64_u16( ++ vset_lane_u16((int) vget_lane_u64(t, 0), vdup_n_u16(0), 0)); ++} ++ ++// Macro: Set the flush zero bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The flush zero may contain any of the ++// following flags: _MM_FLUSH_ZERO_ON or _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_FLUSH_ZERO_MODE ++FORCE_INLINE void _sse2neon_mm_set_flush_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_FLUSH_ZERO_MASK) == _MM_FLUSH_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps ++FORCE_INLINE __m128 _mm_set_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {x, y, z, w}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps1 ++FORCE_INLINE __m128 _mm_set_ps1(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Macro: Set the rounding mode bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The rounding mode may contain any of ++// the following flags: _MM_ROUND_NEAREST, _MM_ROUND_DOWN, _MM_ROUND_UP, ++// _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_ROUNDING_MODE ++FORCE_INLINE void _MM_SET_ROUNDING_MODE(int rounding) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ switch (rounding) { ++ case _MM_ROUND_TOWARD_ZERO: ++ r.field.bit22 = 1; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_DOWN: ++ r.field.bit22 = 0; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_UP: ++ r.field.bit22 = 1; ++ r.field.bit23 = 0; ++ break; ++ default: //_MM_ROUND_NEAREST ++ r.field.bit22 = 0; ++ r.field.bit23 = 0; ++ } ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Copy single-precision (32-bit) floating-point element a to the lower element ++// of dst, and zero the upper 3 elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ss ++FORCE_INLINE __m128 _mm_set_ss(float a) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(a, vdupq_n_f32(0), 0)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_ps ++FORCE_INLINE __m128 _mm_set1_ps(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Set the MXCSR control and status register with the value in unsigned 32-bit ++// integer a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setcsr ++// FIXME: _mm_setcsr() implementation supports changing the rounding mode only. ++FORCE_INLINE void _mm_setcsr(unsigned int a) ++{ ++ _MM_SET_ROUNDING_MODE(a); ++} ++ ++// Get the unsigned 32-bit value of the MXCSR control and status register. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_getcsr ++// FIXME: _mm_getcsr() implementation supports reading the rounding mode only. ++FORCE_INLINE unsigned int _mm_getcsr(void) ++{ ++ return _MM_GET_ROUNDING_MODE(); ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_ps ++FORCE_INLINE __m128 _mm_setr_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {w, z, y, x}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Return vector of type __m128 with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_ps ++FORCE_INLINE __m128 _mm_setzero_ps(void) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(0)); ++} ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi16 ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pi16(a, imm) \ ++ vreinterpret_m64_s16(vshuffle_s16( \ ++ vreinterpret_s16_m64(a), vreinterpret_s16_m64(a), (imm & 0x3), \ ++ ((imm >> 2) & 0x3), ((imm >> 4) & 0x3), ((imm >> 6) & 0x3))) ++#else ++#define _mm_shuffle_pi16(a, imm) \ ++ _sse2neon_define1( \ ++ __m64, a, int16x4_t ret; \ ++ ret = vmov_n_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), (imm) & (0x3))); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpret_m64_s16(ret));) ++#endif ++ ++// Perform a serializing operation on all store-to-memory instructions that were ++// issued prior to this instruction. Guarantees that every store instruction ++// that precedes, in program order, is globally visible before any store ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sfence ++FORCE_INLINE void _mm_sfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory and store-to-memory ++// instructions that were issued prior to this instruction. Guarantees that ++// every memory access that precedes, in program order, the memory fence ++// instruction is globally visible before any memory instruction which follows ++// the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mfence ++FORCE_INLINE void _mm_mfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory instructions that ++// were issued prior to this instruction. Guarantees that every load instruction ++// that precedes, in program order, is globally visible before any load ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lfence ++FORCE_INLINE void _mm_lfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// FORCE_INLINE __m128 _mm_shuffle_ps(__m128 a, __m128 b, __constrange(0,255) ++// int imm) ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_ps(a, b, imm) \ ++ __extension__({ \ ++ float32x4_t _input1 = vreinterpretq_f32_m128(a); \ ++ float32x4_t _input2 = vreinterpretq_f32_m128(b); \ ++ float32x4_t _shuf = \ ++ vshuffleq_s32(_input1, _input2, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ (((imm) >> 4) & 0x3) + 4, (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128_f32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_ps(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128, a, b, __m128 ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_1032(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_ps_2301(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_ps_0321(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_ps_2103(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_movelh_ps(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_1001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_ps_0101(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 1, 0): \ ++ ret = _mm_shuffle_ps_3210(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 1, 1): \ ++ ret = _mm_shuffle_ps_0011(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 2, 2): \ ++ ret = _mm_shuffle_ps_0022(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 0, 0): \ ++ ret = _mm_shuffle_ps_2200(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 0, 2): \ ++ ret = _mm_shuffle_ps_3202(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 3, 2): \ ++ ret = _mm_movehl_ps(_b, _a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 3, 3): \ ++ ret = _mm_shuffle_ps_1133(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 1, 0): \ ++ ret = _mm_shuffle_ps_2010(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_2001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_2032(_a, _b); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_ps_default(_a, _b, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Compute the square root of packed single-precision (32-bit) floating-point ++// elements in a, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise square root intrinsic, we implement ++// square root by multiplying input in with its reciprocal square root before ++// using the Newton-Raphson method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ps ++FORCE_INLINE __m128 _mm_sqrt_ps(__m128 in) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) && !SSE2NEON_PRECISE_SQRT ++ return vreinterpretq_m128_f32(vsqrtq_f32(vreinterpretq_f32_m128(in))); ++#else ++ float32x4_t recip = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Test for vrsqrteq_f32(0) -> positive infinity case. ++ // Change to zero, so that s * 1/sqrt(s) result is zero too. ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t div_by_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(recip)); ++ recip = vreinterpretq_f32_u32( ++ vandq_u32(vmvnq_u32(div_by_zero), vreinterpretq_u32_f32(recip))); ++ ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ ++ // sqrt(s) = s * 1/sqrt(s) ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(in), recip)); ++#endif ++} ++ ++// Compute the square root of the lower single-precision (32-bit) floating-point ++// element in a, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ss ++FORCE_INLINE __m128 _mm_sqrt_ss(__m128 in) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_sqrt_ps(in)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(in), 0)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps ++FORCE_INLINE void _mm_store_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps1 ++FORCE_INLINE void _mm_store_ps1(float *p, __m128 a) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ vst1q_f32(p, vdupq_n_f32(a0)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ss ++FORCE_INLINE void _mm_store_ss(float *p, __m128 a) ++{ ++ vst1q_lane_f32(p, vreinterpretq_f32_m128(a), 0); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store1_ps ++#define _mm_store1_ps _mm_store_ps1 ++ ++// Store the upper 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pi ++FORCE_INLINE void _mm_storeh_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_high_f32(a)); ++} ++ ++// Store the lower 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pi ++FORCE_INLINE void _mm_storel_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_low_f32(a)); ++} ++ ++// Store 4 single-precision (32-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_ps ++FORCE_INLINE void _mm_storer_ps(float *p, __m128 a) ++{ ++ float32x4_t tmp = vrev64q_f32(vreinterpretq_f32_m128(a)); ++ float32x4_t rev = vextq_f32(tmp, tmp, 2); ++ vst1q_f32(p, rev); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_ps ++FORCE_INLINE void _mm_storeu_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Stores 16-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si16 ++FORCE_INLINE void _mm_storeu_si16(void *p, __m128i a) ++{ ++ vst1q_lane_s16((int16_t *) p, vreinterpretq_s16_m128i(a), 0); ++} ++ ++// Stores 64-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si64 ++FORCE_INLINE void _mm_storeu_si64(void *p, __m128i a) ++{ ++ vst1q_lane_s64((int64_t *) p, vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Store 64-bits of integer data from a into memory using a non-temporal memory ++// hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pi ++FORCE_INLINE void _mm_stream_pi(__m64 *p, __m64 a) ++{ ++ vst1_s64((int64_t *) p, vreinterpret_s64_m64(a)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating- ++// point elements) from a into memory using a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_ps ++FORCE_INLINE void _mm_stream_ps(float *p, __m128 a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (float32x4_t *) p); ++#else ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++#endif ++} ++ ++// Subtract packed single-precision (32-bit) floating-point elements in b from ++// packed single-precision (32-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ps ++FORCE_INLINE __m128 _mm_sub_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Subtract the lower single-precision (32-bit) floating-point element in b from ++// the lower single-precision (32-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper 3 packed elements from ++// a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ss ++FORCE_INLINE __m128 _mm_sub_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_sub_ps(a, b)); ++} ++ ++// Macro: Transpose the 4x4 matrix formed by the 4 rows of single-precision ++// (32-bit) floating-point elements in row0, row1, row2, and row3, and store the ++// transposed matrix in these vectors (row0 now contains column 0, etc.). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=MM_TRANSPOSE4_PS ++#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \ ++ do { \ ++ float32x4x2_t ROW01 = vtrnq_f32(row0, row1); \ ++ float32x4x2_t ROW23 = vtrnq_f32(row2, row3); \ ++ row0 = vcombine_f32(vget_low_f32(ROW01.val[0]), \ ++ vget_low_f32(ROW23.val[0])); \ ++ row1 = vcombine_f32(vget_low_f32(ROW01.val[1]), \ ++ vget_low_f32(ROW23.val[1])); \ ++ row2 = vcombine_f32(vget_high_f32(ROW01.val[0]), \ ++ vget_high_f32(ROW23.val[0])); \ ++ row3 = vcombine_f32(vget_high_f32(ROW01.val[1]), \ ++ vget_high_f32(ROW23.val[1])); \ ++ } while (0) ++ ++// according to the documentation, these intrinsics behave the same as the ++// non-'u' versions. We'll just alias them here. ++#define _mm_ucomieq_ss _mm_comieq_ss ++#define _mm_ucomige_ss _mm_comige_ss ++#define _mm_ucomigt_ss _mm_comigt_ss ++#define _mm_ucomile_ss _mm_comile_ss ++#define _mm_ucomilt_ss _mm_comilt_ss ++#define _mm_ucomineq_ss _mm_comineq_ss ++ ++// Return vector of type __m128i with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_undefined_si128 ++FORCE_INLINE __m128i _mm_undefined_si128(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128i a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_si128(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Return vector of type __m128 with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_ps ++FORCE_INLINE __m128 _mm_undefined_ps(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128 a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_ps(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the high half a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_ps ++FORCE_INLINE __m128 _mm_unpackhi_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_ps ++FORCE_INLINE __m128 _mm_unpacklo_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Compute the bitwise XOR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_ps ++FORCE_INLINE __m128 _mm_xor_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ veorq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++/* SSE2 */ ++ ++// Add packed 16-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi16 ++FORCE_INLINE __m128i _mm_add_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed 32-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi32 ++FORCE_INLINE __m128i _mm_add_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vaddq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Add packed 64-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi64 ++FORCE_INLINE __m128i _mm_add_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vaddq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Add packed 8-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi8 ++FORCE_INLINE __m128i _mm_add_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed double-precision (64-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_pd ++FORCE_INLINE __m128d _mm_add_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1] + db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add the lower double-precision (64-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper element from ++// a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_sd ++FORCE_INLINE __m128d _mm_add_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_add_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add 64-bit integers a and b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_si64 ++FORCE_INLINE __m64 _mm_add_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vadd_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Add packed signed 16-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi16 ++FORCE_INLINE __m128i _mm_adds_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed signed 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi8 ++FORCE_INLINE __m128i _mm_adds_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed unsigned 16-bit integers in a and b using saturation, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu16 ++FORCE_INLINE __m128i _mm_adds_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqaddq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Add packed unsigned 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu8 ++FORCE_INLINE __m128i _mm_adds_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compute the bitwise AND of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_pd ++FORCE_INLINE __m128d _mm_and_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vandq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_si128 ++FORCE_INLINE __m128i _mm_and_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vandq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compute the bitwise NOT of packed double-precision (64-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_pd ++FORCE_INLINE __m128d _mm_andnot_pd(__m128d a, __m128d b) ++{ ++ // *NOTE* argument swap ++ return vreinterpretq_m128d_s64( ++ vbicq_s64(vreinterpretq_s64_m128d(b), vreinterpretq_s64_m128d(a))); ++} ++ ++// Compute the bitwise NOT of 128 bits (representing integer data) in a and then ++// AND with b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_si128 ++FORCE_INLINE __m128i _mm_andnot_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vbicq_s32(vreinterpretq_s32_m128i(b), ++ vreinterpretq_s32_m128i(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu16 ++FORCE_INLINE __m128i _mm_avg_epu16(__m128i a, __m128i b) ++{ ++ return (__m128i) vrhaddq_u16(vreinterpretq_u16_m128i(a), ++ vreinterpretq_u16_m128i(b)); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu8 ++FORCE_INLINE __m128i _mm_avg_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vrhaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bslli_si128 ++#define _mm_bslli_si128(a, imm) _mm_slli_si128(a, imm) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bsrli_si128 ++#define _mm_bsrli_si128(a, imm) _mm_srli_si128(a, imm) ++ ++// Cast vector of type __m128d to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_ps ++FORCE_INLINE __m128 _mm_castpd_ps(__m128d a) ++{ ++ return vreinterpretq_m128_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128d to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_si128 ++FORCE_INLINE __m128i _mm_castpd_si128(__m128d a) ++{ ++ return vreinterpretq_m128i_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128 to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_pd ++FORCE_INLINE __m128d _mm_castps_pd(__m128 a) ++{ ++ return vreinterpretq_m128d_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128 to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_si128 ++FORCE_INLINE __m128i _mm_castps_si128(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128i to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_pd ++FORCE_INLINE __m128d _mm_castsi128_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vreinterpretq_f64_m128i(a)); ++#else ++ return vreinterpretq_m128d_f32(vreinterpretq_f32_m128i(a)); ++#endif ++} ++ ++// Cast vector of type __m128i to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_ps ++FORCE_INLINE __m128 _mm_castsi128_ps(__m128i a) ++{ ++ return vreinterpretq_m128_s32(vreinterpretq_s32_m128i(a)); ++} ++ ++// Invalidate and flush the cache line that contains p from all levels of the ++// cache hierarchy. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clflush ++#if defined(__APPLE__) ++#include ++#endif ++FORCE_INLINE void _mm_clflush(void const *p) ++{ ++ (void) p; ++ ++ /* sys_icache_invalidate is supported since macOS 10.5. ++ * However, it does not work on non-jailbroken iOS devices, although the ++ * compilation is successful. ++ */ ++#if defined(__APPLE__) ++ sys_icache_invalidate((void *) (uintptr_t) p, SSE2NEON_CACHELINE_SIZE); ++#elif defined(__GNUC__) || defined(__clang__) ++ uintptr_t ptr = (uintptr_t) p; ++ __builtin___clear_cache((char *) ptr, ++ (char *) ptr + SSE2NEON_CACHELINE_SIZE); ++#elif (_MSC_VER) && SSE2NEON_INCLUDE_WINDOWS_H ++ FlushInstructionCache(GetCurrentProcess(), p, SSE2NEON_CACHELINE_SIZE); ++#endif ++} ++ ++// Compare packed 16-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi16 ++FORCE_INLINE __m128i _mm_cmpeq_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vceqq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed 32-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi32 ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vceqq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed 8-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi8 ++FORCE_INLINE __m128i _mm_cmpeq_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vceqq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_pd ++FORCE_INLINE __m128d _mm_cmpeq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_sd ++FORCE_INLINE __m128d _mm_cmpeq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpeq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_pd ++FORCE_INLINE __m128d _mm_cmpge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) >= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_sd ++FORCE_INLINE __m128d _mm_cmpge_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpge_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi16 ++FORCE_INLINE __m128i _mm_cmpgt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcgtq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi32 ++FORCE_INLINE __m128i _mm_cmpgt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcgtq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi8 ++FORCE_INLINE __m128i _mm_cmpgt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcgtq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_pd ++FORCE_INLINE __m128d _mm_cmpgt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_sd ++FORCE_INLINE __m128d _mm_cmpgt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpgt_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_pd ++FORCE_INLINE __m128d _mm_cmple_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) <= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_sd ++FORCE_INLINE __m128d _mm_cmple_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmple_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtw instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi16 ++FORCE_INLINE __m128i _mm_cmplt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcltq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtd instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi32 ++FORCE_INLINE __m128i _mm_cmplt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcltq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtb instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi8 ++FORCE_INLINE __m128i _mm_cmplt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcltq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_pd ++FORCE_INLINE __m128d _mm_cmplt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_sd ++FORCE_INLINE __m128d _mm_cmplt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmplt_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_pd ++FORCE_INLINE __m128d _mm_cmpneq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_s32(vmvnq_s32(vreinterpretq_s32_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vmvnq_u32(vandq_u32(cmp, swapped))); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_sd ++FORCE_INLINE __m128d _mm_cmpneq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpneq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_pd ++FORCE_INLINE __m128d _mm_cmpnge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) >= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) >= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_sd ++FORCE_INLINE __m128d _mm_cmpnge_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnge_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_cmpngt_pd ++FORCE_INLINE __m128d _mm_cmpngt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) > (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) > (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_sd ++FORCE_INLINE __m128d _mm_cmpngt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpngt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_pd ++FORCE_INLINE __m128d _mm_cmpnle_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) <= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) <= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_sd ++FORCE_INLINE __m128d _mm_cmpnle_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnle_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_pd ++FORCE_INLINE __m128d _mm_cmpnlt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) < (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) < (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_sd ++FORCE_INLINE __m128d _mm_cmpnlt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnlt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_pd ++FORCE_INLINE __m128d _mm_cmpord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Excluding NaNs, any two floating point numbers can be compared. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_u64(vandq_u64(not_nan_a, not_nan_b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_sd ++FORCE_INLINE __m128d _mm_cmpord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_pd ++FORCE_INLINE __m128d _mm_cmpunord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Two NaNs are not equal in comparison operation. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_s32( ++ vmvnq_s32(vreinterpretq_s32_u64(vandq_u64(not_nan_a, not_nan_b)))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_sd ++FORCE_INLINE __m128d _mm_cmpunord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpunord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_sd ++FORCE_INLINE int _mm_comige_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgeq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 >= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_sd ++FORCE_INLINE int _mm_comigt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgtq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 > *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_sd ++FORCE_INLINE int _mm_comile_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcleq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 <= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_sd ++FORCE_INLINE int _mm_comilt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcltq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 < *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_sd ++FORCE_INLINE int _mm_comieq_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vceqq_f64(a, b), 0) & 0x1; ++#else ++ uint32x4_t a_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(a)); ++ uint32x4_t b_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(b), vreinterpretq_u32_m128d(b)); ++ uint32x4_t a_and_b_not_nan = vandq_u32(a_not_nan, b_not_nan); ++ uint32x4_t a_eq_b = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint64x2_t and_results = vandq_u64(vreinterpretq_u64_u32(a_and_b_not_nan), ++ vreinterpretq_u64_u32(a_eq_b)); ++ return vgetq_lane_u64(and_results, 0) & 0x1; ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_sd ++FORCE_INLINE int _mm_comineq_sd(__m128d a, __m128d b) ++{ ++ return !_mm_comieq_sd(a, b); ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_pd ++FORCE_INLINE __m128d _mm_cvtepi32_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a))))); ++#else ++ double a0 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++ double a1 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_ps ++FORCE_INLINE __m128 _mm_cvtepi32_ps(__m128i a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_epi32 ++FORCE_INLINE_OPTNONE __m128i _mm_cvtpd_epi32(__m128d a) ++{ ++// vrnd32xq_f64 not supported on clang ++#if defined(__ARM_FEATURE_FRINT) && !defined(__clang__) ++ float64x2_t rounded = vrnd32xq_f64(vreinterpretq_f64_m128d(a)); ++ int64x2_t integers = vcvtq_s64_f64(rounded); ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vmovn_s64(integers), vdup_n_s32(0))); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) d1, (int32_t) d0); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_pi32 ++FORCE_INLINE_OPTNONE __m64 _mm_cvtpd_pi32(__m128d a) ++{ ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) d0, (int32_t) d1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed single-precision (32-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_ps ++FORCE_INLINE __m128 _mm_cvtpd_ps(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float32x2_t tmp = vcvt_f32_f64(vreinterpretq_f64_m128d(a)); ++ return vreinterpretq_m128_f32(vcombine_f32(tmp, vdup_n_f32(0))); ++#else ++ float a0 = (float) ((double *) &a)[0]; ++ float a1 = (float) ((double *) &a)[1]; ++ return _mm_set_ps(0, 0, a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_pd ++FORCE_INLINE __m128d _mm_cvtpi32_pd(__m64 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vreinterpret_s32_m64(a)))); ++#else ++ double a0 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 0); ++ double a1 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_epi32 ++// *NOTE*. The default rounding mode on SSE is 'round to even', which ARMv7-A ++// does not support! It is supported on ARMv8-A however. ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128 a) ++{ ++#if defined(__ARM_FEATURE_FRINT) ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vrnd32xq_f32(a))); ++#elif (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: ++ return vreinterpretq_m128i_s32(vcvtnq_s32_f32(a)); ++ case _MM_ROUND_DOWN: ++ return vreinterpretq_m128i_s32(vcvtmq_s32_f32(a)); ++ case _MM_ROUND_UP: ++ return vreinterpretq_m128i_s32(vcvtpq_s32_f32(a)); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(a)); ++ } ++#else ++ float *f = (float *) &a; ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128i_s32( ++ vbslq_s32(is_delta_half, r_even, r_normal)); ++ } ++ case _MM_ROUND_DOWN: ++ return _mm_set_epi32(floorf(f[3]), floorf(f[2]), floorf(f[1]), ++ floorf(f[0])); ++ case _MM_ROUND_UP: ++ return _mm_set_epi32(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ++ ceilf(f[0])); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return _mm_set_epi32((int32_t) f[3], (int32_t) f[2], (int32_t) f[1], ++ (int32_t) f[0]); ++ } ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed double-precision (64-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pd ++FORCE_INLINE __m128d _mm_cvtps_pd(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvt_f64_f32(vget_low_f32(vreinterpretq_f32_m128(a)))); ++#else ++ double a0 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ double a1 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Copy the lower double-precision (64-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_f64 ++FORCE_INLINE double _mm_cvtsd_f64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (double) vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0); ++#else ++ return ((double *) &a)[0]; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si32 ++FORCE_INLINE int32_t _mm_cvtsd_si32(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int32_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int32_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64 ++FORCE_INLINE int64_t _mm_cvtsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int64_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64x ++#define _mm_cvtsd_si64x _mm_cvtsd_si64 ++ ++// Convert the lower double-precision (64-bit) floating-point element in b to a ++// single-precision (32-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_ss ++FORCE_INLINE __m128 _mm_cvtsd_ss(__m128 a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32(vsetq_lane_f32( ++ vget_lane_f32(vcvt_f32_f64(vreinterpretq_f64_m128d(b)), 0), ++ vreinterpretq_f32_m128(a), 0)); ++#else ++ return vreinterpretq_m128_f32(vsetq_lane_f32((float) ((double *) &b)[0], ++ vreinterpretq_f32_m128(a), 0)); ++#endif ++} ++ ++// Copy the lower 32-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si32 ++FORCE_INLINE int _mm_cvtsi128_si32(__m128i a) ++{ ++ return vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64 ++FORCE_INLINE int64_t _mm_cvtsi128_si64(__m128i a) ++{ ++ return vgetq_lane_s64(vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Convert the signed 32-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_sd ++FORCE_INLINE __m128d _mm_cvtsi32_sd(__m128d a, int32_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Copy 32-bit integer a to the lower elements of dst, and zero the upper ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_si128 ++FORCE_INLINE __m128i _mm_cvtsi32_si128(int a) ++{ ++ return vreinterpretq_m128i_s32(vsetq_lane_s32(a, vdupq_n_s32(0), 0)); ++} ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_sd ++FORCE_INLINE __m128d _mm_cvtsi64_sd(__m128d a, int64_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_si128 ++FORCE_INLINE __m128i _mm_cvtsi64_si128(int64_t a) ++{ ++ return vreinterpretq_m128i_s64(vsetq_lane_s64(a, vdupq_n_s64(0), 0)); ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_si128 ++#define _mm_cvtsi64x_si128(a) _mm_cvtsi64_si128(a) ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_sd ++#define _mm_cvtsi64x_sd(a, b) _mm_cvtsi64_sd(a, b) ++ ++// Convert the lower single-precision (32-bit) floating-point element in b to a ++// double-precision (64-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_sd ++FORCE_INLINE __m128d _mm_cvtss_sd(__m128d a, __m128 b) ++{ ++ double d = (double) vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(d, vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &d, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_epi32 ++FORCE_INLINE __m128i _mm_cvttpd_epi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) a1, (int32_t) a0); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_pi32 ++FORCE_INLINE __m64 _mm_cvttpd_pi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) a0, (int32_t) a1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_epi32 ++FORCE_INLINE __m128i _mm_cvttps_epi32(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a))); ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si32 ++FORCE_INLINE int32_t _mm_cvttsd_si32(__m128d a) ++{ ++ double ret = *((double *) &a); ++ return (int32_t) ret; ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64 ++FORCE_INLINE int64_t _mm_cvttsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_s64(vcvtq_s64_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ double ret = *((double *) &a); ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64x ++#define _mm_cvttsd_si64x(a) _mm_cvttsd_si64(a) ++ ++// Divide packed double-precision (64-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_pd ++FORCE_INLINE __m128d _mm_div_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] / db[0]; ++ c[1] = da[1] / db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Divide the lower double-precision (64-bit) floating-point element in a by the ++// lower double-precision (64-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper element from a to the upper ++// element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_sd ++FORCE_INLINE __m128d _mm_div_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t tmp = ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1), tmp, 1)); ++#else ++ return _mm_move_sd(a, _mm_div_pd(a, b)); ++#endif ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi16 ++// FORCE_INLINE int _mm_extract_epi16(__m128i a, __constrange(0,8) int imm) ++#define _mm_extract_epi16(a, imm) \ ++ vgetq_lane_u16(vreinterpretq_u16_m128i(a), (imm)) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi16 ++// FORCE_INLINE __m128i _mm_insert_epi16(__m128i a, int b, ++// __constrange(0,8) int imm) ++#define _mm_insert_epi16(a, b, imm) \ ++ vreinterpretq_m128i_s16( \ ++ vsetq_lane_s16((b), vreinterpretq_s16_m128i(a), (imm))) ++ ++// Load 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd ++FORCE_INLINE __m128d _mm_load_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64(p)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], fp[2], fp[3]}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd1 ++#define _mm_load_pd1 _mm_load1_pd ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower of dst, and zero the upper element. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_sd ++FORCE_INLINE __m128d _mm_load_sd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(*p, vdupq_n_f64(0), 0)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], 0, 0}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_si128 ++FORCE_INLINE __m128i _mm_load_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const int32_t *) p)); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_pd ++FORCE_INLINE __m128d _mm_load1_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_dup_f64(p)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(const int64_t *) p)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// upper element of dst, and copy the lower element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pd ++FORCE_INLINE __m128d _mm_loadh_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vget_low_f64(vreinterpretq_f64_m128d(a)), vld1_f64(p))); ++#else ++ return vreinterpretq_m128d_f32(vcombine_f32( ++ vget_low_f32(vreinterpretq_f32_m128d(a)), vld1_f32((const float *) p))); ++#endif ++} ++ ++// Load 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_epi64 ++FORCE_INLINE __m128i _mm_loadl_epi64(__m128i const *p) ++{ ++ /* Load the lower 64 bits of the value pointed to by p into the ++ * lower 64 bits of the result, zeroing the upper 64 bits of the result. ++ */ ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vld1_s32((int32_t const *) p), vcreate_s32(0))); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower element of dst, and copy the upper element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pd ++FORCE_INLINE __m128d _mm_loadl_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vld1_f64(p), vget_high_f64(vreinterpretq_f64_m128d(a)))); ++#else ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vld1_f32((const float *) p), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++#endif ++} ++ ++// Load 2 double-precision (64-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_pd ++FORCE_INLINE __m128d _mm_loadr_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t v = vld1q_f64(p); ++ return vreinterpretq_m128d_f64(vextq_f64(v, v, 1)); ++#else ++ int64x2_t v = vld1q_s64((const int64_t *) p); ++ return vreinterpretq_m128d_s64(vextq_s64(v, v, 1)); ++#endif ++} ++ ++// Loads two double-precision from unaligned memory, floating-point values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_pd ++FORCE_INLINE __m128d _mm_loadu_pd(const double *p) ++{ ++ return _mm_load_pd(p); ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si128 ++FORCE_INLINE __m128i _mm_loadu_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const unaligned_int32_t *) p)); ++} ++ ++// Load unaligned 32-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si32 ++FORCE_INLINE __m128i _mm_loadu_si32(const void *p) ++{ ++ return vreinterpretq_m128i_s32( ++ vsetq_lane_s32(*(const unaligned_int32_t *) p, vdupq_n_s32(0), 0)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Horizontally add adjacent pairs of intermediate ++// 32-bit integers, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_madd_epi16 ++FORCE_INLINE __m128i _mm_madd_epi16(__m128i a, __m128i b) ++{ ++ int32x4_t low = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t high = ++ vmull_high_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)); ++ ++ return vreinterpretq_m128i_s32(vpaddq_s32(low, high)); ++#else ++ int32x4_t high = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ int32x2_t low_sum = vpadd_s32(vget_low_s32(low), vget_high_s32(low)); ++ int32x2_t high_sum = vpadd_s32(vget_low_s32(high), vget_high_s32(high)); ++ ++ return vreinterpretq_m128i_s32(vcombine_s32(low_sum, high_sum)); ++#endif ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. mem_addr does not need to be aligned ++// on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmoveu_si128 ++FORCE_INLINE void _mm_maskmoveu_si128(__m128i a, __m128i mask, char *mem_addr) ++{ ++ int8x16_t shr_mask = vshrq_n_s8(vreinterpretq_s8_m128i(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x16_t masked = ++ vbslq_s8(vreinterpretq_u8_s8(shr_mask), vreinterpretq_s8_m128i(a), ++ vreinterpretq_s8_m128(b)); ++ vst1q_s8((int8_t *) mem_addr, masked); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi16 ++FORCE_INLINE __m128i _mm_max_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmaxq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu8 ++FORCE_INLINE __m128i _mm_max_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vmaxq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pd ++FORCE_INLINE __m128d _mm_max_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcgtq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vmaxq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? a1 : b1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_sd ++FORCE_INLINE __m128d _mm_max_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_max_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] > db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi16 ++FORCE_INLINE __m128i _mm_min_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vminq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu8 ++FORCE_INLINE __m128i _mm_min_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vminq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pd ++FORCE_INLINE __m128d _mm_min_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcltq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vminq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? a1 : b1; ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_sd ++FORCE_INLINE __m128d _mm_min_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_min_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] < db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to the lower element of dst, and zero the ++// upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_epi64 ++FORCE_INLINE __m128i _mm_move_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(0, vreinterpretq_s64_m128i(a), 1)); ++} ++ ++// Move the lower double-precision (64-bit) floating-point element from b to the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_sd ++FORCE_INLINE __m128d _mm_move_sd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vget_low_f32(vreinterpretq_f32_m128d(b)), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_epi8 ++FORCE_INLINE int _mm_movemask_epi8(__m128i a) ++{ ++ // Use increasingly wide shifts+adds to collect the sign bits ++ // together. ++ // Since the widening shifts would be rather confusing to follow in little ++ // endian, everything will be illustrated in big endian order instead. This ++ // has a different result - the bits would actually be reversed on a big ++ // endian machine. ++ ++ // Starting input (only half the elements are shown): ++ // 89 ff 1d c0 00 10 99 33 ++ uint8x16_t input = vreinterpretq_u8_m128i(a); ++ ++ // Shift out everything but the sign bits with an unsigned shift right. ++ // ++ // Bytes of the vector:: ++ // 89 ff 1d c0 00 10 99 33 ++ // \ \ \ \ \ \ \ \ high_bits = (uint16x4_t)(input >> 7) ++ // | | | | | | | | ++ // 01 01 00 01 00 00 01 00 ++ // ++ // Bits of first important lane(s): ++ // 10001001 (89) ++ // \______ ++ // | ++ // 00000001 (01) ++ uint16x8_t high_bits = vreinterpretq_u16_u8(vshrq_n_u8(input, 7)); ++ ++ // Merge the even lanes together with a 16-bit unsigned shift right + add. ++ // 'xx' represents garbage data which will be ignored in the final result. ++ // In the important bytes, the add functions like a binary OR. ++ // ++ // 01 01 00 01 00 00 01 00 ++ // \_ | \_ | \_ | \_ | paired16 = (uint32x4_t)(input + (input >> 7)) ++ // \| \| \| \| ++ // xx 03 xx 01 xx 00 xx 02 ++ // ++ // 00000001 00000001 (01 01) ++ // \_______ | ++ // \| ++ // xxxxxxxx xxxxxx11 (xx 03) ++ uint32x4_t paired16 = ++ vreinterpretq_u32_u16(vsraq_n_u16(high_bits, high_bits, 7)); ++ ++ // Repeat with a wider 32-bit shift + add. ++ // xx 03 xx 01 xx 00 xx 02 ++ // \____ | \____ | paired32 = (uint64x1_t)(paired16 + (paired16 >> ++ // 14)) ++ // \| \| ++ // xx xx xx 0d xx xx xx 02 ++ // ++ // 00000011 00000001 (03 01) ++ // \\_____ || ++ // '----.\|| ++ // xxxxxxxx xxxx1101 (xx 0d) ++ uint64x2_t paired32 = ++ vreinterpretq_u64_u32(vsraq_n_u32(paired16, paired16, 14)); ++ ++ // Last, an even wider 64-bit shift + add to get our result in the low 8 bit ++ // lanes. xx xx xx 0d xx xx xx 02 ++ // \_________ | paired64 = (uint8x8_t)(paired32 + (paired32 >> ++ // 28)) ++ // \| ++ // xx xx xx xx xx xx xx d2 ++ // ++ // 00001101 00000010 (0d 02) ++ // \ \___ | | ++ // '---. \| | ++ // xxxxxxxx 11010010 (xx d2) ++ uint8x16_t paired64 = ++ vreinterpretq_u8_u64(vsraq_n_u64(paired32, paired32, 28)); ++ ++ // Extract the low 8 bits from each 64-bit lane with 2 8-bit extracts. ++ // xx xx xx xx xx xx xx d2 ++ // || return paired64[0] ++ // d2 ++ // Note: Little endian would return the correct value 4b (01001011) instead. ++ return vgetq_lane_u8(paired64, 0) | ((int) vgetq_lane_u8(paired64, 8) << 8); ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed double-precision (64-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pd ++FORCE_INLINE int _mm_movemask_pd(__m128d a) ++{ ++ uint64x2_t input = vreinterpretq_u64_m128d(a); ++ uint64x2_t high_bits = vshrq_n_u64(input, 63); ++ return (int) (vgetq_lane_u64(high_bits, 0) | ++ (vgetq_lane_u64(high_bits, 1) << 1)); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movepi64_pi64 ++FORCE_INLINE __m64 _mm_movepi64_pi64(__m128i a) ++{ ++ return vreinterpret_m64_s64(vget_low_s64(vreinterpretq_s64_m128i(a))); ++} ++ ++// Copy the 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movpi64_epi64 ++FORCE_INLINE __m128i _mm_movpi64_epi64(__m64 a) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vreinterpret_s64_m64(a), vdup_n_s64(0))); ++} ++ ++// Multiply the low unsigned 32-bit integers from each packed 64-bit element in ++// a and b, and store the unsigned 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epu32 ++FORCE_INLINE __m128i _mm_mul_epu32(__m128i a, __m128i b) ++{ ++ // vmull_u32 upcasts instead of masking, so we downcast. ++ uint32x2_t a_lo = vmovn_u64(vreinterpretq_u64_m128i(a)); ++ uint32x2_t b_lo = vmovn_u64(vreinterpretq_u64_m128i(b)); ++ return vreinterpretq_m128i_u64(vmull_u32(a_lo, b_lo)); ++} ++ ++// Multiply packed double-precision (64-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_pd ++FORCE_INLINE __m128d _mm_mul_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vmulq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] * db[0]; ++ c[1] = da[1] * db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Multiply the lower double-precision (64-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper element ++// from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_mul_sd ++FORCE_INLINE __m128d _mm_mul_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_mul_pd(a, b)); ++} ++ ++// Multiply the low unsigned 32-bit integers from a and b, and store the ++// unsigned 64-bit result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_su32 ++FORCE_INLINE __m64 _mm_mul_su32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u64(vget_low_u64( ++ vmull_u32(vreinterpret_u32_m64(a), vreinterpret_u32_m64(b)))); ++} ++ ++// Multiply the packed signed 16-bit integers in a and b, producing intermediate ++// 32-bit integers, and store the high 16 bits of the intermediate integers in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epi16 ++FORCE_INLINE __m128i _mm_mulhi_epi16(__m128i a, __m128i b) ++{ ++ /* FIXME: issue with large values because of result saturation */ ++ // int16x8_t ret = vqdmulhq_s16(vreinterpretq_s16_m128i(a), ++ // vreinterpretq_s16_m128i(b)); /* =2*a*b */ return ++ // vreinterpretq_m128i_s16(vshrq_n_s16(ret, 1)); ++ int16x4_t a3210 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b3210 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab3210 = vmull_s16(a3210, b3210); /* 3333222211110000 */ ++ int16x4_t a7654 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b7654 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab7654 = vmull_s16(a7654, b7654); /* 7777666655554444 */ ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_s32(ab3210), vreinterpretq_u16_s32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epu16 ++FORCE_INLINE __m128i _mm_mulhi_epu16(__m128i a, __m128i b) ++{ ++ uint16x4_t a3210 = vget_low_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b3210 = vget_low_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab3210 = vmull_u16(a3210, b3210); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32x4_t ab7654 = ++ vmull_high_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ uint16x8_t r = vuzp2q_u16(vreinterpretq_u16_u32(ab3210), ++ vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r); ++#else ++ uint16x4_t a7654 = vget_high_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b7654 = vget_high_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab7654 = vmull_u16(a7654, b7654); ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_u32(ab3210), vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++#endif ++} ++ ++// Multiply the packed 16-bit integers in a and b, producing intermediate 32-bit ++// integers, and store the low 16 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi16 ++FORCE_INLINE __m128i _mm_mullo_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmulq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compute the bitwise OR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_or_pd ++FORCE_INLINE __m128d _mm_or_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vorrq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise OR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_si128 ++FORCE_INLINE __m128i _mm_or_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vorrq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi16 ++FORCE_INLINE __m128i _mm_packs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vqmovn_s16(vreinterpretq_s16_m128i(a)), ++ vqmovn_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi32 ++FORCE_INLINE __m128i _mm_packs_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vqmovn_s32(vreinterpretq_s32_m128i(a)), ++ vqmovn_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi16 ++FORCE_INLINE __m128i _mm_packus_epi16(const __m128i a, const __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcombine_u8(vqmovun_s16(vreinterpretq_s16_m128i(a)), ++ vqmovun_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Pause the processor. This is typically used in spin-wait loops and depending ++// on the x86 processor typical values are in the 40-100 cycle range. The ++// 'yield' instruction isn't a good fit because it's effectively a nop on most ++// Arm cores. Experience with several databases has shown has shown an 'isb' is ++// a reasonable approximation. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_pause ++FORCE_INLINE void _mm_pause(void) ++{ ++#if defined(_MSC_VER) ++ __isb(_ARM64_BARRIER_SY); ++#else ++ __asm__ __volatile__("isb\n"); ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce two ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of 64-bit elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_epu8 ++FORCE_INLINE __m128i _mm_sad_epu8(__m128i a, __m128i b) ++{ ++ uint16x8_t t = vpaddlq_u8(vabdq_u8((uint8x16_t) a, (uint8x16_t) b)); ++ return vreinterpretq_m128i_u64(vpaddlq_u32(vpaddlq_u16(t))); ++} ++ ++// Set packed 16-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi16 ++FORCE_INLINE __m128i _mm_set_epi16(short i7, ++ short i6, ++ short i5, ++ short i4, ++ short i3, ++ short i2, ++ short i1, ++ short i0) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {i0, i1, i2, i3, i4, i5, i6, i7}; ++ return vreinterpretq_m128i_s16(vld1q_s16(data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi32 ++FORCE_INLINE __m128i _mm_set_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i0, i1, i2, i3}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64 ++FORCE_INLINE __m128i _mm_set_epi64(__m64 i1, __m64 i2) ++{ ++ return _mm_set_epi64x(vget_lane_s64(i1, 0), vget_lane_s64(i2, 0)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64x ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t i1, int64_t i2) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vcreate_s64(i2), vcreate_s64(i1))); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi8 ++FORCE_INLINE __m128i _mm_set_epi8(signed char b15, ++ signed char b14, ++ signed char b13, ++ signed char b12, ++ signed char b11, ++ signed char b10, ++ signed char b9, ++ signed char b8, ++ signed char b7, ++ signed char b6, ++ signed char b5, ++ signed char b4, ++ signed char b3, ++ signed char b2, ++ signed char b1, ++ signed char b0) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd ++FORCE_INLINE __m128d _mm_set_pd(double e1, double e0) ++{ ++ double ALIGN_STRUCT(16) data[2] = {e0, e1}; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64((float64_t *) data)); ++#else ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) data)); ++#endif ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd1 ++#define _mm_set_pd1 _mm_set1_pd ++ ++// Copy double-precision (64-bit) floating-point element a to the lower element ++// of dst, and zero the upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_sd ++FORCE_INLINE __m128d _mm_set_sd(double a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(a, vdupq_n_f64(0), 0)); ++#else ++ return _mm_set_pd(0, a); ++#endif ++} ++ ++// Broadcast 16-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi16 ++FORCE_INLINE __m128i _mm_set1_epi16(short w) ++{ ++ return vreinterpretq_m128i_s16(vdupq_n_s16(w)); ++} ++ ++// Broadcast 32-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi32 ++FORCE_INLINE __m128i _mm_set1_epi32(int _i) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(_i)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64 ++FORCE_INLINE __m128i _mm_set1_epi64(__m64 _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_lane_s64(_i, 0)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64x ++FORCE_INLINE __m128i _mm_set1_epi64x(int64_t _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_n_s64(_i)); ++} ++ ++// Broadcast 8-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi8 ++FORCE_INLINE __m128i _mm_set1_epi8(signed char w) ++{ ++ return vreinterpretq_m128i_s8(vdupq_n_s8(w)); ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_pd ++FORCE_INLINE __m128d _mm_set1_pd(double d) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(d)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(int64_t *) &d)); ++#endif ++} ++ ++// Set packed 16-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi16 ++FORCE_INLINE __m128i _mm_setr_epi16(short w0, ++ short w1, ++ short w2, ++ short w3, ++ short w4, ++ short w5, ++ short w6, ++ short w7) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {w0, w1, w2, w3, w4, w5, w6, w7}; ++ return vreinterpretq_m128i_s16(vld1q_s16((int16_t *) data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi32 ++FORCE_INLINE __m128i _mm_setr_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i3, i2, i1, i0}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi64 ++FORCE_INLINE __m128i _mm_setr_epi64(__m64 e1, __m64 e0) ++{ ++ return vreinterpretq_m128i_s64(vcombine_s64(e1, e0)); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi8 ++FORCE_INLINE __m128i _mm_setr_epi8(signed char b0, ++ signed char b1, ++ signed char b2, ++ signed char b3, ++ signed char b4, ++ signed char b5, ++ signed char b6, ++ signed char b7, ++ signed char b8, ++ signed char b9, ++ signed char b10, ++ signed char b11, ++ signed char b12, ++ signed char b13, ++ signed char b14, ++ signed char b15) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_pd ++FORCE_INLINE __m128d _mm_setr_pd(double e1, double e0) ++{ ++ return _mm_set_pd(e0, e1); ++} ++ ++// Return vector of type __m128d with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_pd ++FORCE_INLINE __m128d _mm_setzero_pd(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(0)); ++#else ++ return vreinterpretq_m128d_f32(vdupq_n_f32(0)); ++#endif ++} ++ ++// Return vector of type __m128i with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_si128 ++FORCE_INLINE __m128i _mm_setzero_si128(void) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(0)); ++} ++ ++// Shuffle 32-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi32 ++// FORCE_INLINE __m128i _mm_shuffle_epi32(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shuffle_epi32(a, imm) \ ++ __extension__({ \ ++ int32x4_t _input = vreinterpretq_s32_m128i(a); \ ++ int32x4_t _shuf = \ ++ vshuffleq_s32(_input, _input, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ ((imm) >> 4) & 0x3, ((imm) >> 6) & 0x3); \ ++ vreinterpretq_m128i_s32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_epi32(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, __m128i ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_epi_1032(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_epi_2301(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_epi_0321(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_epi_2103(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_shuffle_epi_1010(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_epi_1001(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_epi_0101(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 1, 1): \ ++ ret = _mm_shuffle_epi_2211(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 2, 2): \ ++ ret = _mm_shuffle_epi_0122(_a); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 2): \ ++ ret = _mm_shuffle_epi_3332(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 0, 0): \ ++ ret = _mm_shuffle_epi32_splat(_a, 0); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 1, 1): \ ++ ret = _mm_shuffle_epi32_splat(_a, 1); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 2, 2): \ ++ ret = _mm_shuffle_epi32_splat(_a, 2); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 3): \ ++ ret = _mm_shuffle_epi32_splat(_a, 3); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_epi32_default(_a, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Shuffle double-precision (64-bit) floating-point elements using the control ++// in imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pd ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pd(a, b, imm8) \ ++ vreinterpretq_m128d_s64( \ ++ vshuffleq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b), \ ++ imm8 & 0x1, ((imm8 & 0x2) >> 1) + 2)) ++#else ++#define _mm_shuffle_pd(a, b, imm8) \ ++ _mm_castsi128_pd(_mm_set_epi64x( \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(b), (imm8 & 0x2) >> 1), \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(a), imm8 & 0x1))) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflehi_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflehi_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = \ ++ vshuffleq_s16(_input, _input, 0, 1, 2, 3, ((imm) & (0x3)) + 4, \ ++ (((imm) >> 2) & 0x3) + 4, (((imm) >> 4) & 0x3) + 4, \ ++ (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflehi_epi16(a, imm) _mm_shufflehi_epi16_function((a), (imm)) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflelo_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflelo_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = vshuffleq_s16( \ ++ _input, _input, ((imm) & (0x3)), (((imm) >> 2) & 0x3), \ ++ (((imm) >> 4) & 0x3), (((imm) >> 6) & 0x3), 4, 5, 6, 7); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflelo_epi16(a, imm) _mm_shufflelo_epi16_function((a), (imm)) ++#endif ++ ++// Shift packed 16-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi16 ++FORCE_INLINE __m128i _mm_sll_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16((int16_t) c); ++ return vreinterpretq_m128i_s16(vshlq_s16(vreinterpretq_s16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi32 ++FORCE_INLINE __m128i _mm_sll_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32((int32_t) c); ++ return vreinterpretq_m128i_s32(vshlq_s32(vreinterpretq_s32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi64 ++FORCE_INLINE __m128i _mm_sll_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64((int64_t) c); ++ return vreinterpretq_m128i_s64(vshlq_s64(vreinterpretq_s64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi16 ++FORCE_INLINE __m128i _mm_slli_epi16(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~15)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16(vreinterpretq_s16_m128i(a), vdupq_n_s16(imm))); ++} ++ ++// Shift packed 32-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi32 ++FORCE_INLINE __m128i _mm_slli_epi32(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~31)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32(vreinterpretq_s32_m128i(a), vdupq_n_s32(imm))); ++} ++ ++// Shift packed 64-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi64 ++FORCE_INLINE __m128i _mm_slli_epi64(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~63)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s64( ++ vshlq_s64(vreinterpretq_s64_m128i(a), vdupq_n_s64(imm))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_si128 ++#define _mm_slli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely(imm == 0)) ret = vreinterpretq_s8_m128i(_a); \ ++ else if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vdupq_n_s8(0), vreinterpretq_s8_m128i(_a), \ ++ ((imm <= 0 || imm > 15) ? 0 : (16 - imm))); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Compute the square root of packed double-precision (64-bit) floating-point ++// elements in a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_pd ++FORCE_INLINE __m128d _mm_sqrt_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsqrtq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double a0 = sqrt(((double *) &a)[0]); ++ double a1 = sqrt(((double *) &a)[1]); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Compute the square root of the lower double-precision (64-bit) floating-point ++// element in b, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_sd ++FORCE_INLINE __m128d _mm_sqrt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_sqrt_pd(b)); ++#else ++ return _mm_set_pd(((double *) &a)[1], sqrt(((double *) &b)[0])); ++#endif ++} ++ ++// Shift packed 16-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi16 ++FORCE_INLINE __m128i _mm_sra_epi16(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_cmplt_epi16(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16((int16x8_t) a, vdupq_n_s16((int) -c))); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi32 ++FORCE_INLINE __m128i _mm_sra_epi32(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_cmplt_epi32(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32((int32x4_t) a, vdupq_n_s32((int) -c))); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in sign ++// bits, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi16 ++FORCE_INLINE __m128i _mm_srai_epi16(__m128i a, int imm) ++{ ++ const int count = (imm & ~15) ? 15 : imm; ++ return (__m128i) vshlq_s16((int16x8_t) a, vdupq_n_s16(-count)); ++} ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi32 ++// FORCE_INLINE __m128i _mm_srai_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srai_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) == 0)) { \ ++ ret = _a; \ ++ } else if (_sse2neon_likely(0 < (imm) && (imm) < 32)) { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshlq_s32(vreinterpretq_s32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } else { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshrq_n_s32(vreinterpretq_s32_m128i(_a), 31)); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 16-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi16 ++FORCE_INLINE __m128i _mm_srl_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16(-(int16_t) c); ++ return vreinterpretq_m128i_u16(vshlq_u16(vreinterpretq_u16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi32 ++FORCE_INLINE __m128i _mm_srl_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32(-(int32_t) c); ++ return vreinterpretq_m128i_u32(vshlq_u32(vreinterpretq_u32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi64 ++FORCE_INLINE __m128i _mm_srl_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64(-(int64_t) c); ++ return vreinterpretq_m128i_u64(vshlq_u64(vreinterpretq_u64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi16 ++#define _mm_srli_epi16(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~15)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u16( \ ++ vshlq_u16(vreinterpretq_u16_m128i(_a), vdupq_n_s16(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi32 ++// FORCE_INLINE __m128i _mm_srli_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srli_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~31)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u32( \ ++ vshlq_u32(vreinterpretq_u32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 64-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi64 ++#define _mm_srli_epi64(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~63)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u64( \ ++ vshlq_u64(vreinterpretq_u64_m128i(_a), vdupq_n_s64(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_si128 ++#define _mm_srli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vreinterpretq_s8_m128i(_a), vdupq_n_s8(0), \ ++ (imm > 15 ? 0 : imm)); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd ++FORCE_INLINE void _mm_store_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64((float64_t *) mem_addr, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_f32((float32_t *) mem_addr, vreinterpretq_f32_m128d(a)); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd1 ++FORCE_INLINE void _mm_store_pd1(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x1_t a_low = vget_low_f64(vreinterpretq_f64_m128d(a)); ++ vst1q_f64((float64_t *) mem_addr, ++ vreinterpretq_f64_m128d(vcombine_f64(a_low, a_low))); ++#else ++ float32x2_t a_low = vget_low_f32(vreinterpretq_f32_m128d(a)); ++ vst1q_f32((float32_t *) mem_addr, ++ vreinterpretq_f32_m128d(vcombine_f32(a_low, a_low))); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_store_sd ++FORCE_INLINE void _mm_store_sd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_u64((uint64_t *) mem_addr, vget_low_u64(vreinterpretq_u64_m128d(a))); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_si128 ++FORCE_INLINE void _mm_store_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#expand=9,526,5601&text=_mm_store1_pd ++#define _mm_store1_pd _mm_store_pd1 ++ ++// Store the upper double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pd ++FORCE_INLINE void _mm_storeh_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_high_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_high_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 64-bit integer from the first element of a into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_epi64 ++FORCE_INLINE void _mm_storel_epi64(__m128i *a, __m128i b) ++{ ++ vst1_u64((uint64_t *) a, vget_low_u64(vreinterpretq_u64_m128i(b))); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pd ++FORCE_INLINE void _mm_storel_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_low_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 2 double-precision (64-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_pd ++FORCE_INLINE void _mm_storer_pd(double *mem_addr, __m128d a) ++{ ++ float32x4_t f = vreinterpretq_f32_m128d(a); ++ _mm_store_pd(mem_addr, vreinterpretq_m128d_f32(vextq_f32(f, f, 2))); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_pd ++FORCE_INLINE void _mm_storeu_pd(double *mem_addr, __m128d a) ++{ ++ _mm_store_pd(mem_addr, a); ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si128 ++FORCE_INLINE void _mm_storeu_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store 32-bit integer from the first element of a into memory. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si32 ++FORCE_INLINE void _mm_storeu_si32(void *p, __m128i a) ++{ ++ vst1q_lane_s32((int32_t *) p, vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory using a non-temporal memory hint. mem_addr must ++// be aligned on a 16-byte boundary or a general-protection exception may be ++// generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pd ++FORCE_INLINE void _mm_stream_pd(double *p, __m128d a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (__m128d *) p); ++#elif defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64(p, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128d(a)); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory using a non-temporal memory ++// hint. mem_addr must be aligned on a 16-byte boundary or a general-protection ++// exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si128 ++FORCE_INLINE void _mm_stream_si128(__m128i *p, __m128i a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, p); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128i(a)); ++#endif ++} ++ ++// Store 32-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si32 ++FORCE_INLINE void _mm_stream_si32(int *p, int a) ++{ ++ vst1q_lane_s32((int32_t *) p, vdupq_n_s32(a), 0); ++} ++ ++// Store 64-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si64 ++FORCE_INLINE void _mm_stream_si64(__int64 *p, __int64 a) ++{ ++ vst1_s64((int64_t *) p, vdup_n_s64((int64_t) a)); ++} ++ ++// Subtract packed 16-bit integers in b from packed 16-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi16 ++FORCE_INLINE __m128i _mm_sub_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed 32-bit integers in b from packed 32-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi32 ++FORCE_INLINE __m128i _mm_sub_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Subtract packed 64-bit integers in b from packed 64-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi64 ++FORCE_INLINE __m128i _mm_sub_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vsubq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Subtract packed 8-bit integers in b from packed 8-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi8 ++FORCE_INLINE __m128i _mm_sub_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed double-precision (64-bit) floating-point elements in b from ++// packed double-precision (64-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_sub_pd ++FORCE_INLINE __m128d _mm_sub_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] - db[0]; ++ c[1] = da[1] - db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Subtract the lower double-precision (64-bit) floating-point element in b from ++// the lower double-precision (64-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_sd ++FORCE_INLINE __m128d _mm_sub_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_sub_pd(a, b)); ++} ++ ++// Subtract 64-bit integer b from 64-bit integer a, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_si64 ++FORCE_INLINE __m64 _mm_sub_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vsub_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Subtract packed signed 16-bit integers in b from packed 16-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi16 ++FORCE_INLINE __m128i _mm_subs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed signed 8-bit integers in b from packed 8-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi8 ++FORCE_INLINE __m128i _mm_subs_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed unsigned 16-bit integers in b from packed unsigned 16-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu16 ++FORCE_INLINE __m128i _mm_subs_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqsubq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Subtract packed unsigned 8-bit integers in b from packed unsigned 8-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu8 ++FORCE_INLINE __m128i _mm_subs_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqsubq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++#define _mm_ucomieq_sd _mm_comieq_sd ++#define _mm_ucomige_sd _mm_comige_sd ++#define _mm_ucomigt_sd _mm_comigt_sd ++#define _mm_ucomile_sd _mm_comile_sd ++#define _mm_ucomilt_sd _mm_comilt_sd ++#define _mm_ucomineq_sd _mm_comineq_sd ++ ++// Return vector of type __m128d with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_pd ++FORCE_INLINE __m128d _mm_undefined_pd(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128d a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_pd(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi16 ++FORCE_INLINE __m128i _mm_unpackhi_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip2q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi32 ++FORCE_INLINE __m128i _mm_unpackhi_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip2q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_high_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi64 ++FORCE_INLINE __m128i _mm_unpackhi_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip2q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_h = vget_high_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_h = vget_high_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_h, b_h)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the high half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi8 ++FORCE_INLINE __m128i _mm_unpackhi_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip2q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the high half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_pd ++FORCE_INLINE __m128d _mm_unpackhi_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip2q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_high_s64(vreinterpretq_s64_m128d(a)), ++ vget_high_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi16 ++FORCE_INLINE __m128i _mm_unpacklo_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip1q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi32 ++FORCE_INLINE __m128i _mm_unpacklo_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip1q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_low_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi64 ++FORCE_INLINE __m128i _mm_unpacklo_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip1q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_l = vget_low_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_l = vget_low_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_l, b_l)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi8 ++FORCE_INLINE __m128i _mm_unpacklo_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip1q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_pd ++FORCE_INLINE __m128d _mm_unpacklo_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip1q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_low_s64(vreinterpretq_s64_m128d(a)), ++ vget_low_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Compute the bitwise XOR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_pd ++FORCE_INLINE __m128d _mm_xor_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ veorq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise XOR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_si128 ++FORCE_INLINE __m128i _mm_xor_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ veorq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++/* SSE3 */ ++ ++// Alternatively add and subtract packed double-precision (64-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_addsub_pd ++FORCE_INLINE __m128d _mm_addsub_pd(__m128d a, __m128d b) ++{ ++ _sse2neon_const __m128d mask = _mm_set_pd(1.0f, -1.0f); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vfmaq_f64(vreinterpretq_f64_m128d(a), ++ vreinterpretq_f64_m128d(b), ++ vreinterpretq_f64_m128d(mask))); ++#else ++ return _mm_add_pd(_mm_mul_pd(b, mask), a); ++#endif ++} ++ ++// Alternatively add and subtract packed single-precision (32-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=addsub_ps ++FORCE_INLINE __m128 _mm_addsub_ps(__m128 a, __m128 b) ++{ ++ _sse2neon_const __m128 mask = _mm_setr_ps(-1.0f, 1.0f, -1.0f, 1.0f); ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_FMA) /* VFPv4+ */ ++ return vreinterpretq_m128_f32(vfmaq_f32(vreinterpretq_f32_m128(a), ++ vreinterpretq_f32_m128(mask), ++ vreinterpretq_f32_m128(b))); ++#else ++ return _mm_add_ps(_mm_mul_ps(b, mask), a); ++#endif ++} ++ ++// Horizontally add adjacent pairs of double-precision (64-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pd ++FORCE_INLINE __m128d _mm_hadd_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vpaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[] = {da[0] + da[1], db[0] + db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of single-precision (32-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_ps ++FORCE_INLINE __m128 _mm_hadd_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vpaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vpadd_f32(a10, a32), vpadd_f32(b10, b32))); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of double-precision (64-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pd ++FORCE_INLINE __m128d _mm_hsub_pd(__m128d _a, __m128d _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vuzp1q_f64(a, b), vuzp2q_f64(a, b))); ++#else ++ double *da = (double *) &_a; ++ double *db = (double *) &_b; ++ double c[] = {da[0] - da[1], db[0] - db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of single-precision (32-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_ps ++FORCE_INLINE __m128 _mm_hsub_ps(__m128 _a, __m128 _b) ++{ ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vuzp1q_f32(a, b), vuzp2q_f32(a, b))); ++#else ++ float32x4x2_t c = vuzpq_f32(a, b); ++ return vreinterpretq_m128_f32(vsubq_f32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Load 128-bits of integer data from unaligned memory into dst. This intrinsic ++// may perform better than _mm_loadu_si128 when the data crosses a cache line ++// boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lddqu_si128 ++#define _mm_lddqu_si128 _mm_loadu_si128 ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loaddup_pd ++#define _mm_loaddup_pd _mm_load1_pd ++ ++// Duplicate the low double-precision (64-bit) floating-point element from a, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movedup_pd ++FORCE_INLINE __m128d _mm_movedup_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdupq_laneq_f64(vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_u64( ++ vdupq_n_u64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0))); ++#endif ++} ++ ++// Duplicate odd-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehdup_ps ++FORCE_INLINE __m128 _mm_movehdup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 1, 1, 3, 3)); ++#else ++ float32_t a1 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ float32_t a3 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 3); ++ float ALIGN_STRUCT(16) data[4] = {a1, a1, a3, a3}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Duplicate even-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_moveldup_ps ++FORCE_INLINE __m128 _mm_moveldup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 0, 0, 2, 2)); ++#else ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32_t a2 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 2); ++ float ALIGN_STRUCT(16) data[4] = {a0, a0, a2, a2}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++/* SSSE3 */ ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi16 ++FORCE_INLINE __m128i _mm_abs_epi16(__m128i a) ++{ ++ return vreinterpretq_m128i_s16(vabsq_s16(vreinterpretq_s16_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi32 ++FORCE_INLINE __m128i _mm_abs_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32(vabsq_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi8 ++FORCE_INLINE __m128i _mm_abs_epi8(__m128i a) ++{ ++ return vreinterpretq_m128i_s8(vabsq_s8(vreinterpretq_s8_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi16 ++FORCE_INLINE __m64 _mm_abs_pi16(__m64 a) ++{ ++ return vreinterpret_m64_s16(vabs_s16(vreinterpret_s16_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi32 ++FORCE_INLINE __m64 _mm_abs_pi32(__m64 a) ++{ ++ return vreinterpret_m64_s32(vabs_s32(vreinterpret_s32_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi8 ++FORCE_INLINE __m64 _mm_abs_pi8(__m64 a) ++{ ++ return vreinterpret_m64_s8(vabs_s8(vreinterpret_s8_m64(a))); ++} ++ ++// Concatenate 16-byte blocks in a and b into a 32-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 16 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_epi8 ++#if defined(__GNUC__) && !defined(__clang__) ++#define _mm_alignr_epi8(a, b, imm) \ ++ __extension__({ \ ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); \ ++ uint8x16_t _b = vreinterpretq_u8_m128i(b); \ ++ __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) \ ++ ret = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) \ ++ ret = _mm_srli_si128(a, imm >= 16 ? imm - 16 : 0); \ ++ else \ ++ ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(_b, _a, imm < 16 ? imm : 0)); \ ++ ret; \ ++ }) ++ ++#else ++#define _mm_alignr_epi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, uint8x16_t __a = vreinterpretq_u8_m128i(_a); \ ++ uint8x16_t __b = vreinterpretq_u8_m128i(_b); __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) ret = \ ++ vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) ret = \ ++ _mm_srli_si128(_a, imm >= 16 ? imm - 16 : 0); \ ++ else ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(__b, __a, imm < 16 ? imm : 0)); \ ++ _sse2neon_return(ret);) ++ ++#endif ++ ++// Concatenate 8-byte blocks in a and b into a 16-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 8 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_pi8 ++#define _mm_alignr_pi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m64, a, b, __m64 ret; if (_sse2neon_unlikely((imm) >= 16)) { \ ++ ret = vreinterpret_m64_s8(vdup_n_s8(0)); \ ++ } else { \ ++ uint8x8_t tmp_low; \ ++ uint8x8_t tmp_high; \ ++ if ((imm) >= 8) { \ ++ const int idx = (imm) -8; \ ++ tmp_low = vreinterpret_u8_m64(_a); \ ++ tmp_high = vdup_n_u8(0); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } else { \ ++ const int idx = (imm); \ ++ tmp_low = vreinterpret_u8_m64(_b); \ ++ tmp_high = vreinterpret_u8_m64(_a); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } \ ++ } _sse2neon_return(ret);) ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi16 ++FORCE_INLINE __m128i _mm_hadd_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16(vpaddq_s16(a, b)); ++#else ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(vget_low_s16(a), vget_high_s16(a)), ++ vpadd_s16(vget_low_s16(b), vget_high_s16(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi32 ++FORCE_INLINE __m128i _mm_hadd_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32(vpaddq_s32(a, b)); ++#else ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vpadd_s32(vget_low_s32(a), vget_high_s32(a)), ++ vpadd_s32(vget_low_s32(b), vget_high_s32(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi16 ++FORCE_INLINE __m64 _mm_hadd_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vpadd_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi32 ++FORCE_INLINE __m64 _mm_hadd_pi32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s32( ++ vpadd_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_epi16 ++FORCE_INLINE __m128i _mm_hadds_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ return vreinterpretq_s64_s16( ++ vqaddq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ // Interleave using vshrn/vmovn ++ // [a0|a2|a4|a6|b0|b2|b4|b6] ++ // [a1|a3|a5|a7|b1|b3|b5|b7] ++ int16x8_t ab0246 = vcombine_s16(vmovn_s32(a), vmovn_s32(b)); ++ int16x8_t ab1357 = vcombine_s16(vshrn_n_s32(a, 16), vshrn_n_s32(b, 16)); ++ // Saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(ab0246, ab1357)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_pi16 ++FORCE_INLINE __m64 _mm_hadds_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_s64_s16(vqadd_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t res = vuzp_s16(a, b); ++ return vreinterpret_s64_s16(vqadd_s16(res.val[0], res.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi16 ++FORCE_INLINE __m128i _mm_hsub_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi32 ++FORCE_INLINE __m128i _mm_hsub_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vuzp1q_s32(a, b), vuzp2q_s32(a, b))); ++#else ++ int32x4x2_t c = vuzpq_s32(a, b); ++ return vreinterpretq_m128i_s32(vsubq_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pi16 ++FORCE_INLINE __m64 _mm_hsub_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_hsub_pi32 ++FORCE_INLINE __m64 _mm_hsub_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s32(vsub_s32(vuzp1_s32(a, b), vuzp2_s32(a, b))); ++#else ++ int32x2x2_t c = vuzp_s32(a, b); ++ return vreinterpret_m64_s32(vsub_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_epi16 ++FORCE_INLINE __m128i _mm_hsubs_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vqsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_pi16 ++FORCE_INLINE __m64 _mm_hsubs_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vqsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vqsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, ++// and pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_epi16 ++FORCE_INLINE __m128i _mm_maddubs_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ int16x8_t tl = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_low_u8(a))), ++ vmovl_s8(vget_low_s8(b))); ++ int16x8_t th = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_high_u8(a))), ++ vmovl_s8(vget_high_s8(b))); ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vuzp1q_s16(tl, th), vuzp2q_s16(tl, th))); ++#else ++ // This would be much simpler if x86 would choose to zero extend OR sign ++ // extend, not both. This could probably be optimized better. ++ uint16x8_t a = vreinterpretq_u16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // Zero extend a ++ int16x8_t a_odd = vreinterpretq_s16_u16(vshrq_n_u16(a, 8)); ++ int16x8_t a_even = vreinterpretq_s16_u16(vbicq_u16(a, vdupq_n_u16(0xff00))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x8_t b_even = vshrq_n_s16(vshlq_n_s16(b, 8), 8); ++ int16x8_t b_odd = vshrq_n_s16(b, 8); ++ ++ // multiply ++ int16x8_t prod1 = vmulq_s16(a_even, b_even); ++ int16x8_t prod2 = vmulq_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(prod1, prod2)); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, and ++// pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_pi16 ++FORCE_INLINE __m64 _mm_maddubs_pi16(__m64 _a, __m64 _b) ++{ ++ uint16x4_t a = vreinterpret_u16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // Zero extend a ++ int16x4_t a_odd = vreinterpret_s16_u16(vshr_n_u16(a, 8)); ++ int16x4_t a_even = vreinterpret_s16_u16(vand_u16(a, vdup_n_u16(0xff))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x4_t b_even = vshr_n_s16(vshl_n_s16(b, 8), 8); ++ int16x4_t b_odd = vshr_n_s16(b, 8); ++ ++ // multiply ++ int16x4_t prod1 = vmul_s16(a_even, b_even); ++ int16x4_t prod2 = vmul_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpret_m64_s16(vqadd_s16(prod1, prod2)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Shift right by 15 bits while rounding up, and store ++// the packed 16-bit integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_epi16 ++FORCE_INLINE __m128i _mm_mulhrs_epi16(__m128i a, __m128i b) ++{ ++ // Has issues due to saturation ++ // return vreinterpretq_m128i_s16(vqrdmulhq_s16(a, b)); ++ ++ // Multiply ++ int32x4_t mul_lo = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int32x4_t mul_hi = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ // Rounding narrowing shift right ++ // narrow = (int16_t)((mul + 16384) >> 15); ++ int16x4_t narrow_lo = vrshrn_n_s32(mul_lo, 15); ++ int16x4_t narrow_hi = vrshrn_n_s32(mul_hi, 15); ++ ++ // Join together ++ return vreinterpretq_m128i_s16(vcombine_s16(narrow_lo, narrow_hi)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Truncate each intermediate integer to the 18 most ++// significant bits, round by adding 1, and store bits [16:1] to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_pi16 ++FORCE_INLINE __m64 _mm_mulhrs_pi16(__m64 a, __m64 b) ++{ ++ int32x4_t mul_extend = ++ vmull_s16((vreinterpret_s16_m64(a)), (vreinterpret_s16_m64(b))); ++ ++ // Rounding narrowing shift right ++ return vreinterpret_m64_s16(vrshrn_n_s32(mul_extend, 15)); ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi8 ++FORCE_INLINE __m128i _mm_shuffle_epi8(__m128i a, __m128i b) ++{ ++ int8x16_t tbl = vreinterpretq_s8_m128i(a); // input a ++ uint8x16_t idx = vreinterpretq_u8_m128i(b); // input b ++ uint8x16_t idx_masked = ++ vandq_u8(idx, vdupq_n_u8(0x8F)); // avoid using meaningless bits ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8(vqtbl1q_s8(tbl, idx_masked)); ++#elif defined(__GNUC__) ++ int8x16_t ret; ++ // %e and %f represent the even and odd D registers ++ // respectively. ++ __asm__ __volatile__( ++ "vtbl.8 %e[ret], {%e[tbl], %f[tbl]}, %e[idx]\n" ++ "vtbl.8 %f[ret], {%e[tbl], %f[tbl]}, %f[idx]\n" ++ : [ret] "=&w"(ret) ++ : [tbl] "w"(tbl), [idx] "w"(idx_masked)); ++ return vreinterpretq_m128i_s8(ret); ++#else ++ // use this line if testing on aarch64 ++ int8x8x2_t a_split = {vget_low_s8(tbl), vget_high_s8(tbl)}; ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vtbl2_s8(a_split, vget_low_u8(idx_masked)), ++ vtbl2_s8(a_split, vget_high_u8(idx_masked)))); ++#endif ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi8 ++FORCE_INLINE __m64 _mm_shuffle_pi8(__m64 a, __m64 b) ++{ ++ const int8x8_t controlMask = ++ vand_s8(vreinterpret_s8_m64(b), vdup_n_s8((int8_t) (0x1 << 7 | 0x07))); ++ int8x8_t res = vtbl1_s8(vreinterpret_s8_m64(a), controlMask); ++ return vreinterpret_m64_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed ++// 16-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi16 ++FORCE_INLINE __m128i _mm_sign_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x8_t ltMask = vreinterpretq_u16_s16(vshrq_n_s16(b, 15)); ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqzq_s16(b)); ++#else ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqq_s16(b, vdupq_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s16(a) equals to negative ++ // 'a') based on ltMask ++ int16x8_t masked = vbslq_s16(ltMask, vnegq_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x8_t res = vbicq_s16(masked, zeroMask); ++ return vreinterpretq_m128i_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed ++// 32-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi32 ++FORCE_INLINE __m128i _mm_sign_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x4_t ltMask = vreinterpretq_u32_s32(vshrq_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqzq_s32(b)); ++#else ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqq_s32(b, vdupq_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s32(a) equals to negative ++ // 'a') based on ltMask ++ int32x4_t masked = vbslq_s32(ltMask, vnegq_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x4_t res = vbicq_s32(masked, zeroMask); ++ return vreinterpretq_m128i_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed ++// 8-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi8 ++FORCE_INLINE __m128i _mm_sign_epi8(__m128i _a, __m128i _b) ++{ ++ int8x16_t a = vreinterpretq_s8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x16_t ltMask = vreinterpretq_u8_s8(vshrq_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqzq_s8(b)); ++#else ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqq_s8(b, vdupq_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s8(a) return negative 'a') ++ // based on ltMask ++ int8x16_t masked = vbslq_s8(ltMask, vnegq_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x16_t res = vbicq_s8(masked, zeroMask); ++ ++ return vreinterpretq_m128i_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed 16-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi16 ++FORCE_INLINE __m64 _mm_sign_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x4_t ltMask = vreinterpret_u16_s16(vshr_n_s16(b, 15)); ++ ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceqz_s16(b)); ++#else ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceq_s16(b, vdup_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s16(a) return negative 'a') ++ // based on ltMask ++ int16x4_t masked = vbsl_s16(ltMask, vneg_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x4_t res = vbic_s16(masked, zeroMask); ++ ++ return vreinterpret_m64_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed 32-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi32 ++FORCE_INLINE __m64 _mm_sign_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x2_t ltMask = vreinterpret_u32_s32(vshr_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceqz_s32(b)); ++#else ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceq_s32(b, vdup_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s32(a) return negative 'a') ++ // based on ltMask ++ int32x2_t masked = vbsl_s32(ltMask, vneg_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x2_t res = vbic_s32(masked, zeroMask); ++ ++ return vreinterpret_m64_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed 8-bit integer ++// in b is negative, and store the results in dst. Element in dst are zeroed out ++// when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi8 ++FORCE_INLINE __m64 _mm_sign_pi8(__m64 _a, __m64 _b) ++{ ++ int8x8_t a = vreinterpret_s8_m64(_a); ++ int8x8_t b = vreinterpret_s8_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x8_t ltMask = vreinterpret_u8_s8(vshr_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceqz_s8(b)); ++#else ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceq_s8(b, vdup_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s8(a) return negative 'a') ++ // based on ltMask ++ int8x8_t masked = vbsl_s8(ltMask, vneg_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x8_t res = vbic_s8(masked, zeroMask); ++ ++ return vreinterpret_m64_s8(res); ++} ++ ++/* SSE4.1 */ ++ ++// Blend packed 16-bit integers from a and b using control mask imm8, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_epi16 ++// FORCE_INLINE __m128i _mm_blend_epi16(__m128i a, __m128i b, ++// __constrange(0,255) int imm) ++#define _mm_blend_epi16(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, \ ++ const uint16_t _mask[8] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 1)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 2)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 3)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 4)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 5)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 6)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 7)) ? (uint16_t) -1 : 0x0); \ ++ uint16x8_t _mask_vec = vld1q_u16(_mask); \ ++ uint16x8_t __a = vreinterpretq_u16_m128i(_a); \ ++ uint16x8_t __b = vreinterpretq_u16_m128i(_b); _sse2neon_return( \ ++ vreinterpretq_m128i_u16(vbslq_u16(_mask_vec, __b, __a)));) ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using control mask imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_pd ++#define _mm_blend_pd(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128d, a, b, \ ++ const uint64_t _mask[2] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? ~UINT64_C(0) : UINT64_C(0), \ ++ ((imm) & (1 << 1)) ? ~UINT64_C(0) : UINT64_C(0)); \ ++ uint64x2_t _mask_vec = vld1q_u64(_mask); \ ++ uint64x2_t __a = vreinterpretq_u64_m128d(_a); \ ++ uint64x2_t __b = vreinterpretq_u64_m128d(_b); _sse2neon_return( \ ++ vreinterpretq_m128d_u64(vbslq_u64(_mask_vec, __b, __a)));) ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_ps ++FORCE_INLINE __m128 _mm_blend_ps(__m128 _a, __m128 _b, const char imm8) ++{ ++ const uint32_t ALIGN_STRUCT(16) ++ data[4] = {((imm8) & (1 << 0)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0}; ++ uint32x4_t mask = vld1q_u32(data); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Blend packed 8-bit integers from a and b using mask, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_epi8 ++FORCE_INLINE __m128i _mm_blendv_epi8(__m128i _a, __m128i _b, __m128i _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint8x16_t mask = ++ vreinterpretq_u8_s8(vshrq_n_s8(vreinterpretq_s8_m128i(_mask), 7)); ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ uint8x16_t b = vreinterpretq_u8_m128i(_b); ++ return vreinterpretq_m128i_u8(vbslq_u8(mask, b, a)); ++} ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_pd ++FORCE_INLINE __m128d _mm_blendv_pd(__m128d _a, __m128d _b, __m128d _mask) ++{ ++ uint64x2_t mask = ++ vreinterpretq_u64_s64(vshrq_n_s64(vreinterpretq_s64_m128d(_mask), 63)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64(vbslq_f64(mask, b, a)); ++#else ++ uint64x2_t a = vreinterpretq_u64_m128d(_a); ++ uint64x2_t b = vreinterpretq_u64_m128d(_b); ++ return vreinterpretq_m128d_u64(vbslq_u64(mask, b, a)); ++#endif ++} ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_ps ++FORCE_INLINE __m128 _mm_blendv_ps(__m128 _a, __m128 _b, __m128 _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint32x4_t mask = ++ vreinterpretq_u32_s32(vshrq_n_s32(vreinterpretq_s32_m128(_mask), 31)); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a up ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_pd ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndpq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(ceil(f[1]), ceil(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a up to ++// an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ps ++FORCE_INLINE __m128 _mm_ceil_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndpq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ceilf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b up to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_sd ++FORCE_INLINE __m128d _mm_ceil_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_ceil_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b up to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ss ++FORCE_INLINE __m128 _mm_ceil_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_ceil_ps(b)); ++} ++ ++// Compare packed 64-bit integers in a and b for equality, and store the results ++// in dst ++FORCE_INLINE __m128i _mm_cmpeq_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vceqq_u64(vreinterpretq_u64_m128i(a), vreinterpretq_u64_m128i(b))); ++#else ++ // ARMv7 lacks vceqq_u64 ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128i_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Sign extend packed 16-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi32 ++FORCE_INLINE __m128i _mm_cvtepi16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vmovl_s16(vget_low_s16(vreinterpretq_s16_m128i(a)))); ++} ++ ++// Sign extend packed 16-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi64 ++FORCE_INLINE __m128i _mm_cvtepi16_epi64(__m128i a) ++{ ++ int16x8_t s16x8 = vreinterpretq_s16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Sign extend packed 32-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_epi64 ++FORCE_INLINE __m128i _mm_cvtepi32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a)))); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 16-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi16 ++FORCE_INLINE __m128i _mm_cvtepi8_epi16(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ return vreinterpretq_m128i_s16(s16x8); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi32 ++FORCE_INLINE __m128i _mm_cvtepi8_epi32(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_s32(s32x4); ++} ++ ++// Sign extend packed 8-bit integers in the low 8 bytes of a to packed 64-bit ++// integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi64 ++FORCE_INLINE __m128i _mm_cvtepi8_epi64(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi32 ++FORCE_INLINE __m128i _mm_cvtepu16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_u32( ++ vmovl_u16(vget_low_u16(vreinterpretq_u16_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi64 ++FORCE_INLINE __m128i _mm_cvtepu16_epi64(__m128i a) ++{ ++ uint16x8_t u16x8 = vreinterpretq_u16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Zero extend packed unsigned 32-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu32_epi64 ++FORCE_INLINE __m128i _mm_cvtepu32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_u64( ++ vmovl_u32(vget_low_u32(vreinterpretq_u32_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 16-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi16 ++FORCE_INLINE __m128i _mm_cvtepu8_epi16(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx HGFE DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0H0G 0F0E 0D0C 0B0A */ ++ return vreinterpretq_m128i_u16(u16x8); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi32 ++FORCE_INLINE __m128i _mm_cvtepu8_epi32(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_u32(u32x4); ++} ++ ++// Zero extend packed unsigned 8-bit integers in the low 8 bytes of a to packed ++// 64-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi64 ++FORCE_INLINE __m128i _mm_cvtepu8_epi64(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Conditionally multiply the packed double-precision (64-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, and ++// conditionally store the sum in dst using the low 4 bits of imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_pd ++FORCE_INLINE __m128d _mm_dp_pd(__m128d a, __m128d b, const int imm) ++{ ++ // Generate mask value from constant immediate bit value ++ const int64_t bit0Mask = imm & 0x01 ? UINT64_MAX : 0; ++ const int64_t bit1Mask = imm & 0x02 ? UINT64_MAX : 0; ++#if !SSE2NEON_PRECISE_DP ++ const int64_t bit4Mask = imm & 0x10 ? UINT64_MAX : 0; ++ const int64_t bit5Mask = imm & 0x20 ? UINT64_MAX : 0; ++#endif ++ // Conditional multiplication ++#if !SSE2NEON_PRECISE_DP ++ __m128d mul = _mm_mul_pd(a, b); ++ const __m128d mulMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit5Mask, bit4Mask)); ++ __m128d tmp = _mm_and_pd(mul, mulMask); ++#else ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double d0 = (imm & 0x10) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 0) ++ : 0; ++ double d1 = (imm & 0x20) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 1) ++ : 0; ++#else ++ double d0 = (imm & 0x10) ? ((double *) &a)[0] * ((double *) &b)[0] : 0; ++ double d1 = (imm & 0x20) ? ((double *) &a)[1] * ((double *) &b)[1] : 0; ++#endif ++ __m128d tmp = _mm_set_pd(d1, d0); ++#endif ++ // Sum the products ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double sum = vpaddd_f64(vreinterpretq_f64_m128d(tmp)); ++#else ++ double sum = *((double *) &tmp) + *(((double *) &tmp) + 1); ++#endif ++ // Conditionally store the sum ++ const __m128d sumMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit1Mask, bit0Mask)); ++ __m128d res = _mm_and_pd(_mm_set_pd1(sum), sumMask); ++ return res; ++} ++ ++// Conditionally multiply the packed single-precision (32-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, ++// and conditionally store the sum in dst using the low 4 bits of imm. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_ps ++FORCE_INLINE __m128 _mm_dp_ps(__m128 a, __m128 b, const int imm) ++{ ++ float32x4_t elementwise_prod = _mm_mul_ps(a, b); ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ /* shortcuts */ ++ if (imm == 0xFF) { ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++ ++ if ((imm & 0x0F) == 0x0F) { ++ if (!(imm & (1 << 4))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 0); ++ if (!(imm & (1 << 5))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 1); ++ if (!(imm & (1 << 6))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 2); ++ if (!(imm & (1 << 7))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 3); ++ ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++#endif ++ ++ float s = 0.0f; ++ ++ if (imm & (1 << 4)) ++ s += vgetq_lane_f32(elementwise_prod, 0); ++ if (imm & (1 << 5)) ++ s += vgetq_lane_f32(elementwise_prod, 1); ++ if (imm & (1 << 6)) ++ s += vgetq_lane_f32(elementwise_prod, 2); ++ if (imm & (1 << 7)) ++ s += vgetq_lane_f32(elementwise_prod, 3); ++ ++ const float32_t res[4] = { ++ (imm & 0x1) ? s : 0.0f, ++ (imm & 0x2) ? s : 0.0f, ++ (imm & 0x4) ? s : 0.0f, ++ (imm & 0x8) ? s : 0.0f, ++ }; ++ return vreinterpretq_m128_f32(vld1q_f32(res)); ++} ++ ++// Extract a 32-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi32 ++// FORCE_INLINE int _mm_extract_epi32(__m128i a, __constrange(0,4) int imm) ++#define _mm_extract_epi32(a, imm) \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)) ++ ++// Extract a 64-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi64 ++// FORCE_INLINE __int64 _mm_extract_epi64(__m128i a, __constrange(0,2) int imm) ++#define _mm_extract_epi64(a, imm) \ ++ vgetq_lane_s64(vreinterpretq_s64_m128i(a), (imm)) ++ ++// Extract an 8-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. FORCE_INLINE int _mm_extract_epi8(__m128i a, ++// __constrange(0,16) int imm) ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi8 ++#define _mm_extract_epi8(a, imm) vgetq_lane_u8(vreinterpretq_u8_m128i(a), (imm)) ++ ++// Extracts the selected single-precision (32-bit) floating-point from a. ++// FORCE_INLINE int _mm_extract_ps(__m128 a, __constrange(0,4) int imm) ++#define _mm_extract_ps(a, imm) vgetq_lane_s32(vreinterpretq_s32_m128(a), (imm)) ++ ++// Round the packed double-precision (64-bit) floating-point elements in a down ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_pd ++FORCE_INLINE __m128d _mm_floor_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndmq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(floor(f[1]), floor(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a down ++// to an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ps ++FORCE_INLINE __m128 _mm_floor_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndmq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(floorf(f[3]), floorf(f[2]), floorf(f[1]), floorf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b down to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_sd ++FORCE_INLINE __m128d _mm_floor_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_floor_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b down to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ss ++FORCE_INLINE __m128 _mm_floor_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_floor_ps(b)); ++} ++ ++// Copy a to dst, and insert the 32-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi32 ++// FORCE_INLINE __m128i _mm_insert_epi32(__m128i a, int b, ++// __constrange(0,4) int imm) ++#define _mm_insert_epi32(a, b, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vsetq_lane_s32((b), vreinterpretq_s32_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the 64-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi64 ++// FORCE_INLINE __m128i _mm_insert_epi64(__m128i a, __int64 b, ++// __constrange(0,2) int imm) ++#define _mm_insert_epi64(a, b, imm) \ ++ vreinterpretq_m128i_s64( \ ++ vsetq_lane_s64((b), vreinterpretq_s64_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the lower 8-bit integer from i into dst at the ++// location specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi8 ++// FORCE_INLINE __m128i _mm_insert_epi8(__m128i a, int b, ++// __constrange(0,16) int imm) ++#define _mm_insert_epi8(a, b, imm) \ ++ vreinterpretq_m128i_s8(vsetq_lane_s8((b), vreinterpretq_s8_m128i(a), (imm))) ++ ++// Copy a to tmp, then insert a single-precision (32-bit) floating-point ++// element from b into tmp using the control in imm8. Store tmp to dst using ++// the mask in imm8 (elements are zeroed out when the corresponding bit is set). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=insert_ps ++#define _mm_insert_ps(a, b, imm8) \ ++ _sse2neon_define2( \ ++ __m128, a, b, \ ++ float32x4_t tmp1 = \ ++ vsetq_lane_f32(vgetq_lane_f32(_b, (imm8 >> 6) & 0x3), \ ++ vreinterpretq_f32_m128(_a), 0); \ ++ float32x4_t tmp2 = \ ++ vsetq_lane_f32(vgetq_lane_f32(tmp1, 0), \ ++ vreinterpretq_f32_m128(_a), ((imm8 >> 4) & 0x3)); \ ++ const uint32_t data[4] = \ ++ _sse2neon_init(((imm8) & (1 << 0)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0); \ ++ uint32x4_t mask = vld1q_u32(data); \ ++ float32x4_t all_zeros = vdupq_n_f32(0); \ ++ \ ++ _sse2neon_return(vreinterpretq_m128_f32( \ ++ vbslq_f32(mask, all_zeros, vreinterpretq_f32_m128(tmp2))));) ++ ++// Compare packed signed 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi32 ++FORCE_INLINE __m128i _mm_max_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmaxq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi8 ++FORCE_INLINE __m128i _mm_max_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vmaxq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu16 ++FORCE_INLINE __m128i _mm_max_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vmaxq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_max_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vmaxq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi32 ++FORCE_INLINE __m128i _mm_min_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vminq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi8 ++FORCE_INLINE __m128i _mm_min_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vminq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu16 ++FORCE_INLINE __m128i _mm_min_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vminq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_min_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vminq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Horizontally compute the minimum amongst the packed unsigned 16-bit integers ++// in a, store the minimum and index in dst, and zero the remaining bits in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_minpos_epu16 ++FORCE_INLINE __m128i _mm_minpos_epu16(__m128i a) ++{ ++ __m128i dst; ++ uint16_t min, idx = 0; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Find the minimum value ++ min = vminvq_u16(vreinterpretq_u16_m128i(a)); ++ ++ // Get the index of the minimum value ++ static const uint16_t idxv[] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint16x8_t minv = vdupq_n_u16(min); ++ uint16x8_t cmeq = vceqq_u16(minv, vreinterpretq_u16_m128i(a)); ++ idx = vminvq_u16(vornq_u16(vld1q_u16(idxv), cmeq)); ++#else ++ // Find the minimum value ++ __m64 tmp; ++ tmp = vreinterpret_m64_u16( ++ vmin_u16(vget_low_u16(vreinterpretq_u16_m128i(a)), ++ vget_high_u16(vreinterpretq_u16_m128i(a)))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ min = vget_lane_u16(vreinterpret_u16_m64(tmp), 0); ++ // Get the index of the minimum value ++ int i; ++ for (i = 0; i < 8; i++) { ++ if (min == vgetq_lane_u16(vreinterpretq_u16_m128i(a), 0)) { ++ idx = (uint16_t) i; ++ break; ++ } ++ a = _mm_srli_si128(a, 2); ++ } ++#endif ++ // Generate result ++ dst = _mm_setzero_si128(); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(min, vreinterpretq_u16_m128i(dst), 0)); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(idx, vreinterpretq_u16_m128i(dst), 1)); ++ return dst; ++} ++ ++// Compute the sum of absolute differences (SADs) of quadruplets of unsigned ++// 8-bit integers in a compared to those in b, and store the 16-bit results in ++// dst. Eight SADs are performed using one quadruplet from b and eight ++// quadruplets from a. One quadruplet is selected from b starting at on the ++// offset specified in imm8. Eight quadruplets are formed from sequential 8-bit ++// integers selected from a starting at the offset specified in imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mpsadbw_epu8 ++FORCE_INLINE __m128i _mm_mpsadbw_epu8(__m128i a, __m128i b, const int imm) ++{ ++ uint8x16_t _a, _b; ++ ++ switch (imm & 0x4) { ++ case 0: ++ // do nothing ++ _a = vreinterpretq_u8_m128i(a); ++ break; ++ case 4: ++ _a = vreinterpretq_u8_u32(vextq_u32(vreinterpretq_u32_m128i(a), ++ vreinterpretq_u32_m128i(a), 1)); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ switch (imm & 0x3) { ++ case 0: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 0))); ++ break; ++ case 1: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 1))); ++ break; ++ case 2: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 2))); ++ break; ++ case 3: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 3))); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ int16x8_t c04, c15, c26, c37; ++ uint8x8_t low_b = vget_low_u8(_b); ++ c04 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a), low_b)); ++ uint8x16_t _a_1 = vextq_u8(_a, _a, 1); ++ c15 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_1), low_b)); ++ uint8x16_t _a_2 = vextq_u8(_a, _a, 2); ++ c26 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_2), low_b)); ++ uint8x16_t _a_3 = vextq_u8(_a, _a, 3); ++ c37 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_3), low_b)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // |0|4|2|6| ++ c04 = vpaddq_s16(c04, c26); ++ // |1|5|3|7| ++ c15 = vpaddq_s16(c15, c37); ++ ++ int32x4_t trn1_c = ++ vtrn1q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ int32x4_t trn2_c = ++ vtrn2q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ return vreinterpretq_m128i_s16(vpaddq_s16(vreinterpretq_s16_s32(trn1_c), ++ vreinterpretq_s16_s32(trn2_c))); ++#else ++ int16x4_t c01, c23, c45, c67; ++ c01 = vpadd_s16(vget_low_s16(c04), vget_low_s16(c15)); ++ c23 = vpadd_s16(vget_low_s16(c26), vget_low_s16(c37)); ++ c45 = vpadd_s16(vget_high_s16(c04), vget_high_s16(c15)); ++ c67 = vpadd_s16(vget_high_s16(c26), vget_high_s16(c37)); ++ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(c01, c23), vpadd_s16(c45, c67))); ++#endif ++} ++ ++// Multiply the low signed 32-bit integers from each packed 64-bit element in ++// a and b, and store the signed 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epi32 ++FORCE_INLINE __m128i _mm_mul_epi32(__m128i a, __m128i b) ++{ ++ // vmull_s32 upcasts instead of masking, so we downcast. ++ int32x2_t a_lo = vmovn_s64(vreinterpretq_s64_m128i(a)); ++ int32x2_t b_lo = vmovn_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vmull_s32(a_lo, b_lo)); ++} ++ ++// Multiply the packed 32-bit integers in a and b, producing intermediate 64-bit ++// integers, and store the low 32 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi32 ++FORCE_INLINE __m128i _mm_mullo_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmulq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi32 ++FORCE_INLINE __m128i _mm_packus_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcombine_u16(vqmovun_s32(vreinterpretq_s32_m128i(a)), ++ vqmovun_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_pd ++FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d a, int rounding) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndnq_f64(vreinterpretq_f64_m128d(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_pd(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_pd(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndq_f64(vreinterpretq_f64_m128d(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128d_f64(vrndiq_f64(vreinterpretq_f64_m128d(a))); ++ } ++#else ++ double *v_double = (double *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ double res[2], tmp; ++ for (int i = 0; i < 2; i++) { ++ tmp = (v_double[i] < 0) ? -v_double[i] : v_double[i]; ++ double roundDown = floor(tmp); // Round down value ++ double roundUp = ceil(tmp); // Round up value ++ double diffDown = tmp - roundDown; ++ double diffUp = roundUp - tmp; ++ if (diffDown < diffUp) { ++ /* If it's closer to the round down value, then use it */ ++ res[i] = roundDown; ++ } else if (diffDown > diffUp) { ++ /* If it's closer to the round up value, then use it */ ++ res[i] = roundUp; ++ } else { ++ /* If it's equidistant between round up and round down value, ++ * pick the one which is an even number */ ++ double half = roundDown / 2; ++ if (half != floor(half)) { ++ /* If the round down value is odd, return the round up value ++ */ ++ res[i] = roundUp; ++ } else { ++ /* If the round up value is odd, return the round down value ++ */ ++ res[i] = roundDown; ++ } ++ } ++ res[i] = (v_double[i] < 0) ? -res[i] : res[i]; ++ } ++ return _mm_set_pd(res[1], res[0]); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_pd(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_pd(a); ++ } ++ return _mm_set_pd(v_double[1] > 0 ? floor(v_double[1]) : ceil(v_double[1]), ++ v_double[0] > 0 ? floor(v_double[0]) : ceil(v_double[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed single-precision ++// floating-point elements in dst. ++// software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_round_ps ++FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128 a, int rounding) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndnq_f32(vreinterpretq_f32_m128(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_ps(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_ps(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndq_f32(vreinterpretq_f32_m128(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128_f32(vrndiq_f32(vreinterpretq_f32_m128(a))); ++ } ++#else ++ float *v_float = (float *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vbslq_s32(is_delta_half, r_even, r_normal))); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_ps(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_ps(a); ++ } ++ return _mm_set_ps(v_float[3] > 0 ? floorf(v_float[3]) : ceilf(v_float[3]), ++ v_float[2] > 0 ? floorf(v_float[2]) : ceilf(v_float[2]), ++ v_float[1] > 0 ? floorf(v_float[1]) : ceilf(v_float[1]), ++ v_float[0] > 0 ? floorf(v_float[0]) : ceilf(v_float[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b using ++// the rounding parameter, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_sd ++FORCE_INLINE __m128d _mm_round_sd(__m128d a, __m128d b, int rounding) ++{ ++ return _mm_move_sd(a, _mm_round_pd(b, rounding)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b using ++// the rounding parameter, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. Rounding is done according to the ++// rounding[3:0] parameter, which can be one of: ++// (_MM_FROUND_TO_NEAREST_INT |_MM_FROUND_NO_EXC) // round to nearest, and ++// suppress exceptions ++// (_MM_FROUND_TO_NEG_INF |_MM_FROUND_NO_EXC) // round down, and ++// suppress exceptions ++// (_MM_FROUND_TO_POS_INF |_MM_FROUND_NO_EXC) // round up, and suppress ++// exceptions ++// (_MM_FROUND_TO_ZERO |_MM_FROUND_NO_EXC) // truncate, and suppress ++// exceptions _MM_FROUND_CUR_DIRECTION // use MXCSR.RC; see ++// _MM_SET_ROUNDING_MODE ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_ss ++FORCE_INLINE __m128 _mm_round_ss(__m128 a, __m128 b, int rounding) ++{ ++ return _mm_move_ss(a, _mm_round_ps(b, rounding)); ++} ++ ++// Load 128-bits of integer data from memory into dst using a non-temporal ++// memory hint. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_load_si128 ++FORCE_INLINE __m128i _mm_stream_load_si128(__m128i *p) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ return __builtin_nontemporal_load(p); ++#else ++ return vreinterpretq_m128i_s64(vld1q_s64((int64_t *) p)); ++#endif ++} ++ ++// Compute the bitwise NOT of a and then AND with a 128-bit vector containing ++// all 1's, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_ones ++FORCE_INLINE int _mm_test_all_ones(__m128i a) ++{ ++ return (uint64_t) (vgetq_lane_s64(a, 0) & vgetq_lane_s64(a, 1)) == ++ ~(uint64_t) 0; ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_zeros ++FORCE_INLINE int _mm_test_all_zeros(__m128i a, __m128i mask) ++{ ++ int64x2_t a_and_mask = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(mask)); ++ return !(vgetq_lane_s64(a_and_mask, 0) | vgetq_lane_s64(a_and_mask, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute ++// the bitwise NOT of a and then AND with mask, and set CF to 1 if the result is ++// zero, otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_test_mix_ones_zero ++// Note: Argument names may be wrong in the Intel intrinsics guide. ++FORCE_INLINE int _mm_test_mix_ones_zeros(__m128i a, __m128i mask) ++{ ++ uint64x2_t v = vreinterpretq_u64_m128i(a); ++ uint64x2_t m = vreinterpretq_u64_m128i(mask); ++ ++ // find ones (set-bits) and zeros (clear-bits) under clip mask ++ uint64x2_t ones = vandq_u64(m, v); ++ uint64x2_t zeros = vbicq_u64(m, v); ++ ++ // If both 128-bit variables are populated (non-zero) then return 1. ++ // For comparison purposes, first compact each var down to 32-bits. ++ uint32x2_t reduced = vpmax_u32(vqmovn_u64(ones), vqmovn_u64(zeros)); ++ ++ // if folding minimum is non-zero then both vars must be non-zero ++ return (vget_lane_u32(vpmin_u32(reduced, reduced), 0) != 0); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the CF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testc_si128 ++FORCE_INLINE int _mm_testc_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vbicq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testnzc_si128 ++#define _mm_testnzc_si128(a, b) _mm_test_mix_ones_zeros(a, b) ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the ZF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testz_si128 ++FORCE_INLINE int _mm_testz_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++/* SSE4.2 */ ++ ++static const uint16_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask16b[8] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++static const uint8_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask8b[16] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++ ++/* specify the source data format */ ++#define _SIDD_UBYTE_OPS 0x00 /* unsigned 8-bit characters */ ++#define _SIDD_UWORD_OPS 0x01 /* unsigned 16-bit characters */ ++#define _SIDD_SBYTE_OPS 0x02 /* signed 8-bit characters */ ++#define _SIDD_SWORD_OPS 0x03 /* signed 16-bit characters */ ++ ++/* specify the comparison operation */ ++#define _SIDD_CMP_EQUAL_ANY 0x00 /* compare equal any: strchr */ ++#define _SIDD_CMP_RANGES 0x04 /* compare ranges */ ++#define _SIDD_CMP_EQUAL_EACH 0x08 /* compare equal each: strcmp */ ++#define _SIDD_CMP_EQUAL_ORDERED 0x0C /* compare equal ordered */ ++ ++/* specify the polarity */ ++#define _SIDD_POSITIVE_POLARITY 0x00 ++#define _SIDD_MASKED_POSITIVE_POLARITY 0x20 ++#define _SIDD_NEGATIVE_POLARITY 0x10 /* negate results */ ++#define _SIDD_MASKED_NEGATIVE_POLARITY \ ++ 0x30 /* negate results only before end of string */ ++ ++/* specify the output selection in _mm_cmpXstri */ ++#define _SIDD_LEAST_SIGNIFICANT 0x00 ++#define _SIDD_MOST_SIGNIFICANT 0x40 ++ ++/* specify the output selection in _mm_cmpXstrm */ ++#define _SIDD_BIT_MASK 0x00 ++#define _SIDD_UNIT_MASK 0x40 ++ ++/* Pattern Matching for C macros. ++ * https://github.com/pfultz2/Cloak/wiki/C-Preprocessor-tricks,-tips,-and-idioms ++ */ ++ ++/* catenate */ ++#define SSE2NEON_PRIMITIVE_CAT(a, ...) a##__VA_ARGS__ ++#define SSE2NEON_CAT(a, b) SSE2NEON_PRIMITIVE_CAT(a, b) ++ ++#define SSE2NEON_IIF(c) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_IIF_, c) ++/* run the 2nd parameter */ ++#define SSE2NEON_IIF_0(t, ...) __VA_ARGS__ ++/* run the 1st parameter */ ++#define SSE2NEON_IIF_1(t, ...) t ++ ++#define SSE2NEON_COMPL(b) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_COMPL_, b) ++#define SSE2NEON_COMPL_0 1 ++#define SSE2NEON_COMPL_1 0 ++ ++#define SSE2NEON_DEC(x) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_DEC_, x) ++#define SSE2NEON_DEC_1 0 ++#define SSE2NEON_DEC_2 1 ++#define SSE2NEON_DEC_3 2 ++#define SSE2NEON_DEC_4 3 ++#define SSE2NEON_DEC_5 4 ++#define SSE2NEON_DEC_6 5 ++#define SSE2NEON_DEC_7 6 ++#define SSE2NEON_DEC_8 7 ++#define SSE2NEON_DEC_9 8 ++#define SSE2NEON_DEC_10 9 ++#define SSE2NEON_DEC_11 10 ++#define SSE2NEON_DEC_12 11 ++#define SSE2NEON_DEC_13 12 ++#define SSE2NEON_DEC_14 13 ++#define SSE2NEON_DEC_15 14 ++#define SSE2NEON_DEC_16 15 ++ ++/* detection */ ++#define SSE2NEON_CHECK_N(x, n, ...) n ++#define SSE2NEON_CHECK(...) SSE2NEON_CHECK_N(__VA_ARGS__, 0, ) ++#define SSE2NEON_PROBE(x) x, 1, ++ ++#define SSE2NEON_NOT(x) SSE2NEON_CHECK(SSE2NEON_PRIMITIVE_CAT(SSE2NEON_NOT_, x)) ++#define SSE2NEON_NOT_0 SSE2NEON_PROBE(~) ++ ++#define SSE2NEON_BOOL(x) SSE2NEON_COMPL(SSE2NEON_NOT(x)) ++#define SSE2NEON_IF(c) SSE2NEON_IIF(SSE2NEON_BOOL(c)) ++ ++#define SSE2NEON_EAT(...) ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++#define SSE2NEON_WHEN(c) SSE2NEON_IF(c)(SSE2NEON_EXPAND, SSE2NEON_EAT) ++ ++/* recursion */ ++/* deferred expression */ ++#define SSE2NEON_EMPTY() ++#define SSE2NEON_DEFER(id) id SSE2NEON_EMPTY() ++#define SSE2NEON_OBSTRUCT(...) __VA_ARGS__ SSE2NEON_DEFER(SSE2NEON_EMPTY)() ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++ ++#define SSE2NEON_EVAL(...) \ ++ SSE2NEON_EVAL1(SSE2NEON_EVAL1(SSE2NEON_EVAL1(__VA_ARGS__))) ++#define SSE2NEON_EVAL1(...) \ ++ SSE2NEON_EVAL2(SSE2NEON_EVAL2(SSE2NEON_EVAL2(__VA_ARGS__))) ++#define SSE2NEON_EVAL2(...) \ ++ SSE2NEON_EVAL3(SSE2NEON_EVAL3(SSE2NEON_EVAL3(__VA_ARGS__))) ++#define SSE2NEON_EVAL3(...) __VA_ARGS__ ++ ++#define SSE2NEON_REPEAT(count, macro, ...) \ ++ SSE2NEON_WHEN(count) \ ++ (SSE2NEON_OBSTRUCT(SSE2NEON_REPEAT_INDIRECT)()( \ ++ SSE2NEON_DEC(count), macro, \ ++ __VA_ARGS__) SSE2NEON_OBSTRUCT(macro)(SSE2NEON_DEC(count), \ ++ __VA_ARGS__)) ++#define SSE2NEON_REPEAT_INDIRECT() SSE2NEON_REPEAT ++ ++#define SSE2NEON_SIZE_OF_byte 8 ++#define SSE2NEON_NUMBER_OF_LANES_byte 16 ++#define SSE2NEON_SIZE_OF_word 16 ++#define SSE2NEON_NUMBER_OF_LANES_word 8 ++ ++#define SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE(i, type) \ ++ mtx[i] = vreinterpretq_m128i_##type(vceqq_##type( \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)), \ ++ vreinterpretq_##type##_m128i(a))); ++ ++#define SSE2NEON_FILL_LANE(i, type) \ ++ vec_b[i] = \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)); ++ ++#define PCMPSTR_RANGES(a, b, mtx, data_type_prefix, type_prefix, size, \ ++ number_of_lanes, byte_or_word) \ ++ do { \ ++ SSE2NEON_CAT( \ ++ data_type_prefix, \ ++ SSE2NEON_CAT(size, \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(number_of_lanes, _t)))) \ ++ vec_b[number_of_lanes]; \ ++ __m128i mask = SSE2NEON_IIF(byte_or_word)( \ ++ vreinterpretq_m128i_u16(vdupq_n_u16(0xff)), \ ++ vreinterpretq_m128i_u32(vdupq_n_u32(0xffff))); \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, SSE2NEON_FILL_LANE, \ ++ SSE2NEON_CAT(type_prefix, size))) \ ++ for (int i = 0; i < number_of_lanes; i++) { \ ++ mtx[i] = SSE2NEON_CAT(vreinterpretq_m128i_u, \ ++ size)(SSE2NEON_CAT(vbslq_u, size)( \ ++ SSE2NEON_CAT(vreinterpretq_u, \ ++ SSE2NEON_CAT(size, _m128i))(mask), \ ++ SSE2NEON_CAT(vcgeq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))), \ ++ SSE2NEON_CAT(vcleq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))))); \ ++ } \ ++ } while (0) ++ ++#define PCMPSTR_EQ(a, b, mtx, size, number_of_lanes) \ ++ do { \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, \ ++ SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE, \ ++ SSE2NEON_CAT(u, size))) \ ++ } while (0) ++ ++#define SSE2NEON_CMP_EQUAL_ANY_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_any(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_any_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_RANGES_IMPL(type, data_type, us, byte_or_word) \ ++ static int _sse2neon_cmp_##us##type##_ranges(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_RANGES( \ ++ a, b, mtx, data_type, us, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), byte_or_word); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_ranges_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_EQUAL_ORDERED_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_ordered(__m128i a, int la, \ ++ __m128i b, int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_ordered_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type))))( \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), la, lb, mtx); \ ++ } ++ ++static int _sse2neon_aggregate_equal_any_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ int tmp = _sse2neon_vaddvq_u8(vreinterpretq_u8_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_equal_any_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ int tmp = _sse2neon_vaddvq_u16(vreinterpretq_u16_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ANY(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ANY(SSE2NEON_CMP_EQUAL_ANY_) ++ ++static int _sse2neon_aggregate_ranges_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ __m128i tmp = vreinterpretq_m128i_u32( ++ vshrq_n_u32(vreinterpretq_u32_m128i(mtx[j]), 16)); ++ uint32x4_t vec_res = vandq_u32(vreinterpretq_u32_m128i(mtx[j]), ++ vreinterpretq_u32_m128i(tmp)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int t = vaddvq_u32(vec_res) ? 1 : 0; ++#else ++ uint64x2_t sumh = vpaddlq_u32(vec_res); ++ int t = vgetq_lane_u64(sumh, 0) + vgetq_lane_u64(sumh, 1); ++#endif ++ res |= (t << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_ranges_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ __m128i tmp = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 8)); ++ uint16x8_t vec_res = vandq_u16(vreinterpretq_u16_m128i(mtx[j]), ++ vreinterpretq_u16_m128i(tmp)); ++ int t = _sse2neon_vaddvq_u16(vec_res) ? 1 : 0; ++ res |= (t << j); ++ } ++ return res; ++} ++ ++#define SSE2NEON_CMP_RANGES_IS_BYTE 1 ++#define SSE2NEON_CMP_RANGES_IS_WORD 0 ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_RANGES(prefix) \ ++ prefix##IMPL(byte, uint, u, prefix##IS_BYTE) \ ++ prefix##IMPL(byte, int, s, prefix##IS_BYTE) \ ++ prefix##IMPL(word, uint, u, prefix##IS_WORD) \ ++ prefix##IMPL(word, int, s, prefix##IS_WORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_RANGES(SSE2NEON_CMP_RANGES_) ++ ++#undef SSE2NEON_CMP_RANGES_IS_BYTE ++#undef SSE2NEON_CMP_RANGES_IS_WORD ++ ++static int _sse2neon_cmp_byte_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint8x16_t mtx = ++ vceqq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x10000 - (1 << la); ++ int tb = 0x10000 - (1 << lb); ++ uint8x8_t vec_mask, vec0_lo, vec0_hi, vec1_lo, vec1_hi; ++ uint8x8_t tmp_lo, tmp_hi, res_lo, res_hi; ++ vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ vec0_lo = vtst_u8(vdup_n_u8(m0), vec_mask); ++ vec0_hi = vtst_u8(vdup_n_u8(m0 >> 8), vec_mask); ++ vec1_lo = vtst_u8(vdup_n_u8(m1), vec_mask); ++ vec1_hi = vtst_u8(vdup_n_u8(m1 >> 8), vec_mask); ++ tmp_lo = vtst_u8(vdup_n_u8(tb), vec_mask); ++ tmp_hi = vtst_u8(vdup_n_u8(tb >> 8), vec_mask); ++ ++ res_lo = vbsl_u8(vec0_lo, vdup_n_u8(0), vget_low_u8(mtx)); ++ res_hi = vbsl_u8(vec0_hi, vdup_n_u8(0), vget_high_u8(mtx)); ++ res_lo = vbsl_u8(vec1_lo, tmp_lo, res_lo); ++ res_hi = vbsl_u8(vec1_hi, tmp_hi, res_hi); ++ res_lo = vand_u8(res_lo, vec_mask); ++ res_hi = vand_u8(res_hi, vec_mask); ++ ++ int res = _sse2neon_vaddv_u8(res_lo) + (_sse2neon_vaddv_u8(res_hi) << 8); ++ return res; ++} ++ ++static int _sse2neon_cmp_word_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint16x8_t mtx = ++ vceqq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x100 - (1 << la); ++ int tb = 0x100 - (1 << lb); ++ uint16x8_t vec_mask = vld1q_u16(_sse2neon_cmpestr_mask16b); ++ uint16x8_t vec0 = vtstq_u16(vdupq_n_u16(m0), vec_mask); ++ uint16x8_t vec1 = vtstq_u16(vdupq_n_u16(m1), vec_mask); ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(tb), vec_mask); ++ mtx = vbslq_u16(vec0, vdupq_n_u16(0), mtx); ++ mtx = vbslq_u16(vec1, tmp, mtx); ++ mtx = vandq_u16(mtx, vec_mask); ++ return _sse2neon_vaddvq_u16(mtx); ++} ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE 1 ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD 0 ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IMPL(size, number_of_lanes, data_type) \ ++ static int _sse2neon_aggregate_equal_ordered_##size##x##number_of_lanes( \ ++ int bound, int la, int lb, __m128i mtx[16]) \ ++ { \ ++ int res = 0; \ ++ int m1 = SSE2NEON_IIF(data_type)(0x10000, 0x100) - (1 << la); \ ++ uint##size##x8_t vec_mask = SSE2NEON_IIF(data_type)( \ ++ vld1_u##size(_sse2neon_cmpestr_mask##size##b), \ ++ vld1q_u##size(_sse2neon_cmpestr_mask##size##b)); \ ++ uint##size##x##number_of_lanes##_t vec1 = SSE2NEON_IIF(data_type)( \ ++ vcombine_u##size(vtst_u##size(vdup_n_u##size(m1), vec_mask), \ ++ vtst_u##size(vdup_n_u##size(m1 >> 8), vec_mask)), \ ++ vtstq_u##size(vdupq_n_u##size(m1), vec_mask)); \ ++ uint##size##x##number_of_lanes##_t vec_minusone = vdupq_n_u##size(-1); \ ++ uint##size##x##number_of_lanes##_t vec_zero = vdupq_n_u##size(0); \ ++ for (int j = 0; j < lb; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size(vbslq_u##size( \ ++ vec1, vec_minusone, vreinterpretq_u##size##_m128i(mtx[j]))); \ ++ } \ ++ for (int j = lb; j < bound; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size( \ ++ vbslq_u##size(vec1, vec_minusone, vec_zero)); \ ++ } \ ++ unsigned SSE2NEON_IIF(data_type)(char, short) *ptr = \ ++ (unsigned SSE2NEON_IIF(data_type)(char, short) *) mtx; \ ++ for (int i = 0; i < bound; i++) { \ ++ int val = 1; \ ++ for (int j = 0, k = i; j < bound - i && k < bound; j++, k++) \ ++ val &= ptr[k * bound + j]; \ ++ res += val << i; \ ++ } \ ++ return res; \ ++ } ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(prefix) \ ++ prefix##IMPL(8, 16, prefix##IS_UBYTE) \ ++ prefix##IMPL(16, 8, prefix##IS_UWORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(SSE2NEON_AGGREGATE_EQUAL_ORDER_) ++ ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(SSE2NEON_CMP_EQUAL_ORDERED_) ++ ++#define SSE2NEON_CMPESTR_LIST \ ++ _(CMP_UBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_UWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_SBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_SWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_UBYTE_RANGES, cmp_ubyte_ranges) \ ++ _(CMP_UWORD_RANGES, cmp_uword_ranges) \ ++ _(CMP_SBYTE_RANGES, cmp_sbyte_ranges) \ ++ _(CMP_SWORD_RANGES, cmp_sword_ranges) \ ++ _(CMP_UBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_UWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_SBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_SWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_UBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_UWORD_EQUAL_ORDERED, cmp_word_equal_ordered) \ ++ _(CMP_SBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_SWORD_EQUAL_ORDERED, cmp_word_equal_ordered) ++ ++enum { ++#define _(name, func_suffix) name, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++typedef int (*cmpestr_func_t)(__m128i a, int la, __m128i b, int lb); ++static cmpestr_func_t _sse2neon_cmpfunc_table[] = { ++#define _(name, func_suffix) _sse2neon_##func_suffix, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++ ++FORCE_INLINE int _sse2neon_sido_negative(int res, int lb, int imm8, int bound) ++{ ++ switch (imm8 & 0x30) { ++ case _SIDD_NEGATIVE_POLARITY: ++ res ^= 0xffffffff; ++ break; ++ case _SIDD_MASKED_NEGATIVE_POLARITY: ++ res ^= (1 << lb) - 1; ++ break; ++ default: ++ break; ++ } ++ ++ return res & ((bound == 8) ? 0xFF : 0xFFFF); ++} ++ ++FORCE_INLINE int _sse2neon_clz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanReverse(&cnt, x)) ++ return 31 - cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_clz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanForward(&cnt, x)) ++ return cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_ctz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctzll(unsigned long long x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt; ++#if defined(SSE2NEON_HAS_BITSCAN64) ++ if (_BitScanForward64(&cnt, x)) ++ return (int) (cnt); ++#else ++ if (_BitScanForward(&cnt, (unsigned long) (x))) ++ return (int) cnt; ++ if (_BitScanForward(&cnt, (unsigned long) (x >> 32))) ++ return (int) (cnt + 32); ++#endif /* SSE2NEON_HAS_BITSCAN64 */ ++ return 64; ++#else /* assume GNU compatible compilers */ ++ return x != 0 ? __builtin_ctzll(x) : 64; ++#endif ++} ++ ++#define SSE2NEON_MIN(x, y) (x) < (y) ? (x) : (y) ++ ++#define SSE2NEON_CMPSTR_SET_UPPER(var, imm) \ ++ const int var = (imm & 0x01) ? 8 : 16 ++ ++#define SSE2NEON_CMPESTRX_LEN_PAIR(a, b, la, lb) \ ++ int tmp1 = la ^ (la >> 31); \ ++ la = tmp1 - (la >> 31); \ ++ int tmp2 = lb ^ (lb >> 31); \ ++ lb = tmp2 - (lb >> 31); \ ++ la = SSE2NEON_MIN(la, bound); \ ++ lb = SSE2NEON_MIN(lb, bound) ++ ++// Compare all pairs of character in string a and b, ++// then aggregate the result. ++// As the only difference of PCMPESTR* and PCMPISTR* is the way to calculate the ++// length of string, we use SSE2NEON_CMP{I,E}STRX_GET_LEN to get the length of ++// string a and b. ++#define SSE2NEON_COMP_AGG(a, b, la, lb, imm8, IE) \ ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); \ ++ SSE2NEON_##IE##_LEN_PAIR(a, b, la, lb); \ ++ int r2 = (_sse2neon_cmpfunc_table[imm8 & 0x0f])(a, la, b, lb); \ ++ r2 = _sse2neon_sido_negative(r2, lb, imm8, bound) ++ ++#define SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8) \ ++ return (r2 == 0) ? bound \ ++ : ((imm8 & 0x40) ? (31 - _sse2neon_clz(r2)) \ ++ : _sse2neon_ctz(r2)) ++ ++#define SSE2NEON_CMPSTR_GENERATE_MASK(dst) \ ++ __m128i dst = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ if (imm8 & 0x40) { \ ++ if (bound == 8) { \ ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(r2), \ ++ vld1q_u16(_sse2neon_cmpestr_mask16b)); \ ++ dst = vreinterpretq_m128i_u16(vbslq_u16( \ ++ tmp, vdupq_n_u16(-1), vreinterpretq_u16_m128i(dst))); \ ++ } else { \ ++ uint8x16_t vec_r2 = \ ++ vcombine_u8(vdup_n_u8(r2), vdup_n_u8(r2 >> 8)); \ ++ uint8x16_t tmp = \ ++ vtstq_u8(vec_r2, vld1q_u8(_sse2neon_cmpestr_mask8b)); \ ++ dst = vreinterpretq_m128i_u8( \ ++ vbslq_u8(tmp, vdupq_n_u8(-1), vreinterpretq_u8_m128i(dst))); \ ++ } \ ++ } else { \ ++ if (bound == 16) { \ ++ dst = vreinterpretq_m128i_u16( \ ++ vsetq_lane_u16(r2 & 0xffff, vreinterpretq_u16_m128i(dst), 0)); \ ++ } else { \ ++ dst = vreinterpretq_m128i_u8( \ ++ vsetq_lane_u8(r2 & 0xff, vreinterpretq_u8_m128i(dst), 0)); \ ++ } \ ++ } \ ++ return dst ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and returns 1 if b did not contain a null character and the ++// resulting mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestra ++FORCE_INLINE int _mm_cmpestra(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ int lb_cpy = lb; ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return !r2 & (lb_cpy > bound); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrc ++FORCE_INLINE int _mm_cmpestrc(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestri ++FORCE_INLINE int _mm_cmpestri(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrm ++FORCE_INLINE __m128i ++_mm_cmpestrm(__m128i a, int la, __m128i b, int lb, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestro ++FORCE_INLINE int _mm_cmpestro(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrs ++FORCE_INLINE int _mm_cmpestrs(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) lb; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrz ++FORCE_INLINE int _mm_cmpestrz(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) la; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return lb <= (bound - 1); ++} ++ ++#define SSE2NEON_CMPISTRX_LENGTH(str, len, imm8) \ ++ do { \ ++ if (imm8 & 0x01) { \ ++ uint16x8_t equal_mask_##str = \ ++ vceqq_u16(vreinterpretq_u16_m128i(str), vdupq_n_u16(0)); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 3; \ ++ } else { \ ++ uint16x8_t equal_mask_##str = vreinterpretq_u16_u8( \ ++ vceqq_u8(vreinterpretq_u8_m128i(str), vdupq_n_u8(0))); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 2; \ ++ } \ ++ } while (0) ++ ++#define SSE2NEON_CMPISTRX_LEN_PAIR(a, b, la, lb) \ ++ int la, lb; \ ++ do { \ ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); \ ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); \ ++ } while (0) ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if b did not contain a null character and the resulting ++// mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistra ++FORCE_INLINE int _mm_cmpistra(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return !r2 & (lb >= bound); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrc ++FORCE_INLINE int _mm_cmpistrc(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistri ++FORCE_INLINE int _mm_cmpistri(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrm ++FORCE_INLINE __m128i _mm_cmpistrm(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistro ++FORCE_INLINE int _mm_cmpistro(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrs ++FORCE_INLINE int _mm_cmpistrs(__m128i a, __m128i b, const int imm8) ++{ ++ (void) b; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int la; ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrz ++FORCE_INLINE int _mm_cmpistrz(__m128i a, __m128i b, const int imm8) ++{ ++ (void) a; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int lb; ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); ++ return lb <= (bound - 1); ++} ++ ++// Compares the 2 signed 64-bit integers in a and the 2 signed 64-bit integers ++// in b for greater than. ++FORCE_INLINE __m128i _mm_cmpgt_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vcgtq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ return vreinterpretq_m128i_s64(vshrq_n_s64( ++ vqsubq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)), ++ 63)); ++#endif ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 16-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u16 ++FORCE_INLINE uint32_t _mm_crc32_u16(uint32_t crc, uint16_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32ch %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32ch(crc, v); ++#else ++ crc = _mm_crc32_u8(crc, v & 0xff); ++ crc = _mm_crc32_u8(crc, (v >> 8) & 0xff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 32-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u32 ++FORCE_INLINE uint32_t _mm_crc32_u32(uint32_t crc, uint32_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cw %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cw(crc, v); ++#else ++ crc = _mm_crc32_u16(crc, v & 0xffff); ++ crc = _mm_crc32_u16(crc, (v >> 16) & 0xffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 64-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u64 ++FORCE_INLINE uint64_t _mm_crc32_u64(uint64_t crc, uint64_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cx %w[c], %w[c], %x[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cd((uint32_t) crc, v); ++#else ++ crc = _mm_crc32_u32((uint32_t) (crc), v & 0xffffffff); ++ crc = _mm_crc32_u32((uint32_t) (crc), (v >> 32) & 0xffffffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 8-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u8 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t crc, uint8_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cb %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cb(crc, v); ++#else ++ crc ^= v; ++#if defined(__ARM_FEATURE_CRYPTO) ++ // Adapted from: https://mary.rs/lab/crc32/ ++ // Barrent reduction ++ uint64x2_t orig = ++ vcombine_u64(vcreate_u64((uint64_t) (crc) << 24), vcreate_u64(0x0)); ++ uint64x2_t tmp = orig; ++ ++ // Polynomial P(x) of CRC32C ++ uint64_t p = 0x105EC76F1; ++ // Barrett Reduction (in bit-reflected form) constant mu_{64} = \lfloor ++ // 2^{64} / P(x) \rfloor = 0x11f91caf6 ++ uint64_t mu = 0x1dea713f1; ++ ++ // Multiply by mu_{64} ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(mu)); ++ // Divide by 2^{64} (mask away the unnecessary bits) ++ tmp = ++ vandq_u64(tmp, vcombine_u64(vcreate_u64(0xFFFFFFFF), vcreate_u64(0x0))); ++ // Multiply by P(x) (shifted left by 1 for alignment reasons) ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(p)); ++ // Subtract original from result ++ tmp = veorq_u64(tmp, orig); ++ ++ // Extract the 'lower' (in bit-reflected sense) 32 bits ++ crc = vgetq_lane_u32(vreinterpretq_u32_u64(tmp), 1); ++#else // Fall back to the generic table lookup approach ++ // Adapted from: https://create.stephan-brumme.com/crc32/ ++ // Apply half-byte comparison algorithm for the best ratio between ++ // performance and lookup table. ++ ++ // The lookup table just needs to store every 16th entry ++ // of the standard look-up table. ++ static const uint32_t crc32_half_byte_tbl[] = { ++ 0x00000000, 0x105ec76f, 0x20bd8ede, 0x30e349b1, 0x417b1dbc, 0x5125dad3, ++ 0x61c69362, 0x7198540d, 0x82f63b78, 0x92a8fc17, 0xa24bb5a6, 0xb21572c9, ++ 0xc38d26c4, 0xd3d3e1ab, 0xe330a81a, 0xf36e6f75, ++ }; ++ ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++#endif ++#endif ++ return crc; ++} ++ ++/* AES */ ++ ++#if !defined(__ARM_FEATURE_CRYPTO) && (!defined(_M_ARM64) || defined(__clang__)) ++/* clang-format off */ ++#define SSE2NEON_AES_SBOX(w) \ ++ { \ ++ w(0x63), w(0x7c), w(0x77), w(0x7b), w(0xf2), w(0x6b), w(0x6f), \ ++ w(0xc5), w(0x30), w(0x01), w(0x67), w(0x2b), w(0xfe), w(0xd7), \ ++ w(0xab), w(0x76), w(0xca), w(0x82), w(0xc9), w(0x7d), w(0xfa), \ ++ w(0x59), w(0x47), w(0xf0), w(0xad), w(0xd4), w(0xa2), w(0xaf), \ ++ w(0x9c), w(0xa4), w(0x72), w(0xc0), w(0xb7), w(0xfd), w(0x93), \ ++ w(0x26), w(0x36), w(0x3f), w(0xf7), w(0xcc), w(0x34), w(0xa5), \ ++ w(0xe5), w(0xf1), w(0x71), w(0xd8), w(0x31), w(0x15), w(0x04), \ ++ w(0xc7), w(0x23), w(0xc3), w(0x18), w(0x96), w(0x05), w(0x9a), \ ++ w(0x07), w(0x12), w(0x80), w(0xe2), w(0xeb), w(0x27), w(0xb2), \ ++ w(0x75), w(0x09), w(0x83), w(0x2c), w(0x1a), w(0x1b), w(0x6e), \ ++ w(0x5a), w(0xa0), w(0x52), w(0x3b), w(0xd6), w(0xb3), w(0x29), \ ++ w(0xe3), w(0x2f), w(0x84), w(0x53), w(0xd1), w(0x00), w(0xed), \ ++ w(0x20), w(0xfc), w(0xb1), w(0x5b), w(0x6a), w(0xcb), w(0xbe), \ ++ w(0x39), w(0x4a), w(0x4c), w(0x58), w(0xcf), w(0xd0), w(0xef), \ ++ w(0xaa), w(0xfb), w(0x43), w(0x4d), w(0x33), w(0x85), w(0x45), \ ++ w(0xf9), w(0x02), w(0x7f), w(0x50), w(0x3c), w(0x9f), w(0xa8), \ ++ w(0x51), w(0xa3), w(0x40), w(0x8f), w(0x92), w(0x9d), w(0x38), \ ++ w(0xf5), w(0xbc), w(0xb6), w(0xda), w(0x21), w(0x10), w(0xff), \ ++ w(0xf3), w(0xd2), w(0xcd), w(0x0c), w(0x13), w(0xec), w(0x5f), \ ++ w(0x97), w(0x44), w(0x17), w(0xc4), w(0xa7), w(0x7e), w(0x3d), \ ++ w(0x64), w(0x5d), w(0x19), w(0x73), w(0x60), w(0x81), w(0x4f), \ ++ w(0xdc), w(0x22), w(0x2a), w(0x90), w(0x88), w(0x46), w(0xee), \ ++ w(0xb8), w(0x14), w(0xde), w(0x5e), w(0x0b), w(0xdb), w(0xe0), \ ++ w(0x32), w(0x3a), w(0x0a), w(0x49), w(0x06), w(0x24), w(0x5c), \ ++ w(0xc2), w(0xd3), w(0xac), w(0x62), w(0x91), w(0x95), w(0xe4), \ ++ w(0x79), w(0xe7), w(0xc8), w(0x37), w(0x6d), w(0x8d), w(0xd5), \ ++ w(0x4e), w(0xa9), w(0x6c), w(0x56), w(0xf4), w(0xea), w(0x65), \ ++ w(0x7a), w(0xae), w(0x08), w(0xba), w(0x78), w(0x25), w(0x2e), \ ++ w(0x1c), w(0xa6), w(0xb4), w(0xc6), w(0xe8), w(0xdd), w(0x74), \ ++ w(0x1f), w(0x4b), w(0xbd), w(0x8b), w(0x8a), w(0x70), w(0x3e), \ ++ w(0xb5), w(0x66), w(0x48), w(0x03), w(0xf6), w(0x0e), w(0x61), \ ++ w(0x35), w(0x57), w(0xb9), w(0x86), w(0xc1), w(0x1d), w(0x9e), \ ++ w(0xe1), w(0xf8), w(0x98), w(0x11), w(0x69), w(0xd9), w(0x8e), \ ++ w(0x94), w(0x9b), w(0x1e), w(0x87), w(0xe9), w(0xce), w(0x55), \ ++ w(0x28), w(0xdf), w(0x8c), w(0xa1), w(0x89), w(0x0d), w(0xbf), \ ++ w(0xe6), w(0x42), w(0x68), w(0x41), w(0x99), w(0x2d), w(0x0f), \ ++ w(0xb0), w(0x54), w(0xbb), w(0x16) \ ++ } ++#define SSE2NEON_AES_RSBOX(w) \ ++ { \ ++ w(0x52), w(0x09), w(0x6a), w(0xd5), w(0x30), w(0x36), w(0xa5), \ ++ w(0x38), w(0xbf), w(0x40), w(0xa3), w(0x9e), w(0x81), w(0xf3), \ ++ w(0xd7), w(0xfb), w(0x7c), w(0xe3), w(0x39), w(0x82), w(0x9b), \ ++ w(0x2f), w(0xff), w(0x87), w(0x34), w(0x8e), w(0x43), w(0x44), \ ++ w(0xc4), w(0xde), w(0xe9), w(0xcb), w(0x54), w(0x7b), w(0x94), \ ++ w(0x32), w(0xa6), w(0xc2), w(0x23), w(0x3d), w(0xee), w(0x4c), \ ++ w(0x95), w(0x0b), w(0x42), w(0xfa), w(0xc3), w(0x4e), w(0x08), \ ++ w(0x2e), w(0xa1), w(0x66), w(0x28), w(0xd9), w(0x24), w(0xb2), \ ++ w(0x76), w(0x5b), w(0xa2), w(0x49), w(0x6d), w(0x8b), w(0xd1), \ ++ w(0x25), w(0x72), w(0xf8), w(0xf6), w(0x64), w(0x86), w(0x68), \ ++ w(0x98), w(0x16), w(0xd4), w(0xa4), w(0x5c), w(0xcc), w(0x5d), \ ++ w(0x65), w(0xb6), w(0x92), w(0x6c), w(0x70), w(0x48), w(0x50), \ ++ w(0xfd), w(0xed), w(0xb9), w(0xda), w(0x5e), w(0x15), w(0x46), \ ++ w(0x57), w(0xa7), w(0x8d), w(0x9d), w(0x84), w(0x90), w(0xd8), \ ++ w(0xab), w(0x00), w(0x8c), w(0xbc), w(0xd3), w(0x0a), w(0xf7), \ ++ w(0xe4), w(0x58), w(0x05), w(0xb8), w(0xb3), w(0x45), w(0x06), \ ++ w(0xd0), w(0x2c), w(0x1e), w(0x8f), w(0xca), w(0x3f), w(0x0f), \ ++ w(0x02), w(0xc1), w(0xaf), w(0xbd), w(0x03), w(0x01), w(0x13), \ ++ w(0x8a), w(0x6b), w(0x3a), w(0x91), w(0x11), w(0x41), w(0x4f), \ ++ w(0x67), w(0xdc), w(0xea), w(0x97), w(0xf2), w(0xcf), w(0xce), \ ++ w(0xf0), w(0xb4), w(0xe6), w(0x73), w(0x96), w(0xac), w(0x74), \ ++ w(0x22), w(0xe7), w(0xad), w(0x35), w(0x85), w(0xe2), w(0xf9), \ ++ w(0x37), w(0xe8), w(0x1c), w(0x75), w(0xdf), w(0x6e), w(0x47), \ ++ w(0xf1), w(0x1a), w(0x71), w(0x1d), w(0x29), w(0xc5), w(0x89), \ ++ w(0x6f), w(0xb7), w(0x62), w(0x0e), w(0xaa), w(0x18), w(0xbe), \ ++ w(0x1b), w(0xfc), w(0x56), w(0x3e), w(0x4b), w(0xc6), w(0xd2), \ ++ w(0x79), w(0x20), w(0x9a), w(0xdb), w(0xc0), w(0xfe), w(0x78), \ ++ w(0xcd), w(0x5a), w(0xf4), w(0x1f), w(0xdd), w(0xa8), w(0x33), \ ++ w(0x88), w(0x07), w(0xc7), w(0x31), w(0xb1), w(0x12), w(0x10), \ ++ w(0x59), w(0x27), w(0x80), w(0xec), w(0x5f), w(0x60), w(0x51), \ ++ w(0x7f), w(0xa9), w(0x19), w(0xb5), w(0x4a), w(0x0d), w(0x2d), \ ++ w(0xe5), w(0x7a), w(0x9f), w(0x93), w(0xc9), w(0x9c), w(0xef), \ ++ w(0xa0), w(0xe0), w(0x3b), w(0x4d), w(0xae), w(0x2a), w(0xf5), \ ++ w(0xb0), w(0xc8), w(0xeb), w(0xbb), w(0x3c), w(0x83), w(0x53), \ ++ w(0x99), w(0x61), w(0x17), w(0x2b), w(0x04), w(0x7e), w(0xba), \ ++ w(0x77), w(0xd6), w(0x26), w(0xe1), w(0x69), w(0x14), w(0x63), \ ++ w(0x55), w(0x21), w(0x0c), w(0x7d) \ ++ } ++/* clang-format on */ ++ ++/* X Macro trick. See https://en.wikipedia.org/wiki/X_Macro */ ++#define SSE2NEON_AES_H0(x) (x) ++static const uint8_t _sse2neon_sbox[256] = SSE2NEON_AES_SBOX(SSE2NEON_AES_H0); ++static const uint8_t _sse2neon_rsbox[256] = SSE2NEON_AES_RSBOX(SSE2NEON_AES_H0); ++#undef SSE2NEON_AES_H0 ++ ++/* x_time function and matrix multiply function */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#define SSE2NEON_XT(x) (((x) << 1) ^ ((((x) >> 7) & 1) * 0x1b)) ++#define SSE2NEON_MULTIPLY(x, y) \ ++ (((y & 1) * x) ^ ((y >> 1 & 1) * SSE2NEON_XT(x)) ^ \ ++ ((y >> 2 & 1) * SSE2NEON_XT(SSE2NEON_XT(x))) ^ \ ++ ((y >> 3 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))) ^ \ ++ ((y >> 4 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))))) ++#endif ++ ++// In the absence of crypto extensions, implement aesenc using regular NEON ++// intrinsics instead. See: ++// https://www.workofard.com/2017/01/accelerated-aes-for-the-arm64-linux-kernel/ ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/ and ++// for more information. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ /* shift rows */ ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ /* sub bytes */ ++ // Here, we separate the whole 256-bytes table into 4 64-bytes tables, and ++ // look up each of the table. After each lookup, we load the next table ++ // which locates at the next 64-bytes. In the meantime, the index in the ++ // table would be smaller than it was, so the index parameters of ++ // `vqtbx4q_u8()` need to be added the same constant as the loaded tables. ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ // 'w-0x40' equals to 'vsubq_u8(w, vdupq_n_u8(0x40))' ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ /* mix columns */ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ /* add round key */ ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A implementation for a table-based AES */ ++#define SSE2NEON_AES_B2W(b0, b1, b2, b3) \ ++ (((uint32_t) (b3) << 24) | ((uint32_t) (b2) << 16) | \ ++ ((uint32_t) (b1) << 8) | (uint32_t) (b0)) ++// multiplying 'x' by 2 in GF(2^8) ++#define SSE2NEON_AES_F2(x) ((x << 1) ^ (((x >> 7) & 1) * 0x011b /* WPOLY */)) ++// multiplying 'x' by 3 in GF(2^8) ++#define SSE2NEON_AES_F3(x) (SSE2NEON_AES_F2(x) ^ x) ++#define SSE2NEON_AES_U0(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F2(p), p, p, SSE2NEON_AES_F3(p)) ++#define SSE2NEON_AES_U1(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p, p) ++#define SSE2NEON_AES_U2(p) \ ++ SSE2NEON_AES_B2W(p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p) ++#define SSE2NEON_AES_U3(p) \ ++ SSE2NEON_AES_B2W(p, p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p)) ++ ++ // this generates a table containing every possible permutation of ++ // shift_rows() and sub_bytes() with mix_columns(). ++ static const uint32_t ALIGN_STRUCT(16) aes_table[4][256] = { ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U0), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U1), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U2), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U3), ++ }; ++#undef SSE2NEON_AES_B2W ++#undef SSE2NEON_AES_F2 ++#undef SSE2NEON_AES_F3 ++#undef SSE2NEON_AES_U0 ++#undef SSE2NEON_AES_U1 ++#undef SSE2NEON_AES_U2 ++#undef SSE2NEON_AES_U3 ++ ++ uint32_t x0 = _mm_cvtsi128_si32(a); // get a[31:0] ++ uint32_t x1 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); // get a[63:32] ++ uint32_t x2 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xAA)); // get a[95:64] ++ uint32_t x3 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); // get a[127:96] ++ ++ // finish the modulo addition step in mix_columns() ++ __m128i out = _mm_set_epi32( ++ (aes_table[0][x3 & 0xff] ^ aes_table[1][(x0 >> 8) & 0xff] ^ ++ aes_table[2][(x1 >> 16) & 0xff] ^ aes_table[3][x2 >> 24]), ++ (aes_table[0][x2 & 0xff] ^ aes_table[1][(x3 >> 8) & 0xff] ^ ++ aes_table[2][(x0 >> 16) & 0xff] ^ aes_table[3][x1 >> 24]), ++ (aes_table[0][x1 & 0xff] ^ aes_table[1][(x2 >> 8) & 0xff] ^ ++ aes_table[2][(x3 >> 16) & 0xff] ^ aes_table[3][x0 >> 24]), ++ (aes_table[0][x0 & 0xff] ^ aes_table[1][(x1 >> 8) & 0xff] ^ ++ aes_table[2][(x2 >> 16) & 0xff] ^ aes_table[3][x3 >> 24])); ++ ++ return _mm_xor_si128(out, RoundKey); ++#endif ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // inverse mix columns ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & ++ 0x1b); // multiplying 'v' by 2 in GF(2^8) ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ // inverse mix columns ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ // sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A implementation */ ++ uint8_t v[16] = { ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 0)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 5)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 10)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 15)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 4)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 9)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 14)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 3)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 8)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 13)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 2)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 7)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 12)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 1)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 6)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 11)], ++ }; ++ ++ return vreinterpretq_m128i_u8(vld1q_u8(v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (int i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++#if defined(__aarch64__) ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ uint8x16_t v = vreinterpretq_u8_m128i(a); ++ uint8x16_t w; ++ ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ // multiplying 'v' by 2 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ return vreinterpretq_m128i_u8(w); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ vst1q_u8((uint8_t *) v, vreinterpretq_u8_m128i(a)); ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)); ++#endif ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++// ++// Emits the Advanced Encryption Standard (AES) instruction aeskeygenassist. ++// This instruction generates a round key for AES encryption. See ++// https://kazakov.life/2017/11/01/cryptocurrency-mining-on-ios-devices/ ++// for details. ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++#if defined(__aarch64__) ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); ++ uint8x16_t v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), _a); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), _a - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), _a - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), _a - 0xc0); ++ ++ uint32x4_t v_u32 = vreinterpretq_u32_u8(v); ++ uint32x4_t ror_v = vorrq_u32(vshrq_n_u32(v_u32, 8), vshlq_n_u32(v_u32, 24)); ++ uint32x4_t ror_xor_v = veorq_u32(ror_v, vdupq_n_u32(rcon)); ++ ++ return vreinterpretq_m128i_u32(vtrn2q_u32(v_u32, ror_xor_v)); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint32_t X1 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); ++ uint32_t X3 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); ++ for (int i = 0; i < 4; ++i) { ++ ((uint8_t *) &X1)[i] = _sse2neon_sbox[((uint8_t *) &X1)[i]]; ++ ((uint8_t *) &X3)[i] = _sse2neon_sbox[((uint8_t *) &X3)[i]]; ++ } ++ return _mm_set_epi32(((X3 >> 8) | (X3 << 24)) ^ rcon, X3, ++ ((X1 >> 8) | (X1 << 24)) ^ rcon, X1); ++#endif ++} ++#undef SSE2NEON_AES_SBOX ++#undef SSE2NEON_AES_RSBOX ++ ++#if defined(__aarch64__) ++#undef SSE2NEON_XT ++#undef SSE2NEON_MULTIPLY ++#endif ++ ++#else /* __ARM_FEATURE_CRYPTO */ ++// Implements equivalent of 'aesenc' by combining AESE (with an empty key) and ++// AESMC and then manually applying the real key as an xor operation. This ++// unfortunately means an additional xor op; the compiler should be able to ++// optimize this away for repeated calls however. See ++// https://blog.michaelbrase.com/2018/05/08/emulating-x86-aes-intrinsics-on-armv8-a ++// for more details. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesmcq_u8(vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(b))); ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesimcq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return _mm_xor_si128(vreinterpretq_m128i_u8(vaeseq_u8( ++ vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ RoundKey); ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8( ++ veorq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++ return vreinterpretq_m128i_u8(vaesimcq_u8(vreinterpretq_u8_m128i(a))); ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst." ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++ // AESE does ShiftRows and SubBytes on A ++ uint8x16_t u8 = vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)); ++ ++#ifndef _MSC_VER ++ uint8x16_t dest = { ++ // Undo ShiftRows step from AESE and extract X1 and X3 ++ u8[0x4], u8[0x1], u8[0xE], u8[0xB], // SubBytes(X1) ++ u8[0x1], u8[0xE], u8[0xB], u8[0x4], // ROT(SubBytes(X1)) ++ u8[0xC], u8[0x9], u8[0x6], u8[0x3], // SubBytes(X3) ++ u8[0x9], u8[0x6], u8[0x3], u8[0xC], // ROT(SubBytes(X3)) ++ }; ++ uint32x4_t r = {0, (unsigned) rcon, 0, (unsigned) rcon}; ++ return vreinterpretq_m128i_u8(dest) ^ vreinterpretq_m128i_u32(r); ++#else ++ // We have to do this hack because MSVC is strictly adhering to the CPP ++ // standard, in particular C++03 8.5.1 sub-section 15, which states that ++ // unions must be initialized by their first member type. ++ ++ // As per the Windows ARM64 ABI, it is always little endian, so this works ++ __n128 dest{ ++ ((uint64_t) u8.n128_u8[0x4] << 0) | ((uint64_t) u8.n128_u8[0x1] << 8) | ++ ((uint64_t) u8.n128_u8[0xE] << 16) | ++ ((uint64_t) u8.n128_u8[0xB] << 24) | ++ ((uint64_t) u8.n128_u8[0x1] << 32) | ++ ((uint64_t) u8.n128_u8[0xE] << 40) | ++ ((uint64_t) u8.n128_u8[0xB] << 48) | ++ ((uint64_t) u8.n128_u8[0x4] << 56), ++ ((uint64_t) u8.n128_u8[0xC] << 0) | ((uint64_t) u8.n128_u8[0x9] << 8) | ++ ((uint64_t) u8.n128_u8[0x6] << 16) | ++ ((uint64_t) u8.n128_u8[0x3] << 24) | ++ ((uint64_t) u8.n128_u8[0x9] << 32) | ++ ((uint64_t) u8.n128_u8[0x6] << 40) | ++ ((uint64_t) u8.n128_u8[0x3] << 48) | ++ ((uint64_t) u8.n128_u8[0xC] << 56)}; ++ ++ dest.n128_u32[1] = dest.n128_u32[1] ^ rcon; ++ dest.n128_u32[3] = dest.n128_u32[3] ^ rcon; ++ ++ return dest; ++#endif ++} ++#endif ++ ++/* Others */ ++ ++// Perform a carry-less multiplication of two 64-bit integers, selected from a ++// and b according to imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clmulepi64_si128 ++FORCE_INLINE __m128i _mm_clmulepi64_si128(__m128i _a, __m128i _b, const int imm) ++{ ++ uint64x2_t a = vreinterpretq_u64_m128i(_a); ++ uint64x2_t b = vreinterpretq_u64_m128i(_b); ++ switch (imm & 0x11) { ++ case 0x00: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_low_u64(b))); ++ case 0x01: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_low_u64(b))); ++ case 0x10: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_high_u64(b))); ++ case 0x11: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_high_u64(b))); ++ default: ++ abort(); ++ } ++} ++ ++FORCE_INLINE unsigned int _sse2neon_mm_get_denormals_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_DENORMALS_ZERO_ON : _MM_DENORMALS_ZERO_OFF; ++} ++ ++// Count the number of bits set to 1 in unsigned 32-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u32 ++FORCE_INLINE int _mm_popcnt_u32(unsigned int a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcount) ++ return __builtin_popcount(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits(a); ++#else ++ return (int) vaddlv_u8(vcnt_u8(vcreate_u8((uint64_t) a))); ++#endif ++#else ++ uint32_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ ++ vst1_u32(&count, count32x2_val); ++ return count; ++#endif ++} ++ ++// Count the number of bits set to 1 in unsigned 64-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u64 ++FORCE_INLINE int64_t _mm_popcnt_u64(uint64_t a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcountll) ++ return __builtin_popcountll(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits64(a); ++#else ++ return (int64_t) vaddlv_u8(vcnt_u8(vcreate_u8(a))); ++#endif ++#else ++ uint64_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ uint64x1_t count64x1_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ count64x1_val = vpaddl_u32(count32x2_val); ++ vst1_u64(&count, count64x1_val); ++ return count; ++#endif ++} ++ ++FORCE_INLINE void _sse2neon_mm_set_denormals_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_DENORMALS_ZERO_MASK) == _MM_DENORMALS_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Return the current 64-bit value of the processor's time-stamp counter. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=rdtsc ++FORCE_INLINE uint64_t _rdtsc(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t val; ++ ++ /* According to ARM DDI 0487F.c, from Armv8.0 to Armv8.5 inclusive, the ++ * system counter is at least 56 bits wide; from Armv8.6, the counter ++ * must be 64 bits wide. So the system counter could be less than 64 ++ * bits wide and it is attributed with the flag 'cap_user_time_short' ++ * is true. ++ */ ++#if defined(_MSC_VER) ++ val = _ReadStatusReg(ARM64_SYSREG(3, 3, 14, 0, 2)); ++#else ++ __asm__ __volatile__("mrs %0, cntvct_el0" : "=r"(val)); ++#endif ++ ++ return val; ++#else ++ uint32_t pmccntr, pmuseren, pmcntenset; ++ // Read the user mode Performance Monitoring Unit (PMU) ++ // User Enable Register (PMUSERENR) access permissions. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c14, 0" : "=r"(pmuseren)); ++ if (pmuseren & 1) { // Allows reading PMUSERENR for user mode code. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c12, 1" : "=r"(pmcntenset)); ++ if (pmcntenset & 0x80000000UL) { // Is it counting? ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c13, 0" : "=r"(pmccntr)); ++ // The counter is set up to count every 64th cycle ++ return (uint64_t) (pmccntr) << 6; ++ } ++ } ++ ++ // Fallback to syscall as we can't enable PMUSERENR in user mode. ++ struct timeval tv; ++ gettimeofday(&tv, NULL); ++ return (uint64_t) (tv.tv_sec) * 1000000 + tv.tv_usec; ++#endif ++} ++ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma pop_macro("ALIGN_STRUCT") ++#pragma pop_macro("FORCE_INLINE") ++#pragma pop_macro("FORCE_INLINE_OPTNONE") ++#endif ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma GCC pop_options ++#endif ++ ++#endif +diff --git c/src/Makefile i/src/Makefile +index 3ed6c1c..82bb3b7 100644 +--- c/src/Makefile ++++ i/src/Makefile +@@ -50,7 +50,7 @@ endif + $(ABPOA_DIR)/lib/libabpoa.a: + echo $(CC) + echo "^^CC" +- cd $(ABPOA_DIR) && make sse2=true PREFIX=. CC="$(CC)" $(ZLPATH) lib/libabpoa.a ++ cd $(ABPOA_DIR) && make sse2= PREFIX=. CC="$(CC)" $(ZLPATH) lib/libabpoa.a + + testmsa: TestMSA.cpp + $(CXX) $(CFLAGS) -o $@ $^ -L $(CONDA_PREFIX)/lib $(LIBS) -I $(ABPOA_DIR)/include -L $(ABPOA_DIR)/lib -labpoa -lrt -L$(mchaisso)/software/lib From 70b40709b1500c27c02eac0d6bebfe5f88c85067 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 12:12:13 -0400 Subject: [PATCH 0456/1514] Update haplomap to 0.1.1 (#49082) --- recipes/haplomap/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/haplomap/meta.yaml b/recipes/haplomap/meta.yaml index 0948847322532..6b7d656bf4de8 100644 --- a/recipes/haplomap/meta.yaml +++ b/recipes/haplomap/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.1.0" %} -{% set sha256 = "3c052f339af1163da3013d3c3a0f866583a4f608e6626dadc7e4398880e2f0a1" %} +{% set version = "0.1.1" %} +{% set sha256 = "8ebca46b3d3e60302f832ad0d8cc3dbef89e7fc568a3c67ec19d83130c128bbc" %} package: name: haplomap @@ -10,7 +10,7 @@ source: sha256: '{{sha256}}' build: - number: 3 + number: 0 run_exports: - {{ pin_subpackage('haplomap', max_pin='x.x') }} @@ -36,4 +36,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 From 10b69d64230c8b73927d1a84499b652775139135 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 12:12:24 -0400 Subject: [PATCH 0457/1514] Update matchms to 0.27.0 (#49084) --- recipes/matchms/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/matchms/meta.yaml b/recipes/matchms/meta.yaml index 55458db68a81d..263f3b2f86013 100644 --- a/recipes/matchms/meta.yaml +++ b/recipes/matchms/meta.yaml @@ -1,5 +1,5 @@ {% set name = "matchms" %} -{% set version = "0.26.4" %} +{% set version = "0.27.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: fb6cb22fea54a9bc8fc96d2cff2e2232b39a4458268ff1d985583609b289e019 + sha256: 96d15fbc006c90ac306e91b9fc609255108c48536094d2a55502f6a2e65fbce8 build: number: 0 From 5702c183f722fd6eda6a9f4c4c756f7252266516 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 13:10:29 -0400 Subject: [PATCH 0458/1514] Update ppanggolin to 2.1.0 (#49083) --- recipes/ppanggolin/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/ppanggolin/meta.yaml b/recipes/ppanggolin/meta.yaml index 0b43842899749..3a1b063442689 100644 --- a/recipes/ppanggolin/meta.yaml +++ b/recipes/ppanggolin/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.0.5" %} +{% set version = "2.1.0" %} package: name: ppanggolin @@ -6,10 +6,10 @@ package: source: url: https://github.com/labgem/PPanGGOLiN/archive/{{ version }}.tar.gz - sha256: a0eecbb3f66df8d2df5c2b37c25696c264cd3812386e942314748a8800ecc52f + sha256: f0f81d57e571619438a558895de750bb02f4728cfb2eb1928431dadb22fd49d1 build: - number: 1 + number: 0 skip: True # [py<37] run_exports: - {{ pin_subpackage("ppanggolin", max_pin="x") }} From 04c45acce866d047edae307d1ee912e60e2184aa Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 14:06:36 -0400 Subject: [PATCH 0459/1514] Update breseq to 0.39.0 (#49085) --- recipes/breseq/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/breseq/meta.yaml b/recipes/breseq/meta.yaml index 8696fa41b547e..50da315f59f83 100644 --- a/recipes/breseq/meta.yaml +++ b/recipes/breseq/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.38.3" %} +{% set version = "0.39.0" %} package: name: breseq @@ -6,7 +6,7 @@ package: source: url: https://github.com/barricklab/breseq/releases/download/v{{ version }}/breseq-{{ version }}-Source.tar.gz - sha256: "4d0c772fb87947e028094839f090ee130c87d0d5951adf5b845b79ac87449900" + sha256: "39b35e246ecd2b497c82a99765ca4d78a0400bc4a7518b7506b140229ccc0247" build: number: 0 From 21fbd603fd2e9fb8c5391fdbfc4dda466dc89d5f Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Wed, 10 Jul 2024 14:15:02 -0400 Subject: [PATCH 0460/1514] feat: support for osx-arm64 builds (#46775) * example recipe for osx-arm64 * test arm builds on macOS-14 * add arch flag * try setting a higher sdk version * check sdk versions * set sdk earlier * move logging * set deployment target * move var setting * how old can we go? * try 11.0 sdk * trigger on PR * Apply suggestions from code review Co-authored-by: Martin Grigorov * zip a level up to match other ci * must include noarch * remove sdk workaround * log deployment target * use master cache * case for job name * initial merge wf (set up for testing) * updates from testing * source common.sh instead of directly setting env vars * enable osx-arm64 on CircleCI * xcode version (match github actions) * debugging * no docker for osx * match bulk setup * comment out run_conda_forge_build_setup * Little more generic test * longer build test * clean up * remove setup * simplify and add osx-arm64 * revert * try to match other CI * standardize CI configurations for additional platforms * fix scripts path * fix check * test skip * reenable test packages * add osx-arm64 to bulk * test with user friendly name * move arm jobs to existing GHA config * test run_conda_forge_build_setup * test run_conda_forge_build_setup on GitHub Actions * debug sdk location * try permissions * run_conda_forge_build_setup is working on GHA * clean up * Try newer xcode version * try x flag to see how noisy it is * bump builds * Apply suggestions from code review This does add a little clutter from conda activate, but it could be useful for debugging some of the osx-specific stuff. Co-authored-by: Martin Grigorov --------- Co-authored-by: Martin Grigorov --- .circleci/config.yml | 88 ++++++++---- .github/workflows/Bulk.yml | 64 ++++++++- .github/workflows/PR.yml | 132 ++++++++++++------ .github/workflows/master.yml | 101 ++++++++++---- recipes/bamtools/meta.yaml | 3 +- recipes/bioawk/meta.yaml | 3 +- .../check-for-additional-platforms.sh | 9 +- 7 files changed, 294 insertions(+), 106 deletions(-) rename {.circleci => scripts}/check-for-additional-platforms.sh (87%) diff --git a/.circleci/config.yml b/.circleci/config.yml index c4a3117dd6022..725c78f5e7e8a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,10 +2,10 @@ version: 2.1 executors: - # osx-arm64: - # macos: - # xcode: 14.2.0 # indicate your selected version of Xcode - # resource_class: macos.m1.large.gen1 + osx-arm64: + macos: + xcode: 15.4.0 + resource_class: macos.m1.medium.gen1 linux-aarch64: machine: image: ubuntu-2204:current @@ -22,7 +22,13 @@ jobs: # a basic unit of work in a run - run: name: Check for Additional Platforms - command: ./.circleci/check-for-additional-platforms.sh "origin/master...HEAD" "build_and_test" + command: | + result=$(./scripts/check-for-additional-platforms.sh "origin/master...HEAD" "build_and_test" "${CIRCLE_JOB}") + if [[ ${result} != "build" ]] + then + echo "No recipes using this platform, skipping rest of job." + circleci-agent step halt + fi - run: name: Fetch bioconda install script @@ -47,14 +53,29 @@ jobs: # a basic unit of work in a run - run: name: Build and test command: | - . common.sh - source /opt/mambaforge/etc/profile.d/conda.sh - source /opt/mambaforge/etc/profile.d/mamba.sh - mamba activate bioconda - bioconda-utils build recipes config.yml \ - --lint --docker --mulled-test \ - --docker-base-image "quay.io/bioconda/bioconda-utils-build-env-cos7-$(arch):${BIOCONDA_UTILS_TAG#v}" \ - --git-range origin/master HEAD + set -xe + eval "$(conda shell.bash hook)" + conda activate bioconda + source common.sh + + # Sets up OSX SDK + if [[ $(uname) = "Darwin" ]]; then + if [[ "${OSX_SDK_DIR:-}" == "" ]]; then + OSX_SDK_DIR="$(xcode-select -p)/Platforms/MacOSX.platform/Developer/SDKs" + fi + sudo chmod o+rwx ${OSX_SDK_DIR} + run_conda_forge_build_setup + fi + + if command -V docker >/dev/null; then + bioconda-utils build recipes config.yml \ + --lint --docker --mulled-test \ + --docker-base-image "quay.io/bioconda/bioconda-utils-build-env-cos7-$(arch):${BIOCONDA_UTILS_TAG#v}" \ + --git-range origin/master HEAD + else + bioconda-utils build recipes config.yml \ + --lint --git-range origin/master HEAD + fi - run: name: Prepare artifacts @@ -63,7 +84,7 @@ jobs: # a basic unit of work in a run mkdir -p /tmp/artifacts/packages cd /opt/mambaforge/envs/bioconda/conda-bld || exit 0 find -name .cache | xargs rm -rf || true - for n in index.html channeldata.json linux-aarch64 linux-64 osx-64 noarch; do + for n in index.html channeldata.json linux-aarch64 linux-64 osx-64 osx-arm64 noarch; do cp -rv $n /tmp/artifacts/packages || true done if command -V docker >/dev/null; then @@ -93,7 +114,13 @@ jobs: # a basic unit of work in a run - run: name: Check for Additional Platforms - command: ./.circleci/check-for-additional-platforms.sh "${CIRCLE_SHA1}~1 ${CIRCLE_SHA1}" "build_and_upload" + command: | + result=$(./scripts/check-for-additional-platforms.sh "${CIRCLE_SHA1}~1 ${CIRCLE_SHA1}" "build_and_upload" "${CIRCLE_JOB}") + if [[ ${result} != "build" ]] + then + echo "No recipes using this platform, skipping rest of job." + circleci-agent step halt + fi - run: name: Fetch bioconda install script @@ -118,9 +145,20 @@ jobs: # a basic unit of work in a run - run: name: Build and push command: | - source /opt/mambaforge/etc/profile.d/conda.sh - source /opt/mambaforge/etc/profile.d/mamba.sh - mamba activate bioconda + set -xe + eval "$(conda shell.bash hook)" + conda activate bioconda + source common.sh + + # Sets up OSX SDK + if [[ $(uname) = "Darwin" ]]; then + if [[ "${OSX_SDK_DIR:-}" == "" ]]; then + OSX_SDK_DIR="$(xcode-select -p)/Platforms/MacOSX.platform/Developer/SDKs" + fi + sudo chmod o+rwx ${OSX_SDK_DIR} + run_conda_forge_build_setup + fi + bioconda-utils handle-merged-pr recipes config.yml \ --repo bioconda/bioconda-recipes \ --git-range ${CIRCLE_SHA1}~1 ${CIRCLE_SHA1} \ @@ -184,10 +222,10 @@ jobs: # a basic unit of work in a run name: Build and upload command: | set -e - . common.sh - source /opt/mambaforge/etc/profile.d/conda.sh - source /opt/mambaforge/etc/profile.d/mamba.sh - mamba activate bioconda + eval "$(conda shell.bash hook)" + conda activate bioconda + source common.sh + echo '============' conda info --all conda config --show-sources @@ -214,7 +252,7 @@ workflows: matrix: parameters: os: - #- osx-arm64 + - osx-arm64 - linux-aarch64 build and upload (ARM): @@ -226,7 +264,7 @@ workflows: matrix: parameters: os: - #- osx-arm64 + - osx-arm64 - linux-aarch64 @@ -239,6 +277,6 @@ workflows: matrix: parameters: os: - #- osx-arm64 + # - osx-arm64 Bulk is on GitHub Actions - linux-aarch64 runner: [0, 1, 2, 3, 4, 5] diff --git a/.github/workflows/Bulk.yml b/.github/workflows/Bulk.yml index ec689ce742449..38e3f8248cf8b 100644 --- a/.github/workflows/Bulk.yml +++ b/.github/workflows/Bulk.yml @@ -62,7 +62,7 @@ jobs: conda clean -y --all build-osx: - name: Bulk OSX Builds + name: Bulk OSX-64 Builds if: "contains(github.event.head_commit.message, '[ci run]')" runs-on: macos-13 strategy: @@ -121,3 +121,65 @@ jobs: --lint --anaconda-upload --record-build-failures --skiplist-leafs \ --exclude bioconda-repodata-patches conda clean -y --all + + build-osx-arm: + name: Bulk OSX-ARM64 Builds + if: "contains(github.event.head_commit.message, '[ci run]')" + runs-on: macOS-14 # M1 + strategy: + fail-fast: false + max-parallel: 4 + matrix: + runner: [0, 1, 2, 3] + steps: + - uses: actions/checkout@v4 + with: + # checkout as BiocondaBot in order to have the permission to push fail logs + token: ${{secrets.BIOCONDA_BOT_REPO_TOKEN}} + + - name: set git user + run: | + git config user.name BiocondaBot + git config user.email BiocondaBot@users.noreply.github.com + + - name: set path + run: echo "/opt/mambaforge/bin" >> $GITHUB_PATH + + - name: Fetch conda install script + run: | + wget https://raw.githubusercontent.com/bioconda/bioconda-common/bulk/{common,install-and-set-up-conda,configure-conda}.sh + + - name: Set up bioconda-utils + run: bash install-and-set-up-conda.sh + + - name: Configure conda + run: bash configure-conda.sh + + - name: Build and upload + env: + ANACONDA_TOKEN: ${{ secrets.ANACONDA_TOKEN }} + INVOLUCRO_AUTH: ${{ secrets.INVOLUCRO_AUTH }} + QUAY_OAUTH_TOKEN: ${{ secrets.QUAY_OAUTH_TOKEN }} + # Mimic circleci + OSTYPE: "darwin" + CI: "true" + run: | + set -xe + eval "$(conda shell.bash hook)" + conda activate bioconda + + source common.sh + # Sets up OSX SDK + run_conda_forge_build_setup + + echo '============' + conda info --all + conda config --show-sources + conda activate bioconda + python -c 'import bioconda_utils.utils as u ; import pathlib as p ; print(*(f"{f}:\n{p.Path(f).read_text()}" for f in u.load_conda_build_config().exclusive_config_files), sep="\n")' + echo '============' + bioconda-utils build recipes config.yml \ + --worker-offset ${{ matrix.runner }} --n-workers 4 \ + --lint --anaconda-upload --record-build-failures --skiplist-leafs \ + --exclude bioconda-repodata-patches + conda clean -y --all diff --git a/.github/workflows/PR.yml b/.github/workflows/PR.yml index 9418eba60943d..82f17b7c4a736 100644 --- a/.github/workflows/PR.yml +++ b/.github/workflows/PR.yml @@ -13,7 +13,7 @@ jobs: fail-fast: true max-parallel: 13 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -24,15 +24,7 @@ jobs: run: | wget https://raw.githubusercontent.com/bioconda/bioconda-common/master/{install-and-set-up-conda,configure-conda,common}.sh - - name: Restore cache - id: cache - uses: actions/cache@v3 - with: - path: /opt/mambaforge - key: ${{ runner.os }}--bulk--${{ hashFiles('**/install-and-set-up-conda.sh') }} - - name: Set up bioconda-utils - if: steps.cache.outputs.cache-hit != 'true' run: bash install-and-set-up-conda.sh - name: Configure conda @@ -67,7 +59,7 @@ jobs: max-parallel: 13 needs: lint steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -78,23 +70,10 @@ jobs: run: | wget https://raw.githubusercontent.com/bioconda/bioconda-common/master/{install-and-set-up-conda,configure-conda,common}.sh - - name: Restore cache - id: cache - uses: actions/cache@v3 - with: - path: /opt/mambaforge - key: ${{ runner.os }}--bulk--${{ hashFiles('**/install-and-set-up-conda.sh') }} - - name: Set up bioconda-utils - if: steps.cache.outputs.cache-hit != 'true' run: bash install-and-set-up-conda.sh # This script can be used to reconfigure conda to use the right channel setup. - # This has to be done after the cache is restored, because - # the channel setup is not cached as it resides in the home directory. - # We could use a system-wide (and therefore cached) channel setup, - # but mamba does not support that at the time of implementation - # (it ignores settings made with --system). - name: Configure conda run: bash configure-conda.sh @@ -151,28 +130,28 @@ jobs: ) || true - name: Archive packages - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: linux-packages path: | /tmp/artifacts/packages - name: Archive images - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: docker-images path: | /tmp/artifacts/images - build-osx: - name: OSX Tests + build-osx-64: + name: OSX-64 Tests runs-on: macos-13 strategy: fail-fast: true max-parallel: 4 needs: build-linux steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -183,23 +162,10 @@ jobs: run: | wget https://raw.githubusercontent.com/bioconda/bioconda-common/master/{install-and-set-up-conda,configure-conda,common}.sh - - name: Restore cache - id: cache - uses: actions/cache@v3 - with: - path: /opt/mambaforge - key: ${{ runner.os }}--bulk--${{ hashFiles('**/install-and-set-up-conda.sh') }} - - name: Set up bioconda-utils - if: steps.cache.outputs.cache-hit != 'true' run: bash install-and-set-up-conda.sh # This script can be used to reconfigure conda to use the right channel setup. - # This has to be done after the cache is restored, because - # the channel setup is not cached as it resides in the home directory. - # We could use a system-wide (and therefore cached) channel setup, - # but mamba does not support that at the time of implementation - # (it ignores settings made with --system). - name: Configure conda run: bash configure-conda.sh @@ -241,8 +207,90 @@ jobs: ) || true - name: Archive packages - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: osx-packages path: | /tmp/artifacts/packages + + build_and_test-osx-arm64: + name: OSX-ARM64 Tests + runs-on: macOS-14 # M1 + strategy: + fail-fast: true + max-parallel: 4 + needs: build-linux + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + # bail if there's no osx-arm64 recipes + - name: Check for Additional Platforms + id: additional_platforms + run: | + result=$(./scripts/check-for-additional-platforms.sh "origin/master...HEAD" "build_and_test" "${GITHUB_JOB}") + if [[ ${result} != "build" ]] + then + echo "No recipes using this platform, skipping rest of job." + echo "skip_build=true" >> $GITHUB_OUTPUT + fi + + - name: set path + run: echo "/opt/mambaforge/bin" >> $GITHUB_PATH + + - name: Fetch conda install script + if: steps.additional_platforms.outputs.skip_build != 'true' + run: | + wget https://raw.githubusercontent.com/bioconda/bioconda-common/master/{install-and-set-up-conda,configure-conda,common}.sh + + - name: Set up bioconda-utils + if: steps.additional_platforms.outputs.skip_build != 'true' + run: bash install-and-set-up-conda.sh + + - name: Configure conda + if: steps.additional_platforms.outputs.skip_build != 'true' + run: bash configure-conda.sh + + - name: Build and Test + if: steps.additional_platforms.outputs.skip_build != 'true' + env: + # Mimic circleci + OSTYPE: "darwin" + CI: "true" + run: | + set -xe + eval "$(conda shell.bash hook)" + conda activate bioconda + source common.sh + # Sets up OSX SDK + run_conda_forge_build_setup + + if [ -z "$GITHUB_BASE_REF" ] ; then + export GITHUB_BASE_REF="master" + fi + git fetch origin "$GITHUB_BASE_REF" + + bioconda-utils build recipes config.yml \ + --lint --git-range origin/"$GITHUB_BASE_REF" HEAD + + - name: Prepare artifacts + if: steps.additional_platforms.outputs.skip_build != 'true' + run: | + ( + rm -rf /tmp/artifacts + mkdir -p /tmp/artifacts/packages + cd /opt/mambaforge/envs/bioconda/conda-bld || exit 0 + find -name .cache | xargs rm -rf || true + for n in index.html channeldata.json osx-arm64 noarch; do + cp -rv $n /tmp/artifacts/packages || true + done + ) || true + + - name: Archive packages + if: steps.additional_platforms.outputs.skip_build != 'true' + uses: actions/upload-artifact@v4 + with: + name: osx-arm64-packages + path: | + /tmp/artifacts diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index e698443590e50..7e237b314da22 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -12,7 +12,7 @@ jobs: fail-fast: false max-parallel: 13 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -23,23 +23,10 @@ jobs: run: | wget https://raw.githubusercontent.com/bioconda/bioconda-common/master/{install-and-set-up-conda,configure-conda,common}.sh - - name: Restore cache - id: cache - uses: actions/cache@v3 - with: - path: /opt/mambaforge - key: ${{ runner.os }}--bulk--${{ hashFiles('**/install-and-set-up-conda.sh') }} - - name: Set up bioconda-utils - if: steps.cache.outputs.cache-hit != 'true' run: bash install-and-set-up-conda.sh # This script can be used to reconfigure conda to use the right channel setup. - # This has to be done after the cache is restored, because - # the channel setup is not cached as it resides in the home directory. - # We could use a system-wide (and therefore cached) channel setup, - # but mamba does not support that at the time of implementation - # (it ignores settings made with --system). - name: Configure conda run: bash configure-conda.sh @@ -68,15 +55,15 @@ jobs: --docker --mulled-test --anaconda-upload --mulled-upload-target biocontainers docker rmi quay.io/dpryan79/mulled_container:latest - build-osx: - name: OSX Upload + build-osx-64: + name: OSX-64 Upload if: github.repository == 'bioconda/bioconda-recipes' runs-on: macos-13 strategy: fail-fast: false max-parallel: 4 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -87,23 +74,10 @@ jobs: run: | wget https://raw.githubusercontent.com/bioconda/bioconda-common/master/{install-and-set-up-conda,configure-conda,common}.sh - - name: Restore cache - id: cache - uses: actions/cache@v3 - with: - path: /opt/mambaforge - key: ${{ runner.os }}--bulk--${{ hashFiles('**/install-and-set-up-conda.sh') }} - - name: Set up bioconda-utils - if: steps.cache.outputs.cache-hit != 'true' run: bash install-and-set-up-conda.sh # This script can be used to reconfigure conda to use the right channel setup. - # This has to be done after the cache is restored, because - # the channel setup is not cached as it resides in the home directory. - # We could use a system-wide (and therefore cached) channel setup, - # but mamba does not support that at the time of implementation - # (it ignores settings made with --system). - name: Configure conda run: bash configure-conda.sh @@ -122,7 +96,7 @@ jobs: eval "$(conda shell.bash hook)" conda activate bioconda - # The SDK isn't actually cached, so reinstall it + # Sets up OSX SDK run_conda_forge_build_setup # bioconda-utils handle-merged-pr recipes config.yml \ @@ -131,3 +105,68 @@ jobs: # --fallback build bioconda-utils build recipes config.yml \ --anaconda-upload --git-range ${GITHUB_SHA}~1 ${GITHUB_SHA} + + build_and_upload-osx-arm64: + name: OSX-ARM64 Upload + if: github.repository == 'bioconda/bioconda-recipes' + runs-on: macOS-14 # M1 + strategy: + fail-fast: false + max-parallel: 4 + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + # bail if there's no osx-arm64 recipes + - name: Check for Additional Platforms + id: additional_platforms + run: | + result=$(./scripts/check-for-additional-platforms.sh "${GITHUB_SHA}~1 ${GITHUB_SHA}" "build_and_upload" "${GITHUB_JOB}") + if [[ ${result} != "build" ]] + then + echo "No recipes using this platform, skipping rest of job." + echo "skip_build=true" >> $GITHUB_OUTPUT + fi + + - name: set path + run: | + echo "/opt/mambaforge/bin" >> $GITHUB_PATH + + - name: Fetch conda install script + if: steps.additional_platforms.outputs.skip_build != 'true' + run: | + wget https://raw.githubusercontent.com/bioconda/bioconda-common/master/{install-and-set-up-conda,configure-conda,common}.sh + + - name: Set up bioconda-utils + if: steps.additional_platforms.outputs.skip_build != 'true' + run: bash install-and-set-up-conda.sh + + - name: Configure conda + if: steps.additional_platforms.outputs.skip_build != 'true' + run: bash configure-conda.sh + + - name: Build and Upload + if: steps.additional_platforms.outputs.skip_build != 'true' + env: + QUAY_LOGIN: ${{ secrets.QUAY_LOGIN }} + QUAY_OAUTH_TOKEN: ${{ secrets.QUAY_OAUTH_TOKEN }} + ANACONDA_TOKEN: ${{ secrets.ANACONDA_TOKEN }} + INVOLUCRO_AUTH: ${{ secrets.INVOLUCRO_AUTH }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # Mimic circleci + OSTYPE: "darwin" + CI: "true" + run: | + set -xe + eval "$(conda shell.bash hook)" + conda activate bioconda + source common.sh + # Sets up OSX SDK + run_conda_forge_build_setup + + bioconda-utils handle-merged-pr recipes config.yml \ + --repo bioconda/bioconda-recipes \ + --git-range ${GITHUB_SHA}~1 ${GITHUB_SHA} \ + --fallback build \ + --artifact-source github-actions diff --git a/recipes/bamtools/meta.yaml b/recipes/bamtools/meta.yaml index 803497b6c9a4b..0f5b309f2a25e 100644 --- a/recipes/bamtools/meta.yaml +++ b/recipes/bamtools/meta.yaml @@ -12,7 +12,7 @@ source: # - 0001-Const-qualify-all-functors-operator-member-functions.patch build: - number: 3 + number: 5 run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} @@ -37,5 +37,6 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:bamtools diff --git a/recipes/bioawk/meta.yaml b/recipes/bioawk/meta.yaml index c5dd0a636caf2..70ec45f58e648 100644 --- a/recipes/bioawk/meta.yaml +++ b/recipes/bioawk/meta.yaml @@ -7,7 +7,7 @@ source: sha256: 5cbef3f39b085daba45510ff450afcf943cfdfdd483a546c8a509d3075ff51b5 build: - number: 10 + number: 12 run_exports: - {{ pin_subpackage("bioawk", max_pin="x.x.x") }} @@ -34,3 +34,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 diff --git a/.circleci/check-for-additional-platforms.sh b/scripts/check-for-additional-platforms.sh similarity index 87% rename from .circleci/check-for-additional-platforms.sh rename to scripts/check-for-additional-platforms.sh index 50641d2b63052..d088794f14422 100755 --- a/.circleci/check-for-additional-platforms.sh +++ b/scripts/check-for-additional-platforms.sh @@ -7,6 +7,7 @@ # arguments git_range=$1 job_name=$2 +current_job=$3 # Download ARM version of yq yq_platform=$(uname) @@ -21,7 +22,6 @@ files=`git diff --name-only --diff-filter AMR ${git_range} | grep -E 'meta.yaml$ build=0 for file in $files; do - echo $file # To create a properly-formatted yaml that yq can parse, comment out jinja2 # variable setting with {% %} and remove variable use with {{ }}. additional_platforms=$(cat $file \ @@ -37,7 +37,7 @@ for file in $files; do # Check if any additional platforms match this job for additional_platform in $additional_platforms; do - if [ "${CIRCLE_JOB}" = "${job_name}-${additional_platform}" ] + if [ "${current_job}" = "${job_name}-${additional_platform}" ] then build=1 break @@ -46,8 +46,7 @@ for file in $files; do done # If no changed recipes apply to this platform, skip remaining steps -if [[ build -lt 1 ]] +if [[ build -gt 0 ]] then - echo "No recipes using this platform, skipping rest of job." - circleci-agent step halt + echo "build" fi From c87a245870e1754c88c73c32984f5b60f8f0f58f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 15:29:27 -0400 Subject: [PATCH 0461/1514] Update solvebio to 2.28.0 (#49087) * Update solvebio to 2.28.0 * remove setuptools from host --------- Co-authored-by: mencian --- recipes/solvebio/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/solvebio/meta.yaml b/recipes/solvebio/meta.yaml index c478c817b61dc..03cd78b807a48 100644 --- a/recipes/solvebio/meta.yaml +++ b/recipes/solvebio/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "2.27.0" %} -{% set sha256 = "80c549fd4b98aafaac165c8a09de10c500110c2a85db9e461d40bc0d36fd0657" %} +{% set version = "2.28.0" %} +{% set sha256 = "e7135df9c67eebaa34b54ce2f400d78a7e38b60c65185e8822b6987083baca8d" %} package: name: solvebio @@ -23,7 +23,7 @@ requirements: host: - python - pip - - setuptools <58 # setup.py uses use_2to3 + #- setuptools <58 # setup.py uses use_2to3 run: - python - six From 3e4364c8d08de7d6882eb7f28729a654474a9cd7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 15:31:25 -0400 Subject: [PATCH 0462/1514] Update piscem to 0.10.2 (#49086) Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/piscem/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/piscem/meta.yaml b/recipes/piscem/meta.yaml index b781bafa4b557..2ab3bc65782ac 100644 --- a/recipes/piscem/meta.yaml +++ b/recipes/piscem/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "0.10.1" %} +{% set version = "0.10.2" %} {% set name = "piscem" %} -{% set sha256 = "1f53716a6b0c23bd174616893c29cd93a01f57cd5306cb276898bc549d2b7edf" %} +{% set sha256 = "657456b51174fc64a4c8bc9a641b873b0dca1b48fa05675dd455eb45a5be39e7" %} package: name: {{ name }} From 1b2db80ff20bcc1eea7c7501f5e5de22b47a8f91 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 15:37:35 -0400 Subject: [PATCH 0463/1514] Update clermontyping to 24.02 (#48829) * Update clermontyping to 24.02 * adjust max_pin for calendar versioning --------- Co-authored-by: Robert A. Petit III --- recipes/clermontyping/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/clermontyping/meta.yaml b/recipes/clermontyping/meta.yaml index 13691f5d2e92b..95446a04a3341 100644 --- a/recipes/clermontyping/meta.yaml +++ b/recipes/clermontyping/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.0.2" %} -{% set sha256 = "6b14a7a1450f13dfc5fc4ca39349baf94d9a09b726f982213119284d06bf2f8c" %} +{% set version = "24.02" %} +{% set sha256 = "89f36b76e17b1102adb9933e96f8e15e0f5e915b671ccd07f70a9bce3f073e5b" %} package: name: "clermontyping" @@ -14,7 +14,7 @@ build: number: 0 noarch: generic run_exports: - - {{ pin_subpackage('clermontyping', max_pin="x") }} + - {{ pin_subpackage('clermontyping', max_pin=None) }} requirements: host: @@ -46,4 +46,4 @@ about: extra: recipe-maintainers: - - happykhan \ No newline at end of file + - happykhan From 2c54e527b6a084e574fb78b20005c64fbc4bc415 Mon Sep 17 00:00:00 2001 From: John Marshall Date: Thu, 11 Jul 2024 08:13:03 +1200 Subject: [PATCH 0464/1514] Build htslib on macOS ARM (#49088) --- recipes/htslib/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/htslib/meta.yaml b/recipes/htslib/meta.yaml index 296dd937597de..a55e02f67f3a3 100644 --- a/recipes/htslib/meta.yaml +++ b/recipes/htslib/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('htslib', max_pin='x.x') }} @@ -50,6 +50,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:HTSlib skip-lints: From 619f9fd12057d7a06e150e26458edba351712dd4 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Wed, 10 Jul 2024 23:09:28 +0200 Subject: [PATCH 0465/1514] Build Iqtree for osx-arm64 (#49090) --- recipes/iqtree/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/iqtree/meta.yaml b/recipes/iqtree/meta.yaml index 87081d98ed2fa..d973ad4ff8ea5 100644 --- a/recipes/iqtree/meta.yaml +++ b/recipes/iqtree/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version | replace("-", "_") }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('iqtree', max_pin="x") }} @@ -48,6 +48,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:iq-tree - doi:10.1093/molbev/msu300 From 23bf5b4931570a91db1aa11ed134a566140cfb4f Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Wed, 10 Jul 2024 23:12:25 +0200 Subject: [PATCH 0466/1514] Build pyfastx for osx-arm64 (#49093) --- recipes/pyfastx/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/pyfastx/meta.yaml b/recipes/pyfastx/meta.yaml index 0abde661a1d5f..fda43be7f5a97 100644 --- a/recipes/pyfastx/meta.yaml +++ b/recipes/pyfastx/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 2 + number: 3 script: {{ PYTHON }} -m pip install . --no-deps -vvv skip: True # [py < 36] entry_points: @@ -48,3 +48,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 From 2061fc1d67954d2091b49ae86175a2d197af1751 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 10 Jul 2024 16:23:09 -0500 Subject: [PATCH 0467/1514] Build ncbi-vdb on osx-arm64 (#49101) --- recipes/ncbi-vdb/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/ncbi-vdb/meta.yaml b/recipes/ncbi-vdb/meta.yaml index dbbff72dea518..3afafe6901532 100644 --- a/recipes/ncbi-vdb/meta.yaml +++ b/recipes/ncbi-vdb/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('ncbi-vdb', max_pin='x') }} @@ -43,3 +43,4 @@ test: extra: additional-platforms: - linux-aarch64 + - osx-arm64 From b4186716f1de980b1b3e453f0453739274e9a615 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Wed, 10 Jul 2024 23:35:09 +0200 Subject: [PATCH 0468/1514] Build bx-python for osx-arm64 (#49092) --- recipes/bx-python/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/bx-python/meta.yaml b/recipes/bx-python/meta.yaml index 372a44a916101..c08fcc428ad32 100644 --- a/recipes/bx-python/meta.yaml +++ b/recipes/bx-python/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 2 + number: 3 script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv run_exports: - {{ pin_subpackage(name|lower, max_pin='x.x') }} @@ -65,3 +65,4 @@ extra: - biotools:bx-python additional-platforms: - linux-aarch64 + - osx-arm64 From 40802c8cd7357a12c6ade0f48db76eb12588eb50 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Wed, 10 Jul 2024 23:43:56 +0200 Subject: [PATCH 0469/1514] Build nextclade for osx-arm64 (#49095) --- recipes/nextclade/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/nextclade/meta.yaml b/recipes/nextclade/meta.yaml index cf73fca924452..463a69a0bd8b5 100644 --- a/recipes/nextclade/meta.yaml +++ b/recipes/nextclade/meta.yaml @@ -16,7 +16,7 @@ source: sha256: 579f499f7f0f5f2b9d520971ded4e265140859317f083ff8e2879ad74373ec33 # [osx and arm64] build: - number: 1 + number: 2 binary_relocation: False run_exports: - {{ pin_compatible(name, max_pin='x') }} @@ -41,6 +41,7 @@ extra: - doi:10.21105/joss.03773 additional-platforms: - linux-aarch64 + - osx-arm64 recipe-maintainers: - pvanheus - corneliusroemer From 359981c349cdc202b0bdd62c4c7024b4c1fc9a0a Mon Sep 17 00:00:00 2001 From: John Marshall Date: Thu, 11 Jul 2024 09:53:17 +1200 Subject: [PATCH 0470/1514] Build samtools and bcftools on macOS ARM (#49104) --- recipes/bcftools/meta.yaml | 3 ++- recipes/samtools/meta.yaml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/bcftools/meta.yaml b/recipes/bcftools/meta.yaml index 6641ea2aeb54d..61846b556ed34 100644 --- a/recipes/bcftools/meta.yaml +++ b/recipes/bcftools/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("bcftools", max_pin="x") }} @@ -50,6 +50,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:bcftools - usegalaxy-eu:bcftools_merge diff --git a/recipes/samtools/meta.yaml b/recipes/samtools/meta.yaml index f098279936380..4b3fddd767dd0 100644 --- a/recipes/samtools/meta.yaml +++ b/recipes/samtools/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("samtools", max_pin="x") }} @@ -37,6 +37,7 @@ test: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:samtools - usegalaxy-eu:samtools_flagstat From 0f1aa650d412ae67fea3c585f28896f8dd7e6d6a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 10 Jul 2024 18:41:30 -0400 Subject: [PATCH 0471/1514] Update augur to 25.0.0 (#49114) --- recipes/augur/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/augur/meta.yaml b/recipes/augur/meta.yaml index ffb57fe59c453..a51ee5db52933 100644 --- a/recipes/augur/meta.yaml +++ b/recipes/augur/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "24.4.0" %} +{% set version = "25.0.0" %} package: name: augur @@ -6,10 +6,10 @@ package: source: url: https://github.com/nextstrain/augur/releases/download/{{ version }}/nextstrain_augur-{{ version }}.tar.gz - sha256: 88ecf208384fff1ba8dee20596c2905a4d27707a39e1e9590d2fef717d29dd5f + sha256: 0df074847933a89a948461ea439062b78ff3c80f2d71f65efc7094fbda6a98b6 build: - number: 1 + number: 0 noarch: python entry_points: - augur = augur.__main__:main From 4c8fe80333f24b5518606d066a64819e3c126275 Mon Sep 17 00:00:00 2001 From: John Marshall Date: Thu, 11 Jul 2024 11:07:02 +1200 Subject: [PATCH 0472/1514] Build pysam on macOS ARM (#49105) --- recipes/pysam/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/pysam/meta.yaml b/recipes/pysam/meta.yaml index 7af1cbd2d4180..3240440cf1aab 100644 --- a/recipes/pysam/meta.yaml +++ b/recipes/pysam/meta.yaml @@ -11,7 +11,7 @@ source: - arm_hwcap.patch build: - number: 1 + number: 2 skip: True # [py2k] binary_relocation: False # [linux] run_exports: @@ -42,6 +42,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:pysam - doi:10.1093/bioinformatics/btp352 From 424b35199bf1f1f967817921993f1d7bb5bb810c Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Thu, 11 Jul 2024 01:13:26 +0200 Subject: [PATCH 0473/1514] Build auspice for osx-arm64 (#49103) --- recipes/auspice/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/auspice/meta.yaml b/recipes/auspice/meta.yaml index f8698c51454a3..4507c2050df07 100644 --- a/recipes/auspice/meta.yaml +++ b/recipes/auspice/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 89c620bc790c5e3f28969a253f41e36bf35a13346cb8c6ab55868d9c6ee08714 build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage("auspice", max_pin="x.x") }} @@ -47,6 +47,7 @@ extra: - doi:10.1093/bioinformatics/bty407 additional-platforms: - linux-aarch64 + - osx-arm64 recipe-maintainers: - jameshadfield - victorlin From f55c5f99f1f767255862896be1458a45f802cf95 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Thu, 11 Jul 2024 01:14:23 +0200 Subject: [PATCH 0474/1514] Build fasttree for osx-arm64 (#49100) --- recipes/fasttree/meta.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/recipes/fasttree/meta.yaml b/recipes/fasttree/meta.yaml index a91720bc56fc7..63e42529105d4 100644 --- a/recipes/fasttree/meta.yaml +++ b/recipes/fasttree/meta.yaml @@ -10,7 +10,7 @@ source: sha256: "9026ae550307374be92913d3098f8d44187d30bea07902b9dcbfb123eaa2050f" build: - number: 3 + number: 4 run_exports: - {{ pin_subpackage(name|lower, max_pin="x") }} @@ -19,8 +19,6 @@ requirements: - {{ compiler('c') }} - llvm-openmp # [osx] - libgomp # [linux] - host: - run: test: commands: @@ -37,6 +35,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:fasttree - doi:10.1093/molbev/msp077 From 2a54f5e5022a1fdd65d9c5d731374075dafc07ec Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Thu, 11 Jul 2024 01:14:49 +0200 Subject: [PATCH 0475/1514] Build nextclade2 for osx-arm64 (#49097) --- recipes/nextclade2/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/nextclade2/meta.yaml b/recipes/nextclade2/meta.yaml index 6e2fb8e0e9bed..1b6e426277903 100644 --- a/recipes/nextclade2/meta.yaml +++ b/recipes/nextclade2/meta.yaml @@ -9,14 +9,14 @@ source: - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/nextclade-x86_64-unknown-linux-gnu # [linux64] sha256: 1a9a82655830243ffd01937ebb895744ff46ec49f725ef6feff9a3f0e37d90d1 # [linux64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/nextclade-x86_64-apple-darwin # [osx and x86_64] - sha256: a5ad4c2ca527929ab8c8b3b2521287488383f78fc1ee3030cbf5af23856b58b0 # [osx and x86_64] + sha256: 432f56d2152edda49b8c4a2c3f81d9a5da7419a6cc7c4a3d5205d17d5f834cf6 # [osx and x86_64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/nextclade-aarch64-apple-darwin # [arm64] sha256: aaac669618d953381428eac3674fe6cb22bef66e7c1ae55552f6a1567f3d3030 # [arm64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/nextclade-aarch64-unknown-linux-gnu # [aarch64] sha256: e8bf11ba18c40aaad6b91b1a65bd49b304375f77b9273b1a17e75ba32cffbca8 # [aarch64] build: - number: 1 + number: 2 binary_relocation: False run_exports: - {{ pin_compatible(name, max_pin='x') }} @@ -40,6 +40,7 @@ extra: - doi:10.21105/joss.03773 additional-platforms: - linux-aarch64 + - osx-arm64 recipe-maintainers: - corneliusroemer skip-lints: From 22fc2fe801dd34eeb1bb4a9c35bf284e8377fa67 Mon Sep 17 00:00:00 2001 From: John Marshall Date: Thu, 11 Jul 2024 11:17:25 +1200 Subject: [PATCH 0476/1514] Build bedtools on macOS ARM (#49108) --- recipes/bedtools/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/bedtools/meta.yaml b/recipes/bedtools/meta.yaml index d7c60edc863cc..bf08c71d3d5ed 100644 --- a/recipes/bedtools/meta.yaml +++ b/recipes/bedtools/meta.yaml @@ -10,7 +10,7 @@ source: sha256: fc7e660c2279b1e008b80aca0165a4a157daf4994d08a533ee925d73ce732b97 build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('bedtools', max_pin="x") }} @@ -37,6 +37,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:bedtools - usegalaxy-eu:bedtools_intersectbed From 710b488a064bb9d71662e42e888b3880e4a43c9c Mon Sep 17 00:00:00 2001 From: Milot Mirdita Date: Thu, 11 Jul 2024 16:01:57 +0900 Subject: [PATCH 0477/1514] Update foldcomp with ARM support (#49128) * Update foldcomp with ARM support * Forgot build number bump --- recipes/foldcomp/meta.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/recipes/foldcomp/meta.yaml b/recipes/foldcomp/meta.yaml index 96977ef6197a7..445c78bf0891f 100644 --- a/recipes/foldcomp/meta.yaml +++ b/recipes/foldcomp/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('foldcomp', max_pin="x.x") }} @@ -41,3 +41,8 @@ about: extra: identifiers: - doi:10.1093/bioinformatics/btad153 + recipe-maintainers: + - milot-mirdita + additional-platforms: + - linux-aarch64 + - osx-arm64 From 7e32e85ace33c3a82ca3d673e68529d1d8bd5082 Mon Sep 17 00:00:00 2001 From: Milot Mirdita Date: Thu, 11 Jul 2024 16:02:15 +0900 Subject: [PATCH 0478/1514] Update plass with MacOS ARM support (#49127) --- recipes/plass/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/plass/meta.yaml b/recipes/plass/meta.yaml index fe9f348a6774d..99a820fb0e6d5 100644 --- a/recipes/plass/meta.yaml +++ b/recipes/plass/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version|replace("-", ".") }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('plass', max_pin=None) }} @@ -52,3 +52,4 @@ extra: - martin-steinegger additional-platforms: - linux-aarch64 + - osx-arm64 \ No newline at end of file From a28c396b63d3c5fd4231e798a32b00b98b65cd55 Mon Sep 17 00:00:00 2001 From: Milot Mirdita Date: Thu, 11 Jul 2024 16:02:35 +0900 Subject: [PATCH 0479/1514] Update metaeuk with MacOS ARM support (#49126) --- recipes/metaeuk/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/metaeuk/meta.yaml b/recipes/metaeuk/meta.yaml index 5fec82bfbb1b7..d4880f6922390 100644 --- a/recipes/metaeuk/meta.yaml +++ b/recipes/metaeuk/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version|replace("-", ".") }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('metaeuk', max_pin="x") }} @@ -53,4 +53,5 @@ extra: - milot-mirdita - elileka additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 + - osx-arm64 \ No newline at end of file From 2ccbe6611a2f78b20dd8eb419fe83d453f7e48b4 Mon Sep 17 00:00:00 2001 From: Milot Mirdita Date: Thu, 11 Jul 2024 16:02:57 +0900 Subject: [PATCH 0480/1514] Update spacpharer with MacOS ARM support (#49124) --- recipes/spacepharer/meta.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/recipes/spacepharer/meta.yaml b/recipes/spacepharer/meta.yaml index ed8c6096e102d..bdf01d1d23171 100644 --- a/recipes/spacepharer/meta.yaml +++ b/recipes/spacepharer/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version|replace("-", ".") }} build: - number: 4 + number: 5 run_exports: - {{ pin_subpackage('spacepharer', max_pin="x") }} @@ -48,5 +48,8 @@ extra: identifiers: - doi:10.1093/bioinformatics/btab222 - biotools:spacepharer + recipe-maintainers: + - milot-mirdita additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 + - osx-arm64 \ No newline at end of file From dfc794931c8e75e5ccb7d7d05a26bd47420c2e0c Mon Sep 17 00:00:00 2001 From: Milot Mirdita Date: Thu, 11 Jul 2024 16:03:17 +0900 Subject: [PATCH 0481/1514] Update kalign2 with MacOS ARM support (#49123) --- recipes/kalign2/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/kalign2/meta.yaml b/recipes/kalign2/meta.yaml index 0c5f0efab39a6..009cfc0dabbcb 100644 --- a/recipes/kalign2/meta.yaml +++ b/recipes/kalign2/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 6 + number: 7 run_exports: - {{ pin_subpackage('kalign2', max_pin='x') }} @@ -33,4 +33,5 @@ extra: identifiers: - doi:10.1186/1471-2105-6-298 additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 + - osx-arm64 \ No newline at end of file From fe79a2465036679fdfb3bb7b434721228f05894d Mon Sep 17 00:00:00 2001 From: Milot Mirdita Date: Thu, 11 Jul 2024 16:03:43 +0900 Subject: [PATCH 0482/1514] Update metabuli with MacOS ARM support (#49122) * Update metabuli with MacOS ARM support * Try some cleanup to fix linting --- recipes/metabuli/meta.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/recipes/metabuli/meta.yaml b/recipes/metabuli/meta.yaml index dbbcce42175bf..0d6ed66393dbf 100644 --- a/recipes/metabuli/meta.yaml +++ b/recipes/metabuli/meta.yaml @@ -3,10 +3,10 @@ package: name: metabuli - version: {{ version|replace("-", ".") }} + version: {{ version }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('metabuli', max_pin="x") }} @@ -18,7 +18,6 @@ requirements: build: - {{ compiler('cxx') }} - {{ compiler('c') }} - - {{ stdlib("c") }} - cmake - make - llvm-openmp # [osx] @@ -46,8 +45,12 @@ about: summary: "Metabuli: specific and sensitive metagenomic classification via joint analysis of DNA and amino acid" extra: + identifiers: + - doi:10.1038/s41592-024-02273-y + - biotools:metabuli recipe-maintainers: - milot-mirdita - jaebeom-kim additional-platforms: - linux-aarch64 + - osx-arm64 From 7b4740f52b05beef8b0076fab6490b64d1d16884 Mon Sep 17 00:00:00 2001 From: Milot Mirdita Date: Thu, 11 Jul 2024 16:04:00 +0900 Subject: [PATCH 0483/1514] Update hhsuite with MacOS ARM support (#49121) --- recipes/hhsuite/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/hhsuite/meta.yaml b/recipes/hhsuite/meta.yaml index eb7af6827f3f6..2ab1c8ec9b788 100644 --- a/recipes/hhsuite/meta.yaml +++ b/recipes/hhsuite/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 11 + number: 12 run_exports: - {{ pin_subpackage('hhsuite', max_pin="x") }} @@ -51,3 +51,4 @@ extra: - milot-mirdita additional-platforms: - linux-aarch64 + - osx-arm From 3ffa7f02f0a5b837e35872562f89350d9f7b66d9 Mon Sep 17 00:00:00 2001 From: Milot Mirdita Date: Thu, 11 Jul 2024 16:04:18 +0900 Subject: [PATCH 0484/1514] Update MMseqs2 with MacOS ARM support (#49119) --- recipes/mmseqs2/meta.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/mmseqs2/meta.yaml b/recipes/mmseqs2/meta.yaml index 7343528cfb308..c1859689b6d46 100644 --- a/recipes/mmseqs2/meta.yaml +++ b/recipes/mmseqs2/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version|replace("-", ".") }} build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage('mmseqs2', max_pin=None) }} @@ -52,5 +52,8 @@ extra: - doi:10.1101/2020.11.27.401018 - biotools:mmseqs2 - biotools:linclust + recipe-maintainers: + - milot-mirdita additional-platforms: - linux-aarch64 + - osx-arm64 From 20b0e507c7481fdf25c7673db8c1a61c8997d16a Mon Sep 17 00:00:00 2001 From: Milot Mirdita Date: Thu, 11 Jul 2024 16:07:04 +0900 Subject: [PATCH 0485/1514] Update foldseek with MacOS ARM support (#49118) * Update foldseek with MacOS ARM support * Fix rust breaking foldseek (fixed in git already) --- recipes/foldseek/fix-rust-1.79.patch | 68 ++++++++++++++++++++++++++++ recipes/foldseek/meta.yaml | 6 ++- 2 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 recipes/foldseek/fix-rust-1.79.patch diff --git a/recipes/foldseek/fix-rust-1.79.patch b/recipes/foldseek/fix-rust-1.79.patch new file mode 100644 index 0000000000000..77524bbd94b5d --- /dev/null +++ b/recipes/foldseek/fix-rust-1.79.patch @@ -0,0 +1,68 @@ +commit ca58f9b36a02d281f4971484e38ffb557c28d093 +Author: Milot Mirdita +Date: Sun Jun 16 18:21:18 2024 +0900 + + Rename block-aligner-c to block_aligner_c to fix rust 1.79 breaking foldseek + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 0132f903d6..f109d21c24 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -77,7 +77,7 @@ corrosion_import_crate( + ) + include_directories(lib/block-aligner/c) + if(EMSCRIPTEN) +- corrosion_add_target_local_rustflags(block-aligner-c "-Clink-args=--no-entry -sRELOCATABLE=1") ++ corrosion_add_target_local_rustflags(block_aligner_c "-Clink-args=--no-entry -sRELOCATABLE=1") + endif() + + set(CANDLE_FEATURE "") +diff --git a/lib/block-aligner/c/Cargo.toml b/lib/block-aligner/c/Cargo.toml +index 53dd259db6..6b53bfcb39 100644 +--- a/lib/block-aligner/c/Cargo.toml ++++ b/lib/block-aligner/c/Cargo.toml +@@ -1,7 +1,7 @@ + # Minimal Cargo.toml to avoid downloading dependencies. + + [package] +-name = "block-aligner-c" ++name = "block_aligner_c" + version = "0.4.0" + authors = ["c0deb0t "] + edition = "2018" +diff --git a/lib/block-aligner/c/Makefile b/lib/block-aligner/c/Makefile +index f7a6d9d389..70440fcd8b 100644 +--- a/lib/block-aligner/c/Makefile ++++ b/lib/block-aligner/c/Makefile +@@ -7,7 +7,7 @@ all: example align_prefix align_local + + block_aligner: + cargo build --release --features simd_avx2 --offline +- cbindgen --config cbindgen.toml --crate block-aligner-c --output block_aligner.h --quiet . ++ cbindgen --config cbindgen.toml --crate block_aligner_c --output block_aligner.h --quiet . + + example: block_aligner example.c + $(CC) $(CFLAGS) -o example example.c +diff --git a/lib/block-aligner/c/cbindgen.toml b/lib/block-aligner/c/cbindgen.toml +index a5b4e8bb82..1fa8471be7 100644 +--- a/lib/block-aligner/c/cbindgen.toml ++++ b/lib/block-aligner/c/cbindgen.toml +@@ -9,4 +9,4 @@ after_includes = "#define ALIGNED(n) __attribute__ ((aligned(n)))" + aligned_n = "ALIGNED" + + [parse] +-expand = ["block-aligner-c"] ++expand = ["block_aligner_c"] +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 0f6fdd0482..7ebbe3f71d 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -13,7 +13,7 @@ add_library(foldseek-framework + FoldseekBase.cpp + ) + mmseqs_setup_derived_target(foldseek-framework) +-target_link_libraries(foldseek-framework gemmiwrapper 3di pulchra kerasify tmalign block-aligner-c) ++target_link_libraries(foldseek-framework gemmiwrapper 3di pulchra kerasify tmalign block_aligner_c) + if(ENABLE_PROSTT5) + target_link_libraries(foldseek-framework cprostt5) + target_compile_definitions(foldseek-framework PUBLIC -DHAVE_PROSTT5=1) diff --git a/recipes/foldseek/meta.yaml b/recipes/foldseek/meta.yaml index 6b7f4cfe4bef3..1c7ed4957e7f1 100644 --- a/recipes/foldseek/meta.yaml +++ b/recipes/foldseek/meta.yaml @@ -6,13 +6,16 @@ package: version: {{ version|replace("-", ".") }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('foldseek', max_pin="x") }} source: url: https://github.com/steineggerlab/foldseek/archive/{{ version }}.tar.gz sha256: {{ sha256 }} + patches: + # remove for next release + - fix-rust-1.79.patch requirements: build: @@ -57,3 +60,4 @@ extra: - martin-steinegger additional-platforms: - linux-aarch64 + - osx-arm64 From 8df7b7045eac936b763967bdd881f4559c7da1bc Mon Sep 17 00:00:00 2001 From: Michael Hall Date: Thu, 11 Jul 2024 17:07:44 +1000 Subject: [PATCH 0486/1514] Update psdm with arm support (#49115) * Update psdm with arm support * use rust compiler --- recipes/psdm/meta.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/recipes/psdm/meta.yaml b/recipes/psdm/meta.yaml index 3d8738a5598c6..96753b338e84b 100644 --- a/recipes/psdm/meta.yaml +++ b/recipes/psdm/meta.yaml @@ -10,13 +10,13 @@ source: sha256: 0414b2fde2e6c43a7d9bfd7a53da67f8e084cc4ec350ad7c498cc1937b9a15cc build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} requirements: build: - - rust >=1.55 + - {{ compiler('rust') }} - {{ compiler('c') }} # [not win] test: @@ -30,5 +30,8 @@ about: license_file: LICENSE extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - mbhall88 From 631d58bf5712e86e4d77bf80352054b546d87e9f Mon Sep 17 00:00:00 2001 From: Michael Hall Date: Thu, 11 Jul 2024 17:08:00 +1000 Subject: [PATCH 0487/1514] update rasusa with osx arm64 support (#49113) * update rasusa with osx arm64 support * fix formatting --- recipes/rasusa/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/rasusa/meta.yaml b/recipes/rasusa/meta.yaml index 04639bcc50d6d..c8d0778f8e87c 100644 --- a/recipes/rasusa/meta.yaml +++ b/recipes/rasusa/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 7921a94cb5c30c194c3d966e7dd80d034a9cf840d853b3fe1725d90d5800e2bd build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('rasusa', max_pin="x.x") }} @@ -35,5 +35,6 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 recipe-maintainers: - mbhall88 From 8f926b041abcdbce7eb3138d57489c502a8b6aa2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 11 Jul 2024 03:08:22 -0400 Subject: [PATCH 0488/1514] Update ntroot to 1.1.2 (#49112) --- recipes/ntroot/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ntroot/meta.yaml b/recipes/ntroot/meta.yaml index 1f80980f59125..b9eb9e928f42a 100644 --- a/recipes/ntroot/meta.yaml +++ b/recipes/ntroot/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ntRoot" %} -{% set version = "1.1.1" %} +{% set version = "1.1.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/bcgsc/ntRoot/releases/download/v{{ version }}/{{ name }}-{{ version }}.tar.gz - sha256: 0bf8a037b78a619a1c95d658a6dae7bd814d5a04b3c9e97a353317fafa662526 + sha256: c91ba834bc221e7883dff864aed7a2230700a515f5475b1f2d331007d9db73a8 build: number: 0 From b81aa96d271c115131d31ec867569d975c28b616 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Thu, 11 Jul 2024 09:09:46 +0200 Subject: [PATCH 0489/1514] Build seqkit for osx-arm64 (#49099) --- recipes/seqkit/meta.yaml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/recipes/seqkit/meta.yaml b/recipes/seqkit/meta.yaml index 82e52aff48227..538a6f2093241 100644 --- a/recipes/seqkit/meta.yaml +++ b/recipes/seqkit/meta.yaml @@ -8,6 +8,9 @@ source: url: https://github.com/shenwei356/seqkit/releases/download/v{{ version }}/seqkit_darwin_amd64.tar.gz # [osx] md5: 03b13956b7e3ef1678db591a79eb68ed # [osx] + url: https://github.com/shenwei356/seqkit/releases/download/v{{ version }}/seqkit_darwin_arm64.tar.gz # [arm64] + md5: 0b2716f39c3974a5c3e310bcbd4076eb # [arm64] + url: https://github.com/shenwei356/seqkit/releases/download/v{{ version }}/seqkit_linux_amd64.tar.gz # [linux] md5: 67220b508f3f81c2c8697e6534eed440 # [linux] @@ -15,7 +18,7 @@ source: md5: b83b021850c9447cfc8e0d5751b7be99 # [aarch64] build: - number: 0 + number: 1 skip: False run_exports: - {{ pin_subpackage("seqkit", max_pin="x.x") }} @@ -31,6 +34,10 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 skip-lints: - should_be_noarch_generic - should_not_be_noarch_source + identifiers: + - biotools:seqkit + - doi:10.1371/journal.pone.0163962 From e71f4803d056e9e3eaba7c2c5f2b8c974f7c8109 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Thu, 11 Jul 2024 09:16:26 +0200 Subject: [PATCH 0490/1514] Build nextalign for osx-arm64 (#49096) --- recipes/nextalign/meta.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/nextalign/meta.yaml b/recipes/nextalign/meta.yaml index 249e23a402905..c7c8fa892989f 100644 --- a/recipes/nextalign/meta.yaml +++ b/recipes/nextalign/meta.yaml @@ -16,7 +16,7 @@ source: sha256: 2d8ec8f379b150c2ac271f3c08ca79ee372b1fb14da3dc8e1b3033a1b65cfc58 # [osx and arm64] build: - number: 1 + number: 2 binary_relocation: False run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} @@ -40,6 +40,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 recipe-maintainers: - cjw85 - thanhleviet @@ -49,3 +50,5 @@ extra: skip-lints: # repackaged binary - should_be_noarch_generic + identifiers: + - doi:10.21105/joss.03773 From 69b9e20b4ebb3e99319fefd45005a524cb825a84 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Thu, 11 Jul 2024 09:17:01 +0200 Subject: [PATCH 0491/1514] Builds csvtk for osx-arm64 (#49094) --- recipes/csvtk/meta.yaml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/recipes/csvtk/meta.yaml b/recipes/csvtk/meta.yaml index 75a19c78e343c..86f0aee7a9418 100644 --- a/recipes/csvtk/meta.yaml +++ b/recipes/csvtk/meta.yaml @@ -1,21 +1,24 @@ {% set version = "0.30.0" %} - +# This package should be migrated to conda-forge due to general utility +# In that case it needs to be built from source package: name: csvtk version: {{ version }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('csvtk', max_pin='x.x') }} source: - - url: https://github.com/shenwei356/csvtk/releases/download/v{{ version }}/csvtk_darwin_amd64.tar.gz # [osx] - md5: c415255e265ba0cd547806fdbda05652 # [osx] + - url: https://github.com/shenwei356/csvtk/releases/download/v{{ version }}/csvtk_darwin_amd64.tar.gz # [osx and x86_64] + md5: c415255e265ba0cd547806fdbda05652 # [osx and x86_64] + - url: https://github.com/shenwei356/csvtk/releases/download/v{{ version }}/csvtk_darwin_arm64.tar.gz # [arm64] + md5: dd8a84c301d378ab7ff28c85d37fbefa # [arm64] - url: https://github.com/shenwei356/csvtk/releases/download/v{{ version }}/csvtk_linux_amd64.tar.gz # [linux and x86_64] md5: 8f5877d4fbea89609d64bd2679956476 # [linux and x86_64] - - url: https://github.com/shenwei356/csvtk/releases/download/v{{ version }}/csvtk_linux_arm64.tar.gz # [linux and aarch64] - md5: 2a6dd840291d23971ff538eaf3de00ec # [linux and aarch64] + - url: https://github.com/shenwei356/csvtk/releases/download/v{{ version }}/csvtk_linux_arm64.tar.gz # [aarch64] + md5: 2a6dd840291d23971ff538eaf3de00ec # [aarch64] test: commands: @@ -29,6 +32,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 skip-lints: - should_be_noarch_generic - should_not_be_noarch_source From ca42af772119bbc81f3f8d2506a264162b5fe410 Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Thu, 11 Jul 2024 03:17:36 -0400 Subject: [PATCH 0492/1514] rebuild clermontyping (#49089) * bump to rebuild * unbump build number --- recipes/clermontyping/meta.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/recipes/clermontyping/meta.yaml b/recipes/clermontyping/meta.yaml index 95446a04a3341..a1c39da64b940 100644 --- a/recipes/clermontyping/meta.yaml +++ b/recipes/clermontyping/meta.yaml @@ -5,7 +5,6 @@ package: name: "clermontyping" version: '{{version}}' - source: url: https://github.com/happykhan/ClermonTyping/archive/refs/tags/{{version}}.tar.gz sha256: '{{sha256}}' From 8a71c6aed1a39a8ae7ef6a5aeecbc36f7a6ef34e Mon Sep 17 00:00:00 2001 From: Lee Katz Date: Thu, 11 Jul 2024 03:19:41 -0400 Subject: [PATCH 0493/1514] Colorid_bv (#49106) * symlink to colorid * colorid test too * remove echo statements --- recipes/colorid_bv/build.sh | 4 ++++ recipes/colorid_bv/meta.yaml | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/recipes/colorid_bv/build.sh b/recipes/colorid_bv/build.sh index 1fb100e3dd489..f205ac87a5a63 100644 --- a/recipes/colorid_bv/build.sh +++ b/recipes/colorid_bv/build.sh @@ -9,3 +9,7 @@ RUST_BACKTRACE=1 \ C_INCLUDE_PATH=$PREFIX/include \ LIBRARY_PATH=$PREFIX/lib \ cargo install --verbose --root $PREFIX --path . + +# colorid_bv is exactly the same as colorid except it lets you multithread +# and so just symlink to colorid +ln -sv $PREFIX/bin/colorid_bv $PREFIX/bin/colorid diff --git a/recipes/colorid_bv/meta.yaml b/recipes/colorid_bv/meta.yaml index 183d9dfc9bae1..eb4fbe81ae11a 100644 --- a/recipes/colorid_bv/meta.yaml +++ b/recipes/colorid_bv/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('colorid_bv', max_pin="x.x") }} @@ -25,6 +25,7 @@ requirements: test: commands: - colorid_bv --help + - colorid --help about: home: https://github.com/hcdenbakker/{{ name }} From ad8d410dfe8d9d5b14aeaf55f6571cef9eec0ccc Mon Sep 17 00:00:00 2001 From: Lee Katz Date: Thu, 11 Jul 2024 03:20:39 -0400 Subject: [PATCH 0494/1514] Sneakernet-qc (#49111) * perl-bio-seqfeature * address errors for bld.bat and having tests * new download instructions; added src tsv and dmp files to build * new download instructions; added src tsv and dmp files to build * remove perl-bio-seqfeature * merged changes * merge * sneakernet v0.27 * ignore kalamari changes * corrected shasum * ignore kalamari changes * negate kalamari artifacts * colorid_bv --- recipes/sneakernet-qc/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/sneakernet-qc/meta.yaml b/recipes/sneakernet-qc/meta.yaml index 541ebf9d9e863..eb8c0c0a72f1e 100644 --- a/recipes/sneakernet-qc/meta.yaml +++ b/recipes/sneakernet-qc/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 noarch: generic run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} @@ -42,6 +42,7 @@ requirements: - blast - bowtie2 - chewbbaca + - colorid_bv - fastqc - flash - kalamari From bdc1cede8dc103684e4697815a2fc4ef859eb732 Mon Sep 17 00:00:00 2001 From: Rob Patro Date: Thu, 11 Jul 2024 03:20:57 -0400 Subject: [PATCH 0495/1514] Try building piscem on osx-arm64 (#49109) * Try building on osx-arm64 * Update meta.yaml --- recipes/piscem/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/piscem/meta.yaml b/recipes/piscem/meta.yaml index 2ab3bc65782ac..2cd86dcc2944b 100644 --- a/recipes/piscem/meta.yaml +++ b/recipes/piscem/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("piscem", max_pin="x.x") }} @@ -46,3 +46,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 From 6709b606044551cbd6f5eee095aac850857f37fd Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 11 Jul 2024 11:42:15 +0300 Subject: [PATCH 0496/1514] xtandem: add linux-aarch64 build (#49131) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/xtandem/build.sh | 4 +++- recipes/xtandem/meta.yaml | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/recipes/xtandem/build.sh b/recipes/xtandem/build.sh index 26a44dc276f46..c690110316680 100644 --- a/recipes/xtandem/build.sh +++ b/recipes/xtandem/build.sh @@ -1,9 +1,11 @@ #!/bin/bash +set -xe + cd src/ # without -fpermissive, this fails with GCC7 due to bad style -make CXX="${CXX}" CXXFLAGS+='-fpermissive' LDFLAGS+='-lpthread -lm -lexpat' +make -j ${CPU_COUNT} CXX="${CXX}" CXXFLAGS+='-fpermissive' LDFLAGS+='-lpthread -lm -lexpat' mkdir -p "${PREFIX}/bin" cp ../bin/tandem.exe "${PREFIX}/bin/xtandem" diff --git a/recipes/xtandem/meta.yaml b/recipes/xtandem/meta.yaml index 72fa613902b5c..a7cf61d10183c 100644 --- a/recipes/xtandem/meta.yaml +++ b/recipes/xtandem/meta.yaml @@ -11,7 +11,9 @@ source: build: skip: true # [osx] - number: 8 + number: 9 + run_exports: + - {{ pin_subpackage('xtandem', max_pin="x") }} requirements: build: @@ -34,6 +36,8 @@ about: summary: X! Tandem open source is software that can match tandem mass spectra with peptide sequences, in a process that has come to be known as protein identification extra: + additional-platforms: + - linux-aarch64 identifiers: - biotools:xtandem - doi:10.1093/bioinformatics/bth092 From c4777d5ff7c92e1624a832117f13c12f92367c27 Mon Sep 17 00:00:00 2001 From: Nextstrain bot <78992647+nextstrain-bot@users.noreply.github.com> Date: Thu, 11 Jul 2024 01:45:35 -0700 Subject: [PATCH 0497/1514] Update nextclade to 3.8.1 (#49133) Co-authored-by: nextstrain-bot --- recipes/nextclade/meta.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/recipes/nextclade/meta.yaml b/recipes/nextclade/meta.yaml index 463a69a0bd8b5..23f6a0e05c17e 100644 --- a/recipes/nextclade/meta.yaml +++ b/recipes/nextclade/meta.yaml @@ -1,5 +1,5 @@ {% set name = "nextclade" %} -{% set version = "3.8.0" %} +{% set version = "3.8.1" %} package: name: "{{ name|lower }}" @@ -7,16 +7,16 @@ package: source: - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-x86_64-unknown-linux-gnu # [linux64] - sha256: 6251f3c46236fba7a51924c6dd49581a150645efddf4248f426123524b23af7f # [linux64] + sha256: d099c8f12c2453da5d4ab7dfc90d962f486797d50f87bdf761b2e1b255054a76 # [linux64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-aarch64-unknown-linux-gnu # [aarch64] - sha256: 3575e0c1a20f1ff4f69e77ea1bcd08cb01bc80a74a750eba02cc5fa1227a3400 # [aarch64] + sha256: 4ff82022f6d703fd76a3d6e778e3dc7fa5e870f75e11d537b8458d2f67be8386 # [aarch64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-x86_64-apple-darwin # [osx and x86_64] - sha256: a5ad4c2ca527929ab8c8b3b2521287488383f78fc1ee3030cbf5af23856b58b0 # [osx and x86_64] + sha256: bf85c3b9580b2297abbae63abcd594524a106ca84e3944c5061ac3788de10db2 # [osx and x86_64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-aarch64-apple-darwin # [osx and arm64] - sha256: 579f499f7f0f5f2b9d520971ded4e265140859317f083ff8e2879ad74373ec33 # [osx and arm64] + sha256: e001446f040533fc689f92421ebf7ea8ca822eb954f2e43b71979ec3a0f6faa0 # [osx and arm64] build: - number: 2 + number: 0 binary_relocation: False run_exports: - {{ pin_compatible(name, max_pin='x') }} From db8d7523e481eb004c07aafb4933ea61a02e01c2 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Thu, 11 Jul 2024 13:13:10 +0200 Subject: [PATCH 0498/1514] Build raxml for osx-arm64 (#49098) * Build raxml for osx-arm64 * Disable failing arm64 builds * Apply patch to not overwrite CC env variable --- recipes/raxml/build.sh | 23 ++++++++++++++++------- recipes/raxml/meta.yaml | 13 +++++++------ 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/recipes/raxml/build.sh b/recipes/raxml/build.sh index 6dd8706245751..92f87d162d35e 100644 --- a/recipes/raxml/build.sh +++ b/recipes/raxml/build.sh @@ -1,19 +1,28 @@ #!/bin/bash -case `uname` in -Darwin) SUF=.mac;; -Linux) SUF=.gcc;; -*) echo "Unknown architecture"; exit 1;; +set -exo pipefail + +case $(uname) in +Darwin) SUF=.mac ;; +Linux) SUF=.gcc ;; +*) + echo "Unknown architecture" + exit 1 + ;; esac ARCH=$(uname -m) -mkdir -p $PREFIX/bin +mkdir -p "$PREFIX"/bin for PTHREADS in "" .PTHREADS; do for OPT in "" .SSE3 .AVX2; do - if [ "${ARCH}" == "aarch64" -a "${OPT}" == ".AVX2" ]; then + if [[ "${ARCH}" == "aarch64" && "${OPT}" == ".AVX2" ]]; then + continue + fi + + if [[ ${ARCH} == "arm64" && ("${OPT}" == ".AVX2" || "${OPT}" == ".SSE3" || "${PTHREADS}" == ".PTHREADS") ]]; then continue fi @@ -25,7 +34,7 @@ for PTHREADS in "" .PTHREADS; do MAKEFILE=${MAKEFILE}.gcc fi make -f ${MAKEFILE} CC=$CC - mv raxmlHPC* $PREFIX/bin + mv raxmlHPC* "$PREFIX"/bin make -f ${MAKEFILE} clean done done diff --git a/recipes/raxml/meta.yaml b/recipes/raxml/meta.yaml index b98b2551cc414..b7e8de64fbd89 100644 --- a/recipes/raxml/meta.yaml +++ b/recipes/raxml/meta.yaml @@ -3,7 +3,7 @@ package: version: "8.2.13" build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('raxml', max_pin="x") }} @@ -19,11 +19,11 @@ requirements: test: commands: - raxmlHPC -h > /dev/null - - raxmlHPC-PTHREADS -h > /dev/null - - raxmlHPC-SSE3 -h > /dev/null - - raxmlHPC-PTHREADS-SSE3 -h > /dev/null - - 'raxmlHPC-AVX2 -h > /dev/null' # [not aarch64] - - 'raxmlHPC-PTHREADS-AVX2 -h > /dev/null' # [not aarch64] + - raxmlHPC-PTHREADS -h > /dev/null # [not arm64] + - raxmlHPC-SSE3 -h > /dev/null # [not arm64] + - raxmlHPC-PTHREADS-SSE3 -h > /dev/null # [not arm64] + - 'raxmlHPC-AVX2 -h > /dev/null' # [not (aarch64 or arm64)] + - 'raxmlHPC-PTHREADS-AVX2 -h > /dev/null' # [not (aarch64 or arm64)] about: home: http://sco.h-its.org/exelixis/web/software/raxml/index.html @@ -33,6 +33,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:raxml - doi:10.1093/bioinformatics/btu033 From 17b994e39b54ea673d8b5c77b50ba54634d9e2a1 Mon Sep 17 00:00:00 2001 From: Milot Mirdita Date: Thu, 11 Jul 2024 20:14:06 +0900 Subject: [PATCH 0499/1514] Update MMseqs2 server with MacOS ARM support (#49125) --- recipes/mmseqs2-server/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/mmseqs2-server/meta.yaml b/recipes/mmseqs2-server/meta.yaml index 0889f5d633d38..561f0635f9b18 100644 --- a/recipes/mmseqs2-server/meta.yaml +++ b/recipes/mmseqs2-server/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version|replace("-", ".") }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('mmseqs2-server', max_pin=None) }} @@ -39,3 +39,4 @@ extra: - milot-mirdita additional-platforms: - linux-aarch64 + - osx-arm64 From d0c68cb2aa0bb21c8fcc9b473ec192db950061d9 Mon Sep 17 00:00:00 2001 From: "Colin J. Brislawn" Date: Thu, 11 Jul 2024 07:27:13 -0400 Subject: [PATCH 0500/1514] Build vsearch for osx-arm64 (#49117) * add osx-arm64 no idea if this _should_ even work, but let's try! * Update build.sh * Update meta.yaml * Enable debug for vsearch's build.sh Signed-off-by: Martin Tzvetanov Grigorov * Add m4 as a build dependency Signed-off-by: Martin Tzvetanov Grigorov * Set M4 env var to point to the m4 binary we prefer to use https://lists.gnu.org/archive/html/autoconf/2003-12/msg00243.html Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov --- recipes/vsearch/build.sh | 5 ++++- recipes/vsearch/meta.yaml | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/recipes/vsearch/build.sh b/recipes/vsearch/build.sh index 05aa2d19c547b..014be82e9d4bd 100755 --- a/recipes/vsearch/build.sh +++ b/recipes/vsearch/build.sh @@ -1,12 +1,15 @@ #!/bin/bash +set -xe + # Remove configure.ac C(XX)?FLAGS override sed -i.bak 's/ *CX\?X\?FLAGS/#\0/p' configure.ac # Remove MACOS_DEPLOYMENT_TARGET override sed -i.bak 's/MACOSX_DEPLOYMENT_TARGET=/#\0/' configure.ac sed -i.bak 's/export MACOSX_DEPLOYMENT_TARGET=/#\0/' src/Makefile.am +export M4="$BUILD_PREFIX/bin/m4" ./autogen.sh ./configure --prefix=$PREFIX -make +make -j ${CPU_COUNT} make install diff --git a/recipes/vsearch/meta.yaml b/recipes/vsearch/meta.yaml index c1aa24bd39cde..7cee8874d5bbb 100644 --- a/recipes/vsearch/meta.yaml +++ b/recipes/vsearch/meta.yaml @@ -10,7 +10,7 @@ source: sha256: '{{ sha256 }}' build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('vsearch', max_pin="x") }} @@ -21,6 +21,7 @@ requirements: - '{{ compiler("cxx") }}' - automake - autoconf + - m4 host: - zlib - bzip2 @@ -45,6 +46,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:vsearch - doi:10.7717/peerj.2584 From 374a1998a6d966ce07ff8809d561950b58d4abd0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 11 Jul 2024 10:38:59 -0400 Subject: [PATCH 0501/1514] Update pia to 1.5.3 (#49137) --- recipes/pia/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pia/meta.yaml b/recipes/pia/meta.yaml index 4c87fb3b28903..56d1fa38fc1d1 100644 --- a/recipes/pia/meta.yaml +++ b/recipes/pia/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pia" %} -{% set version = "1.5.2" %} -{% set sha256 = "7a72e0ab93982a707b829e68453a567c3fd1d1d24de1e5bdc6bd0b2fe8f2e05a" %} +{% set version = "1.5.3" %} +{% set sha256 = "424554ee668e120dada07d01bbf107d9edbb75bb6511278a5c6b724b5344586c" %} package: name: {{ name|lower }} From 6360b57f1733c2236b571568ba157b14bb3a4894 Mon Sep 17 00:00:00 2001 From: Wei Shen Date: Thu, 11 Jul 2024 15:42:18 +0100 Subject: [PATCH 0502/1514] add osx-arm64 support for TaxonKit (#49134) --- recipes/taxonkit/meta.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/taxonkit/meta.yaml b/recipes/taxonkit/meta.yaml index 61fb6071c45fb..f1f47d02d7e8c 100644 --- a/recipes/taxonkit/meta.yaml +++ b/recipes/taxonkit/meta.yaml @@ -5,13 +5,15 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('taxonkit', max_pin='x.x') }} source: - url: https://github.com/shenwei356/taxonkit/releases/download/v{{ version }}/taxonkit_darwin_amd64.tar.gz # [osx] md5: 5c12cfac4939f966824eda8eb774cf9b # [osx] + - url: https://github.com/shenwei356/taxonkit/releases/download/v{{ version }}/taxonkit_darwin_arm64.tar.gz # [arm64] + md5: 4077cb27d588cd0c3ed174e80d9a54af # [arm64] - url: https://github.com/shenwei356/taxonkit/releases/download/v{{ version }}/taxonkit_linux_amd64.tar.gz # [linux and x86_64] md5: bfedc8dbfc2db63460ed31843fc5f3c3 # [linux and x86_64] - url: https://github.com/shenwei356/taxonkit/releases/download/v{{ version }}/taxonkit_linux_arm64.tar.gz # [linux and aarch64] @@ -30,6 +32,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 skip-lints: - should_be_noarch_generic - should_not_be_noarch_source From 757337b9ed06ba75568902565b8378d759764fce Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 11 Jul 2024 10:45:36 -0400 Subject: [PATCH 0503/1514] Update viguno to 0.3.1 (#49140) * Update viguno to 0.3.0 * Update viguno to 0.3.1 --- recipes/viguno/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/viguno/meta.yaml b/recipes/viguno/meta.yaml index cfeec69d90f06..bf70182f7aac7 100644 --- a/recipes/viguno/meta.yaml +++ b/recipes/viguno/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.2.1" %} -{% set sha256 = "00da4730a4dd63b05eeb8e7ae0b58ba829e7145cc41f0f9194470376f367b937" %} +{% set version = "0.3.1" %} +{% set sha256 = "92250d0336e148af08366ee7e4cf88bd95f70e6c0b8aa1c24732b165250953b4" %} package: name: viguno From f8388fbaf9590756d6631bd2d448bb09488688ba Mon Sep 17 00:00:00 2001 From: Carl Mathias Kobel Date: Thu, 11 Jul 2024 16:50:25 +0200 Subject: [PATCH 0504/1514] change name "Assemblycomparator2" -> "CompareM2" (#49142) * done * tar.gz not zip * thought that dependency error was fixed upstream? * external problem * assemblycomparator2 changed name to comparem2 --- recipes/assemblycomparator2/build.sh | 14 --------- recipes/assemblycomparator2/meta.yaml | 41 --------------------------- 2 files changed, 55 deletions(-) delete mode 100644 recipes/assemblycomparator2/build.sh delete mode 100644 recipes/assemblycomparator2/meta.yaml diff --git a/recipes/assemblycomparator2/build.sh b/recipes/assemblycomparator2/build.sh deleted file mode 100644 index 340a03825dff5..0000000000000 --- a/recipes/assemblycomparator2/build.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -euo - -mkdir -p ${PREFIX}/bin - -export PACKAGE_HOME="${PREFIX}/share/${PKG_NAME}-${PKG_VERSION}-${PKG_BUILDNUM}" - -# First we put the necessary files in into the conda prefix/share directory: -mkdir -p "${PACKAGE_HOME}" -chmod 755 asscom2 -cp -f asscom2 LICENSE "${PACKAGE_HOME}" -cp -rf config docs dynamic_report profile resources tests workflow "${PACKAGE_HOME}" - -# This is the binary that we wish to be able to run. -ln -sf ${PACKAGE_HOME}/asscom2 ${PREFIX}/bin/asscom2 diff --git a/recipes/assemblycomparator2/meta.yaml b/recipes/assemblycomparator2/meta.yaml deleted file mode 100644 index 5503b4069f495..0000000000000 --- a/recipes/assemblycomparator2/meta.yaml +++ /dev/null @@ -1,41 +0,0 @@ -{% set name = "assemblycomparator2" %} -{% set version = "2.7.1" %} -{% set sha256 = "20d02a94fef9565c21b93c108a5ff95797563a6ec40bd016a581de68ffccca60" %} - -package: - name: {{ name }} - version: {{ version }} - -source: - url: https://github.com/cmkobel/assemblycomparator2/archive/refs/tags/v{{ version }}.tar.gz - sha256: {{ sha256 }} - -build: - number: 2 - noarch: generic - run_exports: - - {{ pin_subpackage('assemblycomparator2', max_pin="x") }} - -requirements: - run: - - snakemake-minimal <8 - - pulp <2.8 - - mamba # Necessary for snakemake to install child environments during development. - - pandas - -test: - commands: - - "touch dummy.fa; asscom2 --help" - -about: - home: "https://github.com/cmkobel/assemblycomparator2" - summary: 'Assemblycomparator2: Genomes to report pipeline' - license_family: GPL3 - license: "GPL-3.0-or-later" - license_file: LICENSE - dev_url: "https://github.com/cmkobel/assemblycomparator2" - doc_url: "https://assemblycomparator2.readthedocs.io/" - -extra: - recipe-maintainers: - - cmkobel From d88d819aa8c64c0aad0e4117c258b72fa590c080 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 11 Jul 2024 11:07:41 -0400 Subject: [PATCH 0505/1514] Update zdb to 1.3.0 (#49139) --- recipes/zdb/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/zdb/meta.yaml b/recipes/zdb/meta.yaml index 508c74054ba0c..0ac72934d1172 100644 --- a/recipes/zdb/meta.yaml +++ b/recipes/zdb/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.2.3" %} +{% set version = "1.3.0" %} package: name: zdb @@ -11,8 +11,8 @@ build: - {{ pin_subpackage('zdb', max_pin="x.x") }} source: - url: https://github.com/metagenlab/zDB/archive/refs/tags/v1.2.3.tar.gz - sha256: b73a72cce424c1db28ccb0f1be20cbf61855260bb957e2829a6d9f991a20c029 + url: https://github.com/metagenlab/zDB/archive/refs/tags/v1.3.0.tar.gz + sha256: 3f9496d423875e0d281bc62c3fcc88f9878c167ea14ff9b8afebfea4087466c0 requirements: run: From 6d5d1958b9dfed9582b745716b4d70e9544c1b47 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 11 Jul 2024 11:40:09 -0400 Subject: [PATCH 0506/1514] Update beacon2-import to 2.0.0 (#49146) * Update beacon2-import to 2.0.0 * pin python to <3.12 --------- Co-authored-by: mencian --- recipes/beacon2-import/meta.yaml | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/recipes/beacon2-import/meta.yaml b/recipes/beacon2-import/meta.yaml index 70ad85235693b..b4d5ca62e8fdc 100644 --- a/recipes/beacon2-import/meta.yaml +++ b/recipes/beacon2-import/meta.yaml @@ -1,5 +1,5 @@ {% set name = "beacon2-import" %} -{% set version = "1.0.8" %} +{% set version = "2.0.0" %} package: name: {{ name|lower }} @@ -7,27 +7,27 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/beacon2-import-{{ version }}.tar.gz - sha256: 5f55afebd5c5a57c188e3a691bb2fac72f572298e699242803e995e005435e3e + sha256: a1240b1f24aa7239c7e4b057031f32f3a621b49b72bbdadc62d4c7de1958fa17 build: entry_points: - beacon2-import = beacon2_import.beacon2_import:beacon2_import - beacon2-search = beacon2_search.beacon2_search:beacon_query noarch: python - script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir number: 0 run_exports: - {{ pin_subpackage('beacon2-import', max_pin="x") }} requirements: host: - - python + - python <3.12 - pip run: - - python + - python <3.12 - jsonschema - dataclasses - - bioblend =0.10.0 + - bioblend =0.10.0 - cyvcf2 - pymongo @@ -35,14 +35,9 @@ test: imports: - beacon2_import - beacon2_search - - utils commands: - - pip check - beacon2-import --help - beacon2-search --help - requires: - - python - - pip about: home: https://pypi.org/project/beacon2-import/ From 4f50c881f0bf23d78208b1a77885dff2cbbf39b0 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Thu, 11 Jul 2024 18:13:20 +0200 Subject: [PATCH 0507/1514] Build vcftools for osx-arm64 (#49102) * Build vcftools for osx-arm64 * Try C++11 * Reorder compiler to be first * Try explicit path to m4 Big thanks to Milot Mirdita for figuring this out! --------- Co-authored-by: Milot Mirdita --- recipes/vcftools/build.sh | 6 ++++++ recipes/vcftools/meta.yaml | 6 ++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/recipes/vcftools/build.sh b/recipes/vcftools/build.sh index 6f61929f3045b..b092226687777 100644 --- a/recipes/vcftools/build.sh +++ b/recipes/vcftools/build.sh @@ -1,5 +1,11 @@ #!/bin/bash set -euo pipefail + +# uses random_shuffle which was removed in C++17 +export CXXFLAGS="-std=c++11 ${CXXFLAGS}" + +export M4=$BUILD_PREFIX/bin/m4 + ./autogen.sh ./configure --prefix=$PREFIX #sed -i.bak -e 's/SUBDIRS = cpp perl/SUBDIRS = cpp/' ./src/Makefile diff --git a/recipes/vcftools/meta.yaml b/recipes/vcftools/meta.yaml index fc5557f5b5c3b..9b96a1085272c 100644 --- a/recipes/vcftools/meta.yaml +++ b/recipes/vcftools/meta.yaml @@ -13,14 +13,14 @@ source: - patch build: - number: 10 + number: 11 run_exports: - {{ pin_subpackage('vcftools', max_pin='x.x') }} requirements: build: - - make - {{ compiler('cxx') }} + - make - autoconf - automake - libtool @@ -45,5 +45,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:vcftools + - doi:10.1093/bioinformatics/btr330 From b54581dc2f044cd4cffb48cfb5f6ef1af6f02112 Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Thu, 11 Jul 2024 12:22:23 -0400 Subject: [PATCH 0508/1514] remove rnaformer (#49135) * change yml to yaml * add run_exports * remove rnaformer which is in conda-forge --- recipes/rnaformer/meta.yml | 57 -------------------------------------- 1 file changed, 57 deletions(-) delete mode 100644 recipes/rnaformer/meta.yml diff --git a/recipes/rnaformer/meta.yml b/recipes/rnaformer/meta.yml deleted file mode 100644 index 5259da88ef507..0000000000000 --- a/recipes/rnaformer/meta.yml +++ /dev/null @@ -1,57 +0,0 @@ -{% set name = "RNAformer" %} -{% set version = "0.0.1" %} - -package: - name: {{ name|lower }} - version: {{ version }} - -source: - url: https://pypi.io/packages/source/r/{{ name|lower }}/{{ name|lower }}-{{ version }}.tar.gz - sha256: 36374aa476ffd0be681e8ad29fec64cb074b6e341db1dc8179fcbd43cdf5da55 - -build: - noarch: python - script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation - number: 0 - -requirements: - host: - - python >=3.10 - - pip - run: - - python >=3.10 - - pytorch - - torchvision - - tqdm - - pyyaml - - pyaml - - numpy - - packaging - - wheel - - tabulate - - scipy - - pandas - - scikit-learn - - matplotlib-base - - polars - - loralib - - tensorboard - - transformers - - datasets - - pytorch-lightning - - deepspeed - - rotary-embedding-torch - -test: - imports: - - RNAformer - -about: - home: https://github.com/automl/RNAformer - summary: 'RNAformer: a simple single-sequence-based deep learning model for RNA secondary structure prediction.' - license: Apache-2.0 - license_file: LICENSE - -extra: - recipe-maintainers: - - ivelet From b7cfc45a5d7b1577f7ac83fababe9da499e9d51c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 11 Jul 2024 15:38:50 -0400 Subject: [PATCH 0509/1514] Update cpstools to 1.0.12 (#49149) Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/cpstools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/cpstools/meta.yaml b/recipes/cpstools/meta.yaml index 1d49cc214a881..708dea0eb24f7 100644 --- a/recipes/cpstools/meta.yaml +++ b/recipes/cpstools/meta.yaml @@ -1,6 +1,6 @@ {% set name = "cpstools" %} -{% set version = "1.0.11" %} -{% set sha256 = "035420514fad0af1e0e06bd6f8932e9fe74e642aa97250b7279e7ce9009b5a31" %} +{% set version = "1.0.12" %} +{% set sha256 = "299e324e30a3b45dcb2cffb354bf41f2698b6193699da0e2631db5e6b3616c07" %} package: name: {{ name|lower }} From 72d5f6f3f35cb67516d754043ba0ca865f0129b9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 11 Jul 2024 15:44:44 -0400 Subject: [PATCH 0510/1514] Update beacon2-import to 2.1.0 (#49153) --- recipes/beacon2-import/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/beacon2-import/meta.yaml b/recipes/beacon2-import/meta.yaml index b4d5ca62e8fdc..21173f1c679c8 100644 --- a/recipes/beacon2-import/meta.yaml +++ b/recipes/beacon2-import/meta.yaml @@ -1,5 +1,5 @@ {% set name = "beacon2-import" %} -{% set version = "2.0.0" %} +{% set version = "2.1.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/beacon2-import-{{ version }}.tar.gz - sha256: a1240b1f24aa7239c7e4b057031f32f3a621b49b72bbdadc62d4c7de1958fa17 + sha256: 788fd69d03f5133cd30a97509904686469f4abfb14072c895b37569708348c39 build: entry_points: From fcf8ad2cbb2340b6c0c57e493d399e0a2fbf0bfb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 11 Jul 2024 15:44:53 -0400 Subject: [PATCH 0511/1514] Update synapseclient to 4.3.1 (#49154) --- recipes/synapseclient/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/synapseclient/meta.yaml b/recipes/synapseclient/meta.yaml index e9463445c0fae..07be3a88467bc 100644 --- a/recipes/synapseclient/meta.yaml +++ b/recipes/synapseclient/meta.yaml @@ -1,5 +1,5 @@ {% set name = "synapseclient" %} -{% set version = "4.3.0" %} +{% set version = "4.3.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/synapseclient-{{ version }}.tar.gz - sha256: a1149a64b3281669d42c69e210677a902478b8f6b302966d518473c7384f6387 + sha256: 9d1c2cd1d6fe4fabb386290c0eed20944ab7e44e6713db40f19cf28babe3be3c build: noarch: python From d798ff5ffc299e0949988c9b430c303ad4da7697 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 11 Jul 2024 16:44:43 -0400 Subject: [PATCH 0512/1514] Update harpy to 1.2.2 (#49160) --- recipes/harpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index 09bfca5bdf8f1..07613277f35ca 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.2.1" %} -{% set sha256 = "d028c751815cdba8cbbef81e14241314f5937831c079eb0164ee338e56a982a0" %} +{% set version = "1.2.2" %} +{% set sha256 = "1d02296332986cc779397f9e6685e25b3f592873962c9d0c8ea707a7b51303b3" %} package: name: harpy From e67ef18d8a6b55ea061843d43dbd945642f66afb Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Thu, 11 Jul 2024 19:57:15 -0400 Subject: [PATCH 0513/1514] bowtie2: add osx-arm64 (#49150) --- recipes/bowtie2/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/bowtie2/meta.yaml b/recipes/bowtie2/meta.yaml index d0240d08b9706..e4fde80b6a4f3 100644 --- a/recipes/bowtie2/meta.yaml +++ b/recipes/bowtie2/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 841a6a60111b690c11d1e123cb5c11560b4cd1502b5cee7e394fd50f83e74e13 build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('bowtie2', max_pin="x") }} @@ -60,6 +60,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:bowtie2 - doi:10.1038/nmeth.1923 From 7bb0b37babca48bd24616ab98f4a62192f76a901 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 12 Jul 2024 02:57:45 +0300 Subject: [PATCH 0514/1514] epik: add linux-aarch64 build (#49080) * epik: add linux-aarch64 build Pin boost to 1.85 as discussed at https://github.com/bioconda/bioconda-recipes/pull/49000 Signed-off-by: Martin Tzvetanov Grigorov * Use `long double` as a replacement for float128 on aarch64/arm64 Signed-off-by: Martin Tzvetanov Grigorov * Add osx-arm64 --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/epik/build.sh | 2 +- recipes/epik/epik-aarch64.patch | 23 +++++++++++++++++++++++ recipes/epik/meta.yaml | 12 +++++++++--- 3 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 recipes/epik/epik-aarch64.patch diff --git a/recipes/epik/build.sh b/recipes/epik/build.sh index 7bdd89211df09..f82392be5b449 100644 --- a/recipes/epik/build.sh +++ b/recipes/epik/build.sh @@ -13,7 +13,7 @@ mkdir -p $PREFIX/bin mkdir -p $PREFIX/lib cmake -B build -DBUILD_SHARED_LIBS=ON --install-prefix=$PREFIX -cmake --build build --target all +cmake --build build --target all -j ${CPU_COUNT} cmake --install build ls $PREFIX/bin diff --git a/recipes/epik/epik-aarch64.patch b/recipes/epik/epik-aarch64.patch new file mode 100644 index 0000000000000..843a9e88658ee --- /dev/null +++ b/recipes/epik/epik-aarch64.patch @@ -0,0 +1,23 @@ +diff --git i/epik/include/epik/place.h w/epik/include/epik/place.h +index d348755..e78beea 100644 +--- i/epik/include/epik/place.h ++++ w/epik/include/epik/place.h +@@ -7,7 +7,17 @@ + #include + #include + +-#ifdef __clang__ ++#ifdef __ARM_NEON ++ ++#include ++ ++namespace epik::impl ++{ ++ using lwr_type = long double; ++ extern long double (*powl)(long double, long double); ++} ++ ++#elif defined(__clang__) + /// Clang still does not fully support boost::multiprecion. + /// We use floats instead despite of known precion-related + /// issues in rare cases diff --git a/recipes/epik/meta.yaml b/recipes/epik/meta.yaml index 438e50ab8cc17..2be6f602946ce 100644 --- a/recipes/epik/meta.yaml +++ b/recipes/epik/meta.yaml @@ -9,9 +9,11 @@ package: source: url: https://github.com/phylo42/{{ name|lower }}/releases/download/v{{ version }}/EPIK-v{{ version }}_src_for_bioconda.tar.gz sha256: {{ sha256 }} + patches: + - epik-aarch64.patch build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('epik', max_pin="x.x") }} @@ -22,11 +24,11 @@ requirements: - cmake - llvm-openmp # [osx] host: - - boost-cpp >=1.67 + - boost-cpp =1.85 - zlib - rapidjson run: - - boost-cpp >=1.67 + - boost-cpp =1.85 - llvm-openmp # [osx] - python - click @@ -40,3 +42,7 @@ about: summary: "EPIK is a tool for fast alignement-free phylogenetic placements." description: "EPIK uses pre-computed phylo-k-mers indexes (see package IPK) to rapidly place large amounts of sequences on a fixed phylogenetic tree. Please cite: doi.org/10.1093/bioinformatics/btad692" +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 \ No newline at end of file From 833113d982b6300e2617aa469e7a066ca5cd8ab8 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 12 Jul 2024 02:58:25 +0300 Subject: [PATCH 0515/1514] gap2seq: add linux-aarch64 build (#49141) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/gap2seq/build.sh | 2 +- recipes/gap2seq/meta.yaml | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/recipes/gap2seq/build.sh b/recipes/gap2seq/build.sh index 1e7344d52a564..166133ca8216d 100644 --- a/recipes/gap2seq/build.sh +++ b/recipes/gap2seq/build.sh @@ -1,6 +1,6 @@ #!/bin/bash -set -e -o pipefail +set -xe -o pipefail export CPPFLAGS="$CPPFLAGS -I${PREFIX}/include" export LDFLAGS="$LDFLAGS -L${PREFIX}/lib" diff --git a/recipes/gap2seq/meta.yaml b/recipes/gap2seq/meta.yaml index fb36b3c3f399d..9140cdb128b41 100644 --- a/recipes/gap2seq/meta.yaml +++ b/recipes/gap2seq/meta.yaml @@ -10,8 +10,10 @@ package: version: {{ version }} build: - number: 3 + number: 4 skip: True # [osx or py2k] + run_exports: + - {{ pin_subpackage(name|lower, max_pin="x") }} source: #- url: https://github.com/rikuu/{{ name }}/archive/v{{ version }}.tar.gz @@ -55,6 +57,7 @@ about: summary: Gap2Seq is a tool for filling gaps between contigs in genome assemblies. extra: - notes: "Gap2Seq is only tested on Linux x86_64 by its author." + additional-platforms: + - linux-aarch64 recipe-maintainers: - notestaff From 90c73b9d5c9c812dfe8bdba9cafa7cd7701ced31 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 12 Jul 2024 02:59:01 +0300 Subject: [PATCH 0516/1514] phylodm: add aarch64/arm64 builds (#49143) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/phylodm/meta.yaml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/recipes/phylodm/meta.yaml b/recipes/phylodm/meta.yaml index e7defd7b2b28e..b35433c6c1c49 100644 --- a/recipes/phylodm/meta.yaml +++ b/recipes/phylodm/meta.yaml @@ -11,12 +11,13 @@ source: sha256: {{ sha256 }} build: - skip: true # [py2k or py36] - number: 1 + number: 2 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} requirements: build: - - rust >=1.65 + - {{ compiler('rust') }} host: - python - pip @@ -40,6 +41,9 @@ about: summary: Efficient calculation of phylogenetic distance matrices. extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - aaronmussig identifiers: From 0a6c7808c40f367b4c935146e2612b864f503d25 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 12 Jul 2024 02:59:27 +0300 Subject: [PATCH 0517/1514] build(icfree-ml): update python versions allowed (#49147) See #49138 Signed-off-by: Martin Tzvetanov Grigorov --- recipes/icfree-ml/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/icfree-ml/meta.yaml b/recipes/icfree-ml/meta.yaml index 8afdf12e50e75..4581510534a2c 100644 --- a/recipes/icfree-ml/meta.yaml +++ b/recipes/icfree-ml/meta.yaml @@ -10,7 +10,7 @@ source: sha256: e57f358a372f5f8b5040dca9c500c25be1e1594a73557cc5ae97bf7784aba384 build: - number: 0 + number: 1 noarch: python script: {{ PYTHON }} -m pip install -vv . run_exports: @@ -18,10 +18,10 @@ build: requirements: host: - - python >3.6 + - python >3.8,<3.12 - pip run: - - python >3.6 + - python >3.8,<3.12 - biopython - pysbol2 - blast From 251de91a24141619b85c41ba2cd54f03e64c6a27 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 12 Jul 2024 02:59:58 +0300 Subject: [PATCH 0518/1514] mbg: add aarch64/arm64 builds (#49145) * mbg: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Add a patch for linux aarch64 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/mbg/.gitattributes | 2 ++ recipes/mbg/build.sh | 4 +++- recipes/mbg/mbg-aarch64.patch | 25 +++++++++++++++++++++++++ recipes/mbg/meta.yaml | 8 +++++++- 4 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 recipes/mbg/.gitattributes create mode 100644 recipes/mbg/mbg-aarch64.patch diff --git a/recipes/mbg/.gitattributes b/recipes/mbg/.gitattributes new file mode 100644 index 0000000000000..1d0ccc127c3c3 --- /dev/null +++ b/recipes/mbg/.gitattributes @@ -0,0 +1,2 @@ +# the file contains both CRLF and LF line endings. Tell Git to not touch it +mbg-aarch64.patch binary diff --git a/recipes/mbg/build.sh b/recipes/mbg/build.sh index 4db0b74900822..7b6cab79806d5 100644 --- a/recipes/mbg/build.sh +++ b/recipes/mbg/build.sh @@ -1,6 +1,8 @@ #!/usr/bin/env bash +set -xe + cd $SRC_DIR -make bin/MBG +make -j ${CPU_COUNT} bin/MBG mkdir -p $PREFIX/bin cp bin/MBG $PREFIX/bin diff --git a/recipes/mbg/mbg-aarch64.patch b/recipes/mbg/mbg-aarch64.patch new file mode 100644 index 0000000000000..3cb0d038c4a78 --- /dev/null +++ b/recipes/mbg/mbg-aarch64.patch @@ -0,0 +1,25 @@ +diff --git i/src/RankBitvector.cpp w/src/RankBitvector.cpp +index 2d7c98a..e0adaec 100644 +--- i/src/RankBitvector.cpp ++++ w/src/RankBitvector.cpp +@@ -3,11 +3,20 @@ + + int popcount(uint64_t x) + { ++#ifdef __x86_64__ + //https://gcc.gnu.org/onlinedocs/gcc-4.8.4/gcc/X86-Built-in-Functions.html + // return __builtin_popcountll(x); + //for some reason __builtin_popcount takes 21 instructions so call assembly directly + __asm__("popcnt %0, %0" : "+r" (x)); + return x; ++#else ++ uint64_t count = 0; ++ while (x) { ++ count += x & 1; ++ x >>= 1; ++ } ++ return count; ++#endif + } + + RankBitvector::RankBitvector() : diff --git a/recipes/mbg/meta.yaml b/recipes/mbg/meta.yaml index 0ba6a59d45aed..8b8037f18df43 100644 --- a/recipes/mbg/meta.yaml +++ b/recipes/mbg/meta.yaml @@ -12,9 +12,10 @@ source: patches: - version.patch - osx_availability.patch # [osx] + - mbg-aarch64.patch # [aarch64 or arm64] build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('mbg', max_pin="x.x") }} @@ -34,3 +35,8 @@ about: license: MIT license_file: LICENSE.md summary: Minimizer based sparse de Bruijn graph constructor + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 \ No newline at end of file From 96572e8d120b81a0ea394934ef09efe8d958ade0 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 12 Jul 2024 03:00:26 +0300 Subject: [PATCH 0519/1514] skesa: add linux-aarch64 build (#48962) * skesa: add linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Allow boost 1.70 for linux-aarch64 because there is no -aarch64 build for 1.71 Signed-off-by: Martin Tzvetanov Grigorov * Add a patch for linux-aarch64 build Signed-off-by: Martin Tzvetanov Grigorov * Do not use parallelism for the build. It OOMs at CircleCI * Pass '-std=c++11' to the compiler flags Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/skesa/build.sh | 4 +- recipes/skesa/meta.yaml | 12 +- recipes/skesa/skesa-aarch64.patch | 9349 +++++++++++++++++++++++++++++ 3 files changed, 9361 insertions(+), 4 deletions(-) create mode 100644 recipes/skesa/skesa-aarch64.patch diff --git a/recipes/skesa/build.sh b/recipes/skesa/build.sh index 788ad7a98c066..0c18f3c4ee7a8 100644 --- a/recipes/skesa/build.sh +++ b/recipes/skesa/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + export LIBRARY_PATH=${PREFIX}/lib export LD_LIBRARY_PATH=${PREFIX}/lib export CPP_INCLUDE_PATH=${PREFIX}/include @@ -15,7 +17,7 @@ LDFLAGS=-L${PREFIX}/lib make -f Makefile.nongs \ BOOST_PATH=${PREFIX} \ - CC="$CXX $CXXFLAGS" \ + CC="$CXX -std=c++11 $CXXFLAGS" \ LDFLAGS=$LDFLAGS mkdir -p ${PREFIX}/bin diff --git a/recipes/skesa/meta.yaml b/recipes/skesa/meta.yaml index b525d025cfcec..b0650797d27fe 100644 --- a/recipes/skesa/meta.yaml +++ b/recipes/skesa/meta.yaml @@ -11,9 +11,11 @@ package: source: url: https://github.com/ncbi/SKESA/archive/refs/tags/{{ release_tag }}.tar.gz sha256: dc5ad60f963afb09d3f2a3bab8917e657bd93364f0deca6e6844ede44968e979 + patches: + - skesa-aarch64.patch # [linux and aarch64] build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin='x') }} @@ -23,11 +25,11 @@ requirements: - {{ compiler('cxx') }} host: # Last version of conda-forge::boost that included static files (.a) - - boost 1.71 + - boost >=1.70,<=1.71 - zlib run: - libstdcxx-ng # [linux] - - boost 1.71 # [osx] + - boost >=1.70,<=1.71 # [osx] - zlib # [osx] test: @@ -43,3 +45,7 @@ about: license: Public Domain license_file: LICENSE summary: 'Strategic Kmer Extension for Scrupulous Assemblies & Sequence Assembly Using Target Enrichment' + +extra: + additional-platforms: + - linux-aarch64 diff --git a/recipes/skesa/skesa-aarch64.patch b/recipes/skesa/skesa-aarch64.patch new file mode 100644 index 0000000000000..03088386d207d --- /dev/null +++ b/recipes/skesa/skesa-aarch64.patch @@ -0,0 +1,9349 @@ +diff --git c/Makefile i/Makefile +index b99fe8f..3ce0214 100644 +--- c/Makefile ++++ i/Makefile +@@ -41,7 +41,7 @@ NGS_LIB := -L $(NGS_PATH)/lib64 + + CC = c++ -std=c++11 -fdiagnostics-color=never + CFLAGS = -Wall -Wno-format-y2k -pthread -fPIC -O3 -finline-functions -fstrict-aliasing \ +- -fomit-frame-pointer -msse4.2 $(BOOST_INCL) $(NGS_INCL) $(VDB_INCL) ++ -fomit-frame-pointer $(BOOST_INCL) $(NGS_INCL) $(VDB_INCL) + + PLATFORM=$(shell uname -s) + +diff --git c/Makefile.nongs i/Makefile.nongs +index 34c8c86..c22f314 100644 +--- c/Makefile.nongs ++++ i/Makefile.nongs +@@ -32,7 +32,7 @@ endif + + CC = c++ -std=c++11 + CFLAGS = -D NO_NGS -Wall -Wno-format-y2k -pthread -fPIC -O3 -finline-functions -fstrict-aliasing \ +- -fomit-frame-pointer -msse4.2 $(BOOST_INCL) ++ -fomit-frame-pointer $(BOOST_INCL) + + PLATFORM=$(shell uname -s) + +diff --git c/guidedassembler.hpp i/guidedassembler.hpp +index 5d3065b..c5098e9 100644 +--- c/guidedassembler.hpp ++++ i/guidedassembler.hpp +@@ -27,7 +27,11 @@ + #ifndef _GuidedAssembler_ + #define _GuidedAssembler_ + ++#ifdef __ARM_NEON ++#include "sse2neon.h" ++#else + #include ++#endif + + using namespace std; + namespace DeBruijn { +diff --git c/sse2neon.h i/sse2neon.h +new file mode 100644 +index 0000000..2b12721 +--- /dev/null ++++ i/sse2neon.h +@@ -0,0 +1,9301 @@ ++#ifndef SSE2NEON_H ++#define SSE2NEON_H ++ ++/* ++ * sse2neon is freely redistributable under the MIT License. ++ * ++ * Copyright (c) 2015-2024 SSE2NEON Contributors. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a copy ++ * of this software and associated documentation files (the "Software"), to deal ++ * in the Software without restriction, including without limitation the rights ++ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ++ * copies of the Software, and to permit persons to whom the Software is ++ * furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be included in ++ * all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++ * SOFTWARE. ++ */ ++ ++// This header file provides a simple API translation layer ++// between SSE intrinsics to their corresponding Arm/Aarch64 NEON versions ++// ++// Contributors to this work are: ++// John W. Ratcliff ++// Brandon Rowlett ++// Ken Fast ++// Eric van Beurden ++// Alexander Potylitsin ++// Hasindu Gamaarachchi ++// Jim Huang ++// Mark Cheng ++// Malcolm James MacLeod ++// Devin Hussey (easyaspi314) ++// Sebastian Pop ++// Developer Ecosystem Engineering ++// Danila Kutenin ++// François Turban (JishinMaster) ++// Pei-Hsuan Hung ++// Yang-Hao Yuan ++// Syoyo Fujita ++// Brecht Van Lommel ++// Jonathan Hue ++// Cuda Chen ++// Aymen Qader ++// Anthony Roberts ++ ++/* Tunable configurations */ ++ ++/* Enable precise implementation of math operations ++ * This would slow down the computation a bit, but gives consistent result with ++ * x86 SSE. (e.g. would solve a hole or NaN pixel in the rendering result) ++ */ ++/* _mm_min|max_ps|ss|pd|sd */ ++#ifndef SSE2NEON_PRECISE_MINMAX ++#define SSE2NEON_PRECISE_MINMAX (0) ++#endif ++/* _mm_rcp_ps */ ++#ifndef SSE2NEON_PRECISE_DIV ++#define SSE2NEON_PRECISE_DIV (0) ++#endif ++/* _mm_sqrt_ps and _mm_rsqrt_ps */ ++#ifndef SSE2NEON_PRECISE_SQRT ++#define SSE2NEON_PRECISE_SQRT (0) ++#endif ++/* _mm_dp_pd */ ++#ifndef SSE2NEON_PRECISE_DP ++#define SSE2NEON_PRECISE_DP (0) ++#endif ++ ++/* Enable inclusion of windows.h on MSVC platforms ++ * This makes _mm_clflush functional on windows, as there is no builtin. ++ */ ++#ifndef SSE2NEON_INCLUDE_WINDOWS_H ++#define SSE2NEON_INCLUDE_WINDOWS_H (0) ++#endif ++ ++/* compiler specific definitions */ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma push_macro("FORCE_INLINE") ++#pragma push_macro("ALIGN_STRUCT") ++#define FORCE_INLINE static inline __attribute__((always_inline)) ++#define ALIGN_STRUCT(x) __attribute__((aligned(x))) ++#define _sse2neon_likely(x) __builtin_expect(!!(x), 1) ++#define _sse2neon_unlikely(x) __builtin_expect(!!(x), 0) ++#elif defined(_MSC_VER) ++#if _MSVC_TRADITIONAL ++#error Using the traditional MSVC preprocessor is not supported! Use /Zc:preprocessor instead. ++#endif ++#ifndef FORCE_INLINE ++#define FORCE_INLINE static inline ++#endif ++#ifndef ALIGN_STRUCT ++#define ALIGN_STRUCT(x) __declspec(align(x)) ++#endif ++#define _sse2neon_likely(x) (x) ++#define _sse2neon_unlikely(x) (x) ++#else ++#pragma message("Macro name collisions may happen with unsupported compilers.") ++#endif ++ ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma push_macro("FORCE_INLINE_OPTNONE") ++#define FORCE_INLINE_OPTNONE static inline __attribute__((optimize("O0"))) ++#elif defined(__clang__) ++#pragma push_macro("FORCE_INLINE_OPTNONE") ++#define FORCE_INLINE_OPTNONE static inline __attribute__((optnone)) ++#else ++#define FORCE_INLINE_OPTNONE FORCE_INLINE ++#endif ++ ++#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ < 10 ++#warning "GCC versions earlier than 10 are not supported." ++#endif ++ ++/* C language does not allow initializing a variable with a function call. */ ++#ifdef __cplusplus ++#define _sse2neon_const static const ++#else ++#define _sse2neon_const const ++#endif ++ ++#include ++#include ++ ++#if defined(_WIN32) ++/* Definitions for _mm_{malloc,free} are provided by ++ * from both MinGW-w64 and MSVC. ++ */ ++#define SSE2NEON_ALLOC_DEFINED ++#endif ++ ++/* If using MSVC */ ++#ifdef _MSC_VER ++#include ++#if SSE2NEON_INCLUDE_WINDOWS_H ++#include ++#include ++#endif ++ ++#if !defined(__cplusplus) ++#error SSE2NEON only supports C++ compilation with this compiler ++#endif ++ ++#ifdef SSE2NEON_ALLOC_DEFINED ++#include ++#endif ++ ++#if (defined(_M_AMD64) || defined(__x86_64__)) || \ ++ (defined(_M_ARM64) || defined(__arm64__)) ++#define SSE2NEON_HAS_BITSCAN64 ++#endif ++#endif ++ ++#if defined(__GNUC__) || defined(__clang__) ++#define _sse2neon_define0(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define1(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define2(type, a, b, body) \ ++ __extension__({ \ ++ type _a = (a), _b = (b); \ ++ body \ ++ }) ++#define _sse2neon_return(ret) (ret) ++#else ++#define _sse2neon_define0(type, a, body) [=](type _a) { body }(a) ++#define _sse2neon_define1(type, a, body) [](type _a) { body }(a) ++#define _sse2neon_define2(type, a, b, body) \ ++ [](type _a, type _b) { body }((a), (b)) ++#define _sse2neon_return(ret) return ret ++#endif ++ ++#define _sse2neon_init(...) \ ++ { \ ++ __VA_ARGS__ \ ++ } ++ ++/* Compiler barrier */ ++#if defined(_MSC_VER) ++#define SSE2NEON_BARRIER() _ReadWriteBarrier() ++#else ++#define SSE2NEON_BARRIER() \ ++ do { \ ++ __asm__ __volatile__("" ::: "memory"); \ ++ (void) 0; \ ++ } while (0) ++#endif ++ ++/* Memory barriers ++ * __atomic_thread_fence does not include a compiler barrier; instead, ++ * the barrier is part of __atomic_load/__atomic_store's "volatile-like" ++ * semantics. ++ */ ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) ++#include ++#endif ++ ++FORCE_INLINE void _sse2neon_smp_mb(void) ++{ ++ SSE2NEON_BARRIER(); ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \ ++ !defined(__STDC_NO_ATOMICS__) ++ atomic_thread_fence(memory_order_seq_cst); ++#elif defined(__GNUC__) || defined(__clang__) ++ __atomic_thread_fence(__ATOMIC_SEQ_CST); ++#else /* MSVC */ ++ __dmb(_ARM64_BARRIER_ISH); ++#endif ++} ++ ++/* Architecture-specific build options */ ++/* FIXME: #pragma GCC push_options is only available on GCC */ ++#if defined(__GNUC__) ++#if defined(__arm__) && __ARM_ARCH == 7 ++/* According to ARM C Language Extensions Architecture specification, ++ * __ARM_NEON is defined to a value indicating the Advanced SIMD (NEON) ++ * architecture supported. ++ */ ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error "You must enable NEON instructions (e.g. -mfpu=neon) to use SSE2NEON." ++#endif ++#if !defined(__clang__) ++#pragma GCC push_options ++#pragma GCC target("fpu=neon") ++#endif ++#elif defined(__aarch64__) || defined(_M_ARM64) ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#pragma GCC target("+simd") ++#endif ++#elif __ARM_ARCH == 8 ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error \ ++ "You must enable NEON instructions (e.g. -mfpu=neon-fp-armv8) to use SSE2NEON." ++#endif ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#endif ++#else ++#error \ ++ "Unsupported target. Must be either ARMv7-A+NEON or ARMv8-A \ ++(you could try setting target explicitly with -march or -mcpu)" ++#endif ++#endif ++ ++#include ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) && (__ARM_ARCH == 8) ++#if defined __has_include && __has_include() ++#include ++#endif ++#endif ++ ++/* Apple Silicon cache lines are double of what is commonly used by Intel, AMD ++ * and other Arm microarchitectures use. ++ * From sysctl -a on Apple M1: ++ * hw.cachelinesize: 128 ++ */ ++#if defined(__APPLE__) && (defined(__aarch64__) || defined(__arm64__)) ++#define SSE2NEON_CACHELINE_SIZE 128 ++#else ++#define SSE2NEON_CACHELINE_SIZE 64 ++#endif ++ ++/* Rounding functions require either Aarch64 instructions or libm fallback */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#include ++#endif ++ ++/* On ARMv7, some registers, such as PMUSERENR and PMCCNTR, are read-only ++ * or even not accessible in user mode. ++ * To write or access to these registers in user mode, ++ * we have to perform syscall instead. ++ */ ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) ++#include ++#endif ++ ++/* "__has_builtin" can be used to query support for built-in functions ++ * provided by gcc/clang and other compilers that support it. ++ */ ++#ifndef __has_builtin /* GCC prior to 10 or non-clang compilers */ ++/* Compatibility with gcc <= 9 */ ++#if defined(__GNUC__) && (__GNUC__ <= 9) ++#define __has_builtin(x) HAS##x ++#define HAS__builtin_popcount 1 ++#define HAS__builtin_popcountll 1 ++ ++// __builtin_shuffle introduced in GCC 4.7.0 ++#if (__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) ++#define HAS__builtin_shuffle 1 ++#else ++#define HAS__builtin_shuffle 0 ++#endif ++ ++#define HAS__builtin_shufflevector 0 ++#define HAS__builtin_nontemporal_store 0 ++#else ++#define __has_builtin(x) 0 ++#endif ++#endif ++ ++/** ++ * MACRO for shuffle parameter for _mm_shuffle_ps(). ++ * Argument fp3 is a digit[0123] that represents the fp from argument "b" ++ * of mm_shuffle_ps that will be placed in fp3 of result. fp2 is the same ++ * for fp2 in result. fp1 is a digit[0123] that represents the fp from ++ * argument "a" of mm_shuffle_ps that will be places in fp1 of result. ++ * fp0 is the same for fp0 of result. ++ */ ++#define _MM_SHUFFLE(fp3, fp2, fp1, fp0) \ ++ (((fp3) << 6) | ((fp2) << 4) | ((fp1) << 2) | ((fp0))) ++ ++#if __has_builtin(__builtin_shufflevector) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __builtin_shufflevector(a, b, __VA_ARGS__) ++#elif __has_builtin(__builtin_shuffle) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __extension__({ \ ++ type tmp = {__VA_ARGS__}; \ ++ __builtin_shuffle(a, b, tmp); \ ++ }) ++#endif ++ ++#ifdef _sse2neon_shuffle ++#define vshuffle_s16(a, b, ...) _sse2neon_shuffle(int16x4_t, a, b, __VA_ARGS__) ++#define vshuffleq_s16(a, b, ...) _sse2neon_shuffle(int16x8_t, a, b, __VA_ARGS__) ++#define vshuffle_s32(a, b, ...) _sse2neon_shuffle(int32x2_t, a, b, __VA_ARGS__) ++#define vshuffleq_s32(a, b, ...) _sse2neon_shuffle(int32x4_t, a, b, __VA_ARGS__) ++#define vshuffle_s64(a, b, ...) _sse2neon_shuffle(int64x1_t, a, b, __VA_ARGS__) ++#define vshuffleq_s64(a, b, ...) _sse2neon_shuffle(int64x2_t, a, b, __VA_ARGS__) ++#endif ++ ++/* Rounding mode macros. */ ++#define _MM_FROUND_TO_NEAREST_INT 0x00 ++#define _MM_FROUND_TO_NEG_INF 0x01 ++#define _MM_FROUND_TO_POS_INF 0x02 ++#define _MM_FROUND_TO_ZERO 0x03 ++#define _MM_FROUND_CUR_DIRECTION 0x04 ++#define _MM_FROUND_NO_EXC 0x08 ++#define _MM_FROUND_RAISE_EXC 0x00 ++#define _MM_FROUND_NINT (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_FLOOR (_MM_FROUND_TO_NEG_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_CEIL (_MM_FROUND_TO_POS_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_TRUNC (_MM_FROUND_TO_ZERO | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_RINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_NEARBYINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_NO_EXC) ++#define _MM_ROUND_NEAREST 0x0000 ++#define _MM_ROUND_DOWN 0x2000 ++#define _MM_ROUND_UP 0x4000 ++#define _MM_ROUND_TOWARD_ZERO 0x6000 ++/* Flush zero mode macros. */ ++#define _MM_FLUSH_ZERO_MASK 0x8000 ++#define _MM_FLUSH_ZERO_ON 0x8000 ++#define _MM_FLUSH_ZERO_OFF 0x0000 ++/* Denormals are zeros mode macros. */ ++#define _MM_DENORMALS_ZERO_MASK 0x0040 ++#define _MM_DENORMALS_ZERO_ON 0x0040 ++#define _MM_DENORMALS_ZERO_OFF 0x0000 ++ ++/* indicate immediate constant argument in a given range */ ++#define __constrange(a, b) const ++ ++/* A few intrinsics accept traditional data types like ints or floats, but ++ * most operate on data types that are specific to SSE. ++ * If a vector type ends in d, it contains doubles, and if it does not have ++ * a suffix, it contains floats. An integer vector type can contain any type ++ * of integer, from chars to shorts to unsigned long longs. ++ */ ++typedef int64x1_t __m64; ++typedef float32x4_t __m128; /* 128-bit vector containing 4 floats */ ++// On ARM 32-bit architecture, the float64x2_t is not supported. ++// The data type __m128d should be represented in a different way for related ++// intrinsic conversion. ++#if defined(__aarch64__) || defined(_M_ARM64) ++typedef float64x2_t __m128d; /* 128-bit vector containing 2 doubles */ ++#else ++typedef float32x4_t __m128d; ++#endif ++typedef int64x2_t __m128i; /* 128-bit vector containing integers */ ++ ++// Some intrinsics operate on unaligned data types. ++typedef int16_t ALIGN_STRUCT(1) unaligned_int16_t; ++typedef int32_t ALIGN_STRUCT(1) unaligned_int32_t; ++typedef int64_t ALIGN_STRUCT(1) unaligned_int64_t; ++ ++// __int64 is defined in the Intrinsics Guide which maps to different datatype ++// in different data model ++#if !(defined(_WIN32) || defined(_WIN64) || defined(__int64)) ++#if (defined(__x86_64__) || defined(__i386__)) ++#define __int64 long long ++#else ++#define __int64 int64_t ++#endif ++#endif ++ ++/* type-safe casting between types */ ++ ++#define vreinterpretq_m128_f16(x) vreinterpretq_f32_f16(x) ++#define vreinterpretq_m128_f32(x) (x) ++#define vreinterpretq_m128_f64(x) vreinterpretq_f32_f64(x) ++ ++#define vreinterpretq_m128_u8(x) vreinterpretq_f32_u8(x) ++#define vreinterpretq_m128_u16(x) vreinterpretq_f32_u16(x) ++#define vreinterpretq_m128_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128_s8(x) vreinterpretq_f32_s8(x) ++#define vreinterpretq_m128_s16(x) vreinterpretq_f32_s16(x) ++#define vreinterpretq_m128_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_f16_m128(x) vreinterpretq_f16_f32(x) ++#define vreinterpretq_f32_m128(x) (x) ++#define vreinterpretq_f64_m128(x) vreinterpretq_f64_f32(x) ++ ++#define vreinterpretq_u8_m128(x) vreinterpretq_u8_f32(x) ++#define vreinterpretq_u16_m128(x) vreinterpretq_u16_f32(x) ++#define vreinterpretq_u32_m128(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_s8_m128(x) vreinterpretq_s8_f32(x) ++#define vreinterpretq_s16_m128(x) vreinterpretq_s16_f32(x) ++#define vreinterpretq_s32_m128(x) vreinterpretq_s32_f32(x) ++#define vreinterpretq_s64_m128(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_m128i_s8(x) vreinterpretq_s64_s8(x) ++#define vreinterpretq_m128i_s16(x) vreinterpretq_s64_s16(x) ++#define vreinterpretq_m128i_s32(x) vreinterpretq_s64_s32(x) ++#define vreinterpretq_m128i_s64(x) (x) ++ ++#define vreinterpretq_m128i_u8(x) vreinterpretq_s64_u8(x) ++#define vreinterpretq_m128i_u16(x) vreinterpretq_s64_u16(x) ++#define vreinterpretq_m128i_u32(x) vreinterpretq_s64_u32(x) ++#define vreinterpretq_m128i_u64(x) vreinterpretq_s64_u64(x) ++ ++#define vreinterpretq_f32_m128i(x) vreinterpretq_f32_s64(x) ++#define vreinterpretq_f64_m128i(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_s8_m128i(x) vreinterpretq_s8_s64(x) ++#define vreinterpretq_s16_m128i(x) vreinterpretq_s16_s64(x) ++#define vreinterpretq_s32_m128i(x) vreinterpretq_s32_s64(x) ++#define vreinterpretq_s64_m128i(x) (x) ++ ++#define vreinterpretq_u8_m128i(x) vreinterpretq_u8_s64(x) ++#define vreinterpretq_u16_m128i(x) vreinterpretq_u16_s64(x) ++#define vreinterpretq_u32_m128i(x) vreinterpretq_u32_s64(x) ++#define vreinterpretq_u64_m128i(x) vreinterpretq_u64_s64(x) ++ ++#define vreinterpret_m64_s8(x) vreinterpret_s64_s8(x) ++#define vreinterpret_m64_s16(x) vreinterpret_s64_s16(x) ++#define vreinterpret_m64_s32(x) vreinterpret_s64_s32(x) ++#define vreinterpret_m64_s64(x) (x) ++ ++#define vreinterpret_m64_u8(x) vreinterpret_s64_u8(x) ++#define vreinterpret_m64_u16(x) vreinterpret_s64_u16(x) ++#define vreinterpret_m64_u32(x) vreinterpret_s64_u32(x) ++#define vreinterpret_m64_u64(x) vreinterpret_s64_u64(x) ++ ++#define vreinterpret_m64_f16(x) vreinterpret_s64_f16(x) ++#define vreinterpret_m64_f32(x) vreinterpret_s64_f32(x) ++#define vreinterpret_m64_f64(x) vreinterpret_s64_f64(x) ++ ++#define vreinterpret_u8_m64(x) vreinterpret_u8_s64(x) ++#define vreinterpret_u16_m64(x) vreinterpret_u16_s64(x) ++#define vreinterpret_u32_m64(x) vreinterpret_u32_s64(x) ++#define vreinterpret_u64_m64(x) vreinterpret_u64_s64(x) ++ ++#define vreinterpret_s8_m64(x) vreinterpret_s8_s64(x) ++#define vreinterpret_s16_m64(x) vreinterpret_s16_s64(x) ++#define vreinterpret_s32_m64(x) vreinterpret_s32_s64(x) ++#define vreinterpret_s64_m64(x) (x) ++ ++#define vreinterpret_f32_m64(x) vreinterpret_f32_s64(x) ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f64_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f64_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) vreinterpretq_f64_f32(x) ++#define vreinterpretq_m128d_f64(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f64(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f64(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f64(x) ++ ++#define vreinterpretq_f64_m128d(x) (x) ++#define vreinterpretq_f32_m128d(x) vreinterpretq_f32_f64(x) ++#else ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_m128d_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_f32_m128d(x) (x) ++#endif ++ ++// A struct is defined in this header file called 'SIMDVec' which can be used ++// by applications which attempt to access the contents of an __m128 struct ++// directly. It is important to note that accessing the __m128 struct directly ++// is bad coding practice by Microsoft: @see: ++// https://learn.microsoft.com/en-us/cpp/cpp/m128 ++// ++// However, some legacy source code may try to access the contents of an __m128 ++// struct directly so the developer can use the SIMDVec as an alias for it. Any ++// casting must be done manually by the developer, as you cannot cast or ++// otherwise alias the base NEON data type for intrinsic operations. ++// ++// union intended to allow direct access to an __m128 variable using the names ++// that the MSVC compiler provides. This union should really only be used when ++// trying to access the members of the vector as integer values. GCC/clang ++// allow native access to the float members through a simple array access ++// operator (in C since 4.6, in C++ since 4.8). ++// ++// Ideally direct accesses to SIMD vectors should not be used since it can cause ++// a performance hit. If it really is needed however, the original __m128 ++// variable can be aliased with a pointer to this union and used to access ++// individual components. The use of this union should be hidden behind a macro ++// that is used throughout the codebase to access the members instead of always ++// declaring this type of variable. ++typedef union ALIGN_STRUCT(16) SIMDVec { ++ float m128_f32[4]; // as floats - DON'T USE. Added for convenience. ++ int8_t m128_i8[16]; // as signed 8-bit integers. ++ int16_t m128_i16[8]; // as signed 16-bit integers. ++ int32_t m128_i32[4]; // as signed 32-bit integers. ++ int64_t m128_i64[2]; // as signed 64-bit integers. ++ uint8_t m128_u8[16]; // as unsigned 8-bit integers. ++ uint16_t m128_u16[8]; // as unsigned 16-bit integers. ++ uint32_t m128_u32[4]; // as unsigned 32-bit integers. ++ uint64_t m128_u64[2]; // as unsigned 64-bit integers. ++} SIMDVec; ++ ++// casting using SIMDVec ++#define vreinterpretq_nth_u64_m128i(x, n) (((SIMDVec *) &x)->m128_u64[n]) ++#define vreinterpretq_nth_u32_m128i(x, n) (((SIMDVec *) &x)->m128_u32[n]) ++#define vreinterpretq_nth_u8_m128i(x, n) (((SIMDVec *) &x)->m128_u8[n]) ++ ++/* SSE macros */ ++#define _MM_GET_FLUSH_ZERO_MODE _sse2neon_mm_get_flush_zero_mode ++#define _MM_SET_FLUSH_ZERO_MODE _sse2neon_mm_set_flush_zero_mode ++#define _MM_GET_DENORMALS_ZERO_MODE _sse2neon_mm_get_denormals_zero_mode ++#define _MM_SET_DENORMALS_ZERO_MODE _sse2neon_mm_set_denormals_zero_mode ++ ++// Function declaration ++// SSE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void); ++FORCE_INLINE __m128 _mm_move_ss(__m128, __m128); ++FORCE_INLINE __m128 _mm_or_ps(__m128, __m128); ++FORCE_INLINE __m128 _mm_set_ps1(float); ++FORCE_INLINE __m128 _mm_setzero_ps(void); ++// SSE2 ++FORCE_INLINE __m128i _mm_and_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_castps_si128(__m128); ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128); ++FORCE_INLINE __m128d _mm_move_sd(__m128d, __m128d); ++FORCE_INLINE __m128i _mm_or_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_set_epi32(int, int, int, int); ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t, int64_t); ++FORCE_INLINE __m128d _mm_set_pd(double, double); ++FORCE_INLINE __m128i _mm_set1_epi32(int); ++FORCE_INLINE __m128i _mm_setzero_si128(void); ++// SSE4.1 ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d); ++FORCE_INLINE __m128 _mm_ceil_ps(__m128); ++FORCE_INLINE __m128d _mm_floor_pd(__m128d); ++FORCE_INLINE __m128 _mm_floor_ps(__m128); ++FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d, int); ++FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128, int); ++// SSE4.2 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t, uint8_t); ++ ++/* Backwards compatibility for compilers with lack of specific type support */ ++ ++// Older gcc does not define vld1q_u8_x4 type ++#if defined(__GNUC__) && !defined(__clang__) && \ ++ ((__GNUC__ <= 13 && defined(__arm__)) || \ ++ (__GNUC__ == 10 && __GNUC_MINOR__ < 3 && defined(__aarch64__)) || \ ++ (__GNUC__ <= 9 && defined(__aarch64__))) ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ uint8x16x4_t ret; ++ ret.val[0] = vld1q_u8(p + 0); ++ ret.val[1] = vld1q_u8(p + 16); ++ ret.val[2] = vld1q_u8(p + 32); ++ ret.val[3] = vld1q_u8(p + 48); ++ return ret; ++} ++#else ++// Wraps vld1q_u8_x4 ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ return vld1q_u8_x4(p); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddv u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ const uint64x1_t v1 = vpaddl_u32(vpaddl_u16(vpaddl_u8(v8))); ++ return vget_lane_u8(vreinterpret_u8_u64(v1), 0); ++} ++#else ++// Wraps vaddv_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ return vaddv_u8(v8); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ uint8x8_t tmp = vpadd_u8(vget_low_u8(a), vget_high_u8(a)); ++ uint8_t res = 0; ++ for (int i = 0; i < 8; ++i) ++ res += tmp[i]; ++ return res; ++} ++#else ++// Wraps vaddvq_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ return vaddvq_u8(a); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u16 variant */ ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ uint32x4_t m = vpaddlq_u16(a); ++ uint64x2_t n = vpaddlq_u32(m); ++ uint64x1_t o = vget_low_u64(n) + vget_high_u64(n); ++ ++ return vget_lane_u32((uint32x2_t) o, 0); ++} ++#else ++// Wraps vaddvq_u16 ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ return vaddvq_u16(a); ++} ++#endif ++ ++/* Function Naming Conventions ++ * The naming convention of SSE intrinsics is straightforward. A generic SSE ++ * intrinsic function is given as follows: ++ * _mm__ ++ * ++ * The parts of this format are given as follows: ++ * 1. describes the operation performed by the intrinsic ++ * 2. identifies the data type of the function's primary arguments ++ * ++ * This last part, , is a little complicated. It identifies the ++ * content of the input values, and can be set to any of the following values: ++ * + ps - vectors contain floats (ps stands for packed single-precision) ++ * + pd - vectors contain doubles (pd stands for packed double-precision) ++ * + epi8/epi16/epi32/epi64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * signed integers ++ * + epu8/epu16/epu32/epu64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * unsigned integers ++ * + si128 - unspecified 128-bit vector or 256-bit vector ++ * + m128/m128i/m128d - identifies input vector types when they are different ++ * than the type of the returned vector ++ * ++ * For example, _mm_setzero_ps. The _mm implies that the function returns ++ * a 128-bit vector. The _ps at the end implies that the argument vectors ++ * contain floats. ++ * ++ * A complete example: Byte Shuffle - pshufb (_mm_shuffle_epi8) ++ * // Set packed 16-bit integers. 128 bits, 8 short, per 16 bits ++ * __m128i v_in = _mm_setr_epi16(1, 2, 3, 4, 5, 6, 7, 8); ++ * // Set packed 8-bit integers ++ * // 128 bits, 16 chars, per 8 bits ++ * __m128i v_perm = _mm_setr_epi8(1, 0, 2, 3, 8, 9, 10, 11, ++ * 4, 5, 12, 13, 6, 7, 14, 15); ++ * // Shuffle packed 8-bit integers ++ * __m128i v_out = _mm_shuffle_epi8(v_in, v_perm); // pshufb ++ */ ++ ++/* Constants for use with _mm_prefetch. */ ++enum _mm_hint { ++ _MM_HINT_NTA = 0, /* load data to L1 and L2 cache, mark it as NTA */ ++ _MM_HINT_T0 = 1, /* load data to L1 and L2 cache */ ++ _MM_HINT_T1 = 2, /* load data to L2 cache only */ ++ _MM_HINT_T2 = 3, /* load data to L2 cache only, mark it as NTA */ ++}; ++ ++// The bit field mapping to the FPCR(floating-point control register) ++typedef struct { ++ uint16_t res0; ++ uint8_t res1 : 6; ++ uint8_t bit22 : 1; ++ uint8_t bit23 : 1; ++ uint8_t bit24 : 1; ++ uint8_t res2 : 7; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32_t res3; ++#endif ++} fpcr_bitfield; ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of b and places it into the high end of the result. ++FORCE_INLINE __m128 _mm_shuffle_ps_1032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in high ++// end of result takes the higher two 32 bit values from b and swaps them and ++// places in low end of result. ++FORCE_INLINE __m128 _mm_shuffle_ps_2301(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b23 = vrev64_f32(vget_high_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b23)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0321(__m128 a, __m128 b) ++{ ++ float32x2_t a21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a21, b03)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2103(__m128 a, __m128 b) ++{ ++ float32x2_t a03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a03, b21)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0101(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b01)); ++} ++ ++// keeps the low 64 bits of b in the low and puts the high 64 bits of a in the ++// high ++FORCE_INLINE __m128 _mm_shuffle_ps_3210(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0011(__m128 a, __m128 b) ++{ ++ float32x2_t a11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a11, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0022(__m128 a, __m128 b) ++{ ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a22, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2200(__m128 a, __m128 b) ++{ ++ float32x2_t a00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a00, b22)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_3202(__m128 a, __m128 b) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t a02 = vset_lane_f32(a0, a22, 1); /* TODO: use vzip ?*/ ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a02, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1133(__m128 a, __m128 b) ++{ ++ float32x2_t a33 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a33, b11)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b20)); ++} ++ ++// For MSVC, we check only if it is ARM64, as every single ARM64 processor ++// supported by WoA has crypto extensions. If this changes in the future, ++// this can be verified via the runtime-only method of: ++// IsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE) ++#if (defined(_M_ARM64) && !defined(__clang__)) || \ ++ (defined(__ARM_FEATURE_CRYPTO) && \ ++ (defined(__aarch64__) || __has_builtin(__builtin_arm_crypto_vmullp64))) ++// Wraps vmull_p64 ++FORCE_INLINE uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly64_t a = vget_lane_p64(vreinterpret_p64_u64(_a), 0); ++ poly64_t b = vget_lane_p64(vreinterpret_p64_u64(_b), 0); ++#if defined(_MSC_VER) ++ __n64 a1 = {a}, b1 = {b}; ++ return vreinterpretq_u64_p128(vmull_p64(a1, b1)); ++#else ++ return vreinterpretq_u64_p128(vmull_p64(a, b)); ++#endif ++} ++#else // ARMv7 polyfill ++// ARMv7/some A64 lacks vmull_p64, but it has vmull_p8. ++// ++// vmull_p8 calculates 8 8-bit->16-bit polynomial multiplies, but we need a ++// 64-bit->128-bit polynomial multiply. ++// ++// It needs some work and is somewhat slow, but it is still faster than all ++// known scalar methods. ++// ++// Algorithm adapted to C from ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/, which is adapted ++// from "Fast Software Polynomial Multiplication on ARM Processors Using the ++// NEON Engine" by Danilo Camara, Conrado Gouvea, Julio Lopez and Ricardo Dahab ++// (https://hal.inria.fr/hal-01506572) ++static uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly8x8_t a = vreinterpret_p8_u64(_a); ++ poly8x8_t b = vreinterpret_p8_u64(_b); ++ ++ // Masks ++ uint8x16_t k48_32 = vcombine_u8(vcreate_u8(0x0000ffffffffffff), ++ vcreate_u8(0x00000000ffffffff)); ++ uint8x16_t k16_00 = vcombine_u8(vcreate_u8(0x000000000000ffff), ++ vcreate_u8(0x0000000000000000)); ++ ++ // Do the multiplies, rotating with vext to get all combinations ++ uint8x16_t d = vreinterpretq_u8_p16(vmull_p8(a, b)); // D = A0 * B0 ++ uint8x16_t e = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 1))); // E = A0 * B1 ++ uint8x16_t f = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 1), b)); // F = A1 * B0 ++ uint8x16_t g = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 2))); // G = A0 * B2 ++ uint8x16_t h = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 2), b)); // H = A2 * B0 ++ uint8x16_t i = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 3))); // I = A0 * B3 ++ uint8x16_t j = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 3), b)); // J = A3 * B0 ++ uint8x16_t k = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 4))); // L = A0 * B4 ++ ++ // Add cross products ++ uint8x16_t l = veorq_u8(e, f); // L = E + F ++ uint8x16_t m = veorq_u8(g, h); // M = G + H ++ uint8x16_t n = veorq_u8(i, j); // N = I + J ++ ++ // Interleave. Using vzip1 and vzip2 prevents Clang from emitting TBL ++ // instructions. ++#if defined(__aarch64__) ++ uint8x16_t lm_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t lm_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t nk_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++ uint8x16_t nk_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++#else ++ uint8x16_t lm_p0 = vcombine_u8(vget_low_u8(l), vget_low_u8(m)); ++ uint8x16_t lm_p1 = vcombine_u8(vget_high_u8(l), vget_high_u8(m)); ++ uint8x16_t nk_p0 = vcombine_u8(vget_low_u8(n), vget_low_u8(k)); ++ uint8x16_t nk_p1 = vcombine_u8(vget_high_u8(n), vget_high_u8(k)); ++#endif ++ // t0 = (L) (P0 + P1) << 8 ++ // t1 = (M) (P2 + P3) << 16 ++ uint8x16_t t0t1_tmp = veorq_u8(lm_p0, lm_p1); ++ uint8x16_t t0t1_h = vandq_u8(lm_p1, k48_32); ++ uint8x16_t t0t1_l = veorq_u8(t0t1_tmp, t0t1_h); ++ ++ // t2 = (N) (P4 + P5) << 24 ++ // t3 = (K) (P6 + P7) << 32 ++ uint8x16_t t2t3_tmp = veorq_u8(nk_p0, nk_p1); ++ uint8x16_t t2t3_h = vandq_u8(nk_p1, k16_00); ++ uint8x16_t t2t3_l = veorq_u8(t2t3_tmp, t2t3_h); ++ ++ // De-interleave ++#if defined(__aarch64__) ++ uint8x16_t t0 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t1 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t2 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++ uint8x16_t t3 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++#else ++ uint8x16_t t1 = vcombine_u8(vget_high_u8(t0t1_l), vget_high_u8(t0t1_h)); ++ uint8x16_t t0 = vcombine_u8(vget_low_u8(t0t1_l), vget_low_u8(t0t1_h)); ++ uint8x16_t t3 = vcombine_u8(vget_high_u8(t2t3_l), vget_high_u8(t2t3_h)); ++ uint8x16_t t2 = vcombine_u8(vget_low_u8(t2t3_l), vget_low_u8(t2t3_h)); ++#endif ++ // Shift the cross products ++ uint8x16_t t0_shift = vextq_u8(t0, t0, 15); // t0 << 8 ++ uint8x16_t t1_shift = vextq_u8(t1, t1, 14); // t1 << 16 ++ uint8x16_t t2_shift = vextq_u8(t2, t2, 13); // t2 << 24 ++ uint8x16_t t3_shift = vextq_u8(t3, t3, 12); // t3 << 32 ++ ++ // Accumulate the products ++ uint8x16_t cross1 = veorq_u8(t0_shift, t1_shift); ++ uint8x16_t cross2 = veorq_u8(t2_shift, t3_shift); ++ uint8x16_t mix = veorq_u8(d, cross1); ++ uint8x16_t r = veorq_u8(mix, cross2); ++ return vreinterpretq_u64_u8(r); ++} ++#endif // ARMv7 polyfill ++ ++// C equivalent: ++// __m128i _mm_shuffle_epi32_default(__m128i a, ++// __constrange(0, 255) int imm) { ++// __m128i ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = a[(imm >> 4) & 0x03]; ret[3] = a[(imm >> 6) & 0x03]; ++// return ret; ++// } ++#define _mm_shuffle_epi32_default(a, imm) \ ++ vreinterpretq_m128i_s32(vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), \ ++ ((imm) >> 2) & 0x3), \ ++ vmovq_n_s32(vgetq_lane_s32( \ ++ vreinterpretq_s32_m128i(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of a and places it into the high end of the result. ++FORCE_INLINE __m128i _mm_shuffle_epi_1032(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in low end ++// of result takes the higher two 32 bit values from a and swaps them and places ++// in high end of result. ++FORCE_INLINE __m128i _mm_shuffle_epi_2301(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a23 = vrev64_s32(vget_high_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a23)); ++} ++ ++// rotates the least significant 32 bits into the most significant 32 bits, and ++// shifts the rest down ++FORCE_INLINE __m128i _mm_shuffle_epi_0321(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 1)); ++} ++ ++// rotates the most significant 32 bits into the least significant 32 bits, and ++// shifts the rest up ++FORCE_INLINE __m128i _mm_shuffle_epi_2103(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 3)); ++} ++ ++// gets the lower 64 bits of a, and places it in the upper 64 bits ++// gets the lower 64 bits of a and places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1010(__m128i a) ++{ ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a10, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements, and places it in the ++// lower 64 bits gets the lower 64 bits of a, and places it in the upper 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1001(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements and places it in the ++// upper 64 bits gets the lower 64 bits of a, swaps the 0 and 1 elements, and ++// places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_0101(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_2211(__m128i a) ++{ ++ int32x2_t a11 = vdup_lane_s32(vget_low_s32(vreinterpretq_s32_m128i(a)), 1); ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ return vreinterpretq_m128i_s32(vcombine_s32(a11, a22)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_0122(__m128i a) ++{ ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a22, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_3332(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a33 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 1); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a33)); ++} ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32(vdupq_laneq_s32(vreinterpretq_s32_m128i(a), (imm))) ++#else ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vdupq_n_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)))) ++#endif ++ ++// NEON does not support a general purpose permute intrinsic. ++// Shuffle single-precision (32-bit) floating-point elements in a using the ++// control in imm8, and store the results in dst. ++// ++// C equivalent: ++// __m128 _mm_shuffle_ps_default(__m128 a, __m128 b, ++// __constrange(0, 255) int imm) { ++// __m128 ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = b[(imm >> 4) & 0x03]; ret[3] = b[(imm >> 6) & 0x03]; ++// return ret; ++// } ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_ps ++#define _mm_shuffle_ps_default(a, b, imm) \ ++ vreinterpretq_m128_f32(vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), ((imm) >> 2) & 0x3), \ ++ vmovq_n_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Shuffle 16-bit integers in the low 64 bits of a using the control in imm8. ++// Store the results in the low 64 bits of dst, with the high 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflelo_epi16 ++#define _mm_shufflelo_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t lowBits = vget_low_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, (imm) & (0x3)), ret, 0); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++// Shuffle 16-bit integers in the high 64 bits of a using the control in imm8. ++// Store the results in the high 64 bits of dst, with the low 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflehi_epi16 ++#define _mm_shufflehi_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t highBits = vget_high_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, (imm) & (0x3)), ret, 4); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 2) & 0x3), ret, \ ++ 5); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 4) & 0x3), ret, \ ++ 6); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 6) & 0x3), ret, \ ++ 7); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++/* MMX */ ++ ++//_mm_empty is a no-op on arm ++FORCE_INLINE void _mm_empty(void) {} ++ ++/* SSE */ ++ ++// Add packed single-precision (32-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ps ++FORCE_INLINE __m128 _mm_add_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Add the lower single-precision (32-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ss ++FORCE_INLINE __m128 _mm_add_ss(__m128 a, __m128 b) ++{ ++ float32_t b0 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++ float32x4_t value = vsetq_lane_f32(b0, vdupq_n_f32(0), 0); ++ // the upper values in the result must be the remnants of . ++ return vreinterpretq_m128_f32(vaddq_f32(a, value)); ++} ++ ++// Compute the bitwise AND of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_ps ++FORCE_INLINE __m128 _mm_and_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vandq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Compute the bitwise NOT of packed single-precision (32-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_ps ++FORCE_INLINE __m128 _mm_andnot_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vbicq_s32(vreinterpretq_s32_m128(b), ++ vreinterpretq_s32_m128(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu16 ++FORCE_INLINE __m64 _mm_avg_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16( ++ vrhadd_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu8 ++FORCE_INLINE __m64 _mm_avg_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vrhadd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ps ++FORCE_INLINE __m128 _mm_cmpeq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ss ++FORCE_INLINE __m128 _mm_cmpeq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpeq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ps ++FORCE_INLINE __m128 _mm_cmpge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ss ++FORCE_INLINE __m128 _mm_cmpge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ps ++FORCE_INLINE __m128 _mm_cmpgt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ss ++FORCE_INLINE __m128 _mm_cmpgt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpgt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ps ++FORCE_INLINE __m128 _mm_cmple_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ss ++FORCE_INLINE __m128 _mm_cmple_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmple_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ps ++FORCE_INLINE __m128 _mm_cmplt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ss ++FORCE_INLINE __m128 _mm_cmplt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmplt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ps ++FORCE_INLINE __m128 _mm_cmpneq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ss ++FORCE_INLINE __m128 _mm_cmpneq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpneq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ps ++FORCE_INLINE __m128 _mm_cmpnge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ss ++FORCE_INLINE __m128 _mm_cmpnge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ps ++FORCE_INLINE __m128 _mm_cmpngt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ss ++FORCE_INLINE __m128 _mm_cmpngt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpngt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ps ++FORCE_INLINE __m128 _mm_cmpnle_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ss ++FORCE_INLINE __m128 _mm_cmpnle_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnle_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ps ++FORCE_INLINE __m128 _mm_cmpnlt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ss ++FORCE_INLINE __m128 _mm_cmpnlt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnlt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ps ++// ++// See also: ++// http://stackoverflow.com/questions/8627331/what-does-ordered-unordered-comparison-mean ++// http://stackoverflow.com/questions/29349621/neon-isnanval-intrinsics ++FORCE_INLINE __m128 _mm_cmpord_ps(__m128 a, __m128 b) ++{ ++ // Note: NEON does not have ordered compare builtin ++ // Need to compare a eq a and b eq b to check for NaN ++ // Do AND of results to get final ++ uint32x4_t ceqaa = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t ceqbb = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vandq_u32(ceqaa, ceqbb)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ss ++FORCE_INLINE __m128 _mm_cmpord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpord_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ps ++FORCE_INLINE __m128 _mm_cmpunord_ps(__m128 a, __m128 b) ++{ ++ uint32x4_t f32a = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t f32b = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vmvnq_u32(vandq_u32(f32a, f32b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ss ++FORCE_INLINE __m128 _mm_cmpunord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpunord_ps(a, b)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_ss ++FORCE_INLINE int _mm_comieq_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_eq_b = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_eq_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_ss ++FORCE_INLINE int _mm_comige_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_ge_b = ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_ge_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_ss ++FORCE_INLINE int _mm_comigt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_gt_b = ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_gt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_ss ++FORCE_INLINE int _mm_comile_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_le_b = ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_le_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_ss ++FORCE_INLINE int _mm_comilt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_lt_b = ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_lt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_ss ++FORCE_INLINE int _mm_comineq_ss(__m128 a, __m128 b) ++{ ++ return !_mm_comieq_ss(a, b); ++} ++ ++// Convert packed signed 32-bit integers in b to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, and copy the upper 2 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_pi2ps ++FORCE_INLINE __m128 _mm_cvt_pi2ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ps2pi ++FORCE_INLINE __m64 _mm_cvt_ps2pi(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))))); ++#else ++ return vreinterpret_m64_s32(vcvt_s32_f32(vget_low_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION))))); ++#endif ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_si2ss ++FORCE_INLINE __m128 _mm_cvt_si2ss(__m128 a, int b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ss2si ++FORCE_INLINE int _mm_cvt_ss2si(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vgetq_lane_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))), ++ 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int32_t) data; ++#endif ++} ++ ++// Convert packed 16-bit integers in a to packed single-precision (32-bit) ++// floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi16_ps ++FORCE_INLINE __m128 _mm_cvtpi16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vmovl_s16(vreinterpret_s16_m64(a)))); ++} ++ ++// Convert packed 32-bit integers in b to packed single-precision (32-bit) ++// floating-point elements, store the results in the lower 2 elements of dst, ++// and copy the upper 2 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_ps ++FORCE_INLINE __m128 _mm_cvtpi32_ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, then convert the packed signed 32-bit integers in b to ++// single-precision (32-bit) floating-point element, and store the results in ++// the upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32x2_ps ++FORCE_INLINE __m128 _mm_cvtpi32x2_ps(__m64 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vcombine_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b)))); ++} ++ ++// Convert the lower packed 8-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi8_ps ++FORCE_INLINE __m128 _mm_cvtpi8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vmovl_s16(vget_low_s16(vmovl_s8(vreinterpret_s8_m64(a)))))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 16-bit integers, and store the results in dst. Note: this intrinsic ++// will generate 0x7FFF, rather than 0x8000, for input values between 0x7FFF and ++// 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi16 ++FORCE_INLINE __m64 _mm_cvtps_pi16(__m128 a) ++{ ++ return vreinterpret_m64_s16( ++ vqmovn_s32(vreinterpretq_s32_m128i(_mm_cvtps_epi32(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi32 ++#define _mm_cvtps_pi32(a) _mm_cvt_ps2pi(a) ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 8-bit integers, and store the results in lower 4 elements of dst. ++// Note: this intrinsic will generate 0x7F, rather than 0x80, for input values ++// between 0x7F and 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi8 ++FORCE_INLINE __m64 _mm_cvtps_pi8(__m128 a) ++{ ++ return vreinterpret_m64_s8(vqmovn_s16( ++ vcombine_s16(vreinterpret_s16_m64(_mm_cvtps_pi16(a)), vdup_n_s16(0)))); ++} ++ ++// Convert packed unsigned 16-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu16_ps ++FORCE_INLINE __m128 _mm_cvtpu16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_u32(vmovl_u16(vreinterpret_u16_m64(a)))); ++} ++ ++// Convert the lower packed unsigned 8-bit integers in a to packed ++// single-precision (32-bit) floating-point elements, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu8_ps ++FORCE_INLINE __m128 _mm_cvtpu8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_u32( ++ vmovl_u16(vget_low_u16(vmovl_u8(vreinterpret_u8_m64(a)))))); ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_ss ++#define _mm_cvtsi32_ss(a, b) _mm_cvt_si2ss(a, b) ++ ++// Convert the signed 64-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_ss ++FORCE_INLINE __m128 _mm_cvtsi64_ss(__m128 a, int64_t b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Copy the lower single-precision (32-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_f32 ++FORCE_INLINE float _mm_cvtss_f32(__m128 a) ++{ ++ return vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si32 ++#define _mm_cvtss_si32(a) _mm_cvt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si64 ++FORCE_INLINE int64_t _mm_cvtss_si64(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return (int64_t) vgetq_lane_f32(vrndiq_f32(vreinterpretq_f32_m128(a)), 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int64_t) data; ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ps2pi ++FORCE_INLINE __m64 _mm_cvtt_ps2pi(__m128 a) ++{ ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ss2si ++FORCE_INLINE int _mm_cvtt_ss2si(__m128 a) ++{ ++ return vgetq_lane_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)), 0); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_pi32 ++#define _mm_cvttps_pi32(a) _mm_cvtt_ps2pi(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si32 ++#define _mm_cvttss_si32(a) _mm_cvtt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si64 ++FORCE_INLINE int64_t _mm_cvttss_si64(__m128 a) ++{ ++ return (int64_t) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Divide packed single-precision (32-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise division intrinsic, we implement ++// division by multiplying a by b's reciprocal before using the Newton-Raphson ++// method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ps ++FORCE_INLINE __m128 _mm_div_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vdivq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(b)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(a), recip)); ++#endif ++} ++ ++// Divide the lower single-precision (32-bit) floating-point element in a by the ++// lower single-precision (32-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper 3 packed elements from a to ++// the upper elements of dst. ++// Warning: ARMv7-A does not produce the same result compared to Intel and not ++// IEEE-compliant. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ss ++FORCE_INLINE __m128 _mm_div_ss(__m128 a, __m128 b) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_div_ps(a, b)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_pi16 ++#define _mm_extract_pi16(a, imm) \ ++ (int32_t) vget_lane_u16(vreinterpret_u16_m64(a), (imm)) ++ ++// Free aligned memory that was allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_free ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void _mm_free(void *addr) ++{ ++ free(addr); ++} ++#endif ++ ++FORCE_INLINE uint64_t _sse2neon_get_fpcr(void) ++{ ++ uint64_t value; ++#if defined(_MSC_VER) ++ value = _ReadStatusReg(ARM64_FPCR); ++#else ++ __asm__ __volatile__("mrs %0, FPCR" : "=r"(value)); /* read */ ++#endif ++ return value; ++} ++ ++FORCE_INLINE void _sse2neon_set_fpcr(uint64_t value) ++{ ++#if defined(_MSC_VER) ++ _WriteStatusReg(ARM64_FPCR, value); ++#else ++ __asm__ __volatile__("msr FPCR, %0" ::"r"(value)); /* write */ ++#endif ++} ++ ++// Macro: Get the flush zero bits from the MXCSR control and status register. ++// The flush zero may contain any of the following flags: _MM_FLUSH_ZERO_ON or ++// _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_FLUSH_ZERO_MODE ++FORCE_INLINE unsigned int _sse2neon_mm_get_flush_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_FLUSH_ZERO_ON : _MM_FLUSH_ZERO_OFF; ++} ++ ++// Macro: Get the rounding mode bits from the MXCSR control and status register. ++// The rounding mode may contain any of the following flags: _MM_ROUND_NEAREST, ++// _MM_ROUND_DOWN, _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_ROUNDING_MODE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ if (r.field.bit22) { ++ return r.field.bit23 ? _MM_ROUND_TOWARD_ZERO : _MM_ROUND_UP; ++ } else { ++ return r.field.bit23 ? _MM_ROUND_DOWN : _MM_ROUND_NEAREST; ++ } ++} ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_pi16 ++#define _mm_insert_pi16(a, b, imm) \ ++ vreinterpret_m64_s16(vset_lane_s16((b), vreinterpret_s16_m64(a), (imm))) ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps ++FORCE_INLINE __m128 _mm_load_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// ++// dst[31:0] := MEM[mem_addr+31:mem_addr] ++// dst[63:32] := MEM[mem_addr+31:mem_addr] ++// dst[95:64] := MEM[mem_addr+31:mem_addr] ++// dst[127:96] := MEM[mem_addr+31:mem_addr] ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps1 ++#define _mm_load_ps1 _mm_load1_ps ++ ++// Load a single-precision (32-bit) floating-point element from memory into the ++// lower of dst, and zero the upper 3 elements. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ss ++FORCE_INLINE __m128 _mm_load_ss(const float *p) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(*p, vdupq_n_f32(0), 0)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_ps ++FORCE_INLINE __m128 _mm_load1_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_dup_f32(p)); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// upper 2 elements of dst, and copy the lower 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pi ++FORCE_INLINE __m128 _mm_loadh_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vget_low_f32(a), vld1_f32((const float32_t *) p))); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// lower 2 elements of dst, and copy the upper 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pi ++FORCE_INLINE __m128 _mm_loadl_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vld1_f32((const float32_t *) p), vget_high_f32(a))); ++} ++ ++// Load 4 single-precision (32-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_ps ++FORCE_INLINE __m128 _mm_loadr_ps(const float *p) ++{ ++ float32x4_t v = vrev64q_f32(vld1q_f32(p)); ++ return vreinterpretq_m128_f32(vextq_f32(v, v, 2)); ++} ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_ps ++FORCE_INLINE __m128 _mm_loadu_ps(const float *p) ++{ ++ // for neon, alignment doesn't matter, so _mm_load_ps and _mm_loadu_ps are ++ // equivalent for neon ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load unaligned 16-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si16 ++FORCE_INLINE __m128i _mm_loadu_si16(const void *p) ++{ ++ return vreinterpretq_m128i_s16( ++ vsetq_lane_s16(*(const unaligned_int16_t *) p, vdupq_n_s16(0), 0)); ++} ++ ++// Load unaligned 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si64 ++FORCE_INLINE __m128i _mm_loadu_si64(const void *p) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(*(const unaligned_int64_t *) p, vdupq_n_s64(0), 0)); ++} ++ ++// Allocate size bytes of memory, aligned to the alignment specified in align, ++// and return a pointer to the allocated memory. _mm_free should be used to free ++// memory that is allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_malloc ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void *_mm_malloc(size_t size, size_t align) ++{ ++ void *ptr; ++ if (align == 1) ++ return malloc(size); ++ if (align == 2 || (sizeof(void *) == 8 && align == 4)) ++ align = sizeof(void *); ++ if (!posix_memalign(&ptr, align, size)) ++ return ptr; ++ return NULL; ++} ++#endif ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmove_si64 ++FORCE_INLINE void _mm_maskmove_si64(__m64 a, __m64 mask, char *mem_addr) ++{ ++ int8x8_t shr_mask = vshr_n_s8(vreinterpret_s8_m64(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x8_t masked = ++ vbsl_s8(vreinterpret_u8_s8(shr_mask), vreinterpret_s8_m64(a), ++ vreinterpret_s8_u64(vget_low_u64(vreinterpretq_u64_m128(b)))); ++ vst1_s8((int8_t *) mem_addr, masked); ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_maskmovq ++#define _m_maskmovq(a, mask, mem_addr) _mm_maskmove_si64(a, mask, mem_addr) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pi16 ++FORCE_INLINE __m64 _mm_max_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmax_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) maximum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ps ++FORCE_INLINE __m128 _mm_max_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcgtq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vmaxq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pu8 ++FORCE_INLINE __m64 _mm_max_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmax_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) maximum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ss ++FORCE_INLINE __m128 _mm_max_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_max_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pi16 ++FORCE_INLINE __m64 _mm_min_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmin_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) minimum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ps ++FORCE_INLINE __m128 _mm_min_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcltq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vminq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pu8 ++FORCE_INLINE __m64 _mm_min_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmin_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) minimum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ss ++FORCE_INLINE __m128 _mm_min_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_min_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the lower single-precision (32-bit) floating-point element from b to the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_ss ++FORCE_INLINE __m128 _mm_move_ss(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(vgetq_lane_f32(vreinterpretq_f32_m128(b), 0), ++ vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the upper 2 single-precision (32-bit) floating-point elements from b to ++// the lower 2 elements of dst, and copy the upper 2 elements from a to the ++// upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehl_ps ++FORCE_INLINE __m128 _mm_movehl_ps(__m128 a, __m128 b) ++{ ++#if defined(aarch64__) ++ return vreinterpretq_m128_u64( ++ vzip2q_u64(vreinterpretq_u64_m128(b), vreinterpretq_u64_m128(a))); ++#else ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(b32, a32)); ++#endif ++} ++ ++// Move the lower 2 single-precision (32-bit) floating-point elements from b to ++// the upper 2 elements of dst, and copy the lower 2 elements from a to the ++// lower 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movelh_ps ++FORCE_INLINE __m128 _mm_movelh_ps(__m128 __A, __m128 __B) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(__A)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(__B)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pi8 ++FORCE_INLINE int _mm_movemask_pi8(__m64 a) ++{ ++ uint8x8_t input = vreinterpret_u8_m64(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int8_t shift[8] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint8x8_t tmp = vshr_n_u8(input, 7); ++ return vaddv_u8(vshl_u8(tmp, vld1_s8(shift))); ++#else ++ // Refer the implementation of `_mm_movemask_epi8` ++ uint16x4_t high_bits = vreinterpret_u16_u8(vshr_n_u8(input, 7)); ++ uint32x2_t paired16 = ++ vreinterpret_u32_u16(vsra_n_u16(high_bits, high_bits, 7)); ++ uint8x8_t paired32 = ++ vreinterpret_u8_u32(vsra_n_u32(paired16, paired16, 14)); ++ return vget_lane_u8(paired32, 0) | ((int) vget_lane_u8(paired32, 4) << 4); ++#endif ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed single-precision (32-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_ps ++FORCE_INLINE int _mm_movemask_ps(__m128 a) ++{ ++ uint32x4_t input = vreinterpretq_u32_m128(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int32_t shift[4] = {0, 1, 2, 3}; ++ uint32x4_t tmp = vshrq_n_u32(input, 31); ++ return vaddvq_u32(vshlq_u32(tmp, vld1q_s32(shift))); ++#else ++ // Uses the exact same method as _mm_movemask_epi8, see that for details. ++ // Shift out everything but the sign bits with a 32-bit unsigned shift ++ // right. ++ uint64x2_t high_bits = vreinterpretq_u64_u32(vshrq_n_u32(input, 31)); ++ // Merge the two pairs together with a 64-bit unsigned shift right + add. ++ uint8x16_t paired = ++ vreinterpretq_u8_u64(vsraq_n_u64(high_bits, high_bits, 31)); ++ // Extract the result. ++ return vgetq_lane_u8(paired, 0) | (vgetq_lane_u8(paired, 8) << 2); ++#endif ++} ++ ++// Multiply packed single-precision (32-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ps ++FORCE_INLINE_OPTNONE __m128 _mm_mul_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vmulq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Multiply the lower single-precision (32-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ss ++FORCE_INLINE __m128 _mm_mul_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_mul_ps(a, b)); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_pu16 ++FORCE_INLINE __m64 _mm_mulhi_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16(vshrn_n_u32( ++ vmull_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b)), 16)); ++} ++ ++// Compute the bitwise OR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_ps ++FORCE_INLINE __m128 _mm_or_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vorrq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgb ++#define _m_pavgb(a, b) _mm_avg_pu8(a, b) ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgw ++#define _m_pavgw(a, b) _mm_avg_pu16(a, b) ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pextrw ++#define _m_pextrw(a, imm) _mm_extract_pi16(a, imm) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_pinsrw ++#define _m_pinsrw(a, i, imm) _mm_insert_pi16(a, i, imm) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxsw ++#define _m_pmaxsw(a, b) _mm_max_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxub ++#define _m_pmaxub(a, b) _mm_max_pu8(a, b) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminsw ++#define _m_pminsw(a, b) _mm_min_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminub ++#define _m_pminub(a, b) _mm_min_pu8(a, b) ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmovmskb ++#define _m_pmovmskb(a) _mm_movemask_pi8(a) ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmulhuw ++#define _m_pmulhuw(a, b) _mm_mulhi_pu16(a, b) ++ ++// Fetch the line of data from memory that contains address p to a location in ++// the cache hierarchy specified by the locality hint i. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_prefetch ++FORCE_INLINE void _mm_prefetch(char const *p, int i) ++{ ++ (void) i; ++#if defined(_MSC_VER) ++ switch (i) { ++ case _MM_HINT_NTA: ++ __prefetch2(p, 1); ++ break; ++ case _MM_HINT_T0: ++ __prefetch2(p, 0); ++ break; ++ case _MM_HINT_T1: ++ __prefetch2(p, 2); ++ break; ++ case _MM_HINT_T2: ++ __prefetch2(p, 4); ++ break; ++ } ++#else ++ switch (i) { ++ case _MM_HINT_NTA: ++ __builtin_prefetch(p, 0, 0); ++ break; ++ case _MM_HINT_T0: ++ __builtin_prefetch(p, 0, 3); ++ break; ++ case _MM_HINT_T1: ++ __builtin_prefetch(p, 0, 2); ++ break; ++ case _MM_HINT_T2: ++ __builtin_prefetch(p, 0, 1); ++ break; ++ } ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_psadbw ++#define _m_psadbw(a, b) _mm_sad_pu8(a, b) ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pshufw ++#define _m_pshufw(a, imm) _mm_shuffle_pi16(a, imm) ++ ++// Compute the approximate reciprocal of packed single-precision (32-bit) ++// floating-point elements in a, and store the results in dst. The maximum ++// relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ps ++FORCE_INLINE __m128 _mm_rcp_ps(__m128 in) ++{ ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(in)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#if SSE2NEON_PRECISE_DIV ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#endif ++ return vreinterpretq_m128_f32(recip); ++} ++ ++// Compute the approximate reciprocal of the lower single-precision (32-bit) ++// floating-point element in a, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ss ++FORCE_INLINE __m128 _mm_rcp_ss(__m128 a) ++{ ++ return _mm_move_ss(a, _mm_rcp_ps(a)); ++} ++ ++// Compute the approximate reciprocal square root of packed single-precision ++// (32-bit) floating-point elements in a, and store the results in dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ps ++FORCE_INLINE __m128 _mm_rsqrt_ps(__m128 in) ++{ ++ float32x4_t out = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Generate masks for detecting whether input has any 0.0f/-0.0f ++ // (which becomes positive/negative infinity by IEEE-754 arithmetic rules). ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t neg_inf = vdupq_n_u32(0xFF800000); ++ const uint32x4_t has_pos_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(out)); ++ const uint32x4_t has_neg_zero = ++ vceqq_u32(neg_inf, vreinterpretq_u32_f32(out)); ++ ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#if SSE2NEON_PRECISE_SQRT ++ // Additional Netwon-Raphson iteration for accuracy ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#endif ++ ++ // Set output vector element to infinity/negative-infinity if ++ // the corresponding input vector element is 0.0f/-0.0f. ++ out = vbslq_f32(has_pos_zero, (float32x4_t) pos_inf, out); ++ out = vbslq_f32(has_neg_zero, (float32x4_t) neg_inf, out); ++ ++ return vreinterpretq_m128_f32(out); ++} ++ ++// Compute the approximate reciprocal square root of the lower single-precision ++// (32-bit) floating-point element in a, store the result in the lower element ++// of dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ss ++FORCE_INLINE __m128 _mm_rsqrt_ss(__m128 in) ++{ ++ return vsetq_lane_f32(vgetq_lane_f32(_mm_rsqrt_ps(in), 0), in, 0); ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_pu8 ++FORCE_INLINE __m64 _mm_sad_pu8(__m64 a, __m64 b) ++{ ++ uint64x1_t t = vpaddl_u32(vpaddl_u16( ++ vpaddl_u8(vabd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))))); ++ return vreinterpret_m64_u16( ++ vset_lane_u16((int) vget_lane_u64(t, 0), vdup_n_u16(0), 0)); ++} ++ ++// Macro: Set the flush zero bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The flush zero may contain any of the ++// following flags: _MM_FLUSH_ZERO_ON or _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_FLUSH_ZERO_MODE ++FORCE_INLINE void _sse2neon_mm_set_flush_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_FLUSH_ZERO_MASK) == _MM_FLUSH_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps ++FORCE_INLINE __m128 _mm_set_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {x, y, z, w}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps1 ++FORCE_INLINE __m128 _mm_set_ps1(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Macro: Set the rounding mode bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The rounding mode may contain any of ++// the following flags: _MM_ROUND_NEAREST, _MM_ROUND_DOWN, _MM_ROUND_UP, ++// _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_ROUNDING_MODE ++FORCE_INLINE void _MM_SET_ROUNDING_MODE(int rounding) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ switch (rounding) { ++ case _MM_ROUND_TOWARD_ZERO: ++ r.field.bit22 = 1; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_DOWN: ++ r.field.bit22 = 0; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_UP: ++ r.field.bit22 = 1; ++ r.field.bit23 = 0; ++ break; ++ default: //_MM_ROUND_NEAREST ++ r.field.bit22 = 0; ++ r.field.bit23 = 0; ++ } ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Copy single-precision (32-bit) floating-point element a to the lower element ++// of dst, and zero the upper 3 elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ss ++FORCE_INLINE __m128 _mm_set_ss(float a) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(a, vdupq_n_f32(0), 0)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_ps ++FORCE_INLINE __m128 _mm_set1_ps(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Set the MXCSR control and status register with the value in unsigned 32-bit ++// integer a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setcsr ++// FIXME: _mm_setcsr() implementation supports changing the rounding mode only. ++FORCE_INLINE void _mm_setcsr(unsigned int a) ++{ ++ _MM_SET_ROUNDING_MODE(a); ++} ++ ++// Get the unsigned 32-bit value of the MXCSR control and status register. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_getcsr ++// FIXME: _mm_getcsr() implementation supports reading the rounding mode only. ++FORCE_INLINE unsigned int _mm_getcsr(void) ++{ ++ return _MM_GET_ROUNDING_MODE(); ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_ps ++FORCE_INLINE __m128 _mm_setr_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {w, z, y, x}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Return vector of type __m128 with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_ps ++FORCE_INLINE __m128 _mm_setzero_ps(void) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(0)); ++} ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi16 ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pi16(a, imm) \ ++ vreinterpret_m64_s16(vshuffle_s16( \ ++ vreinterpret_s16_m64(a), vreinterpret_s16_m64(a), (imm & 0x3), \ ++ ((imm >> 2) & 0x3), ((imm >> 4) & 0x3), ((imm >> 6) & 0x3))) ++#else ++#define _mm_shuffle_pi16(a, imm) \ ++ _sse2neon_define1( \ ++ __m64, a, int16x4_t ret; \ ++ ret = vmov_n_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), (imm) & (0x3))); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpret_m64_s16(ret));) ++#endif ++ ++// Perform a serializing operation on all store-to-memory instructions that were ++// issued prior to this instruction. Guarantees that every store instruction ++// that precedes, in program order, is globally visible before any store ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sfence ++FORCE_INLINE void _mm_sfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory and store-to-memory ++// instructions that were issued prior to this instruction. Guarantees that ++// every memory access that precedes, in program order, the memory fence ++// instruction is globally visible before any memory instruction which follows ++// the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mfence ++FORCE_INLINE void _mm_mfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory instructions that ++// were issued prior to this instruction. Guarantees that every load instruction ++// that precedes, in program order, is globally visible before any load ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lfence ++FORCE_INLINE void _mm_lfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// FORCE_INLINE __m128 _mm_shuffle_ps(__m128 a, __m128 b, __constrange(0,255) ++// int imm) ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_ps(a, b, imm) \ ++ __extension__({ \ ++ float32x4_t _input1 = vreinterpretq_f32_m128(a); \ ++ float32x4_t _input2 = vreinterpretq_f32_m128(b); \ ++ float32x4_t _shuf = \ ++ vshuffleq_s32(_input1, _input2, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ (((imm) >> 4) & 0x3) + 4, (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128_f32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_ps(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128, a, b, __m128 ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_1032(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_ps_2301(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_ps_0321(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_ps_2103(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_movelh_ps(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_1001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_ps_0101(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 1, 0): \ ++ ret = _mm_shuffle_ps_3210(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 1, 1): \ ++ ret = _mm_shuffle_ps_0011(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 2, 2): \ ++ ret = _mm_shuffle_ps_0022(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 0, 0): \ ++ ret = _mm_shuffle_ps_2200(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 0, 2): \ ++ ret = _mm_shuffle_ps_3202(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 3, 2): \ ++ ret = _mm_movehl_ps(_b, _a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 3, 3): \ ++ ret = _mm_shuffle_ps_1133(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 1, 0): \ ++ ret = _mm_shuffle_ps_2010(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_2001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_2032(_a, _b); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_ps_default(_a, _b, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Compute the square root of packed single-precision (32-bit) floating-point ++// elements in a, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise square root intrinsic, we implement ++// square root by multiplying input in with its reciprocal square root before ++// using the Newton-Raphson method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ps ++FORCE_INLINE __m128 _mm_sqrt_ps(__m128 in) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) && !SSE2NEON_PRECISE_SQRT ++ return vreinterpretq_m128_f32(vsqrtq_f32(vreinterpretq_f32_m128(in))); ++#else ++ float32x4_t recip = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Test for vrsqrteq_f32(0) -> positive infinity case. ++ // Change to zero, so that s * 1/sqrt(s) result is zero too. ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t div_by_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(recip)); ++ recip = vreinterpretq_f32_u32( ++ vandq_u32(vmvnq_u32(div_by_zero), vreinterpretq_u32_f32(recip))); ++ ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ ++ // sqrt(s) = s * 1/sqrt(s) ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(in), recip)); ++#endif ++} ++ ++// Compute the square root of the lower single-precision (32-bit) floating-point ++// element in a, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ss ++FORCE_INLINE __m128 _mm_sqrt_ss(__m128 in) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_sqrt_ps(in)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(in), 0)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps ++FORCE_INLINE void _mm_store_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps1 ++FORCE_INLINE void _mm_store_ps1(float *p, __m128 a) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ vst1q_f32(p, vdupq_n_f32(a0)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ss ++FORCE_INLINE void _mm_store_ss(float *p, __m128 a) ++{ ++ vst1q_lane_f32(p, vreinterpretq_f32_m128(a), 0); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store1_ps ++#define _mm_store1_ps _mm_store_ps1 ++ ++// Store the upper 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pi ++FORCE_INLINE void _mm_storeh_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_high_f32(a)); ++} ++ ++// Store the lower 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pi ++FORCE_INLINE void _mm_storel_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_low_f32(a)); ++} ++ ++// Store 4 single-precision (32-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_ps ++FORCE_INLINE void _mm_storer_ps(float *p, __m128 a) ++{ ++ float32x4_t tmp = vrev64q_f32(vreinterpretq_f32_m128(a)); ++ float32x4_t rev = vextq_f32(tmp, tmp, 2); ++ vst1q_f32(p, rev); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_ps ++FORCE_INLINE void _mm_storeu_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Stores 16-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si16 ++FORCE_INLINE void _mm_storeu_si16(void *p, __m128i a) ++{ ++ vst1q_lane_s16((int16_t *) p, vreinterpretq_s16_m128i(a), 0); ++} ++ ++// Stores 64-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si64 ++FORCE_INLINE void _mm_storeu_si64(void *p, __m128i a) ++{ ++ vst1q_lane_s64((int64_t *) p, vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Store 64-bits of integer data from a into memory using a non-temporal memory ++// hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pi ++FORCE_INLINE void _mm_stream_pi(__m64 *p, __m64 a) ++{ ++ vst1_s64((int64_t *) p, vreinterpret_s64_m64(a)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating- ++// point elements) from a into memory using a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_ps ++FORCE_INLINE void _mm_stream_ps(float *p, __m128 a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (float32x4_t *) p); ++#else ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++#endif ++} ++ ++// Subtract packed single-precision (32-bit) floating-point elements in b from ++// packed single-precision (32-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ps ++FORCE_INLINE __m128 _mm_sub_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Subtract the lower single-precision (32-bit) floating-point element in b from ++// the lower single-precision (32-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper 3 packed elements from ++// a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ss ++FORCE_INLINE __m128 _mm_sub_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_sub_ps(a, b)); ++} ++ ++// Macro: Transpose the 4x4 matrix formed by the 4 rows of single-precision ++// (32-bit) floating-point elements in row0, row1, row2, and row3, and store the ++// transposed matrix in these vectors (row0 now contains column 0, etc.). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=MM_TRANSPOSE4_PS ++#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \ ++ do { \ ++ float32x4x2_t ROW01 = vtrnq_f32(row0, row1); \ ++ float32x4x2_t ROW23 = vtrnq_f32(row2, row3); \ ++ row0 = vcombine_f32(vget_low_f32(ROW01.val[0]), \ ++ vget_low_f32(ROW23.val[0])); \ ++ row1 = vcombine_f32(vget_low_f32(ROW01.val[1]), \ ++ vget_low_f32(ROW23.val[1])); \ ++ row2 = vcombine_f32(vget_high_f32(ROW01.val[0]), \ ++ vget_high_f32(ROW23.val[0])); \ ++ row3 = vcombine_f32(vget_high_f32(ROW01.val[1]), \ ++ vget_high_f32(ROW23.val[1])); \ ++ } while (0) ++ ++// according to the documentation, these intrinsics behave the same as the ++// non-'u' versions. We'll just alias them here. ++#define _mm_ucomieq_ss _mm_comieq_ss ++#define _mm_ucomige_ss _mm_comige_ss ++#define _mm_ucomigt_ss _mm_comigt_ss ++#define _mm_ucomile_ss _mm_comile_ss ++#define _mm_ucomilt_ss _mm_comilt_ss ++#define _mm_ucomineq_ss _mm_comineq_ss ++ ++// Return vector of type __m128i with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_undefined_si128 ++FORCE_INLINE __m128i _mm_undefined_si128(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128i a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_si128(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Return vector of type __m128 with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_ps ++FORCE_INLINE __m128 _mm_undefined_ps(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128 a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_ps(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the high half a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_ps ++FORCE_INLINE __m128 _mm_unpackhi_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_ps ++FORCE_INLINE __m128 _mm_unpacklo_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Compute the bitwise XOR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_ps ++FORCE_INLINE __m128 _mm_xor_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ veorq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++/* SSE2 */ ++ ++// Add packed 16-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi16 ++FORCE_INLINE __m128i _mm_add_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed 32-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi32 ++FORCE_INLINE __m128i _mm_add_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vaddq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Add packed 64-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi64 ++FORCE_INLINE __m128i _mm_add_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vaddq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Add packed 8-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi8 ++FORCE_INLINE __m128i _mm_add_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed double-precision (64-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_pd ++FORCE_INLINE __m128d _mm_add_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1] + db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add the lower double-precision (64-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper element from ++// a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_sd ++FORCE_INLINE __m128d _mm_add_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_add_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add 64-bit integers a and b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_si64 ++FORCE_INLINE __m64 _mm_add_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vadd_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Add packed signed 16-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi16 ++FORCE_INLINE __m128i _mm_adds_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed signed 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi8 ++FORCE_INLINE __m128i _mm_adds_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed unsigned 16-bit integers in a and b using saturation, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu16 ++FORCE_INLINE __m128i _mm_adds_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqaddq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Add packed unsigned 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu8 ++FORCE_INLINE __m128i _mm_adds_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compute the bitwise AND of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_pd ++FORCE_INLINE __m128d _mm_and_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vandq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_si128 ++FORCE_INLINE __m128i _mm_and_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vandq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compute the bitwise NOT of packed double-precision (64-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_pd ++FORCE_INLINE __m128d _mm_andnot_pd(__m128d a, __m128d b) ++{ ++ // *NOTE* argument swap ++ return vreinterpretq_m128d_s64( ++ vbicq_s64(vreinterpretq_s64_m128d(b), vreinterpretq_s64_m128d(a))); ++} ++ ++// Compute the bitwise NOT of 128 bits (representing integer data) in a and then ++// AND with b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_si128 ++FORCE_INLINE __m128i _mm_andnot_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vbicq_s32(vreinterpretq_s32_m128i(b), ++ vreinterpretq_s32_m128i(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu16 ++FORCE_INLINE __m128i _mm_avg_epu16(__m128i a, __m128i b) ++{ ++ return (__m128i) vrhaddq_u16(vreinterpretq_u16_m128i(a), ++ vreinterpretq_u16_m128i(b)); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu8 ++FORCE_INLINE __m128i _mm_avg_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vrhaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bslli_si128 ++#define _mm_bslli_si128(a, imm) _mm_slli_si128(a, imm) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bsrli_si128 ++#define _mm_bsrli_si128(a, imm) _mm_srli_si128(a, imm) ++ ++// Cast vector of type __m128d to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_ps ++FORCE_INLINE __m128 _mm_castpd_ps(__m128d a) ++{ ++ return vreinterpretq_m128_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128d to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_si128 ++FORCE_INLINE __m128i _mm_castpd_si128(__m128d a) ++{ ++ return vreinterpretq_m128i_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128 to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_pd ++FORCE_INLINE __m128d _mm_castps_pd(__m128 a) ++{ ++ return vreinterpretq_m128d_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128 to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_si128 ++FORCE_INLINE __m128i _mm_castps_si128(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128i to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_pd ++FORCE_INLINE __m128d _mm_castsi128_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vreinterpretq_f64_m128i(a)); ++#else ++ return vreinterpretq_m128d_f32(vreinterpretq_f32_m128i(a)); ++#endif ++} ++ ++// Cast vector of type __m128i to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_ps ++FORCE_INLINE __m128 _mm_castsi128_ps(__m128i a) ++{ ++ return vreinterpretq_m128_s32(vreinterpretq_s32_m128i(a)); ++} ++ ++// Invalidate and flush the cache line that contains p from all levels of the ++// cache hierarchy. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clflush ++#if defined(__APPLE__) ++#include ++#endif ++FORCE_INLINE void _mm_clflush(void const *p) ++{ ++ (void) p; ++ ++ /* sys_icache_invalidate is supported since macOS 10.5. ++ * However, it does not work on non-jailbroken iOS devices, although the ++ * compilation is successful. ++ */ ++#if defined(__APPLE__) ++ sys_icache_invalidate((void *) (uintptr_t) p, SSE2NEON_CACHELINE_SIZE); ++#elif defined(__GNUC__) || defined(__clang__) ++ uintptr_t ptr = (uintptr_t) p; ++ __builtin___clear_cache((char *) ptr, ++ (char *) ptr + SSE2NEON_CACHELINE_SIZE); ++#elif (_MSC_VER) && SSE2NEON_INCLUDE_WINDOWS_H ++ FlushInstructionCache(GetCurrentProcess(), p, SSE2NEON_CACHELINE_SIZE); ++#endif ++} ++ ++// Compare packed 16-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi16 ++FORCE_INLINE __m128i _mm_cmpeq_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vceqq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed 32-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi32 ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vceqq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed 8-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi8 ++FORCE_INLINE __m128i _mm_cmpeq_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vceqq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_pd ++FORCE_INLINE __m128d _mm_cmpeq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_sd ++FORCE_INLINE __m128d _mm_cmpeq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpeq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_pd ++FORCE_INLINE __m128d _mm_cmpge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) >= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_sd ++FORCE_INLINE __m128d _mm_cmpge_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpge_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi16 ++FORCE_INLINE __m128i _mm_cmpgt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcgtq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi32 ++FORCE_INLINE __m128i _mm_cmpgt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcgtq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi8 ++FORCE_INLINE __m128i _mm_cmpgt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcgtq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_pd ++FORCE_INLINE __m128d _mm_cmpgt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_sd ++FORCE_INLINE __m128d _mm_cmpgt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpgt_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_pd ++FORCE_INLINE __m128d _mm_cmple_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) <= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_sd ++FORCE_INLINE __m128d _mm_cmple_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmple_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtw instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi16 ++FORCE_INLINE __m128i _mm_cmplt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcltq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtd instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi32 ++FORCE_INLINE __m128i _mm_cmplt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcltq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtb instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi8 ++FORCE_INLINE __m128i _mm_cmplt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcltq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_pd ++FORCE_INLINE __m128d _mm_cmplt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_sd ++FORCE_INLINE __m128d _mm_cmplt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmplt_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_pd ++FORCE_INLINE __m128d _mm_cmpneq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_s32(vmvnq_s32(vreinterpretq_s32_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vmvnq_u32(vandq_u32(cmp, swapped))); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_sd ++FORCE_INLINE __m128d _mm_cmpneq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpneq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_pd ++FORCE_INLINE __m128d _mm_cmpnge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) >= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) >= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_sd ++FORCE_INLINE __m128d _mm_cmpnge_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnge_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_cmpngt_pd ++FORCE_INLINE __m128d _mm_cmpngt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) > (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) > (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_sd ++FORCE_INLINE __m128d _mm_cmpngt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpngt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_pd ++FORCE_INLINE __m128d _mm_cmpnle_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) <= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) <= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_sd ++FORCE_INLINE __m128d _mm_cmpnle_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnle_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_pd ++FORCE_INLINE __m128d _mm_cmpnlt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) < (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) < (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_sd ++FORCE_INLINE __m128d _mm_cmpnlt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnlt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_pd ++FORCE_INLINE __m128d _mm_cmpord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Excluding NaNs, any two floating point numbers can be compared. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_u64(vandq_u64(not_nan_a, not_nan_b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_sd ++FORCE_INLINE __m128d _mm_cmpord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_pd ++FORCE_INLINE __m128d _mm_cmpunord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Two NaNs are not equal in comparison operation. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_s32( ++ vmvnq_s32(vreinterpretq_s32_u64(vandq_u64(not_nan_a, not_nan_b)))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_sd ++FORCE_INLINE __m128d _mm_cmpunord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpunord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_sd ++FORCE_INLINE int _mm_comige_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgeq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 >= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_sd ++FORCE_INLINE int _mm_comigt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgtq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 > *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_sd ++FORCE_INLINE int _mm_comile_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcleq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 <= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_sd ++FORCE_INLINE int _mm_comilt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcltq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 < *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_sd ++FORCE_INLINE int _mm_comieq_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vceqq_f64(a, b), 0) & 0x1; ++#else ++ uint32x4_t a_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(a)); ++ uint32x4_t b_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(b), vreinterpretq_u32_m128d(b)); ++ uint32x4_t a_and_b_not_nan = vandq_u32(a_not_nan, b_not_nan); ++ uint32x4_t a_eq_b = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint64x2_t and_results = vandq_u64(vreinterpretq_u64_u32(a_and_b_not_nan), ++ vreinterpretq_u64_u32(a_eq_b)); ++ return vgetq_lane_u64(and_results, 0) & 0x1; ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_sd ++FORCE_INLINE int _mm_comineq_sd(__m128d a, __m128d b) ++{ ++ return !_mm_comieq_sd(a, b); ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_pd ++FORCE_INLINE __m128d _mm_cvtepi32_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a))))); ++#else ++ double a0 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++ double a1 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_ps ++FORCE_INLINE __m128 _mm_cvtepi32_ps(__m128i a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_epi32 ++FORCE_INLINE_OPTNONE __m128i _mm_cvtpd_epi32(__m128d a) ++{ ++// vrnd32xq_f64 not supported on clang ++#if defined(__ARM_FEATURE_FRINT) && !defined(__clang__) ++ float64x2_t rounded = vrnd32xq_f64(vreinterpretq_f64_m128d(a)); ++ int64x2_t integers = vcvtq_s64_f64(rounded); ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vmovn_s64(integers), vdup_n_s32(0))); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) d1, (int32_t) d0); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_pi32 ++FORCE_INLINE_OPTNONE __m64 _mm_cvtpd_pi32(__m128d a) ++{ ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) d0, (int32_t) d1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed single-precision (32-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_ps ++FORCE_INLINE __m128 _mm_cvtpd_ps(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float32x2_t tmp = vcvt_f32_f64(vreinterpretq_f64_m128d(a)); ++ return vreinterpretq_m128_f32(vcombine_f32(tmp, vdup_n_f32(0))); ++#else ++ float a0 = (float) ((double *) &a)[0]; ++ float a1 = (float) ((double *) &a)[1]; ++ return _mm_set_ps(0, 0, a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_pd ++FORCE_INLINE __m128d _mm_cvtpi32_pd(__m64 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vreinterpret_s32_m64(a)))); ++#else ++ double a0 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 0); ++ double a1 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_epi32 ++// *NOTE*. The default rounding mode on SSE is 'round to even', which ARMv7-A ++// does not support! It is supported on ARMv8-A however. ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128 a) ++{ ++#if defined(__ARM_FEATURE_FRINT) ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vrnd32xq_f32(a))); ++#elif (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: ++ return vreinterpretq_m128i_s32(vcvtnq_s32_f32(a)); ++ case _MM_ROUND_DOWN: ++ return vreinterpretq_m128i_s32(vcvtmq_s32_f32(a)); ++ case _MM_ROUND_UP: ++ return vreinterpretq_m128i_s32(vcvtpq_s32_f32(a)); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(a)); ++ } ++#else ++ float *f = (float *) &a; ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128i_s32( ++ vbslq_s32(is_delta_half, r_even, r_normal)); ++ } ++ case _MM_ROUND_DOWN: ++ return _mm_set_epi32(floorf(f[3]), floorf(f[2]), floorf(f[1]), ++ floorf(f[0])); ++ case _MM_ROUND_UP: ++ return _mm_set_epi32(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ++ ceilf(f[0])); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return _mm_set_epi32((int32_t) f[3], (int32_t) f[2], (int32_t) f[1], ++ (int32_t) f[0]); ++ } ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed double-precision (64-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pd ++FORCE_INLINE __m128d _mm_cvtps_pd(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvt_f64_f32(vget_low_f32(vreinterpretq_f32_m128(a)))); ++#else ++ double a0 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ double a1 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Copy the lower double-precision (64-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_f64 ++FORCE_INLINE double _mm_cvtsd_f64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (double) vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0); ++#else ++ return ((double *) &a)[0]; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si32 ++FORCE_INLINE int32_t _mm_cvtsd_si32(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int32_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int32_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64 ++FORCE_INLINE int64_t _mm_cvtsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int64_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64x ++#define _mm_cvtsd_si64x _mm_cvtsd_si64 ++ ++// Convert the lower double-precision (64-bit) floating-point element in b to a ++// single-precision (32-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_ss ++FORCE_INLINE __m128 _mm_cvtsd_ss(__m128 a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32(vsetq_lane_f32( ++ vget_lane_f32(vcvt_f32_f64(vreinterpretq_f64_m128d(b)), 0), ++ vreinterpretq_f32_m128(a), 0)); ++#else ++ return vreinterpretq_m128_f32(vsetq_lane_f32((float) ((double *) &b)[0], ++ vreinterpretq_f32_m128(a), 0)); ++#endif ++} ++ ++// Copy the lower 32-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si32 ++FORCE_INLINE int _mm_cvtsi128_si32(__m128i a) ++{ ++ return vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64 ++FORCE_INLINE int64_t _mm_cvtsi128_si64(__m128i a) ++{ ++ return vgetq_lane_s64(vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Convert the signed 32-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_sd ++FORCE_INLINE __m128d _mm_cvtsi32_sd(__m128d a, int32_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Copy 32-bit integer a to the lower elements of dst, and zero the upper ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_si128 ++FORCE_INLINE __m128i _mm_cvtsi32_si128(int a) ++{ ++ return vreinterpretq_m128i_s32(vsetq_lane_s32(a, vdupq_n_s32(0), 0)); ++} ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_sd ++FORCE_INLINE __m128d _mm_cvtsi64_sd(__m128d a, int64_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_si128 ++FORCE_INLINE __m128i _mm_cvtsi64_si128(int64_t a) ++{ ++ return vreinterpretq_m128i_s64(vsetq_lane_s64(a, vdupq_n_s64(0), 0)); ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_si128 ++#define _mm_cvtsi64x_si128(a) _mm_cvtsi64_si128(a) ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_sd ++#define _mm_cvtsi64x_sd(a, b) _mm_cvtsi64_sd(a, b) ++ ++// Convert the lower single-precision (32-bit) floating-point element in b to a ++// double-precision (64-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_sd ++FORCE_INLINE __m128d _mm_cvtss_sd(__m128d a, __m128 b) ++{ ++ double d = (double) vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(d, vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &d, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_epi32 ++FORCE_INLINE __m128i _mm_cvttpd_epi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) a1, (int32_t) a0); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_pi32 ++FORCE_INLINE __m64 _mm_cvttpd_pi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) a0, (int32_t) a1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_epi32 ++FORCE_INLINE __m128i _mm_cvttps_epi32(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a))); ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si32 ++FORCE_INLINE int32_t _mm_cvttsd_si32(__m128d a) ++{ ++ double ret = *((double *) &a); ++ return (int32_t) ret; ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64 ++FORCE_INLINE int64_t _mm_cvttsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_s64(vcvtq_s64_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ double ret = *((double *) &a); ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64x ++#define _mm_cvttsd_si64x(a) _mm_cvttsd_si64(a) ++ ++// Divide packed double-precision (64-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_pd ++FORCE_INLINE __m128d _mm_div_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] / db[0]; ++ c[1] = da[1] / db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Divide the lower double-precision (64-bit) floating-point element in a by the ++// lower double-precision (64-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper element from a to the upper ++// element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_sd ++FORCE_INLINE __m128d _mm_div_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t tmp = ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1), tmp, 1)); ++#else ++ return _mm_move_sd(a, _mm_div_pd(a, b)); ++#endif ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi16 ++// FORCE_INLINE int _mm_extract_epi16(__m128i a, __constrange(0,8) int imm) ++#define _mm_extract_epi16(a, imm) \ ++ vgetq_lane_u16(vreinterpretq_u16_m128i(a), (imm)) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi16 ++// FORCE_INLINE __m128i _mm_insert_epi16(__m128i a, int b, ++// __constrange(0,8) int imm) ++#define _mm_insert_epi16(a, b, imm) \ ++ vreinterpretq_m128i_s16( \ ++ vsetq_lane_s16((b), vreinterpretq_s16_m128i(a), (imm))) ++ ++// Load 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd ++FORCE_INLINE __m128d _mm_load_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64(p)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], fp[2], fp[3]}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd1 ++#define _mm_load_pd1 _mm_load1_pd ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower of dst, and zero the upper element. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_sd ++FORCE_INLINE __m128d _mm_load_sd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(*p, vdupq_n_f64(0), 0)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], 0, 0}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_si128 ++FORCE_INLINE __m128i _mm_load_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const int32_t *) p)); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_pd ++FORCE_INLINE __m128d _mm_load1_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_dup_f64(p)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(const int64_t *) p)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// upper element of dst, and copy the lower element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pd ++FORCE_INLINE __m128d _mm_loadh_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vget_low_f64(vreinterpretq_f64_m128d(a)), vld1_f64(p))); ++#else ++ return vreinterpretq_m128d_f32(vcombine_f32( ++ vget_low_f32(vreinterpretq_f32_m128d(a)), vld1_f32((const float *) p))); ++#endif ++} ++ ++// Load 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_epi64 ++FORCE_INLINE __m128i _mm_loadl_epi64(__m128i const *p) ++{ ++ /* Load the lower 64 bits of the value pointed to by p into the ++ * lower 64 bits of the result, zeroing the upper 64 bits of the result. ++ */ ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vld1_s32((int32_t const *) p), vcreate_s32(0))); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower element of dst, and copy the upper element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pd ++FORCE_INLINE __m128d _mm_loadl_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vld1_f64(p), vget_high_f64(vreinterpretq_f64_m128d(a)))); ++#else ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vld1_f32((const float *) p), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++#endif ++} ++ ++// Load 2 double-precision (64-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_pd ++FORCE_INLINE __m128d _mm_loadr_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t v = vld1q_f64(p); ++ return vreinterpretq_m128d_f64(vextq_f64(v, v, 1)); ++#else ++ int64x2_t v = vld1q_s64((const int64_t *) p); ++ return vreinterpretq_m128d_s64(vextq_s64(v, v, 1)); ++#endif ++} ++ ++// Loads two double-precision from unaligned memory, floating-point values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_pd ++FORCE_INLINE __m128d _mm_loadu_pd(const double *p) ++{ ++ return _mm_load_pd(p); ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si128 ++FORCE_INLINE __m128i _mm_loadu_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const unaligned_int32_t *) p)); ++} ++ ++// Load unaligned 32-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si32 ++FORCE_INLINE __m128i _mm_loadu_si32(const void *p) ++{ ++ return vreinterpretq_m128i_s32( ++ vsetq_lane_s32(*(const unaligned_int32_t *) p, vdupq_n_s32(0), 0)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Horizontally add adjacent pairs of intermediate ++// 32-bit integers, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_madd_epi16 ++FORCE_INLINE __m128i _mm_madd_epi16(__m128i a, __m128i b) ++{ ++ int32x4_t low = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t high = ++ vmull_high_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)); ++ ++ return vreinterpretq_m128i_s32(vpaddq_s32(low, high)); ++#else ++ int32x4_t high = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ int32x2_t low_sum = vpadd_s32(vget_low_s32(low), vget_high_s32(low)); ++ int32x2_t high_sum = vpadd_s32(vget_low_s32(high), vget_high_s32(high)); ++ ++ return vreinterpretq_m128i_s32(vcombine_s32(low_sum, high_sum)); ++#endif ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. mem_addr does not need to be aligned ++// on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmoveu_si128 ++FORCE_INLINE void _mm_maskmoveu_si128(__m128i a, __m128i mask, char *mem_addr) ++{ ++ int8x16_t shr_mask = vshrq_n_s8(vreinterpretq_s8_m128i(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x16_t masked = ++ vbslq_s8(vreinterpretq_u8_s8(shr_mask), vreinterpretq_s8_m128i(a), ++ vreinterpretq_s8_m128(b)); ++ vst1q_s8((int8_t *) mem_addr, masked); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi16 ++FORCE_INLINE __m128i _mm_max_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmaxq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu8 ++FORCE_INLINE __m128i _mm_max_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vmaxq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pd ++FORCE_INLINE __m128d _mm_max_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcgtq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vmaxq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? a1 : b1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_sd ++FORCE_INLINE __m128d _mm_max_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_max_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] > db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi16 ++FORCE_INLINE __m128i _mm_min_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vminq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu8 ++FORCE_INLINE __m128i _mm_min_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vminq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pd ++FORCE_INLINE __m128d _mm_min_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcltq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vminq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? a1 : b1; ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_sd ++FORCE_INLINE __m128d _mm_min_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_min_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] < db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to the lower element of dst, and zero the ++// upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_epi64 ++FORCE_INLINE __m128i _mm_move_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(0, vreinterpretq_s64_m128i(a), 1)); ++} ++ ++// Move the lower double-precision (64-bit) floating-point element from b to the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_sd ++FORCE_INLINE __m128d _mm_move_sd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vget_low_f32(vreinterpretq_f32_m128d(b)), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_epi8 ++FORCE_INLINE int _mm_movemask_epi8(__m128i a) ++{ ++ // Use increasingly wide shifts+adds to collect the sign bits ++ // together. ++ // Since the widening shifts would be rather confusing to follow in little ++ // endian, everything will be illustrated in big endian order instead. This ++ // has a different result - the bits would actually be reversed on a big ++ // endian machine. ++ ++ // Starting input (only half the elements are shown): ++ // 89 ff 1d c0 00 10 99 33 ++ uint8x16_t input = vreinterpretq_u8_m128i(a); ++ ++ // Shift out everything but the sign bits with an unsigned shift right. ++ // ++ // Bytes of the vector:: ++ // 89 ff 1d c0 00 10 99 33 ++ // \ \ \ \ \ \ \ \ high_bits = (uint16x4_t)(input >> 7) ++ // | | | | | | | | ++ // 01 01 00 01 00 00 01 00 ++ // ++ // Bits of first important lane(s): ++ // 10001001 (89) ++ // \______ ++ // | ++ // 00000001 (01) ++ uint16x8_t high_bits = vreinterpretq_u16_u8(vshrq_n_u8(input, 7)); ++ ++ // Merge the even lanes together with a 16-bit unsigned shift right + add. ++ // 'xx' represents garbage data which will be ignored in the final result. ++ // In the important bytes, the add functions like a binary OR. ++ // ++ // 01 01 00 01 00 00 01 00 ++ // \_ | \_ | \_ | \_ | paired16 = (uint32x4_t)(input + (input >> 7)) ++ // \| \| \| \| ++ // xx 03 xx 01 xx 00 xx 02 ++ // ++ // 00000001 00000001 (01 01) ++ // \_______ | ++ // \| ++ // xxxxxxxx xxxxxx11 (xx 03) ++ uint32x4_t paired16 = ++ vreinterpretq_u32_u16(vsraq_n_u16(high_bits, high_bits, 7)); ++ ++ // Repeat with a wider 32-bit shift + add. ++ // xx 03 xx 01 xx 00 xx 02 ++ // \____ | \____ | paired32 = (uint64x1_t)(paired16 + (paired16 >> ++ // 14)) ++ // \| \| ++ // xx xx xx 0d xx xx xx 02 ++ // ++ // 00000011 00000001 (03 01) ++ // \\_____ || ++ // '----.\|| ++ // xxxxxxxx xxxx1101 (xx 0d) ++ uint64x2_t paired32 = ++ vreinterpretq_u64_u32(vsraq_n_u32(paired16, paired16, 14)); ++ ++ // Last, an even wider 64-bit shift + add to get our result in the low 8 bit ++ // lanes. xx xx xx 0d xx xx xx 02 ++ // \_________ | paired64 = (uint8x8_t)(paired32 + (paired32 >> ++ // 28)) ++ // \| ++ // xx xx xx xx xx xx xx d2 ++ // ++ // 00001101 00000010 (0d 02) ++ // \ \___ | | ++ // '---. \| | ++ // xxxxxxxx 11010010 (xx d2) ++ uint8x16_t paired64 = ++ vreinterpretq_u8_u64(vsraq_n_u64(paired32, paired32, 28)); ++ ++ // Extract the low 8 bits from each 64-bit lane with 2 8-bit extracts. ++ // xx xx xx xx xx xx xx d2 ++ // || return paired64[0] ++ // d2 ++ // Note: Little endian would return the correct value 4b (01001011) instead. ++ return vgetq_lane_u8(paired64, 0) | ((int) vgetq_lane_u8(paired64, 8) << 8); ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed double-precision (64-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pd ++FORCE_INLINE int _mm_movemask_pd(__m128d a) ++{ ++ uint64x2_t input = vreinterpretq_u64_m128d(a); ++ uint64x2_t high_bits = vshrq_n_u64(input, 63); ++ return (int) (vgetq_lane_u64(high_bits, 0) | ++ (vgetq_lane_u64(high_bits, 1) << 1)); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movepi64_pi64 ++FORCE_INLINE __m64 _mm_movepi64_pi64(__m128i a) ++{ ++ return vreinterpret_m64_s64(vget_low_s64(vreinterpretq_s64_m128i(a))); ++} ++ ++// Copy the 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movpi64_epi64 ++FORCE_INLINE __m128i _mm_movpi64_epi64(__m64 a) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vreinterpret_s64_m64(a), vdup_n_s64(0))); ++} ++ ++// Multiply the low unsigned 32-bit integers from each packed 64-bit element in ++// a and b, and store the unsigned 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epu32 ++FORCE_INLINE __m128i _mm_mul_epu32(__m128i a, __m128i b) ++{ ++ // vmull_u32 upcasts instead of masking, so we downcast. ++ uint32x2_t a_lo = vmovn_u64(vreinterpretq_u64_m128i(a)); ++ uint32x2_t b_lo = vmovn_u64(vreinterpretq_u64_m128i(b)); ++ return vreinterpretq_m128i_u64(vmull_u32(a_lo, b_lo)); ++} ++ ++// Multiply packed double-precision (64-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_pd ++FORCE_INLINE __m128d _mm_mul_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vmulq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] * db[0]; ++ c[1] = da[1] * db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Multiply the lower double-precision (64-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper element ++// from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_mul_sd ++FORCE_INLINE __m128d _mm_mul_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_mul_pd(a, b)); ++} ++ ++// Multiply the low unsigned 32-bit integers from a and b, and store the ++// unsigned 64-bit result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_su32 ++FORCE_INLINE __m64 _mm_mul_su32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u64(vget_low_u64( ++ vmull_u32(vreinterpret_u32_m64(a), vreinterpret_u32_m64(b)))); ++} ++ ++// Multiply the packed signed 16-bit integers in a and b, producing intermediate ++// 32-bit integers, and store the high 16 bits of the intermediate integers in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epi16 ++FORCE_INLINE __m128i _mm_mulhi_epi16(__m128i a, __m128i b) ++{ ++ /* FIXME: issue with large values because of result saturation */ ++ // int16x8_t ret = vqdmulhq_s16(vreinterpretq_s16_m128i(a), ++ // vreinterpretq_s16_m128i(b)); /* =2*a*b */ return ++ // vreinterpretq_m128i_s16(vshrq_n_s16(ret, 1)); ++ int16x4_t a3210 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b3210 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab3210 = vmull_s16(a3210, b3210); /* 3333222211110000 */ ++ int16x4_t a7654 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b7654 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab7654 = vmull_s16(a7654, b7654); /* 7777666655554444 */ ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_s32(ab3210), vreinterpretq_u16_s32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epu16 ++FORCE_INLINE __m128i _mm_mulhi_epu16(__m128i a, __m128i b) ++{ ++ uint16x4_t a3210 = vget_low_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b3210 = vget_low_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab3210 = vmull_u16(a3210, b3210); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32x4_t ab7654 = ++ vmull_high_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ uint16x8_t r = vuzp2q_u16(vreinterpretq_u16_u32(ab3210), ++ vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r); ++#else ++ uint16x4_t a7654 = vget_high_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b7654 = vget_high_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab7654 = vmull_u16(a7654, b7654); ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_u32(ab3210), vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++#endif ++} ++ ++// Multiply the packed 16-bit integers in a and b, producing intermediate 32-bit ++// integers, and store the low 16 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi16 ++FORCE_INLINE __m128i _mm_mullo_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmulq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compute the bitwise OR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_or_pd ++FORCE_INLINE __m128d _mm_or_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vorrq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise OR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_si128 ++FORCE_INLINE __m128i _mm_or_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vorrq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi16 ++FORCE_INLINE __m128i _mm_packs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vqmovn_s16(vreinterpretq_s16_m128i(a)), ++ vqmovn_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi32 ++FORCE_INLINE __m128i _mm_packs_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vqmovn_s32(vreinterpretq_s32_m128i(a)), ++ vqmovn_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi16 ++FORCE_INLINE __m128i _mm_packus_epi16(const __m128i a, const __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcombine_u8(vqmovun_s16(vreinterpretq_s16_m128i(a)), ++ vqmovun_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Pause the processor. This is typically used in spin-wait loops and depending ++// on the x86 processor typical values are in the 40-100 cycle range. The ++// 'yield' instruction isn't a good fit because it's effectively a nop on most ++// Arm cores. Experience with several databases has shown has shown an 'isb' is ++// a reasonable approximation. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_pause ++FORCE_INLINE void _mm_pause(void) ++{ ++#if defined(_MSC_VER) ++ __isb(_ARM64_BARRIER_SY); ++#else ++ __asm__ __volatile__("isb\n"); ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce two ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of 64-bit elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_epu8 ++FORCE_INLINE __m128i _mm_sad_epu8(__m128i a, __m128i b) ++{ ++ uint16x8_t t = vpaddlq_u8(vabdq_u8((uint8x16_t) a, (uint8x16_t) b)); ++ return vreinterpretq_m128i_u64(vpaddlq_u32(vpaddlq_u16(t))); ++} ++ ++// Set packed 16-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi16 ++FORCE_INLINE __m128i _mm_set_epi16(short i7, ++ short i6, ++ short i5, ++ short i4, ++ short i3, ++ short i2, ++ short i1, ++ short i0) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {i0, i1, i2, i3, i4, i5, i6, i7}; ++ return vreinterpretq_m128i_s16(vld1q_s16(data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi32 ++FORCE_INLINE __m128i _mm_set_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i0, i1, i2, i3}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64 ++FORCE_INLINE __m128i _mm_set_epi64(__m64 i1, __m64 i2) ++{ ++ return _mm_set_epi64x(vget_lane_s64(i1, 0), vget_lane_s64(i2, 0)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64x ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t i1, int64_t i2) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vcreate_s64(i2), vcreate_s64(i1))); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi8 ++FORCE_INLINE __m128i _mm_set_epi8(signed char b15, ++ signed char b14, ++ signed char b13, ++ signed char b12, ++ signed char b11, ++ signed char b10, ++ signed char b9, ++ signed char b8, ++ signed char b7, ++ signed char b6, ++ signed char b5, ++ signed char b4, ++ signed char b3, ++ signed char b2, ++ signed char b1, ++ signed char b0) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd ++FORCE_INLINE __m128d _mm_set_pd(double e1, double e0) ++{ ++ double ALIGN_STRUCT(16) data[2] = {e0, e1}; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64((float64_t *) data)); ++#else ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) data)); ++#endif ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd1 ++#define _mm_set_pd1 _mm_set1_pd ++ ++// Copy double-precision (64-bit) floating-point element a to the lower element ++// of dst, and zero the upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_sd ++FORCE_INLINE __m128d _mm_set_sd(double a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(a, vdupq_n_f64(0), 0)); ++#else ++ return _mm_set_pd(0, a); ++#endif ++} ++ ++// Broadcast 16-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi16 ++FORCE_INLINE __m128i _mm_set1_epi16(short w) ++{ ++ return vreinterpretq_m128i_s16(vdupq_n_s16(w)); ++} ++ ++// Broadcast 32-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi32 ++FORCE_INLINE __m128i _mm_set1_epi32(int _i) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(_i)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64 ++FORCE_INLINE __m128i _mm_set1_epi64(__m64 _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_lane_s64(_i, 0)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64x ++FORCE_INLINE __m128i _mm_set1_epi64x(int64_t _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_n_s64(_i)); ++} ++ ++// Broadcast 8-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi8 ++FORCE_INLINE __m128i _mm_set1_epi8(signed char w) ++{ ++ return vreinterpretq_m128i_s8(vdupq_n_s8(w)); ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_pd ++FORCE_INLINE __m128d _mm_set1_pd(double d) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(d)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(int64_t *) &d)); ++#endif ++} ++ ++// Set packed 16-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi16 ++FORCE_INLINE __m128i _mm_setr_epi16(short w0, ++ short w1, ++ short w2, ++ short w3, ++ short w4, ++ short w5, ++ short w6, ++ short w7) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {w0, w1, w2, w3, w4, w5, w6, w7}; ++ return vreinterpretq_m128i_s16(vld1q_s16((int16_t *) data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi32 ++FORCE_INLINE __m128i _mm_setr_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i3, i2, i1, i0}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi64 ++FORCE_INLINE __m128i _mm_setr_epi64(__m64 e1, __m64 e0) ++{ ++ return vreinterpretq_m128i_s64(vcombine_s64(e1, e0)); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi8 ++FORCE_INLINE __m128i _mm_setr_epi8(signed char b0, ++ signed char b1, ++ signed char b2, ++ signed char b3, ++ signed char b4, ++ signed char b5, ++ signed char b6, ++ signed char b7, ++ signed char b8, ++ signed char b9, ++ signed char b10, ++ signed char b11, ++ signed char b12, ++ signed char b13, ++ signed char b14, ++ signed char b15) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_pd ++FORCE_INLINE __m128d _mm_setr_pd(double e1, double e0) ++{ ++ return _mm_set_pd(e0, e1); ++} ++ ++// Return vector of type __m128d with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_pd ++FORCE_INLINE __m128d _mm_setzero_pd(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(0)); ++#else ++ return vreinterpretq_m128d_f32(vdupq_n_f32(0)); ++#endif ++} ++ ++// Return vector of type __m128i with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_si128 ++FORCE_INLINE __m128i _mm_setzero_si128(void) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(0)); ++} ++ ++// Shuffle 32-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi32 ++// FORCE_INLINE __m128i _mm_shuffle_epi32(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shuffle_epi32(a, imm) \ ++ __extension__({ \ ++ int32x4_t _input = vreinterpretq_s32_m128i(a); \ ++ int32x4_t _shuf = \ ++ vshuffleq_s32(_input, _input, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ ((imm) >> 4) & 0x3, ((imm) >> 6) & 0x3); \ ++ vreinterpretq_m128i_s32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_epi32(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, __m128i ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_epi_1032(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_epi_2301(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_epi_0321(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_epi_2103(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_shuffle_epi_1010(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_epi_1001(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_epi_0101(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 1, 1): \ ++ ret = _mm_shuffle_epi_2211(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 2, 2): \ ++ ret = _mm_shuffle_epi_0122(_a); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 2): \ ++ ret = _mm_shuffle_epi_3332(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 0, 0): \ ++ ret = _mm_shuffle_epi32_splat(_a, 0); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 1, 1): \ ++ ret = _mm_shuffle_epi32_splat(_a, 1); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 2, 2): \ ++ ret = _mm_shuffle_epi32_splat(_a, 2); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 3): \ ++ ret = _mm_shuffle_epi32_splat(_a, 3); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_epi32_default(_a, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Shuffle double-precision (64-bit) floating-point elements using the control ++// in imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pd ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pd(a, b, imm8) \ ++ vreinterpretq_m128d_s64( \ ++ vshuffleq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b), \ ++ imm8 & 0x1, ((imm8 & 0x2) >> 1) + 2)) ++#else ++#define _mm_shuffle_pd(a, b, imm8) \ ++ _mm_castsi128_pd(_mm_set_epi64x( \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(b), (imm8 & 0x2) >> 1), \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(a), imm8 & 0x1))) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflehi_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflehi_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = \ ++ vshuffleq_s16(_input, _input, 0, 1, 2, 3, ((imm) & (0x3)) + 4, \ ++ (((imm) >> 2) & 0x3) + 4, (((imm) >> 4) & 0x3) + 4, \ ++ (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflehi_epi16(a, imm) _mm_shufflehi_epi16_function((a), (imm)) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflelo_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflelo_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = vshuffleq_s16( \ ++ _input, _input, ((imm) & (0x3)), (((imm) >> 2) & 0x3), \ ++ (((imm) >> 4) & 0x3), (((imm) >> 6) & 0x3), 4, 5, 6, 7); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflelo_epi16(a, imm) _mm_shufflelo_epi16_function((a), (imm)) ++#endif ++ ++// Shift packed 16-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi16 ++FORCE_INLINE __m128i _mm_sll_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16((int16_t) c); ++ return vreinterpretq_m128i_s16(vshlq_s16(vreinterpretq_s16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi32 ++FORCE_INLINE __m128i _mm_sll_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32((int32_t) c); ++ return vreinterpretq_m128i_s32(vshlq_s32(vreinterpretq_s32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi64 ++FORCE_INLINE __m128i _mm_sll_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64((int64_t) c); ++ return vreinterpretq_m128i_s64(vshlq_s64(vreinterpretq_s64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi16 ++FORCE_INLINE __m128i _mm_slli_epi16(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~15)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16(vreinterpretq_s16_m128i(a), vdupq_n_s16(imm))); ++} ++ ++// Shift packed 32-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi32 ++FORCE_INLINE __m128i _mm_slli_epi32(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~31)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32(vreinterpretq_s32_m128i(a), vdupq_n_s32(imm))); ++} ++ ++// Shift packed 64-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi64 ++FORCE_INLINE __m128i _mm_slli_epi64(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~63)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s64( ++ vshlq_s64(vreinterpretq_s64_m128i(a), vdupq_n_s64(imm))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_si128 ++#define _mm_slli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely(imm == 0)) ret = vreinterpretq_s8_m128i(_a); \ ++ else if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vdupq_n_s8(0), vreinterpretq_s8_m128i(_a), \ ++ ((imm <= 0 || imm > 15) ? 0 : (16 - imm))); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Compute the square root of packed double-precision (64-bit) floating-point ++// elements in a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_pd ++FORCE_INLINE __m128d _mm_sqrt_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsqrtq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double a0 = sqrt(((double *) &a)[0]); ++ double a1 = sqrt(((double *) &a)[1]); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Compute the square root of the lower double-precision (64-bit) floating-point ++// element in b, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_sd ++FORCE_INLINE __m128d _mm_sqrt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_sqrt_pd(b)); ++#else ++ return _mm_set_pd(((double *) &a)[1], sqrt(((double *) &b)[0])); ++#endif ++} ++ ++// Shift packed 16-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi16 ++FORCE_INLINE __m128i _mm_sra_epi16(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_cmplt_epi16(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16((int16x8_t) a, vdupq_n_s16((int) -c))); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi32 ++FORCE_INLINE __m128i _mm_sra_epi32(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_cmplt_epi32(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32((int32x4_t) a, vdupq_n_s32((int) -c))); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in sign ++// bits, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi16 ++FORCE_INLINE __m128i _mm_srai_epi16(__m128i a, int imm) ++{ ++ const int count = (imm & ~15) ? 15 : imm; ++ return (__m128i) vshlq_s16((int16x8_t) a, vdupq_n_s16(-count)); ++} ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi32 ++// FORCE_INLINE __m128i _mm_srai_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srai_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) == 0)) { \ ++ ret = _a; \ ++ } else if (_sse2neon_likely(0 < (imm) && (imm) < 32)) { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshlq_s32(vreinterpretq_s32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } else { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshrq_n_s32(vreinterpretq_s32_m128i(_a), 31)); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 16-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi16 ++FORCE_INLINE __m128i _mm_srl_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16(-(int16_t) c); ++ return vreinterpretq_m128i_u16(vshlq_u16(vreinterpretq_u16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi32 ++FORCE_INLINE __m128i _mm_srl_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32(-(int32_t) c); ++ return vreinterpretq_m128i_u32(vshlq_u32(vreinterpretq_u32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi64 ++FORCE_INLINE __m128i _mm_srl_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64(-(int64_t) c); ++ return vreinterpretq_m128i_u64(vshlq_u64(vreinterpretq_u64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi16 ++#define _mm_srli_epi16(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~15)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u16( \ ++ vshlq_u16(vreinterpretq_u16_m128i(_a), vdupq_n_s16(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi32 ++// FORCE_INLINE __m128i _mm_srli_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srli_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~31)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u32( \ ++ vshlq_u32(vreinterpretq_u32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 64-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi64 ++#define _mm_srli_epi64(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~63)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u64( \ ++ vshlq_u64(vreinterpretq_u64_m128i(_a), vdupq_n_s64(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_si128 ++#define _mm_srli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vreinterpretq_s8_m128i(_a), vdupq_n_s8(0), \ ++ (imm > 15 ? 0 : imm)); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd ++FORCE_INLINE void _mm_store_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64((float64_t *) mem_addr, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_f32((float32_t *) mem_addr, vreinterpretq_f32_m128d(a)); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd1 ++FORCE_INLINE void _mm_store_pd1(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x1_t a_low = vget_low_f64(vreinterpretq_f64_m128d(a)); ++ vst1q_f64((float64_t *) mem_addr, ++ vreinterpretq_f64_m128d(vcombine_f64(a_low, a_low))); ++#else ++ float32x2_t a_low = vget_low_f32(vreinterpretq_f32_m128d(a)); ++ vst1q_f32((float32_t *) mem_addr, ++ vreinterpretq_f32_m128d(vcombine_f32(a_low, a_low))); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_store_sd ++FORCE_INLINE void _mm_store_sd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_u64((uint64_t *) mem_addr, vget_low_u64(vreinterpretq_u64_m128d(a))); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_si128 ++FORCE_INLINE void _mm_store_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#expand=9,526,5601&text=_mm_store1_pd ++#define _mm_store1_pd _mm_store_pd1 ++ ++// Store the upper double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pd ++FORCE_INLINE void _mm_storeh_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_high_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_high_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 64-bit integer from the first element of a into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_epi64 ++FORCE_INLINE void _mm_storel_epi64(__m128i *a, __m128i b) ++{ ++ vst1_u64((uint64_t *) a, vget_low_u64(vreinterpretq_u64_m128i(b))); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pd ++FORCE_INLINE void _mm_storel_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_low_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 2 double-precision (64-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_pd ++FORCE_INLINE void _mm_storer_pd(double *mem_addr, __m128d a) ++{ ++ float32x4_t f = vreinterpretq_f32_m128d(a); ++ _mm_store_pd(mem_addr, vreinterpretq_m128d_f32(vextq_f32(f, f, 2))); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_pd ++FORCE_INLINE void _mm_storeu_pd(double *mem_addr, __m128d a) ++{ ++ _mm_store_pd(mem_addr, a); ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si128 ++FORCE_INLINE void _mm_storeu_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store 32-bit integer from the first element of a into memory. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si32 ++FORCE_INLINE void _mm_storeu_si32(void *p, __m128i a) ++{ ++ vst1q_lane_s32((int32_t *) p, vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory using a non-temporal memory hint. mem_addr must ++// be aligned on a 16-byte boundary or a general-protection exception may be ++// generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pd ++FORCE_INLINE void _mm_stream_pd(double *p, __m128d a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (__m128d *) p); ++#elif defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64(p, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128d(a)); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory using a non-temporal memory ++// hint. mem_addr must be aligned on a 16-byte boundary or a general-protection ++// exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si128 ++FORCE_INLINE void _mm_stream_si128(__m128i *p, __m128i a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, p); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128i(a)); ++#endif ++} ++ ++// Store 32-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si32 ++FORCE_INLINE void _mm_stream_si32(int *p, int a) ++{ ++ vst1q_lane_s32((int32_t *) p, vdupq_n_s32(a), 0); ++} ++ ++// Store 64-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si64 ++FORCE_INLINE void _mm_stream_si64(__int64 *p, __int64 a) ++{ ++ vst1_s64((int64_t *) p, vdup_n_s64((int64_t) a)); ++} ++ ++// Subtract packed 16-bit integers in b from packed 16-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi16 ++FORCE_INLINE __m128i _mm_sub_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed 32-bit integers in b from packed 32-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi32 ++FORCE_INLINE __m128i _mm_sub_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Subtract packed 64-bit integers in b from packed 64-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi64 ++FORCE_INLINE __m128i _mm_sub_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vsubq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Subtract packed 8-bit integers in b from packed 8-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi8 ++FORCE_INLINE __m128i _mm_sub_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed double-precision (64-bit) floating-point elements in b from ++// packed double-precision (64-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_sub_pd ++FORCE_INLINE __m128d _mm_sub_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] - db[0]; ++ c[1] = da[1] - db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Subtract the lower double-precision (64-bit) floating-point element in b from ++// the lower double-precision (64-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_sd ++FORCE_INLINE __m128d _mm_sub_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_sub_pd(a, b)); ++} ++ ++// Subtract 64-bit integer b from 64-bit integer a, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_si64 ++FORCE_INLINE __m64 _mm_sub_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vsub_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Subtract packed signed 16-bit integers in b from packed 16-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi16 ++FORCE_INLINE __m128i _mm_subs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed signed 8-bit integers in b from packed 8-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi8 ++FORCE_INLINE __m128i _mm_subs_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed unsigned 16-bit integers in b from packed unsigned 16-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu16 ++FORCE_INLINE __m128i _mm_subs_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqsubq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Subtract packed unsigned 8-bit integers in b from packed unsigned 8-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu8 ++FORCE_INLINE __m128i _mm_subs_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqsubq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++#define _mm_ucomieq_sd _mm_comieq_sd ++#define _mm_ucomige_sd _mm_comige_sd ++#define _mm_ucomigt_sd _mm_comigt_sd ++#define _mm_ucomile_sd _mm_comile_sd ++#define _mm_ucomilt_sd _mm_comilt_sd ++#define _mm_ucomineq_sd _mm_comineq_sd ++ ++// Return vector of type __m128d with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_pd ++FORCE_INLINE __m128d _mm_undefined_pd(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128d a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_pd(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi16 ++FORCE_INLINE __m128i _mm_unpackhi_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip2q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi32 ++FORCE_INLINE __m128i _mm_unpackhi_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip2q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_high_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi64 ++FORCE_INLINE __m128i _mm_unpackhi_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip2q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_h = vget_high_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_h = vget_high_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_h, b_h)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the high half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi8 ++FORCE_INLINE __m128i _mm_unpackhi_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip2q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the high half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_pd ++FORCE_INLINE __m128d _mm_unpackhi_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip2q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_high_s64(vreinterpretq_s64_m128d(a)), ++ vget_high_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi16 ++FORCE_INLINE __m128i _mm_unpacklo_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip1q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi32 ++FORCE_INLINE __m128i _mm_unpacklo_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip1q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_low_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi64 ++FORCE_INLINE __m128i _mm_unpacklo_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip1q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_l = vget_low_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_l = vget_low_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_l, b_l)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi8 ++FORCE_INLINE __m128i _mm_unpacklo_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip1q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_pd ++FORCE_INLINE __m128d _mm_unpacklo_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip1q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_low_s64(vreinterpretq_s64_m128d(a)), ++ vget_low_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Compute the bitwise XOR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_pd ++FORCE_INLINE __m128d _mm_xor_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ veorq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise XOR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_si128 ++FORCE_INLINE __m128i _mm_xor_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ veorq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++/* SSE3 */ ++ ++// Alternatively add and subtract packed double-precision (64-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_addsub_pd ++FORCE_INLINE __m128d _mm_addsub_pd(__m128d a, __m128d b) ++{ ++ _sse2neon_const __m128d mask = _mm_set_pd(1.0f, -1.0f); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vfmaq_f64(vreinterpretq_f64_m128d(a), ++ vreinterpretq_f64_m128d(b), ++ vreinterpretq_f64_m128d(mask))); ++#else ++ return _mm_add_pd(_mm_mul_pd(b, mask), a); ++#endif ++} ++ ++// Alternatively add and subtract packed single-precision (32-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=addsub_ps ++FORCE_INLINE __m128 _mm_addsub_ps(__m128 a, __m128 b) ++{ ++ _sse2neon_const __m128 mask = _mm_setr_ps(-1.0f, 1.0f, -1.0f, 1.0f); ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_FMA) /* VFPv4+ */ ++ return vreinterpretq_m128_f32(vfmaq_f32(vreinterpretq_f32_m128(a), ++ vreinterpretq_f32_m128(mask), ++ vreinterpretq_f32_m128(b))); ++#else ++ return _mm_add_ps(_mm_mul_ps(b, mask), a); ++#endif ++} ++ ++// Horizontally add adjacent pairs of double-precision (64-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pd ++FORCE_INLINE __m128d _mm_hadd_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vpaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[] = {da[0] + da[1], db[0] + db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of single-precision (32-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_ps ++FORCE_INLINE __m128 _mm_hadd_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vpaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vpadd_f32(a10, a32), vpadd_f32(b10, b32))); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of double-precision (64-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pd ++FORCE_INLINE __m128d _mm_hsub_pd(__m128d _a, __m128d _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vuzp1q_f64(a, b), vuzp2q_f64(a, b))); ++#else ++ double *da = (double *) &_a; ++ double *db = (double *) &_b; ++ double c[] = {da[0] - da[1], db[0] - db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of single-precision (32-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_ps ++FORCE_INLINE __m128 _mm_hsub_ps(__m128 _a, __m128 _b) ++{ ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vuzp1q_f32(a, b), vuzp2q_f32(a, b))); ++#else ++ float32x4x2_t c = vuzpq_f32(a, b); ++ return vreinterpretq_m128_f32(vsubq_f32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Load 128-bits of integer data from unaligned memory into dst. This intrinsic ++// may perform better than _mm_loadu_si128 when the data crosses a cache line ++// boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lddqu_si128 ++#define _mm_lddqu_si128 _mm_loadu_si128 ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loaddup_pd ++#define _mm_loaddup_pd _mm_load1_pd ++ ++// Duplicate the low double-precision (64-bit) floating-point element from a, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movedup_pd ++FORCE_INLINE __m128d _mm_movedup_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdupq_laneq_f64(vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_u64( ++ vdupq_n_u64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0))); ++#endif ++} ++ ++// Duplicate odd-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehdup_ps ++FORCE_INLINE __m128 _mm_movehdup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 1, 1, 3, 3)); ++#else ++ float32_t a1 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ float32_t a3 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 3); ++ float ALIGN_STRUCT(16) data[4] = {a1, a1, a3, a3}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Duplicate even-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_moveldup_ps ++FORCE_INLINE __m128 _mm_moveldup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 0, 0, 2, 2)); ++#else ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32_t a2 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 2); ++ float ALIGN_STRUCT(16) data[4] = {a0, a0, a2, a2}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++/* SSSE3 */ ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi16 ++FORCE_INLINE __m128i _mm_abs_epi16(__m128i a) ++{ ++ return vreinterpretq_m128i_s16(vabsq_s16(vreinterpretq_s16_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi32 ++FORCE_INLINE __m128i _mm_abs_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32(vabsq_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi8 ++FORCE_INLINE __m128i _mm_abs_epi8(__m128i a) ++{ ++ return vreinterpretq_m128i_s8(vabsq_s8(vreinterpretq_s8_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi16 ++FORCE_INLINE __m64 _mm_abs_pi16(__m64 a) ++{ ++ return vreinterpret_m64_s16(vabs_s16(vreinterpret_s16_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi32 ++FORCE_INLINE __m64 _mm_abs_pi32(__m64 a) ++{ ++ return vreinterpret_m64_s32(vabs_s32(vreinterpret_s32_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi8 ++FORCE_INLINE __m64 _mm_abs_pi8(__m64 a) ++{ ++ return vreinterpret_m64_s8(vabs_s8(vreinterpret_s8_m64(a))); ++} ++ ++// Concatenate 16-byte blocks in a and b into a 32-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 16 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_epi8 ++#if defined(__GNUC__) && !defined(__clang__) ++#define _mm_alignr_epi8(a, b, imm) \ ++ __extension__({ \ ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); \ ++ uint8x16_t _b = vreinterpretq_u8_m128i(b); \ ++ __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) \ ++ ret = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) \ ++ ret = _mm_srli_si128(a, imm >= 16 ? imm - 16 : 0); \ ++ else \ ++ ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(_b, _a, imm < 16 ? imm : 0)); \ ++ ret; \ ++ }) ++ ++#else ++#define _mm_alignr_epi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, uint8x16_t __a = vreinterpretq_u8_m128i(_a); \ ++ uint8x16_t __b = vreinterpretq_u8_m128i(_b); __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) ret = \ ++ vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) ret = \ ++ _mm_srli_si128(_a, imm >= 16 ? imm - 16 : 0); \ ++ else ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(__b, __a, imm < 16 ? imm : 0)); \ ++ _sse2neon_return(ret);) ++ ++#endif ++ ++// Concatenate 8-byte blocks in a and b into a 16-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 8 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_pi8 ++#define _mm_alignr_pi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m64, a, b, __m64 ret; if (_sse2neon_unlikely((imm) >= 16)) { \ ++ ret = vreinterpret_m64_s8(vdup_n_s8(0)); \ ++ } else { \ ++ uint8x8_t tmp_low; \ ++ uint8x8_t tmp_high; \ ++ if ((imm) >= 8) { \ ++ const int idx = (imm) -8; \ ++ tmp_low = vreinterpret_u8_m64(_a); \ ++ tmp_high = vdup_n_u8(0); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } else { \ ++ const int idx = (imm); \ ++ tmp_low = vreinterpret_u8_m64(_b); \ ++ tmp_high = vreinterpret_u8_m64(_a); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } \ ++ } _sse2neon_return(ret);) ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi16 ++FORCE_INLINE __m128i _mm_hadd_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16(vpaddq_s16(a, b)); ++#else ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(vget_low_s16(a), vget_high_s16(a)), ++ vpadd_s16(vget_low_s16(b), vget_high_s16(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi32 ++FORCE_INLINE __m128i _mm_hadd_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32(vpaddq_s32(a, b)); ++#else ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vpadd_s32(vget_low_s32(a), vget_high_s32(a)), ++ vpadd_s32(vget_low_s32(b), vget_high_s32(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi16 ++FORCE_INLINE __m64 _mm_hadd_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vpadd_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi32 ++FORCE_INLINE __m64 _mm_hadd_pi32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s32( ++ vpadd_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_epi16 ++FORCE_INLINE __m128i _mm_hadds_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ return vreinterpretq_s64_s16( ++ vqaddq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ // Interleave using vshrn/vmovn ++ // [a0|a2|a4|a6|b0|b2|b4|b6] ++ // [a1|a3|a5|a7|b1|b3|b5|b7] ++ int16x8_t ab0246 = vcombine_s16(vmovn_s32(a), vmovn_s32(b)); ++ int16x8_t ab1357 = vcombine_s16(vshrn_n_s32(a, 16), vshrn_n_s32(b, 16)); ++ // Saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(ab0246, ab1357)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_pi16 ++FORCE_INLINE __m64 _mm_hadds_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_s64_s16(vqadd_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t res = vuzp_s16(a, b); ++ return vreinterpret_s64_s16(vqadd_s16(res.val[0], res.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi16 ++FORCE_INLINE __m128i _mm_hsub_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi32 ++FORCE_INLINE __m128i _mm_hsub_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vuzp1q_s32(a, b), vuzp2q_s32(a, b))); ++#else ++ int32x4x2_t c = vuzpq_s32(a, b); ++ return vreinterpretq_m128i_s32(vsubq_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pi16 ++FORCE_INLINE __m64 _mm_hsub_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_hsub_pi32 ++FORCE_INLINE __m64 _mm_hsub_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s32(vsub_s32(vuzp1_s32(a, b), vuzp2_s32(a, b))); ++#else ++ int32x2x2_t c = vuzp_s32(a, b); ++ return vreinterpret_m64_s32(vsub_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_epi16 ++FORCE_INLINE __m128i _mm_hsubs_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vqsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_pi16 ++FORCE_INLINE __m64 _mm_hsubs_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vqsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vqsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, ++// and pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_epi16 ++FORCE_INLINE __m128i _mm_maddubs_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ int16x8_t tl = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_low_u8(a))), ++ vmovl_s8(vget_low_s8(b))); ++ int16x8_t th = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_high_u8(a))), ++ vmovl_s8(vget_high_s8(b))); ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vuzp1q_s16(tl, th), vuzp2q_s16(tl, th))); ++#else ++ // This would be much simpler if x86 would choose to zero extend OR sign ++ // extend, not both. This could probably be optimized better. ++ uint16x8_t a = vreinterpretq_u16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // Zero extend a ++ int16x8_t a_odd = vreinterpretq_s16_u16(vshrq_n_u16(a, 8)); ++ int16x8_t a_even = vreinterpretq_s16_u16(vbicq_u16(a, vdupq_n_u16(0xff00))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x8_t b_even = vshrq_n_s16(vshlq_n_s16(b, 8), 8); ++ int16x8_t b_odd = vshrq_n_s16(b, 8); ++ ++ // multiply ++ int16x8_t prod1 = vmulq_s16(a_even, b_even); ++ int16x8_t prod2 = vmulq_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(prod1, prod2)); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, and ++// pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_pi16 ++FORCE_INLINE __m64 _mm_maddubs_pi16(__m64 _a, __m64 _b) ++{ ++ uint16x4_t a = vreinterpret_u16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // Zero extend a ++ int16x4_t a_odd = vreinterpret_s16_u16(vshr_n_u16(a, 8)); ++ int16x4_t a_even = vreinterpret_s16_u16(vand_u16(a, vdup_n_u16(0xff))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x4_t b_even = vshr_n_s16(vshl_n_s16(b, 8), 8); ++ int16x4_t b_odd = vshr_n_s16(b, 8); ++ ++ // multiply ++ int16x4_t prod1 = vmul_s16(a_even, b_even); ++ int16x4_t prod2 = vmul_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpret_m64_s16(vqadd_s16(prod1, prod2)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Shift right by 15 bits while rounding up, and store ++// the packed 16-bit integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_epi16 ++FORCE_INLINE __m128i _mm_mulhrs_epi16(__m128i a, __m128i b) ++{ ++ // Has issues due to saturation ++ // return vreinterpretq_m128i_s16(vqrdmulhq_s16(a, b)); ++ ++ // Multiply ++ int32x4_t mul_lo = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int32x4_t mul_hi = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ // Rounding narrowing shift right ++ // narrow = (int16_t)((mul + 16384) >> 15); ++ int16x4_t narrow_lo = vrshrn_n_s32(mul_lo, 15); ++ int16x4_t narrow_hi = vrshrn_n_s32(mul_hi, 15); ++ ++ // Join together ++ return vreinterpretq_m128i_s16(vcombine_s16(narrow_lo, narrow_hi)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Truncate each intermediate integer to the 18 most ++// significant bits, round by adding 1, and store bits [16:1] to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_pi16 ++FORCE_INLINE __m64 _mm_mulhrs_pi16(__m64 a, __m64 b) ++{ ++ int32x4_t mul_extend = ++ vmull_s16((vreinterpret_s16_m64(a)), (vreinterpret_s16_m64(b))); ++ ++ // Rounding narrowing shift right ++ return vreinterpret_m64_s16(vrshrn_n_s32(mul_extend, 15)); ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi8 ++FORCE_INLINE __m128i _mm_shuffle_epi8(__m128i a, __m128i b) ++{ ++ int8x16_t tbl = vreinterpretq_s8_m128i(a); // input a ++ uint8x16_t idx = vreinterpretq_u8_m128i(b); // input b ++ uint8x16_t idx_masked = ++ vandq_u8(idx, vdupq_n_u8(0x8F)); // avoid using meaningless bits ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8(vqtbl1q_s8(tbl, idx_masked)); ++#elif defined(__GNUC__) ++ int8x16_t ret; ++ // %e and %f represent the even and odd D registers ++ // respectively. ++ __asm__ __volatile__( ++ "vtbl.8 %e[ret], {%e[tbl], %f[tbl]}, %e[idx]\n" ++ "vtbl.8 %f[ret], {%e[tbl], %f[tbl]}, %f[idx]\n" ++ : [ret] "=&w"(ret) ++ : [tbl] "w"(tbl), [idx] "w"(idx_masked)); ++ return vreinterpretq_m128i_s8(ret); ++#else ++ // use this line if testing on aarch64 ++ int8x8x2_t a_split = {vget_low_s8(tbl), vget_high_s8(tbl)}; ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vtbl2_s8(a_split, vget_low_u8(idx_masked)), ++ vtbl2_s8(a_split, vget_high_u8(idx_masked)))); ++#endif ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi8 ++FORCE_INLINE __m64 _mm_shuffle_pi8(__m64 a, __m64 b) ++{ ++ const int8x8_t controlMask = ++ vand_s8(vreinterpret_s8_m64(b), vdup_n_s8((int8_t) (0x1 << 7 | 0x07))); ++ int8x8_t res = vtbl1_s8(vreinterpret_s8_m64(a), controlMask); ++ return vreinterpret_m64_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed ++// 16-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi16 ++FORCE_INLINE __m128i _mm_sign_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x8_t ltMask = vreinterpretq_u16_s16(vshrq_n_s16(b, 15)); ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqzq_s16(b)); ++#else ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqq_s16(b, vdupq_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s16(a) equals to negative ++ // 'a') based on ltMask ++ int16x8_t masked = vbslq_s16(ltMask, vnegq_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x8_t res = vbicq_s16(masked, zeroMask); ++ return vreinterpretq_m128i_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed ++// 32-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi32 ++FORCE_INLINE __m128i _mm_sign_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x4_t ltMask = vreinterpretq_u32_s32(vshrq_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqzq_s32(b)); ++#else ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqq_s32(b, vdupq_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s32(a) equals to negative ++ // 'a') based on ltMask ++ int32x4_t masked = vbslq_s32(ltMask, vnegq_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x4_t res = vbicq_s32(masked, zeroMask); ++ return vreinterpretq_m128i_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed ++// 8-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi8 ++FORCE_INLINE __m128i _mm_sign_epi8(__m128i _a, __m128i _b) ++{ ++ int8x16_t a = vreinterpretq_s8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x16_t ltMask = vreinterpretq_u8_s8(vshrq_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqzq_s8(b)); ++#else ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqq_s8(b, vdupq_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s8(a) return negative 'a') ++ // based on ltMask ++ int8x16_t masked = vbslq_s8(ltMask, vnegq_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x16_t res = vbicq_s8(masked, zeroMask); ++ ++ return vreinterpretq_m128i_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed 16-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi16 ++FORCE_INLINE __m64 _mm_sign_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x4_t ltMask = vreinterpret_u16_s16(vshr_n_s16(b, 15)); ++ ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceqz_s16(b)); ++#else ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceq_s16(b, vdup_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s16(a) return negative 'a') ++ // based on ltMask ++ int16x4_t masked = vbsl_s16(ltMask, vneg_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x4_t res = vbic_s16(masked, zeroMask); ++ ++ return vreinterpret_m64_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed 32-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi32 ++FORCE_INLINE __m64 _mm_sign_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x2_t ltMask = vreinterpret_u32_s32(vshr_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceqz_s32(b)); ++#else ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceq_s32(b, vdup_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s32(a) return negative 'a') ++ // based on ltMask ++ int32x2_t masked = vbsl_s32(ltMask, vneg_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x2_t res = vbic_s32(masked, zeroMask); ++ ++ return vreinterpret_m64_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed 8-bit integer ++// in b is negative, and store the results in dst. Element in dst are zeroed out ++// when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi8 ++FORCE_INLINE __m64 _mm_sign_pi8(__m64 _a, __m64 _b) ++{ ++ int8x8_t a = vreinterpret_s8_m64(_a); ++ int8x8_t b = vreinterpret_s8_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x8_t ltMask = vreinterpret_u8_s8(vshr_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceqz_s8(b)); ++#else ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceq_s8(b, vdup_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s8(a) return negative 'a') ++ // based on ltMask ++ int8x8_t masked = vbsl_s8(ltMask, vneg_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x8_t res = vbic_s8(masked, zeroMask); ++ ++ return vreinterpret_m64_s8(res); ++} ++ ++/* SSE4.1 */ ++ ++// Blend packed 16-bit integers from a and b using control mask imm8, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_epi16 ++// FORCE_INLINE __m128i _mm_blend_epi16(__m128i a, __m128i b, ++// __constrange(0,255) int imm) ++#define _mm_blend_epi16(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, \ ++ const uint16_t _mask[8] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 1)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 2)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 3)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 4)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 5)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 6)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 7)) ? (uint16_t) -1 : 0x0); \ ++ uint16x8_t _mask_vec = vld1q_u16(_mask); \ ++ uint16x8_t __a = vreinterpretq_u16_m128i(_a); \ ++ uint16x8_t __b = vreinterpretq_u16_m128i(_b); _sse2neon_return( \ ++ vreinterpretq_m128i_u16(vbslq_u16(_mask_vec, __b, __a)));) ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using control mask imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_pd ++#define _mm_blend_pd(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128d, a, b, \ ++ const uint64_t _mask[2] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? ~UINT64_C(0) : UINT64_C(0), \ ++ ((imm) & (1 << 1)) ? ~UINT64_C(0) : UINT64_C(0)); \ ++ uint64x2_t _mask_vec = vld1q_u64(_mask); \ ++ uint64x2_t __a = vreinterpretq_u64_m128d(_a); \ ++ uint64x2_t __b = vreinterpretq_u64_m128d(_b); _sse2neon_return( \ ++ vreinterpretq_m128d_u64(vbslq_u64(_mask_vec, __b, __a)));) ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_ps ++FORCE_INLINE __m128 _mm_blend_ps(__m128 _a, __m128 _b, const char imm8) ++{ ++ const uint32_t ALIGN_STRUCT(16) ++ data[4] = {((imm8) & (1 << 0)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0}; ++ uint32x4_t mask = vld1q_u32(data); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Blend packed 8-bit integers from a and b using mask, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_epi8 ++FORCE_INLINE __m128i _mm_blendv_epi8(__m128i _a, __m128i _b, __m128i _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint8x16_t mask = ++ vreinterpretq_u8_s8(vshrq_n_s8(vreinterpretq_s8_m128i(_mask), 7)); ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ uint8x16_t b = vreinterpretq_u8_m128i(_b); ++ return vreinterpretq_m128i_u8(vbslq_u8(mask, b, a)); ++} ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_pd ++FORCE_INLINE __m128d _mm_blendv_pd(__m128d _a, __m128d _b, __m128d _mask) ++{ ++ uint64x2_t mask = ++ vreinterpretq_u64_s64(vshrq_n_s64(vreinterpretq_s64_m128d(_mask), 63)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64(vbslq_f64(mask, b, a)); ++#else ++ uint64x2_t a = vreinterpretq_u64_m128d(_a); ++ uint64x2_t b = vreinterpretq_u64_m128d(_b); ++ return vreinterpretq_m128d_u64(vbslq_u64(mask, b, a)); ++#endif ++} ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_ps ++FORCE_INLINE __m128 _mm_blendv_ps(__m128 _a, __m128 _b, __m128 _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint32x4_t mask = ++ vreinterpretq_u32_s32(vshrq_n_s32(vreinterpretq_s32_m128(_mask), 31)); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a up ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_pd ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndpq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(ceil(f[1]), ceil(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a up to ++// an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ps ++FORCE_INLINE __m128 _mm_ceil_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndpq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ceilf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b up to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_sd ++FORCE_INLINE __m128d _mm_ceil_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_ceil_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b up to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ss ++FORCE_INLINE __m128 _mm_ceil_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_ceil_ps(b)); ++} ++ ++// Compare packed 64-bit integers in a and b for equality, and store the results ++// in dst ++FORCE_INLINE __m128i _mm_cmpeq_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vceqq_u64(vreinterpretq_u64_m128i(a), vreinterpretq_u64_m128i(b))); ++#else ++ // ARMv7 lacks vceqq_u64 ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128i_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Sign extend packed 16-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi32 ++FORCE_INLINE __m128i _mm_cvtepi16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vmovl_s16(vget_low_s16(vreinterpretq_s16_m128i(a)))); ++} ++ ++// Sign extend packed 16-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi64 ++FORCE_INLINE __m128i _mm_cvtepi16_epi64(__m128i a) ++{ ++ int16x8_t s16x8 = vreinterpretq_s16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Sign extend packed 32-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_epi64 ++FORCE_INLINE __m128i _mm_cvtepi32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a)))); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 16-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi16 ++FORCE_INLINE __m128i _mm_cvtepi8_epi16(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ return vreinterpretq_m128i_s16(s16x8); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi32 ++FORCE_INLINE __m128i _mm_cvtepi8_epi32(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_s32(s32x4); ++} ++ ++// Sign extend packed 8-bit integers in the low 8 bytes of a to packed 64-bit ++// integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi64 ++FORCE_INLINE __m128i _mm_cvtepi8_epi64(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi32 ++FORCE_INLINE __m128i _mm_cvtepu16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_u32( ++ vmovl_u16(vget_low_u16(vreinterpretq_u16_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi64 ++FORCE_INLINE __m128i _mm_cvtepu16_epi64(__m128i a) ++{ ++ uint16x8_t u16x8 = vreinterpretq_u16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Zero extend packed unsigned 32-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu32_epi64 ++FORCE_INLINE __m128i _mm_cvtepu32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_u64( ++ vmovl_u32(vget_low_u32(vreinterpretq_u32_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 16-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi16 ++FORCE_INLINE __m128i _mm_cvtepu8_epi16(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx HGFE DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0H0G 0F0E 0D0C 0B0A */ ++ return vreinterpretq_m128i_u16(u16x8); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi32 ++FORCE_INLINE __m128i _mm_cvtepu8_epi32(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_u32(u32x4); ++} ++ ++// Zero extend packed unsigned 8-bit integers in the low 8 bytes of a to packed ++// 64-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi64 ++FORCE_INLINE __m128i _mm_cvtepu8_epi64(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Conditionally multiply the packed double-precision (64-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, and ++// conditionally store the sum in dst using the low 4 bits of imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_pd ++FORCE_INLINE __m128d _mm_dp_pd(__m128d a, __m128d b, const int imm) ++{ ++ // Generate mask value from constant immediate bit value ++ const int64_t bit0Mask = imm & 0x01 ? UINT64_MAX : 0; ++ const int64_t bit1Mask = imm & 0x02 ? UINT64_MAX : 0; ++#if !SSE2NEON_PRECISE_DP ++ const int64_t bit4Mask = imm & 0x10 ? UINT64_MAX : 0; ++ const int64_t bit5Mask = imm & 0x20 ? UINT64_MAX : 0; ++#endif ++ // Conditional multiplication ++#if !SSE2NEON_PRECISE_DP ++ __m128d mul = _mm_mul_pd(a, b); ++ const __m128d mulMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit5Mask, bit4Mask)); ++ __m128d tmp = _mm_and_pd(mul, mulMask); ++#else ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double d0 = (imm & 0x10) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 0) ++ : 0; ++ double d1 = (imm & 0x20) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 1) ++ : 0; ++#else ++ double d0 = (imm & 0x10) ? ((double *) &a)[0] * ((double *) &b)[0] : 0; ++ double d1 = (imm & 0x20) ? ((double *) &a)[1] * ((double *) &b)[1] : 0; ++#endif ++ __m128d tmp = _mm_set_pd(d1, d0); ++#endif ++ // Sum the products ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double sum = vpaddd_f64(vreinterpretq_f64_m128d(tmp)); ++#else ++ double sum = *((double *) &tmp) + *(((double *) &tmp) + 1); ++#endif ++ // Conditionally store the sum ++ const __m128d sumMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit1Mask, bit0Mask)); ++ __m128d res = _mm_and_pd(_mm_set_pd1(sum), sumMask); ++ return res; ++} ++ ++// Conditionally multiply the packed single-precision (32-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, ++// and conditionally store the sum in dst using the low 4 bits of imm. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_ps ++FORCE_INLINE __m128 _mm_dp_ps(__m128 a, __m128 b, const int imm) ++{ ++ float32x4_t elementwise_prod = _mm_mul_ps(a, b); ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ /* shortcuts */ ++ if (imm == 0xFF) { ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++ ++ if ((imm & 0x0F) == 0x0F) { ++ if (!(imm & (1 << 4))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 0); ++ if (!(imm & (1 << 5))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 1); ++ if (!(imm & (1 << 6))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 2); ++ if (!(imm & (1 << 7))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 3); ++ ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++#endif ++ ++ float s = 0.0f; ++ ++ if (imm & (1 << 4)) ++ s += vgetq_lane_f32(elementwise_prod, 0); ++ if (imm & (1 << 5)) ++ s += vgetq_lane_f32(elementwise_prod, 1); ++ if (imm & (1 << 6)) ++ s += vgetq_lane_f32(elementwise_prod, 2); ++ if (imm & (1 << 7)) ++ s += vgetq_lane_f32(elementwise_prod, 3); ++ ++ const float32_t res[4] = { ++ (imm & 0x1) ? s : 0.0f, ++ (imm & 0x2) ? s : 0.0f, ++ (imm & 0x4) ? s : 0.0f, ++ (imm & 0x8) ? s : 0.0f, ++ }; ++ return vreinterpretq_m128_f32(vld1q_f32(res)); ++} ++ ++// Extract a 32-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi32 ++// FORCE_INLINE int _mm_extract_epi32(__m128i a, __constrange(0,4) int imm) ++#define _mm_extract_epi32(a, imm) \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)) ++ ++// Extract a 64-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi64 ++// FORCE_INLINE __int64 _mm_extract_epi64(__m128i a, __constrange(0,2) int imm) ++#define _mm_extract_epi64(a, imm) \ ++ vgetq_lane_s64(vreinterpretq_s64_m128i(a), (imm)) ++ ++// Extract an 8-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. FORCE_INLINE int _mm_extract_epi8(__m128i a, ++// __constrange(0,16) int imm) ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi8 ++#define _mm_extract_epi8(a, imm) vgetq_lane_u8(vreinterpretq_u8_m128i(a), (imm)) ++ ++// Extracts the selected single-precision (32-bit) floating-point from a. ++// FORCE_INLINE int _mm_extract_ps(__m128 a, __constrange(0,4) int imm) ++#define _mm_extract_ps(a, imm) vgetq_lane_s32(vreinterpretq_s32_m128(a), (imm)) ++ ++// Round the packed double-precision (64-bit) floating-point elements in a down ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_pd ++FORCE_INLINE __m128d _mm_floor_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndmq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(floor(f[1]), floor(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a down ++// to an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ps ++FORCE_INLINE __m128 _mm_floor_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndmq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(floorf(f[3]), floorf(f[2]), floorf(f[1]), floorf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b down to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_sd ++FORCE_INLINE __m128d _mm_floor_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_floor_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b down to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ss ++FORCE_INLINE __m128 _mm_floor_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_floor_ps(b)); ++} ++ ++// Copy a to dst, and insert the 32-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi32 ++// FORCE_INLINE __m128i _mm_insert_epi32(__m128i a, int b, ++// __constrange(0,4) int imm) ++#define _mm_insert_epi32(a, b, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vsetq_lane_s32((b), vreinterpretq_s32_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the 64-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi64 ++// FORCE_INLINE __m128i _mm_insert_epi64(__m128i a, __int64 b, ++// __constrange(0,2) int imm) ++#define _mm_insert_epi64(a, b, imm) \ ++ vreinterpretq_m128i_s64( \ ++ vsetq_lane_s64((b), vreinterpretq_s64_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the lower 8-bit integer from i into dst at the ++// location specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi8 ++// FORCE_INLINE __m128i _mm_insert_epi8(__m128i a, int b, ++// __constrange(0,16) int imm) ++#define _mm_insert_epi8(a, b, imm) \ ++ vreinterpretq_m128i_s8(vsetq_lane_s8((b), vreinterpretq_s8_m128i(a), (imm))) ++ ++// Copy a to tmp, then insert a single-precision (32-bit) floating-point ++// element from b into tmp using the control in imm8. Store tmp to dst using ++// the mask in imm8 (elements are zeroed out when the corresponding bit is set). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=insert_ps ++#define _mm_insert_ps(a, b, imm8) \ ++ _sse2neon_define2( \ ++ __m128, a, b, \ ++ float32x4_t tmp1 = \ ++ vsetq_lane_f32(vgetq_lane_f32(_b, (imm8 >> 6) & 0x3), \ ++ vreinterpretq_f32_m128(_a), 0); \ ++ float32x4_t tmp2 = \ ++ vsetq_lane_f32(vgetq_lane_f32(tmp1, 0), \ ++ vreinterpretq_f32_m128(_a), ((imm8 >> 4) & 0x3)); \ ++ const uint32_t data[4] = \ ++ _sse2neon_init(((imm8) & (1 << 0)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0); \ ++ uint32x4_t mask = vld1q_u32(data); \ ++ float32x4_t all_zeros = vdupq_n_f32(0); \ ++ \ ++ _sse2neon_return(vreinterpretq_m128_f32( \ ++ vbslq_f32(mask, all_zeros, vreinterpretq_f32_m128(tmp2))));) ++ ++// Compare packed signed 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi32 ++FORCE_INLINE __m128i _mm_max_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmaxq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi8 ++FORCE_INLINE __m128i _mm_max_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vmaxq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu16 ++FORCE_INLINE __m128i _mm_max_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vmaxq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_max_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vmaxq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi32 ++FORCE_INLINE __m128i _mm_min_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vminq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi8 ++FORCE_INLINE __m128i _mm_min_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vminq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu16 ++FORCE_INLINE __m128i _mm_min_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vminq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_min_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vminq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Horizontally compute the minimum amongst the packed unsigned 16-bit integers ++// in a, store the minimum and index in dst, and zero the remaining bits in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_minpos_epu16 ++FORCE_INLINE __m128i _mm_minpos_epu16(__m128i a) ++{ ++ __m128i dst; ++ uint16_t min, idx = 0; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Find the minimum value ++ min = vminvq_u16(vreinterpretq_u16_m128i(a)); ++ ++ // Get the index of the minimum value ++ static const uint16_t idxv[] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint16x8_t minv = vdupq_n_u16(min); ++ uint16x8_t cmeq = vceqq_u16(minv, vreinterpretq_u16_m128i(a)); ++ idx = vminvq_u16(vornq_u16(vld1q_u16(idxv), cmeq)); ++#else ++ // Find the minimum value ++ __m64 tmp; ++ tmp = vreinterpret_m64_u16( ++ vmin_u16(vget_low_u16(vreinterpretq_u16_m128i(a)), ++ vget_high_u16(vreinterpretq_u16_m128i(a)))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ min = vget_lane_u16(vreinterpret_u16_m64(tmp), 0); ++ // Get the index of the minimum value ++ int i; ++ for (i = 0; i < 8; i++) { ++ if (min == vgetq_lane_u16(vreinterpretq_u16_m128i(a), 0)) { ++ idx = (uint16_t) i; ++ break; ++ } ++ a = _mm_srli_si128(a, 2); ++ } ++#endif ++ // Generate result ++ dst = _mm_setzero_si128(); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(min, vreinterpretq_u16_m128i(dst), 0)); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(idx, vreinterpretq_u16_m128i(dst), 1)); ++ return dst; ++} ++ ++// Compute the sum of absolute differences (SADs) of quadruplets of unsigned ++// 8-bit integers in a compared to those in b, and store the 16-bit results in ++// dst. Eight SADs are performed using one quadruplet from b and eight ++// quadruplets from a. One quadruplet is selected from b starting at on the ++// offset specified in imm8. Eight quadruplets are formed from sequential 8-bit ++// integers selected from a starting at the offset specified in imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mpsadbw_epu8 ++FORCE_INLINE __m128i _mm_mpsadbw_epu8(__m128i a, __m128i b, const int imm) ++{ ++ uint8x16_t _a, _b; ++ ++ switch (imm & 0x4) { ++ case 0: ++ // do nothing ++ _a = vreinterpretq_u8_m128i(a); ++ break; ++ case 4: ++ _a = vreinterpretq_u8_u32(vextq_u32(vreinterpretq_u32_m128i(a), ++ vreinterpretq_u32_m128i(a), 1)); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ switch (imm & 0x3) { ++ case 0: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 0))); ++ break; ++ case 1: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 1))); ++ break; ++ case 2: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 2))); ++ break; ++ case 3: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 3))); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ int16x8_t c04, c15, c26, c37; ++ uint8x8_t low_b = vget_low_u8(_b); ++ c04 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a), low_b)); ++ uint8x16_t _a_1 = vextq_u8(_a, _a, 1); ++ c15 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_1), low_b)); ++ uint8x16_t _a_2 = vextq_u8(_a, _a, 2); ++ c26 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_2), low_b)); ++ uint8x16_t _a_3 = vextq_u8(_a, _a, 3); ++ c37 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_3), low_b)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // |0|4|2|6| ++ c04 = vpaddq_s16(c04, c26); ++ // |1|5|3|7| ++ c15 = vpaddq_s16(c15, c37); ++ ++ int32x4_t trn1_c = ++ vtrn1q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ int32x4_t trn2_c = ++ vtrn2q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ return vreinterpretq_m128i_s16(vpaddq_s16(vreinterpretq_s16_s32(trn1_c), ++ vreinterpretq_s16_s32(trn2_c))); ++#else ++ int16x4_t c01, c23, c45, c67; ++ c01 = vpadd_s16(vget_low_s16(c04), vget_low_s16(c15)); ++ c23 = vpadd_s16(vget_low_s16(c26), vget_low_s16(c37)); ++ c45 = vpadd_s16(vget_high_s16(c04), vget_high_s16(c15)); ++ c67 = vpadd_s16(vget_high_s16(c26), vget_high_s16(c37)); ++ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(c01, c23), vpadd_s16(c45, c67))); ++#endif ++} ++ ++// Multiply the low signed 32-bit integers from each packed 64-bit element in ++// a and b, and store the signed 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epi32 ++FORCE_INLINE __m128i _mm_mul_epi32(__m128i a, __m128i b) ++{ ++ // vmull_s32 upcasts instead of masking, so we downcast. ++ int32x2_t a_lo = vmovn_s64(vreinterpretq_s64_m128i(a)); ++ int32x2_t b_lo = vmovn_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vmull_s32(a_lo, b_lo)); ++} ++ ++// Multiply the packed 32-bit integers in a and b, producing intermediate 64-bit ++// integers, and store the low 32 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi32 ++FORCE_INLINE __m128i _mm_mullo_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmulq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi32 ++FORCE_INLINE __m128i _mm_packus_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcombine_u16(vqmovun_s32(vreinterpretq_s32_m128i(a)), ++ vqmovun_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_pd ++FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d a, int rounding) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndnq_f64(vreinterpretq_f64_m128d(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_pd(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_pd(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndq_f64(vreinterpretq_f64_m128d(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128d_f64(vrndiq_f64(vreinterpretq_f64_m128d(a))); ++ } ++#else ++ double *v_double = (double *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ double res[2], tmp; ++ for (int i = 0; i < 2; i++) { ++ tmp = (v_double[i] < 0) ? -v_double[i] : v_double[i]; ++ double roundDown = floor(tmp); // Round down value ++ double roundUp = ceil(tmp); // Round up value ++ double diffDown = tmp - roundDown; ++ double diffUp = roundUp - tmp; ++ if (diffDown < diffUp) { ++ /* If it's closer to the round down value, then use it */ ++ res[i] = roundDown; ++ } else if (diffDown > diffUp) { ++ /* If it's closer to the round up value, then use it */ ++ res[i] = roundUp; ++ } else { ++ /* If it's equidistant between round up and round down value, ++ * pick the one which is an even number */ ++ double half = roundDown / 2; ++ if (half != floor(half)) { ++ /* If the round down value is odd, return the round up value ++ */ ++ res[i] = roundUp; ++ } else { ++ /* If the round up value is odd, return the round down value ++ */ ++ res[i] = roundDown; ++ } ++ } ++ res[i] = (v_double[i] < 0) ? -res[i] : res[i]; ++ } ++ return _mm_set_pd(res[1], res[0]); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_pd(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_pd(a); ++ } ++ return _mm_set_pd(v_double[1] > 0 ? floor(v_double[1]) : ceil(v_double[1]), ++ v_double[0] > 0 ? floor(v_double[0]) : ceil(v_double[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed single-precision ++// floating-point elements in dst. ++// software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_round_ps ++FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128 a, int rounding) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndnq_f32(vreinterpretq_f32_m128(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_ps(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_ps(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndq_f32(vreinterpretq_f32_m128(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128_f32(vrndiq_f32(vreinterpretq_f32_m128(a))); ++ } ++#else ++ float *v_float = (float *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vbslq_s32(is_delta_half, r_even, r_normal))); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_ps(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_ps(a); ++ } ++ return _mm_set_ps(v_float[3] > 0 ? floorf(v_float[3]) : ceilf(v_float[3]), ++ v_float[2] > 0 ? floorf(v_float[2]) : ceilf(v_float[2]), ++ v_float[1] > 0 ? floorf(v_float[1]) : ceilf(v_float[1]), ++ v_float[0] > 0 ? floorf(v_float[0]) : ceilf(v_float[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b using ++// the rounding parameter, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_sd ++FORCE_INLINE __m128d _mm_round_sd(__m128d a, __m128d b, int rounding) ++{ ++ return _mm_move_sd(a, _mm_round_pd(b, rounding)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b using ++// the rounding parameter, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. Rounding is done according to the ++// rounding[3:0] parameter, which can be one of: ++// (_MM_FROUND_TO_NEAREST_INT |_MM_FROUND_NO_EXC) // round to nearest, and ++// suppress exceptions ++// (_MM_FROUND_TO_NEG_INF |_MM_FROUND_NO_EXC) // round down, and ++// suppress exceptions ++// (_MM_FROUND_TO_POS_INF |_MM_FROUND_NO_EXC) // round up, and suppress ++// exceptions ++// (_MM_FROUND_TO_ZERO |_MM_FROUND_NO_EXC) // truncate, and suppress ++// exceptions _MM_FROUND_CUR_DIRECTION // use MXCSR.RC; see ++// _MM_SET_ROUNDING_MODE ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_ss ++FORCE_INLINE __m128 _mm_round_ss(__m128 a, __m128 b, int rounding) ++{ ++ return _mm_move_ss(a, _mm_round_ps(b, rounding)); ++} ++ ++// Load 128-bits of integer data from memory into dst using a non-temporal ++// memory hint. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_load_si128 ++FORCE_INLINE __m128i _mm_stream_load_si128(__m128i *p) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ return __builtin_nontemporal_load(p); ++#else ++ return vreinterpretq_m128i_s64(vld1q_s64((int64_t *) p)); ++#endif ++} ++ ++// Compute the bitwise NOT of a and then AND with a 128-bit vector containing ++// all 1's, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_ones ++FORCE_INLINE int _mm_test_all_ones(__m128i a) ++{ ++ return (uint64_t) (vgetq_lane_s64(a, 0) & vgetq_lane_s64(a, 1)) == ++ ~(uint64_t) 0; ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_zeros ++FORCE_INLINE int _mm_test_all_zeros(__m128i a, __m128i mask) ++{ ++ int64x2_t a_and_mask = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(mask)); ++ return !(vgetq_lane_s64(a_and_mask, 0) | vgetq_lane_s64(a_and_mask, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute ++// the bitwise NOT of a and then AND with mask, and set CF to 1 if the result is ++// zero, otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_test_mix_ones_zero ++// Note: Argument names may be wrong in the Intel intrinsics guide. ++FORCE_INLINE int _mm_test_mix_ones_zeros(__m128i a, __m128i mask) ++{ ++ uint64x2_t v = vreinterpretq_u64_m128i(a); ++ uint64x2_t m = vreinterpretq_u64_m128i(mask); ++ ++ // find ones (set-bits) and zeros (clear-bits) under clip mask ++ uint64x2_t ones = vandq_u64(m, v); ++ uint64x2_t zeros = vbicq_u64(m, v); ++ ++ // If both 128-bit variables are populated (non-zero) then return 1. ++ // For comparison purposes, first compact each var down to 32-bits. ++ uint32x2_t reduced = vpmax_u32(vqmovn_u64(ones), vqmovn_u64(zeros)); ++ ++ // if folding minimum is non-zero then both vars must be non-zero ++ return (vget_lane_u32(vpmin_u32(reduced, reduced), 0) != 0); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the CF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testc_si128 ++FORCE_INLINE int _mm_testc_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vbicq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testnzc_si128 ++#define _mm_testnzc_si128(a, b) _mm_test_mix_ones_zeros(a, b) ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the ZF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testz_si128 ++FORCE_INLINE int _mm_testz_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++/* SSE4.2 */ ++ ++static const uint16_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask16b[8] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++static const uint8_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask8b[16] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++ ++/* specify the source data format */ ++#define _SIDD_UBYTE_OPS 0x00 /* unsigned 8-bit characters */ ++#define _SIDD_UWORD_OPS 0x01 /* unsigned 16-bit characters */ ++#define _SIDD_SBYTE_OPS 0x02 /* signed 8-bit characters */ ++#define _SIDD_SWORD_OPS 0x03 /* signed 16-bit characters */ ++ ++/* specify the comparison operation */ ++#define _SIDD_CMP_EQUAL_ANY 0x00 /* compare equal any: strchr */ ++#define _SIDD_CMP_RANGES 0x04 /* compare ranges */ ++#define _SIDD_CMP_EQUAL_EACH 0x08 /* compare equal each: strcmp */ ++#define _SIDD_CMP_EQUAL_ORDERED 0x0C /* compare equal ordered */ ++ ++/* specify the polarity */ ++#define _SIDD_POSITIVE_POLARITY 0x00 ++#define _SIDD_MASKED_POSITIVE_POLARITY 0x20 ++#define _SIDD_NEGATIVE_POLARITY 0x10 /* negate results */ ++#define _SIDD_MASKED_NEGATIVE_POLARITY \ ++ 0x30 /* negate results only before end of string */ ++ ++/* specify the output selection in _mm_cmpXstri */ ++#define _SIDD_LEAST_SIGNIFICANT 0x00 ++#define _SIDD_MOST_SIGNIFICANT 0x40 ++ ++/* specify the output selection in _mm_cmpXstrm */ ++#define _SIDD_BIT_MASK 0x00 ++#define _SIDD_UNIT_MASK 0x40 ++ ++/* Pattern Matching for C macros. ++ * https://github.com/pfultz2/Cloak/wiki/C-Preprocessor-tricks,-tips,-and-idioms ++ */ ++ ++/* catenate */ ++#define SSE2NEON_PRIMITIVE_CAT(a, ...) a##__VA_ARGS__ ++#define SSE2NEON_CAT(a, b) SSE2NEON_PRIMITIVE_CAT(a, b) ++ ++#define SSE2NEON_IIF(c) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_IIF_, c) ++/* run the 2nd parameter */ ++#define SSE2NEON_IIF_0(t, ...) __VA_ARGS__ ++/* run the 1st parameter */ ++#define SSE2NEON_IIF_1(t, ...) t ++ ++#define SSE2NEON_COMPL(b) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_COMPL_, b) ++#define SSE2NEON_COMPL_0 1 ++#define SSE2NEON_COMPL_1 0 ++ ++#define SSE2NEON_DEC(x) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_DEC_, x) ++#define SSE2NEON_DEC_1 0 ++#define SSE2NEON_DEC_2 1 ++#define SSE2NEON_DEC_3 2 ++#define SSE2NEON_DEC_4 3 ++#define SSE2NEON_DEC_5 4 ++#define SSE2NEON_DEC_6 5 ++#define SSE2NEON_DEC_7 6 ++#define SSE2NEON_DEC_8 7 ++#define SSE2NEON_DEC_9 8 ++#define SSE2NEON_DEC_10 9 ++#define SSE2NEON_DEC_11 10 ++#define SSE2NEON_DEC_12 11 ++#define SSE2NEON_DEC_13 12 ++#define SSE2NEON_DEC_14 13 ++#define SSE2NEON_DEC_15 14 ++#define SSE2NEON_DEC_16 15 ++ ++/* detection */ ++#define SSE2NEON_CHECK_N(x, n, ...) n ++#define SSE2NEON_CHECK(...) SSE2NEON_CHECK_N(__VA_ARGS__, 0, ) ++#define SSE2NEON_PROBE(x) x, 1, ++ ++#define SSE2NEON_NOT(x) SSE2NEON_CHECK(SSE2NEON_PRIMITIVE_CAT(SSE2NEON_NOT_, x)) ++#define SSE2NEON_NOT_0 SSE2NEON_PROBE(~) ++ ++#define SSE2NEON_BOOL(x) SSE2NEON_COMPL(SSE2NEON_NOT(x)) ++#define SSE2NEON_IF(c) SSE2NEON_IIF(SSE2NEON_BOOL(c)) ++ ++#define SSE2NEON_EAT(...) ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++#define SSE2NEON_WHEN(c) SSE2NEON_IF(c)(SSE2NEON_EXPAND, SSE2NEON_EAT) ++ ++/* recursion */ ++/* deferred expression */ ++#define SSE2NEON_EMPTY() ++#define SSE2NEON_DEFER(id) id SSE2NEON_EMPTY() ++#define SSE2NEON_OBSTRUCT(...) __VA_ARGS__ SSE2NEON_DEFER(SSE2NEON_EMPTY)() ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++ ++#define SSE2NEON_EVAL(...) \ ++ SSE2NEON_EVAL1(SSE2NEON_EVAL1(SSE2NEON_EVAL1(__VA_ARGS__))) ++#define SSE2NEON_EVAL1(...) \ ++ SSE2NEON_EVAL2(SSE2NEON_EVAL2(SSE2NEON_EVAL2(__VA_ARGS__))) ++#define SSE2NEON_EVAL2(...) \ ++ SSE2NEON_EVAL3(SSE2NEON_EVAL3(SSE2NEON_EVAL3(__VA_ARGS__))) ++#define SSE2NEON_EVAL3(...) __VA_ARGS__ ++ ++#define SSE2NEON_REPEAT(count, macro, ...) \ ++ SSE2NEON_WHEN(count) \ ++ (SSE2NEON_OBSTRUCT(SSE2NEON_REPEAT_INDIRECT)()( \ ++ SSE2NEON_DEC(count), macro, \ ++ __VA_ARGS__) SSE2NEON_OBSTRUCT(macro)(SSE2NEON_DEC(count), \ ++ __VA_ARGS__)) ++#define SSE2NEON_REPEAT_INDIRECT() SSE2NEON_REPEAT ++ ++#define SSE2NEON_SIZE_OF_byte 8 ++#define SSE2NEON_NUMBER_OF_LANES_byte 16 ++#define SSE2NEON_SIZE_OF_word 16 ++#define SSE2NEON_NUMBER_OF_LANES_word 8 ++ ++#define SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE(i, type) \ ++ mtx[i] = vreinterpretq_m128i_##type(vceqq_##type( \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)), \ ++ vreinterpretq_##type##_m128i(a))); ++ ++#define SSE2NEON_FILL_LANE(i, type) \ ++ vec_b[i] = \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)); ++ ++#define PCMPSTR_RANGES(a, b, mtx, data_type_prefix, type_prefix, size, \ ++ number_of_lanes, byte_or_word) \ ++ do { \ ++ SSE2NEON_CAT( \ ++ data_type_prefix, \ ++ SSE2NEON_CAT(size, \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(number_of_lanes, _t)))) \ ++ vec_b[number_of_lanes]; \ ++ __m128i mask = SSE2NEON_IIF(byte_or_word)( \ ++ vreinterpretq_m128i_u16(vdupq_n_u16(0xff)), \ ++ vreinterpretq_m128i_u32(vdupq_n_u32(0xffff))); \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, SSE2NEON_FILL_LANE, \ ++ SSE2NEON_CAT(type_prefix, size))) \ ++ for (int i = 0; i < number_of_lanes; i++) { \ ++ mtx[i] = SSE2NEON_CAT(vreinterpretq_m128i_u, \ ++ size)(SSE2NEON_CAT(vbslq_u, size)( \ ++ SSE2NEON_CAT(vreinterpretq_u, \ ++ SSE2NEON_CAT(size, _m128i))(mask), \ ++ SSE2NEON_CAT(vcgeq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))), \ ++ SSE2NEON_CAT(vcleq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))))); \ ++ } \ ++ } while (0) ++ ++#define PCMPSTR_EQ(a, b, mtx, size, number_of_lanes) \ ++ do { \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, \ ++ SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE, \ ++ SSE2NEON_CAT(u, size))) \ ++ } while (0) ++ ++#define SSE2NEON_CMP_EQUAL_ANY_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_any(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_any_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_RANGES_IMPL(type, data_type, us, byte_or_word) \ ++ static int _sse2neon_cmp_##us##type##_ranges(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_RANGES( \ ++ a, b, mtx, data_type, us, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), byte_or_word); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_ranges_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_EQUAL_ORDERED_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_ordered(__m128i a, int la, \ ++ __m128i b, int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_ordered_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type))))( \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), la, lb, mtx); \ ++ } ++ ++static int _sse2neon_aggregate_equal_any_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ int tmp = _sse2neon_vaddvq_u8(vreinterpretq_u8_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_equal_any_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ int tmp = _sse2neon_vaddvq_u16(vreinterpretq_u16_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ANY(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ANY(SSE2NEON_CMP_EQUAL_ANY_) ++ ++static int _sse2neon_aggregate_ranges_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ __m128i tmp = vreinterpretq_m128i_u32( ++ vshrq_n_u32(vreinterpretq_u32_m128i(mtx[j]), 16)); ++ uint32x4_t vec_res = vandq_u32(vreinterpretq_u32_m128i(mtx[j]), ++ vreinterpretq_u32_m128i(tmp)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int t = vaddvq_u32(vec_res) ? 1 : 0; ++#else ++ uint64x2_t sumh = vpaddlq_u32(vec_res); ++ int t = vgetq_lane_u64(sumh, 0) + vgetq_lane_u64(sumh, 1); ++#endif ++ res |= (t << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_ranges_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ __m128i tmp = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 8)); ++ uint16x8_t vec_res = vandq_u16(vreinterpretq_u16_m128i(mtx[j]), ++ vreinterpretq_u16_m128i(tmp)); ++ int t = _sse2neon_vaddvq_u16(vec_res) ? 1 : 0; ++ res |= (t << j); ++ } ++ return res; ++} ++ ++#define SSE2NEON_CMP_RANGES_IS_BYTE 1 ++#define SSE2NEON_CMP_RANGES_IS_WORD 0 ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_RANGES(prefix) \ ++ prefix##IMPL(byte, uint, u, prefix##IS_BYTE) \ ++ prefix##IMPL(byte, int, s, prefix##IS_BYTE) \ ++ prefix##IMPL(word, uint, u, prefix##IS_WORD) \ ++ prefix##IMPL(word, int, s, prefix##IS_WORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_RANGES(SSE2NEON_CMP_RANGES_) ++ ++#undef SSE2NEON_CMP_RANGES_IS_BYTE ++#undef SSE2NEON_CMP_RANGES_IS_WORD ++ ++static int _sse2neon_cmp_byte_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint8x16_t mtx = ++ vceqq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x10000 - (1 << la); ++ int tb = 0x10000 - (1 << lb); ++ uint8x8_t vec_mask, vec0_lo, vec0_hi, vec1_lo, vec1_hi; ++ uint8x8_t tmp_lo, tmp_hi, res_lo, res_hi; ++ vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ vec0_lo = vtst_u8(vdup_n_u8(m0), vec_mask); ++ vec0_hi = vtst_u8(vdup_n_u8(m0 >> 8), vec_mask); ++ vec1_lo = vtst_u8(vdup_n_u8(m1), vec_mask); ++ vec1_hi = vtst_u8(vdup_n_u8(m1 >> 8), vec_mask); ++ tmp_lo = vtst_u8(vdup_n_u8(tb), vec_mask); ++ tmp_hi = vtst_u8(vdup_n_u8(tb >> 8), vec_mask); ++ ++ res_lo = vbsl_u8(vec0_lo, vdup_n_u8(0), vget_low_u8(mtx)); ++ res_hi = vbsl_u8(vec0_hi, vdup_n_u8(0), vget_high_u8(mtx)); ++ res_lo = vbsl_u8(vec1_lo, tmp_lo, res_lo); ++ res_hi = vbsl_u8(vec1_hi, tmp_hi, res_hi); ++ res_lo = vand_u8(res_lo, vec_mask); ++ res_hi = vand_u8(res_hi, vec_mask); ++ ++ int res = _sse2neon_vaddv_u8(res_lo) + (_sse2neon_vaddv_u8(res_hi) << 8); ++ return res; ++} ++ ++static int _sse2neon_cmp_word_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint16x8_t mtx = ++ vceqq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x100 - (1 << la); ++ int tb = 0x100 - (1 << lb); ++ uint16x8_t vec_mask = vld1q_u16(_sse2neon_cmpestr_mask16b); ++ uint16x8_t vec0 = vtstq_u16(vdupq_n_u16(m0), vec_mask); ++ uint16x8_t vec1 = vtstq_u16(vdupq_n_u16(m1), vec_mask); ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(tb), vec_mask); ++ mtx = vbslq_u16(vec0, vdupq_n_u16(0), mtx); ++ mtx = vbslq_u16(vec1, tmp, mtx); ++ mtx = vandq_u16(mtx, vec_mask); ++ return _sse2neon_vaddvq_u16(mtx); ++} ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE 1 ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD 0 ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IMPL(size, number_of_lanes, data_type) \ ++ static int _sse2neon_aggregate_equal_ordered_##size##x##number_of_lanes( \ ++ int bound, int la, int lb, __m128i mtx[16]) \ ++ { \ ++ int res = 0; \ ++ int m1 = SSE2NEON_IIF(data_type)(0x10000, 0x100) - (1 << la); \ ++ uint##size##x8_t vec_mask = SSE2NEON_IIF(data_type)( \ ++ vld1_u##size(_sse2neon_cmpestr_mask##size##b), \ ++ vld1q_u##size(_sse2neon_cmpestr_mask##size##b)); \ ++ uint##size##x##number_of_lanes##_t vec1 = SSE2NEON_IIF(data_type)( \ ++ vcombine_u##size(vtst_u##size(vdup_n_u##size(m1), vec_mask), \ ++ vtst_u##size(vdup_n_u##size(m1 >> 8), vec_mask)), \ ++ vtstq_u##size(vdupq_n_u##size(m1), vec_mask)); \ ++ uint##size##x##number_of_lanes##_t vec_minusone = vdupq_n_u##size(-1); \ ++ uint##size##x##number_of_lanes##_t vec_zero = vdupq_n_u##size(0); \ ++ for (int j = 0; j < lb; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size(vbslq_u##size( \ ++ vec1, vec_minusone, vreinterpretq_u##size##_m128i(mtx[j]))); \ ++ } \ ++ for (int j = lb; j < bound; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size( \ ++ vbslq_u##size(vec1, vec_minusone, vec_zero)); \ ++ } \ ++ unsigned SSE2NEON_IIF(data_type)(char, short) *ptr = \ ++ (unsigned SSE2NEON_IIF(data_type)(char, short) *) mtx; \ ++ for (int i = 0; i < bound; i++) { \ ++ int val = 1; \ ++ for (int j = 0, k = i; j < bound - i && k < bound; j++, k++) \ ++ val &= ptr[k * bound + j]; \ ++ res += val << i; \ ++ } \ ++ return res; \ ++ } ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(prefix) \ ++ prefix##IMPL(8, 16, prefix##IS_UBYTE) \ ++ prefix##IMPL(16, 8, prefix##IS_UWORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(SSE2NEON_AGGREGATE_EQUAL_ORDER_) ++ ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(SSE2NEON_CMP_EQUAL_ORDERED_) ++ ++#define SSE2NEON_CMPESTR_LIST \ ++ _(CMP_UBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_UWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_SBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_SWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_UBYTE_RANGES, cmp_ubyte_ranges) \ ++ _(CMP_UWORD_RANGES, cmp_uword_ranges) \ ++ _(CMP_SBYTE_RANGES, cmp_sbyte_ranges) \ ++ _(CMP_SWORD_RANGES, cmp_sword_ranges) \ ++ _(CMP_UBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_UWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_SBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_SWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_UBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_UWORD_EQUAL_ORDERED, cmp_word_equal_ordered) \ ++ _(CMP_SBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_SWORD_EQUAL_ORDERED, cmp_word_equal_ordered) ++ ++enum { ++#define _(name, func_suffix) name, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++typedef int (*cmpestr_func_t)(__m128i a, int la, __m128i b, int lb); ++static cmpestr_func_t _sse2neon_cmpfunc_table[] = { ++#define _(name, func_suffix) _sse2neon_##func_suffix, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++ ++FORCE_INLINE int _sse2neon_sido_negative(int res, int lb, int imm8, int bound) ++{ ++ switch (imm8 & 0x30) { ++ case _SIDD_NEGATIVE_POLARITY: ++ res ^= 0xffffffff; ++ break; ++ case _SIDD_MASKED_NEGATIVE_POLARITY: ++ res ^= (1 << lb) - 1; ++ break; ++ default: ++ break; ++ } ++ ++ return res & ((bound == 8) ? 0xFF : 0xFFFF); ++} ++ ++FORCE_INLINE int _sse2neon_clz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanReverse(&cnt, x)) ++ return 31 - cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_clz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanForward(&cnt, x)) ++ return cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_ctz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctzll(unsigned long long x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt; ++#if defined(SSE2NEON_HAS_BITSCAN64) ++ if (_BitScanForward64(&cnt, x)) ++ return (int) (cnt); ++#else ++ if (_BitScanForward(&cnt, (unsigned long) (x))) ++ return (int) cnt; ++ if (_BitScanForward(&cnt, (unsigned long) (x >> 32))) ++ return (int) (cnt + 32); ++#endif /* SSE2NEON_HAS_BITSCAN64 */ ++ return 64; ++#else /* assume GNU compatible compilers */ ++ return x != 0 ? __builtin_ctzll(x) : 64; ++#endif ++} ++ ++#define SSE2NEON_MIN(x, y) (x) < (y) ? (x) : (y) ++ ++#define SSE2NEON_CMPSTR_SET_UPPER(var, imm) \ ++ const int var = (imm & 0x01) ? 8 : 16 ++ ++#define SSE2NEON_CMPESTRX_LEN_PAIR(a, b, la, lb) \ ++ int tmp1 = la ^ (la >> 31); \ ++ la = tmp1 - (la >> 31); \ ++ int tmp2 = lb ^ (lb >> 31); \ ++ lb = tmp2 - (lb >> 31); \ ++ la = SSE2NEON_MIN(la, bound); \ ++ lb = SSE2NEON_MIN(lb, bound) ++ ++// Compare all pairs of character in string a and b, ++// then aggregate the result. ++// As the only difference of PCMPESTR* and PCMPISTR* is the way to calculate the ++// length of string, we use SSE2NEON_CMP{I,E}STRX_GET_LEN to get the length of ++// string a and b. ++#define SSE2NEON_COMP_AGG(a, b, la, lb, imm8, IE) \ ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); \ ++ SSE2NEON_##IE##_LEN_PAIR(a, b, la, lb); \ ++ int r2 = (_sse2neon_cmpfunc_table[imm8 & 0x0f])(a, la, b, lb); \ ++ r2 = _sse2neon_sido_negative(r2, lb, imm8, bound) ++ ++#define SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8) \ ++ return (r2 == 0) ? bound \ ++ : ((imm8 & 0x40) ? (31 - _sse2neon_clz(r2)) \ ++ : _sse2neon_ctz(r2)) ++ ++#define SSE2NEON_CMPSTR_GENERATE_MASK(dst) \ ++ __m128i dst = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ if (imm8 & 0x40) { \ ++ if (bound == 8) { \ ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(r2), \ ++ vld1q_u16(_sse2neon_cmpestr_mask16b)); \ ++ dst = vreinterpretq_m128i_u16(vbslq_u16( \ ++ tmp, vdupq_n_u16(-1), vreinterpretq_u16_m128i(dst))); \ ++ } else { \ ++ uint8x16_t vec_r2 = \ ++ vcombine_u8(vdup_n_u8(r2), vdup_n_u8(r2 >> 8)); \ ++ uint8x16_t tmp = \ ++ vtstq_u8(vec_r2, vld1q_u8(_sse2neon_cmpestr_mask8b)); \ ++ dst = vreinterpretq_m128i_u8( \ ++ vbslq_u8(tmp, vdupq_n_u8(-1), vreinterpretq_u8_m128i(dst))); \ ++ } \ ++ } else { \ ++ if (bound == 16) { \ ++ dst = vreinterpretq_m128i_u16( \ ++ vsetq_lane_u16(r2 & 0xffff, vreinterpretq_u16_m128i(dst), 0)); \ ++ } else { \ ++ dst = vreinterpretq_m128i_u8( \ ++ vsetq_lane_u8(r2 & 0xff, vreinterpretq_u8_m128i(dst), 0)); \ ++ } \ ++ } \ ++ return dst ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and returns 1 if b did not contain a null character and the ++// resulting mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestra ++FORCE_INLINE int _mm_cmpestra(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ int lb_cpy = lb; ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return !r2 & (lb_cpy > bound); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrc ++FORCE_INLINE int _mm_cmpestrc(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestri ++FORCE_INLINE int _mm_cmpestri(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrm ++FORCE_INLINE __m128i ++_mm_cmpestrm(__m128i a, int la, __m128i b, int lb, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestro ++FORCE_INLINE int _mm_cmpestro(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrs ++FORCE_INLINE int _mm_cmpestrs(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) lb; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrz ++FORCE_INLINE int _mm_cmpestrz(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) la; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return lb <= (bound - 1); ++} ++ ++#define SSE2NEON_CMPISTRX_LENGTH(str, len, imm8) \ ++ do { \ ++ if (imm8 & 0x01) { \ ++ uint16x8_t equal_mask_##str = \ ++ vceqq_u16(vreinterpretq_u16_m128i(str), vdupq_n_u16(0)); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 3; \ ++ } else { \ ++ uint16x8_t equal_mask_##str = vreinterpretq_u16_u8( \ ++ vceqq_u8(vreinterpretq_u8_m128i(str), vdupq_n_u8(0))); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 2; \ ++ } \ ++ } while (0) ++ ++#define SSE2NEON_CMPISTRX_LEN_PAIR(a, b, la, lb) \ ++ int la, lb; \ ++ do { \ ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); \ ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); \ ++ } while (0) ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if b did not contain a null character and the resulting ++// mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistra ++FORCE_INLINE int _mm_cmpistra(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return !r2 & (lb >= bound); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrc ++FORCE_INLINE int _mm_cmpistrc(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistri ++FORCE_INLINE int _mm_cmpistri(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrm ++FORCE_INLINE __m128i _mm_cmpistrm(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistro ++FORCE_INLINE int _mm_cmpistro(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrs ++FORCE_INLINE int _mm_cmpistrs(__m128i a, __m128i b, const int imm8) ++{ ++ (void) b; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int la; ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrz ++FORCE_INLINE int _mm_cmpistrz(__m128i a, __m128i b, const int imm8) ++{ ++ (void) a; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int lb; ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); ++ return lb <= (bound - 1); ++} ++ ++// Compares the 2 signed 64-bit integers in a and the 2 signed 64-bit integers ++// in b for greater than. ++FORCE_INLINE __m128i _mm_cmpgt_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vcgtq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ return vreinterpretq_m128i_s64(vshrq_n_s64( ++ vqsubq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)), ++ 63)); ++#endif ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 16-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u16 ++FORCE_INLINE uint32_t _mm_crc32_u16(uint32_t crc, uint16_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32ch %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32ch(crc, v); ++#else ++ crc = _mm_crc32_u8(crc, v & 0xff); ++ crc = _mm_crc32_u8(crc, (v >> 8) & 0xff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 32-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u32 ++FORCE_INLINE uint32_t _mm_crc32_u32(uint32_t crc, uint32_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cw %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cw(crc, v); ++#else ++ crc = _mm_crc32_u16(crc, v & 0xffff); ++ crc = _mm_crc32_u16(crc, (v >> 16) & 0xffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 64-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u64 ++FORCE_INLINE uint64_t _mm_crc32_u64(uint64_t crc, uint64_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cx %w[c], %w[c], %x[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cd((uint32_t) crc, v); ++#else ++ crc = _mm_crc32_u32((uint32_t) (crc), v & 0xffffffff); ++ crc = _mm_crc32_u32((uint32_t) (crc), (v >> 32) & 0xffffffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 8-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u8 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t crc, uint8_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cb %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cb(crc, v); ++#else ++ crc ^= v; ++#if defined(__ARM_FEATURE_CRYPTO) ++ // Adapted from: https://mary.rs/lab/crc32/ ++ // Barrent reduction ++ uint64x2_t orig = ++ vcombine_u64(vcreate_u64((uint64_t) (crc) << 24), vcreate_u64(0x0)); ++ uint64x2_t tmp = orig; ++ ++ // Polynomial P(x) of CRC32C ++ uint64_t p = 0x105EC76F1; ++ // Barrett Reduction (in bit-reflected form) constant mu_{64} = \lfloor ++ // 2^{64} / P(x) \rfloor = 0x11f91caf6 ++ uint64_t mu = 0x1dea713f1; ++ ++ // Multiply by mu_{64} ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(mu)); ++ // Divide by 2^{64} (mask away the unnecessary bits) ++ tmp = ++ vandq_u64(tmp, vcombine_u64(vcreate_u64(0xFFFFFFFF), vcreate_u64(0x0))); ++ // Multiply by P(x) (shifted left by 1 for alignment reasons) ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(p)); ++ // Subtract original from result ++ tmp = veorq_u64(tmp, orig); ++ ++ // Extract the 'lower' (in bit-reflected sense) 32 bits ++ crc = vgetq_lane_u32(vreinterpretq_u32_u64(tmp), 1); ++#else // Fall back to the generic table lookup approach ++ // Adapted from: https://create.stephan-brumme.com/crc32/ ++ // Apply half-byte comparison algorithm for the best ratio between ++ // performance and lookup table. ++ ++ // The lookup table just needs to store every 16th entry ++ // of the standard look-up table. ++ static const uint32_t crc32_half_byte_tbl[] = { ++ 0x00000000, 0x105ec76f, 0x20bd8ede, 0x30e349b1, 0x417b1dbc, 0x5125dad3, ++ 0x61c69362, 0x7198540d, 0x82f63b78, 0x92a8fc17, 0xa24bb5a6, 0xb21572c9, ++ 0xc38d26c4, 0xd3d3e1ab, 0xe330a81a, 0xf36e6f75, ++ }; ++ ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++#endif ++#endif ++ return crc; ++} ++ ++/* AES */ ++ ++#if !defined(__ARM_FEATURE_CRYPTO) && (!defined(_M_ARM64) || defined(__clang__)) ++/* clang-format off */ ++#define SSE2NEON_AES_SBOX(w) \ ++ { \ ++ w(0x63), w(0x7c), w(0x77), w(0x7b), w(0xf2), w(0x6b), w(0x6f), \ ++ w(0xc5), w(0x30), w(0x01), w(0x67), w(0x2b), w(0xfe), w(0xd7), \ ++ w(0xab), w(0x76), w(0xca), w(0x82), w(0xc9), w(0x7d), w(0xfa), \ ++ w(0x59), w(0x47), w(0xf0), w(0xad), w(0xd4), w(0xa2), w(0xaf), \ ++ w(0x9c), w(0xa4), w(0x72), w(0xc0), w(0xb7), w(0xfd), w(0x93), \ ++ w(0x26), w(0x36), w(0x3f), w(0xf7), w(0xcc), w(0x34), w(0xa5), \ ++ w(0xe5), w(0xf1), w(0x71), w(0xd8), w(0x31), w(0x15), w(0x04), \ ++ w(0xc7), w(0x23), w(0xc3), w(0x18), w(0x96), w(0x05), w(0x9a), \ ++ w(0x07), w(0x12), w(0x80), w(0xe2), w(0xeb), w(0x27), w(0xb2), \ ++ w(0x75), w(0x09), w(0x83), w(0x2c), w(0x1a), w(0x1b), w(0x6e), \ ++ w(0x5a), w(0xa0), w(0x52), w(0x3b), w(0xd6), w(0xb3), w(0x29), \ ++ w(0xe3), w(0x2f), w(0x84), w(0x53), w(0xd1), w(0x00), w(0xed), \ ++ w(0x20), w(0xfc), w(0xb1), w(0x5b), w(0x6a), w(0xcb), w(0xbe), \ ++ w(0x39), w(0x4a), w(0x4c), w(0x58), w(0xcf), w(0xd0), w(0xef), \ ++ w(0xaa), w(0xfb), w(0x43), w(0x4d), w(0x33), w(0x85), w(0x45), \ ++ w(0xf9), w(0x02), w(0x7f), w(0x50), w(0x3c), w(0x9f), w(0xa8), \ ++ w(0x51), w(0xa3), w(0x40), w(0x8f), w(0x92), w(0x9d), w(0x38), \ ++ w(0xf5), w(0xbc), w(0xb6), w(0xda), w(0x21), w(0x10), w(0xff), \ ++ w(0xf3), w(0xd2), w(0xcd), w(0x0c), w(0x13), w(0xec), w(0x5f), \ ++ w(0x97), w(0x44), w(0x17), w(0xc4), w(0xa7), w(0x7e), w(0x3d), \ ++ w(0x64), w(0x5d), w(0x19), w(0x73), w(0x60), w(0x81), w(0x4f), \ ++ w(0xdc), w(0x22), w(0x2a), w(0x90), w(0x88), w(0x46), w(0xee), \ ++ w(0xb8), w(0x14), w(0xde), w(0x5e), w(0x0b), w(0xdb), w(0xe0), \ ++ w(0x32), w(0x3a), w(0x0a), w(0x49), w(0x06), w(0x24), w(0x5c), \ ++ w(0xc2), w(0xd3), w(0xac), w(0x62), w(0x91), w(0x95), w(0xe4), \ ++ w(0x79), w(0xe7), w(0xc8), w(0x37), w(0x6d), w(0x8d), w(0xd5), \ ++ w(0x4e), w(0xa9), w(0x6c), w(0x56), w(0xf4), w(0xea), w(0x65), \ ++ w(0x7a), w(0xae), w(0x08), w(0xba), w(0x78), w(0x25), w(0x2e), \ ++ w(0x1c), w(0xa6), w(0xb4), w(0xc6), w(0xe8), w(0xdd), w(0x74), \ ++ w(0x1f), w(0x4b), w(0xbd), w(0x8b), w(0x8a), w(0x70), w(0x3e), \ ++ w(0xb5), w(0x66), w(0x48), w(0x03), w(0xf6), w(0x0e), w(0x61), \ ++ w(0x35), w(0x57), w(0xb9), w(0x86), w(0xc1), w(0x1d), w(0x9e), \ ++ w(0xe1), w(0xf8), w(0x98), w(0x11), w(0x69), w(0xd9), w(0x8e), \ ++ w(0x94), w(0x9b), w(0x1e), w(0x87), w(0xe9), w(0xce), w(0x55), \ ++ w(0x28), w(0xdf), w(0x8c), w(0xa1), w(0x89), w(0x0d), w(0xbf), \ ++ w(0xe6), w(0x42), w(0x68), w(0x41), w(0x99), w(0x2d), w(0x0f), \ ++ w(0xb0), w(0x54), w(0xbb), w(0x16) \ ++ } ++#define SSE2NEON_AES_RSBOX(w) \ ++ { \ ++ w(0x52), w(0x09), w(0x6a), w(0xd5), w(0x30), w(0x36), w(0xa5), \ ++ w(0x38), w(0xbf), w(0x40), w(0xa3), w(0x9e), w(0x81), w(0xf3), \ ++ w(0xd7), w(0xfb), w(0x7c), w(0xe3), w(0x39), w(0x82), w(0x9b), \ ++ w(0x2f), w(0xff), w(0x87), w(0x34), w(0x8e), w(0x43), w(0x44), \ ++ w(0xc4), w(0xde), w(0xe9), w(0xcb), w(0x54), w(0x7b), w(0x94), \ ++ w(0x32), w(0xa6), w(0xc2), w(0x23), w(0x3d), w(0xee), w(0x4c), \ ++ w(0x95), w(0x0b), w(0x42), w(0xfa), w(0xc3), w(0x4e), w(0x08), \ ++ w(0x2e), w(0xa1), w(0x66), w(0x28), w(0xd9), w(0x24), w(0xb2), \ ++ w(0x76), w(0x5b), w(0xa2), w(0x49), w(0x6d), w(0x8b), w(0xd1), \ ++ w(0x25), w(0x72), w(0xf8), w(0xf6), w(0x64), w(0x86), w(0x68), \ ++ w(0x98), w(0x16), w(0xd4), w(0xa4), w(0x5c), w(0xcc), w(0x5d), \ ++ w(0x65), w(0xb6), w(0x92), w(0x6c), w(0x70), w(0x48), w(0x50), \ ++ w(0xfd), w(0xed), w(0xb9), w(0xda), w(0x5e), w(0x15), w(0x46), \ ++ w(0x57), w(0xa7), w(0x8d), w(0x9d), w(0x84), w(0x90), w(0xd8), \ ++ w(0xab), w(0x00), w(0x8c), w(0xbc), w(0xd3), w(0x0a), w(0xf7), \ ++ w(0xe4), w(0x58), w(0x05), w(0xb8), w(0xb3), w(0x45), w(0x06), \ ++ w(0xd0), w(0x2c), w(0x1e), w(0x8f), w(0xca), w(0x3f), w(0x0f), \ ++ w(0x02), w(0xc1), w(0xaf), w(0xbd), w(0x03), w(0x01), w(0x13), \ ++ w(0x8a), w(0x6b), w(0x3a), w(0x91), w(0x11), w(0x41), w(0x4f), \ ++ w(0x67), w(0xdc), w(0xea), w(0x97), w(0xf2), w(0xcf), w(0xce), \ ++ w(0xf0), w(0xb4), w(0xe6), w(0x73), w(0x96), w(0xac), w(0x74), \ ++ w(0x22), w(0xe7), w(0xad), w(0x35), w(0x85), w(0xe2), w(0xf9), \ ++ w(0x37), w(0xe8), w(0x1c), w(0x75), w(0xdf), w(0x6e), w(0x47), \ ++ w(0xf1), w(0x1a), w(0x71), w(0x1d), w(0x29), w(0xc5), w(0x89), \ ++ w(0x6f), w(0xb7), w(0x62), w(0x0e), w(0xaa), w(0x18), w(0xbe), \ ++ w(0x1b), w(0xfc), w(0x56), w(0x3e), w(0x4b), w(0xc6), w(0xd2), \ ++ w(0x79), w(0x20), w(0x9a), w(0xdb), w(0xc0), w(0xfe), w(0x78), \ ++ w(0xcd), w(0x5a), w(0xf4), w(0x1f), w(0xdd), w(0xa8), w(0x33), \ ++ w(0x88), w(0x07), w(0xc7), w(0x31), w(0xb1), w(0x12), w(0x10), \ ++ w(0x59), w(0x27), w(0x80), w(0xec), w(0x5f), w(0x60), w(0x51), \ ++ w(0x7f), w(0xa9), w(0x19), w(0xb5), w(0x4a), w(0x0d), w(0x2d), \ ++ w(0xe5), w(0x7a), w(0x9f), w(0x93), w(0xc9), w(0x9c), w(0xef), \ ++ w(0xa0), w(0xe0), w(0x3b), w(0x4d), w(0xae), w(0x2a), w(0xf5), \ ++ w(0xb0), w(0xc8), w(0xeb), w(0xbb), w(0x3c), w(0x83), w(0x53), \ ++ w(0x99), w(0x61), w(0x17), w(0x2b), w(0x04), w(0x7e), w(0xba), \ ++ w(0x77), w(0xd6), w(0x26), w(0xe1), w(0x69), w(0x14), w(0x63), \ ++ w(0x55), w(0x21), w(0x0c), w(0x7d) \ ++ } ++/* clang-format on */ ++ ++/* X Macro trick. See https://en.wikipedia.org/wiki/X_Macro */ ++#define SSE2NEON_AES_H0(x) (x) ++static const uint8_t _sse2neon_sbox[256] = SSE2NEON_AES_SBOX(SSE2NEON_AES_H0); ++static const uint8_t _sse2neon_rsbox[256] = SSE2NEON_AES_RSBOX(SSE2NEON_AES_H0); ++#undef SSE2NEON_AES_H0 ++ ++/* x_time function and matrix multiply function */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#define SSE2NEON_XT(x) (((x) << 1) ^ ((((x) >> 7) & 1) * 0x1b)) ++#define SSE2NEON_MULTIPLY(x, y) \ ++ (((y & 1) * x) ^ ((y >> 1 & 1) * SSE2NEON_XT(x)) ^ \ ++ ((y >> 2 & 1) * SSE2NEON_XT(SSE2NEON_XT(x))) ^ \ ++ ((y >> 3 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))) ^ \ ++ ((y >> 4 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))))) ++#endif ++ ++// In the absence of crypto extensions, implement aesenc using regular NEON ++// intrinsics instead. See: ++// https://www.workofard.com/2017/01/accelerated-aes-for-the-arm64-linux-kernel/ ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/ and ++// for more information. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ /* shift rows */ ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ /* sub bytes */ ++ // Here, we separate the whole 256-bytes table into 4 64-bytes tables, and ++ // look up each of the table. After each lookup, we load the next table ++ // which locates at the next 64-bytes. In the meantime, the index in the ++ // table would be smaller than it was, so the index parameters of ++ // `vqtbx4q_u8()` need to be added the same constant as the loaded tables. ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ // 'w-0x40' equals to 'vsubq_u8(w, vdupq_n_u8(0x40))' ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ /* mix columns */ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ /* add round key */ ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A implementation for a table-based AES */ ++#define SSE2NEON_AES_B2W(b0, b1, b2, b3) \ ++ (((uint32_t) (b3) << 24) | ((uint32_t) (b2) << 16) | \ ++ ((uint32_t) (b1) << 8) | (uint32_t) (b0)) ++// multiplying 'x' by 2 in GF(2^8) ++#define SSE2NEON_AES_F2(x) ((x << 1) ^ (((x >> 7) & 1) * 0x011b /* WPOLY */)) ++// multiplying 'x' by 3 in GF(2^8) ++#define SSE2NEON_AES_F3(x) (SSE2NEON_AES_F2(x) ^ x) ++#define SSE2NEON_AES_U0(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F2(p), p, p, SSE2NEON_AES_F3(p)) ++#define SSE2NEON_AES_U1(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p, p) ++#define SSE2NEON_AES_U2(p) \ ++ SSE2NEON_AES_B2W(p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p) ++#define SSE2NEON_AES_U3(p) \ ++ SSE2NEON_AES_B2W(p, p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p)) ++ ++ // this generates a table containing every possible permutation of ++ // shift_rows() and sub_bytes() with mix_columns(). ++ static const uint32_t ALIGN_STRUCT(16) aes_table[4][256] = { ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U0), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U1), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U2), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U3), ++ }; ++#undef SSE2NEON_AES_B2W ++#undef SSE2NEON_AES_F2 ++#undef SSE2NEON_AES_F3 ++#undef SSE2NEON_AES_U0 ++#undef SSE2NEON_AES_U1 ++#undef SSE2NEON_AES_U2 ++#undef SSE2NEON_AES_U3 ++ ++ uint32_t x0 = _mm_cvtsi128_si32(a); // get a[31:0] ++ uint32_t x1 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); // get a[63:32] ++ uint32_t x2 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xAA)); // get a[95:64] ++ uint32_t x3 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); // get a[127:96] ++ ++ // finish the modulo addition step in mix_columns() ++ __m128i out = _mm_set_epi32( ++ (aes_table[0][x3 & 0xff] ^ aes_table[1][(x0 >> 8) & 0xff] ^ ++ aes_table[2][(x1 >> 16) & 0xff] ^ aes_table[3][x2 >> 24]), ++ (aes_table[0][x2 & 0xff] ^ aes_table[1][(x3 >> 8) & 0xff] ^ ++ aes_table[2][(x0 >> 16) & 0xff] ^ aes_table[3][x1 >> 24]), ++ (aes_table[0][x1 & 0xff] ^ aes_table[1][(x2 >> 8) & 0xff] ^ ++ aes_table[2][(x3 >> 16) & 0xff] ^ aes_table[3][x0 >> 24]), ++ (aes_table[0][x0 & 0xff] ^ aes_table[1][(x1 >> 8) & 0xff] ^ ++ aes_table[2][(x2 >> 16) & 0xff] ^ aes_table[3][x3 >> 24])); ++ ++ return _mm_xor_si128(out, RoundKey); ++#endif ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // inverse mix columns ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & ++ 0x1b); // multiplying 'v' by 2 in GF(2^8) ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ // inverse mix columns ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ // sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A implementation */ ++ uint8_t v[16] = { ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 0)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 5)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 10)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 15)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 4)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 9)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 14)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 3)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 8)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 13)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 2)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 7)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 12)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 1)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 6)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 11)], ++ }; ++ ++ return vreinterpretq_m128i_u8(vld1q_u8(v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (int i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++#if defined(__aarch64__) ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ uint8x16_t v = vreinterpretq_u8_m128i(a); ++ uint8x16_t w; ++ ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ // multiplying 'v' by 2 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ return vreinterpretq_m128i_u8(w); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ vst1q_u8((uint8_t *) v, vreinterpretq_u8_m128i(a)); ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)); ++#endif ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++// ++// Emits the Advanced Encryption Standard (AES) instruction aeskeygenassist. ++// This instruction generates a round key for AES encryption. See ++// https://kazakov.life/2017/11/01/cryptocurrency-mining-on-ios-devices/ ++// for details. ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++#if defined(__aarch64__) ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); ++ uint8x16_t v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), _a); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), _a - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), _a - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), _a - 0xc0); ++ ++ uint32x4_t v_u32 = vreinterpretq_u32_u8(v); ++ uint32x4_t ror_v = vorrq_u32(vshrq_n_u32(v_u32, 8), vshlq_n_u32(v_u32, 24)); ++ uint32x4_t ror_xor_v = veorq_u32(ror_v, vdupq_n_u32(rcon)); ++ ++ return vreinterpretq_m128i_u32(vtrn2q_u32(v_u32, ror_xor_v)); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint32_t X1 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); ++ uint32_t X3 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); ++ for (int i = 0; i < 4; ++i) { ++ ((uint8_t *) &X1)[i] = _sse2neon_sbox[((uint8_t *) &X1)[i]]; ++ ((uint8_t *) &X3)[i] = _sse2neon_sbox[((uint8_t *) &X3)[i]]; ++ } ++ return _mm_set_epi32(((X3 >> 8) | (X3 << 24)) ^ rcon, X3, ++ ((X1 >> 8) | (X1 << 24)) ^ rcon, X1); ++#endif ++} ++#undef SSE2NEON_AES_SBOX ++#undef SSE2NEON_AES_RSBOX ++ ++#if defined(__aarch64__) ++#undef SSE2NEON_XT ++#undef SSE2NEON_MULTIPLY ++#endif ++ ++#else /* __ARM_FEATURE_CRYPTO */ ++// Implements equivalent of 'aesenc' by combining AESE (with an empty key) and ++// AESMC and then manually applying the real key as an xor operation. This ++// unfortunately means an additional xor op; the compiler should be able to ++// optimize this away for repeated calls however. See ++// https://blog.michaelbrase.com/2018/05/08/emulating-x86-aes-intrinsics-on-armv8-a ++// for more details. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesmcq_u8(vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(b))); ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesimcq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return _mm_xor_si128(vreinterpretq_m128i_u8(vaeseq_u8( ++ vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ RoundKey); ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8( ++ veorq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++ return vreinterpretq_m128i_u8(vaesimcq_u8(vreinterpretq_u8_m128i(a))); ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst." ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++ // AESE does ShiftRows and SubBytes on A ++ uint8x16_t u8 = vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)); ++ ++#ifndef _MSC_VER ++ uint8x16_t dest = { ++ // Undo ShiftRows step from AESE and extract X1 and X3 ++ u8[0x4], u8[0x1], u8[0xE], u8[0xB], // SubBytes(X1) ++ u8[0x1], u8[0xE], u8[0xB], u8[0x4], // ROT(SubBytes(X1)) ++ u8[0xC], u8[0x9], u8[0x6], u8[0x3], // SubBytes(X3) ++ u8[0x9], u8[0x6], u8[0x3], u8[0xC], // ROT(SubBytes(X3)) ++ }; ++ uint32x4_t r = {0, (unsigned) rcon, 0, (unsigned) rcon}; ++ return vreinterpretq_m128i_u8(dest) ^ vreinterpretq_m128i_u32(r); ++#else ++ // We have to do this hack because MSVC is strictly adhering to the CPP ++ // standard, in particular C++03 8.5.1 sub-section 15, which states that ++ // unions must be initialized by their first member type. ++ ++ // As per the Windows ARM64 ABI, it is always little endian, so this works ++ __n128 dest{ ++ ((uint64_t) u8.n128_u8[0x4] << 0) | ((uint64_t) u8.n128_u8[0x1] << 8) | ++ ((uint64_t) u8.n128_u8[0xE] << 16) | ++ ((uint64_t) u8.n128_u8[0xB] << 24) | ++ ((uint64_t) u8.n128_u8[0x1] << 32) | ++ ((uint64_t) u8.n128_u8[0xE] << 40) | ++ ((uint64_t) u8.n128_u8[0xB] << 48) | ++ ((uint64_t) u8.n128_u8[0x4] << 56), ++ ((uint64_t) u8.n128_u8[0xC] << 0) | ((uint64_t) u8.n128_u8[0x9] << 8) | ++ ((uint64_t) u8.n128_u8[0x6] << 16) | ++ ((uint64_t) u8.n128_u8[0x3] << 24) | ++ ((uint64_t) u8.n128_u8[0x9] << 32) | ++ ((uint64_t) u8.n128_u8[0x6] << 40) | ++ ((uint64_t) u8.n128_u8[0x3] << 48) | ++ ((uint64_t) u8.n128_u8[0xC] << 56)}; ++ ++ dest.n128_u32[1] = dest.n128_u32[1] ^ rcon; ++ dest.n128_u32[3] = dest.n128_u32[3] ^ rcon; ++ ++ return dest; ++#endif ++} ++#endif ++ ++/* Others */ ++ ++// Perform a carry-less multiplication of two 64-bit integers, selected from a ++// and b according to imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clmulepi64_si128 ++FORCE_INLINE __m128i _mm_clmulepi64_si128(__m128i _a, __m128i _b, const int imm) ++{ ++ uint64x2_t a = vreinterpretq_u64_m128i(_a); ++ uint64x2_t b = vreinterpretq_u64_m128i(_b); ++ switch (imm & 0x11) { ++ case 0x00: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_low_u64(b))); ++ case 0x01: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_low_u64(b))); ++ case 0x10: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_high_u64(b))); ++ case 0x11: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_high_u64(b))); ++ default: ++ abort(); ++ } ++} ++ ++FORCE_INLINE unsigned int _sse2neon_mm_get_denormals_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_DENORMALS_ZERO_ON : _MM_DENORMALS_ZERO_OFF; ++} ++ ++// Count the number of bits set to 1 in unsigned 32-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u32 ++FORCE_INLINE int _mm_popcnt_u32(unsigned int a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcount) ++ return __builtin_popcount(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits(a); ++#else ++ return (int) vaddlv_u8(vcnt_u8(vcreate_u8((uint64_t) a))); ++#endif ++#else ++ uint32_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ ++ vst1_u32(&count, count32x2_val); ++ return count; ++#endif ++} ++ ++// Count the number of bits set to 1 in unsigned 64-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u64 ++FORCE_INLINE int64_t _mm_popcnt_u64(uint64_t a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcountll) ++ return __builtin_popcountll(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits64(a); ++#else ++ return (int64_t) vaddlv_u8(vcnt_u8(vcreate_u8(a))); ++#endif ++#else ++ uint64_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ uint64x1_t count64x1_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ count64x1_val = vpaddl_u32(count32x2_val); ++ vst1_u64(&count, count64x1_val); ++ return count; ++#endif ++} ++ ++FORCE_INLINE void _sse2neon_mm_set_denormals_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_DENORMALS_ZERO_MASK) == _MM_DENORMALS_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Return the current 64-bit value of the processor's time-stamp counter. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=rdtsc ++FORCE_INLINE uint64_t _rdtsc(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t val; ++ ++ /* According to ARM DDI 0487F.c, from Armv8.0 to Armv8.5 inclusive, the ++ * system counter is at least 56 bits wide; from Armv8.6, the counter ++ * must be 64 bits wide. So the system counter could be less than 64 ++ * bits wide and it is attributed with the flag 'cap_user_time_short' ++ * is true. ++ */ ++#if defined(_MSC_VER) ++ val = _ReadStatusReg(ARM64_SYSREG(3, 3, 14, 0, 2)); ++#else ++ __asm__ __volatile__("mrs %0, cntvct_el0" : "=r"(val)); ++#endif ++ ++ return val; ++#else ++ uint32_t pmccntr, pmuseren, pmcntenset; ++ // Read the user mode Performance Monitoring Unit (PMU) ++ // User Enable Register (PMUSERENR) access permissions. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c14, 0" : "=r"(pmuseren)); ++ if (pmuseren & 1) { // Allows reading PMUSERENR for user mode code. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c12, 1" : "=r"(pmcntenset)); ++ if (pmcntenset & 0x80000000UL) { // Is it counting? ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c13, 0" : "=r"(pmccntr)); ++ // The counter is set up to count every 64th cycle ++ return (uint64_t) (pmccntr) << 6; ++ } ++ } ++ ++ // Fallback to syscall as we can't enable PMUSERENR in user mode. ++ struct timeval tv; ++ gettimeofday(&tv, NULL); ++ return (uint64_t) (tv.tv_sec) * 1000000 + tv.tv_usec; ++#endif ++} ++ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma pop_macro("ALIGN_STRUCT") ++#pragma pop_macro("FORCE_INLINE") ++#pragma pop_macro("FORCE_INLINE_OPTNONE") ++#endif ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma GCC pop_options ++#endif ++ ++#endif From 260ab1cb1eb7438bc4e3c0bbb86c88cb4839e790 Mon Sep 17 00:00:00 2001 From: Heru Handika <44328036+hhandika@users.noreply.github.com> Date: Thu, 11 Jul 2024 19:04:14 -0500 Subject: [PATCH 0520/1514] Add recipe for SEGUL (#49161) * Add segul recipe. * Add more platforms. * Clean unused variables. * Add run export and build number. * Reset build number. --- recipes/segul/build.sh | 4 ++++ recipes/segul/meta.yaml | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 recipes/segul/build.sh create mode 100644 recipes/segul/meta.yaml diff --git a/recipes/segul/build.sh b/recipes/segul/build.sh new file mode 100644 index 0000000000000..cfda5a2313ece --- /dev/null +++ b/recipes/segul/build.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +RUST_BACKTRACE=1 +cargo install --no-track --verbose --root "${PREFIX}" --path . \ No newline at end of file diff --git a/recipes/segul/meta.yaml b/recipes/segul/meta.yaml new file mode 100644 index 0000000000000..533dbc3be7fad --- /dev/null +++ b/recipes/segul/meta.yaml @@ -0,0 +1,36 @@ +{% set version = "0.21.3" %} + +package: + name: segul + version: '{{ version }}' + +source: + url: https://github.com/hhandika/segul/archive/refs/tags/v{{ version }}.tar.gz + sha256: 099ce274900bddadac4cf6a917ad34712551f11f6412ca89b315dec881462b47 + +build: + number: 0 + run_exports: + - {{ pin_subpackage('segul', max_pin="x.x") }} + +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('rust') }} + +test: + commands: + - segul --help + +about: + home: https://github.com/hhandika/segul + license: MIT + license_family: MIT + summary: An ultrafast and memory efficient tool for phylogenomics + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 + recipe-maintainers: + - hhandika From baf365deccf22117b5bd217c273ab637582d7c70 Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Fri, 12 Jul 2024 02:07:45 +0200 Subject: [PATCH 0521/1514] Fix pathphynder (#49162) * pathphynder: add linux-aarch64 build * Get the reamining function files and patch to point to this * Update further hardcoded files and required data files * Update recipes/pathphynder/meta.yaml --- recipes/pathphynder/build.sh | 3 ++- recipes/pathphynder/meta.yaml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/pathphynder/build.sh b/recipes/pathphynder/build.sh index 492598857ae17..4225b4c2ea035 100644 --- a/recipes/pathphynder/build.sh +++ b/recipes/pathphynder/build.sh @@ -1,6 +1,7 @@ #!/bin/bash mkdir -p $PREFIX/lib/R/library/pathphynder -cp -r R/ data/ $PREFIX/lib/R/library/pathphynder +cp -r R/ data/ inst/ $PREFIX/lib/R/library/pathphynder sed -i "s#^packpwd<-.*\+\$#packpwd<-'$PREFIX/lib/R/library/pathphynder/R'#g" pathPhynder.R +sed -i "s#^packpwd<-.*\+\$#packpwd<-'$PREFIX/lib/R/library/pathphynder/R'#g" $PREFIX/lib/R/library/pathphynder/R/{pileup_and_filter,addAncToTree,chooseBestPath,assign_noNA,functions_pathPhynder,pathPhynder_likelihood_runner}.R cp pathPhynder.R $PREFIX/bin/pathPhynder diff --git a/recipes/pathphynder/meta.yaml b/recipes/pathphynder/meta.yaml index b855b661f24ef..7a6159c41ce7e 100644 --- a/recipes/pathphynder/meta.yaml +++ b/recipes/pathphynder/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 2 + number: 3 noarch: generic run_exports: - {{ pin_subpackage( 'pathphynder', max_pin='x.x') }} From 3065b3b1f4594c8cd69224717ed2ea9e87495346 Mon Sep 17 00:00:00 2001 From: Victor Lin <13424970+victorlin@users.noreply.github.com> Date: Thu, 11 Jul 2024 17:23:20 -0700 Subject: [PATCH 0522/1514] Update augur to 25.1.0 (#49165) * Add nextstrain-bot to list of maintainers This notifies the entire team for updates. Ideally we'd tag @nextstrain/core but I don't think that's supported. * Update augur to 25.1.0 Includes dependency updates. --- recipes/augur/meta.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/recipes/augur/meta.yaml b/recipes/augur/meta.yaml index a51ee5db52933..b18f7ca81a874 100644 --- a/recipes/augur/meta.yaml +++ b/recipes/augur/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "25.0.0" %} +{% set version = "25.1.0" %} package: name: augur @@ -6,7 +6,7 @@ package: source: url: https://github.com/nextstrain/augur/releases/download/{{ version }}/nextstrain_augur-{{ version }}.tar.gz - sha256: 0df074847933a89a948461ea439062b78ff3c80f2d71f65efc7094fbda6a98b6 + sha256: cc75d9c7b4cda380f4f6bf9d2ae00b9e197e883ebc351358971094767db540c0 build: number: 0 @@ -29,14 +29,14 @@ requirements: - importlib_resources >=5.3.0 # [py<311] - isodate >=0.6.0,<0.7 - jsonschema >=3.0.0,<4 - - networkx >=2.5,<3 + - networkx >=2.5,<4 - numpy >=1.0.0,<2 - packaging >=19.2 - pandas >=1.0.0,<2 - pyfastx >=1.0.0,<3 - scipy >=1.0.0,<2 - treetime >=0.11.2,<0.12 - - xopen[zstd] >=1.7.0,<2 + - xopen[zstd] >=1.7.0,<3 - fasttree - iqtree @@ -61,6 +61,7 @@ extra: identifiers: - doi:10.21105/joss.02906 recipe-maintainers: + - nextstrain-bot - huddlej - tsibley - victorlin From a9697c6c8d686130e5a55130571b0e2ab3b1a67f Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Fri, 12 Jul 2024 02:55:15 +0200 Subject: [PATCH 0523/1514] [skip ci] Add supported architectures to readme (#49164) --------- Co-authored-by: John Marshall --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 046ac7a353fcc..3d33a595046a4 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,8 @@ [Conda](http://anaconda.org) is a platform- and language-independent package manager that supports easy distribution, installation and version management of software. The [bioconda channel](https://anaconda.org/bioconda) is a Conda -channel providing bioinformatics related packages for **Linux** and **Mac OS**. +channel providing bioinformatics related packages for **Linux** and **macOS**, +supporting both x86_64 and aarch64/arm64 architectures. This repository hosts the corresponding recipes. ## User guide From 01b5f710b78c078a89354a4b710868385c34c5b1 Mon Sep 17 00:00:00 2001 From: Amine Ghozlane Date: Fri, 12 Jul 2024 07:08:34 +0200 Subject: [PATCH 0524/1514] Fix version for bcftools (#48916) * Fix version for bcftools * bump build number --------- Co-authored-by: mencian --- recipes/meteor/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/meteor/meta.yaml b/recipes/meteor/meta.yaml index 79252b893256f..fbc183ab78ca8 100644 --- a/recipes/meteor/meta.yaml +++ b/recipes/meteor/meta.yaml @@ -12,7 +12,7 @@ source: build: noarch: python - number: 0 + number: 1 script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv entry_points: - meteor = meteor.meteor:main @@ -34,7 +34,7 @@ requirements: - packaging - cogent3 - biom-format - - bcftools + - bcftools >=1.19 - raxml-ng >=1.0.1 - bedtools >=2.18.0 From d1be79650eea526b10ed8717c58dd3bbd4ecd2c1 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 12 Jul 2024 09:15:34 +0300 Subject: [PATCH 0525/1514] breseq: add aarch64/arm64 support (#49129) Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/breseq/build.sh | 2 +- recipes/breseq/meta.yaml | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/recipes/breseq/build.sh b/recipes/breseq/build.sh index a25b244ba0759..f1db83897d20e 100644 --- a/recipes/breseq/build.sh +++ b/recipes/breseq/build.sh @@ -1,5 +1,5 @@ #!/bin/bash set -eux ./configure --prefix=$PREFIX -make +make -j ${CPU_COUNT} make install diff --git a/recipes/breseq/meta.yaml b/recipes/breseq/meta.yaml index 50da315f59f83..16e27485c1fd7 100644 --- a/recipes/breseq/meta.yaml +++ b/recipes/breseq/meta.yaml @@ -9,7 +9,7 @@ source: sha256: "39b35e246ecd2b497c82a99765ca4d78a0400bc4a7518b7506b140229ccc0247" build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('breseq', max_pin="x.x") }} @@ -39,3 +39,8 @@ about: summary: A computational pipeline for finding mutations relative to a reference sequence in short-read DNA re-sequencing data. doc_url: "https://barricklab.org/twiki/pub/Lab/ToolsBacterialGenomeResequencing/documentation/" + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From a28e1530be6527cb3d79af98ee30ec68e0295998 Mon Sep 17 00:00:00 2001 From: SantaMcCloud <100047964+SantaMcCloud@users.noreply.github.com> Date: Fri, 12 Jul 2024 08:22:05 +0200 Subject: [PATCH 0526/1514] Add new recipe gtdb_to_taxdump (#49163) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add new recipe gtdb_to_taxdump * Update recipes/gtdb_to_taxdump/meta.yml --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Co-authored-by: Björn Grüning --- recipes/gtdb_to_taxdump/meta.yml | 37 ++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 recipes/gtdb_to_taxdump/meta.yml diff --git a/recipes/gtdb_to_taxdump/meta.yml b/recipes/gtdb_to_taxdump/meta.yml new file mode 100644 index 0000000000000..7316bee1b4239 --- /dev/null +++ b/recipes/gtdb_to_taxdump/meta.yml @@ -0,0 +1,37 @@ +{% set name = "gtdb_to_taxdump" %} +{% set version = "0.1.9" %} +{% set sha256 = "28c6d1b05892514ac79ce7017ac7c132e9d51fe6ce54b5a05fdfec2fb2a5e6d1" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz + sha256: {{ sha256 }} + +build: + noarch: python + number: 0 + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + +requirements: + host: + - pip + - python + run: + - networkx + - python + - tqdm + +test: + imports: + - bin + - gtdb2td + +about: + home: https://github.com/nick-youngblut/gtdb_to_taxdump + license: MIT + license_family: MIT + license_file: LICENSE + summary: "GTDB database utility scripts" \ No newline at end of file From c696e1470077bc0724ca2e6b7802a9ae4ddc124c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 02:49:30 -0400 Subject: [PATCH 0527/1514] Update singlem to 0.18.1 (#49170) --- recipes/singlem/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/singlem/meta.yaml b/recipes/singlem/meta.yaml index 3bea0b9ccd9e9..1c153812c5c68 100644 --- a/recipes/singlem/meta.yaml +++ b/recipes/singlem/meta.yaml @@ -1,5 +1,5 @@ {% set name = "singlem" %} -{% set version = "0.18.0" %} +{% set version = "0.18.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 8ed4039e27274522a3313a079e064c2988d2a28ad008acffcca565775f8b4a93 + sha256: ab66c8d6f6ec712140f9f1b839c58fec33e5741437866ed7af6459af3188834e build: number: 0 From cb54d681acd846860ea631268be0272fdd4ece87 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 05:12:05 -0400 Subject: [PATCH 0528/1514] Update superdsm to 0.3.0 (#49172) --- recipes/superdsm/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/superdsm/meta.yaml b/recipes/superdsm/meta.yaml index 2cd31150b245f..d1a32ebbd7551 100644 --- a/recipes/superdsm/meta.yaml +++ b/recipes/superdsm/meta.yaml @@ -1,5 +1,5 @@ {% set name = "SuperDSM" %} -{% set version = "0.2.0" %} +{% set version = "0.3.0" %} {% set repo_url = "https://github.com/BMCV/SuperDSM" %} {% set docs_url = "https://superdsm.readthedocs.io" %} @@ -9,7 +9,7 @@ package: source: url: "{{ repo_url }}/archive/refs/tags/v{{ version }}.zip" - sha256: 9e9365f8df6e925851dd2bf2adeb71cdb52a6d20c775b1da4c7d8e641a02f8d7 + sha256: 45907ac09bd6fc150bce816194a1d09cccab42b02a418b9387e00bcb89e0ba3f build: number: 0 From e087d938e20c1d77f6e2d576b79c4f9fbf07a73f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 06:15:05 -0400 Subject: [PATCH 0529/1514] Update sdeper to 1.5.0 (#49174) --- recipes/sdeper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sdeper/meta.yaml b/recipes/sdeper/meta.yaml index 2eef50d20313f..11e612ac4b87f 100755 --- a/recipes/sdeper/meta.yaml +++ b/recipes/sdeper/meta.yaml @@ -1,6 +1,6 @@ # This is the recipe file to publish SDePER to Bioconda {% set name = "sdeper" %} -{% set version = "1.4.0" %} +{% set version = "1.5.0" %} package: name: "{{ name|lower }}" @@ -8,7 +8,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 535a938729c473a51093e75c2d5c2d6df4d0e0452274a49210f6b0c783820d6a + sha256: 43ad2e10fc85aadb821aaf106deee6769de9d45f4b530e204e5f1e18398eb0f1 build: number: 0 From 13aa5a78a0082a6bbed3dd25a60b9ce1b2f7b0e9 Mon Sep 17 00:00:00 2001 From: Roberto Rossini <71787608+robomics@users.noreply.github.com> Date: Fri, 12 Jul 2024 13:15:02 +0200 Subject: [PATCH 0530/1514] Enable osx-arm64 build (#49175) --- recipes/perl-digest-sha1/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/perl-digest-sha1/meta.yaml b/recipes/perl-digest-sha1/meta.yaml index 26ad2a3951131..bdf801fadae07 100644 --- a/recipes/perl-digest-sha1/meta.yaml +++ b/recipes/perl-digest-sha1/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 6 + number: 7 run_exports: - {{ pin_subpackage(name, max_pin="x") }} @@ -39,3 +39,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 From c1655363a630929f793fe2b7a846a4ea3b6b5608 Mon Sep 17 00:00:00 2001 From: Roberto Rossini <71787608+robomics@users.noreply.github.com> Date: Fri, 12 Jul 2024 14:07:19 +0200 Subject: [PATCH 0531/1514] Enable osx-arm64 build (#49177) --- recipes/pairix/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/pairix/meta.yaml b/recipes/pairix/meta.yaml index 93116f3be3a0b..873aa8e04a725 100644 --- a/recipes/pairix/meta.yaml +++ b/recipes/pairix/meta.yaml @@ -11,7 +11,7 @@ source: - src_Makefile.patch build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage('pairix', max_pin="x.x") }} @@ -46,3 +46,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 From 127cf1a35701ee0a808af57380d515d4865a5ef5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 08:09:19 -0400 Subject: [PATCH 0532/1514] Update ensembl-utils to 0.4.0 (#49178) --- recipes/ensembl-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ensembl-utils/meta.yaml b/recipes/ensembl-utils/meta.yaml index fb49fb8a4e522..1603d69fc8d76 100644 --- a/recipes/ensembl-utils/meta.yaml +++ b/recipes/ensembl-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ensembl-utils" %} -{% set version = "0.3.0" %} +{% set version = "0.4.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/ensembl_utils-{{ version }}.tar.gz - sha256: e62889b35e1d000eb6beea6234eb082cce399423e10246b8a0f913fd27547275 + sha256: e21ee25f201d2b653fbd1c0d007ddc0e3a51f44e6b519738d19fdbebf155a29b build: entry_points: From 659dcb2ecd6f5b5d762119e0146245e9e1502d7d Mon Sep 17 00:00:00 2001 From: Johan Dahlberg Date: Fri, 12 Jul 2024 17:12:08 +0200 Subject: [PATCH 0533/1514] Update pixelator to 0.18.1 (#49193) Co-authored-by: BiocondaBot <47040946+BiocondaBot@users.noreply.github.com> --- recipes/pixelator/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pixelator/meta.yaml b/recipes/pixelator/meta.yaml index e9c3bc24d2e7e..d7d7c79822644 100644 --- a/recipes/pixelator/meta.yaml +++ b/recipes/pixelator/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pixelator" %} {% set pypi_name = "pixelgen-pixelator" %} -{% set version = "0.17.1" %} +{% set version = "0.18.1" %} package: name: {{ name|lower }} @@ -8,7 +8,7 @@ package: source: url: https://pypi.io/packages/source/{{ pypi_name[0] }}/{{ pypi_name }}/pixelgen_pixelator-{{ version }}.tar.gz - sha256: 01acdd9bc3f9c016b3cfa6f707ce50e2f6dd452db1fa14348be762ff9b293ba2 + sha256: 1a36b3de15ec8729f01d3950e9c8ca42657d2f3d62f8a13cb71958e617231275 build: entry_points: @@ -30,7 +30,7 @@ requirements: - click - yapf - cutadapt >=4.2 - - umi_tools <=1.1.4 + - umi_tools >=1.1.4,<2.0.0 - pyfastx - yappi - pandas >=2.0.0,<3.0.0 From e46e2b046c0a6c3f5567d69df38d26f3cb27a7e5 Mon Sep 17 00:00:00 2001 From: Clemens Schmid Date: Fri, 12 Jul 2024 17:16:09 +0200 Subject: [PATCH 0534/1514] Update poseidon-trident to 1.5.4.0 (#49183) * trident version update and osx-arm64 support (experimental) * Fix faulty platform tags * found the pre-processing selector documentation --------- Co-authored-by: James A. Fellows Yates --- recipes/poseidon-trident/meta.yaml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/recipes/poseidon-trident/meta.yaml b/recipes/poseidon-trident/meta.yaml index fd463710cff8c..12b4892d889dc 100644 --- a/recipes/poseidon-trident/meta.yaml +++ b/recipes/poseidon-trident/meta.yaml @@ -1,13 +1,17 @@ -{% set version = "1.5.0.1" %} +{% set version = "1.5.4.0" %} package: name: poseidon-trident version: {{ version }} +# documentation of preprocessing selectors: +# https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#preprocessing-selectors source: - url: https://github.com/poseidon-framework/poseidon-hs/releases/download/v{{ version }}/trident-conda-linux # [linux] - md5: 71815ecd30b082610ca738130f04c933 # [linux] - - url: https://github.com/poseidon-framework/poseidon-hs/releases/download/v{{ version }}/trident-macOS-X64 # [osx] - md5: c7ce4930a046ee832b37558ed5799c8b # [osx] + md5: 626dc6fde74f532e505bdded4742886f # [linux] + - url: https://github.com/poseidon-framework/poseidon-hs/releases/download/v{{ version }}/trident-macOS-X64 # [osx and x86_64] + md5: 88fc51b50a17cf3c05e66f0a4e701d03 # [osx and x86_64] + - url: https://github.com/poseidon-framework/poseidon-hs/releases/download/v{{ version }}/trident-macOS-ARM64 # [osx and arm64] + md5: 0cc0186736b8a3d380e23bfa242f9a98 # [osx and arm64] build: number: 0 @@ -37,3 +41,7 @@ about: home: https://www.poseidon-adna.org/#/ license: MIT summary: "A tool (trident) to work with modular genotype databases formatted using Poseidon." + +extra: + additional-platforms: + - osx-arm64 From 10ee22b9cc93a2d425fe4d452571447670374ff6 Mon Sep 17 00:00:00 2001 From: Roberto Rossini <71787608+robomics@users.noreply.github.com> Date: Fri, 12 Jul 2024 17:29:09 +0200 Subject: [PATCH 0535/1514] Enable osx-arm64 build (#49157) --- recipes/hictk/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/hictk/meta.yaml b/recipes/hictk/meta.yaml index 81caca7eeab03..e0bfbfc37556e 100644 --- a/recipes/hictk/meta.yaml +++ b/recipes/hictk/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('hictk', max_pin='x') }} @@ -100,3 +100,4 @@ extra: - doi:10.5281/zenodo.8214221 additional-platforms: - linux-aarch64 + - osx-arm64 From 0f1da9f5acb2854f3b778f6c87bdfc92437236e7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 11:31:33 -0400 Subject: [PATCH 0536/1514] Update pbstarphase to 0.11.2 (#49196) --- recipes/pbstarphase/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pbstarphase/meta.yaml b/recipes/pbstarphase/meta.yaml index b83581511286e..91913c767158b 100644 --- a/recipes/pbstarphase/meta.yaml +++ b/recipes/pbstarphase/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pbstarphase" %} -{% set version = "0.11.1" %} -{% set sha256 = "49d5290663d21f2b7a5539a28288b7f84b31e621b8316ef31ee5b1ced5d19dc4" %} +{% set version = "0.11.2" %} +{% set sha256 = "ab6ecd08d78891de95f3d2e0dd2cd258e146bc253fd737cfcf6fef78b8704b92" %} package: name: {{ name }} From 5635e1a43ba77303f5ba7d6e9c508f764ea27b29 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 11:38:52 -0400 Subject: [PATCH 0537/1514] Update cyvcf2 to 0.31.1 (#48571) * Update cyvcf2 to 0.31.1 * edit numpy pinning * add script_env Co-authored-by: Arya Massarat <23412689+aryarm@users.noreply.github.com> * edit numpy dependency Co-authored-by: Arya Massarat <23412689+aryarm@users.noreply.github.com> --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Co-authored-by: mencian Co-authored-by: Arya Massarat <23412689+aryarm@users.noreply.github.com> --- recipes/cyvcf2/meta.yaml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/recipes/cyvcf2/meta.yaml b/recipes/cyvcf2/meta.yaml index d0e9ab1d3863f..139cbd9408afd 100644 --- a/recipes/cyvcf2/meta.yaml +++ b/recipes/cyvcf2/meta.yaml @@ -1,6 +1,6 @@ {% set name = "cyvcf2" %} -{% set version = "0.31.0" %} -{% set sha256 = "1480091ad055e8715e8fbbd9a93f3c10655d87a1716ffd122657f42355a23ea4" %} +{% set version = "0.31.1" %} +{% set sha256 = "00bd0e09a3719d29fbc02bc8a40a690ac2c475e91744648750907d1816558fc5" %} package: name: {{ name }} @@ -14,8 +14,11 @@ source: - patches/setup.py.patch build: - number: 1 + number: 0 + skip: True # [py < 37] script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv + script_env: + - CFLAGS=-Wno-implicit-function-declaration -Wno-int-conversion # [osx and py == 38] entry_points: - cyvcf2 = cyvcf2.__main__:cli run_exports: @@ -35,7 +38,8 @@ requirements: - zlib - htslib >=1.10 - openssl - - numpy + - numpy >=2.0.0 # [py >= 39] + - numpy # [py < 39] run: - python - coloredlogs From 0c75d1e5b820ce6e1875f9a7ba2b3bfa9a16d6fc Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 11:39:08 -0400 Subject: [PATCH 0538/1514] Update pastml to 1.9.45 (#49187) --- recipes/pastml/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pastml/meta.yaml b/recipes/pastml/meta.yaml index b2a90ab3529f6..4c9984e30e767 100644 --- a/recipes/pastml/meta.yaml +++ b/recipes/pastml/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pastml" %} -{% set version = "1.9.43" %} +{% set version = "1.9.45" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 04307d153b92b7b25b8ddda49ff388884b9e5fd394856b256a459b497af02f82 + sha256: 5ec0896b5e434f586c3a1fdd676d588a33b3d6e85a7df55c2fde8eebef895fcf build: number: 0 From 4eb9029a233ae2a81a810453ba0741d95ddc6159 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 11:40:04 -0400 Subject: [PATCH 0539/1514] Update pybiolib to 1.1.2232 (#49192) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index 29d676aa3744e..519a97ec219ac 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.1.2229" %} +{% set version = "1.1.2232" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 8a3aa7329e7fd8fcef92d63a41af96785e160557228648a2b5cdf0d28114a204 + sha256: 531a56ea78eecdc357c0cf02b68a77c4acef69ad2edc553dad3a6e36c3e24184 build: noarch: python From 6f6e40022f63fcda7b0fa5af8984f229845f572a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 11:40:28 -0400 Subject: [PATCH 0540/1514] Update ebi-eva-common-pyutils to 0.6.8 (#49195) --- recipes/ebi-eva-common-pyutils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ebi-eva-common-pyutils/meta.yaml b/recipes/ebi-eva-common-pyutils/meta.yaml index c40859c6cea78..b81c865455d4c 100644 --- a/recipes/ebi-eva-common-pyutils/meta.yaml +++ b/recipes/ebi-eva-common-pyutils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ebi-eva-common-pyutils" %} -{% set version = "0.6.7" %} +{% set version = "0.6.8" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/ebi_eva_common_pyutils-{{ version }}.tar.gz - sha256: 004cc04bcf6c484bcaceaffcd8842beeb01860e0e0325f15ba531921658f6679 + sha256: 91ec82a783ac8f5b3b9a2f3d998b99b0af02083bb3c7b8f7c56b37827d6631a5 build: script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation From 6c66569eef3e311920e9d87aeb43f9a6b793c0e1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 11:40:56 -0400 Subject: [PATCH 0541/1514] Update mgnify-pipelines-toolkit to 0.1.4 (#49197) --- recipes/mgnify-pipelines-toolkit/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mgnify-pipelines-toolkit/meta.yaml b/recipes/mgnify-pipelines-toolkit/meta.yaml index 3492e9374d6cf..35cb14a8d7e3a 100644 --- a/recipes/mgnify-pipelines-toolkit/meta.yaml +++ b/recipes/mgnify-pipelines-toolkit/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mgnify-pipelines-toolkit" %} -{% set version = "0.1.3" %} +{% set version = "0.1.4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mgnify_pipelines_toolkit-{{ version }}.tar.gz - sha256: d04f57d1ac719bc716d672de08c08eca35ce62d25d248dccf0269bda924388e2 + sha256: ad7862883b901b5aad2e542f0ff3ba86733a99e46d95abe8483b63c525a584bf build: entry_points: From a10b1dd28be139b8f64ca1c91c055e3c70249d3b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 11:44:16 -0400 Subject: [PATCH 0542/1514] Update alevin-fry to 0.10.0 (#49191) * Update alevin-fry to 0.10.0 * Update meta.yaml --------- Co-authored-by: Rob Patro --- recipes/alevin-fry/meta.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/recipes/alevin-fry/meta.yaml b/recipes/alevin-fry/meta.yaml index 4897b13e4470b..84b77ef7c5a42 100644 --- a/recipes/alevin-fry/meta.yaml +++ b/recipes/alevin-fry/meta.yaml @@ -1,17 +1,17 @@ -{% set version = "0.9.0" %} +{% set version = "0.10.0" %} package: name: alevin-fry version: {{ version }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage("alevin-fry", max_pin="x.x") }} source: - url: https://github.com/COMBINE-lab/alevin-fry/archive/v{{ version }}.tar.gz - sha256: 80fa964ba998c21dfd1190629015924e53d633be64cb8c8ee105bd7e3a33ac21 + url: https://github.com/COMBINE-lab/alevin-fry/releases/download/v{{ version }}/source.tar.gz + sha256: de525914fb7dac2cdb6f3b3f941ff65d32eeec719956f0108100c8a174f15bf8 #patches: # - use-libradicl-0.8.2.patch @@ -39,3 +39,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm From d3a80260a96b454d2af1fa69acf8954818015671 Mon Sep 17 00:00:00 2001 From: Kez Cleal <42997789+kcleal@users.noreply.github.com> Date: Fri, 12 Jul 2024 17:10:38 +0100 Subject: [PATCH 0543/1514] Update GW to v0.10.1 (#49190) * Update meta.yaml * Update meta.yaml * Update fix-linker-issues.patch * Update meta.yaml * Update and rename fix-ldflags.patch to fix-version.patch * Update meta.yaml * Update meta.yaml --- recipes/gw/fix-ldflags.patch | 5 ----- recipes/gw/fix-linker-issues.patch | 2 +- recipes/gw/fix-version.patch | 4 ++++ recipes/gw/meta.yaml | 6 +++--- 4 files changed, 8 insertions(+), 9 deletions(-) delete mode 100644 recipes/gw/fix-ldflags.patch create mode 100644 recipes/gw/fix-version.patch diff --git a/recipes/gw/fix-ldflags.patch b/recipes/gw/fix-ldflags.patch deleted file mode 100644 index a6ca9f35a7f78..0000000000000 --- a/recipes/gw/fix-ldflags.patch +++ /dev/null @@ -1,5 +0,0 @@ -+++ b/Makefile -@@ -55,1 +55,1 @@ -- LDFLAGS= -+ - diff --git a/recipes/gw/fix-linker-issues.patch b/recipes/gw/fix-linker-issues.patch index b8092058913e6..27ab2e2f7e8ca 100644 --- a/recipes/gw/fix-linker-issues.patch +++ b/recipes/gw/fix-linker-issues.patch @@ -2,4 +2,4 @@ +++ b/Makefile @@ -132,1 +132,1 @@ - $(CXX) $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) $(LDLIBS) -o $@ -+ $(CXX) $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) $(LDLIBS) -Wl,-rpath,$(PREFIX)/lib -Wl,-rpath-link,$(PREFIX)/lib -lxcb-glx -lxcb-dri2 -lexpat -o $@ ++ $(CXX) $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) $(LDLIBS) -Wl,-rpath,$(PREFIX)/lib -Wl,-rpath-link,$(PREFIX)/lib -o $@ diff --git a/recipes/gw/fix-version.patch b/recipes/gw/fix-version.patch new file mode 100644 index 0000000000000..963b5293eae99 --- /dev/null +++ b/recipes/gw/fix-version.patch @@ -0,0 +1,4 @@ ++++ b/src/term_out.cpp +@@ -1354,1 +1354,1 @@ +- const char* CURRENT_VERSION = "v0.10.0"; ++ const char* CURRENT_VERSION = "v0.10.1"; diff --git a/recipes/gw/meta.yaml b/recipes/gw/meta.yaml index ae43abb52a571..5346dd6421760 100644 --- a/recipes/gw/meta.yaml +++ b/recipes/gw/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "0.10.0" %} -{% set sha256 = "81d9a560152af6d1c45d90336c74ad051edb5ea29bab5b8791c323b1ed3ac608" %} +{% set version = "0.10.1" %} +{% set sha256 = "a864010d9ba329feb9211d554ea9c410f5bcc1e1462369bef56a8f5b8914f3d2" %} package: @@ -13,7 +13,7 @@ source: sha256: {{ sha256 }} patches: - fix-linker-issues.patch # [linux] - - fix-ldflags.patch + - fix-version.patch build: From 89d2e48a4c831fcee79d0e4e5aa34beab073bf9d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 12:58:44 -0400 Subject: [PATCH 0544/1514] Update pastml to 1.9.46 (#49202) --- recipes/pastml/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pastml/meta.yaml b/recipes/pastml/meta.yaml index 4c9984e30e767..18087182c28db 100644 --- a/recipes/pastml/meta.yaml +++ b/recipes/pastml/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pastml" %} -{% set version = "1.9.45" %} +{% set version = "1.9.46" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 5ec0896b5e434f586c3a1fdd676d588a33b3d6e85a7df55c2fde8eebef895fcf + sha256: cf127cb64693edf587dc3472de87c876d6603cf2215ca7b0bdf4d879df6223ff build: number: 0 From ca715191d33ab7c02b8bd145203bdd17caee7857 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 14:39:35 -0400 Subject: [PATCH 0545/1514] Update knotinframe to 2.3.0 (#49185) * Update knotinframe to 2.3.0 * add run_exports --------- Co-authored-by: mencian --- recipes/knotinframe/build.sh | 5 +++-- recipes/knotinframe/meta.yaml | 12 +++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/recipes/knotinframe/build.sh b/recipes/knotinframe/build.sh index 8f6aa07be8dcb..7102b23de6748 100644 --- a/recipes/knotinframe/build.sh +++ b/recipes/knotinframe/build.sh @@ -1,5 +1,6 @@ -#!/bin/sh +#!/bin/bash -euo + make PREFIX=$PREFIX CC=$CC -C Misc/Applications/Knotinframe all make PREFIX=$PREFIX CC=$CC -C Misc/Applications/Knotinframe install-program make PREFIX=$PREFIX CC=$CC -C Misc/Applications/lib install -chmod +x $PREFIX/bin/knotinframe* $PREFIX/bin/addRNA* +chmod 755 $PREFIX/bin/knotinframe* $PREFIX/bin/addRNA* diff --git a/recipes/knotinframe/meta.yaml b/recipes/knotinframe/meta.yaml index eadcddf4c285c..a4d765ab3bb01 100644 --- a/recipes/knotinframe/meta.yaml +++ b/recipes/knotinframe/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "2.2.14" %} -{% set sha256 = "da7371378e32b2329da226be79a11974fdc4e66fe0b664757b5aafe29e2e12d6" %} +{% set version = "2.3.0" %} +{% set sha256 = "e3d15d065148ed9dd25315868a31ec6c8a645d254a28ff2dcd01b23aed8b136d" %} package: name: knotinframe @@ -10,14 +10,15 @@ source: url: https://github.com/jlab/fold-grammars/archive/{{ version }}.tar.gz build: - number: 1 + number: 0 + run_exports: + - {{ pin_subpackage('knotinframe', max_pin="x") }} requirements: build: - make - {{ compiler('cxx') }} host: - - perl - bellmans-gapc >=2020.12.08 run: - perl @@ -29,7 +30,8 @@ test: about: home: https://bibiserv.cebitec.uni-bielefeld.de/knotinframe - license: 'GPLv3+' + license: 'GPL-3.0-or-later' + license_family: GPL3 license_file: LICENSE summary: 'Predicts -1 frameshift sites with simple pseudoknots' From 29eb06330a2b79d46f9bc401473c30d3ef5457eb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 14:39:44 -0400 Subject: [PATCH 0546/1514] Update icfree-ml to 2.3.3 (#49166) * Update icfree-ml to 2.3.3 * add pandas * add pydoe2 --------- Co-authored-by: mencian --- recipes/icfree-ml/meta.yaml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/recipes/icfree-ml/meta.yaml b/recipes/icfree-ml/meta.yaml index 4581510534a2c..20ac1de7e1a5b 100644 --- a/recipes/icfree-ml/meta.yaml +++ b/recipes/icfree-ml/meta.yaml @@ -1,18 +1,18 @@ {% set name = "icfree-ml" %} -{% set version = "2.3.2" %} +{% set version = "2.3.3" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://github.com/brsynth/icfree-ml/archive/refs/tags/2.3.2.tar.gz - sha256: e57f358a372f5f8b5040dca9c500c25be1e1594a73557cc5ae97bf7784aba384 + url: https://github.com/brsynth/icfree-ml/archive/refs/tags/2.3.3.tar.gz + sha256: c52b1baeb63a98ea54f2cd3e4cb96d3a94bbf7f95065c076938694eb8ecb5b17 build: - number: 1 + number: 0 noarch: python - script: {{ PYTHON }} -m pip install -vv . + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv run_exports: - {{ pin_subpackage(name, max_pin="x") }} @@ -25,6 +25,8 @@ requirements: - biopython - pysbol2 - blast + - pandas + - pydoe2 test: source_files: @@ -40,7 +42,9 @@ about: home: https://github.com/brsynth/icfree-ml summary: Design of experiments (DoE) and machine learning packages for the iCFree project license: MIT + license_family: MIT license_file: LICENSE + dev_url: https://github.com/brsynth/icfree-ml extra: recipe-maintainers: From 8dd7d19a688ae8f04ed5a94a0345c10f0683741c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 14:41:07 -0400 Subject: [PATCH 0547/1514] Update simpleaf to 0.17.2 (#49203) --- recipes/simpleaf/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/simpleaf/meta.yaml b/recipes/simpleaf/meta.yaml index 527f757ef3a3a..d482387fd8ef6 100644 --- a/recipes/simpleaf/meta.yaml +++ b/recipes/simpleaf/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.17.1" %} +{% set version = "0.17.2" %} package: name: simpleaf @@ -11,7 +11,7 @@ build: source: url: https://github.com/COMBINE-lab/simpleaf/archive/v{{ version }}.tar.gz - sha256: f7e2a3a187918b7d8c67b77ddd4cd2591cde4acb0ce5d27a5529de500a6ed396 + sha256: b6801cab11e8712b920b3d37fd838487c1dc25e41b933761dfe749030ed4cd33 requirements: build: From 9900a4d94e632ce15d9dba18ef4e5df8a465a71b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 14:47:05 -0400 Subject: [PATCH 0548/1514] Update snakemake-executor-plugin-slurm to 0.8.0 (#49205) --- recipes/snakemake-executor-plugin-slurm/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-executor-plugin-slurm/meta.yaml b/recipes/snakemake-executor-plugin-slurm/meta.yaml index ce9a2ccc62242..e8990b4fa0189 100644 --- a/recipes/snakemake-executor-plugin-slurm/meta.yaml +++ b/recipes/snakemake-executor-plugin-slurm/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-executor-plugin-slurm" %} -{% set version = "0.7.0" %} +{% set version = "0.8.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_executor_plugin_slurm-{{ version }}.tar.gz - sha256: 833ec3b7c990898ca72bf895ed0131a15deb3dfba7c490f965c98b4158125dce + sha256: 7d097267484a306de45db5bbc5d499f8cc044fd1b661d5af3f179f1e0318fe41 build: noarch: python From 4d31d7564135be0caefe66e18b83de4a3fc9db50 Mon Sep 17 00:00:00 2001 From: Anabella Trigila <18577080+atrigila@users.noreply.github.com> Date: Fri, 12 Jul 2024 16:13:56 -0300 Subject: [PATCH 0549/1514] Update checkqc to 4.0.4 (#49201) * update checkqc to 4.0.4 * add doc and dev url, fix typo --- recipes/checkqc/meta.yaml | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/recipes/checkqc/meta.yaml b/recipes/checkqc/meta.yaml index 1def5f9605dfb..5eb9c3ce6caa5 100644 --- a/recipes/checkqc/meta.yaml +++ b/recipes/checkqc/meta.yaml @@ -1,13 +1,14 @@ {% set name = "checkQC" %} -{% set version = "4.0.1" %} +{% set version = "4.0.4" %} +{% set sha256 = "26fdd9e649f25df757cacab2263b814df45cb2531e35850930df3c90183609cb" %} package: name: "{{ name|lower }}" version: "{{ version }}" source: - url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 03bc01d96d45c4c1a0e07d410a6f3ec74c0fab0f7125434ca3d983e70d4d568a + url: https://github.com/Molmed/checkQC/archive/refs/tags/v{{ version }}.tar.gz + sha256: {{ sha256 }} build: number: 0 @@ -15,9 +16,9 @@ build: entry_points: - checkqc = checkQC.app:start - checkqc-ws = checkQC.web_app:start - script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv" + script: "{{ PYTHON }} -m pip install . -vvv" run_exports: - - {{ pin_subpackage('checkqc', max_pin="x") }} + - {{ pin_subpackage('checkqc') }} requirements: host: @@ -26,11 +27,13 @@ requirements: run: - python >=3.6,<3.11 - click >=8.1.1 - - PyYAML >=6.0 + - pyyaml >=6.0 - illumina-interop >=1.2.4 - xmltodict >=0.13.0 - tornado >=6.3.2 - sample-sheet >=0.13.0 + - numpy >=1.26.4 + - pandas >=2.2.2 test: imports: @@ -43,7 +46,7 @@ test: about: home: "https://www.github.com/Molmed/checkQC" - license: GPL-3.0-or-later + license: GPLv3 license_family: GPL3 license_file: LICENSE summary: "A simple program to parse Illumina NGS data and check it for quality criteria." From 8e4195153ca089257e1c6f03525ab7544588da6d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 16:01:41 -0400 Subject: [PATCH 0550/1514] Update egglib to 3.3.3 (#49206) --- recipes/egglib/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/egglib/meta.yaml b/recipes/egglib/meta.yaml index 5faf68cd3fe00..330ef36687503 100644 --- a/recipes/egglib/meta.yaml +++ b/recipes/egglib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "egglib" %} -{% set version = "3.3.2" %} +{% set version = "3.3.3" %} package: name: "{{ name|lower }}" @@ -7,10 +7,10 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/EggLib-{{ version }}.zip - sha256: 596838f6504c5a0f7ae9da9fbe41a595c3113e27d764e1a09a9e8795ef79d056 + sha256: 8f788e1d40243a7e489c71a20581a5e842e0f49bca87096fcee572c087865fc2 build: - number: 1 + number: 0 skip: True # [py < 38 or osx] script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv entry_points: From 62bcdcbe3ef98da32932177898fbe1ab01f33666 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 17:30:05 -0400 Subject: [PATCH 0551/1514] Update pia to 1.5.4 (#49208) --- recipes/pia/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pia/meta.yaml b/recipes/pia/meta.yaml index 56d1fa38fc1d1..2801feec2b3fe 100644 --- a/recipes/pia/meta.yaml +++ b/recipes/pia/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pia" %} -{% set version = "1.5.3" %} -{% set sha256 = "424554ee668e120dada07d01bbf107d9edbb75bb6511278a5c6b724b5344586c" %} +{% set version = "1.5.4" %} +{% set sha256 = "a854e8c7132d6216e58e80a8c27f20f30c6720dfdaa6395d0f96293f37aa3ff8" %} package: name: {{ name|lower }} From 4c699f257c71cbd3495bb1f6ba3073d403fdd45a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 19:22:53 -0400 Subject: [PATCH 0552/1514] Update zol to 1.4.10 (#49211) * Update zol to 1.4.10 * Update meta.yaml --------- Co-authored-by: Rauf Salamzade --- recipes/zol/meta.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/recipes/zol/meta.yaml b/recipes/zol/meta.yaml index 503f5652016b7..b4ffee8842b54 100644 --- a/recipes/zol/meta.yaml +++ b/recipes/zol/meta.yaml @@ -1,5 +1,5 @@ {% set name = "zol" %} -{% set version = "1.4.9" %} +{% set version = "1.4.10" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: https://github.com/Kalan-Lab/zol/archive/refs/tags/v{{ version }}.tar.gz - sha256: b4a6a2f62bf9763de6b78ab0832a692696ac8250161998adc50677d829df1a7b + sha256: 5a147e00b400c09423f4739d6a5bae59d7d9007f4d56ad712ccf0c734147bc47 build: - number: 1 + number: 0 skip: True # [py <= 311] run_exports: - {{ pin_subpackage('zol', max_pin='x.x') }} @@ -27,7 +27,7 @@ requirements: - python >=3.10 - r-base - biopython - - muscle + - muscle >=5.0 - setuptools - mcl - pal2nal >=14.1 @@ -50,7 +50,7 @@ requirements: - r-cowplot - r-gggenes - r-gridextra - - skani + - skani >=0.2.2 - slclust - trimal - gzip From ebe5df33d3e8328be6942c1c3507cd690d35d90e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 12 Jul 2024 19:55:10 -0400 Subject: [PATCH 0553/1514] Update skder to 1.2.3 (#49213) --- recipes/skder/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/skder/meta.yaml b/recipes/skder/meta.yaml index b75f11cc4b5bc..c028bb34e45db 100644 --- a/recipes/skder/meta.yaml +++ b/recipes/skder/meta.yaml @@ -1,5 +1,5 @@ {% set name = "skder" %} -{% set version = "1.2.2" %} +{% set version = "1.2.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/raufs/skDER/archive/refs/tags/v{{ version }}.tar.gz - sha256: 13b7c9f900843d0cf5b1f06a9e89ace19cc9ba9eb7e360c5d2cfff290932988f + sha256: 3089d3a60f1007101208b4aa4678133b979590521a497f36eb54c673088790d5 build: number: 0 From cdce79929ea68b02f5b3160497148c5f56f37253 Mon Sep 17 00:00:00 2001 From: Rob Patro Date: Sat, 13 Jul 2024 12:57:13 -0400 Subject: [PATCH 0554/1514] Rebuild piscem (#49219) * Disable -march=native in conda build * Bump build number --- recipes/piscem/build.sh | 4 ++-- recipes/piscem/meta.yaml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/piscem/build.sh b/recipes/piscem/build.sh index 4f056176a5dcd..482a75a82dec1 100644 --- a/recipes/piscem/build.sh +++ b/recipes/piscem/build.sh @@ -26,12 +26,12 @@ if [ "$unamestr" == 'Darwin' ]; then # build statically linked binary with Rust -RUSTFLAGS="-C link-args=-Wl,-undefined,dynamic_lookup" RUST_BACKTRACE=1 cargo install -v -v -j 1 --verbose --root $PREFIX --path . +CONDA_BUILD=TRUE RUSTFLAGS="-C link-args=-Wl,-undefined,dynamic_lookup" RUST_BACKTRACE=1 cargo install -v -v -j 1 --verbose --root $PREFIX --path . else export CFLAGS="${CFLAGS} --param ggc-min-expand=20 --param ggc-min-heapsize=8192" export CXXFLAGS="${CXXFLAGS} --param ggc-min-expand=20 --param ggc-min-heapsize=8192" # build statically linked binary with Rust -RUSTFLAGS="-L $PREFIX/lib64" RUST_BACKTRACE=1 cargo install -v -v -j 1 --verbose --root $PREFIX --path . +CONDA_BUILD=TRUE RUSTFLAGS="-L $PREFIX/lib64" RUST_BACKTRACE=1 cargo install -v -v -j 1 --verbose --root $PREFIX --path . fi diff --git a/recipes/piscem/meta.yaml b/recipes/piscem/meta.yaml index 2cd86dcc2944b..fd687c2eb0479 100644 --- a/recipes/piscem/meta.yaml +++ b/recipes/piscem/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage("piscem", max_pin="x.x") }} From b97ca91822411a46cee4bb0e53707a4e69058a2c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 13 Jul 2024 14:44:17 -0400 Subject: [PATCH 0555/1514] Update aniclustermap to 1.4.0 (#49215) --- recipes/aniclustermap/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/aniclustermap/meta.yaml b/recipes/aniclustermap/meta.yaml index dd5865cca6efc..9791fa3232fea 100644 --- a/recipes/aniclustermap/meta.yaml +++ b/recipes/aniclustermap/meta.yaml @@ -1,5 +1,5 @@ {% set name = "aniclustermap" %} -{% set version = "1.3.0" %} +{% set version = "1.4.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/aniclustermap-{{ version }}.tar.gz - sha256: 67b909f1c987092b198227b2588ea4e634b6f46fe156f450a8d8741d0acd7bae + sha256: c0542543ee14801d448ad9aff1abc4d7c225f94dcae21601e7c4f93bf1b63f26 build: entry_points: From 34fe86fdff8a37cc36a99d8f678bb67b9066eb82 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 13 Jul 2024 14:44:29 -0400 Subject: [PATCH 0556/1514] Update fgpyo to 0.4.0 (#49220) --- recipes/fgpyo/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/fgpyo/meta.yaml b/recipes/fgpyo/meta.yaml index 724cfe8711b77..17701e4fdb277 100644 --- a/recipes/fgpyo/meta.yaml +++ b/recipes/fgpyo/meta.yaml @@ -1,5 +1,5 @@ {% set name = "fgpyo" %} -{% set version = "0.3.0" %} +{% set version = "0.4.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/fulcrumgenomics/{{ name }}/archive/refs/tags/{{ version }}.tar.gz - sha256: 787506e574166c9b2cec80f722db7caa2851d24b787cdd665fae1d42f8a9c9e0 + sha256: fd92a8417fb93f494667f49ef9540e379884180fe8867fea6eb06f56be5937f2 build: noarch: python From 5df9aa6e3205432f7a39df5a98cf445dd4ddffc8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 13 Jul 2024 14:44:36 -0400 Subject: [PATCH 0557/1514] Update knotinframe to 2.3.1 (#49217) --- recipes/knotinframe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/knotinframe/meta.yaml b/recipes/knotinframe/meta.yaml index a4d765ab3bb01..8d41154beb4a7 100644 --- a/recipes/knotinframe/meta.yaml +++ b/recipes/knotinframe/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "2.3.0" %} -{% set sha256 = "e3d15d065148ed9dd25315868a31ec6c8a645d254a28ff2dcd01b23aed8b136d" %} +{% set version = "2.3.1" %} +{% set sha256 = "bfa37ab7ec8b3709d04d69f2013e0e823f5aba116db21b79233336d2dd2771b0" %} package: name: knotinframe From 9d627d99e34bdf2a93b9268451a90f74548a8132 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 13 Jul 2024 14:44:52 -0400 Subject: [PATCH 0558/1514] Update phold to 0.2.0 (#49216) * Update phold to 0.2.0 * Update meta.yaml --------- Co-authored-by: George Bouras <84495559+gbouras13@users.noreply.github.com> --- recipes/phold/meta.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/recipes/phold/meta.yaml b/recipes/phold/meta.yaml index fd6985bdd47e0..666df73ea1284 100644 --- a/recipes/phold/meta.yaml +++ b/recipes/phold/meta.yaml @@ -1,5 +1,5 @@ {% set name = "phold" %} -{% set version = "0.1.4" %} +{% set version = "0.2.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 660283dae06b866a0b903d098252288a382cb2d72a8adcc1e9a5e38a5547d9b3 + sha256: 1e57d55a1a1626bddda07c201d2be0d7816c3df61f069a98acac59176b2c2ad5 build: number: 0 @@ -23,7 +23,7 @@ requirements: - python >=3.8,<3.12 - pip run: - - foldseek ==8.ef4e960 + - foldseek ==9.427df8a - python >=3.8,<3.12 - biopython >=1.76 - alive-progress >=3.0.1 @@ -40,6 +40,7 @@ requirements: - pytorch >=2.1.2 - numpy >=1.20 - pycirclize >=0.3.1 + - h5py >=3.5 From 96f27893e4595ad7d3d13307ef64d288d8939547 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 13 Jul 2024 14:45:23 -0400 Subject: [PATCH 0559/1514] Update gsearch to 0.2.0 (#49212) --- recipes/gsearch/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gsearch/meta.yaml b/recipes/gsearch/meta.yaml index 3149d4081ee0d..e55c87bf50f84 100644 --- a/recipes/gsearch/meta.yaml +++ b/recipes/gsearch/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.1.9" %} +{% set version = "0.2.0" %} package: name: gsearch @@ -11,7 +11,7 @@ build: skip: True # [osx] source: url: https://github.com/jianshu93/gsearch/archive/v{{ version }}.tar.gz - sha256: 21d87192f55a0826744e474c5e22add204b7d2b634bdc692d29ab88175a34c36 + sha256: eb535c1757667a61fb85469910ece55a4344c18c77e1b7013a22b050535d1531 requirements: build: From d873748e51bb1b4944ff614808ce88082a5801f0 Mon Sep 17 00:00:00 2001 From: Edmund Miller <20095261+edmundmiller@users.noreply.github.com> Date: Sat, 13 Jul 2024 15:47:05 -0500 Subject: [PATCH 0560/1514] Fix NARFMAP static build (#49189) * build: Add STATIC=1 * build: Add LD Library path * build: Lock down boost version to have static files * chore: Bump build number? * fix: Remove static build and add boost env variables * build: Remove hard coded boost versions https://github.com/bioconda/bioconda-recipes/pull/49189#pullrequestreview-2175876435 --- recipes/narfmap/build.sh | 4 ++++ recipes/narfmap/meta.yaml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/recipes/narfmap/build.sh b/recipes/narfmap/build.sh index a61afaac5bc31..99c92de8a6f32 100644 --- a/recipes/narfmap/build.sh +++ b/recipes/narfmap/build.sh @@ -1,3 +1,7 @@ +export LD_LIBRARY_PATH="${PREFIX}/lib" +export BOOST_INCLUDE_DIR="${PREFIX}/include" +export BOOST_LIBRARY_DIR="${PREFIX}/lib" + export HAS_GTEST=0 # fix build number in config diff --git a/recipes/narfmap/meta.yaml b/recipes/narfmap/meta.yaml index 633f583be5646..ed77a73e4c577 100644 --- a/recipes/narfmap/meta.yaml +++ b/recipes/narfmap/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 2 skip: True # [osx] run_exports: - {{ pin_subpackage("narfmap", max_pin="x") }} From 57b2016d2a92f4004a0255ecde19965e1f1009b1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 13 Jul 2024 17:29:44 -0400 Subject: [PATCH 0561/1514] Update mycotools to 0.31.37 (#49221) --- recipes/mycotools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index 33d32cea9238d..7a3c66d459929 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mycotools" %} -{% set version = "0.31.36" %} +{% set version = "0.31.37" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mycotools-{{ version }}.tar.gz - sha256: 58edb69ba33a12f7a27e1e013bb1f0377d9231f5e2672cae35a2205f0d71d112 + sha256: c8b5912f6209df8366c8fe694e18a288d9ccad52aaa7d2d19f384cbc1debcf65 build: entry_points: From ea38227bf8225473e125b53a2ba8be31cc74148a Mon Sep 17 00:00:00 2001 From: Cameron Lloyd Date: Sat, 13 Jul 2024 22:34:00 +0100 Subject: [PATCH 0562/1514] perbase: add osx-arm64 build (#49210) --- recipes/perbase/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/perbase/meta.yaml b/recipes/perbase/meta.yaml index 7831961fa6b61..e97ff9b77b19d 100644 --- a/recipes/perbase/meta.yaml +++ b/recipes/perbase/meta.yaml @@ -12,7 +12,7 @@ source: - perbase-aarch64.patch build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('perbase', max_pin="x.x") }} @@ -53,3 +53,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 From 9f62999489b4b6987120f74e977a33868a179305 Mon Sep 17 00:00:00 2001 From: Jianshu_Zhao <38149286+jianshu93@users.noreply.github.com> Date: Sat, 13 Jul 2024 17:34:47 -0400 Subject: [PATCH 0563/1514] Update gsearch v0.2.0 (#49209) --- recipes/gsearch/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/gsearch/meta.yaml b/recipes/gsearch/meta.yaml index e55c87bf50f84..45b11240f819f 100644 --- a/recipes/gsearch/meta.yaml +++ b/recipes/gsearch/meta.yaml @@ -17,7 +17,7 @@ requirements: build: - {{ compiler("cxx") }} - {{ compiler('c') }} - - rust >=1.39 + - rust >=1.60 - make - cmake From 568c152b06aeee9ac95cc4a45ccd0f575dc52892 Mon Sep 17 00:00:00 2001 From: s22chan Date: Sat, 13 Jul 2024 17:39:02 -0400 Subject: [PATCH 0564/1514] ncls: update osx-arm64 build (#47447) --- recipes/ncls/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ncls/meta.yaml b/recipes/ncls/meta.yaml index 7471a81ad188c..ec199e0d08771 100644 --- a/recipes/ncls/meta.yaml +++ b/recipes/ncls/meta.yaml @@ -10,8 +10,7 @@ source: sha256: 81aaa5abb123bb21797ed2f8ef921e20222db14a3ecbc61ccf447532f2b7ba93 build: - number: 3 - skip: true # [py2k or osx] + number: 4 script: {{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv run_exports: - {{ pin_subpackage(name, max_pin="x.x.x") }} @@ -41,6 +40,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 recipe-maintainers: - endrebak skip-lints: From f32542916757df7b43efc455f7946f05427a191e Mon Sep 17 00:00:00 2001 From: Carl Mathias Kobel Date: Sat, 13 Jul 2024 23:45:49 +0200 Subject: [PATCH 0565/1514] Update CompareM2 to v2.8.2 (#49194) --- recipes/comparem2/build.sh | 4 ++++ recipes/comparem2/meta.yaml | 7 ++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/recipes/comparem2/build.sh b/recipes/comparem2/build.sh index ec6073d16ee3c..322e1d799584d 100644 --- a/recipes/comparem2/build.sh +++ b/recipes/comparem2/build.sh @@ -13,3 +13,7 @@ cp -rf config docs dynamic_report profile resources tests workflow "${PACKAGE_HO # Make links ln -sf ${PACKAGE_HOME}/comparem2 ${PREFIX}/bin/comparem2 ln -sf ${PACKAGE_HOME}/comparem2 ${PREFIX}/bin/asscom2 # Legacy + +# This one is a hack until I fix Snakemake for good. +ln -sf ${PACKAGE_HOME}/resources/enable_passthrough_parameters.sh ${PREFIX}/bin/enable_passthrough_parameters_comparem2 + diff --git a/recipes/comparem2/meta.yaml b/recipes/comparem2/meta.yaml index 749d3fe7b00ca..abe3fd587efca 100644 --- a/recipes/comparem2/meta.yaml +++ b/recipes/comparem2/meta.yaml @@ -1,13 +1,13 @@ {% set name = "comparem2" %} -{% set version = "2.8.1" %} -{% set sha256 = "8e135f59d3dd48b9977374d30b2666ba8e4922ede1f0397e6a0cae0ff1f9bb92" %} +{% set version = "2.8.2" %} +{% set sha256 = "181b341077d3e2cc86758620475dc4f79dffd9646f182dd30558b852bbffa92d" %} package: name: {{ name }} version: {{ version }} source: - url: https://github.com/cmkobel/comparem2/archive/refs/tags/v{{ version }}.tar.gz + url: https://github.com/cmkobel/CompareM2/archive/refs/tags/v{{ version }}.tar.gz sha256: {{ sha256 }} build: @@ -23,6 +23,7 @@ requirements: - python <3.12 - mamba # Necessary for snakemake to install child environments during development. - pandas + test: commands: From 4e537593d33c386eaf24b9ccbc55b266c45a70c7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 13 Jul 2024 17:49:39 -0400 Subject: [PATCH 0566/1514] Update vcfsim to 1.0.12.alpha (#49222) --- recipes/vcfsim/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/vcfsim/meta.yaml b/recipes/vcfsim/meta.yaml index 5a7af5429f034..00ad1f01fbe82 100644 --- a/recipes/vcfsim/meta.yaml +++ b/recipes/vcfsim/meta.yaml @@ -1,5 +1,5 @@ {% set name = "vcfsim" %} -{% set version = "1.0.11.alpha" %} +{% set version = "1.0.12.alpha" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Pie115/VCFSimulator-SamukLab/archive/{{ version }}.tar.gz - sha256: 9263d88be02a25a4ff9033413ecd2c72807f5ea532434092a35abf96b8858aa0 + sha256: 58ff93f1652f71a5559d0e1b1660c11ecc391ecf32a82bc761aa3837f5c26e94 build: noarch: python From d3c6e607094d864f234ae74ef5744d46ddf9f10c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 13 Jul 2024 19:46:30 -0400 Subject: [PATCH 0567/1514] Update isoquant to 3.4.2 (#49223) --- recipes/isoquant/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/isoquant/meta.yaml b/recipes/isoquant/meta.yaml index 0d7b27eeb72ff..e112ee8533140 100644 --- a/recipes/isoquant/meta.yaml +++ b/recipes/isoquant/meta.yaml @@ -1,6 +1,6 @@ {% set name = "IsoQuant" %} -{% set version = "3.4.1" %} -{% set sha256 = "a2e9d80da36567ab64647b60a919e78c69da7d61d0e9436f1682acada7841485" %} +{% set version = "3.4.2" %} +{% set sha256 = "7cff391e0d9e9d61d4fce6a1218270cf72e8dd034d7cfdd154b4c5b4055e17b4" %} package: name: {{ name | lower }} From eb64f7f21643c9a000cded2170e9c86185674787 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 13 Jul 2024 20:09:41 -0400 Subject: [PATCH 0568/1514] Update snakemake-storage-plugin-azure to 0.1.6 (#49214) Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/snakemake-storage-plugin-azure/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-azure/meta.yaml b/recipes/snakemake-storage-plugin-azure/meta.yaml index a02ed329f2e5a..9e7875f4811e3 100644 --- a/recipes/snakemake-storage-plugin-azure/meta.yaml +++ b/recipes/snakemake-storage-plugin-azure/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-azure" %} -{% set version = "0.1.5" %} +{% set version = "0.1.6" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_azure-{{ version }}.tar.gz - sha256: c200d5ffc1d593083028014becba83ace43749a666f394e567435b7299566568 + sha256: 549e54daf878be652ac5a301b1aa2b4d63d48e21a3a1abe33c4c7b4da79cf8d6 build: noarch: python From 5b16c9d8c1e09f88edae5b2f57b34b02745dab01 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 14 Jul 2024 13:58:43 -0400 Subject: [PATCH 0569/1514] Update mycotools to 0.31.38 (#49233) --- recipes/mycotools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index 7a3c66d459929..88eeea2c01418 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mycotools" %} -{% set version = "0.31.37" %} +{% set version = "0.31.38" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mycotools-{{ version }}.tar.gz - sha256: c8b5912f6209df8366c8fe694e18a288d9ccad52aaa7d2d19f384cbc1debcf65 + sha256: 45198acbbae4a88f180bf2d5cf82a5afe6a71a3b20e0304954afea71a9ff8767 build: entry_points: From c2e35b025f6e26f48cdc9beaf7383c6f089af203 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Sun, 14 Jul 2024 20:01:45 +0200 Subject: [PATCH 0570/1514] Fix pypi urls for bot autobump: setuptools changed some source paths (#49230) * Fix khipu_metabolomics pypi sdist path See https://github.com/bioconda/bioconda-recipes/issues/48971 * update version and sha * url fix * f url * f galaxy sequence utils * f galaxy sequence utils * f galaxy files * f jms * Run exports * fix version * fix pin name * Update requirements of khipu * fix pin * fix * Don't do galaxy-data on this branch * Fix khipu requirements --- recipes/galaxy-files/meta.yaml | 6 +++--- recipes/galaxy-objectstore/meta.yaml | 6 +++--- recipes/galaxy_sequence_utils/meta.yaml | 9 ++++++--- recipes/jms-metabolite-services/meta.yaml | 8 ++++---- recipes/khipu-metabolomics/meta.yaml | 19 +++++++++++++------ 5 files changed, 29 insertions(+), 19 deletions(-) diff --git a/recipes/galaxy-files/meta.yaml b/recipes/galaxy-files/meta.yaml index 574bbf277470b..f5c2829d09ef4 100644 --- a/recipes/galaxy-files/meta.yaml +++ b/recipes/galaxy-files/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "24.0.0" %} -{% set sha256 = "d00dab002d94a6463bb93d6c7fab4d5dce921e7ab54de5ca59c615faa1a14038" %} +{% set version = "24.1.1" %} +{% set sha256 = "d3c23617eed928515fd492fd97588790b1c095fdd298b5f5584307f34846c4ca" %} {% set galaxy_version = version.split(".")[:2]|join(".") %} package: @@ -7,7 +7,7 @@ package: version: {{ version }} source: - url: https://pypi.io/packages/source/g/galaxy-files/galaxy-files-{{ version }}.tar.gz + url: https://pypi.io/packages/source/g/galaxy-files/galaxy_files-{{ version }}.tar.gz sha256: {{ sha256 }} build: diff --git a/recipes/galaxy-objectstore/meta.yaml b/recipes/galaxy-objectstore/meta.yaml index d8ec586420831..ed250a556cf83 100644 --- a/recipes/galaxy-objectstore/meta.yaml +++ b/recipes/galaxy-objectstore/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "24.0.0" %} -{% set sha256 = "0cd30eff8285b83320b3eb5677bb93e3d368a8e771747c906861f88ca5036cd6" %} +{% set version = "24.1.1" %} +{% set sha256 = "0a38e7fedc5c9300507d441c17d745957e1c8a0c65d1b7efde62361bf024eff1" %} {% set galaxy_version = version.split(".")[:2]|join(".") %} package: @@ -7,7 +7,7 @@ package: version: {{ version }} source: - url: https://pypi.io/packages/source/g/galaxy-objectstore/galaxy-objectstore-{{ version }}.tar.gz + url: https://pypi.io/packages/source/g/galaxy-objectstore/galaxy_objectstore-{{ version }}.tar.gz sha256: {{ sha256 }} build: diff --git a/recipes/galaxy_sequence_utils/meta.yaml b/recipes/galaxy_sequence_utils/meta.yaml index d07a8c6e443ca..5e9efa7fccb47 100644 --- a/recipes/galaxy_sequence_utils/meta.yaml +++ b/recipes/galaxy_sequence_utils/meta.yaml @@ -1,5 +1,6 @@ {% set name = "galaxy_sequence_utils" %} {% set version = "1.1.5" %} +{% set sha256 = "c32bd91f6ff11ad6e8b62f8de309d695ef5c33a782afbf5122c1db7144ef1162" %} package: name: {{ name|lower }} @@ -12,13 +13,15 @@ about: summary: Sequence Utilities from the Galaxy project source: - url: https://files.pythonhosted.org/packages/f9/f2/39a48c3cc1635e4086a743c80f782bb216f069316437028d909448c2356a/galaxy_sequence_utils-1.1.5.tar.gz - sha256: c32bd91f6ff11ad6e8b62f8de309d695ef5c33a782afbf5122c1db7144ef1162 + url: https://pypi.io/packages/source/g/galaxy-sequence-utils/galaxy_sequence_utils-{{ version }}.tar.gz + sha256: {{ sha256 }} build: noarch: python - number: 0 + number: 1 preserve_egg_dir: True + run_exports: + -{{ pin_subpackage(name, max_pin="x") }} entry_points: - gx-fastq-to-tabular=galaxy_utils.sequence.scripts.fastq_to_tabular:main - gx-fastq-groomer=galaxy_utils.sequence.scripts.fastq_groomer:main diff --git a/recipes/jms-metabolite-services/meta.yaml b/recipes/jms-metabolite-services/meta.yaml index 07ecbf6f80219..06637fea3c542 100644 --- a/recipes/jms-metabolite-services/meta.yaml +++ b/recipes/jms-metabolite-services/meta.yaml @@ -1,20 +1,20 @@ {% set name = "jms-metabolite-services" %} -{% set version = "0.5.7" %} +{% set version = "0.5.8" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/jms-metabolite-services-{{ version }}.tar.gz - sha256: 39cad5a790ebd876ecce7f093769fb7495bbb44e74953c428d81055e5f7feac9 + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/jms_metabolite_services-{{ version }}.tar.gz + sha256: 0067d4804ebf10aed93556be6e2f7113173b9f5a50c36ea81ef6a2d0254772e7 build: noarch: python script: {{ PYTHON }} -m pip install . -vv number: 0 run_exports: - - {{ pin_subpackage('jms-metabolite-services', max_pin="x.x") }} + - {{ pin_subpackage('jms-metabolite-services', max_pin="x.x") }} requirements: diff --git a/recipes/khipu-metabolomics/meta.yaml b/recipes/khipu-metabolomics/meta.yaml index 49c0ce79ec582..17677c29ab01d 100644 --- a/recipes/khipu-metabolomics/meta.yaml +++ b/recipes/khipu-metabolomics/meta.yaml @@ -1,22 +1,22 @@ {% set name = "khipu-metabolomics" %} -{% set version = "0.7.5" %} +{% set version = "2.0.1" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/khipu-metabolomics-{{ version }}.tar.gz - sha256: 5c89c28d30fccefb1e468d8fbcb3637bd452f002438291f7eb910a762ceb99f1 + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/khipu_metabolomics-{{ version }}.tar.gz + sha256: 98bc3a78ece5def5041506f3219b0a549b3eb95c05b75817d91eabf94f0810ac build: - entry_points: - - khipu=khipu.command_line:main noarch: python script: {{ PYTHON }} -m pip install . -vv number: 0 run_exports: - {{ pin_subpackage('khipu-metabolomics', max_pin="x.x") }} + entry_points: + - khipu=khipu.command_line:main requirements: host: @@ -24,10 +24,16 @@ requirements: - pip run: - python >=3.7 + - intervaltree + - isocor - mass2chem - - treelib + - matplotlib + - numpy - networkx - pandas + - requests + - scipy + - treelib test: imports: - khipu @@ -36,6 +42,7 @@ test: - khipu --help requires: - pip + - requests about: home: https://github.com/shuzhao-li/khipu From ee6d76cdcc1cf27b2a454a4e444d12b8f7d951e6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 14 Jul 2024 14:02:03 -0400 Subject: [PATCH 0571/1514] Update viguno to 0.3.2 (#49229) --- recipes/viguno/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/viguno/meta.yaml b/recipes/viguno/meta.yaml index bf70182f7aac7..f44409a2f4467 100644 --- a/recipes/viguno/meta.yaml +++ b/recipes/viguno/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.3.1" %} -{% set sha256 = "92250d0336e148af08366ee7e4cf88bd95f70e6c0b8aa1c24732b165250953b4" %} +{% set version = "0.3.2" %} +{% set sha256 = "828490fac6f06913b0f65232c2fed446cbef4a9d48ccb4a7bc83fc57b5d7f9ff" %} package: name: viguno From d88107a31456988b8b94a4f8aa66243cef3c8cad Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Mon, 15 Jul 2024 03:43:18 +0200 Subject: [PATCH 0572/1514] Bump bx-python to 0.12, fix pypi url (#49231) * f bx-python * reset build number to 0 * fix deps * disable py38 build * [skip ci] add nsoranzo to maintainer list * Drop unnecessary wheel host requirement * Try to restore py38 build --------- Co-authored-by: Nicola Soranzo --- recipes/bx-python/meta.yaml | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/recipes/bx-python/meta.yaml b/recipes/bx-python/meta.yaml index c08fcc428ad32..fb05bc7948ff6 100644 --- a/recipes/bx-python/meta.yaml +++ b/recipes/bx-python/meta.yaml @@ -1,18 +1,20 @@ {% set name = "bx-python" %} -{% set version = "0.11.0" %} -{% set sha256 = "2cf8872572817e0d36145cc2711889df5729987ffed4e51280da1e3c2ccb9429" %} +{% set version = "0.12.0" %} +{% set sha256 = "aac2405a7b6f0d74a0a38d0e589205ed4e5ecee12df23e2076d40d41cc8335c2" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/bx-python-{{ version }}.tar.gz + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/bx_python-{{ version }}.tar.gz sha256: {{ sha256 }} build: - number: 3 - script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv + number: 0 + script: + - {{ PYTHON }} setup.py build_ext --force # [py<39] + - {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv run_exports: - {{ pin_subpackage(name|lower, max_pin='x.x') }} @@ -22,8 +24,10 @@ requirements: host: - python - cython + - numpy # [py<39] + - numpy >=1.25 # [py>=39] - pip - - numpy + - setuptools - zlib run: - python @@ -66,3 +70,5 @@ extra: additional-platforms: - linux-aarch64 - osx-arm64 + recipe-maintainers: + - nsoranzo From 79cf11519564c252ce2394339d21f4e28bc5a262 Mon Sep 17 00:00:00 2001 From: John Huddleston Date: Mon, 15 Jul 2024 00:20:27 -0700 Subject: [PATCH 0573/1514] Update pathogen-embed to 2.2.0 (#49241) --- recipes/pathogen-embed/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pathogen-embed/meta.yaml b/recipes/pathogen-embed/meta.yaml index fecfe32bcb2a5..45e576bcc55c4 100644 --- a/recipes/pathogen-embed/meta.yaml +++ b/recipes/pathogen-embed/meta.yaml @@ -1,12 +1,12 @@ -{% set version = "2.1.0" %} +{% set version = "2.2.0" %} package: name: pathogen-embed version: {{ version }} source: - url: https://files.pythonhosted.org/packages/0c/71/38ca9c5ad8f2893637ebf62bb4703e59162821860a6d9635b8a2794d2258/pathogen_embed-{{ version }}.tar.gz - sha256: b8339ed5b6b672e4da788c07c82d25b4b7cc5f533e4625bc1786056ad5097f9b + url: https://files.pythonhosted.org/packages/9c/96/971af8ac8519e8924624f70896c73d0d8a9491ee76095391c4da216d4aa4/pathogen_embed-{{ version }}.tar.gz + sha256: e336d1e7127b82c5dd476b3e39d4a315f2e71b127b123ab620ebe6a20977df1c build: number: 0 From 4cf07f9d6aa235d2da806de33f2c70629bb75dfd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 03:38:56 -0400 Subject: [PATCH 0574/1514] Update piscem to 0.10.3 (#49242) --- recipes/piscem/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/piscem/meta.yaml b/recipes/piscem/meta.yaml index fd687c2eb0479..0c261497c9b1d 100644 --- a/recipes/piscem/meta.yaml +++ b/recipes/piscem/meta.yaml @@ -1,13 +1,13 @@ -{% set version = "0.10.2" %} +{% set version = "0.10.3" %} {% set name = "piscem" %} -{% set sha256 = "657456b51174fc64a4c8bc9a641b873b0dca1b48fa05675dd455eb45a5be39e7" %} +{% set sha256 = "5bb7d856e28f7090456bbc9aa81120169cff76b66c47a642916d8d53e35bec8a" %} package: name: {{ name }} version: {{ version }} build: - number: 2 + number: 0 run_exports: - {{ pin_subpackage("piscem", max_pin="x.x") }} From e441dd9c89b8c5f5bb5cddfee929d83fe348a7f7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 03:57:37 -0400 Subject: [PATCH 0575/1514] Update dysgu to 1.6.6 (#49236) --- recipes/dysgu/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/dysgu/meta.yaml b/recipes/dysgu/meta.yaml index c5378708979f1..a1a09caab84af 100644 --- a/recipes/dysgu/meta.yaml +++ b/recipes/dysgu/meta.yaml @@ -1,6 +1,6 @@ {% set name = "dysgu" %} -{% set version = "1.6.5" %} -{% set sha256hash = "9c64989f56d9c83ba28a3d8876abc068b55c631e752a77fd8de2e43cc49fe14a" %} +{% set version = "1.6.6" %} +{% set sha256hash = "cabc54afc88c8a855f79067bdeddc089d99ec91a4e4fe21fd18f42962d0d6a6d" %} package: name: {{ name|lower }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256hash }} build: - number: 1 + number: 0 binary_relocation: False entry_points: - dysgu = dysgu.main:cli From ddc8235a1f1cf3902d6c02cbaa4232013a7972bd Mon Sep 17 00:00:00 2001 From: Jose Figueroa Date: Mon, 15 Jul 2024 04:02:32 -0400 Subject: [PATCH 0576/1514] Update MetaCerberus (#49235) --- recipes/metacerberus/meta.yaml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/recipes/metacerberus/meta.yaml b/recipes/metacerberus/meta.yaml index 94938683b09a1..8ecc533811481 100644 --- a/recipes/metacerberus/meta.yaml +++ b/recipes/metacerberus/meta.yaml @@ -1,16 +1,16 @@ {% set name = "MetaCerberus" %} -{% set version = "1.3.0" %} +{% set version = "1.3.1" %} package: name: "{{ name|lower }}" version: "{{ version }}" source: - url: "https://files.pythonhosted.org/packages/source/m/metacerberus/metacerberus-1.3.0.tar.gz" - sha256: f330233ac8efb794afba370270658e588d88737d73ab472797ea4a4986d60691 + url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" + sha256: 725be35a0e9b2a3867791e1cb8284ec95a09d3479516e9b265e3751659ce7935 build: - number: 1 + number: 0 noarch: python script: "{{ PYTHON }} -m pip install . -vv" run_exports: @@ -25,16 +25,17 @@ requirements: - python >=3.8 - setuptools <70.0.0 - grpcio =1.43 + - pandas - fastqc - flash2 - fastp - porechop - bbmap - - prodigal - - prodigal-gv + - pyrodigal + - pyrodigal-gv - phanotate - trnascan-se - - hmmer + - pyhmmer - ray-default <=2.6.3 - ray-core <=2.6.3 - ray-tune <=2.6.3 From e64062779880fdeb30fd56ce8ecb5583c4bb6d83 Mon Sep 17 00:00:00 2001 From: Ben J Woodcroft Date: Mon, 15 Jul 2024 18:07:22 +1000 Subject: [PATCH 0577/1514] singlem: Pin deps and update description. (#49239) --- recipes/singlem/meta.yaml | 61 +++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 32 deletions(-) diff --git a/recipes/singlem/meta.yaml b/recipes/singlem/meta.yaml index 1c153812c5c68..fbe9bb889e178 100644 --- a/recipes/singlem/meta.yaml +++ b/recipes/singlem/meta.yaml @@ -10,7 +10,7 @@ source: sha256: ab66c8d6f6ec712140f9f1b839c58fec33e5741437866ed7af6459af3188834e build: - number: 0 + number: 1 noarch: python script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" run_exports: @@ -24,42 +24,39 @@ requirements: run: - python >=3.7 - diamond >=2.1.7 - - biopython - - hmmer - - orfm - - mfqe - - extern - - graftm >=0.14.0 - - krona - - pplacer - - sra-tools - - ncbi-ngs-sdk - - sqlite - - squarify + - biopython =1.84 + - hmmer =3.2.1 + - orfm =1.3 + - mfqe =0.5.* + - extern =0.4.* + - graftm =0.15.* + - krona =2.8.* + - pplacer =1.1.alpha19 + - sra-tools =3.1.* + - ncbi-ngs-sdk =3.0.* + - sqlite =3.46.* + - squarify =0.4.* - mafft - - seqmagick - - expressbetadiversity - - cd-hit - - fasttree - - fastalite - - jinja2 - - pip - - sqlalchemy - - pandas - - bird_tool_utils_python >=0.4.1 - - zenodo_backpack - - smafa >=0.7.0 - - pyranges + - seqmagick =0.8.* + - expressbetadiversity =1.0.* + - cd-hit =4.8.* + - fasttree =2.1.* + - fastalite =0.4.* + - jinja2 =3.1.* + - sqlalchemy =2.0.* + - pandas =2.2.* + - bird_tool_utils_python >=0.4.1,<0.5.0 + - zenodo_backpack >=0.3.1,<0.4.0 + - smafa =0.8.* + - pyranges =0.1.* - polars >=0.19.3 - - prodigal - - tqdm - - pyarrow + - prodigal =2.6.* + - tqdm =4.66.* + - pyarrow =16.1.* test: imports: - singlem - requires: - - nose >=1.0 commands: - singlem -h @@ -68,6 +65,6 @@ about: license: "GPL-3.0-or-later" license_family: "GPL3" license_file: "LICENCE.txt" - summary: 'SingleM is a tool to find the abundances of discrete operational taxonomic units (OTUs) directly from shotgun metagenome data, without heavy reliance on reference sequence databases. It is able to differentiate closely related species even if those species are from lineages new to science.' + summary: 'SingleM is a tool for profiling shotgun metagenomes. It has a particular strength in detecting microbial lineages which are not in reference databases. The method it uses also makes it suitable for some related tasks, such as assessing eukaryotic contamination, finding bias in genome recovery, and lineage-targeted MAG recovery.' dev_url: "https://github.com/wwood/singlem" doc_url: "https://wwood.github.io/singlem/" From f7ae1c134476f5c32bccede6028c4b819baf7777 Mon Sep 17 00:00:00 2001 From: Chris Jackson <55370301+chrisjackson-pellicle@users.noreply.github.com> Date: Mon, 15 Jul 2024 18:08:46 +1000 Subject: [PATCH 0578/1514] Restrict to julia 1.8.5 and install/remove ArgParse module via postlink.sh/pre-unlink.sh (#49240) --- recipes/paragone/meta.yaml | 4 ++-- recipes/paragone/post-link.sh | 3 +++ recipes/paragone/pre-unlink.sh | 2 ++ 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 recipes/paragone/post-link.sh create mode 100644 recipes/paragone/pre-unlink.sh diff --git a/recipes/paragone/meta.yaml b/recipes/paragone/meta.yaml index d2c06021b0d7f..aeeaccb303378 100644 --- a/recipes/paragone/meta.yaml +++ b/recipes/paragone/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 33927eb32a0f11bb1f9d8f41c229886eeef2106fd8de44da248f1a31b3fd4e23 build: - number: 0 + number: 1 skip: True # [win] entry_points: - paragone = paragone.paragone_main:main @@ -27,7 +27,7 @@ requirements: - clustalo >=1.2.4 - ete3 >=3.1.2 - fasttree - - julia + - julia =1.8.5 - hmmer >=3.3.2 - iqtree >=2.2.0.3 - mafft >=7.245 diff --git a/recipes/paragone/post-link.sh b/recipes/paragone/post-link.sh new file mode 100644 index 0000000000000..f2db9b04598d5 --- /dev/null +++ b/recipes/paragone/post-link.sh @@ -0,0 +1,3 @@ +"${PREFIX}/bin/julia" -e 'using Pkg; Pkg.add("ArgParse")' >> "${PREFIX}/.messages.txt" 2>&1 +"${PREFIX}/bin/julia" -e 'using Pkg; Pkg.instantiate()' >> "${PREFIX}/.messages.txt" 2>&1 + diff --git a/recipes/paragone/pre-unlink.sh b/recipes/paragone/pre-unlink.sh new file mode 100644 index 0000000000000..47e5ca1699104 --- /dev/null +++ b/recipes/paragone/pre-unlink.sh @@ -0,0 +1,2 @@ +"${PREFIX}/bin/julia" -e 'using Pkg; Pkg.rm("ArgParse")' >> "${PREFIX}/.messages.txt" 2>&1 + From b3d530679fe356eb9f9995fd4d2339f65c4d3aab Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Mon, 15 Jul 2024 10:14:03 +0200 Subject: [PATCH 0579/1514] pathogen-embed: Use predictable url that autobump can use (#49243) * pathogen-embed: Use predictable url that autobump can use * Update meta.yaml * Update meta.yaml --- recipes/pathogen-embed/meta.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/recipes/pathogen-embed/meta.yaml b/recipes/pathogen-embed/meta.yaml index 45e576bcc55c4..6508748772242 100644 --- a/recipes/pathogen-embed/meta.yaml +++ b/recipes/pathogen-embed/meta.yaml @@ -1,15 +1,16 @@ {% set version = "2.2.0" %} +{% set name = "pathogen-embed" %} package: - name: pathogen-embed + name: {{ name }} version: {{ version }} source: - url: https://files.pythonhosted.org/packages/9c/96/971af8ac8519e8924624f70896c73d0d8a9491ee76095391c4da216d4aa4/pathogen_embed-{{ version }}.tar.gz + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pathogen_embed-{{ version }}.tar.gz sha256: e336d1e7127b82c5dd476b3e39d4a315f2e71b127b123ab620ebe6a20977df1c build: - number: 0 + number: 1 noarch: python entry_points: - pathogen-distance = pathogen_embed.__main__:run_distance From 096fb7049f1f2a610b1feed283aa0f5e0fffe579 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 06:55:19 -0400 Subject: [PATCH 0580/1514] Update pybiolib to 1.1.2236 (#49252) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index 519a97ec219ac..d599c7b7c2c13 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.1.2232" %} +{% set version = "1.1.2236" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 531a56ea78eecdc357c0cf02b68a77c4acef69ad2edc553dad3a6e36c3e24184 + sha256: e4e87e11d48de73b311b099a4307c258e6e38c8901dd2d9d1a82d3c035ca5718 build: noarch: python From 5eeb7835c48e6d11120535a0eafd426fb6fa0219 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 06:55:53 -0400 Subject: [PATCH 0581/1514] Update paragone to 1.1.2 (#49253) --- recipes/paragone/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/paragone/meta.yaml b/recipes/paragone/meta.yaml index aeeaccb303378..d1dfd040d9241 100644 --- a/recipes/paragone/meta.yaml +++ b/recipes/paragone/meta.yaml @@ -1,5 +1,5 @@ {% set name = "paragone" %} -{% set version = "1.1.1" %} +{% set version = "1.1.2" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: "https://github.com/chrisjackson-pellicle/ParaGone/archive/refs/tags/v{{ version }}.tar.gz" - sha256: 33927eb32a0f11bb1f9d8f41c229886eeef2106fd8de44da248f1a31b3fd4e23 + sha256: 49c5b2d0a3dad9f3d10a6ccc8d89e46959ec09aac0d6a6f4dd44e0cf47914ac0 build: - number: 1 + number: 0 skip: True # [win] entry_points: - paragone = paragone.paragone_main:main From 49fbb476a795058d9e63b836767983a1fa509d18 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 06:56:18 -0400 Subject: [PATCH 0582/1514] Update icfree-ml to 2.4.0 (#49249) --- recipes/icfree-ml/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/icfree-ml/meta.yaml b/recipes/icfree-ml/meta.yaml index 20ac1de7e1a5b..8ebec52264de7 100644 --- a/recipes/icfree-ml/meta.yaml +++ b/recipes/icfree-ml/meta.yaml @@ -1,13 +1,13 @@ {% set name = "icfree-ml" %} -{% set version = "2.3.3" %} +{% set version = "2.4.0" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://github.com/brsynth/icfree-ml/archive/refs/tags/2.3.3.tar.gz - sha256: c52b1baeb63a98ea54f2cd3e4cb96d3a94bbf7f95065c076938694eb8ecb5b17 + url: https://github.com/brsynth/icfree-ml/archive/refs/tags/2.4.0.tar.gz + sha256: 7ea76c71098b86f562fd676c31b440da86d2f1c83c70b601eea58d4e28cce408 build: number: 0 From ba31111936f4fcd1cc9e2388d114b63fb960d95d Mon Sep 17 00:00:00 2001 From: Matt Holt Date: Mon, 15 Jul 2024 06:58:53 -0500 Subject: [PATCH 0583/1514] Add MethBat to bioconda recipes (#49204) * copy past modify from starphase * fix pin_subpackage --------- Co-authored-by: Martin Grigorov --- recipes/methbat/build.sh | 7 +++++++ recipes/methbat/meta.yaml | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 recipes/methbat/build.sh create mode 100644 recipes/methbat/meta.yaml diff --git a/recipes/methbat/build.sh b/recipes/methbat/build.sh new file mode 100644 index 0000000000000..acfd621a41893 --- /dev/null +++ b/recipes/methbat/build.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +mkdir -p "${PREFIX}"/bin +# bioconda auto-extract for us apparently +# tar -xzf methbat-*.tar.gz +md5sum -c methbat.md5 +cp methbat "${PREFIX}"/bin/ diff --git a/recipes/methbat/meta.yaml b/recipes/methbat/meta.yaml new file mode 100644 index 0000000000000..a9c3225d7a792 --- /dev/null +++ b/recipes/methbat/meta.yaml @@ -0,0 +1,34 @@ +{% set name = "methbat" %} +{% set version = "0.13.0" %} +{% set sha256 = "3d3fc1ce531cea3c95ce21c9ecac42450766ea42e897767e6982599873ec7806" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/PacificBiosciences/MethBat/releases/download/v{{ version }}/methbat-v{{ version }}-x86_64-unknown-linux-gnu.tar.gz + sha256: {{ sha256 }} + +build: + number: 0 + skip: True # [osx] + run_exports: + - {{ pin_subpackage('methbat', max_pin="x.x") }} + +test: + commands: + - methbat --version + +about: + home: https://github.com/PacificBiosciences/MethBat + license: BSD-3-Clause-Clear + summary: A battery of methylation tools for PacBio HiFi reads + +extra: + recipe-maintainers: + - holtjma + - ctsa + skip-lints: + - should_use_compilers + - should_be_noarch_generic From 6922e001fca7ffff9dd4a05d8d1a6e236be97911 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 07:59:38 -0400 Subject: [PATCH 0584/1514] Update architeuthis to 0.3.0 (#49254) --- recipes/architeuthis/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/architeuthis/meta.yaml b/recipes/architeuthis/meta.yaml index 6ef0a4385567a..74b02f6af5daf 100644 --- a/recipes/architeuthis/meta.yaml +++ b/recipes/architeuthis/meta.yaml @@ -1,5 +1,5 @@ {% set name = "architeuthis" %} -{% set version = "0.2.1" %} +{% set version = "0.3.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/cdiener/{{ name }}/archive/{{ version }}.tar.gz - sha256: af522d822ed2dcf3bc386c8cb5ea42772ade1826b998ca0f1cd1d825f1a114ab + sha256: 63aba50c66188202debc822d0ded57d2398f5e4e9d8535f83a2c5e982bb4999f build: number: 0 @@ -41,4 +41,4 @@ about: extra: recipe-maintainers: - - cdiener \ No newline at end of file + - cdiener From c97d7ac1f38aa5772cd569a1d2a659a84c52459b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 08:02:21 -0400 Subject: [PATCH 0585/1514] Update flumut to 0.6.3 (#49255) --- recipes/flumut/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/flumut/meta.yaml b/recipes/flumut/meta.yaml index 5c56a5bdf3788..43f99fbad2427 100644 --- a/recipes/flumut/meta.yaml +++ b/recipes/flumut/meta.yaml @@ -1,5 +1,5 @@ {% set name = "flumut" %} -{% set version = "0.6.2" %} +{% set version = "0.6.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/flumut-{{ version }}.tar.gz - sha256: cf7ea2cf97b449defc7bcd6c209af79874830fec3b6a5f63811f57fe9d3a5624 + sha256: 2feb731cc53316c0ede3f8f82d31c35d9b58d3b27fcffa0d6d35002d88b22c17 build: run_exports: From 6eab11768c77e4cd7b49e38e217a956d68660bdc Mon Sep 17 00:00:00 2001 From: Stephen Watts Date: Mon, 15 Jul 2024 22:36:31 +1000 Subject: [PATCH 0586/1514] Update hicap recipe (#49251) * Use correct biopython version * Bump build number * Use more consistent version pinning --- recipes/hicap/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/hicap/meta.yaml b/recipes/hicap/meta.yaml index ccd261acff7ba..d4a5825b0e5f3 100644 --- a/recipes/hicap/meta.yaml +++ b/recipes/hicap/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 053feab67eb38f1b94caf4541054d11d61f705a7fbe579165089f783fc4753d2 build: - number: 0 + number: 1 noarch: python entry_points: - hicap=hicap.main:main @@ -24,7 +24,7 @@ requirements: - pip run: - python >=3.6 - - biopython ==1.72 + - biopython >=1.79 - reportlab ==3.4.0 - prodigal >=2.6.1 - blast >=2.2.28 From 47522e91fe2a481af94752c524cb214deeea605f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 08:37:11 -0400 Subject: [PATCH 0587/1514] Update flumutdb to 6.2 (#49258) --- recipes/flumutdb/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/flumutdb/meta.yaml b/recipes/flumutdb/meta.yaml index 772ab45fc1186..61b8b678f0783 100644 --- a/recipes/flumutdb/meta.yaml +++ b/recipes/flumutdb/meta.yaml @@ -1,5 +1,5 @@ {% set name = "flumutdb" %} -{% set version = "6.1" %} +{% set version = "6.2" %} package: name: {{ name|lower }} @@ -8,7 +8,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/flumutdb-{{ version }}.tar.gz - sha256: e85a4145b81017996dcd69fa7e52a0ec4c9140dfc557bc30a6e7ea91d7d80bf0 + sha256: 7a604b2c2b0eeebf3dcb453b597d012bfed4d768821799c8b6598b2af3caf625 build: run_exports: From a04aee2d03d99a2c6ca27f88a84a742e34fc3f3f Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Mon, 15 Jul 2024 09:25:30 -0400 Subject: [PATCH 0588/1514] reenable artifact fetching on successful check suite (#49198) --- .github/workflows/CommentResponder.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/CommentResponder.yml b/.github/workflows/CommentResponder.yml index ec8fbabdeb9c1..342bee1f34ae4 100644 --- a/.github/workflows/CommentResponder.yml +++ b/.github/workflows/CommentResponder.yml @@ -1,18 +1,13 @@ name: CommentResponder on: status: - # check_suite: - # types: - # - completed + check_suite: + types: + - completed issue_comment: types: - created -# Re-enable when the bot has been updated to handle azure -# ( -# github.event_name == 'check_suite' && -# github.event.check_suite.conclusion == 'success' -# ) || jobs: comment: runs-on: ubuntu-latest @@ -22,6 +17,10 @@ jobs: github.event_name == 'status' && github.event.state == 'success' ) || + ( + github.event_name == 'check_suite' && + github.event.check_suite.conclusion == 'success' + ) || ( github.event_name == 'issue_comment' && github.event.issue.pull_request && From c32dd0730d09be4cd29204d6dbb854078894fc1d Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 15 Jul 2024 16:27:46 +0300 Subject: [PATCH 0589/1514] viguno: add linux-aarch64 build (#49245) * viguno: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * OSX is not supported for now --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/viguno/meta.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/recipes/viguno/meta.yaml b/recipes/viguno/meta.yaml index f44409a2f4467..2ac8badcffa71 100644 --- a/recipes/viguno/meta.yaml +++ b/recipes/viguno/meta.yaml @@ -7,7 +7,7 @@ package: build: skip: True # [osx] - number: 0 + number: 1 run_exports: - {{ pin_subpackage("viguno", max_pin="x.x") }} @@ -41,3 +41,7 @@ about: home: https://github.com/bihealth/varfish-org license: MIT summary: Lookup OMIM genes and HPO terms and compute similarities + +extra: + additional-platforms: + - linux-aarch64 From 97e1d5d420555c30e70c558105b351b1f4c51637 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 15 Jul 2024 16:31:13 +0300 Subject: [PATCH 0590/1514] knotinframe & bellmans-gapc: add linux-aarch64 build (#49246) * knotinframe: add aarch64/arm64 build Signed-off-by: Martin Tzvetanov Grigorov * bellmans-gaps: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Do not build for OSX ARM64. It fails with unknown configure host arm64-conda Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/bellmans-gapc/build.sh | 5 ++++- recipes/bellmans-gapc/meta.yaml | 6 +++++- recipes/knotinframe/build.sh | 10 ++++++---- recipes/knotinframe/meta.yaml | 6 ++++-- 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/recipes/bellmans-gapc/build.sh b/recipes/bellmans-gapc/build.sh index ddb85400f1245..1d7068016e25e 100644 --- a/recipes/bellmans-gapc/build.sh +++ b/recipes/bellmans-gapc/build.sh @@ -1,4 +1,7 @@ #!/bin/sh + +set -xe + export SED="sed" export SYSTEM_SUFFIX="_linux-gnu" ./configure --with-boost-libdir=$PREFIX/lib/ CPPFLAGS=-I${PREFIX} --prefix=$PREFIX --disable-gsltest @@ -10,7 +13,7 @@ if [ x"$(uname)" == x"Darwin" ]; then $SED -E "s/ -std=c\+\+17 / -std=c\+\+11 /" -i config.mf fi -make +make -j ${CPU_COUNT} CC=${CC} CXX=${CXX} make install # remove definition of CXX in user space config file, since this will not match users compiler path, # instead let conda take care of providing meaningful CXX and CC values. diff --git a/recipes/bellmans-gapc/meta.yaml b/recipes/bellmans-gapc/meta.yaml index 2bdefca04e26c..7b2838644902b 100644 --- a/recipes/bellmans-gapc/meta.yaml +++ b/recipes/bellmans-gapc/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 590b62d5fc39b1deb45855b0586d7ca3674ef17c59fc84ef445d2760a480f7ba build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('bellmans-gapc', max_pin=None) }} @@ -44,3 +44,7 @@ about: license_family: GPL3 license_file: LICENSE summary: 'A language and compiler for algebraic dynamic programming.' + +extra: + additional-platforms: + - linux-aarch64 diff --git a/recipes/knotinframe/build.sh b/recipes/knotinframe/build.sh index 7102b23de6748..9113b5bb646bb 100644 --- a/recipes/knotinframe/build.sh +++ b/recipes/knotinframe/build.sh @@ -1,6 +1,8 @@ -#!/bin/bash -euo +#!/bin/bash -make PREFIX=$PREFIX CC=$CC -C Misc/Applications/Knotinframe all -make PREFIX=$PREFIX CC=$CC -C Misc/Applications/Knotinframe install-program -make PREFIX=$PREFIX CC=$CC -C Misc/Applications/lib install +set -exuo + +make -j ${CPU_COUNT} PREFIX=$PREFIX CC=$CC -C Misc/Applications/Knotinframe all +make -j ${CPU_COUNT} PREFIX=$PREFIX CC=$CC -C Misc/Applications/Knotinframe install-program +make -j ${CPU_COUNT} PREFIX=$PREFIX CC=$CC -C Misc/Applications/lib install chmod 755 $PREFIX/bin/knotinframe* $PREFIX/bin/addRNA* diff --git a/recipes/knotinframe/meta.yaml b/recipes/knotinframe/meta.yaml index 8d41154beb4a7..93d555f0ee88e 100644 --- a/recipes/knotinframe/meta.yaml +++ b/recipes/knotinframe/meta.yaml @@ -1,5 +1,5 @@ {% set version = "2.3.1" %} -{% set sha256 = "bfa37ab7ec8b3709d04d69f2013e0e823f5aba116db21b79233336d2dd2771b0" %} +{% set sha256 = "d9ab68329e48709cffbf5ed775f905bdddebab470d70836bb522993b971d48af" %} package: name: knotinframe @@ -10,7 +10,7 @@ source: url: https://github.com/jlab/fold-grammars/archive/{{ version }}.tar.gz build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('knotinframe', max_pin="x") }} @@ -36,6 +36,8 @@ about: summary: 'Predicts -1 frameshift sites with simple pseudoknots' extra: + additional-platforms: + - linux-aarch64 identifiers: - doi:10.1093/nar/gkn578 - doi:10.1093/bioinformatics/btu649 From abd22cef52d90ec7c36c081a5cacd4d66feb12f3 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 15 Jul 2024 16:31:52 +0300 Subject: [PATCH 0591/1514] r-rrbgen: add aarch64/arm64 builds (#49256) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/r-rrbgen/meta.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/recipes/r-rrbgen/meta.yaml b/recipes/r-rrbgen/meta.yaml index ffb219c6dfbaa..ca175e16d940b 100644 --- a/recipes/r-rrbgen/meta.yaml +++ b/recipes/r-rrbgen/meta.yaml @@ -10,8 +10,10 @@ source: sha256: '{{ sha256 }}' build: - number: 10 + number: 11 script: '$R CMD INSTALL --build --install-tests .' + run_exports: + - {{ pin_subpackage('r-rrbgen', max_pin="x.x") }} requirements: build: @@ -42,5 +44,8 @@ about: dev_url: https://github.com/rwdavies/rrbgen extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - rwdavies From b9d972e4bfecc807f744c03778483e56eb0c9e81 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 15 Jul 2024 16:32:20 +0300 Subject: [PATCH 0592/1514] architeuthis: add aarch64/arm64 builds (#49257) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/architeuthis/meta.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/architeuthis/meta.yaml b/recipes/architeuthis/meta.yaml index 74b02f6af5daf..44e0523a764f2 100644 --- a/recipes/architeuthis/meta.yaml +++ b/recipes/architeuthis/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 63aba50c66188202debc822d0ded57d2398f5e4e9d8535f83a2c5e982bb4999f build: - number: 0 + number: 1 script: - go build -v -ldflags "-w -s -X 'main.version={{ version }}'" -o $PREFIX/bin/architeuthis run_exports: @@ -40,5 +40,8 @@ about: dev_url: https://github.com/cdiener/architeuthis.git extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - cdiener From 2307c24c3267dea335b273cc165b2df8dc365e9c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 09:32:31 -0400 Subject: [PATCH 0593/1514] Update earlgrey to 4.4.0 (#49176) * Update earlgrey to 4.4.0 * Do not build SA-SSR in parallel. The Makefile is fragile and fails due to timing issues when building non-sequencially Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov --- recipes/earlgrey/build.sh | 2 +- recipes/earlgrey/meta.yaml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/earlgrey/build.sh b/recipes/earlgrey/build.sh index 217c504636210..5f17a2045b907 100644 --- a/recipes/earlgrey/build.sh +++ b/recipes/earlgrey/build.sh @@ -19,7 +19,7 @@ cp -rf * ${PACKAGE_HOME}/ # Install SA-SSR (has to be done here because SA-SSR is an ancient repository without releases) git clone --depth 1 https://github.com/ridgelab/SA-SSR cd SA-SSR -make -j${CPU_COUNT} +make cp -f bin/sa-ssr ${PREFIX}/bin/ cd ../ && rm -rf SA-SSR/ diff --git a/recipes/earlgrey/meta.yaml b/recipes/earlgrey/meta.yaml index ca583c70fe8b8..6403cc72f9d2b 100644 --- a/recipes/earlgrey/meta.yaml +++ b/recipes/earlgrey/meta.yaml @@ -1,6 +1,6 @@ {% set name = "EarlGrey" %} -{% set version = "4.3.0" %} -{% set sha256 = "f4a455a51aff972dcdf9ab886b9888f8c0eded5e27f12d5b4f0a71e5abcfd282" %} +{% set version = "4.4.0" %} +{% set sha256 = "2557e79c112fdb2e9f1fd96d21394752db0a8004723fe35953d6619c887dcf97" %} package: name: {{ name|lower }} From f39637bd460477c28da1dae65240d4accb1f3f75 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 09:54:43 -0400 Subject: [PATCH 0594/1514] Update pytrf to 1.3.1 (#49259) --- recipes/pytrf/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pytrf/meta.yaml b/recipes/pytrf/meta.yaml index 024fc3a5532ef..63e07f909ad4f 100644 --- a/recipes/pytrf/meta.yaml +++ b/recipes/pytrf/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pytrf" %} -{% set version = "1.3.0" %} -{% set sha256 = "624497536b4e9a5cb8bbddb7ead7a2253a89b27ccf872178e9a8d975e21695f6" %} +{% set version = "1.3.1" %} +{% set sha256 = "ccf3ee18301389d96b5d4db37c90e5202c057d69cc4b539ea154602c93cbe786" %} package: name: "{{ name|lower }}" @@ -11,7 +11,7 @@ source: sha256: "{{ sha256 }}" build: - number: 1 + number: 0 skip: True # [py < 36] script: "{{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv" run_exports: From 86d388282d7449f26d17334009005f536eac63b5 Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Mon, 15 Jul 2024 10:12:18 -0400 Subject: [PATCH 0595/1514] ci: revert automatic artifact fetching (#49261) --- .github/workflows/CommentResponder.yml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/.github/workflows/CommentResponder.yml b/.github/workflows/CommentResponder.yml index 342bee1f34ae4..2052f237029d0 100644 --- a/.github/workflows/CommentResponder.yml +++ b/.github/workflows/CommentResponder.yml @@ -1,13 +1,19 @@ name: CommentResponder on: status: - check_suite: - types: - - completed + # check_suite: + # types: + # - completed issue_comment: types: - created + # Runs too many times + # ( + # github.event_name == 'check_suite' && + # github.event.check_suite.conclusion == 'success' + # ) || + jobs: comment: runs-on: ubuntu-latest @@ -17,10 +23,6 @@ jobs: github.event_name == 'status' && github.event.state == 'success' ) || - ( - github.event_name == 'check_suite' && - github.event.check_suite.conclusion == 'success' - ) || ( github.event_name == 'issue_comment' && github.event.issue.pull_request && From 742db31d689d40cffd5e8811cd72de4000c6d266 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 15 Jul 2024 18:02:53 +0300 Subject: [PATCH 0596/1514] egglib: add aarch64/arm64 builds (#49247) * egglib: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Do not add osx-arm64 since OSX is generally excluded Co-authored-by: Alicia A. Evans <108547992+aliciaaevans@users.noreply.github.com> --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Alicia A. Evans <108547992+aliciaaevans@users.noreply.github.com> --- recipes/egglib/meta.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/egglib/meta.yaml b/recipes/egglib/meta.yaml index 330ef36687503..459f58ae40dbb 100644 --- a/recipes/egglib/meta.yaml +++ b/recipes/egglib/meta.yaml @@ -10,8 +10,8 @@ source: sha256: 8f788e1d40243a7e489c71a20581a5e842e0f49bca87096fcee572c087865fc2 build: - number: 0 - skip: True # [py < 38 or osx] + number: 1 + skip: True # [osx] script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv entry_points: - egglib-config = egglib.cli.config:main @@ -51,6 +51,8 @@ about: dev_url: "https://gitlab.com/demita/egglib/" extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - ranwez identifiers: From 424e44e13c938af98a82023d5fb6f3fdc58eac83 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 12:26:04 -0400 Subject: [PATCH 0597/1514] Update influx-si-data-manager to 1.0.3 (#49264) --- recipes/influx-si-data-manager/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/influx-si-data-manager/meta.yaml b/recipes/influx-si-data-manager/meta.yaml index 5165c63acd2c4..c71d4d36d6ad6 100644 --- a/recipes/influx-si-data-manager/meta.yaml +++ b/recipes/influx-si-data-manager/meta.yaml @@ -1,5 +1,5 @@ {% set name = "influx-si-data-manager" %} -{% set version = "1.0.2" %} +{% set version = "1.0.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/influx_si_data_manager-{{ version }}.tar.gz - sha256: 5bac948f0c781e50a7e47f746cb7fc71f1f5de1182356a8b6952f0a622bd8fe8 + sha256: 61a158c9f24944bab776847c909371e448c82142f52af2c91a8e68233360f869 build: entry_points: From 940e45afafe74834d3f5deffeb81d8a52f6fc534 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 12:27:05 -0400 Subject: [PATCH 0598/1514] Update dropseq_tools to 3.0.2 (#49265) --- recipes/dropseq_tools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/dropseq_tools/meta.yaml b/recipes/dropseq_tools/meta.yaml index c6996da2610b9..9f3da319ba521 100644 --- a/recipes/dropseq_tools/meta.yaml +++ b/recipes/dropseq_tools/meta.yaml @@ -1,6 +1,6 @@ {% set name = "Dropseq_tools" %} -{% set version = "3.0.1" %} -{% set sha256 = "d247dee375b38b4b897f4fdd8c298d0c5ba3e9d1a4e95c9aecb541d733e121b9" %} +{% set version = "3.0.2" %} +{% set sha256 = "aa681dff54ede54154a9b626c6361da860eb5df749456ece340e152b42c16484" %} package: name: {{ name|lower }} From e5b904079756cbb0e92964c0f16ce957aa48ca7e Mon Sep 17 00:00:00 2001 From: ljmciver Date: Mon, 15 Jul 2024 11:48:13 -0600 Subject: [PATCH 0599/1514] Update Maaslin2 version to use latest release from BioC v3.19 (#49266) * Update meta.yaml to use latest BioC version * Update meta.yaml to use latest BioC release * Update meta.yaml for maaslin2, reset build number * Update meta.yaml in maaslin2, update md5sum to match new version --- recipes/bioconductor-maaslin2/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/bioconductor-maaslin2/meta.yaml b/recipes/bioconductor-maaslin2/meta.yaml index 49d89ae9eb4e0..114353630f890 100644 --- a/recipes/bioconductor-maaslin2/meta.yaml +++ b/recipes/bioconductor-maaslin2/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "1.16.0" %} +{% set version = "1.18.0" %} {% set name = "Maaslin2" %} -{% set bioc = "3.18" %} +{% set bioc = "3.19" %} package: name: 'bioconductor-{{ name|lower }}' @@ -11,11 +11,11 @@ source: - 'https://bioconductor.org/packages/{{ bioc }}/bioc/src/contrib/Archive/{{ name }}/{{ name }}_{{ version }}.tar.gz' - 'https://bioarchive.galaxyproject.org/{{ name }}_{{ version }}.tar.gz' - 'https://depot.galaxyproject.org/software/bioconductor-{{ name|lower }}/bioconductor-{{ name|lower }}_{{ version }}_src_all.tar.gz' - md5: 0f92778b2d59935191e2ac58621da8f5 + md5: 65689f289ef30a89d727f676e645719a patches: - rpath.patch build: - number: 1 + number: 0 rpaths: - lib/R/lib/ - lib/ From b7ad9b9d4f0b4338f6a1df22799025493784466e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 14:45:47 -0400 Subject: [PATCH 0600/1514] Update pycomo to 0.2.1 (#49268) --- recipes/pycomo/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pycomo/meta.yaml b/recipes/pycomo/meta.yaml index 13a5d832d13b2..9e74bf5ddff0c 100644 --- a/recipes/pycomo/meta.yaml +++ b/recipes/pycomo/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pycomo" %} -{% set version = "0.2.0" %} +{% set version = "0.2.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pycomo-{{ version }}.tar.gz - sha256: 48ffd67190484a57f16ad9a81a631e7464dd5d37a7da79907d9940232f3c3433 + sha256: d0ce661bb1a3d7852c2ca5ec2b8714fed2f8b1554da1e2f3874b70a74dd926f3 build: entry_points: From 34f4be08e5dd9788b1004f678036865e2327bb4d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 14:54:39 -0400 Subject: [PATCH 0601/1514] Update mycotools to 0.31.39 (#49270) --- recipes/mycotools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index 88eeea2c01418..b84a8bd23097f 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mycotools" %} -{% set version = "0.31.38" %} +{% set version = "0.31.39" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mycotools-{{ version }}.tar.gz - sha256: 45198acbbae4a88f180bf2d5cf82a5afe6a71a3b20e0304954afea71a9ff8767 + sha256: f4d076d93bb056c039440d0f669c4a8f97a4827ff031da4957dfa9354a22c3ee build: entry_points: From 65417be31bb19511d4f1319d7822932965fb0ce2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 15:32:25 -0400 Subject: [PATCH 0602/1514] Update augur to 25.1.1 (#49269) --- recipes/augur/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/augur/meta.yaml b/recipes/augur/meta.yaml index b18f7ca81a874..07fbe41c998c9 100644 --- a/recipes/augur/meta.yaml +++ b/recipes/augur/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "25.1.0" %} +{% set version = "25.1.1" %} package: name: augur @@ -6,7 +6,7 @@ package: source: url: https://github.com/nextstrain/augur/releases/download/{{ version }}/nextstrain_augur-{{ version }}.tar.gz - sha256: cc75d9c7b4cda380f4f6bf9d2ae00b9e197e883ebc351358971094767db540c0 + sha256: 8374b0815ae4358cbb80892eb5205f6c7264ff5a9cd679f32edb3f3fcab682ef build: number: 0 From e239f6d96c57a271436097f4a451e4a2369fcf69 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 15:32:55 -0400 Subject: [PATCH 0603/1514] Update illumina-interop to 1.3.2 (#49271) --- recipes/illumina-interop/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/illumina-interop/meta.yaml b/recipes/illumina-interop/meta.yaml index 4d1c368792cfd..e2c169cf97e98 100644 --- a/recipes/illumina-interop/meta.yaml +++ b/recipes/illumina-interop/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.3.1" %} +{% set version = "1.3.2" %} {% set sha256 = "0335f20a6d46b3c57a7dd1c337594b156bc1e7558f44cb981f1100f396929baa" %} package: @@ -6,14 +6,14 @@ package: version: '{{version}}' build: - number: 1 + number: 0 skip: true # [osx] run_exports: - {{ pin_subpackage('illumina-interop', max_pin="x.x") }} source: url: https://github.com/Illumina/interop/archive/v{{version}}.tar.gz - sha256: 8784a38f09719f12d12a37defb24eee05085471791a136a0ad13172145819673 + sha256: 4989480b3d074ac36499f122a1de109840b6edab238cc6482f6025d1021d4564 requirements: build: @@ -50,4 +50,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 From 8f793c29ce6fd092325b3aad7f5397bebf81f51f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 15:36:44 -0400 Subject: [PATCH 0604/1514] Update pbstarphase to 0.11.3 (#49274) --- recipes/pbstarphase/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pbstarphase/meta.yaml b/recipes/pbstarphase/meta.yaml index 91913c767158b..9b1869e8b4ebb 100644 --- a/recipes/pbstarphase/meta.yaml +++ b/recipes/pbstarphase/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pbstarphase" %} -{% set version = "0.11.2" %} -{% set sha256 = "ab6ecd08d78891de95f3d2e0dd2cd258e146bc253fd737cfcf6fef78b8704b92" %} +{% set version = "0.11.3" %} +{% set sha256 = "1b935576c546c9630a4ee0b8a193fd308889c3cae491963cbf9b7fdef4aefce5" %} package: name: {{ name }} From fb2f597145ba3cf44936171e780868c74ad7761a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 15:41:34 -0400 Subject: [PATCH 0605/1514] Update pytrf to 1.3.2 (#49267) --- recipes/pytrf/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pytrf/meta.yaml b/recipes/pytrf/meta.yaml index 63e07f909ad4f..db1573d1b88cb 100644 --- a/recipes/pytrf/meta.yaml +++ b/recipes/pytrf/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pytrf" %} -{% set version = "1.3.1" %} -{% set sha256 = "ccf3ee18301389d96b5d4db37c90e5202c057d69cc4b539ea154602c93cbe786" %} +{% set version = "1.3.2" %} +{% set sha256 = "98cd1171f58dc147fa8aac89b23cd0e34eaac83e5b5b501e31723dfc318f6cc5" %} package: name: "{{ name|lower }}" From 5a6a485edae736d1861dfe4a232de592a8b4476f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 15 Jul 2024 15:42:43 -0400 Subject: [PATCH 0606/1514] Update nanomotif to 0.4.9 (#49262) --- recipes/nanomotif/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/nanomotif/meta.yaml b/recipes/nanomotif/meta.yaml index 410861e454a27..208bbdd95ceaf 100644 --- a/recipes/nanomotif/meta.yaml +++ b/recipes/nanomotif/meta.yaml @@ -1,5 +1,5 @@ {% set name = "nanomotif" %} -{% set version = "0.4.8" %} +{% set version = "0.4.9" %} package: @@ -8,7 +8,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/nanomotif-{{ version }}.tar.gz - sha256: 0b58c970618b98810d6b91d4ffed8fa29cfd11fa9e62e6b8c30a19945aca46f6 + sha256: 2d958ff07a35bf20c4db9e1a5bb033efd530e5ff21e16bc88796d70e09566589 build: entry_points: From 12484e726d9cb63546bdf7bdad014584f220b03f Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Mon, 15 Jul 2024 15:43:48 -0400 Subject: [PATCH 0607/1514] gtdb_to_taxdump: rename yml to yaml (#49263) * rename yml to yaml * add run_exports * add numpy * add tests --- recipes/gtdb_to_taxdump/{meta.yml => meta.yaml} | 7 +++++++ 1 file changed, 7 insertions(+) rename recipes/gtdb_to_taxdump/{meta.yml => meta.yaml} (79%) diff --git a/recipes/gtdb_to_taxdump/meta.yml b/recipes/gtdb_to_taxdump/meta.yaml similarity index 79% rename from recipes/gtdb_to_taxdump/meta.yml rename to recipes/gtdb_to_taxdump/meta.yaml index 7316bee1b4239..a0fc5375f7565 100644 --- a/recipes/gtdb_to_taxdump/meta.yml +++ b/recipes/gtdb_to_taxdump/meta.yaml @@ -14,20 +14,27 @@ build: noarch: python number: 0 script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + run_exports: + - {{ pin_subpackage("gtdb_to_taxdump", max_pin="x.x") }} requirements: host: - pip - python + - numpy run: - networkx - python - tqdm + - {{ pin_compatible('numpy') }} test: imports: - bin - gtdb2td + commands: + - gtdb_to_taxdump.py -h + - gtdb_to_taxdump.py --version about: home: https://github.com/nick-youngblut/gtdb_to_taxdump From 48de82322865dc8cacd9647a416f02d2d4d057fa Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Mon, 15 Jul 2024 21:44:05 +0200 Subject: [PATCH 0608/1514] Update bellmansgapc (#49272) --- recipes/bellmans-gapc/build.sh | 2 +- recipes/bellmans-gapc/meta.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/bellmans-gapc/build.sh b/recipes/bellmans-gapc/build.sh index 1d7068016e25e..81e7a2009b3b4 100644 --- a/recipes/bellmans-gapc/build.sh +++ b/recipes/bellmans-gapc/build.sh @@ -10,7 +10,7 @@ export SYSTEM_SUFFIX="_linux-gnu" if [ x"$(uname)" == x"Darwin" ]; then export SYSTEM_SUFFIX=`cat config.mf |grep "^SYSTEM_SUFFIX" | cut -d "=" -f2 | tr -d " "` $SED -E "s/ -D_XOPEN_SOURCE=500 / /" -i config.mf - $SED -E "s/ -std=c\+\+17 / -std=c\+\+11 /" -i config.mf + $SED -E "s/ -std=c\+\+17 / -std=c\+\+14 /" -i config.mf fi make -j ${CPU_COUNT} CC=${CC} CXX=${CXX} diff --git a/recipes/bellmans-gapc/meta.yaml b/recipes/bellmans-gapc/meta.yaml index 7b2838644902b..5aac7f2d5df62 100644 --- a/recipes/bellmans-gapc/meta.yaml +++ b/recipes/bellmans-gapc/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 590b62d5fc39b1deb45855b0586d7ca3674ef17c59fc84ef445d2760a480f7ba build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage('bellmans-gapc', max_pin=None) }} From f75f6a71dc55d97acd223d837d0e3145c33bce4b Mon Sep 17 00:00:00 2001 From: John Marshall Date: Tue, 16 Jul 2024 10:14:21 +1200 Subject: [PATCH 0609/1514] Build mappy on macOS ARM (#49275) Also remove zlib run dependency: build-time zlib will add libzlib via its run_exports so we should not over-depend on zlib as well. --- recipes/mappy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mappy/meta.yaml b/recipes/mappy/meta.yaml index 65eba261b4dac..87e127733581f 100644 --- a/recipes/mappy/meta.yaml +++ b/recipes/mappy/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 0ebf7a5d62bd668f5456028215e26176e180ca68161ac18d4f7b48045484cebb build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('mappy', max_pin="x") }} @@ -24,7 +24,6 @@ requirements: - zlib run: - python - - zlib test: imports: @@ -40,3 +39,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 From b341aedd5f6bfb6c60060fa8c1c51ebb3cf08617 Mon Sep 17 00:00:00 2001 From: Ales Varabyou Date: Mon, 15 Jul 2024 18:17:08 -0400 Subject: [PATCH 0610/1514] Update ORFanage to 1.2.0 (#49273) * bump to 1.2.0. fix arm compilation * bump to 1.2.0. fix arm compilation --- recipes/orfanage/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/orfanage/meta.yaml b/recipes/orfanage/meta.yaml index 93c67654bf938..bc65cc7e46222 100644 --- a/recipes/orfanage/meta.yaml +++ b/recipes/orfanage/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.1.0" %} -{% set sha = "724e82dd5175fd2420582e39a69b8b7d61d1e49871960d2d6d3a325a383719b6" %} +{% set version = "1.2.0" %} +{% set sha = "480646b3d4ce91768004a0b0b36a9766709bf3d99a23e291f37ea353ceb58b5c" %} package: name: "orfanage" From aac902998815f3e5b08c0249833a9a0bf1e41823 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 01:08:32 -0400 Subject: [PATCH 0611/1514] Update tides-ml to 1.3.2 (#49277) --- recipes/tides-ml/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/tides-ml/meta.yaml b/recipes/tides-ml/meta.yaml index c07781303977e..d397cf604be0d 100644 --- a/recipes/tides-ml/meta.yaml +++ b/recipes/tides-ml/meta.yaml @@ -1,5 +1,5 @@ {% set name = "tides-ml" %} -{% set version = "1.3.0" %} +{% set version = "1.3.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/TIdeS-ML-{{ version }}.tar.gz - sha256: 8bfcd9f56a943a9099536e9a61664023aa9ca9f21fc036c53f0e4d925b95b770 + sha256: f9b33375d4e5f08cf6c1c67e2d7240eb554e1afd2e535dbbde44b9951f5e0199 build: entry_points: From c3c7a9d8e541aed3eede5eb8e673872bcd4dc9fc Mon Sep 17 00:00:00 2001 From: Amirhossein <66441226+nilchia@users.noreply.github.com> Date: Tue, 16 Jul 2024 08:35:39 +0200 Subject: [PATCH 0612/1514] add spacexr to bioconda (#49188) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add spacexr to bioconda * correct requiermetns * fix error * correct directory name * remove r-parallel as it is included in r-base * Update recipes/spacexr/meta.yaml Co-authored-by: Björn Grüning * correct sha256 * Update recipes/spacexr/meta.yaml Co-authored-by: Björn Grüning * update build.sh * fix error and add missing dependancies * correct name * correct directory name --------- Co-authored-by: Björn Grüning --- recipes/r-spacexr/build.sh | 6 +++ recipes/r-spacexr/meta.yaml | 78 +++++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 recipes/r-spacexr/build.sh create mode 100644 recipes/r-spacexr/meta.yaml diff --git a/recipes/r-spacexr/build.sh b/recipes/r-spacexr/build.sh new file mode 100644 index 0000000000000..e496d517a47ef --- /dev/null +++ b/recipes/r-spacexr/build.sh @@ -0,0 +1,6 @@ +#!/bin/bash +export TAR='/bin/tar' +R -e "library(devtools)" +R -e "options(timeout = 600000000) ### set this to avoid timeout error" +R -e "devtools::install_github('dmcable/spacexr', ref = '0a0861e3d1e16014a20e9b743d0e19d3b42231f3', build_vignettes = FALSE)" +R CMD INSTALL --build . \ No newline at end of file diff --git a/recipes/r-spacexr/meta.yaml b/recipes/r-spacexr/meta.yaml new file mode 100644 index 0000000000000..241ba913d5238 --- /dev/null +++ b/recipes/r-spacexr/meta.yaml @@ -0,0 +1,78 @@ +package: + name: r-spacexr + version: 2.2.1 + +source: + url: https://github.com/dmcable/spacexr/archive/0a0861e3d1e16014a20e9b743d0e19d3b42231f3.zip + sha256: 7d980ecea377a0e2131a87c3ff2b66f512ac69ecc96c2e2b8c1dd4d4f02403f8 + +build: + number: 0 + noarch: generic # Specify that the package is noarch + run_exports: '{{ pin_compatible("r-spacexr", max_pin="x.x") }}' + rpaths: + - lib/R/lib + - lib + +requirements: + host: + - r-base + - r-remotes + - r-devtools + - r-readr + - r-ggplot2 + - r-pals + - r-matrix + - r-doParallel + - r-foreach + - r-quadprog + - r-tibble + - r-dplyr + - r-reshape2 + - r-knitr + - r-rmarkdown + - r-fields + - r-mgcv + - r-compquadform + - r-rfast + - r-locfdr + - r-metafor + - r-data.table + - r-scales + - r-lifecycle + - r-evaluate + run: + - r-base + - r-remotes + - r-readr + - r-ggplot2 + - r-pals + - r-Matrix + - r-doParallel + - r-foreach + - r-quadprog + - r-tibble + - r-dplyr + - r-reshape2 + - r-knitr + - r-rmarkdown + - r-fields + - r-mgcv + - r-compquadform + - r-rfast + - r-locfdr + - r-metafor + - r-data.table + - r-scales + - r-lifecycle + - r-evaluate +test: + commands: + - $R -e "library(spacexr)" + +about: + home: https://github.com/dmcable/spacexr + license: GPL-3.0-only + license_family: GPL3 + license_file: '{{ environ["PREFIX"] }}/lib/R/share/licenses/GPL-3' + summary: Cell type identification and cell type-specific differential expression in spatial transcriptomics \ No newline at end of file From 738dc2fd3ff4cd4d2738046001bfdf2d3fdf7123 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 03:07:40 -0400 Subject: [PATCH 0613/1514] Update graftm to 0.15.1 (#49279) --- recipes/graftm/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/graftm/meta.yaml b/recipes/graftm/meta.yaml index 79ebc38c5a444..f87658e99ed0b 100644 --- a/recipes/graftm/meta.yaml +++ b/recipes/graftm/meta.yaml @@ -1,10 +1,10 @@ package: name: graftm - version: "0.15.0" + version: "0.15.1" source: - url: https://files.pythonhosted.org/packages/6f/dc/8c7b874a0fbeaa4ffb613aa0dcee722222ba0c06276e42881cac79048fc7/graftm-0.15.0.tar.gz - sha256: 794b2c6a8fff36c81db8b9a544ac021ab1397c569638bf7651ce5329db36de21 + url: https://files.pythonhosted.org/packages/bf/a7/283e41730d4d63c87d0fdb055357307d18bc7ca1736f6156baf46762343a/graftm-0.15.1.tar.gz + sha256: 80d828c311d2d6067977cfad5b6bac7cbc5d223ef8ab770d676b39bf2bc75163 build: number: 0 From c9d69238ce92a53561f763ca93eaa3bfa50b1f50 Mon Sep 17 00:00:00 2001 From: Akihiro Kuno Date: Tue, 16 Jul 2024 16:34:05 +0900 Subject: [PATCH 0614/1514] Update DAJIN2 (#49278) --- recipes/dajin2/meta.yaml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/recipes/dajin2/meta.yaml b/recipes/dajin2/meta.yaml index 9dc6207716c85..a96b6a5c76296 100644 --- a/recipes/dajin2/meta.yaml +++ b/recipes/dajin2/meta.yaml @@ -1,5 +1,5 @@ {% set name = "DAJIN2" %} -{% set version = "0.5.2" %} +{% set version = "0.5.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/dajin2-{{ version }}.tar.gz - sha256: aab7698d00d514664cd626a5173cef29a59b2de8d38c9771088906a7cf5a66da + sha256: 51f7c7bc430727c839c8a113c55d92dbcd66311344f456e49ac994edf1a9d6da build: entry_points: @@ -29,19 +29,20 @@ requirements: - scipy >=1.10.0 - pandas >=1.0.0 - openpyxl >=3.1.0 + - plotly >=5.19.0 + - python-kaleido >=0.2.0 - rapidfuzz >=3.6.0 - scikit-learn >=1.3.0 + - ruptures >=1.1.8 + - ortools-python >=9.0 - mappy >=2.24 - pysam >=0.21.0 - flask >=2.2.0 - waitress >=2.1.0 - jinja2 >=3.1.0 - - plotly >=5.19.0 - - python-kaleido >=0.2.0 - cstag >=1.0.0 - midsv >=0.11.0 - wslpath >=0.4.1 - - ruptures >=1.1.8 test: imports: From ede4dcdc43677c17ea823f4092b9032541dcc106 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Tue, 16 Jul 2024 19:36:32 +1200 Subject: [PATCH 0615/1514] Pinned minimap2 version in liftoff (#49282) --- recipes/liftoff/meta.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/recipes/liftoff/meta.yaml b/recipes/liftoff/meta.yaml index 96725711fdcc6..3aa620b92eaf0 100644 --- a/recipes/liftoff/meta.yaml +++ b/recipes/liftoff/meta.yaml @@ -14,7 +14,9 @@ build: entry_points: - liftoff = liftoff.run_liftoff:main script: python -m pip install --no-deps --ignore-installed . - number: 0 + number: 1 + run_exports: + - {{ pin_subpackage('liftoff', max_pin='x') }} requirements: host: @@ -29,7 +31,7 @@ requirements: - pysam >=0.16.0.1 - pyfaidx >=0.5.8 - interlap >=0.2.6 - - minimap2 + - minimap2 ==2.24 - ujson >=3.2.0 - parasail-python >=1.2.1 @@ -50,3 +52,4 @@ extra: recipe-maintainers: - agshumate - standage + - gallvp From a861a7703fa1c88d8d4d8a600ea16587f18df39a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 03:37:31 -0400 Subject: [PATCH 0616/1514] Update strainr2 to 2.0.0 (#49091) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update strainr2 to 2.0.0 * Update strainr2 (#49110) * update summary description and shorten dependencies * add compilation of hashcounter * Try to pin r-tidyverse >=2.0.0 * remove r-base dependency and unpin r-tidyverse * add r library dependencies to host requirements --------- Co-authored-by: Andreas Sjödin --------- Co-authored-by: Kerim Heber <122597229+kheber@users.noreply.github.com> Co-authored-by: Andreas Sjödin --- recipes/strainr2/build.sh | 5 +++-- recipes/strainr2/meta.yaml | 16 +++++++--------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/recipes/strainr2/build.sh b/recipes/strainr2/build.sh index 7919ee79c22f1..1e72ed4dfcb40 100644 --- a/recipes/strainr2/build.sh +++ b/recipes/strainr2/build.sh @@ -3,15 +3,16 @@ mkdir -p "${PREFIX}/bin" ${CC} ${SRC_DIR}/subcontig.c -o subcontig +${CC} ${SRC_DIR}/hashcounter.c -o hashcounter chmod +x $SRC_DIR/PreProcessR chmod +x $SRC_DIR/subcontig -chmod +x $SRC_DIR/hashcounter.py +chmod +x $SRC_DIR/hashcounter chmod +x $SRC_DIR/Plot.R chmod +x $SRC_DIR/StrainR cp $SRC_DIR/PreProcessR ${PREFIX}/bin/ cp $SRC_DIR/subcontig ${PREFIX}/bin/ -cp $SRC_DIR/hashcounter.py ${PREFIX}/bin/ +cp $SRC_DIR/hashcounter ${PREFIX}/bin/ cp $SRC_DIR/Plot.R ${PREFIX}/bin/ cp $SRC_DIR/StrainR ${PREFIX}/bin/ diff --git a/recipes/strainr2/meta.yaml b/recipes/strainr2/meta.yaml index ee2da327887ff..8d6639c53117c 100644 --- a/recipes/strainr2/meta.yaml +++ b/recipes/strainr2/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.0.1" %} +{% set version = "2.0.0" %} package: name: strainr2 @@ -6,10 +6,10 @@ package: source: url: https://github.com/BisanzLab/StrainR2/archive/v{{ version }}.tar.gz - sha256: 943121e54a386bf3cf6e8278b6d443d0d3d2b0edfaff795bcc25777ad3879abb + sha256: 00ddd426e6d27e461c806282107503d93472a93c71c24e82069bf78be1d31a89 build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage("strainr2", max_pin="x") }} @@ -17,15 +17,13 @@ requirements: build: - {{ compiler('c') }} host: - - python - r-base >=4.2.0 + - r-optparse + - r-tidyverse run: - - python - bbmap - fastp - samtools - - sourmash >=4.0.0 - - r-base >=4.2.0 - r-optparse - r-tidyverse @@ -33,13 +31,13 @@ test: commands: - PreProcessR --help - subcontig -h - - hashcounter.py --help + - hashcounter -h - StrainR --help - Plot.R --help about: home: https://github.com/BisanzLab/StrainR2 license: MIT - summary: 'strainr2: get high accuracy metagenomic strain abundance.' + summary: 'StrainR2 accurately deconvolutes strain-level abundances in synthetic microbial communities using metagenomic sequencing reads' license_family: MIT license_file: LICENSE From 65be04832773dfce9c8f3fca5990a071412c62df Mon Sep 17 00:00:00 2001 From: Matty Allan <31744230+matthewfallan@users.noreply.github.com> Date: Tue, 16 Jul 2024 04:06:17 -0400 Subject: [PATCH 0617/1514] Add recipe for seismic-rna (#49237) * Initial commit of recipe for seismic-rna * Add run_exports to meta.yaml build section * Fix the problems causing linting errors * Apply suggestions from code review Co-authored-by: Martin Grigorov * Update meta.yaml Add Conda package brotli-python (equivalent of PyPI package brotli) to runtime dependencies * Update recipe generator; rebuild recipe files --------- Co-authored-by: Martin Grigorov --- recipes/seismic-rna/build.sh | 8 +++++++ recipes/seismic-rna/meta.yaml | 45 +++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 recipes/seismic-rna/build.sh create mode 100644 recipes/seismic-rna/meta.yaml diff --git a/recipes/seismic-rna/build.sh b/recipes/seismic-rna/build.sh new file mode 100644 index 0000000000000..9b50c3a0078a9 --- /dev/null +++ b/recipes/seismic-rna/build.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +# DO NOT RUN THIS SCRIPT YOURSELF! +# It should only be run by conda build. + +set -euxo pipefail + +$PYTHON -m pip install --no-dependencies $PWD \ No newline at end of file diff --git a/recipes/seismic-rna/meta.yaml b/recipes/seismic-rna/meta.yaml new file mode 100644 index 0000000000000..dd30945f9368b --- /dev/null +++ b/recipes/seismic-rna/meta.yaml @@ -0,0 +1,45 @@ +--- + +package: + name: seismic-rna + version: 0.19.2 +about: + home: https://github.com/rouskinlab/seismic-rna + license: GPL-3.0-only + license_family: GPL3 + license_file: LICENSE + license_url: https://www.gnu.org/licenses/gpl-3.0.html + summary: SEISMIC-RNA software by the Rouskin Lab +source: + url: https://github.com/rouskinlab/seismic-rna/archive/refs/tags/v0.19.2.tar.gz + sha256: ef2a7b6932cf3e6247bca25838dcacffca2a43523df5bf0eb455d3243b3f246f +build: + noarch: python + number: 0 + run_exports: + - {{ pin_subpackage("seismic-rna", max_pin="x.x") }} +requirements: + build: + - python >=3.10 + - hatch >=1.12 + run: + - python >=3.10 + - bowtie2 >=2.5.1 + - fastqc >=0.12.1 + - rnastructure >=6.3 + - samtools >=1.17 + - brotli-python >=1.0 + - brotli >=1.0 + - click >=8.1 + - cutadapt >=4.4 + - fastqsplitter >=1.2 + - matplotlib-base >=3.6 + - numpy >=1.23,<1.27 + - numba >=0.59 + - pandas >=1.5 + - plotly >=5.11 + - pyyaml >=6.0 + - scipy >=1.9 +test: + imports: + - seismicrna \ No newline at end of file From 2e573d2c4230b6ce163567129c3e5c0ec32ae461 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 06:37:28 -0400 Subject: [PATCH 0618/1514] Update pycomo to 0.2.2 (#49290) --- recipes/pycomo/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pycomo/meta.yaml b/recipes/pycomo/meta.yaml index 9e74bf5ddff0c..af10fd414d0aa 100644 --- a/recipes/pycomo/meta.yaml +++ b/recipes/pycomo/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pycomo" %} -{% set version = "0.2.1" %} +{% set version = "0.2.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pycomo-{{ version }}.tar.gz - sha256: d0ce661bb1a3d7852c2ca5ec2b8714fed2f8b1554da1e2f3874b70a74dd926f3 + sha256: 242973127addd422bcfabc8db79caaaa88c3a1e87f86b735a4de5449abe99331 build: entry_points: From 0923887fe8c7452779f2406a5ef8b7010a1ea26c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 06:37:55 -0400 Subject: [PATCH 0619/1514] Update cadd-scripts to 1.7.1 (#49291) --- recipes/cadd-scripts/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/cadd-scripts/meta.yaml b/recipes/cadd-scripts/meta.yaml index 57183b15af886..a507661a3f9dc 100644 --- a/recipes/cadd-scripts/meta.yaml +++ b/recipes/cadd-scripts/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.7" %} -{% set sha256 = "46f06c31adc7bdde612c60120f892f2a622494b02812fc047e0d3cee6bd25a0f" %} +{% set version = "1.7.1" %} +{% set sha256 = "c5db00dc26a585cc70500cf535865a4d9e7765db60a71edf1d267af32ae974e4" %} package: name: cadd-scripts From 82f6afaab7fb315232df1e7cc588eb30c88fb878 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 06:42:59 -0400 Subject: [PATCH 0620/1514] Update pia to 1.5.5 (#49292) --- recipes/pia/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pia/meta.yaml b/recipes/pia/meta.yaml index 2801feec2b3fe..83c9eb152c594 100644 --- a/recipes/pia/meta.yaml +++ b/recipes/pia/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pia" %} -{% set version = "1.5.4" %} -{% set sha256 = "a854e8c7132d6216e58e80a8c27f20f30c6720dfdaa6395d0f96293f37aa3ff8" %} +{% set version = "1.5.5" %} +{% set sha256 = "6493f9e4cb579b7943b9a1ddb99d8c21e4abb8eac1b486825bdcce123d3312e9" %} package: name: {{ name|lower }} From 3048a45a2af861c3611e8ea61b11c829f748d5a0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 07:56:12 -0400 Subject: [PATCH 0621/1514] Update annonars to 0.40.0 (#49294) --- recipes/annonars/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/annonars/meta.yaml b/recipes/annonars/meta.yaml index 3cd1ae6577bdb..f0329a528357d 100644 --- a/recipes/annonars/meta.yaml +++ b/recipes/annonars/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.39.0" %} +{% set version = "0.40.0" %} package: name: annonars @@ -12,7 +12,7 @@ build: source: url: https://github.com/varfish-org/annonars/archive/refs/tags/v{{ version }}.tar.gz - sha256: 7a2fcaae0d06657da6e0fa65828b5b4e8571b48d8029373315c3bc564c35b02c + sha256: 1860e69f89935aa5d5456e55070d4c172cd4b29bdf07ad16b6b4dcf95b4ef7b2 requirements: build: From c7e688ad109982c60029934ff989149a50f2d1c8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 07:58:29 -0400 Subject: [PATCH 0622/1514] Update ensembl-utils to 0.4.1 (#49295) --- recipes/ensembl-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ensembl-utils/meta.yaml b/recipes/ensembl-utils/meta.yaml index 1603d69fc8d76..6c5809c20dfae 100644 --- a/recipes/ensembl-utils/meta.yaml +++ b/recipes/ensembl-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ensembl-utils" %} -{% set version = "0.4.0" %} +{% set version = "0.4.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/ensembl_utils-{{ version }}.tar.gz - sha256: e21ee25f201d2b653fbd1c0d007ddc0e3a51f44e6b519738d19fdbebf155a29b + sha256: 77ec8c4a100df2981f4fb63a9dc13c90c454a8521614c523bfb66f9a273c5d7f build: entry_points: From d796854ad030889674d4843ae9feb53930a609cd Mon Sep 17 00:00:00 2001 From: Johan Dahlberg Date: Tue, 16 Jul 2024 14:43:18 +0200 Subject: [PATCH 0623/1514] bump pixelator to 0.18.2 (#49299) --- recipes/pixelator/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pixelator/meta.yaml b/recipes/pixelator/meta.yaml index d7d7c79822644..72c495e3f1b6a 100644 --- a/recipes/pixelator/meta.yaml +++ b/recipes/pixelator/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pixelator" %} {% set pypi_name = "pixelgen-pixelator" %} -{% set version = "0.18.1" %} +{% set version = "0.18.2" %} package: name: {{ name|lower }} @@ -8,7 +8,7 @@ package: source: url: https://pypi.io/packages/source/{{ pypi_name[0] }}/{{ pypi_name }}/pixelgen_pixelator-{{ version }}.tar.gz - sha256: 1a36b3de15ec8729f01d3950e9c8ca42657d2f3d62f8a13cb71958e617231275 + sha256: b2ae77b1118f804c47cb71e0af3b64d05657e670a9a0f24d79f57bacb38c2fcb build: entry_points: @@ -50,7 +50,7 @@ requirements: - semver >=3.0.0,<4.0.0 - ruamel.yaml >=0.17.21,<0.18.0 - pydantic >=2.0,<2.5 - - polars 0.20.19 + - polars >=1.1.0,<2.0 - importlib-resources >=5.12.0,<6.0.0 - fsspec >=2023.12.2,<2024.0.0 - fastparquet >=2023.8.0,<2024.0.0 From be6a414bed6a77b97e15d4166c24f1073fb6892c Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 16 Jul 2024 16:11:17 +0300 Subject: [PATCH 0624/1514] pytrf: add aarch64/arm64 builds (#49260) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/pytrf/meta.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/recipes/pytrf/meta.yaml b/recipes/pytrf/meta.yaml index db1573d1b88cb..f4afd5195b61e 100644 --- a/recipes/pytrf/meta.yaml +++ b/recipes/pytrf/meta.yaml @@ -11,8 +11,7 @@ source: sha256: "{{ sha256 }}" build: - number: 0 - skip: True # [py < 36] + number: 1 script: "{{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv" run_exports: - {{ pin_subpackage("pytrf", max_pin="x.x") }} @@ -36,3 +35,8 @@ about: license_family: MIT license_file: LICENSE summary: "a fast Python package for finding tandem repeat sequences" + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From 21216c133ee2d4818a813c3a4422aae5d16d28a9 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 16 Jul 2024 16:15:40 +0300 Subject: [PATCH 0625/1514] ucsc-pslsort: add linux-aarch64 build (#49296) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-pslsort/build.sh | 24 ++++++++++++++++-------- recipes/ucsc-pslsort/include.patch | 6 +++--- recipes/ucsc-pslsort/meta.yaml | 22 +++++++++++++++------- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 6916faaba447a..6e6dd0c95effc 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -931,7 +931,6 @@ recipes/ucsc-pslreps recipes/ucsc-pslscore recipes/ucsc-pslselect recipes/ucsc-pslsomerecords -recipes/ucsc-pslsort recipes/ucsc-pslstats recipes/ucsc-pslswap recipes/ucsc-psltobed diff --git a/recipes/ucsc-pslsort/build.sh b/recipes/ucsc-pslsort/build.sh index c3d14514620b3..b18c33998499e 100644 --- a/recipes/ucsc-pslsort/build.sh +++ b/recipes/ucsc-pslsort/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/pslSort && make) -cp bin/pslSort "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslSort" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/pslSort && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/pslSort "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/pslSort" diff --git a/recipes/ucsc-pslsort/include.patch b/recipes/ucsc-pslsort/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslsort/include.patch +++ b/recipes/ucsc-pslsort/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslsort/meta.yaml b/recipes/ucsc-pslsort/meta.yaml index 2831091fc2ec6..79c34e14b5ec6 100644 --- a/recipes/ucsc-pslsort/meta.yaml +++ b/recipes/ucsc-pslsort/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslsort" %} {% set program = "pslSort" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 5 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "Merge and sort psCluster .psl output files" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 8168eeab5570f0f2fb41119e323c814d97eb738b Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 16 Jul 2024 16:16:23 +0300 Subject: [PATCH 0626/1514] ucsc-nibfrag: add linux-aarch64 build (#49298) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-nibfrag/build.sh | 24 ++++++++++++++++-------- recipes/ucsc-nibfrag/include.patch | 6 +++--- recipes/ucsc-nibfrag/meta.yaml | 22 +++++++++++++++------- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 6e6dd0c95effc..682993551491c 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -896,7 +896,6 @@ recipes/ucsc-nettoaxt recipes/ucsc-nettobed recipes/ucsc-newprog recipes/ucsc-newpythonprog -recipes/ucsc-nibfrag recipes/ucsc-nibsize recipes/ucsc-oligomatch recipes/ucsc-overlapselect diff --git a/recipes/ucsc-nibfrag/build.sh b/recipes/ucsc-nibfrag/build.sh index 45e7eb54f7668..088a651a09043 100644 --- a/recipes/ucsc-nibfrag/build.sh +++ b/recipes/ucsc-nibfrag/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/nibFrag && make) -cp bin/nibFrag "$PREFIX/bin" -chmod +x "$PREFIX/bin/nibFrag" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/nibFrag && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -x bin/nibFrag "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/nibFrag" diff --git a/recipes/ucsc-nibfrag/include.patch b/recipes/ucsc-nibfrag/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-nibfrag/include.patch +++ b/recipes/ucsc-nibfrag/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-nibfrag/meta.yaml b/recipes/ucsc-nibfrag/meta.yaml index c4ad183570323..17bb497cfb5d5 100644 --- a/recipes/ucsc-nibfrag/meta.yaml +++ b/recipes/ucsc-nibfrag/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-nibfrag" %} {% set program = "nibFrag" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "Extract part of a nib file as .fa (all bases/gaps lower case by default)" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From e54194d5156f6b4ad1fd17b845d00bd4339f8b70 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 09:33:59 -0400 Subject: [PATCH 0627/1514] Update giatools to 0.1.2 (#49303) --- recipes/giatools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/giatools/meta.yaml b/recipes/giatools/meta.yaml index f63d780aa5808..c3ef78906c776 100644 --- a/recipes/giatools/meta.yaml +++ b/recipes/giatools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "giatools" %} -{% set version = "0.1.1" %} +{% set version = "0.1.2" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: "https://github.com/BMCV/giatools/archive/refs/tags/{{ version }}.zip" - sha256: 7b4aeb897382d493dd55f5440a3d2a81e70a096ddf88155faebfb38f0ec774f7 + sha256: a16291b3f3d1868559e8a87d9656a254da9f438e0dcd178ea331b707df3d8f1f build: number: 0 From 11710495923789fbf7f18f2b747d68d0d9bdda62 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 16 Jul 2024 16:47:34 +0300 Subject: [PATCH 0628/1514] libbigwig: add osx-arm64 build (#49289) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/libbigwig/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/libbigwig/meta.yaml b/recipes/libbigwig/meta.yaml index 83e1b7e602790..1dd557e47859e 100644 --- a/recipes/libbigwig/meta.yaml +++ b/recipes/libbigwig/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 5 + number: 6 run_exports: - {{ pin_subpackage('libbigwig', max_pin='x.x') }} @@ -38,4 +38,5 @@ test: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 + - osx-arm64 \ No newline at end of file From 7ed3419e1fa171e261c840eba5c36e8c86bc7a40 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 16 Jul 2024 16:49:49 +0300 Subject: [PATCH 0629/1514] ucsc-xmlcat: add linux-aarch64 build (#49301) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-xmlcat/build.sh | 22 +++++++++++++++------- recipes/ucsc-xmlcat/include.patch | 6 +++--- recipes/ucsc-xmlcat/meta.yaml | 22 +++++++++++++++------- 4 files changed, 33 insertions(+), 18 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 682993551491c..21f12677e65ff 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -969,7 +969,6 @@ recipes/ucsc-validatemanifest recipes/ucsc-websync recipes/ucsc-wigcorrelate recipes/ucsc-wordline -recipes/ucsc-xmlcat recipes/ucsc-xmltosql # Above v1.0.5 there are licensing restrictions and it cannot be distributed diff --git a/recipes/ucsc-xmlcat/build.sh b/recipes/ucsc-xmlcat/build.sh index e77c3bd1bbd9d..0c43ba87a8e5e 100644 --- a/recipes/ucsc-xmlcat/build.sh +++ b/recipes/ucsc-xmlcat/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" mkdir -p "$PREFIX/bin" export MACHTYPE=x86_64 export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/xmlCat && make) -cp bin/xmlCat "$PREFIX/bin" -chmod +x "$PREFIX/bin/xmlCat" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/xmlCat && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/xmlCat "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/xmlCat" diff --git a/recipes/ucsc-xmlcat/include.patch b/recipes/ucsc-xmlcat/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-xmlcat/include.patch +++ b/recipes/ucsc-xmlcat/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-xmlcat/meta.yaml b/recipes/ucsc-xmlcat/meta.yaml index ea0cafbacb9bf..f7728bd133b59 100644 --- a/recipes/ucsc-xmlcat/meta.yaml +++ b/recipes/ucsc-xmlcat/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-xmlcat" %} {% set program = "xmlCat" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "Concatenate xml files together, stuffing all records inside a single outer tag. " + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From b20b176b2a9574011b61dcb433e9587825697d51 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 16 Jul 2024 16:50:06 +0300 Subject: [PATCH 0630/1514] ucsc-toLower: add linux-aarch64 build (#49302) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-tolower/build.sh | 24 ++++++++++++++++-------- recipes/ucsc-tolower/include.patch | 6 +++--- recipes/ucsc-tolower/meta.yaml | 23 ++++++++++++++++------- 4 files changed, 35 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 21f12677e65ff..89ccb2917fa17 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -958,7 +958,6 @@ recipes/ucsc-taillines recipes/ucsc-tdbquery recipes/ucsc-texthistogram recipes/ucsc-ticktodate -recipes/ucsc-tolower recipes/ucsc-toupper recipes/ucsc-transmappsltogenepred recipes/ucsc-trfbig diff --git a/recipes/ucsc-tolower/build.sh b/recipes/ucsc-tolower/build.sh index 0af95bdbc3c1b..c59cd1a12634d 100644 --- a/recipes/ucsc-tolower/build.sh +++ b/recipes/ucsc-tolower/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/toLower && make) -cp bin/toLower "$PREFIX/bin" -chmod +x "$PREFIX/bin/toLower" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/toLower && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/toLower "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/toLower" diff --git a/recipes/ucsc-tolower/include.patch b/recipes/ucsc-tolower/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-tolower/include.patch +++ b/recipes/ucsc-tolower/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-tolower/meta.yaml b/recipes/ucsc-tolower/meta.yaml index 03e77a0938348..076b34215d2e8 100644 --- a/recipes/ucsc-tolower/meta.yaml +++ b/recipes/ucsc-tolower/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-tolower" %} {% set program = "toLower" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,10 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} + requirements: build: @@ -25,22 +28,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "Convert upper case to lower case in file. Leave other chars alone" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 1fb3a5ceea02ec73ab4e8cb89fe2ecc08e743e43 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 16 Jul 2024 16:59:18 +0300 Subject: [PATCH 0631/1514] orfanage: add aarch64/arm64 builds (#49286) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/orfanage/build.sh | 4 +++- recipes/orfanage/meta.yaml | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/recipes/orfanage/build.sh b/recipes/orfanage/build.sh index 0a34af0fb7f2e..c28fb2fe9f67a 100644 --- a/recipes/orfanage/build.sh +++ b/recipes/orfanage/build.sh @@ -1,7 +1,9 @@ #!/bin/bash +set -xe + mkdir build cd build cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DCMAKE_BUILD_TYPE=Release -DORFANAGE_BUILD_LIBBIGWIG=OFF -make +make -j ${CPU_COUNT} make install diff --git a/recipes/orfanage/meta.yaml b/recipes/orfanage/meta.yaml index bc65cc7e46222..69e4c32edb1ae 100644 --- a/recipes/orfanage/meta.yaml +++ b/recipes/orfanage/meta.yaml @@ -10,7 +10,7 @@ source: sha256: {{ sha }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('orfanage', max_pin="x") }} @@ -37,3 +37,8 @@ about: license: GPL-3.0-or-later license_file: LICENSE summary: 'Ultra-efficient and sensitive method to search for ORFs in spliced genomes guided by reference annotation to maximize protein similarity within genes.' + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From 039eefa58d81fd0a68b424cd0acc79fc88c3f5e9 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 16 Jul 2024 17:36:55 +0300 Subject: [PATCH 0632/1514] fastp: add osx-arm64 build (#49293) Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Alicia A. Evans <108547992+aliciaaevans@users.noreply.github.com> --- recipes/fastp/build.sh | 4 ++-- recipes/fastp/meta.yaml | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/recipes/fastp/build.sh b/recipes/fastp/build.sh index 2854121f27d26..a7f3dbddf899c 100644 --- a/recipes/fastp/build.sh +++ b/recipes/fastp/build.sh @@ -1,6 +1,6 @@ #!/bin/bash -set -eu -o pipefail +set -xeu -o pipefail mkdir -p $PREFIX/bin -make INCLUDE_DIRS="$PREFIX/include" LIBRARY_DIRS="$PREFIX/lib" +make -j ${CPU_COUNT} INCLUDE_DIRS="$PREFIX/include" LIBRARY_DIRS="$PREFIX/lib" make install diff --git a/recipes/fastp/meta.yaml b/recipes/fastp/meta.yaml index 6c59e2466cff6..148491c023d63 100644 --- a/recipes/fastp/meta.yaml +++ b/recipes/fastp/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 4fad6db156e769d46071add8a778a13a5cb5186bc1e1a5f9b1ffd499d84d72b5 build: - number: 4 + number: 5 run_exports: - {{ pin_subpackage("fastp", max_pin="x.x") }} @@ -32,6 +32,7 @@ test: extra: additional-platforms: - linux-aarch64 + - osx-arm64 about: home: https://github.com/OpenGene/fastp From c1953d965a28d95f54d5f45533a3cf4b8b210228 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 10:43:08 -0400 Subject: [PATCH 0633/1514] Update pyhmmer to 0.10.14 (#49305) --- recipes/pyhmmer/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pyhmmer/meta.yaml b/recipes/pyhmmer/meta.yaml index be975f2c996f2..9d1d0fd182385 100644 --- a/recipes/pyhmmer/meta.yaml +++ b/recipes/pyhmmer/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pyhmmer" %} -{% set version = "0.10.13" %} +{% set version = "0.10.14" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 65ef2211b96d804e17ba30df7061918a9c6c258353e732dba1ead32d2a623b2e + sha256: eb50bdfdf67a3b1fecfe877d7ca6d9bade9a9f3dea3ad60c959453bbb235573d build: number: 0 From c11ca12b1a0d078f01773af995255dbd673ed05e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 10:44:01 -0400 Subject: [PATCH 0634/1514] Update tobias to 0.17.0 (#49306) --- recipes/tobias/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/tobias/meta.yaml b/recipes/tobias/meta.yaml index b15a6c6c83076..b5ed3996c99f2 100644 --- a/recipes/tobias/meta.yaml +++ b/recipes/tobias/meta.yaml @@ -1,6 +1,6 @@ {% set name = "TOBIAS" %} -{% set version = "0.16.1" %} -{% set sha256 = "c46267c01287be06201b3e6f7a36daad1ad86d6c578f96e878501be7da7fd109" %} +{% set version = "0.17.0" %} +{% set sha256 = "b0965abcbe1cee6a8bf85c01b4ebcf49c678a4cf1f961855e60152d9ade6bd18" %} package: name: {{ name|lower }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 script: {{ PYTHON }} -m pip install . --use-pep517 --no-deps --no-build-isolation -vvv entry_points: - TOBIAS=tobias.TOBIAS:main From 908c18c3d5fb8aa11f282f7d7786dabd9ebf79cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gen=C3=ADs=20Bayarri?= Date: Tue, 16 Jul 2024 16:49:20 +0200 Subject: [PATCH 0635/1514] [biobb_chemistry] update 4.2.1 (#49307) --- recipes/biobb_chemistry/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/biobb_chemistry/meta.yaml b/recipes/biobb_chemistry/meta.yaml index 57de45e5e7fa4..2e12dae73345e 100644 --- a/recipes/biobb_chemistry/meta.yaml +++ b/recipes/biobb_chemistry/meta.yaml @@ -1,5 +1,5 @@ {% set name = "biobb_chemistry" %} -{% set version = "4.2.0" %} +{% set version = "4.2.1" %} package: name: '{{ name|lower }}' @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 9691549356d38bbce6b63fe8c66622cca7c704f57ee600133edfbd9bb5d871f0 + sha256: 729e6b3b955ad9e62997a162c58b3e84945b1e8a7a766a158a093ffb0b1388a8 build: number: 0 From 887341a0382bfad40d9d3858a2fe6e7075f21a6b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 12:13:12 -0400 Subject: [PATCH 0636/1514] Update chewbbaca to 3.3.9 (#49313) --- recipes/chewbbaca/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/chewbbaca/meta.yaml b/recipes/chewbbaca/meta.yaml index 43705581cdfaf..0e07a8938b6ad 100644 --- a/recipes/chewbbaca/meta.yaml +++ b/recipes/chewbbaca/meta.yaml @@ -1,5 +1,5 @@ {% set name = 'chewBBACA' %} -{% set version = '3.3.8' %} +{% set version = '3.3.9' %} package: name: {{ name|lower }} @@ -8,7 +8,7 @@ package: source: url: https://github.com/B-UMMI/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz # url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: de00c13dbd83f91ad7fc427262ceca3ae6746d0395213fb15e3c816965bf33dc + sha256: 7afef83a3e2bd7e451443073ce6f08bc2a9c2149ec9b23bc2be488553bc62169 # sha256: b54c5f4fb2f3c943f9ec51e5b81f4fb9a312fcc87fdea6e0a9f3edbebdf62308 build: From e3f3fde24f4e9bf155498ab523a06834199ae19f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 12:13:29 -0400 Subject: [PATCH 0637/1514] Update fgbio to 2.3.0 (#49311) --- recipes/fgbio/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/fgbio/meta.yaml b/recipes/fgbio/meta.yaml index ee2047de82028..496337cbe9149 100644 --- a/recipes/fgbio/meta.yaml +++ b/recipes/fgbio/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.2.1" %} +{% set version = "2.3.0" %} package: name: fgbio @@ -6,7 +6,7 @@ package: source: url: https://github.com/fulcrumgenomics/fgbio/releases/download/{{ version }}/fgbio-{{ version }}.jar - sha256: bb875e9a9218b841f39bdd007492b56be25b4d112ef7c22311c554b7b60fcd2c + sha256: a0748b52a92403d88e7cf799368c313a05f89c5e3da04f7f8829593a603b7c69 build: noarch: generic From 2e51efe7a64d2707769688cac5e5890eee30f592 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 12:13:45 -0400 Subject: [PATCH 0638/1514] Update fgbio-minimal to 2.3.0 (#49312) --- recipes/fgbio-minimal/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/fgbio-minimal/meta.yaml b/recipes/fgbio-minimal/meta.yaml index 23242dc27e036..ec8d76b58f4d5 100644 --- a/recipes/fgbio-minimal/meta.yaml +++ b/recipes/fgbio-minimal/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.2.1" %} +{% set version = "2.3.0" %} package: name: fgbio-minimal @@ -6,7 +6,7 @@ package: source: url: https://github.com/fulcrumgenomics/fgbio/releases/download/{{ version }}/fgbio-{{ version }}.jar - sha256: bb875e9a9218b841f39bdd007492b56be25b4d112ef7c22311c554b7b60fcd2c + sha256: a0748b52a92403d88e7cf799368c313a05f89c5e3da04f7f8829593a603b7c69 build: noarch: generic From a247d11f2c5780445a233cd18b7c56f3cf62ca74 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 16 Jul 2024 19:14:30 +0300 Subject: [PATCH 0639/1514] r-stitch: add linux-aarch64 build (#49132) * r-stitch: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Patch STITCH's SeqLib submodule for aarch64 Signed-off-by: Martin Tzvetanov Grigorov * Debug folder contents Signed-off-by: Martin Tzvetanov Grigorov * Pin C/C++ compiler versions only for Linux Signed-off-by: Martin Tzvetanov Grigorov * Revert compiler version pins Signed-off-by: Martin Tzvetanov Grigorov * r-stitch: Ping libcxx to 16.* for OSX Signed-off-by: Martin Tzvetanov Grigorov * Do not build osx-arm64 for r-stitch * Pin libcxx to 16.x for OSX Signed-off-by: Martin Tzvetanov Grigorov * Reset the build number * Pin libcxx to 16.x for OSX Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/r-stitch/build.sh | 13 + recipes/r-stitch/conda_build_config.yaml | 2 +- recipes/r-stitch/meta.yaml | 17 +- recipes/r-stitch/seqlib-aarch64.patch | 9340 ++++++++++++++++++++++ 4 files changed, 9364 insertions(+), 8 deletions(-) create mode 100644 recipes/r-stitch/build.sh create mode 100644 recipes/r-stitch/seqlib-aarch64.patch diff --git a/recipes/r-stitch/build.sh b/recipes/r-stitch/build.sh new file mode 100644 index 0000000000000..56a790ad9541b --- /dev/null +++ b/recipes/r-stitch/build.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +set -xe + +mkdir -p $PREFIX/bin +cp STITCH.R $PREFIX/bin + +# patch a Git submodule +pushd src/SeqLib/ +patch -p1 < ${RECIPE_DIR}/seqlib-aarch64.patch +popd + +$R CMD INSTALL --build --install-tests . diff --git a/recipes/r-stitch/conda_build_config.yaml b/recipes/r-stitch/conda_build_config.yaml index 05918073c06fa..4f2dcf10e9f82 100644 --- a/recipes/r-stitch/conda_build_config.yaml +++ b/recipes/r-stitch/conda_build_config.yaml @@ -1,4 +1,4 @@ c_compiler_version: - 12 cxx_compiler_version: - - 12 + - 12 \ No newline at end of file diff --git a/recipes/r-stitch/meta.yaml b/recipes/r-stitch/meta.yaml index 292b74ce3960c..34537d7679da9 100644 --- a/recipes/r-stitch/meta.yaml +++ b/recipes/r-stitch/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.6.10" %} -{% set sha256_package = "1e432655e299bb5941104c2645ed3a6b3c2c4a44b583c5aaa2b20d2538875f9e" %} +{% set version = "1.6.11" %} +{% set sha256_package = "eb6a8e121eb9689597da9ec5a105ba5392e458ab30510fe26b260b81a6d9fdb0" %} {% set sha256_script = "0c61d79cf519e5c5ae33807725577da3d1599bcc89413c3a6bce3fb7c99090c7" %} package: @@ -14,10 +14,9 @@ source: build: number: 0 - script: - - 'mkdir -p $PREFIX/bin && cp STITCH.R $PREFIX/bin' - - '$R CMD INSTALL --build --install-tests .' - + run_exports: + - {{ pin_subpackage('r-stitch', max_pin="x") }} + requirements: build: - {{ compiler('c') }} @@ -26,6 +25,7 @@ requirements: - automake - pkg-config - make + - libcxx <17 # [osx] host: - r-base - r-rcpp >=0.12.18 @@ -38,6 +38,7 @@ requirements: - mpc >=1.1.0 - libblas - zlib + - libcxx <17 # [osx] run: - r-base - r-rcpp >=0.12.18 @@ -62,7 +63,7 @@ test: about: home: https://github.com/rwdavies/stitch - license: GPL3 + license: GPL-3.0-only license_family: GPL3 license_file: LICENSE summary: STITCH - Sequencing To Imputation Through Constructing Haplotypes @@ -70,5 +71,7 @@ about: dev_url: https://github.com/rwdavies/stitch extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - rwdavies diff --git a/recipes/r-stitch/seqlib-aarch64.patch b/recipes/r-stitch/seqlib-aarch64.patch new file mode 100644 index 0000000000000..b52fd6c6937ed --- /dev/null +++ b/recipes/r-stitch/seqlib-aarch64.patch @@ -0,0 +1,9340 @@ +diff --git c/SeqLib/sse2neon.h i/SeqLib/sse2neon.h +new file mode 100644 +index 0000000..2b12721 +--- /dev/null ++++ i/SeqLib/sse2neon.h +@@ -0,0 +1,9301 @@ ++#ifndef SSE2NEON_H ++#define SSE2NEON_H ++ ++/* ++ * sse2neon is freely redistributable under the MIT License. ++ * ++ * Copyright (c) 2015-2024 SSE2NEON Contributors. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a copy ++ * of this software and associated documentation files (the "Software"), to deal ++ * in the Software without restriction, including without limitation the rights ++ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ++ * copies of the Software, and to permit persons to whom the Software is ++ * furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be included in ++ * all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++ * SOFTWARE. ++ */ ++ ++// This header file provides a simple API translation layer ++// between SSE intrinsics to their corresponding Arm/Aarch64 NEON versions ++// ++// Contributors to this work are: ++// John W. Ratcliff ++// Brandon Rowlett ++// Ken Fast ++// Eric van Beurden ++// Alexander Potylitsin ++// Hasindu Gamaarachchi ++// Jim Huang ++// Mark Cheng ++// Malcolm James MacLeod ++// Devin Hussey (easyaspi314) ++// Sebastian Pop ++// Developer Ecosystem Engineering ++// Danila Kutenin ++// François Turban (JishinMaster) ++// Pei-Hsuan Hung ++// Yang-Hao Yuan ++// Syoyo Fujita ++// Brecht Van Lommel ++// Jonathan Hue ++// Cuda Chen ++// Aymen Qader ++// Anthony Roberts ++ ++/* Tunable configurations */ ++ ++/* Enable precise implementation of math operations ++ * This would slow down the computation a bit, but gives consistent result with ++ * x86 SSE. (e.g. would solve a hole or NaN pixel in the rendering result) ++ */ ++/* _mm_min|max_ps|ss|pd|sd */ ++#ifndef SSE2NEON_PRECISE_MINMAX ++#define SSE2NEON_PRECISE_MINMAX (0) ++#endif ++/* _mm_rcp_ps */ ++#ifndef SSE2NEON_PRECISE_DIV ++#define SSE2NEON_PRECISE_DIV (0) ++#endif ++/* _mm_sqrt_ps and _mm_rsqrt_ps */ ++#ifndef SSE2NEON_PRECISE_SQRT ++#define SSE2NEON_PRECISE_SQRT (0) ++#endif ++/* _mm_dp_pd */ ++#ifndef SSE2NEON_PRECISE_DP ++#define SSE2NEON_PRECISE_DP (0) ++#endif ++ ++/* Enable inclusion of windows.h on MSVC platforms ++ * This makes _mm_clflush functional on windows, as there is no builtin. ++ */ ++#ifndef SSE2NEON_INCLUDE_WINDOWS_H ++#define SSE2NEON_INCLUDE_WINDOWS_H (0) ++#endif ++ ++/* compiler specific definitions */ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma push_macro("FORCE_INLINE") ++#pragma push_macro("ALIGN_STRUCT") ++#define FORCE_INLINE static inline __attribute__((always_inline)) ++#define ALIGN_STRUCT(x) __attribute__((aligned(x))) ++#define _sse2neon_likely(x) __builtin_expect(!!(x), 1) ++#define _sse2neon_unlikely(x) __builtin_expect(!!(x), 0) ++#elif defined(_MSC_VER) ++#if _MSVC_TRADITIONAL ++#error Using the traditional MSVC preprocessor is not supported! Use /Zc:preprocessor instead. ++#endif ++#ifndef FORCE_INLINE ++#define FORCE_INLINE static inline ++#endif ++#ifndef ALIGN_STRUCT ++#define ALIGN_STRUCT(x) __declspec(align(x)) ++#endif ++#define _sse2neon_likely(x) (x) ++#define _sse2neon_unlikely(x) (x) ++#else ++#pragma message("Macro name collisions may happen with unsupported compilers.") ++#endif ++ ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma push_macro("FORCE_INLINE_OPTNONE") ++#define FORCE_INLINE_OPTNONE static inline __attribute__((optimize("O0"))) ++#elif defined(__clang__) ++#pragma push_macro("FORCE_INLINE_OPTNONE") ++#define FORCE_INLINE_OPTNONE static inline __attribute__((optnone)) ++#else ++#define FORCE_INLINE_OPTNONE FORCE_INLINE ++#endif ++ ++#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ < 10 ++#warning "GCC versions earlier than 10 are not supported." ++#endif ++ ++/* C language does not allow initializing a variable with a function call. */ ++#ifdef __cplusplus ++#define _sse2neon_const static const ++#else ++#define _sse2neon_const const ++#endif ++ ++#include ++#include ++ ++#if defined(_WIN32) ++/* Definitions for _mm_{malloc,free} are provided by ++ * from both MinGW-w64 and MSVC. ++ */ ++#define SSE2NEON_ALLOC_DEFINED ++#endif ++ ++/* If using MSVC */ ++#ifdef _MSC_VER ++#include ++#if SSE2NEON_INCLUDE_WINDOWS_H ++#include ++#include ++#endif ++ ++#if !defined(__cplusplus) ++#error SSE2NEON only supports C++ compilation with this compiler ++#endif ++ ++#ifdef SSE2NEON_ALLOC_DEFINED ++#include ++#endif ++ ++#if (defined(_M_AMD64) || defined(__x86_64__)) || \ ++ (defined(_M_ARM64) || defined(__arm64__)) ++#define SSE2NEON_HAS_BITSCAN64 ++#endif ++#endif ++ ++#if defined(__GNUC__) || defined(__clang__) ++#define _sse2neon_define0(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define1(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define2(type, a, b, body) \ ++ __extension__({ \ ++ type _a = (a), _b = (b); \ ++ body \ ++ }) ++#define _sse2neon_return(ret) (ret) ++#else ++#define _sse2neon_define0(type, a, body) [=](type _a) { body }(a) ++#define _sse2neon_define1(type, a, body) [](type _a) { body }(a) ++#define _sse2neon_define2(type, a, b, body) \ ++ [](type _a, type _b) { body }((a), (b)) ++#define _sse2neon_return(ret) return ret ++#endif ++ ++#define _sse2neon_init(...) \ ++ { \ ++ __VA_ARGS__ \ ++ } ++ ++/* Compiler barrier */ ++#if defined(_MSC_VER) ++#define SSE2NEON_BARRIER() _ReadWriteBarrier() ++#else ++#define SSE2NEON_BARRIER() \ ++ do { \ ++ __asm__ __volatile__("" ::: "memory"); \ ++ (void) 0; \ ++ } while (0) ++#endif ++ ++/* Memory barriers ++ * __atomic_thread_fence does not include a compiler barrier; instead, ++ * the barrier is part of __atomic_load/__atomic_store's "volatile-like" ++ * semantics. ++ */ ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) ++#include ++#endif ++ ++FORCE_INLINE void _sse2neon_smp_mb(void) ++{ ++ SSE2NEON_BARRIER(); ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \ ++ !defined(__STDC_NO_ATOMICS__) ++ atomic_thread_fence(memory_order_seq_cst); ++#elif defined(__GNUC__) || defined(__clang__) ++ __atomic_thread_fence(__ATOMIC_SEQ_CST); ++#else /* MSVC */ ++ __dmb(_ARM64_BARRIER_ISH); ++#endif ++} ++ ++/* Architecture-specific build options */ ++/* FIXME: #pragma GCC push_options is only available on GCC */ ++#if defined(__GNUC__) ++#if defined(__arm__) && __ARM_ARCH == 7 ++/* According to ARM C Language Extensions Architecture specification, ++ * __ARM_NEON is defined to a value indicating the Advanced SIMD (NEON) ++ * architecture supported. ++ */ ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error "You must enable NEON instructions (e.g. -mfpu=neon) to use SSE2NEON." ++#endif ++#if !defined(__clang__) ++#pragma GCC push_options ++#pragma GCC target("fpu=neon") ++#endif ++#elif defined(__aarch64__) || defined(_M_ARM64) ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#pragma GCC target("+simd") ++#endif ++#elif __ARM_ARCH == 8 ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error \ ++ "You must enable NEON instructions (e.g. -mfpu=neon-fp-armv8) to use SSE2NEON." ++#endif ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#endif ++#else ++#error \ ++ "Unsupported target. Must be either ARMv7-A+NEON or ARMv8-A \ ++(you could try setting target explicitly with -march or -mcpu)" ++#endif ++#endif ++ ++#include ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) && (__ARM_ARCH == 8) ++#if defined __has_include && __has_include() ++#include ++#endif ++#endif ++ ++/* Apple Silicon cache lines are double of what is commonly used by Intel, AMD ++ * and other Arm microarchitectures use. ++ * From sysctl -a on Apple M1: ++ * hw.cachelinesize: 128 ++ */ ++#if defined(__APPLE__) && (defined(__aarch64__) || defined(__arm64__)) ++#define SSE2NEON_CACHELINE_SIZE 128 ++#else ++#define SSE2NEON_CACHELINE_SIZE 64 ++#endif ++ ++/* Rounding functions require either Aarch64 instructions or libm fallback */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#include ++#endif ++ ++/* On ARMv7, some registers, such as PMUSERENR and PMCCNTR, are read-only ++ * or even not accessible in user mode. ++ * To write or access to these registers in user mode, ++ * we have to perform syscall instead. ++ */ ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) ++#include ++#endif ++ ++/* "__has_builtin" can be used to query support for built-in functions ++ * provided by gcc/clang and other compilers that support it. ++ */ ++#ifndef __has_builtin /* GCC prior to 10 or non-clang compilers */ ++/* Compatibility with gcc <= 9 */ ++#if defined(__GNUC__) && (__GNUC__ <= 9) ++#define __has_builtin(x) HAS##x ++#define HAS__builtin_popcount 1 ++#define HAS__builtin_popcountll 1 ++ ++// __builtin_shuffle introduced in GCC 4.7.0 ++#if (__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) ++#define HAS__builtin_shuffle 1 ++#else ++#define HAS__builtin_shuffle 0 ++#endif ++ ++#define HAS__builtin_shufflevector 0 ++#define HAS__builtin_nontemporal_store 0 ++#else ++#define __has_builtin(x) 0 ++#endif ++#endif ++ ++/** ++ * MACRO for shuffle parameter for _mm_shuffle_ps(). ++ * Argument fp3 is a digit[0123] that represents the fp from argument "b" ++ * of mm_shuffle_ps that will be placed in fp3 of result. fp2 is the same ++ * for fp2 in result. fp1 is a digit[0123] that represents the fp from ++ * argument "a" of mm_shuffle_ps that will be places in fp1 of result. ++ * fp0 is the same for fp0 of result. ++ */ ++#define _MM_SHUFFLE(fp3, fp2, fp1, fp0) \ ++ (((fp3) << 6) | ((fp2) << 4) | ((fp1) << 2) | ((fp0))) ++ ++#if __has_builtin(__builtin_shufflevector) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __builtin_shufflevector(a, b, __VA_ARGS__) ++#elif __has_builtin(__builtin_shuffle) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __extension__({ \ ++ type tmp = {__VA_ARGS__}; \ ++ __builtin_shuffle(a, b, tmp); \ ++ }) ++#endif ++ ++#ifdef _sse2neon_shuffle ++#define vshuffle_s16(a, b, ...) _sse2neon_shuffle(int16x4_t, a, b, __VA_ARGS__) ++#define vshuffleq_s16(a, b, ...) _sse2neon_shuffle(int16x8_t, a, b, __VA_ARGS__) ++#define vshuffle_s32(a, b, ...) _sse2neon_shuffle(int32x2_t, a, b, __VA_ARGS__) ++#define vshuffleq_s32(a, b, ...) _sse2neon_shuffle(int32x4_t, a, b, __VA_ARGS__) ++#define vshuffle_s64(a, b, ...) _sse2neon_shuffle(int64x1_t, a, b, __VA_ARGS__) ++#define vshuffleq_s64(a, b, ...) _sse2neon_shuffle(int64x2_t, a, b, __VA_ARGS__) ++#endif ++ ++/* Rounding mode macros. */ ++#define _MM_FROUND_TO_NEAREST_INT 0x00 ++#define _MM_FROUND_TO_NEG_INF 0x01 ++#define _MM_FROUND_TO_POS_INF 0x02 ++#define _MM_FROUND_TO_ZERO 0x03 ++#define _MM_FROUND_CUR_DIRECTION 0x04 ++#define _MM_FROUND_NO_EXC 0x08 ++#define _MM_FROUND_RAISE_EXC 0x00 ++#define _MM_FROUND_NINT (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_FLOOR (_MM_FROUND_TO_NEG_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_CEIL (_MM_FROUND_TO_POS_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_TRUNC (_MM_FROUND_TO_ZERO | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_RINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_NEARBYINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_NO_EXC) ++#define _MM_ROUND_NEAREST 0x0000 ++#define _MM_ROUND_DOWN 0x2000 ++#define _MM_ROUND_UP 0x4000 ++#define _MM_ROUND_TOWARD_ZERO 0x6000 ++/* Flush zero mode macros. */ ++#define _MM_FLUSH_ZERO_MASK 0x8000 ++#define _MM_FLUSH_ZERO_ON 0x8000 ++#define _MM_FLUSH_ZERO_OFF 0x0000 ++/* Denormals are zeros mode macros. */ ++#define _MM_DENORMALS_ZERO_MASK 0x0040 ++#define _MM_DENORMALS_ZERO_ON 0x0040 ++#define _MM_DENORMALS_ZERO_OFF 0x0000 ++ ++/* indicate immediate constant argument in a given range */ ++#define __constrange(a, b) const ++ ++/* A few intrinsics accept traditional data types like ints or floats, but ++ * most operate on data types that are specific to SSE. ++ * If a vector type ends in d, it contains doubles, and if it does not have ++ * a suffix, it contains floats. An integer vector type can contain any type ++ * of integer, from chars to shorts to unsigned long longs. ++ */ ++typedef int64x1_t __m64; ++typedef float32x4_t __m128; /* 128-bit vector containing 4 floats */ ++// On ARM 32-bit architecture, the float64x2_t is not supported. ++// The data type __m128d should be represented in a different way for related ++// intrinsic conversion. ++#if defined(__aarch64__) || defined(_M_ARM64) ++typedef float64x2_t __m128d; /* 128-bit vector containing 2 doubles */ ++#else ++typedef float32x4_t __m128d; ++#endif ++typedef int64x2_t __m128i; /* 128-bit vector containing integers */ ++ ++// Some intrinsics operate on unaligned data types. ++typedef int16_t ALIGN_STRUCT(1) unaligned_int16_t; ++typedef int32_t ALIGN_STRUCT(1) unaligned_int32_t; ++typedef int64_t ALIGN_STRUCT(1) unaligned_int64_t; ++ ++// __int64 is defined in the Intrinsics Guide which maps to different datatype ++// in different data model ++#if !(defined(_WIN32) || defined(_WIN64) || defined(__int64)) ++#if (defined(__x86_64__) || defined(__i386__)) ++#define __int64 long long ++#else ++#define __int64 int64_t ++#endif ++#endif ++ ++/* type-safe casting between types */ ++ ++#define vreinterpretq_m128_f16(x) vreinterpretq_f32_f16(x) ++#define vreinterpretq_m128_f32(x) (x) ++#define vreinterpretq_m128_f64(x) vreinterpretq_f32_f64(x) ++ ++#define vreinterpretq_m128_u8(x) vreinterpretq_f32_u8(x) ++#define vreinterpretq_m128_u16(x) vreinterpretq_f32_u16(x) ++#define vreinterpretq_m128_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128_s8(x) vreinterpretq_f32_s8(x) ++#define vreinterpretq_m128_s16(x) vreinterpretq_f32_s16(x) ++#define vreinterpretq_m128_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_f16_m128(x) vreinterpretq_f16_f32(x) ++#define vreinterpretq_f32_m128(x) (x) ++#define vreinterpretq_f64_m128(x) vreinterpretq_f64_f32(x) ++ ++#define vreinterpretq_u8_m128(x) vreinterpretq_u8_f32(x) ++#define vreinterpretq_u16_m128(x) vreinterpretq_u16_f32(x) ++#define vreinterpretq_u32_m128(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_s8_m128(x) vreinterpretq_s8_f32(x) ++#define vreinterpretq_s16_m128(x) vreinterpretq_s16_f32(x) ++#define vreinterpretq_s32_m128(x) vreinterpretq_s32_f32(x) ++#define vreinterpretq_s64_m128(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_m128i_s8(x) vreinterpretq_s64_s8(x) ++#define vreinterpretq_m128i_s16(x) vreinterpretq_s64_s16(x) ++#define vreinterpretq_m128i_s32(x) vreinterpretq_s64_s32(x) ++#define vreinterpretq_m128i_s64(x) (x) ++ ++#define vreinterpretq_m128i_u8(x) vreinterpretq_s64_u8(x) ++#define vreinterpretq_m128i_u16(x) vreinterpretq_s64_u16(x) ++#define vreinterpretq_m128i_u32(x) vreinterpretq_s64_u32(x) ++#define vreinterpretq_m128i_u64(x) vreinterpretq_s64_u64(x) ++ ++#define vreinterpretq_f32_m128i(x) vreinterpretq_f32_s64(x) ++#define vreinterpretq_f64_m128i(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_s8_m128i(x) vreinterpretq_s8_s64(x) ++#define vreinterpretq_s16_m128i(x) vreinterpretq_s16_s64(x) ++#define vreinterpretq_s32_m128i(x) vreinterpretq_s32_s64(x) ++#define vreinterpretq_s64_m128i(x) (x) ++ ++#define vreinterpretq_u8_m128i(x) vreinterpretq_u8_s64(x) ++#define vreinterpretq_u16_m128i(x) vreinterpretq_u16_s64(x) ++#define vreinterpretq_u32_m128i(x) vreinterpretq_u32_s64(x) ++#define vreinterpretq_u64_m128i(x) vreinterpretq_u64_s64(x) ++ ++#define vreinterpret_m64_s8(x) vreinterpret_s64_s8(x) ++#define vreinterpret_m64_s16(x) vreinterpret_s64_s16(x) ++#define vreinterpret_m64_s32(x) vreinterpret_s64_s32(x) ++#define vreinterpret_m64_s64(x) (x) ++ ++#define vreinterpret_m64_u8(x) vreinterpret_s64_u8(x) ++#define vreinterpret_m64_u16(x) vreinterpret_s64_u16(x) ++#define vreinterpret_m64_u32(x) vreinterpret_s64_u32(x) ++#define vreinterpret_m64_u64(x) vreinterpret_s64_u64(x) ++ ++#define vreinterpret_m64_f16(x) vreinterpret_s64_f16(x) ++#define vreinterpret_m64_f32(x) vreinterpret_s64_f32(x) ++#define vreinterpret_m64_f64(x) vreinterpret_s64_f64(x) ++ ++#define vreinterpret_u8_m64(x) vreinterpret_u8_s64(x) ++#define vreinterpret_u16_m64(x) vreinterpret_u16_s64(x) ++#define vreinterpret_u32_m64(x) vreinterpret_u32_s64(x) ++#define vreinterpret_u64_m64(x) vreinterpret_u64_s64(x) ++ ++#define vreinterpret_s8_m64(x) vreinterpret_s8_s64(x) ++#define vreinterpret_s16_m64(x) vreinterpret_s16_s64(x) ++#define vreinterpret_s32_m64(x) vreinterpret_s32_s64(x) ++#define vreinterpret_s64_m64(x) (x) ++ ++#define vreinterpret_f32_m64(x) vreinterpret_f32_s64(x) ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f64_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f64_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) vreinterpretq_f64_f32(x) ++#define vreinterpretq_m128d_f64(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f64(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f64(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f64(x) ++ ++#define vreinterpretq_f64_m128d(x) (x) ++#define vreinterpretq_f32_m128d(x) vreinterpretq_f32_f64(x) ++#else ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_m128d_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_f32_m128d(x) (x) ++#endif ++ ++// A struct is defined in this header file called 'SIMDVec' which can be used ++// by applications which attempt to access the contents of an __m128 struct ++// directly. It is important to note that accessing the __m128 struct directly ++// is bad coding practice by Microsoft: @see: ++// https://learn.microsoft.com/en-us/cpp/cpp/m128 ++// ++// However, some legacy source code may try to access the contents of an __m128 ++// struct directly so the developer can use the SIMDVec as an alias for it. Any ++// casting must be done manually by the developer, as you cannot cast or ++// otherwise alias the base NEON data type for intrinsic operations. ++// ++// union intended to allow direct access to an __m128 variable using the names ++// that the MSVC compiler provides. This union should really only be used when ++// trying to access the members of the vector as integer values. GCC/clang ++// allow native access to the float members through a simple array access ++// operator (in C since 4.6, in C++ since 4.8). ++// ++// Ideally direct accesses to SIMD vectors should not be used since it can cause ++// a performance hit. If it really is needed however, the original __m128 ++// variable can be aliased with a pointer to this union and used to access ++// individual components. The use of this union should be hidden behind a macro ++// that is used throughout the codebase to access the members instead of always ++// declaring this type of variable. ++typedef union ALIGN_STRUCT(16) SIMDVec { ++ float m128_f32[4]; // as floats - DON'T USE. Added for convenience. ++ int8_t m128_i8[16]; // as signed 8-bit integers. ++ int16_t m128_i16[8]; // as signed 16-bit integers. ++ int32_t m128_i32[4]; // as signed 32-bit integers. ++ int64_t m128_i64[2]; // as signed 64-bit integers. ++ uint8_t m128_u8[16]; // as unsigned 8-bit integers. ++ uint16_t m128_u16[8]; // as unsigned 16-bit integers. ++ uint32_t m128_u32[4]; // as unsigned 32-bit integers. ++ uint64_t m128_u64[2]; // as unsigned 64-bit integers. ++} SIMDVec; ++ ++// casting using SIMDVec ++#define vreinterpretq_nth_u64_m128i(x, n) (((SIMDVec *) &x)->m128_u64[n]) ++#define vreinterpretq_nth_u32_m128i(x, n) (((SIMDVec *) &x)->m128_u32[n]) ++#define vreinterpretq_nth_u8_m128i(x, n) (((SIMDVec *) &x)->m128_u8[n]) ++ ++/* SSE macros */ ++#define _MM_GET_FLUSH_ZERO_MODE _sse2neon_mm_get_flush_zero_mode ++#define _MM_SET_FLUSH_ZERO_MODE _sse2neon_mm_set_flush_zero_mode ++#define _MM_GET_DENORMALS_ZERO_MODE _sse2neon_mm_get_denormals_zero_mode ++#define _MM_SET_DENORMALS_ZERO_MODE _sse2neon_mm_set_denormals_zero_mode ++ ++// Function declaration ++// SSE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void); ++FORCE_INLINE __m128 _mm_move_ss(__m128, __m128); ++FORCE_INLINE __m128 _mm_or_ps(__m128, __m128); ++FORCE_INLINE __m128 _mm_set_ps1(float); ++FORCE_INLINE __m128 _mm_setzero_ps(void); ++// SSE2 ++FORCE_INLINE __m128i _mm_and_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_castps_si128(__m128); ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128); ++FORCE_INLINE __m128d _mm_move_sd(__m128d, __m128d); ++FORCE_INLINE __m128i _mm_or_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_set_epi32(int, int, int, int); ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t, int64_t); ++FORCE_INLINE __m128d _mm_set_pd(double, double); ++FORCE_INLINE __m128i _mm_set1_epi32(int); ++FORCE_INLINE __m128i _mm_setzero_si128(void); ++// SSE4.1 ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d); ++FORCE_INLINE __m128 _mm_ceil_ps(__m128); ++FORCE_INLINE __m128d _mm_floor_pd(__m128d); ++FORCE_INLINE __m128 _mm_floor_ps(__m128); ++FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d, int); ++FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128, int); ++// SSE4.2 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t, uint8_t); ++ ++/* Backwards compatibility for compilers with lack of specific type support */ ++ ++// Older gcc does not define vld1q_u8_x4 type ++#if defined(__GNUC__) && !defined(__clang__) && \ ++ ((__GNUC__ <= 13 && defined(__arm__)) || \ ++ (__GNUC__ == 10 && __GNUC_MINOR__ < 3 && defined(__aarch64__)) || \ ++ (__GNUC__ <= 9 && defined(__aarch64__))) ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ uint8x16x4_t ret; ++ ret.val[0] = vld1q_u8(p + 0); ++ ret.val[1] = vld1q_u8(p + 16); ++ ret.val[2] = vld1q_u8(p + 32); ++ ret.val[3] = vld1q_u8(p + 48); ++ return ret; ++} ++#else ++// Wraps vld1q_u8_x4 ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ return vld1q_u8_x4(p); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddv u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ const uint64x1_t v1 = vpaddl_u32(vpaddl_u16(vpaddl_u8(v8))); ++ return vget_lane_u8(vreinterpret_u8_u64(v1), 0); ++} ++#else ++// Wraps vaddv_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ return vaddv_u8(v8); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ uint8x8_t tmp = vpadd_u8(vget_low_u8(a), vget_high_u8(a)); ++ uint8_t res = 0; ++ for (int i = 0; i < 8; ++i) ++ res += tmp[i]; ++ return res; ++} ++#else ++// Wraps vaddvq_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ return vaddvq_u8(a); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u16 variant */ ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ uint32x4_t m = vpaddlq_u16(a); ++ uint64x2_t n = vpaddlq_u32(m); ++ uint64x1_t o = vget_low_u64(n) + vget_high_u64(n); ++ ++ return vget_lane_u32((uint32x2_t) o, 0); ++} ++#else ++// Wraps vaddvq_u16 ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ return vaddvq_u16(a); ++} ++#endif ++ ++/* Function Naming Conventions ++ * The naming convention of SSE intrinsics is straightforward. A generic SSE ++ * intrinsic function is given as follows: ++ * _mm__ ++ * ++ * The parts of this format are given as follows: ++ * 1. describes the operation performed by the intrinsic ++ * 2. identifies the data type of the function's primary arguments ++ * ++ * This last part, , is a little complicated. It identifies the ++ * content of the input values, and can be set to any of the following values: ++ * + ps - vectors contain floats (ps stands for packed single-precision) ++ * + pd - vectors contain doubles (pd stands for packed double-precision) ++ * + epi8/epi16/epi32/epi64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * signed integers ++ * + epu8/epu16/epu32/epu64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * unsigned integers ++ * + si128 - unspecified 128-bit vector or 256-bit vector ++ * + m128/m128i/m128d - identifies input vector types when they are different ++ * than the type of the returned vector ++ * ++ * For example, _mm_setzero_ps. The _mm implies that the function returns ++ * a 128-bit vector. The _ps at the end implies that the argument vectors ++ * contain floats. ++ * ++ * A complete example: Byte Shuffle - pshufb (_mm_shuffle_epi8) ++ * // Set packed 16-bit integers. 128 bits, 8 short, per 16 bits ++ * __m128i v_in = _mm_setr_epi16(1, 2, 3, 4, 5, 6, 7, 8); ++ * // Set packed 8-bit integers ++ * // 128 bits, 16 chars, per 8 bits ++ * __m128i v_perm = _mm_setr_epi8(1, 0, 2, 3, 8, 9, 10, 11, ++ * 4, 5, 12, 13, 6, 7, 14, 15); ++ * // Shuffle packed 8-bit integers ++ * __m128i v_out = _mm_shuffle_epi8(v_in, v_perm); // pshufb ++ */ ++ ++/* Constants for use with _mm_prefetch. */ ++enum _mm_hint { ++ _MM_HINT_NTA = 0, /* load data to L1 and L2 cache, mark it as NTA */ ++ _MM_HINT_T0 = 1, /* load data to L1 and L2 cache */ ++ _MM_HINT_T1 = 2, /* load data to L2 cache only */ ++ _MM_HINT_T2 = 3, /* load data to L2 cache only, mark it as NTA */ ++}; ++ ++// The bit field mapping to the FPCR(floating-point control register) ++typedef struct { ++ uint16_t res0; ++ uint8_t res1 : 6; ++ uint8_t bit22 : 1; ++ uint8_t bit23 : 1; ++ uint8_t bit24 : 1; ++ uint8_t res2 : 7; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32_t res3; ++#endif ++} fpcr_bitfield; ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of b and places it into the high end of the result. ++FORCE_INLINE __m128 _mm_shuffle_ps_1032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in high ++// end of result takes the higher two 32 bit values from b and swaps them and ++// places in low end of result. ++FORCE_INLINE __m128 _mm_shuffle_ps_2301(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b23 = vrev64_f32(vget_high_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b23)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0321(__m128 a, __m128 b) ++{ ++ float32x2_t a21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a21, b03)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2103(__m128 a, __m128 b) ++{ ++ float32x2_t a03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a03, b21)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0101(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b01)); ++} ++ ++// keeps the low 64 bits of b in the low and puts the high 64 bits of a in the ++// high ++FORCE_INLINE __m128 _mm_shuffle_ps_3210(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0011(__m128 a, __m128 b) ++{ ++ float32x2_t a11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a11, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0022(__m128 a, __m128 b) ++{ ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a22, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2200(__m128 a, __m128 b) ++{ ++ float32x2_t a00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a00, b22)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_3202(__m128 a, __m128 b) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t a02 = vset_lane_f32(a0, a22, 1); /* TODO: use vzip ?*/ ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a02, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1133(__m128 a, __m128 b) ++{ ++ float32x2_t a33 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a33, b11)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b20)); ++} ++ ++// For MSVC, we check only if it is ARM64, as every single ARM64 processor ++// supported by WoA has crypto extensions. If this changes in the future, ++// this can be verified via the runtime-only method of: ++// IsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE) ++#if (defined(_M_ARM64) && !defined(__clang__)) || \ ++ (defined(__ARM_FEATURE_CRYPTO) && \ ++ (defined(__aarch64__) || __has_builtin(__builtin_arm_crypto_vmullp64))) ++// Wraps vmull_p64 ++FORCE_INLINE uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly64_t a = vget_lane_p64(vreinterpret_p64_u64(_a), 0); ++ poly64_t b = vget_lane_p64(vreinterpret_p64_u64(_b), 0); ++#if defined(_MSC_VER) ++ __n64 a1 = {a}, b1 = {b}; ++ return vreinterpretq_u64_p128(vmull_p64(a1, b1)); ++#else ++ return vreinterpretq_u64_p128(vmull_p64(a, b)); ++#endif ++} ++#else // ARMv7 polyfill ++// ARMv7/some A64 lacks vmull_p64, but it has vmull_p8. ++// ++// vmull_p8 calculates 8 8-bit->16-bit polynomial multiplies, but we need a ++// 64-bit->128-bit polynomial multiply. ++// ++// It needs some work and is somewhat slow, but it is still faster than all ++// known scalar methods. ++// ++// Algorithm adapted to C from ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/, which is adapted ++// from "Fast Software Polynomial Multiplication on ARM Processors Using the ++// NEON Engine" by Danilo Camara, Conrado Gouvea, Julio Lopez and Ricardo Dahab ++// (https://hal.inria.fr/hal-01506572) ++static uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly8x8_t a = vreinterpret_p8_u64(_a); ++ poly8x8_t b = vreinterpret_p8_u64(_b); ++ ++ // Masks ++ uint8x16_t k48_32 = vcombine_u8(vcreate_u8(0x0000ffffffffffff), ++ vcreate_u8(0x00000000ffffffff)); ++ uint8x16_t k16_00 = vcombine_u8(vcreate_u8(0x000000000000ffff), ++ vcreate_u8(0x0000000000000000)); ++ ++ // Do the multiplies, rotating with vext to get all combinations ++ uint8x16_t d = vreinterpretq_u8_p16(vmull_p8(a, b)); // D = A0 * B0 ++ uint8x16_t e = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 1))); // E = A0 * B1 ++ uint8x16_t f = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 1), b)); // F = A1 * B0 ++ uint8x16_t g = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 2))); // G = A0 * B2 ++ uint8x16_t h = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 2), b)); // H = A2 * B0 ++ uint8x16_t i = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 3))); // I = A0 * B3 ++ uint8x16_t j = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 3), b)); // J = A3 * B0 ++ uint8x16_t k = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 4))); // L = A0 * B4 ++ ++ // Add cross products ++ uint8x16_t l = veorq_u8(e, f); // L = E + F ++ uint8x16_t m = veorq_u8(g, h); // M = G + H ++ uint8x16_t n = veorq_u8(i, j); // N = I + J ++ ++ // Interleave. Using vzip1 and vzip2 prevents Clang from emitting TBL ++ // instructions. ++#if defined(__aarch64__) ++ uint8x16_t lm_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t lm_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t nk_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++ uint8x16_t nk_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++#else ++ uint8x16_t lm_p0 = vcombine_u8(vget_low_u8(l), vget_low_u8(m)); ++ uint8x16_t lm_p1 = vcombine_u8(vget_high_u8(l), vget_high_u8(m)); ++ uint8x16_t nk_p0 = vcombine_u8(vget_low_u8(n), vget_low_u8(k)); ++ uint8x16_t nk_p1 = vcombine_u8(vget_high_u8(n), vget_high_u8(k)); ++#endif ++ // t0 = (L) (P0 + P1) << 8 ++ // t1 = (M) (P2 + P3) << 16 ++ uint8x16_t t0t1_tmp = veorq_u8(lm_p0, lm_p1); ++ uint8x16_t t0t1_h = vandq_u8(lm_p1, k48_32); ++ uint8x16_t t0t1_l = veorq_u8(t0t1_tmp, t0t1_h); ++ ++ // t2 = (N) (P4 + P5) << 24 ++ // t3 = (K) (P6 + P7) << 32 ++ uint8x16_t t2t3_tmp = veorq_u8(nk_p0, nk_p1); ++ uint8x16_t t2t3_h = vandq_u8(nk_p1, k16_00); ++ uint8x16_t t2t3_l = veorq_u8(t2t3_tmp, t2t3_h); ++ ++ // De-interleave ++#if defined(__aarch64__) ++ uint8x16_t t0 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t1 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t2 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++ uint8x16_t t3 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++#else ++ uint8x16_t t1 = vcombine_u8(vget_high_u8(t0t1_l), vget_high_u8(t0t1_h)); ++ uint8x16_t t0 = vcombine_u8(vget_low_u8(t0t1_l), vget_low_u8(t0t1_h)); ++ uint8x16_t t3 = vcombine_u8(vget_high_u8(t2t3_l), vget_high_u8(t2t3_h)); ++ uint8x16_t t2 = vcombine_u8(vget_low_u8(t2t3_l), vget_low_u8(t2t3_h)); ++#endif ++ // Shift the cross products ++ uint8x16_t t0_shift = vextq_u8(t0, t0, 15); // t0 << 8 ++ uint8x16_t t1_shift = vextq_u8(t1, t1, 14); // t1 << 16 ++ uint8x16_t t2_shift = vextq_u8(t2, t2, 13); // t2 << 24 ++ uint8x16_t t3_shift = vextq_u8(t3, t3, 12); // t3 << 32 ++ ++ // Accumulate the products ++ uint8x16_t cross1 = veorq_u8(t0_shift, t1_shift); ++ uint8x16_t cross2 = veorq_u8(t2_shift, t3_shift); ++ uint8x16_t mix = veorq_u8(d, cross1); ++ uint8x16_t r = veorq_u8(mix, cross2); ++ return vreinterpretq_u64_u8(r); ++} ++#endif // ARMv7 polyfill ++ ++// C equivalent: ++// __m128i _mm_shuffle_epi32_default(__m128i a, ++// __constrange(0, 255) int imm) { ++// __m128i ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = a[(imm >> 4) & 0x03]; ret[3] = a[(imm >> 6) & 0x03]; ++// return ret; ++// } ++#define _mm_shuffle_epi32_default(a, imm) \ ++ vreinterpretq_m128i_s32(vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), \ ++ ((imm) >> 2) & 0x3), \ ++ vmovq_n_s32(vgetq_lane_s32( \ ++ vreinterpretq_s32_m128i(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of a and places it into the high end of the result. ++FORCE_INLINE __m128i _mm_shuffle_epi_1032(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in low end ++// of result takes the higher two 32 bit values from a and swaps them and places ++// in high end of result. ++FORCE_INLINE __m128i _mm_shuffle_epi_2301(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a23 = vrev64_s32(vget_high_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a23)); ++} ++ ++// rotates the least significant 32 bits into the most significant 32 bits, and ++// shifts the rest down ++FORCE_INLINE __m128i _mm_shuffle_epi_0321(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 1)); ++} ++ ++// rotates the most significant 32 bits into the least significant 32 bits, and ++// shifts the rest up ++FORCE_INLINE __m128i _mm_shuffle_epi_2103(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 3)); ++} ++ ++// gets the lower 64 bits of a, and places it in the upper 64 bits ++// gets the lower 64 bits of a and places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1010(__m128i a) ++{ ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a10, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements, and places it in the ++// lower 64 bits gets the lower 64 bits of a, and places it in the upper 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1001(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements and places it in the ++// upper 64 bits gets the lower 64 bits of a, swaps the 0 and 1 elements, and ++// places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_0101(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_2211(__m128i a) ++{ ++ int32x2_t a11 = vdup_lane_s32(vget_low_s32(vreinterpretq_s32_m128i(a)), 1); ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ return vreinterpretq_m128i_s32(vcombine_s32(a11, a22)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_0122(__m128i a) ++{ ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a22, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_3332(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a33 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 1); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a33)); ++} ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32(vdupq_laneq_s32(vreinterpretq_s32_m128i(a), (imm))) ++#else ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vdupq_n_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)))) ++#endif ++ ++// NEON does not support a general purpose permute intrinsic. ++// Shuffle single-precision (32-bit) floating-point elements in a using the ++// control in imm8, and store the results in dst. ++// ++// C equivalent: ++// __m128 _mm_shuffle_ps_default(__m128 a, __m128 b, ++// __constrange(0, 255) int imm) { ++// __m128 ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = b[(imm >> 4) & 0x03]; ret[3] = b[(imm >> 6) & 0x03]; ++// return ret; ++// } ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_ps ++#define _mm_shuffle_ps_default(a, b, imm) \ ++ vreinterpretq_m128_f32(vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), ((imm) >> 2) & 0x3), \ ++ vmovq_n_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Shuffle 16-bit integers in the low 64 bits of a using the control in imm8. ++// Store the results in the low 64 bits of dst, with the high 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflelo_epi16 ++#define _mm_shufflelo_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t lowBits = vget_low_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, (imm) & (0x3)), ret, 0); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++// Shuffle 16-bit integers in the high 64 bits of a using the control in imm8. ++// Store the results in the high 64 bits of dst, with the low 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflehi_epi16 ++#define _mm_shufflehi_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t highBits = vget_high_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, (imm) & (0x3)), ret, 4); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 2) & 0x3), ret, \ ++ 5); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 4) & 0x3), ret, \ ++ 6); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 6) & 0x3), ret, \ ++ 7); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++/* MMX */ ++ ++//_mm_empty is a no-op on arm ++FORCE_INLINE void _mm_empty(void) {} ++ ++/* SSE */ ++ ++// Add packed single-precision (32-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ps ++FORCE_INLINE __m128 _mm_add_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Add the lower single-precision (32-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ss ++FORCE_INLINE __m128 _mm_add_ss(__m128 a, __m128 b) ++{ ++ float32_t b0 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++ float32x4_t value = vsetq_lane_f32(b0, vdupq_n_f32(0), 0); ++ // the upper values in the result must be the remnants of . ++ return vreinterpretq_m128_f32(vaddq_f32(a, value)); ++} ++ ++// Compute the bitwise AND of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_ps ++FORCE_INLINE __m128 _mm_and_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vandq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Compute the bitwise NOT of packed single-precision (32-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_ps ++FORCE_INLINE __m128 _mm_andnot_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vbicq_s32(vreinterpretq_s32_m128(b), ++ vreinterpretq_s32_m128(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu16 ++FORCE_INLINE __m64 _mm_avg_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16( ++ vrhadd_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu8 ++FORCE_INLINE __m64 _mm_avg_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vrhadd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ps ++FORCE_INLINE __m128 _mm_cmpeq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ss ++FORCE_INLINE __m128 _mm_cmpeq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpeq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ps ++FORCE_INLINE __m128 _mm_cmpge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ss ++FORCE_INLINE __m128 _mm_cmpge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ps ++FORCE_INLINE __m128 _mm_cmpgt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ss ++FORCE_INLINE __m128 _mm_cmpgt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpgt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ps ++FORCE_INLINE __m128 _mm_cmple_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ss ++FORCE_INLINE __m128 _mm_cmple_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmple_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ps ++FORCE_INLINE __m128 _mm_cmplt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ss ++FORCE_INLINE __m128 _mm_cmplt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmplt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ps ++FORCE_INLINE __m128 _mm_cmpneq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ss ++FORCE_INLINE __m128 _mm_cmpneq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpneq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ps ++FORCE_INLINE __m128 _mm_cmpnge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ss ++FORCE_INLINE __m128 _mm_cmpnge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ps ++FORCE_INLINE __m128 _mm_cmpngt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ss ++FORCE_INLINE __m128 _mm_cmpngt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpngt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ps ++FORCE_INLINE __m128 _mm_cmpnle_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ss ++FORCE_INLINE __m128 _mm_cmpnle_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnle_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ps ++FORCE_INLINE __m128 _mm_cmpnlt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ss ++FORCE_INLINE __m128 _mm_cmpnlt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnlt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ps ++// ++// See also: ++// http://stackoverflow.com/questions/8627331/what-does-ordered-unordered-comparison-mean ++// http://stackoverflow.com/questions/29349621/neon-isnanval-intrinsics ++FORCE_INLINE __m128 _mm_cmpord_ps(__m128 a, __m128 b) ++{ ++ // Note: NEON does not have ordered compare builtin ++ // Need to compare a eq a and b eq b to check for NaN ++ // Do AND of results to get final ++ uint32x4_t ceqaa = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t ceqbb = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vandq_u32(ceqaa, ceqbb)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ss ++FORCE_INLINE __m128 _mm_cmpord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpord_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ps ++FORCE_INLINE __m128 _mm_cmpunord_ps(__m128 a, __m128 b) ++{ ++ uint32x4_t f32a = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t f32b = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vmvnq_u32(vandq_u32(f32a, f32b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ss ++FORCE_INLINE __m128 _mm_cmpunord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpunord_ps(a, b)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_ss ++FORCE_INLINE int _mm_comieq_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_eq_b = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_eq_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_ss ++FORCE_INLINE int _mm_comige_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_ge_b = ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_ge_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_ss ++FORCE_INLINE int _mm_comigt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_gt_b = ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_gt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_ss ++FORCE_INLINE int _mm_comile_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_le_b = ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_le_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_ss ++FORCE_INLINE int _mm_comilt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_lt_b = ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_lt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_ss ++FORCE_INLINE int _mm_comineq_ss(__m128 a, __m128 b) ++{ ++ return !_mm_comieq_ss(a, b); ++} ++ ++// Convert packed signed 32-bit integers in b to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, and copy the upper 2 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_pi2ps ++FORCE_INLINE __m128 _mm_cvt_pi2ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ps2pi ++FORCE_INLINE __m64 _mm_cvt_ps2pi(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))))); ++#else ++ return vreinterpret_m64_s32(vcvt_s32_f32(vget_low_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION))))); ++#endif ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_si2ss ++FORCE_INLINE __m128 _mm_cvt_si2ss(__m128 a, int b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ss2si ++FORCE_INLINE int _mm_cvt_ss2si(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vgetq_lane_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))), ++ 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int32_t) data; ++#endif ++} ++ ++// Convert packed 16-bit integers in a to packed single-precision (32-bit) ++// floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi16_ps ++FORCE_INLINE __m128 _mm_cvtpi16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vmovl_s16(vreinterpret_s16_m64(a)))); ++} ++ ++// Convert packed 32-bit integers in b to packed single-precision (32-bit) ++// floating-point elements, store the results in the lower 2 elements of dst, ++// and copy the upper 2 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_ps ++FORCE_INLINE __m128 _mm_cvtpi32_ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, then convert the packed signed 32-bit integers in b to ++// single-precision (32-bit) floating-point element, and store the results in ++// the upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32x2_ps ++FORCE_INLINE __m128 _mm_cvtpi32x2_ps(__m64 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vcombine_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b)))); ++} ++ ++// Convert the lower packed 8-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi8_ps ++FORCE_INLINE __m128 _mm_cvtpi8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vmovl_s16(vget_low_s16(vmovl_s8(vreinterpret_s8_m64(a)))))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 16-bit integers, and store the results in dst. Note: this intrinsic ++// will generate 0x7FFF, rather than 0x8000, for input values between 0x7FFF and ++// 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi16 ++FORCE_INLINE __m64 _mm_cvtps_pi16(__m128 a) ++{ ++ return vreinterpret_m64_s16( ++ vqmovn_s32(vreinterpretq_s32_m128i(_mm_cvtps_epi32(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi32 ++#define _mm_cvtps_pi32(a) _mm_cvt_ps2pi(a) ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 8-bit integers, and store the results in lower 4 elements of dst. ++// Note: this intrinsic will generate 0x7F, rather than 0x80, for input values ++// between 0x7F and 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi8 ++FORCE_INLINE __m64 _mm_cvtps_pi8(__m128 a) ++{ ++ return vreinterpret_m64_s8(vqmovn_s16( ++ vcombine_s16(vreinterpret_s16_m64(_mm_cvtps_pi16(a)), vdup_n_s16(0)))); ++} ++ ++// Convert packed unsigned 16-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu16_ps ++FORCE_INLINE __m128 _mm_cvtpu16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_u32(vmovl_u16(vreinterpret_u16_m64(a)))); ++} ++ ++// Convert the lower packed unsigned 8-bit integers in a to packed ++// single-precision (32-bit) floating-point elements, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu8_ps ++FORCE_INLINE __m128 _mm_cvtpu8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_u32( ++ vmovl_u16(vget_low_u16(vmovl_u8(vreinterpret_u8_m64(a)))))); ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_ss ++#define _mm_cvtsi32_ss(a, b) _mm_cvt_si2ss(a, b) ++ ++// Convert the signed 64-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_ss ++FORCE_INLINE __m128 _mm_cvtsi64_ss(__m128 a, int64_t b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Copy the lower single-precision (32-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_f32 ++FORCE_INLINE float _mm_cvtss_f32(__m128 a) ++{ ++ return vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si32 ++#define _mm_cvtss_si32(a) _mm_cvt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si64 ++FORCE_INLINE int64_t _mm_cvtss_si64(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return (int64_t) vgetq_lane_f32(vrndiq_f32(vreinterpretq_f32_m128(a)), 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int64_t) data; ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ps2pi ++FORCE_INLINE __m64 _mm_cvtt_ps2pi(__m128 a) ++{ ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ss2si ++FORCE_INLINE int _mm_cvtt_ss2si(__m128 a) ++{ ++ return vgetq_lane_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)), 0); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_pi32 ++#define _mm_cvttps_pi32(a) _mm_cvtt_ps2pi(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si32 ++#define _mm_cvttss_si32(a) _mm_cvtt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si64 ++FORCE_INLINE int64_t _mm_cvttss_si64(__m128 a) ++{ ++ return (int64_t) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Divide packed single-precision (32-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise division intrinsic, we implement ++// division by multiplying a by b's reciprocal before using the Newton-Raphson ++// method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ps ++FORCE_INLINE __m128 _mm_div_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vdivq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(b)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(a), recip)); ++#endif ++} ++ ++// Divide the lower single-precision (32-bit) floating-point element in a by the ++// lower single-precision (32-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper 3 packed elements from a to ++// the upper elements of dst. ++// Warning: ARMv7-A does not produce the same result compared to Intel and not ++// IEEE-compliant. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ss ++FORCE_INLINE __m128 _mm_div_ss(__m128 a, __m128 b) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_div_ps(a, b)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_pi16 ++#define _mm_extract_pi16(a, imm) \ ++ (int32_t) vget_lane_u16(vreinterpret_u16_m64(a), (imm)) ++ ++// Free aligned memory that was allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_free ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void _mm_free(void *addr) ++{ ++ free(addr); ++} ++#endif ++ ++FORCE_INLINE uint64_t _sse2neon_get_fpcr(void) ++{ ++ uint64_t value; ++#if defined(_MSC_VER) ++ value = _ReadStatusReg(ARM64_FPCR); ++#else ++ __asm__ __volatile__("mrs %0, FPCR" : "=r"(value)); /* read */ ++#endif ++ return value; ++} ++ ++FORCE_INLINE void _sse2neon_set_fpcr(uint64_t value) ++{ ++#if defined(_MSC_VER) ++ _WriteStatusReg(ARM64_FPCR, value); ++#else ++ __asm__ __volatile__("msr FPCR, %0" ::"r"(value)); /* write */ ++#endif ++} ++ ++// Macro: Get the flush zero bits from the MXCSR control and status register. ++// The flush zero may contain any of the following flags: _MM_FLUSH_ZERO_ON or ++// _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_FLUSH_ZERO_MODE ++FORCE_INLINE unsigned int _sse2neon_mm_get_flush_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_FLUSH_ZERO_ON : _MM_FLUSH_ZERO_OFF; ++} ++ ++// Macro: Get the rounding mode bits from the MXCSR control and status register. ++// The rounding mode may contain any of the following flags: _MM_ROUND_NEAREST, ++// _MM_ROUND_DOWN, _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_ROUNDING_MODE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ if (r.field.bit22) { ++ return r.field.bit23 ? _MM_ROUND_TOWARD_ZERO : _MM_ROUND_UP; ++ } else { ++ return r.field.bit23 ? _MM_ROUND_DOWN : _MM_ROUND_NEAREST; ++ } ++} ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_pi16 ++#define _mm_insert_pi16(a, b, imm) \ ++ vreinterpret_m64_s16(vset_lane_s16((b), vreinterpret_s16_m64(a), (imm))) ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps ++FORCE_INLINE __m128 _mm_load_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// ++// dst[31:0] := MEM[mem_addr+31:mem_addr] ++// dst[63:32] := MEM[mem_addr+31:mem_addr] ++// dst[95:64] := MEM[mem_addr+31:mem_addr] ++// dst[127:96] := MEM[mem_addr+31:mem_addr] ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps1 ++#define _mm_load_ps1 _mm_load1_ps ++ ++// Load a single-precision (32-bit) floating-point element from memory into the ++// lower of dst, and zero the upper 3 elements. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ss ++FORCE_INLINE __m128 _mm_load_ss(const float *p) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(*p, vdupq_n_f32(0), 0)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_ps ++FORCE_INLINE __m128 _mm_load1_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_dup_f32(p)); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// upper 2 elements of dst, and copy the lower 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pi ++FORCE_INLINE __m128 _mm_loadh_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vget_low_f32(a), vld1_f32((const float32_t *) p))); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// lower 2 elements of dst, and copy the upper 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pi ++FORCE_INLINE __m128 _mm_loadl_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vld1_f32((const float32_t *) p), vget_high_f32(a))); ++} ++ ++// Load 4 single-precision (32-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_ps ++FORCE_INLINE __m128 _mm_loadr_ps(const float *p) ++{ ++ float32x4_t v = vrev64q_f32(vld1q_f32(p)); ++ return vreinterpretq_m128_f32(vextq_f32(v, v, 2)); ++} ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_ps ++FORCE_INLINE __m128 _mm_loadu_ps(const float *p) ++{ ++ // for neon, alignment doesn't matter, so _mm_load_ps and _mm_loadu_ps are ++ // equivalent for neon ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load unaligned 16-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si16 ++FORCE_INLINE __m128i _mm_loadu_si16(const void *p) ++{ ++ return vreinterpretq_m128i_s16( ++ vsetq_lane_s16(*(const unaligned_int16_t *) p, vdupq_n_s16(0), 0)); ++} ++ ++// Load unaligned 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si64 ++FORCE_INLINE __m128i _mm_loadu_si64(const void *p) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(*(const unaligned_int64_t *) p, vdupq_n_s64(0), 0)); ++} ++ ++// Allocate size bytes of memory, aligned to the alignment specified in align, ++// and return a pointer to the allocated memory. _mm_free should be used to free ++// memory that is allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_malloc ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void *_mm_malloc(size_t size, size_t align) ++{ ++ void *ptr; ++ if (align == 1) ++ return malloc(size); ++ if (align == 2 || (sizeof(void *) == 8 && align == 4)) ++ align = sizeof(void *); ++ if (!posix_memalign(&ptr, align, size)) ++ return ptr; ++ return NULL; ++} ++#endif ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmove_si64 ++FORCE_INLINE void _mm_maskmove_si64(__m64 a, __m64 mask, char *mem_addr) ++{ ++ int8x8_t shr_mask = vshr_n_s8(vreinterpret_s8_m64(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x8_t masked = ++ vbsl_s8(vreinterpret_u8_s8(shr_mask), vreinterpret_s8_m64(a), ++ vreinterpret_s8_u64(vget_low_u64(vreinterpretq_u64_m128(b)))); ++ vst1_s8((int8_t *) mem_addr, masked); ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_maskmovq ++#define _m_maskmovq(a, mask, mem_addr) _mm_maskmove_si64(a, mask, mem_addr) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pi16 ++FORCE_INLINE __m64 _mm_max_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmax_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) maximum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ps ++FORCE_INLINE __m128 _mm_max_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcgtq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vmaxq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pu8 ++FORCE_INLINE __m64 _mm_max_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmax_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) maximum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ss ++FORCE_INLINE __m128 _mm_max_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_max_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pi16 ++FORCE_INLINE __m64 _mm_min_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmin_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) minimum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ps ++FORCE_INLINE __m128 _mm_min_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcltq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vminq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pu8 ++FORCE_INLINE __m64 _mm_min_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmin_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) minimum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ss ++FORCE_INLINE __m128 _mm_min_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_min_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the lower single-precision (32-bit) floating-point element from b to the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_ss ++FORCE_INLINE __m128 _mm_move_ss(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(vgetq_lane_f32(vreinterpretq_f32_m128(b), 0), ++ vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the upper 2 single-precision (32-bit) floating-point elements from b to ++// the lower 2 elements of dst, and copy the upper 2 elements from a to the ++// upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehl_ps ++FORCE_INLINE __m128 _mm_movehl_ps(__m128 a, __m128 b) ++{ ++#if defined(aarch64__) ++ return vreinterpretq_m128_u64( ++ vzip2q_u64(vreinterpretq_u64_m128(b), vreinterpretq_u64_m128(a))); ++#else ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(b32, a32)); ++#endif ++} ++ ++// Move the lower 2 single-precision (32-bit) floating-point elements from b to ++// the upper 2 elements of dst, and copy the lower 2 elements from a to the ++// lower 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movelh_ps ++FORCE_INLINE __m128 _mm_movelh_ps(__m128 __A, __m128 __B) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(__A)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(__B)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pi8 ++FORCE_INLINE int _mm_movemask_pi8(__m64 a) ++{ ++ uint8x8_t input = vreinterpret_u8_m64(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int8_t shift[8] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint8x8_t tmp = vshr_n_u8(input, 7); ++ return vaddv_u8(vshl_u8(tmp, vld1_s8(shift))); ++#else ++ // Refer the implementation of `_mm_movemask_epi8` ++ uint16x4_t high_bits = vreinterpret_u16_u8(vshr_n_u8(input, 7)); ++ uint32x2_t paired16 = ++ vreinterpret_u32_u16(vsra_n_u16(high_bits, high_bits, 7)); ++ uint8x8_t paired32 = ++ vreinterpret_u8_u32(vsra_n_u32(paired16, paired16, 14)); ++ return vget_lane_u8(paired32, 0) | ((int) vget_lane_u8(paired32, 4) << 4); ++#endif ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed single-precision (32-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_ps ++FORCE_INLINE int _mm_movemask_ps(__m128 a) ++{ ++ uint32x4_t input = vreinterpretq_u32_m128(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int32_t shift[4] = {0, 1, 2, 3}; ++ uint32x4_t tmp = vshrq_n_u32(input, 31); ++ return vaddvq_u32(vshlq_u32(tmp, vld1q_s32(shift))); ++#else ++ // Uses the exact same method as _mm_movemask_epi8, see that for details. ++ // Shift out everything but the sign bits with a 32-bit unsigned shift ++ // right. ++ uint64x2_t high_bits = vreinterpretq_u64_u32(vshrq_n_u32(input, 31)); ++ // Merge the two pairs together with a 64-bit unsigned shift right + add. ++ uint8x16_t paired = ++ vreinterpretq_u8_u64(vsraq_n_u64(high_bits, high_bits, 31)); ++ // Extract the result. ++ return vgetq_lane_u8(paired, 0) | (vgetq_lane_u8(paired, 8) << 2); ++#endif ++} ++ ++// Multiply packed single-precision (32-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ps ++FORCE_INLINE_OPTNONE __m128 _mm_mul_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vmulq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Multiply the lower single-precision (32-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ss ++FORCE_INLINE __m128 _mm_mul_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_mul_ps(a, b)); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_pu16 ++FORCE_INLINE __m64 _mm_mulhi_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16(vshrn_n_u32( ++ vmull_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b)), 16)); ++} ++ ++// Compute the bitwise OR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_ps ++FORCE_INLINE __m128 _mm_or_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vorrq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgb ++#define _m_pavgb(a, b) _mm_avg_pu8(a, b) ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgw ++#define _m_pavgw(a, b) _mm_avg_pu16(a, b) ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pextrw ++#define _m_pextrw(a, imm) _mm_extract_pi16(a, imm) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_pinsrw ++#define _m_pinsrw(a, i, imm) _mm_insert_pi16(a, i, imm) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxsw ++#define _m_pmaxsw(a, b) _mm_max_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxub ++#define _m_pmaxub(a, b) _mm_max_pu8(a, b) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminsw ++#define _m_pminsw(a, b) _mm_min_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminub ++#define _m_pminub(a, b) _mm_min_pu8(a, b) ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmovmskb ++#define _m_pmovmskb(a) _mm_movemask_pi8(a) ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmulhuw ++#define _m_pmulhuw(a, b) _mm_mulhi_pu16(a, b) ++ ++// Fetch the line of data from memory that contains address p to a location in ++// the cache hierarchy specified by the locality hint i. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_prefetch ++FORCE_INLINE void _mm_prefetch(char const *p, int i) ++{ ++ (void) i; ++#if defined(_MSC_VER) ++ switch (i) { ++ case _MM_HINT_NTA: ++ __prefetch2(p, 1); ++ break; ++ case _MM_HINT_T0: ++ __prefetch2(p, 0); ++ break; ++ case _MM_HINT_T1: ++ __prefetch2(p, 2); ++ break; ++ case _MM_HINT_T2: ++ __prefetch2(p, 4); ++ break; ++ } ++#else ++ switch (i) { ++ case _MM_HINT_NTA: ++ __builtin_prefetch(p, 0, 0); ++ break; ++ case _MM_HINT_T0: ++ __builtin_prefetch(p, 0, 3); ++ break; ++ case _MM_HINT_T1: ++ __builtin_prefetch(p, 0, 2); ++ break; ++ case _MM_HINT_T2: ++ __builtin_prefetch(p, 0, 1); ++ break; ++ } ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_psadbw ++#define _m_psadbw(a, b) _mm_sad_pu8(a, b) ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pshufw ++#define _m_pshufw(a, imm) _mm_shuffle_pi16(a, imm) ++ ++// Compute the approximate reciprocal of packed single-precision (32-bit) ++// floating-point elements in a, and store the results in dst. The maximum ++// relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ps ++FORCE_INLINE __m128 _mm_rcp_ps(__m128 in) ++{ ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(in)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#if SSE2NEON_PRECISE_DIV ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#endif ++ return vreinterpretq_m128_f32(recip); ++} ++ ++// Compute the approximate reciprocal of the lower single-precision (32-bit) ++// floating-point element in a, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ss ++FORCE_INLINE __m128 _mm_rcp_ss(__m128 a) ++{ ++ return _mm_move_ss(a, _mm_rcp_ps(a)); ++} ++ ++// Compute the approximate reciprocal square root of packed single-precision ++// (32-bit) floating-point elements in a, and store the results in dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ps ++FORCE_INLINE __m128 _mm_rsqrt_ps(__m128 in) ++{ ++ float32x4_t out = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Generate masks for detecting whether input has any 0.0f/-0.0f ++ // (which becomes positive/negative infinity by IEEE-754 arithmetic rules). ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t neg_inf = vdupq_n_u32(0xFF800000); ++ const uint32x4_t has_pos_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(out)); ++ const uint32x4_t has_neg_zero = ++ vceqq_u32(neg_inf, vreinterpretq_u32_f32(out)); ++ ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#if SSE2NEON_PRECISE_SQRT ++ // Additional Netwon-Raphson iteration for accuracy ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#endif ++ ++ // Set output vector element to infinity/negative-infinity if ++ // the corresponding input vector element is 0.0f/-0.0f. ++ out = vbslq_f32(has_pos_zero, (float32x4_t) pos_inf, out); ++ out = vbslq_f32(has_neg_zero, (float32x4_t) neg_inf, out); ++ ++ return vreinterpretq_m128_f32(out); ++} ++ ++// Compute the approximate reciprocal square root of the lower single-precision ++// (32-bit) floating-point element in a, store the result in the lower element ++// of dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ss ++FORCE_INLINE __m128 _mm_rsqrt_ss(__m128 in) ++{ ++ return vsetq_lane_f32(vgetq_lane_f32(_mm_rsqrt_ps(in), 0), in, 0); ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_pu8 ++FORCE_INLINE __m64 _mm_sad_pu8(__m64 a, __m64 b) ++{ ++ uint64x1_t t = vpaddl_u32(vpaddl_u16( ++ vpaddl_u8(vabd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))))); ++ return vreinterpret_m64_u16( ++ vset_lane_u16((int) vget_lane_u64(t, 0), vdup_n_u16(0), 0)); ++} ++ ++// Macro: Set the flush zero bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The flush zero may contain any of the ++// following flags: _MM_FLUSH_ZERO_ON or _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_FLUSH_ZERO_MODE ++FORCE_INLINE void _sse2neon_mm_set_flush_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_FLUSH_ZERO_MASK) == _MM_FLUSH_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps ++FORCE_INLINE __m128 _mm_set_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {x, y, z, w}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps1 ++FORCE_INLINE __m128 _mm_set_ps1(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Macro: Set the rounding mode bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The rounding mode may contain any of ++// the following flags: _MM_ROUND_NEAREST, _MM_ROUND_DOWN, _MM_ROUND_UP, ++// _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_ROUNDING_MODE ++FORCE_INLINE void _MM_SET_ROUNDING_MODE(int rounding) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ switch (rounding) { ++ case _MM_ROUND_TOWARD_ZERO: ++ r.field.bit22 = 1; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_DOWN: ++ r.field.bit22 = 0; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_UP: ++ r.field.bit22 = 1; ++ r.field.bit23 = 0; ++ break; ++ default: //_MM_ROUND_NEAREST ++ r.field.bit22 = 0; ++ r.field.bit23 = 0; ++ } ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Copy single-precision (32-bit) floating-point element a to the lower element ++// of dst, and zero the upper 3 elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ss ++FORCE_INLINE __m128 _mm_set_ss(float a) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(a, vdupq_n_f32(0), 0)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_ps ++FORCE_INLINE __m128 _mm_set1_ps(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Set the MXCSR control and status register with the value in unsigned 32-bit ++// integer a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setcsr ++// FIXME: _mm_setcsr() implementation supports changing the rounding mode only. ++FORCE_INLINE void _mm_setcsr(unsigned int a) ++{ ++ _MM_SET_ROUNDING_MODE(a); ++} ++ ++// Get the unsigned 32-bit value of the MXCSR control and status register. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_getcsr ++// FIXME: _mm_getcsr() implementation supports reading the rounding mode only. ++FORCE_INLINE unsigned int _mm_getcsr(void) ++{ ++ return _MM_GET_ROUNDING_MODE(); ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_ps ++FORCE_INLINE __m128 _mm_setr_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {w, z, y, x}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Return vector of type __m128 with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_ps ++FORCE_INLINE __m128 _mm_setzero_ps(void) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(0)); ++} ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi16 ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pi16(a, imm) \ ++ vreinterpret_m64_s16(vshuffle_s16( \ ++ vreinterpret_s16_m64(a), vreinterpret_s16_m64(a), (imm & 0x3), \ ++ ((imm >> 2) & 0x3), ((imm >> 4) & 0x3), ((imm >> 6) & 0x3))) ++#else ++#define _mm_shuffle_pi16(a, imm) \ ++ _sse2neon_define1( \ ++ __m64, a, int16x4_t ret; \ ++ ret = vmov_n_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), (imm) & (0x3))); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpret_m64_s16(ret));) ++#endif ++ ++// Perform a serializing operation on all store-to-memory instructions that were ++// issued prior to this instruction. Guarantees that every store instruction ++// that precedes, in program order, is globally visible before any store ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sfence ++FORCE_INLINE void _mm_sfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory and store-to-memory ++// instructions that were issued prior to this instruction. Guarantees that ++// every memory access that precedes, in program order, the memory fence ++// instruction is globally visible before any memory instruction which follows ++// the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mfence ++FORCE_INLINE void _mm_mfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory instructions that ++// were issued prior to this instruction. Guarantees that every load instruction ++// that precedes, in program order, is globally visible before any load ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lfence ++FORCE_INLINE void _mm_lfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// FORCE_INLINE __m128 _mm_shuffle_ps(__m128 a, __m128 b, __constrange(0,255) ++// int imm) ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_ps(a, b, imm) \ ++ __extension__({ \ ++ float32x4_t _input1 = vreinterpretq_f32_m128(a); \ ++ float32x4_t _input2 = vreinterpretq_f32_m128(b); \ ++ float32x4_t _shuf = \ ++ vshuffleq_s32(_input1, _input2, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ (((imm) >> 4) & 0x3) + 4, (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128_f32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_ps(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128, a, b, __m128 ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_1032(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_ps_2301(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_ps_0321(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_ps_2103(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_movelh_ps(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_1001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_ps_0101(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 1, 0): \ ++ ret = _mm_shuffle_ps_3210(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 1, 1): \ ++ ret = _mm_shuffle_ps_0011(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 2, 2): \ ++ ret = _mm_shuffle_ps_0022(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 0, 0): \ ++ ret = _mm_shuffle_ps_2200(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 0, 2): \ ++ ret = _mm_shuffle_ps_3202(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 3, 2): \ ++ ret = _mm_movehl_ps(_b, _a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 3, 3): \ ++ ret = _mm_shuffle_ps_1133(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 1, 0): \ ++ ret = _mm_shuffle_ps_2010(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_2001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_2032(_a, _b); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_ps_default(_a, _b, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Compute the square root of packed single-precision (32-bit) floating-point ++// elements in a, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise square root intrinsic, we implement ++// square root by multiplying input in with its reciprocal square root before ++// using the Newton-Raphson method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ps ++FORCE_INLINE __m128 _mm_sqrt_ps(__m128 in) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) && !SSE2NEON_PRECISE_SQRT ++ return vreinterpretq_m128_f32(vsqrtq_f32(vreinterpretq_f32_m128(in))); ++#else ++ float32x4_t recip = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Test for vrsqrteq_f32(0) -> positive infinity case. ++ // Change to zero, so that s * 1/sqrt(s) result is zero too. ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t div_by_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(recip)); ++ recip = vreinterpretq_f32_u32( ++ vandq_u32(vmvnq_u32(div_by_zero), vreinterpretq_u32_f32(recip))); ++ ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ ++ // sqrt(s) = s * 1/sqrt(s) ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(in), recip)); ++#endif ++} ++ ++// Compute the square root of the lower single-precision (32-bit) floating-point ++// element in a, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ss ++FORCE_INLINE __m128 _mm_sqrt_ss(__m128 in) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_sqrt_ps(in)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(in), 0)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps ++FORCE_INLINE void _mm_store_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps1 ++FORCE_INLINE void _mm_store_ps1(float *p, __m128 a) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ vst1q_f32(p, vdupq_n_f32(a0)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ss ++FORCE_INLINE void _mm_store_ss(float *p, __m128 a) ++{ ++ vst1q_lane_f32(p, vreinterpretq_f32_m128(a), 0); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store1_ps ++#define _mm_store1_ps _mm_store_ps1 ++ ++// Store the upper 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pi ++FORCE_INLINE void _mm_storeh_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_high_f32(a)); ++} ++ ++// Store the lower 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pi ++FORCE_INLINE void _mm_storel_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_low_f32(a)); ++} ++ ++// Store 4 single-precision (32-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_ps ++FORCE_INLINE void _mm_storer_ps(float *p, __m128 a) ++{ ++ float32x4_t tmp = vrev64q_f32(vreinterpretq_f32_m128(a)); ++ float32x4_t rev = vextq_f32(tmp, tmp, 2); ++ vst1q_f32(p, rev); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_ps ++FORCE_INLINE void _mm_storeu_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Stores 16-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si16 ++FORCE_INLINE void _mm_storeu_si16(void *p, __m128i a) ++{ ++ vst1q_lane_s16((int16_t *) p, vreinterpretq_s16_m128i(a), 0); ++} ++ ++// Stores 64-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si64 ++FORCE_INLINE void _mm_storeu_si64(void *p, __m128i a) ++{ ++ vst1q_lane_s64((int64_t *) p, vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Store 64-bits of integer data from a into memory using a non-temporal memory ++// hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pi ++FORCE_INLINE void _mm_stream_pi(__m64 *p, __m64 a) ++{ ++ vst1_s64((int64_t *) p, vreinterpret_s64_m64(a)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating- ++// point elements) from a into memory using a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_ps ++FORCE_INLINE void _mm_stream_ps(float *p, __m128 a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (float32x4_t *) p); ++#else ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++#endif ++} ++ ++// Subtract packed single-precision (32-bit) floating-point elements in b from ++// packed single-precision (32-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ps ++FORCE_INLINE __m128 _mm_sub_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Subtract the lower single-precision (32-bit) floating-point element in b from ++// the lower single-precision (32-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper 3 packed elements from ++// a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ss ++FORCE_INLINE __m128 _mm_sub_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_sub_ps(a, b)); ++} ++ ++// Macro: Transpose the 4x4 matrix formed by the 4 rows of single-precision ++// (32-bit) floating-point elements in row0, row1, row2, and row3, and store the ++// transposed matrix in these vectors (row0 now contains column 0, etc.). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=MM_TRANSPOSE4_PS ++#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \ ++ do { \ ++ float32x4x2_t ROW01 = vtrnq_f32(row0, row1); \ ++ float32x4x2_t ROW23 = vtrnq_f32(row2, row3); \ ++ row0 = vcombine_f32(vget_low_f32(ROW01.val[0]), \ ++ vget_low_f32(ROW23.val[0])); \ ++ row1 = vcombine_f32(vget_low_f32(ROW01.val[1]), \ ++ vget_low_f32(ROW23.val[1])); \ ++ row2 = vcombine_f32(vget_high_f32(ROW01.val[0]), \ ++ vget_high_f32(ROW23.val[0])); \ ++ row3 = vcombine_f32(vget_high_f32(ROW01.val[1]), \ ++ vget_high_f32(ROW23.val[1])); \ ++ } while (0) ++ ++// according to the documentation, these intrinsics behave the same as the ++// non-'u' versions. We'll just alias them here. ++#define _mm_ucomieq_ss _mm_comieq_ss ++#define _mm_ucomige_ss _mm_comige_ss ++#define _mm_ucomigt_ss _mm_comigt_ss ++#define _mm_ucomile_ss _mm_comile_ss ++#define _mm_ucomilt_ss _mm_comilt_ss ++#define _mm_ucomineq_ss _mm_comineq_ss ++ ++// Return vector of type __m128i with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_undefined_si128 ++FORCE_INLINE __m128i _mm_undefined_si128(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128i a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_si128(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Return vector of type __m128 with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_ps ++FORCE_INLINE __m128 _mm_undefined_ps(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128 a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_ps(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the high half a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_ps ++FORCE_INLINE __m128 _mm_unpackhi_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_ps ++FORCE_INLINE __m128 _mm_unpacklo_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Compute the bitwise XOR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_ps ++FORCE_INLINE __m128 _mm_xor_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ veorq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++/* SSE2 */ ++ ++// Add packed 16-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi16 ++FORCE_INLINE __m128i _mm_add_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed 32-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi32 ++FORCE_INLINE __m128i _mm_add_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vaddq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Add packed 64-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi64 ++FORCE_INLINE __m128i _mm_add_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vaddq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Add packed 8-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi8 ++FORCE_INLINE __m128i _mm_add_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed double-precision (64-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_pd ++FORCE_INLINE __m128d _mm_add_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1] + db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add the lower double-precision (64-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper element from ++// a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_sd ++FORCE_INLINE __m128d _mm_add_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_add_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add 64-bit integers a and b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_si64 ++FORCE_INLINE __m64 _mm_add_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vadd_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Add packed signed 16-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi16 ++FORCE_INLINE __m128i _mm_adds_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed signed 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi8 ++FORCE_INLINE __m128i _mm_adds_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed unsigned 16-bit integers in a and b using saturation, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu16 ++FORCE_INLINE __m128i _mm_adds_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqaddq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Add packed unsigned 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu8 ++FORCE_INLINE __m128i _mm_adds_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compute the bitwise AND of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_pd ++FORCE_INLINE __m128d _mm_and_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vandq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_si128 ++FORCE_INLINE __m128i _mm_and_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vandq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compute the bitwise NOT of packed double-precision (64-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_pd ++FORCE_INLINE __m128d _mm_andnot_pd(__m128d a, __m128d b) ++{ ++ // *NOTE* argument swap ++ return vreinterpretq_m128d_s64( ++ vbicq_s64(vreinterpretq_s64_m128d(b), vreinterpretq_s64_m128d(a))); ++} ++ ++// Compute the bitwise NOT of 128 bits (representing integer data) in a and then ++// AND with b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_si128 ++FORCE_INLINE __m128i _mm_andnot_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vbicq_s32(vreinterpretq_s32_m128i(b), ++ vreinterpretq_s32_m128i(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu16 ++FORCE_INLINE __m128i _mm_avg_epu16(__m128i a, __m128i b) ++{ ++ return (__m128i) vrhaddq_u16(vreinterpretq_u16_m128i(a), ++ vreinterpretq_u16_m128i(b)); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu8 ++FORCE_INLINE __m128i _mm_avg_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vrhaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bslli_si128 ++#define _mm_bslli_si128(a, imm) _mm_slli_si128(a, imm) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bsrli_si128 ++#define _mm_bsrli_si128(a, imm) _mm_srli_si128(a, imm) ++ ++// Cast vector of type __m128d to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_ps ++FORCE_INLINE __m128 _mm_castpd_ps(__m128d a) ++{ ++ return vreinterpretq_m128_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128d to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_si128 ++FORCE_INLINE __m128i _mm_castpd_si128(__m128d a) ++{ ++ return vreinterpretq_m128i_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128 to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_pd ++FORCE_INLINE __m128d _mm_castps_pd(__m128 a) ++{ ++ return vreinterpretq_m128d_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128 to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_si128 ++FORCE_INLINE __m128i _mm_castps_si128(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128i to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_pd ++FORCE_INLINE __m128d _mm_castsi128_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vreinterpretq_f64_m128i(a)); ++#else ++ return vreinterpretq_m128d_f32(vreinterpretq_f32_m128i(a)); ++#endif ++} ++ ++// Cast vector of type __m128i to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_ps ++FORCE_INLINE __m128 _mm_castsi128_ps(__m128i a) ++{ ++ return vreinterpretq_m128_s32(vreinterpretq_s32_m128i(a)); ++} ++ ++// Invalidate and flush the cache line that contains p from all levels of the ++// cache hierarchy. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clflush ++#if defined(__APPLE__) ++#include ++#endif ++FORCE_INLINE void _mm_clflush(void const *p) ++{ ++ (void) p; ++ ++ /* sys_icache_invalidate is supported since macOS 10.5. ++ * However, it does not work on non-jailbroken iOS devices, although the ++ * compilation is successful. ++ */ ++#if defined(__APPLE__) ++ sys_icache_invalidate((void *) (uintptr_t) p, SSE2NEON_CACHELINE_SIZE); ++#elif defined(__GNUC__) || defined(__clang__) ++ uintptr_t ptr = (uintptr_t) p; ++ __builtin___clear_cache((char *) ptr, ++ (char *) ptr + SSE2NEON_CACHELINE_SIZE); ++#elif (_MSC_VER) && SSE2NEON_INCLUDE_WINDOWS_H ++ FlushInstructionCache(GetCurrentProcess(), p, SSE2NEON_CACHELINE_SIZE); ++#endif ++} ++ ++// Compare packed 16-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi16 ++FORCE_INLINE __m128i _mm_cmpeq_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vceqq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed 32-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi32 ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vceqq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed 8-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi8 ++FORCE_INLINE __m128i _mm_cmpeq_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vceqq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_pd ++FORCE_INLINE __m128d _mm_cmpeq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_sd ++FORCE_INLINE __m128d _mm_cmpeq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpeq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_pd ++FORCE_INLINE __m128d _mm_cmpge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) >= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_sd ++FORCE_INLINE __m128d _mm_cmpge_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpge_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi16 ++FORCE_INLINE __m128i _mm_cmpgt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcgtq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi32 ++FORCE_INLINE __m128i _mm_cmpgt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcgtq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi8 ++FORCE_INLINE __m128i _mm_cmpgt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcgtq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_pd ++FORCE_INLINE __m128d _mm_cmpgt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_sd ++FORCE_INLINE __m128d _mm_cmpgt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpgt_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_pd ++FORCE_INLINE __m128d _mm_cmple_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) <= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_sd ++FORCE_INLINE __m128d _mm_cmple_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmple_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtw instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi16 ++FORCE_INLINE __m128i _mm_cmplt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcltq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtd instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi32 ++FORCE_INLINE __m128i _mm_cmplt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcltq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtb instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi8 ++FORCE_INLINE __m128i _mm_cmplt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcltq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_pd ++FORCE_INLINE __m128d _mm_cmplt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_sd ++FORCE_INLINE __m128d _mm_cmplt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmplt_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_pd ++FORCE_INLINE __m128d _mm_cmpneq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_s32(vmvnq_s32(vreinterpretq_s32_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vmvnq_u32(vandq_u32(cmp, swapped))); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_sd ++FORCE_INLINE __m128d _mm_cmpneq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpneq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_pd ++FORCE_INLINE __m128d _mm_cmpnge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) >= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) >= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_sd ++FORCE_INLINE __m128d _mm_cmpnge_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnge_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_cmpngt_pd ++FORCE_INLINE __m128d _mm_cmpngt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) > (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) > (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_sd ++FORCE_INLINE __m128d _mm_cmpngt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpngt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_pd ++FORCE_INLINE __m128d _mm_cmpnle_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) <= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) <= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_sd ++FORCE_INLINE __m128d _mm_cmpnle_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnle_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_pd ++FORCE_INLINE __m128d _mm_cmpnlt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) < (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) < (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_sd ++FORCE_INLINE __m128d _mm_cmpnlt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnlt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_pd ++FORCE_INLINE __m128d _mm_cmpord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Excluding NaNs, any two floating point numbers can be compared. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_u64(vandq_u64(not_nan_a, not_nan_b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_sd ++FORCE_INLINE __m128d _mm_cmpord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_pd ++FORCE_INLINE __m128d _mm_cmpunord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Two NaNs are not equal in comparison operation. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_s32( ++ vmvnq_s32(vreinterpretq_s32_u64(vandq_u64(not_nan_a, not_nan_b)))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_sd ++FORCE_INLINE __m128d _mm_cmpunord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpunord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_sd ++FORCE_INLINE int _mm_comige_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgeq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 >= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_sd ++FORCE_INLINE int _mm_comigt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgtq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 > *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_sd ++FORCE_INLINE int _mm_comile_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcleq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 <= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_sd ++FORCE_INLINE int _mm_comilt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcltq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 < *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_sd ++FORCE_INLINE int _mm_comieq_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vceqq_f64(a, b), 0) & 0x1; ++#else ++ uint32x4_t a_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(a)); ++ uint32x4_t b_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(b), vreinterpretq_u32_m128d(b)); ++ uint32x4_t a_and_b_not_nan = vandq_u32(a_not_nan, b_not_nan); ++ uint32x4_t a_eq_b = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint64x2_t and_results = vandq_u64(vreinterpretq_u64_u32(a_and_b_not_nan), ++ vreinterpretq_u64_u32(a_eq_b)); ++ return vgetq_lane_u64(and_results, 0) & 0x1; ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_sd ++FORCE_INLINE int _mm_comineq_sd(__m128d a, __m128d b) ++{ ++ return !_mm_comieq_sd(a, b); ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_pd ++FORCE_INLINE __m128d _mm_cvtepi32_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a))))); ++#else ++ double a0 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++ double a1 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_ps ++FORCE_INLINE __m128 _mm_cvtepi32_ps(__m128i a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_epi32 ++FORCE_INLINE_OPTNONE __m128i _mm_cvtpd_epi32(__m128d a) ++{ ++// vrnd32xq_f64 not supported on clang ++#if defined(__ARM_FEATURE_FRINT) && !defined(__clang__) ++ float64x2_t rounded = vrnd32xq_f64(vreinterpretq_f64_m128d(a)); ++ int64x2_t integers = vcvtq_s64_f64(rounded); ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vmovn_s64(integers), vdup_n_s32(0))); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) d1, (int32_t) d0); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_pi32 ++FORCE_INLINE_OPTNONE __m64 _mm_cvtpd_pi32(__m128d a) ++{ ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) d0, (int32_t) d1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed single-precision (32-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_ps ++FORCE_INLINE __m128 _mm_cvtpd_ps(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float32x2_t tmp = vcvt_f32_f64(vreinterpretq_f64_m128d(a)); ++ return vreinterpretq_m128_f32(vcombine_f32(tmp, vdup_n_f32(0))); ++#else ++ float a0 = (float) ((double *) &a)[0]; ++ float a1 = (float) ((double *) &a)[1]; ++ return _mm_set_ps(0, 0, a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_pd ++FORCE_INLINE __m128d _mm_cvtpi32_pd(__m64 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vreinterpret_s32_m64(a)))); ++#else ++ double a0 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 0); ++ double a1 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_epi32 ++// *NOTE*. The default rounding mode on SSE is 'round to even', which ARMv7-A ++// does not support! It is supported on ARMv8-A however. ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128 a) ++{ ++#if defined(__ARM_FEATURE_FRINT) ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vrnd32xq_f32(a))); ++#elif (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: ++ return vreinterpretq_m128i_s32(vcvtnq_s32_f32(a)); ++ case _MM_ROUND_DOWN: ++ return vreinterpretq_m128i_s32(vcvtmq_s32_f32(a)); ++ case _MM_ROUND_UP: ++ return vreinterpretq_m128i_s32(vcvtpq_s32_f32(a)); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(a)); ++ } ++#else ++ float *f = (float *) &a; ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128i_s32( ++ vbslq_s32(is_delta_half, r_even, r_normal)); ++ } ++ case _MM_ROUND_DOWN: ++ return _mm_set_epi32(floorf(f[3]), floorf(f[2]), floorf(f[1]), ++ floorf(f[0])); ++ case _MM_ROUND_UP: ++ return _mm_set_epi32(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ++ ceilf(f[0])); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return _mm_set_epi32((int32_t) f[3], (int32_t) f[2], (int32_t) f[1], ++ (int32_t) f[0]); ++ } ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed double-precision (64-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pd ++FORCE_INLINE __m128d _mm_cvtps_pd(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvt_f64_f32(vget_low_f32(vreinterpretq_f32_m128(a)))); ++#else ++ double a0 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ double a1 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Copy the lower double-precision (64-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_f64 ++FORCE_INLINE double _mm_cvtsd_f64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (double) vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0); ++#else ++ return ((double *) &a)[0]; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si32 ++FORCE_INLINE int32_t _mm_cvtsd_si32(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int32_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int32_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64 ++FORCE_INLINE int64_t _mm_cvtsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int64_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64x ++#define _mm_cvtsd_si64x _mm_cvtsd_si64 ++ ++// Convert the lower double-precision (64-bit) floating-point element in b to a ++// single-precision (32-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_ss ++FORCE_INLINE __m128 _mm_cvtsd_ss(__m128 a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32(vsetq_lane_f32( ++ vget_lane_f32(vcvt_f32_f64(vreinterpretq_f64_m128d(b)), 0), ++ vreinterpretq_f32_m128(a), 0)); ++#else ++ return vreinterpretq_m128_f32(vsetq_lane_f32((float) ((double *) &b)[0], ++ vreinterpretq_f32_m128(a), 0)); ++#endif ++} ++ ++// Copy the lower 32-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si32 ++FORCE_INLINE int _mm_cvtsi128_si32(__m128i a) ++{ ++ return vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64 ++FORCE_INLINE int64_t _mm_cvtsi128_si64(__m128i a) ++{ ++ return vgetq_lane_s64(vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Convert the signed 32-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_sd ++FORCE_INLINE __m128d _mm_cvtsi32_sd(__m128d a, int32_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Copy 32-bit integer a to the lower elements of dst, and zero the upper ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_si128 ++FORCE_INLINE __m128i _mm_cvtsi32_si128(int a) ++{ ++ return vreinterpretq_m128i_s32(vsetq_lane_s32(a, vdupq_n_s32(0), 0)); ++} ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_sd ++FORCE_INLINE __m128d _mm_cvtsi64_sd(__m128d a, int64_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_si128 ++FORCE_INLINE __m128i _mm_cvtsi64_si128(int64_t a) ++{ ++ return vreinterpretq_m128i_s64(vsetq_lane_s64(a, vdupq_n_s64(0), 0)); ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_si128 ++#define _mm_cvtsi64x_si128(a) _mm_cvtsi64_si128(a) ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_sd ++#define _mm_cvtsi64x_sd(a, b) _mm_cvtsi64_sd(a, b) ++ ++// Convert the lower single-precision (32-bit) floating-point element in b to a ++// double-precision (64-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_sd ++FORCE_INLINE __m128d _mm_cvtss_sd(__m128d a, __m128 b) ++{ ++ double d = (double) vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(d, vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &d, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_epi32 ++FORCE_INLINE __m128i _mm_cvttpd_epi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) a1, (int32_t) a0); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_pi32 ++FORCE_INLINE __m64 _mm_cvttpd_pi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) a0, (int32_t) a1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_epi32 ++FORCE_INLINE __m128i _mm_cvttps_epi32(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a))); ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si32 ++FORCE_INLINE int32_t _mm_cvttsd_si32(__m128d a) ++{ ++ double ret = *((double *) &a); ++ return (int32_t) ret; ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64 ++FORCE_INLINE int64_t _mm_cvttsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_s64(vcvtq_s64_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ double ret = *((double *) &a); ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64x ++#define _mm_cvttsd_si64x(a) _mm_cvttsd_si64(a) ++ ++// Divide packed double-precision (64-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_pd ++FORCE_INLINE __m128d _mm_div_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] / db[0]; ++ c[1] = da[1] / db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Divide the lower double-precision (64-bit) floating-point element in a by the ++// lower double-precision (64-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper element from a to the upper ++// element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_sd ++FORCE_INLINE __m128d _mm_div_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t tmp = ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1), tmp, 1)); ++#else ++ return _mm_move_sd(a, _mm_div_pd(a, b)); ++#endif ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi16 ++// FORCE_INLINE int _mm_extract_epi16(__m128i a, __constrange(0,8) int imm) ++#define _mm_extract_epi16(a, imm) \ ++ vgetq_lane_u16(vreinterpretq_u16_m128i(a), (imm)) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi16 ++// FORCE_INLINE __m128i _mm_insert_epi16(__m128i a, int b, ++// __constrange(0,8) int imm) ++#define _mm_insert_epi16(a, b, imm) \ ++ vreinterpretq_m128i_s16( \ ++ vsetq_lane_s16((b), vreinterpretq_s16_m128i(a), (imm))) ++ ++// Load 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd ++FORCE_INLINE __m128d _mm_load_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64(p)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], fp[2], fp[3]}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd1 ++#define _mm_load_pd1 _mm_load1_pd ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower of dst, and zero the upper element. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_sd ++FORCE_INLINE __m128d _mm_load_sd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(*p, vdupq_n_f64(0), 0)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], 0, 0}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_si128 ++FORCE_INLINE __m128i _mm_load_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const int32_t *) p)); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_pd ++FORCE_INLINE __m128d _mm_load1_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_dup_f64(p)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(const int64_t *) p)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// upper element of dst, and copy the lower element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pd ++FORCE_INLINE __m128d _mm_loadh_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vget_low_f64(vreinterpretq_f64_m128d(a)), vld1_f64(p))); ++#else ++ return vreinterpretq_m128d_f32(vcombine_f32( ++ vget_low_f32(vreinterpretq_f32_m128d(a)), vld1_f32((const float *) p))); ++#endif ++} ++ ++// Load 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_epi64 ++FORCE_INLINE __m128i _mm_loadl_epi64(__m128i const *p) ++{ ++ /* Load the lower 64 bits of the value pointed to by p into the ++ * lower 64 bits of the result, zeroing the upper 64 bits of the result. ++ */ ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vld1_s32((int32_t const *) p), vcreate_s32(0))); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower element of dst, and copy the upper element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pd ++FORCE_INLINE __m128d _mm_loadl_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vld1_f64(p), vget_high_f64(vreinterpretq_f64_m128d(a)))); ++#else ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vld1_f32((const float *) p), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++#endif ++} ++ ++// Load 2 double-precision (64-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_pd ++FORCE_INLINE __m128d _mm_loadr_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t v = vld1q_f64(p); ++ return vreinterpretq_m128d_f64(vextq_f64(v, v, 1)); ++#else ++ int64x2_t v = vld1q_s64((const int64_t *) p); ++ return vreinterpretq_m128d_s64(vextq_s64(v, v, 1)); ++#endif ++} ++ ++// Loads two double-precision from unaligned memory, floating-point values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_pd ++FORCE_INLINE __m128d _mm_loadu_pd(const double *p) ++{ ++ return _mm_load_pd(p); ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si128 ++FORCE_INLINE __m128i _mm_loadu_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const unaligned_int32_t *) p)); ++} ++ ++// Load unaligned 32-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si32 ++FORCE_INLINE __m128i _mm_loadu_si32(const void *p) ++{ ++ return vreinterpretq_m128i_s32( ++ vsetq_lane_s32(*(const unaligned_int32_t *) p, vdupq_n_s32(0), 0)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Horizontally add adjacent pairs of intermediate ++// 32-bit integers, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_madd_epi16 ++FORCE_INLINE __m128i _mm_madd_epi16(__m128i a, __m128i b) ++{ ++ int32x4_t low = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t high = ++ vmull_high_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)); ++ ++ return vreinterpretq_m128i_s32(vpaddq_s32(low, high)); ++#else ++ int32x4_t high = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ int32x2_t low_sum = vpadd_s32(vget_low_s32(low), vget_high_s32(low)); ++ int32x2_t high_sum = vpadd_s32(vget_low_s32(high), vget_high_s32(high)); ++ ++ return vreinterpretq_m128i_s32(vcombine_s32(low_sum, high_sum)); ++#endif ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. mem_addr does not need to be aligned ++// on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmoveu_si128 ++FORCE_INLINE void _mm_maskmoveu_si128(__m128i a, __m128i mask, char *mem_addr) ++{ ++ int8x16_t shr_mask = vshrq_n_s8(vreinterpretq_s8_m128i(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x16_t masked = ++ vbslq_s8(vreinterpretq_u8_s8(shr_mask), vreinterpretq_s8_m128i(a), ++ vreinterpretq_s8_m128(b)); ++ vst1q_s8((int8_t *) mem_addr, masked); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi16 ++FORCE_INLINE __m128i _mm_max_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmaxq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu8 ++FORCE_INLINE __m128i _mm_max_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vmaxq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pd ++FORCE_INLINE __m128d _mm_max_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcgtq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vmaxq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? a1 : b1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_sd ++FORCE_INLINE __m128d _mm_max_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_max_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] > db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi16 ++FORCE_INLINE __m128i _mm_min_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vminq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu8 ++FORCE_INLINE __m128i _mm_min_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vminq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pd ++FORCE_INLINE __m128d _mm_min_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcltq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vminq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? a1 : b1; ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_sd ++FORCE_INLINE __m128d _mm_min_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_min_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] < db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to the lower element of dst, and zero the ++// upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_epi64 ++FORCE_INLINE __m128i _mm_move_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(0, vreinterpretq_s64_m128i(a), 1)); ++} ++ ++// Move the lower double-precision (64-bit) floating-point element from b to the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_sd ++FORCE_INLINE __m128d _mm_move_sd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vget_low_f32(vreinterpretq_f32_m128d(b)), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_epi8 ++FORCE_INLINE int _mm_movemask_epi8(__m128i a) ++{ ++ // Use increasingly wide shifts+adds to collect the sign bits ++ // together. ++ // Since the widening shifts would be rather confusing to follow in little ++ // endian, everything will be illustrated in big endian order instead. This ++ // has a different result - the bits would actually be reversed on a big ++ // endian machine. ++ ++ // Starting input (only half the elements are shown): ++ // 89 ff 1d c0 00 10 99 33 ++ uint8x16_t input = vreinterpretq_u8_m128i(a); ++ ++ // Shift out everything but the sign bits with an unsigned shift right. ++ // ++ // Bytes of the vector:: ++ // 89 ff 1d c0 00 10 99 33 ++ // \ \ \ \ \ \ \ \ high_bits = (uint16x4_t)(input >> 7) ++ // | | | | | | | | ++ // 01 01 00 01 00 00 01 00 ++ // ++ // Bits of first important lane(s): ++ // 10001001 (89) ++ // \______ ++ // | ++ // 00000001 (01) ++ uint16x8_t high_bits = vreinterpretq_u16_u8(vshrq_n_u8(input, 7)); ++ ++ // Merge the even lanes together with a 16-bit unsigned shift right + add. ++ // 'xx' represents garbage data which will be ignored in the final result. ++ // In the important bytes, the add functions like a binary OR. ++ // ++ // 01 01 00 01 00 00 01 00 ++ // \_ | \_ | \_ | \_ | paired16 = (uint32x4_t)(input + (input >> 7)) ++ // \| \| \| \| ++ // xx 03 xx 01 xx 00 xx 02 ++ // ++ // 00000001 00000001 (01 01) ++ // \_______ | ++ // \| ++ // xxxxxxxx xxxxxx11 (xx 03) ++ uint32x4_t paired16 = ++ vreinterpretq_u32_u16(vsraq_n_u16(high_bits, high_bits, 7)); ++ ++ // Repeat with a wider 32-bit shift + add. ++ // xx 03 xx 01 xx 00 xx 02 ++ // \____ | \____ | paired32 = (uint64x1_t)(paired16 + (paired16 >> ++ // 14)) ++ // \| \| ++ // xx xx xx 0d xx xx xx 02 ++ // ++ // 00000011 00000001 (03 01) ++ // \\_____ || ++ // '----.\|| ++ // xxxxxxxx xxxx1101 (xx 0d) ++ uint64x2_t paired32 = ++ vreinterpretq_u64_u32(vsraq_n_u32(paired16, paired16, 14)); ++ ++ // Last, an even wider 64-bit shift + add to get our result in the low 8 bit ++ // lanes. xx xx xx 0d xx xx xx 02 ++ // \_________ | paired64 = (uint8x8_t)(paired32 + (paired32 >> ++ // 28)) ++ // \| ++ // xx xx xx xx xx xx xx d2 ++ // ++ // 00001101 00000010 (0d 02) ++ // \ \___ | | ++ // '---. \| | ++ // xxxxxxxx 11010010 (xx d2) ++ uint8x16_t paired64 = ++ vreinterpretq_u8_u64(vsraq_n_u64(paired32, paired32, 28)); ++ ++ // Extract the low 8 bits from each 64-bit lane with 2 8-bit extracts. ++ // xx xx xx xx xx xx xx d2 ++ // || return paired64[0] ++ // d2 ++ // Note: Little endian would return the correct value 4b (01001011) instead. ++ return vgetq_lane_u8(paired64, 0) | ((int) vgetq_lane_u8(paired64, 8) << 8); ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed double-precision (64-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pd ++FORCE_INLINE int _mm_movemask_pd(__m128d a) ++{ ++ uint64x2_t input = vreinterpretq_u64_m128d(a); ++ uint64x2_t high_bits = vshrq_n_u64(input, 63); ++ return (int) (vgetq_lane_u64(high_bits, 0) | ++ (vgetq_lane_u64(high_bits, 1) << 1)); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movepi64_pi64 ++FORCE_INLINE __m64 _mm_movepi64_pi64(__m128i a) ++{ ++ return vreinterpret_m64_s64(vget_low_s64(vreinterpretq_s64_m128i(a))); ++} ++ ++// Copy the 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movpi64_epi64 ++FORCE_INLINE __m128i _mm_movpi64_epi64(__m64 a) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vreinterpret_s64_m64(a), vdup_n_s64(0))); ++} ++ ++// Multiply the low unsigned 32-bit integers from each packed 64-bit element in ++// a and b, and store the unsigned 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epu32 ++FORCE_INLINE __m128i _mm_mul_epu32(__m128i a, __m128i b) ++{ ++ // vmull_u32 upcasts instead of masking, so we downcast. ++ uint32x2_t a_lo = vmovn_u64(vreinterpretq_u64_m128i(a)); ++ uint32x2_t b_lo = vmovn_u64(vreinterpretq_u64_m128i(b)); ++ return vreinterpretq_m128i_u64(vmull_u32(a_lo, b_lo)); ++} ++ ++// Multiply packed double-precision (64-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_pd ++FORCE_INLINE __m128d _mm_mul_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vmulq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] * db[0]; ++ c[1] = da[1] * db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Multiply the lower double-precision (64-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper element ++// from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_mul_sd ++FORCE_INLINE __m128d _mm_mul_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_mul_pd(a, b)); ++} ++ ++// Multiply the low unsigned 32-bit integers from a and b, and store the ++// unsigned 64-bit result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_su32 ++FORCE_INLINE __m64 _mm_mul_su32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u64(vget_low_u64( ++ vmull_u32(vreinterpret_u32_m64(a), vreinterpret_u32_m64(b)))); ++} ++ ++// Multiply the packed signed 16-bit integers in a and b, producing intermediate ++// 32-bit integers, and store the high 16 bits of the intermediate integers in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epi16 ++FORCE_INLINE __m128i _mm_mulhi_epi16(__m128i a, __m128i b) ++{ ++ /* FIXME: issue with large values because of result saturation */ ++ // int16x8_t ret = vqdmulhq_s16(vreinterpretq_s16_m128i(a), ++ // vreinterpretq_s16_m128i(b)); /* =2*a*b */ return ++ // vreinterpretq_m128i_s16(vshrq_n_s16(ret, 1)); ++ int16x4_t a3210 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b3210 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab3210 = vmull_s16(a3210, b3210); /* 3333222211110000 */ ++ int16x4_t a7654 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b7654 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab7654 = vmull_s16(a7654, b7654); /* 7777666655554444 */ ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_s32(ab3210), vreinterpretq_u16_s32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epu16 ++FORCE_INLINE __m128i _mm_mulhi_epu16(__m128i a, __m128i b) ++{ ++ uint16x4_t a3210 = vget_low_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b3210 = vget_low_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab3210 = vmull_u16(a3210, b3210); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32x4_t ab7654 = ++ vmull_high_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ uint16x8_t r = vuzp2q_u16(vreinterpretq_u16_u32(ab3210), ++ vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r); ++#else ++ uint16x4_t a7654 = vget_high_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b7654 = vget_high_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab7654 = vmull_u16(a7654, b7654); ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_u32(ab3210), vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++#endif ++} ++ ++// Multiply the packed 16-bit integers in a and b, producing intermediate 32-bit ++// integers, and store the low 16 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi16 ++FORCE_INLINE __m128i _mm_mullo_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmulq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compute the bitwise OR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_or_pd ++FORCE_INLINE __m128d _mm_or_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vorrq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise OR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_si128 ++FORCE_INLINE __m128i _mm_or_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vorrq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi16 ++FORCE_INLINE __m128i _mm_packs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vqmovn_s16(vreinterpretq_s16_m128i(a)), ++ vqmovn_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi32 ++FORCE_INLINE __m128i _mm_packs_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vqmovn_s32(vreinterpretq_s32_m128i(a)), ++ vqmovn_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi16 ++FORCE_INLINE __m128i _mm_packus_epi16(const __m128i a, const __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcombine_u8(vqmovun_s16(vreinterpretq_s16_m128i(a)), ++ vqmovun_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Pause the processor. This is typically used in spin-wait loops and depending ++// on the x86 processor typical values are in the 40-100 cycle range. The ++// 'yield' instruction isn't a good fit because it's effectively a nop on most ++// Arm cores. Experience with several databases has shown has shown an 'isb' is ++// a reasonable approximation. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_pause ++FORCE_INLINE void _mm_pause(void) ++{ ++#if defined(_MSC_VER) ++ __isb(_ARM64_BARRIER_SY); ++#else ++ __asm__ __volatile__("isb\n"); ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce two ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of 64-bit elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_epu8 ++FORCE_INLINE __m128i _mm_sad_epu8(__m128i a, __m128i b) ++{ ++ uint16x8_t t = vpaddlq_u8(vabdq_u8((uint8x16_t) a, (uint8x16_t) b)); ++ return vreinterpretq_m128i_u64(vpaddlq_u32(vpaddlq_u16(t))); ++} ++ ++// Set packed 16-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi16 ++FORCE_INLINE __m128i _mm_set_epi16(short i7, ++ short i6, ++ short i5, ++ short i4, ++ short i3, ++ short i2, ++ short i1, ++ short i0) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {i0, i1, i2, i3, i4, i5, i6, i7}; ++ return vreinterpretq_m128i_s16(vld1q_s16(data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi32 ++FORCE_INLINE __m128i _mm_set_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i0, i1, i2, i3}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64 ++FORCE_INLINE __m128i _mm_set_epi64(__m64 i1, __m64 i2) ++{ ++ return _mm_set_epi64x(vget_lane_s64(i1, 0), vget_lane_s64(i2, 0)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64x ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t i1, int64_t i2) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vcreate_s64(i2), vcreate_s64(i1))); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi8 ++FORCE_INLINE __m128i _mm_set_epi8(signed char b15, ++ signed char b14, ++ signed char b13, ++ signed char b12, ++ signed char b11, ++ signed char b10, ++ signed char b9, ++ signed char b8, ++ signed char b7, ++ signed char b6, ++ signed char b5, ++ signed char b4, ++ signed char b3, ++ signed char b2, ++ signed char b1, ++ signed char b0) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd ++FORCE_INLINE __m128d _mm_set_pd(double e1, double e0) ++{ ++ double ALIGN_STRUCT(16) data[2] = {e0, e1}; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64((float64_t *) data)); ++#else ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) data)); ++#endif ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd1 ++#define _mm_set_pd1 _mm_set1_pd ++ ++// Copy double-precision (64-bit) floating-point element a to the lower element ++// of dst, and zero the upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_sd ++FORCE_INLINE __m128d _mm_set_sd(double a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(a, vdupq_n_f64(0), 0)); ++#else ++ return _mm_set_pd(0, a); ++#endif ++} ++ ++// Broadcast 16-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi16 ++FORCE_INLINE __m128i _mm_set1_epi16(short w) ++{ ++ return vreinterpretq_m128i_s16(vdupq_n_s16(w)); ++} ++ ++// Broadcast 32-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi32 ++FORCE_INLINE __m128i _mm_set1_epi32(int _i) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(_i)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64 ++FORCE_INLINE __m128i _mm_set1_epi64(__m64 _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_lane_s64(_i, 0)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64x ++FORCE_INLINE __m128i _mm_set1_epi64x(int64_t _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_n_s64(_i)); ++} ++ ++// Broadcast 8-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi8 ++FORCE_INLINE __m128i _mm_set1_epi8(signed char w) ++{ ++ return vreinterpretq_m128i_s8(vdupq_n_s8(w)); ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_pd ++FORCE_INLINE __m128d _mm_set1_pd(double d) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(d)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(int64_t *) &d)); ++#endif ++} ++ ++// Set packed 16-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi16 ++FORCE_INLINE __m128i _mm_setr_epi16(short w0, ++ short w1, ++ short w2, ++ short w3, ++ short w4, ++ short w5, ++ short w6, ++ short w7) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {w0, w1, w2, w3, w4, w5, w6, w7}; ++ return vreinterpretq_m128i_s16(vld1q_s16((int16_t *) data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi32 ++FORCE_INLINE __m128i _mm_setr_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i3, i2, i1, i0}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi64 ++FORCE_INLINE __m128i _mm_setr_epi64(__m64 e1, __m64 e0) ++{ ++ return vreinterpretq_m128i_s64(vcombine_s64(e1, e0)); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi8 ++FORCE_INLINE __m128i _mm_setr_epi8(signed char b0, ++ signed char b1, ++ signed char b2, ++ signed char b3, ++ signed char b4, ++ signed char b5, ++ signed char b6, ++ signed char b7, ++ signed char b8, ++ signed char b9, ++ signed char b10, ++ signed char b11, ++ signed char b12, ++ signed char b13, ++ signed char b14, ++ signed char b15) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_pd ++FORCE_INLINE __m128d _mm_setr_pd(double e1, double e0) ++{ ++ return _mm_set_pd(e0, e1); ++} ++ ++// Return vector of type __m128d with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_pd ++FORCE_INLINE __m128d _mm_setzero_pd(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(0)); ++#else ++ return vreinterpretq_m128d_f32(vdupq_n_f32(0)); ++#endif ++} ++ ++// Return vector of type __m128i with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_si128 ++FORCE_INLINE __m128i _mm_setzero_si128(void) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(0)); ++} ++ ++// Shuffle 32-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi32 ++// FORCE_INLINE __m128i _mm_shuffle_epi32(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shuffle_epi32(a, imm) \ ++ __extension__({ \ ++ int32x4_t _input = vreinterpretq_s32_m128i(a); \ ++ int32x4_t _shuf = \ ++ vshuffleq_s32(_input, _input, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ ((imm) >> 4) & 0x3, ((imm) >> 6) & 0x3); \ ++ vreinterpretq_m128i_s32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_epi32(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, __m128i ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_epi_1032(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_epi_2301(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_epi_0321(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_epi_2103(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_shuffle_epi_1010(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_epi_1001(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_epi_0101(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 1, 1): \ ++ ret = _mm_shuffle_epi_2211(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 2, 2): \ ++ ret = _mm_shuffle_epi_0122(_a); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 2): \ ++ ret = _mm_shuffle_epi_3332(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 0, 0): \ ++ ret = _mm_shuffle_epi32_splat(_a, 0); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 1, 1): \ ++ ret = _mm_shuffle_epi32_splat(_a, 1); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 2, 2): \ ++ ret = _mm_shuffle_epi32_splat(_a, 2); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 3): \ ++ ret = _mm_shuffle_epi32_splat(_a, 3); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_epi32_default(_a, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Shuffle double-precision (64-bit) floating-point elements using the control ++// in imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pd ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pd(a, b, imm8) \ ++ vreinterpretq_m128d_s64( \ ++ vshuffleq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b), \ ++ imm8 & 0x1, ((imm8 & 0x2) >> 1) + 2)) ++#else ++#define _mm_shuffle_pd(a, b, imm8) \ ++ _mm_castsi128_pd(_mm_set_epi64x( \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(b), (imm8 & 0x2) >> 1), \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(a), imm8 & 0x1))) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflehi_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflehi_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = \ ++ vshuffleq_s16(_input, _input, 0, 1, 2, 3, ((imm) & (0x3)) + 4, \ ++ (((imm) >> 2) & 0x3) + 4, (((imm) >> 4) & 0x3) + 4, \ ++ (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflehi_epi16(a, imm) _mm_shufflehi_epi16_function((a), (imm)) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflelo_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflelo_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = vshuffleq_s16( \ ++ _input, _input, ((imm) & (0x3)), (((imm) >> 2) & 0x3), \ ++ (((imm) >> 4) & 0x3), (((imm) >> 6) & 0x3), 4, 5, 6, 7); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflelo_epi16(a, imm) _mm_shufflelo_epi16_function((a), (imm)) ++#endif ++ ++// Shift packed 16-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi16 ++FORCE_INLINE __m128i _mm_sll_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16((int16_t) c); ++ return vreinterpretq_m128i_s16(vshlq_s16(vreinterpretq_s16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi32 ++FORCE_INLINE __m128i _mm_sll_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32((int32_t) c); ++ return vreinterpretq_m128i_s32(vshlq_s32(vreinterpretq_s32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi64 ++FORCE_INLINE __m128i _mm_sll_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64((int64_t) c); ++ return vreinterpretq_m128i_s64(vshlq_s64(vreinterpretq_s64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi16 ++FORCE_INLINE __m128i _mm_slli_epi16(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~15)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16(vreinterpretq_s16_m128i(a), vdupq_n_s16(imm))); ++} ++ ++// Shift packed 32-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi32 ++FORCE_INLINE __m128i _mm_slli_epi32(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~31)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32(vreinterpretq_s32_m128i(a), vdupq_n_s32(imm))); ++} ++ ++// Shift packed 64-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi64 ++FORCE_INLINE __m128i _mm_slli_epi64(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~63)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s64( ++ vshlq_s64(vreinterpretq_s64_m128i(a), vdupq_n_s64(imm))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_si128 ++#define _mm_slli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely(imm == 0)) ret = vreinterpretq_s8_m128i(_a); \ ++ else if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vdupq_n_s8(0), vreinterpretq_s8_m128i(_a), \ ++ ((imm <= 0 || imm > 15) ? 0 : (16 - imm))); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Compute the square root of packed double-precision (64-bit) floating-point ++// elements in a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_pd ++FORCE_INLINE __m128d _mm_sqrt_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsqrtq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double a0 = sqrt(((double *) &a)[0]); ++ double a1 = sqrt(((double *) &a)[1]); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Compute the square root of the lower double-precision (64-bit) floating-point ++// element in b, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_sd ++FORCE_INLINE __m128d _mm_sqrt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_sqrt_pd(b)); ++#else ++ return _mm_set_pd(((double *) &a)[1], sqrt(((double *) &b)[0])); ++#endif ++} ++ ++// Shift packed 16-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi16 ++FORCE_INLINE __m128i _mm_sra_epi16(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_cmplt_epi16(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16((int16x8_t) a, vdupq_n_s16((int) -c))); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi32 ++FORCE_INLINE __m128i _mm_sra_epi32(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_cmplt_epi32(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32((int32x4_t) a, vdupq_n_s32((int) -c))); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in sign ++// bits, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi16 ++FORCE_INLINE __m128i _mm_srai_epi16(__m128i a, int imm) ++{ ++ const int count = (imm & ~15) ? 15 : imm; ++ return (__m128i) vshlq_s16((int16x8_t) a, vdupq_n_s16(-count)); ++} ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi32 ++// FORCE_INLINE __m128i _mm_srai_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srai_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) == 0)) { \ ++ ret = _a; \ ++ } else if (_sse2neon_likely(0 < (imm) && (imm) < 32)) { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshlq_s32(vreinterpretq_s32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } else { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshrq_n_s32(vreinterpretq_s32_m128i(_a), 31)); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 16-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi16 ++FORCE_INLINE __m128i _mm_srl_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16(-(int16_t) c); ++ return vreinterpretq_m128i_u16(vshlq_u16(vreinterpretq_u16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi32 ++FORCE_INLINE __m128i _mm_srl_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32(-(int32_t) c); ++ return vreinterpretq_m128i_u32(vshlq_u32(vreinterpretq_u32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi64 ++FORCE_INLINE __m128i _mm_srl_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64(-(int64_t) c); ++ return vreinterpretq_m128i_u64(vshlq_u64(vreinterpretq_u64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi16 ++#define _mm_srli_epi16(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~15)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u16( \ ++ vshlq_u16(vreinterpretq_u16_m128i(_a), vdupq_n_s16(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi32 ++// FORCE_INLINE __m128i _mm_srli_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srli_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~31)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u32( \ ++ vshlq_u32(vreinterpretq_u32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 64-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi64 ++#define _mm_srli_epi64(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~63)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u64( \ ++ vshlq_u64(vreinterpretq_u64_m128i(_a), vdupq_n_s64(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_si128 ++#define _mm_srli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vreinterpretq_s8_m128i(_a), vdupq_n_s8(0), \ ++ (imm > 15 ? 0 : imm)); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd ++FORCE_INLINE void _mm_store_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64((float64_t *) mem_addr, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_f32((float32_t *) mem_addr, vreinterpretq_f32_m128d(a)); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd1 ++FORCE_INLINE void _mm_store_pd1(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x1_t a_low = vget_low_f64(vreinterpretq_f64_m128d(a)); ++ vst1q_f64((float64_t *) mem_addr, ++ vreinterpretq_f64_m128d(vcombine_f64(a_low, a_low))); ++#else ++ float32x2_t a_low = vget_low_f32(vreinterpretq_f32_m128d(a)); ++ vst1q_f32((float32_t *) mem_addr, ++ vreinterpretq_f32_m128d(vcombine_f32(a_low, a_low))); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_store_sd ++FORCE_INLINE void _mm_store_sd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_u64((uint64_t *) mem_addr, vget_low_u64(vreinterpretq_u64_m128d(a))); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_si128 ++FORCE_INLINE void _mm_store_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#expand=9,526,5601&text=_mm_store1_pd ++#define _mm_store1_pd _mm_store_pd1 ++ ++// Store the upper double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pd ++FORCE_INLINE void _mm_storeh_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_high_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_high_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 64-bit integer from the first element of a into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_epi64 ++FORCE_INLINE void _mm_storel_epi64(__m128i *a, __m128i b) ++{ ++ vst1_u64((uint64_t *) a, vget_low_u64(vreinterpretq_u64_m128i(b))); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pd ++FORCE_INLINE void _mm_storel_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_low_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 2 double-precision (64-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_pd ++FORCE_INLINE void _mm_storer_pd(double *mem_addr, __m128d a) ++{ ++ float32x4_t f = vreinterpretq_f32_m128d(a); ++ _mm_store_pd(mem_addr, vreinterpretq_m128d_f32(vextq_f32(f, f, 2))); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_pd ++FORCE_INLINE void _mm_storeu_pd(double *mem_addr, __m128d a) ++{ ++ _mm_store_pd(mem_addr, a); ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si128 ++FORCE_INLINE void _mm_storeu_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store 32-bit integer from the first element of a into memory. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si32 ++FORCE_INLINE void _mm_storeu_si32(void *p, __m128i a) ++{ ++ vst1q_lane_s32((int32_t *) p, vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory using a non-temporal memory hint. mem_addr must ++// be aligned on a 16-byte boundary or a general-protection exception may be ++// generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pd ++FORCE_INLINE void _mm_stream_pd(double *p, __m128d a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (__m128d *) p); ++#elif defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64(p, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128d(a)); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory using a non-temporal memory ++// hint. mem_addr must be aligned on a 16-byte boundary or a general-protection ++// exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si128 ++FORCE_INLINE void _mm_stream_si128(__m128i *p, __m128i a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, p); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128i(a)); ++#endif ++} ++ ++// Store 32-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si32 ++FORCE_INLINE void _mm_stream_si32(int *p, int a) ++{ ++ vst1q_lane_s32((int32_t *) p, vdupq_n_s32(a), 0); ++} ++ ++// Store 64-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si64 ++FORCE_INLINE void _mm_stream_si64(__int64 *p, __int64 a) ++{ ++ vst1_s64((int64_t *) p, vdup_n_s64((int64_t) a)); ++} ++ ++// Subtract packed 16-bit integers in b from packed 16-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi16 ++FORCE_INLINE __m128i _mm_sub_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed 32-bit integers in b from packed 32-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi32 ++FORCE_INLINE __m128i _mm_sub_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Subtract packed 64-bit integers in b from packed 64-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi64 ++FORCE_INLINE __m128i _mm_sub_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vsubq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Subtract packed 8-bit integers in b from packed 8-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi8 ++FORCE_INLINE __m128i _mm_sub_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed double-precision (64-bit) floating-point elements in b from ++// packed double-precision (64-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_sub_pd ++FORCE_INLINE __m128d _mm_sub_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] - db[0]; ++ c[1] = da[1] - db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Subtract the lower double-precision (64-bit) floating-point element in b from ++// the lower double-precision (64-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_sd ++FORCE_INLINE __m128d _mm_sub_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_sub_pd(a, b)); ++} ++ ++// Subtract 64-bit integer b from 64-bit integer a, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_si64 ++FORCE_INLINE __m64 _mm_sub_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vsub_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Subtract packed signed 16-bit integers in b from packed 16-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi16 ++FORCE_INLINE __m128i _mm_subs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed signed 8-bit integers in b from packed 8-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi8 ++FORCE_INLINE __m128i _mm_subs_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed unsigned 16-bit integers in b from packed unsigned 16-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu16 ++FORCE_INLINE __m128i _mm_subs_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqsubq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Subtract packed unsigned 8-bit integers in b from packed unsigned 8-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu8 ++FORCE_INLINE __m128i _mm_subs_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqsubq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++#define _mm_ucomieq_sd _mm_comieq_sd ++#define _mm_ucomige_sd _mm_comige_sd ++#define _mm_ucomigt_sd _mm_comigt_sd ++#define _mm_ucomile_sd _mm_comile_sd ++#define _mm_ucomilt_sd _mm_comilt_sd ++#define _mm_ucomineq_sd _mm_comineq_sd ++ ++// Return vector of type __m128d with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_pd ++FORCE_INLINE __m128d _mm_undefined_pd(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128d a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_pd(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi16 ++FORCE_INLINE __m128i _mm_unpackhi_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip2q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi32 ++FORCE_INLINE __m128i _mm_unpackhi_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip2q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_high_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi64 ++FORCE_INLINE __m128i _mm_unpackhi_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip2q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_h = vget_high_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_h = vget_high_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_h, b_h)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the high half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi8 ++FORCE_INLINE __m128i _mm_unpackhi_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip2q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the high half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_pd ++FORCE_INLINE __m128d _mm_unpackhi_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip2q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_high_s64(vreinterpretq_s64_m128d(a)), ++ vget_high_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi16 ++FORCE_INLINE __m128i _mm_unpacklo_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip1q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi32 ++FORCE_INLINE __m128i _mm_unpacklo_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip1q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_low_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi64 ++FORCE_INLINE __m128i _mm_unpacklo_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip1q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_l = vget_low_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_l = vget_low_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_l, b_l)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi8 ++FORCE_INLINE __m128i _mm_unpacklo_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip1q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_pd ++FORCE_INLINE __m128d _mm_unpacklo_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip1q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_low_s64(vreinterpretq_s64_m128d(a)), ++ vget_low_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Compute the bitwise XOR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_pd ++FORCE_INLINE __m128d _mm_xor_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ veorq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise XOR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_si128 ++FORCE_INLINE __m128i _mm_xor_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ veorq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++/* SSE3 */ ++ ++// Alternatively add and subtract packed double-precision (64-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_addsub_pd ++FORCE_INLINE __m128d _mm_addsub_pd(__m128d a, __m128d b) ++{ ++ _sse2neon_const __m128d mask = _mm_set_pd(1.0f, -1.0f); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vfmaq_f64(vreinterpretq_f64_m128d(a), ++ vreinterpretq_f64_m128d(b), ++ vreinterpretq_f64_m128d(mask))); ++#else ++ return _mm_add_pd(_mm_mul_pd(b, mask), a); ++#endif ++} ++ ++// Alternatively add and subtract packed single-precision (32-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=addsub_ps ++FORCE_INLINE __m128 _mm_addsub_ps(__m128 a, __m128 b) ++{ ++ _sse2neon_const __m128 mask = _mm_setr_ps(-1.0f, 1.0f, -1.0f, 1.0f); ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_FMA) /* VFPv4+ */ ++ return vreinterpretq_m128_f32(vfmaq_f32(vreinterpretq_f32_m128(a), ++ vreinterpretq_f32_m128(mask), ++ vreinterpretq_f32_m128(b))); ++#else ++ return _mm_add_ps(_mm_mul_ps(b, mask), a); ++#endif ++} ++ ++// Horizontally add adjacent pairs of double-precision (64-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pd ++FORCE_INLINE __m128d _mm_hadd_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vpaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[] = {da[0] + da[1], db[0] + db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of single-precision (32-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_ps ++FORCE_INLINE __m128 _mm_hadd_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vpaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vpadd_f32(a10, a32), vpadd_f32(b10, b32))); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of double-precision (64-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pd ++FORCE_INLINE __m128d _mm_hsub_pd(__m128d _a, __m128d _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vuzp1q_f64(a, b), vuzp2q_f64(a, b))); ++#else ++ double *da = (double *) &_a; ++ double *db = (double *) &_b; ++ double c[] = {da[0] - da[1], db[0] - db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of single-precision (32-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_ps ++FORCE_INLINE __m128 _mm_hsub_ps(__m128 _a, __m128 _b) ++{ ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vuzp1q_f32(a, b), vuzp2q_f32(a, b))); ++#else ++ float32x4x2_t c = vuzpq_f32(a, b); ++ return vreinterpretq_m128_f32(vsubq_f32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Load 128-bits of integer data from unaligned memory into dst. This intrinsic ++// may perform better than _mm_loadu_si128 when the data crosses a cache line ++// boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lddqu_si128 ++#define _mm_lddqu_si128 _mm_loadu_si128 ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loaddup_pd ++#define _mm_loaddup_pd _mm_load1_pd ++ ++// Duplicate the low double-precision (64-bit) floating-point element from a, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movedup_pd ++FORCE_INLINE __m128d _mm_movedup_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdupq_laneq_f64(vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_u64( ++ vdupq_n_u64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0))); ++#endif ++} ++ ++// Duplicate odd-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehdup_ps ++FORCE_INLINE __m128 _mm_movehdup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 1, 1, 3, 3)); ++#else ++ float32_t a1 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ float32_t a3 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 3); ++ float ALIGN_STRUCT(16) data[4] = {a1, a1, a3, a3}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Duplicate even-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_moveldup_ps ++FORCE_INLINE __m128 _mm_moveldup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 0, 0, 2, 2)); ++#else ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32_t a2 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 2); ++ float ALIGN_STRUCT(16) data[4] = {a0, a0, a2, a2}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++/* SSSE3 */ ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi16 ++FORCE_INLINE __m128i _mm_abs_epi16(__m128i a) ++{ ++ return vreinterpretq_m128i_s16(vabsq_s16(vreinterpretq_s16_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi32 ++FORCE_INLINE __m128i _mm_abs_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32(vabsq_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi8 ++FORCE_INLINE __m128i _mm_abs_epi8(__m128i a) ++{ ++ return vreinterpretq_m128i_s8(vabsq_s8(vreinterpretq_s8_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi16 ++FORCE_INLINE __m64 _mm_abs_pi16(__m64 a) ++{ ++ return vreinterpret_m64_s16(vabs_s16(vreinterpret_s16_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi32 ++FORCE_INLINE __m64 _mm_abs_pi32(__m64 a) ++{ ++ return vreinterpret_m64_s32(vabs_s32(vreinterpret_s32_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi8 ++FORCE_INLINE __m64 _mm_abs_pi8(__m64 a) ++{ ++ return vreinterpret_m64_s8(vabs_s8(vreinterpret_s8_m64(a))); ++} ++ ++// Concatenate 16-byte blocks in a and b into a 32-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 16 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_epi8 ++#if defined(__GNUC__) && !defined(__clang__) ++#define _mm_alignr_epi8(a, b, imm) \ ++ __extension__({ \ ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); \ ++ uint8x16_t _b = vreinterpretq_u8_m128i(b); \ ++ __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) \ ++ ret = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) \ ++ ret = _mm_srli_si128(a, imm >= 16 ? imm - 16 : 0); \ ++ else \ ++ ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(_b, _a, imm < 16 ? imm : 0)); \ ++ ret; \ ++ }) ++ ++#else ++#define _mm_alignr_epi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, uint8x16_t __a = vreinterpretq_u8_m128i(_a); \ ++ uint8x16_t __b = vreinterpretq_u8_m128i(_b); __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) ret = \ ++ vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) ret = \ ++ _mm_srli_si128(_a, imm >= 16 ? imm - 16 : 0); \ ++ else ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(__b, __a, imm < 16 ? imm : 0)); \ ++ _sse2neon_return(ret);) ++ ++#endif ++ ++// Concatenate 8-byte blocks in a and b into a 16-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 8 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_pi8 ++#define _mm_alignr_pi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m64, a, b, __m64 ret; if (_sse2neon_unlikely((imm) >= 16)) { \ ++ ret = vreinterpret_m64_s8(vdup_n_s8(0)); \ ++ } else { \ ++ uint8x8_t tmp_low; \ ++ uint8x8_t tmp_high; \ ++ if ((imm) >= 8) { \ ++ const int idx = (imm) -8; \ ++ tmp_low = vreinterpret_u8_m64(_a); \ ++ tmp_high = vdup_n_u8(0); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } else { \ ++ const int idx = (imm); \ ++ tmp_low = vreinterpret_u8_m64(_b); \ ++ tmp_high = vreinterpret_u8_m64(_a); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } \ ++ } _sse2neon_return(ret);) ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi16 ++FORCE_INLINE __m128i _mm_hadd_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16(vpaddq_s16(a, b)); ++#else ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(vget_low_s16(a), vget_high_s16(a)), ++ vpadd_s16(vget_low_s16(b), vget_high_s16(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi32 ++FORCE_INLINE __m128i _mm_hadd_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32(vpaddq_s32(a, b)); ++#else ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vpadd_s32(vget_low_s32(a), vget_high_s32(a)), ++ vpadd_s32(vget_low_s32(b), vget_high_s32(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi16 ++FORCE_INLINE __m64 _mm_hadd_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vpadd_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi32 ++FORCE_INLINE __m64 _mm_hadd_pi32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s32( ++ vpadd_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_epi16 ++FORCE_INLINE __m128i _mm_hadds_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ return vreinterpretq_s64_s16( ++ vqaddq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ // Interleave using vshrn/vmovn ++ // [a0|a2|a4|a6|b0|b2|b4|b6] ++ // [a1|a3|a5|a7|b1|b3|b5|b7] ++ int16x8_t ab0246 = vcombine_s16(vmovn_s32(a), vmovn_s32(b)); ++ int16x8_t ab1357 = vcombine_s16(vshrn_n_s32(a, 16), vshrn_n_s32(b, 16)); ++ // Saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(ab0246, ab1357)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_pi16 ++FORCE_INLINE __m64 _mm_hadds_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_s64_s16(vqadd_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t res = vuzp_s16(a, b); ++ return vreinterpret_s64_s16(vqadd_s16(res.val[0], res.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi16 ++FORCE_INLINE __m128i _mm_hsub_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi32 ++FORCE_INLINE __m128i _mm_hsub_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vuzp1q_s32(a, b), vuzp2q_s32(a, b))); ++#else ++ int32x4x2_t c = vuzpq_s32(a, b); ++ return vreinterpretq_m128i_s32(vsubq_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pi16 ++FORCE_INLINE __m64 _mm_hsub_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_hsub_pi32 ++FORCE_INLINE __m64 _mm_hsub_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s32(vsub_s32(vuzp1_s32(a, b), vuzp2_s32(a, b))); ++#else ++ int32x2x2_t c = vuzp_s32(a, b); ++ return vreinterpret_m64_s32(vsub_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_epi16 ++FORCE_INLINE __m128i _mm_hsubs_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vqsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_pi16 ++FORCE_INLINE __m64 _mm_hsubs_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vqsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vqsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, ++// and pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_epi16 ++FORCE_INLINE __m128i _mm_maddubs_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ int16x8_t tl = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_low_u8(a))), ++ vmovl_s8(vget_low_s8(b))); ++ int16x8_t th = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_high_u8(a))), ++ vmovl_s8(vget_high_s8(b))); ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vuzp1q_s16(tl, th), vuzp2q_s16(tl, th))); ++#else ++ // This would be much simpler if x86 would choose to zero extend OR sign ++ // extend, not both. This could probably be optimized better. ++ uint16x8_t a = vreinterpretq_u16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // Zero extend a ++ int16x8_t a_odd = vreinterpretq_s16_u16(vshrq_n_u16(a, 8)); ++ int16x8_t a_even = vreinterpretq_s16_u16(vbicq_u16(a, vdupq_n_u16(0xff00))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x8_t b_even = vshrq_n_s16(vshlq_n_s16(b, 8), 8); ++ int16x8_t b_odd = vshrq_n_s16(b, 8); ++ ++ // multiply ++ int16x8_t prod1 = vmulq_s16(a_even, b_even); ++ int16x8_t prod2 = vmulq_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(prod1, prod2)); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, and ++// pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_pi16 ++FORCE_INLINE __m64 _mm_maddubs_pi16(__m64 _a, __m64 _b) ++{ ++ uint16x4_t a = vreinterpret_u16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // Zero extend a ++ int16x4_t a_odd = vreinterpret_s16_u16(vshr_n_u16(a, 8)); ++ int16x4_t a_even = vreinterpret_s16_u16(vand_u16(a, vdup_n_u16(0xff))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x4_t b_even = vshr_n_s16(vshl_n_s16(b, 8), 8); ++ int16x4_t b_odd = vshr_n_s16(b, 8); ++ ++ // multiply ++ int16x4_t prod1 = vmul_s16(a_even, b_even); ++ int16x4_t prod2 = vmul_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpret_m64_s16(vqadd_s16(prod1, prod2)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Shift right by 15 bits while rounding up, and store ++// the packed 16-bit integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_epi16 ++FORCE_INLINE __m128i _mm_mulhrs_epi16(__m128i a, __m128i b) ++{ ++ // Has issues due to saturation ++ // return vreinterpretq_m128i_s16(vqrdmulhq_s16(a, b)); ++ ++ // Multiply ++ int32x4_t mul_lo = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int32x4_t mul_hi = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ // Rounding narrowing shift right ++ // narrow = (int16_t)((mul + 16384) >> 15); ++ int16x4_t narrow_lo = vrshrn_n_s32(mul_lo, 15); ++ int16x4_t narrow_hi = vrshrn_n_s32(mul_hi, 15); ++ ++ // Join together ++ return vreinterpretq_m128i_s16(vcombine_s16(narrow_lo, narrow_hi)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Truncate each intermediate integer to the 18 most ++// significant bits, round by adding 1, and store bits [16:1] to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_pi16 ++FORCE_INLINE __m64 _mm_mulhrs_pi16(__m64 a, __m64 b) ++{ ++ int32x4_t mul_extend = ++ vmull_s16((vreinterpret_s16_m64(a)), (vreinterpret_s16_m64(b))); ++ ++ // Rounding narrowing shift right ++ return vreinterpret_m64_s16(vrshrn_n_s32(mul_extend, 15)); ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi8 ++FORCE_INLINE __m128i _mm_shuffle_epi8(__m128i a, __m128i b) ++{ ++ int8x16_t tbl = vreinterpretq_s8_m128i(a); // input a ++ uint8x16_t idx = vreinterpretq_u8_m128i(b); // input b ++ uint8x16_t idx_masked = ++ vandq_u8(idx, vdupq_n_u8(0x8F)); // avoid using meaningless bits ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8(vqtbl1q_s8(tbl, idx_masked)); ++#elif defined(__GNUC__) ++ int8x16_t ret; ++ // %e and %f represent the even and odd D registers ++ // respectively. ++ __asm__ __volatile__( ++ "vtbl.8 %e[ret], {%e[tbl], %f[tbl]}, %e[idx]\n" ++ "vtbl.8 %f[ret], {%e[tbl], %f[tbl]}, %f[idx]\n" ++ : [ret] "=&w"(ret) ++ : [tbl] "w"(tbl), [idx] "w"(idx_masked)); ++ return vreinterpretq_m128i_s8(ret); ++#else ++ // use this line if testing on aarch64 ++ int8x8x2_t a_split = {vget_low_s8(tbl), vget_high_s8(tbl)}; ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vtbl2_s8(a_split, vget_low_u8(idx_masked)), ++ vtbl2_s8(a_split, vget_high_u8(idx_masked)))); ++#endif ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi8 ++FORCE_INLINE __m64 _mm_shuffle_pi8(__m64 a, __m64 b) ++{ ++ const int8x8_t controlMask = ++ vand_s8(vreinterpret_s8_m64(b), vdup_n_s8((int8_t) (0x1 << 7 | 0x07))); ++ int8x8_t res = vtbl1_s8(vreinterpret_s8_m64(a), controlMask); ++ return vreinterpret_m64_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed ++// 16-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi16 ++FORCE_INLINE __m128i _mm_sign_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x8_t ltMask = vreinterpretq_u16_s16(vshrq_n_s16(b, 15)); ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqzq_s16(b)); ++#else ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqq_s16(b, vdupq_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s16(a) equals to negative ++ // 'a') based on ltMask ++ int16x8_t masked = vbslq_s16(ltMask, vnegq_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x8_t res = vbicq_s16(masked, zeroMask); ++ return vreinterpretq_m128i_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed ++// 32-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi32 ++FORCE_INLINE __m128i _mm_sign_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x4_t ltMask = vreinterpretq_u32_s32(vshrq_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqzq_s32(b)); ++#else ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqq_s32(b, vdupq_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s32(a) equals to negative ++ // 'a') based on ltMask ++ int32x4_t masked = vbslq_s32(ltMask, vnegq_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x4_t res = vbicq_s32(masked, zeroMask); ++ return vreinterpretq_m128i_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed ++// 8-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi8 ++FORCE_INLINE __m128i _mm_sign_epi8(__m128i _a, __m128i _b) ++{ ++ int8x16_t a = vreinterpretq_s8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x16_t ltMask = vreinterpretq_u8_s8(vshrq_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqzq_s8(b)); ++#else ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqq_s8(b, vdupq_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s8(a) return negative 'a') ++ // based on ltMask ++ int8x16_t masked = vbslq_s8(ltMask, vnegq_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x16_t res = vbicq_s8(masked, zeroMask); ++ ++ return vreinterpretq_m128i_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed 16-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi16 ++FORCE_INLINE __m64 _mm_sign_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x4_t ltMask = vreinterpret_u16_s16(vshr_n_s16(b, 15)); ++ ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceqz_s16(b)); ++#else ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceq_s16(b, vdup_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s16(a) return negative 'a') ++ // based on ltMask ++ int16x4_t masked = vbsl_s16(ltMask, vneg_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x4_t res = vbic_s16(masked, zeroMask); ++ ++ return vreinterpret_m64_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed 32-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi32 ++FORCE_INLINE __m64 _mm_sign_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x2_t ltMask = vreinterpret_u32_s32(vshr_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceqz_s32(b)); ++#else ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceq_s32(b, vdup_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s32(a) return negative 'a') ++ // based on ltMask ++ int32x2_t masked = vbsl_s32(ltMask, vneg_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x2_t res = vbic_s32(masked, zeroMask); ++ ++ return vreinterpret_m64_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed 8-bit integer ++// in b is negative, and store the results in dst. Element in dst are zeroed out ++// when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi8 ++FORCE_INLINE __m64 _mm_sign_pi8(__m64 _a, __m64 _b) ++{ ++ int8x8_t a = vreinterpret_s8_m64(_a); ++ int8x8_t b = vreinterpret_s8_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x8_t ltMask = vreinterpret_u8_s8(vshr_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceqz_s8(b)); ++#else ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceq_s8(b, vdup_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s8(a) return negative 'a') ++ // based on ltMask ++ int8x8_t masked = vbsl_s8(ltMask, vneg_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x8_t res = vbic_s8(masked, zeroMask); ++ ++ return vreinterpret_m64_s8(res); ++} ++ ++/* SSE4.1 */ ++ ++// Blend packed 16-bit integers from a and b using control mask imm8, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_epi16 ++// FORCE_INLINE __m128i _mm_blend_epi16(__m128i a, __m128i b, ++// __constrange(0,255) int imm) ++#define _mm_blend_epi16(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, \ ++ const uint16_t _mask[8] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 1)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 2)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 3)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 4)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 5)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 6)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 7)) ? (uint16_t) -1 : 0x0); \ ++ uint16x8_t _mask_vec = vld1q_u16(_mask); \ ++ uint16x8_t __a = vreinterpretq_u16_m128i(_a); \ ++ uint16x8_t __b = vreinterpretq_u16_m128i(_b); _sse2neon_return( \ ++ vreinterpretq_m128i_u16(vbslq_u16(_mask_vec, __b, __a)));) ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using control mask imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_pd ++#define _mm_blend_pd(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128d, a, b, \ ++ const uint64_t _mask[2] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? ~UINT64_C(0) : UINT64_C(0), \ ++ ((imm) & (1 << 1)) ? ~UINT64_C(0) : UINT64_C(0)); \ ++ uint64x2_t _mask_vec = vld1q_u64(_mask); \ ++ uint64x2_t __a = vreinterpretq_u64_m128d(_a); \ ++ uint64x2_t __b = vreinterpretq_u64_m128d(_b); _sse2neon_return( \ ++ vreinterpretq_m128d_u64(vbslq_u64(_mask_vec, __b, __a)));) ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_ps ++FORCE_INLINE __m128 _mm_blend_ps(__m128 _a, __m128 _b, const char imm8) ++{ ++ const uint32_t ALIGN_STRUCT(16) ++ data[4] = {((imm8) & (1 << 0)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0}; ++ uint32x4_t mask = vld1q_u32(data); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Blend packed 8-bit integers from a and b using mask, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_epi8 ++FORCE_INLINE __m128i _mm_blendv_epi8(__m128i _a, __m128i _b, __m128i _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint8x16_t mask = ++ vreinterpretq_u8_s8(vshrq_n_s8(vreinterpretq_s8_m128i(_mask), 7)); ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ uint8x16_t b = vreinterpretq_u8_m128i(_b); ++ return vreinterpretq_m128i_u8(vbslq_u8(mask, b, a)); ++} ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_pd ++FORCE_INLINE __m128d _mm_blendv_pd(__m128d _a, __m128d _b, __m128d _mask) ++{ ++ uint64x2_t mask = ++ vreinterpretq_u64_s64(vshrq_n_s64(vreinterpretq_s64_m128d(_mask), 63)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64(vbslq_f64(mask, b, a)); ++#else ++ uint64x2_t a = vreinterpretq_u64_m128d(_a); ++ uint64x2_t b = vreinterpretq_u64_m128d(_b); ++ return vreinterpretq_m128d_u64(vbslq_u64(mask, b, a)); ++#endif ++} ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_ps ++FORCE_INLINE __m128 _mm_blendv_ps(__m128 _a, __m128 _b, __m128 _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint32x4_t mask = ++ vreinterpretq_u32_s32(vshrq_n_s32(vreinterpretq_s32_m128(_mask), 31)); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a up ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_pd ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndpq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(ceil(f[1]), ceil(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a up to ++// an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ps ++FORCE_INLINE __m128 _mm_ceil_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndpq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ceilf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b up to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_sd ++FORCE_INLINE __m128d _mm_ceil_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_ceil_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b up to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ss ++FORCE_INLINE __m128 _mm_ceil_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_ceil_ps(b)); ++} ++ ++// Compare packed 64-bit integers in a and b for equality, and store the results ++// in dst ++FORCE_INLINE __m128i _mm_cmpeq_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vceqq_u64(vreinterpretq_u64_m128i(a), vreinterpretq_u64_m128i(b))); ++#else ++ // ARMv7 lacks vceqq_u64 ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128i_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Sign extend packed 16-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi32 ++FORCE_INLINE __m128i _mm_cvtepi16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vmovl_s16(vget_low_s16(vreinterpretq_s16_m128i(a)))); ++} ++ ++// Sign extend packed 16-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi64 ++FORCE_INLINE __m128i _mm_cvtepi16_epi64(__m128i a) ++{ ++ int16x8_t s16x8 = vreinterpretq_s16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Sign extend packed 32-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_epi64 ++FORCE_INLINE __m128i _mm_cvtepi32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a)))); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 16-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi16 ++FORCE_INLINE __m128i _mm_cvtepi8_epi16(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ return vreinterpretq_m128i_s16(s16x8); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi32 ++FORCE_INLINE __m128i _mm_cvtepi8_epi32(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_s32(s32x4); ++} ++ ++// Sign extend packed 8-bit integers in the low 8 bytes of a to packed 64-bit ++// integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi64 ++FORCE_INLINE __m128i _mm_cvtepi8_epi64(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi32 ++FORCE_INLINE __m128i _mm_cvtepu16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_u32( ++ vmovl_u16(vget_low_u16(vreinterpretq_u16_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi64 ++FORCE_INLINE __m128i _mm_cvtepu16_epi64(__m128i a) ++{ ++ uint16x8_t u16x8 = vreinterpretq_u16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Zero extend packed unsigned 32-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu32_epi64 ++FORCE_INLINE __m128i _mm_cvtepu32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_u64( ++ vmovl_u32(vget_low_u32(vreinterpretq_u32_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 16-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi16 ++FORCE_INLINE __m128i _mm_cvtepu8_epi16(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx HGFE DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0H0G 0F0E 0D0C 0B0A */ ++ return vreinterpretq_m128i_u16(u16x8); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi32 ++FORCE_INLINE __m128i _mm_cvtepu8_epi32(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_u32(u32x4); ++} ++ ++// Zero extend packed unsigned 8-bit integers in the low 8 bytes of a to packed ++// 64-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi64 ++FORCE_INLINE __m128i _mm_cvtepu8_epi64(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Conditionally multiply the packed double-precision (64-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, and ++// conditionally store the sum in dst using the low 4 bits of imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_pd ++FORCE_INLINE __m128d _mm_dp_pd(__m128d a, __m128d b, const int imm) ++{ ++ // Generate mask value from constant immediate bit value ++ const int64_t bit0Mask = imm & 0x01 ? UINT64_MAX : 0; ++ const int64_t bit1Mask = imm & 0x02 ? UINT64_MAX : 0; ++#if !SSE2NEON_PRECISE_DP ++ const int64_t bit4Mask = imm & 0x10 ? UINT64_MAX : 0; ++ const int64_t bit5Mask = imm & 0x20 ? UINT64_MAX : 0; ++#endif ++ // Conditional multiplication ++#if !SSE2NEON_PRECISE_DP ++ __m128d mul = _mm_mul_pd(a, b); ++ const __m128d mulMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit5Mask, bit4Mask)); ++ __m128d tmp = _mm_and_pd(mul, mulMask); ++#else ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double d0 = (imm & 0x10) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 0) ++ : 0; ++ double d1 = (imm & 0x20) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 1) ++ : 0; ++#else ++ double d0 = (imm & 0x10) ? ((double *) &a)[0] * ((double *) &b)[0] : 0; ++ double d1 = (imm & 0x20) ? ((double *) &a)[1] * ((double *) &b)[1] : 0; ++#endif ++ __m128d tmp = _mm_set_pd(d1, d0); ++#endif ++ // Sum the products ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double sum = vpaddd_f64(vreinterpretq_f64_m128d(tmp)); ++#else ++ double sum = *((double *) &tmp) + *(((double *) &tmp) + 1); ++#endif ++ // Conditionally store the sum ++ const __m128d sumMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit1Mask, bit0Mask)); ++ __m128d res = _mm_and_pd(_mm_set_pd1(sum), sumMask); ++ return res; ++} ++ ++// Conditionally multiply the packed single-precision (32-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, ++// and conditionally store the sum in dst using the low 4 bits of imm. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_ps ++FORCE_INLINE __m128 _mm_dp_ps(__m128 a, __m128 b, const int imm) ++{ ++ float32x4_t elementwise_prod = _mm_mul_ps(a, b); ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ /* shortcuts */ ++ if (imm == 0xFF) { ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++ ++ if ((imm & 0x0F) == 0x0F) { ++ if (!(imm & (1 << 4))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 0); ++ if (!(imm & (1 << 5))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 1); ++ if (!(imm & (1 << 6))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 2); ++ if (!(imm & (1 << 7))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 3); ++ ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++#endif ++ ++ float s = 0.0f; ++ ++ if (imm & (1 << 4)) ++ s += vgetq_lane_f32(elementwise_prod, 0); ++ if (imm & (1 << 5)) ++ s += vgetq_lane_f32(elementwise_prod, 1); ++ if (imm & (1 << 6)) ++ s += vgetq_lane_f32(elementwise_prod, 2); ++ if (imm & (1 << 7)) ++ s += vgetq_lane_f32(elementwise_prod, 3); ++ ++ const float32_t res[4] = { ++ (imm & 0x1) ? s : 0.0f, ++ (imm & 0x2) ? s : 0.0f, ++ (imm & 0x4) ? s : 0.0f, ++ (imm & 0x8) ? s : 0.0f, ++ }; ++ return vreinterpretq_m128_f32(vld1q_f32(res)); ++} ++ ++// Extract a 32-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi32 ++// FORCE_INLINE int _mm_extract_epi32(__m128i a, __constrange(0,4) int imm) ++#define _mm_extract_epi32(a, imm) \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)) ++ ++// Extract a 64-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi64 ++// FORCE_INLINE __int64 _mm_extract_epi64(__m128i a, __constrange(0,2) int imm) ++#define _mm_extract_epi64(a, imm) \ ++ vgetq_lane_s64(vreinterpretq_s64_m128i(a), (imm)) ++ ++// Extract an 8-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. FORCE_INLINE int _mm_extract_epi8(__m128i a, ++// __constrange(0,16) int imm) ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi8 ++#define _mm_extract_epi8(a, imm) vgetq_lane_u8(vreinterpretq_u8_m128i(a), (imm)) ++ ++// Extracts the selected single-precision (32-bit) floating-point from a. ++// FORCE_INLINE int _mm_extract_ps(__m128 a, __constrange(0,4) int imm) ++#define _mm_extract_ps(a, imm) vgetq_lane_s32(vreinterpretq_s32_m128(a), (imm)) ++ ++// Round the packed double-precision (64-bit) floating-point elements in a down ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_pd ++FORCE_INLINE __m128d _mm_floor_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndmq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(floor(f[1]), floor(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a down ++// to an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ps ++FORCE_INLINE __m128 _mm_floor_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndmq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(floorf(f[3]), floorf(f[2]), floorf(f[1]), floorf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b down to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_sd ++FORCE_INLINE __m128d _mm_floor_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_floor_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b down to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ss ++FORCE_INLINE __m128 _mm_floor_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_floor_ps(b)); ++} ++ ++// Copy a to dst, and insert the 32-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi32 ++// FORCE_INLINE __m128i _mm_insert_epi32(__m128i a, int b, ++// __constrange(0,4) int imm) ++#define _mm_insert_epi32(a, b, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vsetq_lane_s32((b), vreinterpretq_s32_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the 64-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi64 ++// FORCE_INLINE __m128i _mm_insert_epi64(__m128i a, __int64 b, ++// __constrange(0,2) int imm) ++#define _mm_insert_epi64(a, b, imm) \ ++ vreinterpretq_m128i_s64( \ ++ vsetq_lane_s64((b), vreinterpretq_s64_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the lower 8-bit integer from i into dst at the ++// location specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi8 ++// FORCE_INLINE __m128i _mm_insert_epi8(__m128i a, int b, ++// __constrange(0,16) int imm) ++#define _mm_insert_epi8(a, b, imm) \ ++ vreinterpretq_m128i_s8(vsetq_lane_s8((b), vreinterpretq_s8_m128i(a), (imm))) ++ ++// Copy a to tmp, then insert a single-precision (32-bit) floating-point ++// element from b into tmp using the control in imm8. Store tmp to dst using ++// the mask in imm8 (elements are zeroed out when the corresponding bit is set). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=insert_ps ++#define _mm_insert_ps(a, b, imm8) \ ++ _sse2neon_define2( \ ++ __m128, a, b, \ ++ float32x4_t tmp1 = \ ++ vsetq_lane_f32(vgetq_lane_f32(_b, (imm8 >> 6) & 0x3), \ ++ vreinterpretq_f32_m128(_a), 0); \ ++ float32x4_t tmp2 = \ ++ vsetq_lane_f32(vgetq_lane_f32(tmp1, 0), \ ++ vreinterpretq_f32_m128(_a), ((imm8 >> 4) & 0x3)); \ ++ const uint32_t data[4] = \ ++ _sse2neon_init(((imm8) & (1 << 0)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0); \ ++ uint32x4_t mask = vld1q_u32(data); \ ++ float32x4_t all_zeros = vdupq_n_f32(0); \ ++ \ ++ _sse2neon_return(vreinterpretq_m128_f32( \ ++ vbslq_f32(mask, all_zeros, vreinterpretq_f32_m128(tmp2))));) ++ ++// Compare packed signed 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi32 ++FORCE_INLINE __m128i _mm_max_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmaxq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi8 ++FORCE_INLINE __m128i _mm_max_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vmaxq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu16 ++FORCE_INLINE __m128i _mm_max_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vmaxq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_max_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vmaxq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi32 ++FORCE_INLINE __m128i _mm_min_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vminq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi8 ++FORCE_INLINE __m128i _mm_min_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vminq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu16 ++FORCE_INLINE __m128i _mm_min_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vminq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_min_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vminq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Horizontally compute the minimum amongst the packed unsigned 16-bit integers ++// in a, store the minimum and index in dst, and zero the remaining bits in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_minpos_epu16 ++FORCE_INLINE __m128i _mm_minpos_epu16(__m128i a) ++{ ++ __m128i dst; ++ uint16_t min, idx = 0; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Find the minimum value ++ min = vminvq_u16(vreinterpretq_u16_m128i(a)); ++ ++ // Get the index of the minimum value ++ static const uint16_t idxv[] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint16x8_t minv = vdupq_n_u16(min); ++ uint16x8_t cmeq = vceqq_u16(minv, vreinterpretq_u16_m128i(a)); ++ idx = vminvq_u16(vornq_u16(vld1q_u16(idxv), cmeq)); ++#else ++ // Find the minimum value ++ __m64 tmp; ++ tmp = vreinterpret_m64_u16( ++ vmin_u16(vget_low_u16(vreinterpretq_u16_m128i(a)), ++ vget_high_u16(vreinterpretq_u16_m128i(a)))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ min = vget_lane_u16(vreinterpret_u16_m64(tmp), 0); ++ // Get the index of the minimum value ++ int i; ++ for (i = 0; i < 8; i++) { ++ if (min == vgetq_lane_u16(vreinterpretq_u16_m128i(a), 0)) { ++ idx = (uint16_t) i; ++ break; ++ } ++ a = _mm_srli_si128(a, 2); ++ } ++#endif ++ // Generate result ++ dst = _mm_setzero_si128(); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(min, vreinterpretq_u16_m128i(dst), 0)); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(idx, vreinterpretq_u16_m128i(dst), 1)); ++ return dst; ++} ++ ++// Compute the sum of absolute differences (SADs) of quadruplets of unsigned ++// 8-bit integers in a compared to those in b, and store the 16-bit results in ++// dst. Eight SADs are performed using one quadruplet from b and eight ++// quadruplets from a. One quadruplet is selected from b starting at on the ++// offset specified in imm8. Eight quadruplets are formed from sequential 8-bit ++// integers selected from a starting at the offset specified in imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mpsadbw_epu8 ++FORCE_INLINE __m128i _mm_mpsadbw_epu8(__m128i a, __m128i b, const int imm) ++{ ++ uint8x16_t _a, _b; ++ ++ switch (imm & 0x4) { ++ case 0: ++ // do nothing ++ _a = vreinterpretq_u8_m128i(a); ++ break; ++ case 4: ++ _a = vreinterpretq_u8_u32(vextq_u32(vreinterpretq_u32_m128i(a), ++ vreinterpretq_u32_m128i(a), 1)); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ switch (imm & 0x3) { ++ case 0: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 0))); ++ break; ++ case 1: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 1))); ++ break; ++ case 2: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 2))); ++ break; ++ case 3: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 3))); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ int16x8_t c04, c15, c26, c37; ++ uint8x8_t low_b = vget_low_u8(_b); ++ c04 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a), low_b)); ++ uint8x16_t _a_1 = vextq_u8(_a, _a, 1); ++ c15 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_1), low_b)); ++ uint8x16_t _a_2 = vextq_u8(_a, _a, 2); ++ c26 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_2), low_b)); ++ uint8x16_t _a_3 = vextq_u8(_a, _a, 3); ++ c37 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_3), low_b)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // |0|4|2|6| ++ c04 = vpaddq_s16(c04, c26); ++ // |1|5|3|7| ++ c15 = vpaddq_s16(c15, c37); ++ ++ int32x4_t trn1_c = ++ vtrn1q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ int32x4_t trn2_c = ++ vtrn2q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ return vreinterpretq_m128i_s16(vpaddq_s16(vreinterpretq_s16_s32(trn1_c), ++ vreinterpretq_s16_s32(trn2_c))); ++#else ++ int16x4_t c01, c23, c45, c67; ++ c01 = vpadd_s16(vget_low_s16(c04), vget_low_s16(c15)); ++ c23 = vpadd_s16(vget_low_s16(c26), vget_low_s16(c37)); ++ c45 = vpadd_s16(vget_high_s16(c04), vget_high_s16(c15)); ++ c67 = vpadd_s16(vget_high_s16(c26), vget_high_s16(c37)); ++ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(c01, c23), vpadd_s16(c45, c67))); ++#endif ++} ++ ++// Multiply the low signed 32-bit integers from each packed 64-bit element in ++// a and b, and store the signed 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epi32 ++FORCE_INLINE __m128i _mm_mul_epi32(__m128i a, __m128i b) ++{ ++ // vmull_s32 upcasts instead of masking, so we downcast. ++ int32x2_t a_lo = vmovn_s64(vreinterpretq_s64_m128i(a)); ++ int32x2_t b_lo = vmovn_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vmull_s32(a_lo, b_lo)); ++} ++ ++// Multiply the packed 32-bit integers in a and b, producing intermediate 64-bit ++// integers, and store the low 32 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi32 ++FORCE_INLINE __m128i _mm_mullo_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmulq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi32 ++FORCE_INLINE __m128i _mm_packus_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcombine_u16(vqmovun_s32(vreinterpretq_s32_m128i(a)), ++ vqmovun_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_pd ++FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d a, int rounding) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndnq_f64(vreinterpretq_f64_m128d(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_pd(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_pd(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndq_f64(vreinterpretq_f64_m128d(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128d_f64(vrndiq_f64(vreinterpretq_f64_m128d(a))); ++ } ++#else ++ double *v_double = (double *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ double res[2], tmp; ++ for (int i = 0; i < 2; i++) { ++ tmp = (v_double[i] < 0) ? -v_double[i] : v_double[i]; ++ double roundDown = floor(tmp); // Round down value ++ double roundUp = ceil(tmp); // Round up value ++ double diffDown = tmp - roundDown; ++ double diffUp = roundUp - tmp; ++ if (diffDown < diffUp) { ++ /* If it's closer to the round down value, then use it */ ++ res[i] = roundDown; ++ } else if (diffDown > diffUp) { ++ /* If it's closer to the round up value, then use it */ ++ res[i] = roundUp; ++ } else { ++ /* If it's equidistant between round up and round down value, ++ * pick the one which is an even number */ ++ double half = roundDown / 2; ++ if (half != floor(half)) { ++ /* If the round down value is odd, return the round up value ++ */ ++ res[i] = roundUp; ++ } else { ++ /* If the round up value is odd, return the round down value ++ */ ++ res[i] = roundDown; ++ } ++ } ++ res[i] = (v_double[i] < 0) ? -res[i] : res[i]; ++ } ++ return _mm_set_pd(res[1], res[0]); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_pd(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_pd(a); ++ } ++ return _mm_set_pd(v_double[1] > 0 ? floor(v_double[1]) : ceil(v_double[1]), ++ v_double[0] > 0 ? floor(v_double[0]) : ceil(v_double[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed single-precision ++// floating-point elements in dst. ++// software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_round_ps ++FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128 a, int rounding) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndnq_f32(vreinterpretq_f32_m128(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_ps(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_ps(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndq_f32(vreinterpretq_f32_m128(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128_f32(vrndiq_f32(vreinterpretq_f32_m128(a))); ++ } ++#else ++ float *v_float = (float *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vbslq_s32(is_delta_half, r_even, r_normal))); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_ps(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_ps(a); ++ } ++ return _mm_set_ps(v_float[3] > 0 ? floorf(v_float[3]) : ceilf(v_float[3]), ++ v_float[2] > 0 ? floorf(v_float[2]) : ceilf(v_float[2]), ++ v_float[1] > 0 ? floorf(v_float[1]) : ceilf(v_float[1]), ++ v_float[0] > 0 ? floorf(v_float[0]) : ceilf(v_float[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b using ++// the rounding parameter, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_sd ++FORCE_INLINE __m128d _mm_round_sd(__m128d a, __m128d b, int rounding) ++{ ++ return _mm_move_sd(a, _mm_round_pd(b, rounding)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b using ++// the rounding parameter, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. Rounding is done according to the ++// rounding[3:0] parameter, which can be one of: ++// (_MM_FROUND_TO_NEAREST_INT |_MM_FROUND_NO_EXC) // round to nearest, and ++// suppress exceptions ++// (_MM_FROUND_TO_NEG_INF |_MM_FROUND_NO_EXC) // round down, and ++// suppress exceptions ++// (_MM_FROUND_TO_POS_INF |_MM_FROUND_NO_EXC) // round up, and suppress ++// exceptions ++// (_MM_FROUND_TO_ZERO |_MM_FROUND_NO_EXC) // truncate, and suppress ++// exceptions _MM_FROUND_CUR_DIRECTION // use MXCSR.RC; see ++// _MM_SET_ROUNDING_MODE ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_ss ++FORCE_INLINE __m128 _mm_round_ss(__m128 a, __m128 b, int rounding) ++{ ++ return _mm_move_ss(a, _mm_round_ps(b, rounding)); ++} ++ ++// Load 128-bits of integer data from memory into dst using a non-temporal ++// memory hint. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_load_si128 ++FORCE_INLINE __m128i _mm_stream_load_si128(__m128i *p) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ return __builtin_nontemporal_load(p); ++#else ++ return vreinterpretq_m128i_s64(vld1q_s64((int64_t *) p)); ++#endif ++} ++ ++// Compute the bitwise NOT of a and then AND with a 128-bit vector containing ++// all 1's, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_ones ++FORCE_INLINE int _mm_test_all_ones(__m128i a) ++{ ++ return (uint64_t) (vgetq_lane_s64(a, 0) & vgetq_lane_s64(a, 1)) == ++ ~(uint64_t) 0; ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_zeros ++FORCE_INLINE int _mm_test_all_zeros(__m128i a, __m128i mask) ++{ ++ int64x2_t a_and_mask = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(mask)); ++ return !(vgetq_lane_s64(a_and_mask, 0) | vgetq_lane_s64(a_and_mask, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute ++// the bitwise NOT of a and then AND with mask, and set CF to 1 if the result is ++// zero, otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_test_mix_ones_zero ++// Note: Argument names may be wrong in the Intel intrinsics guide. ++FORCE_INLINE int _mm_test_mix_ones_zeros(__m128i a, __m128i mask) ++{ ++ uint64x2_t v = vreinterpretq_u64_m128i(a); ++ uint64x2_t m = vreinterpretq_u64_m128i(mask); ++ ++ // find ones (set-bits) and zeros (clear-bits) under clip mask ++ uint64x2_t ones = vandq_u64(m, v); ++ uint64x2_t zeros = vbicq_u64(m, v); ++ ++ // If both 128-bit variables are populated (non-zero) then return 1. ++ // For comparison purposes, first compact each var down to 32-bits. ++ uint32x2_t reduced = vpmax_u32(vqmovn_u64(ones), vqmovn_u64(zeros)); ++ ++ // if folding minimum is non-zero then both vars must be non-zero ++ return (vget_lane_u32(vpmin_u32(reduced, reduced), 0) != 0); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the CF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testc_si128 ++FORCE_INLINE int _mm_testc_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vbicq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testnzc_si128 ++#define _mm_testnzc_si128(a, b) _mm_test_mix_ones_zeros(a, b) ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the ZF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testz_si128 ++FORCE_INLINE int _mm_testz_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++/* SSE4.2 */ ++ ++static const uint16_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask16b[8] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++static const uint8_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask8b[16] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++ ++/* specify the source data format */ ++#define _SIDD_UBYTE_OPS 0x00 /* unsigned 8-bit characters */ ++#define _SIDD_UWORD_OPS 0x01 /* unsigned 16-bit characters */ ++#define _SIDD_SBYTE_OPS 0x02 /* signed 8-bit characters */ ++#define _SIDD_SWORD_OPS 0x03 /* signed 16-bit characters */ ++ ++/* specify the comparison operation */ ++#define _SIDD_CMP_EQUAL_ANY 0x00 /* compare equal any: strchr */ ++#define _SIDD_CMP_RANGES 0x04 /* compare ranges */ ++#define _SIDD_CMP_EQUAL_EACH 0x08 /* compare equal each: strcmp */ ++#define _SIDD_CMP_EQUAL_ORDERED 0x0C /* compare equal ordered */ ++ ++/* specify the polarity */ ++#define _SIDD_POSITIVE_POLARITY 0x00 ++#define _SIDD_MASKED_POSITIVE_POLARITY 0x20 ++#define _SIDD_NEGATIVE_POLARITY 0x10 /* negate results */ ++#define _SIDD_MASKED_NEGATIVE_POLARITY \ ++ 0x30 /* negate results only before end of string */ ++ ++/* specify the output selection in _mm_cmpXstri */ ++#define _SIDD_LEAST_SIGNIFICANT 0x00 ++#define _SIDD_MOST_SIGNIFICANT 0x40 ++ ++/* specify the output selection in _mm_cmpXstrm */ ++#define _SIDD_BIT_MASK 0x00 ++#define _SIDD_UNIT_MASK 0x40 ++ ++/* Pattern Matching for C macros. ++ * https://github.com/pfultz2/Cloak/wiki/C-Preprocessor-tricks,-tips,-and-idioms ++ */ ++ ++/* catenate */ ++#define SSE2NEON_PRIMITIVE_CAT(a, ...) a##__VA_ARGS__ ++#define SSE2NEON_CAT(a, b) SSE2NEON_PRIMITIVE_CAT(a, b) ++ ++#define SSE2NEON_IIF(c) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_IIF_, c) ++/* run the 2nd parameter */ ++#define SSE2NEON_IIF_0(t, ...) __VA_ARGS__ ++/* run the 1st parameter */ ++#define SSE2NEON_IIF_1(t, ...) t ++ ++#define SSE2NEON_COMPL(b) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_COMPL_, b) ++#define SSE2NEON_COMPL_0 1 ++#define SSE2NEON_COMPL_1 0 ++ ++#define SSE2NEON_DEC(x) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_DEC_, x) ++#define SSE2NEON_DEC_1 0 ++#define SSE2NEON_DEC_2 1 ++#define SSE2NEON_DEC_3 2 ++#define SSE2NEON_DEC_4 3 ++#define SSE2NEON_DEC_5 4 ++#define SSE2NEON_DEC_6 5 ++#define SSE2NEON_DEC_7 6 ++#define SSE2NEON_DEC_8 7 ++#define SSE2NEON_DEC_9 8 ++#define SSE2NEON_DEC_10 9 ++#define SSE2NEON_DEC_11 10 ++#define SSE2NEON_DEC_12 11 ++#define SSE2NEON_DEC_13 12 ++#define SSE2NEON_DEC_14 13 ++#define SSE2NEON_DEC_15 14 ++#define SSE2NEON_DEC_16 15 ++ ++/* detection */ ++#define SSE2NEON_CHECK_N(x, n, ...) n ++#define SSE2NEON_CHECK(...) SSE2NEON_CHECK_N(__VA_ARGS__, 0, ) ++#define SSE2NEON_PROBE(x) x, 1, ++ ++#define SSE2NEON_NOT(x) SSE2NEON_CHECK(SSE2NEON_PRIMITIVE_CAT(SSE2NEON_NOT_, x)) ++#define SSE2NEON_NOT_0 SSE2NEON_PROBE(~) ++ ++#define SSE2NEON_BOOL(x) SSE2NEON_COMPL(SSE2NEON_NOT(x)) ++#define SSE2NEON_IF(c) SSE2NEON_IIF(SSE2NEON_BOOL(c)) ++ ++#define SSE2NEON_EAT(...) ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++#define SSE2NEON_WHEN(c) SSE2NEON_IF(c)(SSE2NEON_EXPAND, SSE2NEON_EAT) ++ ++/* recursion */ ++/* deferred expression */ ++#define SSE2NEON_EMPTY() ++#define SSE2NEON_DEFER(id) id SSE2NEON_EMPTY() ++#define SSE2NEON_OBSTRUCT(...) __VA_ARGS__ SSE2NEON_DEFER(SSE2NEON_EMPTY)() ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++ ++#define SSE2NEON_EVAL(...) \ ++ SSE2NEON_EVAL1(SSE2NEON_EVAL1(SSE2NEON_EVAL1(__VA_ARGS__))) ++#define SSE2NEON_EVAL1(...) \ ++ SSE2NEON_EVAL2(SSE2NEON_EVAL2(SSE2NEON_EVAL2(__VA_ARGS__))) ++#define SSE2NEON_EVAL2(...) \ ++ SSE2NEON_EVAL3(SSE2NEON_EVAL3(SSE2NEON_EVAL3(__VA_ARGS__))) ++#define SSE2NEON_EVAL3(...) __VA_ARGS__ ++ ++#define SSE2NEON_REPEAT(count, macro, ...) \ ++ SSE2NEON_WHEN(count) \ ++ (SSE2NEON_OBSTRUCT(SSE2NEON_REPEAT_INDIRECT)()( \ ++ SSE2NEON_DEC(count), macro, \ ++ __VA_ARGS__) SSE2NEON_OBSTRUCT(macro)(SSE2NEON_DEC(count), \ ++ __VA_ARGS__)) ++#define SSE2NEON_REPEAT_INDIRECT() SSE2NEON_REPEAT ++ ++#define SSE2NEON_SIZE_OF_byte 8 ++#define SSE2NEON_NUMBER_OF_LANES_byte 16 ++#define SSE2NEON_SIZE_OF_word 16 ++#define SSE2NEON_NUMBER_OF_LANES_word 8 ++ ++#define SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE(i, type) \ ++ mtx[i] = vreinterpretq_m128i_##type(vceqq_##type( \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)), \ ++ vreinterpretq_##type##_m128i(a))); ++ ++#define SSE2NEON_FILL_LANE(i, type) \ ++ vec_b[i] = \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)); ++ ++#define PCMPSTR_RANGES(a, b, mtx, data_type_prefix, type_prefix, size, \ ++ number_of_lanes, byte_or_word) \ ++ do { \ ++ SSE2NEON_CAT( \ ++ data_type_prefix, \ ++ SSE2NEON_CAT(size, \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(number_of_lanes, _t)))) \ ++ vec_b[number_of_lanes]; \ ++ __m128i mask = SSE2NEON_IIF(byte_or_word)( \ ++ vreinterpretq_m128i_u16(vdupq_n_u16(0xff)), \ ++ vreinterpretq_m128i_u32(vdupq_n_u32(0xffff))); \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, SSE2NEON_FILL_LANE, \ ++ SSE2NEON_CAT(type_prefix, size))) \ ++ for (int i = 0; i < number_of_lanes; i++) { \ ++ mtx[i] = SSE2NEON_CAT(vreinterpretq_m128i_u, \ ++ size)(SSE2NEON_CAT(vbslq_u, size)( \ ++ SSE2NEON_CAT(vreinterpretq_u, \ ++ SSE2NEON_CAT(size, _m128i))(mask), \ ++ SSE2NEON_CAT(vcgeq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))), \ ++ SSE2NEON_CAT(vcleq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))))); \ ++ } \ ++ } while (0) ++ ++#define PCMPSTR_EQ(a, b, mtx, size, number_of_lanes) \ ++ do { \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, \ ++ SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE, \ ++ SSE2NEON_CAT(u, size))) \ ++ } while (0) ++ ++#define SSE2NEON_CMP_EQUAL_ANY_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_any(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_any_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_RANGES_IMPL(type, data_type, us, byte_or_word) \ ++ static int _sse2neon_cmp_##us##type##_ranges(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_RANGES( \ ++ a, b, mtx, data_type, us, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), byte_or_word); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_ranges_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_EQUAL_ORDERED_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_ordered(__m128i a, int la, \ ++ __m128i b, int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_ordered_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type))))( \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), la, lb, mtx); \ ++ } ++ ++static int _sse2neon_aggregate_equal_any_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ int tmp = _sse2neon_vaddvq_u8(vreinterpretq_u8_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_equal_any_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ int tmp = _sse2neon_vaddvq_u16(vreinterpretq_u16_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ANY(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ANY(SSE2NEON_CMP_EQUAL_ANY_) ++ ++static int _sse2neon_aggregate_ranges_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ __m128i tmp = vreinterpretq_m128i_u32( ++ vshrq_n_u32(vreinterpretq_u32_m128i(mtx[j]), 16)); ++ uint32x4_t vec_res = vandq_u32(vreinterpretq_u32_m128i(mtx[j]), ++ vreinterpretq_u32_m128i(tmp)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int t = vaddvq_u32(vec_res) ? 1 : 0; ++#else ++ uint64x2_t sumh = vpaddlq_u32(vec_res); ++ int t = vgetq_lane_u64(sumh, 0) + vgetq_lane_u64(sumh, 1); ++#endif ++ res |= (t << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_ranges_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ __m128i tmp = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 8)); ++ uint16x8_t vec_res = vandq_u16(vreinterpretq_u16_m128i(mtx[j]), ++ vreinterpretq_u16_m128i(tmp)); ++ int t = _sse2neon_vaddvq_u16(vec_res) ? 1 : 0; ++ res |= (t << j); ++ } ++ return res; ++} ++ ++#define SSE2NEON_CMP_RANGES_IS_BYTE 1 ++#define SSE2NEON_CMP_RANGES_IS_WORD 0 ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_RANGES(prefix) \ ++ prefix##IMPL(byte, uint, u, prefix##IS_BYTE) \ ++ prefix##IMPL(byte, int, s, prefix##IS_BYTE) \ ++ prefix##IMPL(word, uint, u, prefix##IS_WORD) \ ++ prefix##IMPL(word, int, s, prefix##IS_WORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_RANGES(SSE2NEON_CMP_RANGES_) ++ ++#undef SSE2NEON_CMP_RANGES_IS_BYTE ++#undef SSE2NEON_CMP_RANGES_IS_WORD ++ ++static int _sse2neon_cmp_byte_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint8x16_t mtx = ++ vceqq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x10000 - (1 << la); ++ int tb = 0x10000 - (1 << lb); ++ uint8x8_t vec_mask, vec0_lo, vec0_hi, vec1_lo, vec1_hi; ++ uint8x8_t tmp_lo, tmp_hi, res_lo, res_hi; ++ vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ vec0_lo = vtst_u8(vdup_n_u8(m0), vec_mask); ++ vec0_hi = vtst_u8(vdup_n_u8(m0 >> 8), vec_mask); ++ vec1_lo = vtst_u8(vdup_n_u8(m1), vec_mask); ++ vec1_hi = vtst_u8(vdup_n_u8(m1 >> 8), vec_mask); ++ tmp_lo = vtst_u8(vdup_n_u8(tb), vec_mask); ++ tmp_hi = vtst_u8(vdup_n_u8(tb >> 8), vec_mask); ++ ++ res_lo = vbsl_u8(vec0_lo, vdup_n_u8(0), vget_low_u8(mtx)); ++ res_hi = vbsl_u8(vec0_hi, vdup_n_u8(0), vget_high_u8(mtx)); ++ res_lo = vbsl_u8(vec1_lo, tmp_lo, res_lo); ++ res_hi = vbsl_u8(vec1_hi, tmp_hi, res_hi); ++ res_lo = vand_u8(res_lo, vec_mask); ++ res_hi = vand_u8(res_hi, vec_mask); ++ ++ int res = _sse2neon_vaddv_u8(res_lo) + (_sse2neon_vaddv_u8(res_hi) << 8); ++ return res; ++} ++ ++static int _sse2neon_cmp_word_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint16x8_t mtx = ++ vceqq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x100 - (1 << la); ++ int tb = 0x100 - (1 << lb); ++ uint16x8_t vec_mask = vld1q_u16(_sse2neon_cmpestr_mask16b); ++ uint16x8_t vec0 = vtstq_u16(vdupq_n_u16(m0), vec_mask); ++ uint16x8_t vec1 = vtstq_u16(vdupq_n_u16(m1), vec_mask); ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(tb), vec_mask); ++ mtx = vbslq_u16(vec0, vdupq_n_u16(0), mtx); ++ mtx = vbslq_u16(vec1, tmp, mtx); ++ mtx = vandq_u16(mtx, vec_mask); ++ return _sse2neon_vaddvq_u16(mtx); ++} ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE 1 ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD 0 ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IMPL(size, number_of_lanes, data_type) \ ++ static int _sse2neon_aggregate_equal_ordered_##size##x##number_of_lanes( \ ++ int bound, int la, int lb, __m128i mtx[16]) \ ++ { \ ++ int res = 0; \ ++ int m1 = SSE2NEON_IIF(data_type)(0x10000, 0x100) - (1 << la); \ ++ uint##size##x8_t vec_mask = SSE2NEON_IIF(data_type)( \ ++ vld1_u##size(_sse2neon_cmpestr_mask##size##b), \ ++ vld1q_u##size(_sse2neon_cmpestr_mask##size##b)); \ ++ uint##size##x##number_of_lanes##_t vec1 = SSE2NEON_IIF(data_type)( \ ++ vcombine_u##size(vtst_u##size(vdup_n_u##size(m1), vec_mask), \ ++ vtst_u##size(vdup_n_u##size(m1 >> 8), vec_mask)), \ ++ vtstq_u##size(vdupq_n_u##size(m1), vec_mask)); \ ++ uint##size##x##number_of_lanes##_t vec_minusone = vdupq_n_u##size(-1); \ ++ uint##size##x##number_of_lanes##_t vec_zero = vdupq_n_u##size(0); \ ++ for (int j = 0; j < lb; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size(vbslq_u##size( \ ++ vec1, vec_minusone, vreinterpretq_u##size##_m128i(mtx[j]))); \ ++ } \ ++ for (int j = lb; j < bound; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size( \ ++ vbslq_u##size(vec1, vec_minusone, vec_zero)); \ ++ } \ ++ unsigned SSE2NEON_IIF(data_type)(char, short) *ptr = \ ++ (unsigned SSE2NEON_IIF(data_type)(char, short) *) mtx; \ ++ for (int i = 0; i < bound; i++) { \ ++ int val = 1; \ ++ for (int j = 0, k = i; j < bound - i && k < bound; j++, k++) \ ++ val &= ptr[k * bound + j]; \ ++ res += val << i; \ ++ } \ ++ return res; \ ++ } ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(prefix) \ ++ prefix##IMPL(8, 16, prefix##IS_UBYTE) \ ++ prefix##IMPL(16, 8, prefix##IS_UWORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(SSE2NEON_AGGREGATE_EQUAL_ORDER_) ++ ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(SSE2NEON_CMP_EQUAL_ORDERED_) ++ ++#define SSE2NEON_CMPESTR_LIST \ ++ _(CMP_UBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_UWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_SBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_SWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_UBYTE_RANGES, cmp_ubyte_ranges) \ ++ _(CMP_UWORD_RANGES, cmp_uword_ranges) \ ++ _(CMP_SBYTE_RANGES, cmp_sbyte_ranges) \ ++ _(CMP_SWORD_RANGES, cmp_sword_ranges) \ ++ _(CMP_UBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_UWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_SBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_SWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_UBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_UWORD_EQUAL_ORDERED, cmp_word_equal_ordered) \ ++ _(CMP_SBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_SWORD_EQUAL_ORDERED, cmp_word_equal_ordered) ++ ++enum { ++#define _(name, func_suffix) name, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++typedef int (*cmpestr_func_t)(__m128i a, int la, __m128i b, int lb); ++static cmpestr_func_t _sse2neon_cmpfunc_table[] = { ++#define _(name, func_suffix) _sse2neon_##func_suffix, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++ ++FORCE_INLINE int _sse2neon_sido_negative(int res, int lb, int imm8, int bound) ++{ ++ switch (imm8 & 0x30) { ++ case _SIDD_NEGATIVE_POLARITY: ++ res ^= 0xffffffff; ++ break; ++ case _SIDD_MASKED_NEGATIVE_POLARITY: ++ res ^= (1 << lb) - 1; ++ break; ++ default: ++ break; ++ } ++ ++ return res & ((bound == 8) ? 0xFF : 0xFFFF); ++} ++ ++FORCE_INLINE int _sse2neon_clz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanReverse(&cnt, x)) ++ return 31 - cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_clz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanForward(&cnt, x)) ++ return cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_ctz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctzll(unsigned long long x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt; ++#if defined(SSE2NEON_HAS_BITSCAN64) ++ if (_BitScanForward64(&cnt, x)) ++ return (int) (cnt); ++#else ++ if (_BitScanForward(&cnt, (unsigned long) (x))) ++ return (int) cnt; ++ if (_BitScanForward(&cnt, (unsigned long) (x >> 32))) ++ return (int) (cnt + 32); ++#endif /* SSE2NEON_HAS_BITSCAN64 */ ++ return 64; ++#else /* assume GNU compatible compilers */ ++ return x != 0 ? __builtin_ctzll(x) : 64; ++#endif ++} ++ ++#define SSE2NEON_MIN(x, y) (x) < (y) ? (x) : (y) ++ ++#define SSE2NEON_CMPSTR_SET_UPPER(var, imm) \ ++ const int var = (imm & 0x01) ? 8 : 16 ++ ++#define SSE2NEON_CMPESTRX_LEN_PAIR(a, b, la, lb) \ ++ int tmp1 = la ^ (la >> 31); \ ++ la = tmp1 - (la >> 31); \ ++ int tmp2 = lb ^ (lb >> 31); \ ++ lb = tmp2 - (lb >> 31); \ ++ la = SSE2NEON_MIN(la, bound); \ ++ lb = SSE2NEON_MIN(lb, bound) ++ ++// Compare all pairs of character in string a and b, ++// then aggregate the result. ++// As the only difference of PCMPESTR* and PCMPISTR* is the way to calculate the ++// length of string, we use SSE2NEON_CMP{I,E}STRX_GET_LEN to get the length of ++// string a and b. ++#define SSE2NEON_COMP_AGG(a, b, la, lb, imm8, IE) \ ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); \ ++ SSE2NEON_##IE##_LEN_PAIR(a, b, la, lb); \ ++ int r2 = (_sse2neon_cmpfunc_table[imm8 & 0x0f])(a, la, b, lb); \ ++ r2 = _sse2neon_sido_negative(r2, lb, imm8, bound) ++ ++#define SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8) \ ++ return (r2 == 0) ? bound \ ++ : ((imm8 & 0x40) ? (31 - _sse2neon_clz(r2)) \ ++ : _sse2neon_ctz(r2)) ++ ++#define SSE2NEON_CMPSTR_GENERATE_MASK(dst) \ ++ __m128i dst = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ if (imm8 & 0x40) { \ ++ if (bound == 8) { \ ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(r2), \ ++ vld1q_u16(_sse2neon_cmpestr_mask16b)); \ ++ dst = vreinterpretq_m128i_u16(vbslq_u16( \ ++ tmp, vdupq_n_u16(-1), vreinterpretq_u16_m128i(dst))); \ ++ } else { \ ++ uint8x16_t vec_r2 = \ ++ vcombine_u8(vdup_n_u8(r2), vdup_n_u8(r2 >> 8)); \ ++ uint8x16_t tmp = \ ++ vtstq_u8(vec_r2, vld1q_u8(_sse2neon_cmpestr_mask8b)); \ ++ dst = vreinterpretq_m128i_u8( \ ++ vbslq_u8(tmp, vdupq_n_u8(-1), vreinterpretq_u8_m128i(dst))); \ ++ } \ ++ } else { \ ++ if (bound == 16) { \ ++ dst = vreinterpretq_m128i_u16( \ ++ vsetq_lane_u16(r2 & 0xffff, vreinterpretq_u16_m128i(dst), 0)); \ ++ } else { \ ++ dst = vreinterpretq_m128i_u8( \ ++ vsetq_lane_u8(r2 & 0xff, vreinterpretq_u8_m128i(dst), 0)); \ ++ } \ ++ } \ ++ return dst ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and returns 1 if b did not contain a null character and the ++// resulting mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestra ++FORCE_INLINE int _mm_cmpestra(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ int lb_cpy = lb; ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return !r2 & (lb_cpy > bound); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrc ++FORCE_INLINE int _mm_cmpestrc(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestri ++FORCE_INLINE int _mm_cmpestri(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrm ++FORCE_INLINE __m128i ++_mm_cmpestrm(__m128i a, int la, __m128i b, int lb, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestro ++FORCE_INLINE int _mm_cmpestro(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrs ++FORCE_INLINE int _mm_cmpestrs(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) lb; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrz ++FORCE_INLINE int _mm_cmpestrz(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) la; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return lb <= (bound - 1); ++} ++ ++#define SSE2NEON_CMPISTRX_LENGTH(str, len, imm8) \ ++ do { \ ++ if (imm8 & 0x01) { \ ++ uint16x8_t equal_mask_##str = \ ++ vceqq_u16(vreinterpretq_u16_m128i(str), vdupq_n_u16(0)); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 3; \ ++ } else { \ ++ uint16x8_t equal_mask_##str = vreinterpretq_u16_u8( \ ++ vceqq_u8(vreinterpretq_u8_m128i(str), vdupq_n_u8(0))); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 2; \ ++ } \ ++ } while (0) ++ ++#define SSE2NEON_CMPISTRX_LEN_PAIR(a, b, la, lb) \ ++ int la, lb; \ ++ do { \ ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); \ ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); \ ++ } while (0) ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if b did not contain a null character and the resulting ++// mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistra ++FORCE_INLINE int _mm_cmpistra(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return !r2 & (lb >= bound); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrc ++FORCE_INLINE int _mm_cmpistrc(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistri ++FORCE_INLINE int _mm_cmpistri(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrm ++FORCE_INLINE __m128i _mm_cmpistrm(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistro ++FORCE_INLINE int _mm_cmpistro(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrs ++FORCE_INLINE int _mm_cmpistrs(__m128i a, __m128i b, const int imm8) ++{ ++ (void) b; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int la; ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrz ++FORCE_INLINE int _mm_cmpistrz(__m128i a, __m128i b, const int imm8) ++{ ++ (void) a; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int lb; ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); ++ return lb <= (bound - 1); ++} ++ ++// Compares the 2 signed 64-bit integers in a and the 2 signed 64-bit integers ++// in b for greater than. ++FORCE_INLINE __m128i _mm_cmpgt_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vcgtq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ return vreinterpretq_m128i_s64(vshrq_n_s64( ++ vqsubq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)), ++ 63)); ++#endif ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 16-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u16 ++FORCE_INLINE uint32_t _mm_crc32_u16(uint32_t crc, uint16_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32ch %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32ch(crc, v); ++#else ++ crc = _mm_crc32_u8(crc, v & 0xff); ++ crc = _mm_crc32_u8(crc, (v >> 8) & 0xff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 32-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u32 ++FORCE_INLINE uint32_t _mm_crc32_u32(uint32_t crc, uint32_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cw %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cw(crc, v); ++#else ++ crc = _mm_crc32_u16(crc, v & 0xffff); ++ crc = _mm_crc32_u16(crc, (v >> 16) & 0xffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 64-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u64 ++FORCE_INLINE uint64_t _mm_crc32_u64(uint64_t crc, uint64_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cx %w[c], %w[c], %x[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cd((uint32_t) crc, v); ++#else ++ crc = _mm_crc32_u32((uint32_t) (crc), v & 0xffffffff); ++ crc = _mm_crc32_u32((uint32_t) (crc), (v >> 32) & 0xffffffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 8-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u8 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t crc, uint8_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cb %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cb(crc, v); ++#else ++ crc ^= v; ++#if defined(__ARM_FEATURE_CRYPTO) ++ // Adapted from: https://mary.rs/lab/crc32/ ++ // Barrent reduction ++ uint64x2_t orig = ++ vcombine_u64(vcreate_u64((uint64_t) (crc) << 24), vcreate_u64(0x0)); ++ uint64x2_t tmp = orig; ++ ++ // Polynomial P(x) of CRC32C ++ uint64_t p = 0x105EC76F1; ++ // Barrett Reduction (in bit-reflected form) constant mu_{64} = \lfloor ++ // 2^{64} / P(x) \rfloor = 0x11f91caf6 ++ uint64_t mu = 0x1dea713f1; ++ ++ // Multiply by mu_{64} ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(mu)); ++ // Divide by 2^{64} (mask away the unnecessary bits) ++ tmp = ++ vandq_u64(tmp, vcombine_u64(vcreate_u64(0xFFFFFFFF), vcreate_u64(0x0))); ++ // Multiply by P(x) (shifted left by 1 for alignment reasons) ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(p)); ++ // Subtract original from result ++ tmp = veorq_u64(tmp, orig); ++ ++ // Extract the 'lower' (in bit-reflected sense) 32 bits ++ crc = vgetq_lane_u32(vreinterpretq_u32_u64(tmp), 1); ++#else // Fall back to the generic table lookup approach ++ // Adapted from: https://create.stephan-brumme.com/crc32/ ++ // Apply half-byte comparison algorithm for the best ratio between ++ // performance and lookup table. ++ ++ // The lookup table just needs to store every 16th entry ++ // of the standard look-up table. ++ static const uint32_t crc32_half_byte_tbl[] = { ++ 0x00000000, 0x105ec76f, 0x20bd8ede, 0x30e349b1, 0x417b1dbc, 0x5125dad3, ++ 0x61c69362, 0x7198540d, 0x82f63b78, 0x92a8fc17, 0xa24bb5a6, 0xb21572c9, ++ 0xc38d26c4, 0xd3d3e1ab, 0xe330a81a, 0xf36e6f75, ++ }; ++ ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++#endif ++#endif ++ return crc; ++} ++ ++/* AES */ ++ ++#if !defined(__ARM_FEATURE_CRYPTO) && (!defined(_M_ARM64) || defined(__clang__)) ++/* clang-format off */ ++#define SSE2NEON_AES_SBOX(w) \ ++ { \ ++ w(0x63), w(0x7c), w(0x77), w(0x7b), w(0xf2), w(0x6b), w(0x6f), \ ++ w(0xc5), w(0x30), w(0x01), w(0x67), w(0x2b), w(0xfe), w(0xd7), \ ++ w(0xab), w(0x76), w(0xca), w(0x82), w(0xc9), w(0x7d), w(0xfa), \ ++ w(0x59), w(0x47), w(0xf0), w(0xad), w(0xd4), w(0xa2), w(0xaf), \ ++ w(0x9c), w(0xa4), w(0x72), w(0xc0), w(0xb7), w(0xfd), w(0x93), \ ++ w(0x26), w(0x36), w(0x3f), w(0xf7), w(0xcc), w(0x34), w(0xa5), \ ++ w(0xe5), w(0xf1), w(0x71), w(0xd8), w(0x31), w(0x15), w(0x04), \ ++ w(0xc7), w(0x23), w(0xc3), w(0x18), w(0x96), w(0x05), w(0x9a), \ ++ w(0x07), w(0x12), w(0x80), w(0xe2), w(0xeb), w(0x27), w(0xb2), \ ++ w(0x75), w(0x09), w(0x83), w(0x2c), w(0x1a), w(0x1b), w(0x6e), \ ++ w(0x5a), w(0xa0), w(0x52), w(0x3b), w(0xd6), w(0xb3), w(0x29), \ ++ w(0xe3), w(0x2f), w(0x84), w(0x53), w(0xd1), w(0x00), w(0xed), \ ++ w(0x20), w(0xfc), w(0xb1), w(0x5b), w(0x6a), w(0xcb), w(0xbe), \ ++ w(0x39), w(0x4a), w(0x4c), w(0x58), w(0xcf), w(0xd0), w(0xef), \ ++ w(0xaa), w(0xfb), w(0x43), w(0x4d), w(0x33), w(0x85), w(0x45), \ ++ w(0xf9), w(0x02), w(0x7f), w(0x50), w(0x3c), w(0x9f), w(0xa8), \ ++ w(0x51), w(0xa3), w(0x40), w(0x8f), w(0x92), w(0x9d), w(0x38), \ ++ w(0xf5), w(0xbc), w(0xb6), w(0xda), w(0x21), w(0x10), w(0xff), \ ++ w(0xf3), w(0xd2), w(0xcd), w(0x0c), w(0x13), w(0xec), w(0x5f), \ ++ w(0x97), w(0x44), w(0x17), w(0xc4), w(0xa7), w(0x7e), w(0x3d), \ ++ w(0x64), w(0x5d), w(0x19), w(0x73), w(0x60), w(0x81), w(0x4f), \ ++ w(0xdc), w(0x22), w(0x2a), w(0x90), w(0x88), w(0x46), w(0xee), \ ++ w(0xb8), w(0x14), w(0xde), w(0x5e), w(0x0b), w(0xdb), w(0xe0), \ ++ w(0x32), w(0x3a), w(0x0a), w(0x49), w(0x06), w(0x24), w(0x5c), \ ++ w(0xc2), w(0xd3), w(0xac), w(0x62), w(0x91), w(0x95), w(0xe4), \ ++ w(0x79), w(0xe7), w(0xc8), w(0x37), w(0x6d), w(0x8d), w(0xd5), \ ++ w(0x4e), w(0xa9), w(0x6c), w(0x56), w(0xf4), w(0xea), w(0x65), \ ++ w(0x7a), w(0xae), w(0x08), w(0xba), w(0x78), w(0x25), w(0x2e), \ ++ w(0x1c), w(0xa6), w(0xb4), w(0xc6), w(0xe8), w(0xdd), w(0x74), \ ++ w(0x1f), w(0x4b), w(0xbd), w(0x8b), w(0x8a), w(0x70), w(0x3e), \ ++ w(0xb5), w(0x66), w(0x48), w(0x03), w(0xf6), w(0x0e), w(0x61), \ ++ w(0x35), w(0x57), w(0xb9), w(0x86), w(0xc1), w(0x1d), w(0x9e), \ ++ w(0xe1), w(0xf8), w(0x98), w(0x11), w(0x69), w(0xd9), w(0x8e), \ ++ w(0x94), w(0x9b), w(0x1e), w(0x87), w(0xe9), w(0xce), w(0x55), \ ++ w(0x28), w(0xdf), w(0x8c), w(0xa1), w(0x89), w(0x0d), w(0xbf), \ ++ w(0xe6), w(0x42), w(0x68), w(0x41), w(0x99), w(0x2d), w(0x0f), \ ++ w(0xb0), w(0x54), w(0xbb), w(0x16) \ ++ } ++#define SSE2NEON_AES_RSBOX(w) \ ++ { \ ++ w(0x52), w(0x09), w(0x6a), w(0xd5), w(0x30), w(0x36), w(0xa5), \ ++ w(0x38), w(0xbf), w(0x40), w(0xa3), w(0x9e), w(0x81), w(0xf3), \ ++ w(0xd7), w(0xfb), w(0x7c), w(0xe3), w(0x39), w(0x82), w(0x9b), \ ++ w(0x2f), w(0xff), w(0x87), w(0x34), w(0x8e), w(0x43), w(0x44), \ ++ w(0xc4), w(0xde), w(0xe9), w(0xcb), w(0x54), w(0x7b), w(0x94), \ ++ w(0x32), w(0xa6), w(0xc2), w(0x23), w(0x3d), w(0xee), w(0x4c), \ ++ w(0x95), w(0x0b), w(0x42), w(0xfa), w(0xc3), w(0x4e), w(0x08), \ ++ w(0x2e), w(0xa1), w(0x66), w(0x28), w(0xd9), w(0x24), w(0xb2), \ ++ w(0x76), w(0x5b), w(0xa2), w(0x49), w(0x6d), w(0x8b), w(0xd1), \ ++ w(0x25), w(0x72), w(0xf8), w(0xf6), w(0x64), w(0x86), w(0x68), \ ++ w(0x98), w(0x16), w(0xd4), w(0xa4), w(0x5c), w(0xcc), w(0x5d), \ ++ w(0x65), w(0xb6), w(0x92), w(0x6c), w(0x70), w(0x48), w(0x50), \ ++ w(0xfd), w(0xed), w(0xb9), w(0xda), w(0x5e), w(0x15), w(0x46), \ ++ w(0x57), w(0xa7), w(0x8d), w(0x9d), w(0x84), w(0x90), w(0xd8), \ ++ w(0xab), w(0x00), w(0x8c), w(0xbc), w(0xd3), w(0x0a), w(0xf7), \ ++ w(0xe4), w(0x58), w(0x05), w(0xb8), w(0xb3), w(0x45), w(0x06), \ ++ w(0xd0), w(0x2c), w(0x1e), w(0x8f), w(0xca), w(0x3f), w(0x0f), \ ++ w(0x02), w(0xc1), w(0xaf), w(0xbd), w(0x03), w(0x01), w(0x13), \ ++ w(0x8a), w(0x6b), w(0x3a), w(0x91), w(0x11), w(0x41), w(0x4f), \ ++ w(0x67), w(0xdc), w(0xea), w(0x97), w(0xf2), w(0xcf), w(0xce), \ ++ w(0xf0), w(0xb4), w(0xe6), w(0x73), w(0x96), w(0xac), w(0x74), \ ++ w(0x22), w(0xe7), w(0xad), w(0x35), w(0x85), w(0xe2), w(0xf9), \ ++ w(0x37), w(0xe8), w(0x1c), w(0x75), w(0xdf), w(0x6e), w(0x47), \ ++ w(0xf1), w(0x1a), w(0x71), w(0x1d), w(0x29), w(0xc5), w(0x89), \ ++ w(0x6f), w(0xb7), w(0x62), w(0x0e), w(0xaa), w(0x18), w(0xbe), \ ++ w(0x1b), w(0xfc), w(0x56), w(0x3e), w(0x4b), w(0xc6), w(0xd2), \ ++ w(0x79), w(0x20), w(0x9a), w(0xdb), w(0xc0), w(0xfe), w(0x78), \ ++ w(0xcd), w(0x5a), w(0xf4), w(0x1f), w(0xdd), w(0xa8), w(0x33), \ ++ w(0x88), w(0x07), w(0xc7), w(0x31), w(0xb1), w(0x12), w(0x10), \ ++ w(0x59), w(0x27), w(0x80), w(0xec), w(0x5f), w(0x60), w(0x51), \ ++ w(0x7f), w(0xa9), w(0x19), w(0xb5), w(0x4a), w(0x0d), w(0x2d), \ ++ w(0xe5), w(0x7a), w(0x9f), w(0x93), w(0xc9), w(0x9c), w(0xef), \ ++ w(0xa0), w(0xe0), w(0x3b), w(0x4d), w(0xae), w(0x2a), w(0xf5), \ ++ w(0xb0), w(0xc8), w(0xeb), w(0xbb), w(0x3c), w(0x83), w(0x53), \ ++ w(0x99), w(0x61), w(0x17), w(0x2b), w(0x04), w(0x7e), w(0xba), \ ++ w(0x77), w(0xd6), w(0x26), w(0xe1), w(0x69), w(0x14), w(0x63), \ ++ w(0x55), w(0x21), w(0x0c), w(0x7d) \ ++ } ++/* clang-format on */ ++ ++/* X Macro trick. See https://en.wikipedia.org/wiki/X_Macro */ ++#define SSE2NEON_AES_H0(x) (x) ++static const uint8_t _sse2neon_sbox[256] = SSE2NEON_AES_SBOX(SSE2NEON_AES_H0); ++static const uint8_t _sse2neon_rsbox[256] = SSE2NEON_AES_RSBOX(SSE2NEON_AES_H0); ++#undef SSE2NEON_AES_H0 ++ ++/* x_time function and matrix multiply function */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#define SSE2NEON_XT(x) (((x) << 1) ^ ((((x) >> 7) & 1) * 0x1b)) ++#define SSE2NEON_MULTIPLY(x, y) \ ++ (((y & 1) * x) ^ ((y >> 1 & 1) * SSE2NEON_XT(x)) ^ \ ++ ((y >> 2 & 1) * SSE2NEON_XT(SSE2NEON_XT(x))) ^ \ ++ ((y >> 3 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))) ^ \ ++ ((y >> 4 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))))) ++#endif ++ ++// In the absence of crypto extensions, implement aesenc using regular NEON ++// intrinsics instead. See: ++// https://www.workofard.com/2017/01/accelerated-aes-for-the-arm64-linux-kernel/ ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/ and ++// for more information. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ /* shift rows */ ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ /* sub bytes */ ++ // Here, we separate the whole 256-bytes table into 4 64-bytes tables, and ++ // look up each of the table. After each lookup, we load the next table ++ // which locates at the next 64-bytes. In the meantime, the index in the ++ // table would be smaller than it was, so the index parameters of ++ // `vqtbx4q_u8()` need to be added the same constant as the loaded tables. ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ // 'w-0x40' equals to 'vsubq_u8(w, vdupq_n_u8(0x40))' ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ /* mix columns */ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ /* add round key */ ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A implementation for a table-based AES */ ++#define SSE2NEON_AES_B2W(b0, b1, b2, b3) \ ++ (((uint32_t) (b3) << 24) | ((uint32_t) (b2) << 16) | \ ++ ((uint32_t) (b1) << 8) | (uint32_t) (b0)) ++// multiplying 'x' by 2 in GF(2^8) ++#define SSE2NEON_AES_F2(x) ((x << 1) ^ (((x >> 7) & 1) * 0x011b /* WPOLY */)) ++// multiplying 'x' by 3 in GF(2^8) ++#define SSE2NEON_AES_F3(x) (SSE2NEON_AES_F2(x) ^ x) ++#define SSE2NEON_AES_U0(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F2(p), p, p, SSE2NEON_AES_F3(p)) ++#define SSE2NEON_AES_U1(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p, p) ++#define SSE2NEON_AES_U2(p) \ ++ SSE2NEON_AES_B2W(p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p) ++#define SSE2NEON_AES_U3(p) \ ++ SSE2NEON_AES_B2W(p, p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p)) ++ ++ // this generates a table containing every possible permutation of ++ // shift_rows() and sub_bytes() with mix_columns(). ++ static const uint32_t ALIGN_STRUCT(16) aes_table[4][256] = { ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U0), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U1), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U2), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U3), ++ }; ++#undef SSE2NEON_AES_B2W ++#undef SSE2NEON_AES_F2 ++#undef SSE2NEON_AES_F3 ++#undef SSE2NEON_AES_U0 ++#undef SSE2NEON_AES_U1 ++#undef SSE2NEON_AES_U2 ++#undef SSE2NEON_AES_U3 ++ ++ uint32_t x0 = _mm_cvtsi128_si32(a); // get a[31:0] ++ uint32_t x1 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); // get a[63:32] ++ uint32_t x2 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xAA)); // get a[95:64] ++ uint32_t x3 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); // get a[127:96] ++ ++ // finish the modulo addition step in mix_columns() ++ __m128i out = _mm_set_epi32( ++ (aes_table[0][x3 & 0xff] ^ aes_table[1][(x0 >> 8) & 0xff] ^ ++ aes_table[2][(x1 >> 16) & 0xff] ^ aes_table[3][x2 >> 24]), ++ (aes_table[0][x2 & 0xff] ^ aes_table[1][(x3 >> 8) & 0xff] ^ ++ aes_table[2][(x0 >> 16) & 0xff] ^ aes_table[3][x1 >> 24]), ++ (aes_table[0][x1 & 0xff] ^ aes_table[1][(x2 >> 8) & 0xff] ^ ++ aes_table[2][(x3 >> 16) & 0xff] ^ aes_table[3][x0 >> 24]), ++ (aes_table[0][x0 & 0xff] ^ aes_table[1][(x1 >> 8) & 0xff] ^ ++ aes_table[2][(x2 >> 16) & 0xff] ^ aes_table[3][x3 >> 24])); ++ ++ return _mm_xor_si128(out, RoundKey); ++#endif ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // inverse mix columns ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & ++ 0x1b); // multiplying 'v' by 2 in GF(2^8) ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ // inverse mix columns ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ // sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A implementation */ ++ uint8_t v[16] = { ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 0)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 5)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 10)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 15)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 4)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 9)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 14)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 3)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 8)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 13)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 2)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 7)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 12)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 1)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 6)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 11)], ++ }; ++ ++ return vreinterpretq_m128i_u8(vld1q_u8(v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (int i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++#if defined(__aarch64__) ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ uint8x16_t v = vreinterpretq_u8_m128i(a); ++ uint8x16_t w; ++ ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ // multiplying 'v' by 2 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ return vreinterpretq_m128i_u8(w); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ vst1q_u8((uint8_t *) v, vreinterpretq_u8_m128i(a)); ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)); ++#endif ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++// ++// Emits the Advanced Encryption Standard (AES) instruction aeskeygenassist. ++// This instruction generates a round key for AES encryption. See ++// https://kazakov.life/2017/11/01/cryptocurrency-mining-on-ios-devices/ ++// for details. ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++#if defined(__aarch64__) ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); ++ uint8x16_t v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), _a); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), _a - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), _a - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), _a - 0xc0); ++ ++ uint32x4_t v_u32 = vreinterpretq_u32_u8(v); ++ uint32x4_t ror_v = vorrq_u32(vshrq_n_u32(v_u32, 8), vshlq_n_u32(v_u32, 24)); ++ uint32x4_t ror_xor_v = veorq_u32(ror_v, vdupq_n_u32(rcon)); ++ ++ return vreinterpretq_m128i_u32(vtrn2q_u32(v_u32, ror_xor_v)); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint32_t X1 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); ++ uint32_t X3 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); ++ for (int i = 0; i < 4; ++i) { ++ ((uint8_t *) &X1)[i] = _sse2neon_sbox[((uint8_t *) &X1)[i]]; ++ ((uint8_t *) &X3)[i] = _sse2neon_sbox[((uint8_t *) &X3)[i]]; ++ } ++ return _mm_set_epi32(((X3 >> 8) | (X3 << 24)) ^ rcon, X3, ++ ((X1 >> 8) | (X1 << 24)) ^ rcon, X1); ++#endif ++} ++#undef SSE2NEON_AES_SBOX ++#undef SSE2NEON_AES_RSBOX ++ ++#if defined(__aarch64__) ++#undef SSE2NEON_XT ++#undef SSE2NEON_MULTIPLY ++#endif ++ ++#else /* __ARM_FEATURE_CRYPTO */ ++// Implements equivalent of 'aesenc' by combining AESE (with an empty key) and ++// AESMC and then manually applying the real key as an xor operation. This ++// unfortunately means an additional xor op; the compiler should be able to ++// optimize this away for repeated calls however. See ++// https://blog.michaelbrase.com/2018/05/08/emulating-x86-aes-intrinsics-on-armv8-a ++// for more details. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesmcq_u8(vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(b))); ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesimcq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return _mm_xor_si128(vreinterpretq_m128i_u8(vaeseq_u8( ++ vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ RoundKey); ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8( ++ veorq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++ return vreinterpretq_m128i_u8(vaesimcq_u8(vreinterpretq_u8_m128i(a))); ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst." ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++ // AESE does ShiftRows and SubBytes on A ++ uint8x16_t u8 = vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)); ++ ++#ifndef _MSC_VER ++ uint8x16_t dest = { ++ // Undo ShiftRows step from AESE and extract X1 and X3 ++ u8[0x4], u8[0x1], u8[0xE], u8[0xB], // SubBytes(X1) ++ u8[0x1], u8[0xE], u8[0xB], u8[0x4], // ROT(SubBytes(X1)) ++ u8[0xC], u8[0x9], u8[0x6], u8[0x3], // SubBytes(X3) ++ u8[0x9], u8[0x6], u8[0x3], u8[0xC], // ROT(SubBytes(X3)) ++ }; ++ uint32x4_t r = {0, (unsigned) rcon, 0, (unsigned) rcon}; ++ return vreinterpretq_m128i_u8(dest) ^ vreinterpretq_m128i_u32(r); ++#else ++ // We have to do this hack because MSVC is strictly adhering to the CPP ++ // standard, in particular C++03 8.5.1 sub-section 15, which states that ++ // unions must be initialized by their first member type. ++ ++ // As per the Windows ARM64 ABI, it is always little endian, so this works ++ __n128 dest{ ++ ((uint64_t) u8.n128_u8[0x4] << 0) | ((uint64_t) u8.n128_u8[0x1] << 8) | ++ ((uint64_t) u8.n128_u8[0xE] << 16) | ++ ((uint64_t) u8.n128_u8[0xB] << 24) | ++ ((uint64_t) u8.n128_u8[0x1] << 32) | ++ ((uint64_t) u8.n128_u8[0xE] << 40) | ++ ((uint64_t) u8.n128_u8[0xB] << 48) | ++ ((uint64_t) u8.n128_u8[0x4] << 56), ++ ((uint64_t) u8.n128_u8[0xC] << 0) | ((uint64_t) u8.n128_u8[0x9] << 8) | ++ ((uint64_t) u8.n128_u8[0x6] << 16) | ++ ((uint64_t) u8.n128_u8[0x3] << 24) | ++ ((uint64_t) u8.n128_u8[0x9] << 32) | ++ ((uint64_t) u8.n128_u8[0x6] << 40) | ++ ((uint64_t) u8.n128_u8[0x3] << 48) | ++ ((uint64_t) u8.n128_u8[0xC] << 56)}; ++ ++ dest.n128_u32[1] = dest.n128_u32[1] ^ rcon; ++ dest.n128_u32[3] = dest.n128_u32[3] ^ rcon; ++ ++ return dest; ++#endif ++} ++#endif ++ ++/* Others */ ++ ++// Perform a carry-less multiplication of two 64-bit integers, selected from a ++// and b according to imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clmulepi64_si128 ++FORCE_INLINE __m128i _mm_clmulepi64_si128(__m128i _a, __m128i _b, const int imm) ++{ ++ uint64x2_t a = vreinterpretq_u64_m128i(_a); ++ uint64x2_t b = vreinterpretq_u64_m128i(_b); ++ switch (imm & 0x11) { ++ case 0x00: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_low_u64(b))); ++ case 0x01: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_low_u64(b))); ++ case 0x10: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_high_u64(b))); ++ case 0x11: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_high_u64(b))); ++ default: ++ abort(); ++ } ++} ++ ++FORCE_INLINE unsigned int _sse2neon_mm_get_denormals_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_DENORMALS_ZERO_ON : _MM_DENORMALS_ZERO_OFF; ++} ++ ++// Count the number of bits set to 1 in unsigned 32-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u32 ++FORCE_INLINE int _mm_popcnt_u32(unsigned int a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcount) ++ return __builtin_popcount(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits(a); ++#else ++ return (int) vaddlv_u8(vcnt_u8(vcreate_u8((uint64_t) a))); ++#endif ++#else ++ uint32_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ ++ vst1_u32(&count, count32x2_val); ++ return count; ++#endif ++} ++ ++// Count the number of bits set to 1 in unsigned 64-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u64 ++FORCE_INLINE int64_t _mm_popcnt_u64(uint64_t a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcountll) ++ return __builtin_popcountll(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits64(a); ++#else ++ return (int64_t) vaddlv_u8(vcnt_u8(vcreate_u8(a))); ++#endif ++#else ++ uint64_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ uint64x1_t count64x1_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ count64x1_val = vpaddl_u32(count32x2_val); ++ vst1_u64(&count, count64x1_val); ++ return count; ++#endif ++} ++ ++FORCE_INLINE void _sse2neon_mm_set_denormals_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_DENORMALS_ZERO_MASK) == _MM_DENORMALS_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Return the current 64-bit value of the processor's time-stamp counter. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=rdtsc ++FORCE_INLINE uint64_t _rdtsc(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t val; ++ ++ /* According to ARM DDI 0487F.c, from Armv8.0 to Armv8.5 inclusive, the ++ * system counter is at least 56 bits wide; from Armv8.6, the counter ++ * must be 64 bits wide. So the system counter could be less than 64 ++ * bits wide and it is attributed with the flag 'cap_user_time_short' ++ * is true. ++ */ ++#if defined(_MSC_VER) ++ val = _ReadStatusReg(ARM64_SYSREG(3, 3, 14, 0, 2)); ++#else ++ __asm__ __volatile__("mrs %0, cntvct_el0" : "=r"(val)); ++#endif ++ ++ return val; ++#else ++ uint32_t pmccntr, pmuseren, pmcntenset; ++ // Read the user mode Performance Monitoring Unit (PMU) ++ // User Enable Register (PMUSERENR) access permissions. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c14, 0" : "=r"(pmuseren)); ++ if (pmuseren & 1) { // Allows reading PMUSERENR for user mode code. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c12, 1" : "=r"(pmcntenset)); ++ if (pmcntenset & 0x80000000UL) { // Is it counting? ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c13, 0" : "=r"(pmccntr)); ++ // The counter is set up to count every 64th cycle ++ return (uint64_t) (pmccntr) << 6; ++ } ++ } ++ ++ // Fallback to syscall as we can't enable PMUSERENR in user mode. ++ struct timeval tv; ++ gettimeofday(&tv, NULL); ++ return (uint64_t) (tv.tv_sec) * 1000000 + tv.tv_usec; ++#endif ++} ++ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma pop_macro("ALIGN_STRUCT") ++#pragma pop_macro("FORCE_INLINE") ++#pragma pop_macro("FORCE_INLINE_OPTNONE") ++#endif ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma GCC pop_options ++#endif ++ ++#endif +diff --git c/SeqLib/ssw.h i/SeqLib/ssw.h +index 583442a..5a962c2 100644 +--- c/SeqLib/ssw.h ++++ i/SeqLib/ssw.h +@@ -11,7 +11,11 @@ + #ifndef SSW_H + #define SSW_H + ++#ifdef __ARM_NEON ++#include "sse2neon.h" ++#else + #include ++#endif + #include + #include + #include +diff --git c/src/ssw.c i/src/ssw.c +index 5851613..2fb43b1 100644 +--- c/src/ssw.c ++++ i/src/ssw.c +@@ -36,7 +36,12 @@ + */ + + #include "SeqLib/ssw.h" ++#ifdef __ARM_NEON ++#include "SeqLib/sse2neon.h" ++#else + #include ++#endif ++#include + #include + #include + #include From 0feedb59f63312202a0d08effe3bc91ff4b46f3d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 13:28:54 -0400 Subject: [PATCH 0640/1514] Update phylodm to 3.1.0 (#49287) * Update phylodm to 3.1.0 * add maturin --------- Co-authored-by: mencian --- recipes/phylodm/build.sh | 6 +----- recipes/phylodm/meta.yaml | 17 +++++++++-------- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/recipes/phylodm/build.sh b/recipes/phylodm/build.sh index f63fcdfc20ec9..f7acad9eae3a0 100644 --- a/recipes/phylodm/build.sh +++ b/recipes/phylodm/build.sh @@ -1,7 +1,3 @@ #!/bin/bash -# Add workaround for SSH-based Git connections from Rust/cargo. See https://github.com/rust-lang/cargo/issues/2078 for details. -# We set CARGO_HOME because we don't pass on HOME to conda-build, thus rendering the default "${HOME}/.cargo" defunct. -export CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_HOME="$(pwd)/.cargo" - -"${PYTHON}" -m pip install . --no-deps --ignore-installed -vv +"${PYTHON}" -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv diff --git a/recipes/phylodm/meta.yaml b/recipes/phylodm/meta.yaml index b35433c6c1c49..01298be68bc1f 100644 --- a/recipes/phylodm/meta.yaml +++ b/recipes/phylodm/meta.yaml @@ -1,6 +1,6 @@ {% set name = "phylodm" %} -{% set version = "3.0.0" %} -{% set sha256 = "c7e051ba1350a947bd72382181aafd1a75bc3a0faa7019dbe8cd1febf5df6069" %} +{% set version = "3.1.0" %} +{% set sha256 = "ea4d0721702209c8309d82e4a54649bd60bb5d697043be4a9f9930bc0fe4e300" %} package: name: {{ name|lower }} @@ -11,7 +11,8 @@ source: sha256: {{ sha256 }} build: - number: 2 + number: 0 + skip: True # [py < 38] run_exports: - {{ pin_subpackage(name, max_pin="x") }} @@ -21,8 +22,7 @@ requirements: host: - python - pip - - setuptools - - setuptools-rust + - maturin >=1.0,<2.0 run: - python - numpy @@ -35,10 +35,11 @@ test: about: home: https://github.com/aaronmussig/PhyloDM - license: GPL-3.0-only - license_family: GPL + license: "GPL-3.0-only" + license_family: GPL3 license_file: LICENSE - summary: Efficient calculation of phylogenetic distance matrices. + summary: "Efficient calculation of phylogenetic distance matrices." + dev_url: https://github.com/aaronmussig/PhyloDM extra: additional-platforms: From 8b42882ccaae5ff377f7fb0d9110b54328460da7 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 16 Jul 2024 21:02:46 +0300 Subject: [PATCH 0641/1514] strainr2: add aarch64/arm64 builds (#49285) Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/strainr2/meta.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/recipes/strainr2/meta.yaml b/recipes/strainr2/meta.yaml index 8d6639c53117c..d92319912b1b0 100644 --- a/recipes/strainr2/meta.yaml +++ b/recipes/strainr2/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 00ddd426e6d27e461c806282107503d93472a93c71c24e82069bf78be1d31a89 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("strainr2", max_pin="x") }} @@ -41,3 +41,8 @@ about: summary: 'StrainR2 accurately deconvolutes strain-level abundances in synthetic microbial communities using metagenomic sequencing reads' license_family: MIT license_file: LICENSE + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From c7267685167325b6082a2db535745f9e50beb1d9 Mon Sep 17 00:00:00 2001 From: Jose Figueroa Date: Tue, 16 Jul 2024 17:42:15 -0400 Subject: [PATCH 0642/1514] Add MetaCerberus-lite (#49310) * MetaCerberus-lite * Add MetaCerberus-lite --- recipes/metacerberus-lite/meta.yaml | 65 +++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 recipes/metacerberus-lite/meta.yaml diff --git a/recipes/metacerberus-lite/meta.yaml b/recipes/metacerberus-lite/meta.yaml new file mode 100644 index 0000000000000..d9dff07348aef --- /dev/null +++ b/recipes/metacerberus-lite/meta.yaml @@ -0,0 +1,65 @@ +{% set name = "MetaCerberus-lite" %} +{% set version = "1.3.1" %} + +package: + name: "{{ name|lower }}" + version: "{{ version }}" + +source: + url: "https://files.pythonhosted.org/packages/source/m/MetaCerberus/MetaCerberus-{{ version }}.tar.gz" + sha256: 725be35a0e9b2a3867791e1cb8284ec95a09d3479516e9b265e3751659ce7935 + +build: + number: 0 + noarch: python + script: "{{ PYTHON }} -m pip install . -vv" + run_exports: + - {{ pin_compatible('MetaCerberus', max_pin="x") }} + +requirements: + host: + - pip + - python >=3.8 + - setuptools <70.0.0 + run: + - python >=3.8 + - setuptools <70.0.0 + - grpcio =1.43 + - pandas + - flash2 + - pyrodigal + - pyrodigal-gv + - pyhmmer + - ray-default <=2.6.3 + - ray-core <=2.6.3 + - ray-tune <=2.6.3 + - ray-dashboard <=2.6.3 + - plotly + - scikit-learn + - dominate + - python-kaleido + - configargparse + - metaomestats + - psutil + + +test: + imports: + - meta_cerberus + commands: + - metacerberus.py --help + + +about: + home: "https://github.com/raw-lab/metacerberus" + license: BSD-3-Clause + license_family: BSD + license_file: LICENSE.txt + summary: "MetaCerberus with reduced dependencies: Versatile Functional Ontology Assignments for Metagenomes via Hidden Markov Model (HMM) searching with environmental focus of shotgun meta'omics data" + doc_url: + dev_url: + +extra: + recipe-maintainers: + - decrevi + - raw-lab From c88168c63361e9081ca1d2998ea2c4f495c4178e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 16 Jul 2024 20:36:10 -0400 Subject: [PATCH 0643/1514] Update pathogen-embed to 2.2.1 (#49319) --- recipes/pathogen-embed/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pathogen-embed/meta.yaml b/recipes/pathogen-embed/meta.yaml index 6508748772242..7adbedfad19a3 100644 --- a/recipes/pathogen-embed/meta.yaml +++ b/recipes/pathogen-embed/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.2.0" %} +{% set version = "2.2.1" %} {% set name = "pathogen-embed" %} package: @@ -7,10 +7,10 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pathogen_embed-{{ version }}.tar.gz - sha256: e336d1e7127b82c5dd476b3e39d4a315f2e71b127b123ab620ebe6a20977df1c + sha256: 50c18c45aa53aa469b26e9b18d903167e7bd52755de6b4a6a2acec9feff8f1dc build: - number: 1 + number: 0 noarch: python entry_points: - pathogen-distance = pathogen_embed.__main__:run_distance From 5f8d4a427d8cc5255de842e12fcaf09d070db06b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 17 Jul 2024 01:31:43 -0400 Subject: [PATCH 0644/1514] Update pathogen-profiler to 4.3.0 (#49317) * Update pathogen-profiler to 4.3.0 * update delly version --------- Co-authored-by: Jody Phelan --- recipes/pathogen-profiler/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/pathogen-profiler/meta.yaml b/recipes/pathogen-profiler/meta.yaml index fc0a41b76c4dd..404ee9ae14a9d 100644 --- a/recipes/pathogen-profiler/meta.yaml +++ b/recipes/pathogen-profiler/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pathogen-profiler" %} -{% set version = "4.2.0" %} -{% set sha256 = "db1744578d50779069007216c5c8f359392d5e0e83ebe2232aa299acc8b30cb3" %} +{% set version = "4.3.0" %} +{% set sha256 = "ca6d579308a045c7d433c71c6951293c2f7f7d4952ca37e80b1830a6e9be7fd4" %} package: name: {{name}} @@ -13,7 +13,7 @@ source: build: script: python -m pip install --no-deps --ignore-installed . noarch: python - number: 1 + number: 0 run_exports: - { pin_subpackage('pathogen-profiler', max_pin="x") } @@ -31,7 +31,7 @@ requirements: - samtools >=1.12 - bcftools >=1.12 - tqdm - - delly >=0.8.7,<=1.1.6 + - delly >=1.2.6 - gatk4 - bedtools - freebayes =1.3.6 From 3d79723610f2965d1fe8f472c512b1a62cfa4ff6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 17 Jul 2024 02:43:43 -0400 Subject: [PATCH 0645/1514] Update hybpiper to 2.2.0 (#49328) --- recipes/hybpiper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/hybpiper/meta.yaml b/recipes/hybpiper/meta.yaml index 5ca91ed5b792f..be3d2f7c46985 100644 --- a/recipes/hybpiper/meta.yaml +++ b/recipes/hybpiper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "hybpiper" %} -{% set version = "2.1.8" %} +{% set version = "2.2.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: "https://github.com/mossmatters/HybPiper/archive/refs/tags/v{{ version }}.tar.gz" - sha256: ff358a560d6dbbec4fdac67457451cb4e6ca21b8661044c43902aa013d805e47 + sha256: 8337b1d17de9fa11f9d2b3f59ccc4597c5e3359d70e26d88346e871ccc6b1ac3 build: number: 0 From ccc732bc1894e374c0a79453147b976330f82ef1 Mon Sep 17 00:00:00 2001 From: pmjklemm Date: Wed, 17 Jul 2024 18:44:23 +1200 Subject: [PATCH 0646/1514] update v6.3.2 (#49327) Co-authored-by: Paul Klemm --- recipes/proteinortho/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/proteinortho/meta.yaml b/recipes/proteinortho/meta.yaml index 3f378b3862338..0d1fa24143b21 100755 --- a/recipes/proteinortho/meta.yaml +++ b/recipes/proteinortho/meta.yaml @@ -1,6 +1,6 @@ {% set name = "proteinortho" %} -{% set version = "6.3.1" %} -{% set sha256 = "9b3f5eb946a4f0f85c362db550163534d7687b8c88906b2eaf81f519de844b08" %} +{% set version = "6.3.2" %} +{% set sha256 = "3b3c58e814ca10f77a25954b0bcddc479b9f61682f3dc5c93d85b07f109342a4" %} package: name: {{ name }} From 8193edade0d381c1e47e5712597bf238f5331593 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 17 Jul 2024 02:47:28 -0400 Subject: [PATCH 0647/1514] Update rosella to 0.5.4 (#49325) --- recipes/rosella/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/rosella/meta.yaml b/recipes/rosella/meta.yaml index 090fd11d0e2ac..e6db3e56acfad 100644 --- a/recipes/rosella/meta.yaml +++ b/recipes/rosella/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "0.5.3" %} +{% set version = "0.5.4" %} {% set name = "rosella" %} -{% set hash = "a7a07f3217c40bc0308eb2fb964092662d6c99f4093e68e96c9575bce208d214" %} +{% set hash = "6e398c335bf23ae55c1ea472d234c706fa7095769e87eb28f213c4950de08cb3" %} package: name: rosella From 1cf197434660baa5fcd6ac1a74cd47b55136162b Mon Sep 17 00:00:00 2001 From: John Marshall Date: Wed, 17 Jul 2024 18:48:16 +1200 Subject: [PATCH 0648/1514] Build bwa on macOS ARM (#49324) --- recipes/bwa/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/bwa/meta.yaml b/recipes/bwa/meta.yaml index c4b7f382317b3..2262ce914671c 100644 --- a/recipes/bwa/meta.yaml +++ b/recipes/bwa/meta.yaml @@ -10,7 +10,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("bwa", max_pin="x.x") }} @@ -38,6 +38,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:bwa - usegalaxy-eu:bwa_mem From 1714b5563a61e8be2396292f3f69863bb82cbd9e Mon Sep 17 00:00:00 2001 From: Cole Lyman Date: Wed, 17 Jul 2024 00:50:42 -0600 Subject: [PATCH 0649/1514] Update CRISPResso2 dependencies (#49320) * Pin matplotlib base version * Pin numpy version * Bump build number and add whitespace to version constraints * Make numpy and matplotlib constraints less strict --- recipes/crispresso2/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/crispresso2/meta.yaml b/recipes/crispresso2/meta.yaml index daf7204b868ba..0ea0c7744814f 100644 --- a/recipes/crispresso2/meta.yaml +++ b/recipes/crispresso2/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('crispresso2', max_pin='x') }} @@ -25,10 +25,10 @@ requirements: run: - python - scipy - - {{ pin_compatible('numpy') }} + - numpy <=1.26.4 - pandas - plotly - - matplotlib-base + - matplotlib-base <=3.8.4 - jinja2 - fastp - samtools From 3db70ef0903095ac5349a92b1516b64d74ddd282 Mon Sep 17 00:00:00 2001 From: Stephen Watts Date: Wed, 17 Jul 2024 16:57:46 +1000 Subject: [PATCH 0650/1514] Update hmftools-neo to 1.2_beta (#49238) * Update hmftools-neo to 1.2_beta * Adjust casing for Neo reference in neo.sh * Restrict recognised non-default classpath * Add run exports --- recipes/hmftools-neo/meta.yaml | 8 +++++--- recipes/hmftools-neo/neo.sh | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/recipes/hmftools-neo/meta.yaml b/recipes/hmftools-neo/meta.yaml index 496ee3a1d5a97..c741d52e75d8b 100644 --- a/recipes/hmftools-neo/meta.yaml +++ b/recipes/hmftools-neo/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.0.1" %} -{% set sha256 = "292e322050965612c959296d11b45dcf9dba371d3c89d64bc10691116d867d90" %} +{% set version = "1.2_beta" %} +{% set sha256 = "66ebf626f8b937f32e326205c56426b996dfea1e7ac0b52526a25101b3b52d75" %} package: name: hmftools-neo @@ -12,6 +12,8 @@ source: build: noarch: generic number: 0 + run_exports: + - {{ pin_subpackage("hmftools-neo", max_pin="x.x") }} requirements: run: @@ -19,7 +21,7 @@ requirements: test: commands: - - 'neo 2>&1 | grep -q "Neo version"' + - 'neo -version | grep "Neo version"' about: home: https://github.com/hartwigmedical/hmftools/tree/master/neo diff --git a/recipes/hmftools-neo/neo.sh b/recipes/hmftools-neo/neo.sh index 786a7a04f1dc5..1183250e0e8d0 100755 --- a/recipes/hmftools-neo/neo.sh +++ b/recipes/hmftools-neo/neo.sh @@ -1,5 +1,5 @@ #!/bin/bash -# hmftools neo executable shell script +# hmftools Neo executable shell script # https://github.com/hartwigmedical/hmftools/tree/master/neo set -eu -o pipefail @@ -60,7 +60,7 @@ if [ "$jvm_mem_opts" == "" ]; then fi pass_arr=($pass_args) -if [[ ${pass_arr[0]:=} == org\.* ]] || [[ ${pass_arr[0]:=} == com\.* ]] +if [[ ${pass_arr[0]:=} == com.hartwig.hmftools.* ]] then eval "$java" $jvm_mem_opts $jvm_prop_opts -cp "$JAR_DIR/neo.jar" $pass_args else From 650fcd523182be952f130a6061f8c062e48a9690 Mon Sep 17 00:00:00 2001 From: Akihiro Kuno Date: Wed, 17 Jul 2024 17:03:59 +0900 Subject: [PATCH 0651/1514] Build bowtie on macOS ARM (#49326) * Build bowtie on macOS ARM * Use parallel build with `make` * Add a comment of why POPCNT_CAPABILITY needs to be disabled for arm64 only * Update recipes/bowtie/build.sh --------- Co-authored-by: Martin Grigorov Co-authored-by: Cornelius Roemer --- recipes/bowtie/build.sh | 13 ++++++++++++- recipes/bowtie/meta.yaml | 3 ++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/recipes/bowtie/build.sh b/recipes/bowtie/build.sh index 65a74b2e7c0c1..469d19a7e25bf 100644 --- a/recipes/bowtie/build.sh +++ b/recipes/bowtie/build.sh @@ -1,5 +1,16 @@ #!/bin/bash -make prefix="${PREFIX}" install +set -xe + +# If the environment is arm64 architecture, set POPCNT_CAPABILITY to 0 and run make. +# This is because the POPCNT instruction is not supported on arm64 architecture. +# By setting POPCNT_CAPABILITY=0, this instruction is disabled, ensuring build compatibility. +# See https://github.com/BenLangmead/bowtie/blob/master/processor_support.h +if [ "$(uname -m)" == "arm64" ]; then + make POPCNT_CAPABILITY=0 -j ${CPU_COUNT} +fi + + +make prefix="${PREFIX}" -j ${CPU_COUNT} install cp -r scripts "${PREFIX}/bin/" diff --git a/recipes/bowtie/meta.yaml b/recipes/bowtie/meta.yaml index 069e9a1bd54ef..fb9765f3543a7 100644 --- a/recipes/bowtie/meta.yaml +++ b/recipes/bowtie/meta.yaml @@ -13,7 +13,7 @@ source: build: skip: True # [py<30] - number: 8 + number: 9 run_exports: - {{ pin_subpackage("bowtie", max_pin="x.x") }} @@ -54,6 +54,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:bowtie - doi:10.1186/gb-2009-10-3-r25 From a8e988b070770ae170cc3cf5148dbcc2df2540ce Mon Sep 17 00:00:00 2001 From: Stephen Watts Date: Wed, 17 Jul 2024 18:23:45 +1000 Subject: [PATCH 0652/1514] Add hmftools-esvee 1.0_beta (#49168) * Add recipe for hmftools-esvee 1.0_beta * Add strict requirement of Sambamba 0.6.8 --- recipes/hmftools-esvee/build.sh | 12 ++++++ recipes/hmftools-esvee/esvee.sh | 69 ++++++++++++++++++++++++++++++++ recipes/hmftools-esvee/meta.yaml | 31 ++++++++++++++ 3 files changed, 112 insertions(+) create mode 100644 recipes/hmftools-esvee/build.sh create mode 100644 recipes/hmftools-esvee/esvee.sh create mode 100644 recipes/hmftools-esvee/meta.yaml diff --git a/recipes/hmftools-esvee/build.sh b/recipes/hmftools-esvee/build.sh new file mode 100644 index 0000000000000..1491f63b30010 --- /dev/null +++ b/recipes/hmftools-esvee/build.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +TGT="$PREFIX/share/$PKG_NAME-$PKG_VERSION-$PKG_BUILDNUM" +[ -d "$TGT" ] || mkdir -p "$TGT" +[ -d "${PREFIX}/bin" ] || mkdir -p "${PREFIX}/bin" + +cd "${SRC_DIR}" +mv esvee*.jar $TGT/esvee.jar + +cp $RECIPE_DIR/esvee.sh $TGT/esvee +ln -s $TGT/esvee $PREFIX/bin +chmod 0755 "${PREFIX}/bin/esvee" diff --git a/recipes/hmftools-esvee/esvee.sh b/recipes/hmftools-esvee/esvee.sh new file mode 100644 index 0000000000000..d4ff865b8322b --- /dev/null +++ b/recipes/hmftools-esvee/esvee.sh @@ -0,0 +1,69 @@ +#!/bin/bash +# hmftools Esvee executable shell script +# https://github.com/hartwigmedical/hmftools/tree/master/esvee +set -eu -o pipefail + +export LC_ALL=en_US.UTF-8 + +# Find original directory of bash script, resolving symlinks +# http://stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in/246128#246128 +SOURCE="${BASH_SOURCE[0]}" +while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink + DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )" + SOURCE="$(readlink "$SOURCE")" + [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located +done +DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )" + +JAR_DIR=$DIR +ENV_PREFIX="$(dirname $(dirname $DIR))" +# Use Java installed with Anaconda to ensure correct version +java="$ENV_PREFIX/bin/java" + +# if JAVA_HOME is set (non-empty), use it. Otherwise keep "java" +if [ -n "${JAVA_HOME:=}" ]; then + if [ -e "$JAVA_HOME/bin/java" ]; then + java="$JAVA_HOME/bin/java" + fi +fi + +# extract memory and system property Java arguments from the list of provided arguments +# http://java.dzone.com/articles/better-java-shell-script +default_jvm_mem_opts="-Xms512m -Xmx1g" +jvm_mem_opts="" +jvm_prop_opts="" +pass_args="" +for arg in "$@"; do + case $arg in + '-D'*) + jvm_prop_opts="$jvm_prop_opts $arg" + ;; + '-XX'*) + jvm_prop_opts="$jvm_prop_opts $arg" + ;; + '-Xm'*) + jvm_mem_opts="$jvm_mem_opts $arg" + ;; + *) + if [[ ${pass_args} == '' ]] #needed to avoid preceeding space on first arg e.g. ' MarkDuplicates' + then + pass_args="$arg" + else + pass_args="$pass_args \"$arg\"" #quotes later arguments to avoid problem with ()s in MarkDuplicates regex arg + fi + ;; + esac +done + +if [ "$jvm_mem_opts" == "" ]; then + jvm_mem_opts="$default_jvm_mem_opts" +fi + +pass_arr=($pass_args) +if [[ ${pass_arr[0]:=} == com.hartwig.hmftools.* ]] +then + eval "$java" $jvm_mem_opts $jvm_prop_opts -cp "$JAR_DIR/esvee.jar" $pass_args +else + eval "$java" $jvm_mem_opts $jvm_prop_opts -jar "$JAR_DIR/esvee.jar" $pass_args +fi +exit diff --git a/recipes/hmftools-esvee/meta.yaml b/recipes/hmftools-esvee/meta.yaml new file mode 100644 index 0000000000000..96678744d953d --- /dev/null +++ b/recipes/hmftools-esvee/meta.yaml @@ -0,0 +1,31 @@ +{% set version = "1.0_beta" %} +{% set sha256 = "7ee885d48306e73c0cefacd7d59f2aabd213fc6d78d4ca8489a8d6c25e8ce333" %} + +package: + name: hmftools-esvee + version: '{{ version }}' + +source: + url: https://github.com/hartwigmedical/hmftools/releases/download/esvee-v{{ version }}/esvee_v{{ version }}.jar + sha256: '{{ sha256 }}' + +build: + noarch: generic + number: 0 + run_exports: + - {{ pin_subpackage("hmftools-esvee", max_pin="x.x") }} + +requirements: + run: + - openjdk >=8 + - sambamba ==0.6.8 + +test: + commands: + - 'esvee -version | grep Esvee' + +about: + home: https://github.com/hartwigmedical/hmftools/blob/master/esvee/README.md + license: GPL-3.0-only + license_family: GPL3 + summary: Structural variant caller specialised for breakend-breakpoint calling. From a5c0630e6027ed0e77a3069726b8b0eb56a7ce54 Mon Sep 17 00:00:00 2001 From: Yasset Perez-Riverol Date: Wed, 17 Jul 2024 10:31:35 +0100 Subject: [PATCH 0653/1514] sdrf-pipelines update to 0.0.27 (#49316) * Update meta.yaml * Update meta.yaml * Update meta.yaml --- recipes/sdrf-pipelines/meta.yaml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/recipes/sdrf-pipelines/meta.yaml b/recipes/sdrf-pipelines/meta.yaml index 3727971a305b5..cf5fb70753f7d 100644 --- a/recipes/sdrf-pipelines/meta.yaml +++ b/recipes/sdrf-pipelines/meta.yaml @@ -1,13 +1,14 @@ {% set name = "sdrf-pipelines" %} -{% set version = "0.0.26" %} +{% set pypi_name = "sdrf_pipelines" %} +{% set version = "0.0.27" %} package: name: "{{ name|lower }}" version: "{{ version }}" source: - url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: eba64fddad8ecc05ac3efecc43e19a7ba556ede7cd5b57475277a3ec20195216 + url: "https://pypi.io/packages/source/{{ pypi_name[0] }}/{{ pypi_name }}/{{ pypi_name }}-{{ version }}.tar.gz" + sha256: cb52e0c427e820aa28343b2ff58947e23244701798f038e53b5c0f6e36f98f33 build: number: 0 @@ -31,6 +32,9 @@ requirements: - pyaml - defusedxml - pytest + - duckdb + - rdflib + - pyarrow test: imports: @@ -38,7 +42,7 @@ test: - sdrf_pipelines.openms - sdrf_pipelines.sdrf - sdrf_pipelines.utils - - sdrf_pipelines.zooma + - sdrf_pipelines.ols commands: - parse_sdrf --help From 0836a7dcff49681e2ec1199208e0976fe81ae594 Mon Sep 17 00:00:00 2001 From: Amirhossein <66441226+nilchia@users.noreply.github.com> Date: Wed, 17 Jul 2024 12:37:11 +0200 Subject: [PATCH 0654/1514] update infercnv (#49334) * update infercnv * correct build number --- recipes/bioconductor-infercnv/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/bioconductor-infercnv/meta.yaml b/recipes/bioconductor-infercnv/meta.yaml index cca8ee52d9314..bc5498d7db6df 100644 --- a/recipes/bioconductor-infercnv/meta.yaml +++ b/recipes/bioconductor-infercnv/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "1.18.1" %} +{% set version = "1.20.0" %} {% set name = "infercnv" %} -{% set bioc = "3.18" %} +{% set bioc = "3.19" %} package: name: 'bioconductor-{{ name|lower }}' @@ -11,9 +11,9 @@ source: - 'https://bioconductor.org/packages/{{ bioc }}/bioc/src/contrib/Archive/{{ name }}/{{ name }}_{{ version }}.tar.gz' - 'https://bioarchive.galaxyproject.org/{{ name }}_{{ version }}.tar.gz' - 'https://depot.galaxyproject.org/software/bioconductor-{{ name }}/bioconductor-{{ name }}_{{ version }}_src_all.tar.gz' - md5: d5bce5518c27e86b3fb26b6fedad5d7b + sha256: cd7baf7107beee52484e70abc6a48edb09ec877f734226131336adffb14b28ba build: - number: 1 + number: 0 rpaths: - lib/R/lib/ - lib/ From dd6c618ccec7f0442c33dc13790029df32f129be Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 17 Jul 2024 07:28:15 -0400 Subject: [PATCH 0655/1514] Update hla-la to 1.0.4 (#49340) * Update hla-la to 1.0.4 * Add run_exports --------- Co-authored-by: Martin Grigorov --- recipes/hla-la/meta.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recipes/hla-la/meta.yaml b/recipes/hla-la/meta.yaml index 4563dc5ca4b9f..0297019c8486e 100644 --- a/recipes/hla-la/meta.yaml +++ b/recipes/hla-la/meta.yaml @@ -1,16 +1,18 @@ -{% set version = "1.0.3" %} +{% set version = "1.0.4" %} package: name: hla-la version: {{ version }} build: - number: 2 + number: 0 skip: true # [osx] + run_exports: + - {{ pin_subpackage('hla-la', max_pin="x") }} source: url: https://github.com/DiltheyLab/HLA-LA/archive/v{{ version }}.tar.gz - sha256: bd2434616597aecfb38ec5b3b0e1e9812fa51c5dbf8fcdb2208d53cf694b9785 + sha256: 6a6c28bbee6256fde1b845d23f5d21589e1b83b1c4c2aceb6309bc65a3284ea7 folder: src requirements: From 055428fa9a8ebc88fbf94f40a12309e935b8b7de Mon Sep 17 00:00:00 2001 From: Felix Lenner <52530259+fellen31@users.noreply.github.com> Date: Wed, 17 Jul 2024 13:32:05 +0200 Subject: [PATCH 0656/1514] Add longphase (#49074) * add longphase * wip, errors * c and cxx, no make install * working? * aarch64/arm64 * Revert "aarch64/arm64" This reverts commit 0b68f76c2187fd41e437c3dc9b43e052fbfcc7f1. * aarch64 * osx-arm64 * Export M4 for osx-arm64 * Try with libcxx 16.* for OSX * Do not try to build osx-arm64. It needs more investigation * It does not build on osx --------- Co-authored-by: Martin Grigorov --- recipes/longphase/build.sh | 15 +++++++++++ recipes/longphase/meta.yaml | 50 +++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 recipes/longphase/build.sh create mode 100644 recipes/longphase/meta.yaml diff --git a/recipes/longphase/build.sh b/recipes/longphase/build.sh new file mode 100644 index 0000000000000..64c3a2dbb111b --- /dev/null +++ b/recipes/longphase/build.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -xe + +# https://bioconda.github.io/troubleshooting.html#zlib-errors +export CFLAGS="${CFLAGS} -I$PREFIX/include" +export LDFLAGS="${LDFLAGS} -L$PREFIX/lib" +export CPATH=${PREFIX}/include +export M4=${BUILD_PREFIX}/bin/m4 + +autoreconf -i +./configure --prefix=$PREFIX +make CC=$CC CXX=$CXX -j ${CPU_COUNT} +mkdir -p $PREFIX/bin +cp longphase $PREFIX/bin diff --git a/recipes/longphase/meta.yaml b/recipes/longphase/meta.yaml new file mode 100644 index 0000000000000..cf8b762b52c4a --- /dev/null +++ b/recipes/longphase/meta.yaml @@ -0,0 +1,50 @@ +{% set name = "longphase" %} +{% set version = "1.7.3" %} + +package: + name: {{ name }} + version: {{ version }} + +build: + number: 0 + skip: True # [osx] + run_exports: + - {{ pin_subpackage('longphase', max_pin="x") }} + +source: + url: https://github.com/twolinin/longphase/archive/refs/tags/v{{ version }}.tar.gz + sha256: 58829b55ca55d796b836743466bc7b6caf82cfe9b88c25112bff6a0cd0353345 + +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + - autoconf + - automake + - make + - cmake + - zlib + host: + - zlib + - bzip2 + - xz + run: + - xz + - zlib + - bzip2 + +test: + commands: + - longphase + +about: + home: "https://github.com/twolinin/longphase" + license: GPL-3.0-only + license_family: GPL3 + license_file: LICENSE + summary: "LongPhase is an ultra-fast program for simultaneously co-phasing SNPs, small indels, large SVs, and (5mC) modifications for Nanopore and PacBio platforms." + dev_url: "https://github.com/twolinin/longphase" + +extra: + additional-platforms: + - linux-aarch64 From cda59f85c0abc48c681f2fcadfba18d0496b21e8 Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Wed, 17 Jul 2024 14:35:48 +0200 Subject: [PATCH 0657/1514] Add palikiss (#49228) * using latest release of upstream * use recent gapc update with hopes to compile on OSX * add subrecipe for older version 4.3.10 (pinned in qiime2) which shall additionally expose upp.config * adding new recipe for software pAliKiss * integrating suggestions of @martin-g * update to new upstream release + fixing test call * pin clang to <=15 * Update meta.yaml * pin libcxx, as suggested by @corneliusroemer * removing whitespace * arg, second whitespace removed * removed skip: False # [osx] --- recipes/palikiss/build.sh | 5 ++++ recipes/palikiss/meta.yaml | 49 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 recipes/palikiss/build.sh create mode 100644 recipes/palikiss/meta.yaml diff --git a/recipes/palikiss/build.sh b/recipes/palikiss/build.sh new file mode 100644 index 0000000000000..56654134c23f5 --- /dev/null +++ b/recipes/palikiss/build.sh @@ -0,0 +1,5 @@ +#!/bin/bash +make -j ${CPU_COUNT} PREFIX=$PREFIX CC=$CC -C Misc/Applications/pAliKiss all +make PREFIX=$PREFIX CC=$CC -C Misc/Applications/pAliKiss install-program +make PREFIX=$PREFIX CC=$CC -C Misc/Applications/lib install +chmod +x $PREFIX/bin/pAliKiss* \ No newline at end of file diff --git a/recipes/palikiss/meta.yaml b/recipes/palikiss/meta.yaml new file mode 100644 index 0000000000000..6d375b44938c5 --- /dev/null +++ b/recipes/palikiss/meta.yaml @@ -0,0 +1,49 @@ +{% set version = "2.3.1" %} +{% set packagename = "palikiss" %} +{% set sha256 = "0c5b7d91893d0a23189f4af3602e18f110f030eac49a3658f7acede23596fde0" %} + +package: + name: {{ packagename }} + version: 1.1.0 + +source: + sha256: {{ sha256 }} + # the repository "fold-grammars" contains sources for several programs, i.e. pKiss, RNAshapes, ... + # thus, the version number does not correspond to the {{ packagename }} version number + url: https://github.com/jlab/fold-grammars/archive/{{ version }}.tar.gz + +build: + number: 0 + run_exports: + - {{ pin_subpackage('palikiss', max_pin="x") }} + +requirements: + build: + - make + - {{ compiler('cxx') }} + - libcxx <17 # [osx] + host: + - perl + - bellmans-gapc >=2024.01.12 + - libopenblas + - libcxx <17 # [osx] + run: + - perl + - bellmans-gapc >=2024.01.12 + - libopenblas + +test: + commands: + - pAliKiss --help + - echo -e "CLUSTAL W (1.83) multiple sequence alignment\ntest CGCAUGCUAGUCGCG" | pAliKiss + +about: + home: https://bibiserv.cebitec.uni-bielefeld.de/{{ packagename }} + license: 'GPL-3.0-or-later' + license_file: LICENSE + summary: "pAliKiss predicts RNA secondary structures for fixed RNA multiple sequence alignments, with special attention for pseudoknotted structures." + +extra: + identifiers: + - doi:10.1007/978-3-642-15294-8_5 + - doi:10.1093/bioinformatics/btu649 From 047e7bdec17edeebe353e48934d2012fa4ff1cb4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 17 Jul 2024 09:27:43 -0400 Subject: [PATCH 0658/1514] Update virusrecom to 1.1.7 (#49344) --- recipes/virusrecom/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/virusrecom/meta.yaml b/recipes/virusrecom/meta.yaml index c6bd13b6864e9..a13702997cb2f 100644 --- a/recipes/virusrecom/meta.yaml +++ b/recipes/virusrecom/meta.yaml @@ -1,5 +1,5 @@ {% set name = "virusrecom" %} -{% set version = "1.1.5" %} +{% set version = "1.1.7" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 88747b2590163526baa57115d649db6e0310ace792fab9e6b50275d71265f2ee + sha256: cbb6126dc1fd6f5ee7485d8ff512c81ca5d504a821113a8ff3dca1255c2f89fc build: number: 0 From f9f25d73bd85cbe9623bdb07f0d137c95ec42326 Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Wed, 17 Jul 2024 15:29:10 +0200 Subject: [PATCH 0659/1514] Add rnaalishapes (#49227) * using latest release of upstream * use recent gapc update with hopes to compile on OSX * add subrecipe for older version 4.3.10 (pinned in qiime2) which shall additionally expose upp.config * adding another package, sourced from fold-grammars * update upstream + fix test call * update recipe * removed skip: False # [osx] --- recipes/rnaalishapes/build.sh | 5 ++++ recipes/rnaalishapes/meta.yaml | 48 ++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 recipes/rnaalishapes/build.sh create mode 100644 recipes/rnaalishapes/meta.yaml diff --git a/recipes/rnaalishapes/build.sh b/recipes/rnaalishapes/build.sh new file mode 100644 index 0000000000000..747a892974727 --- /dev/null +++ b/recipes/rnaalishapes/build.sh @@ -0,0 +1,5 @@ +#!/bin/bash +make -j ${CPU_COUNT} PREFIX=$PREFIX CC=$CC -C Misc/Applications/RNAalishapes all +make PREFIX=$PREFIX CC=$CC -C Misc/Applications/RNAalishapes install-program +make PREFIX=$PREFIX CC=$CC -C Misc/Applications/lib install +chmod +x $PREFIX/bin/RNAali* diff --git a/recipes/rnaalishapes/meta.yaml b/recipes/rnaalishapes/meta.yaml new file mode 100644 index 0000000000000..f9df163582cb8 --- /dev/null +++ b/recipes/rnaalishapes/meta.yaml @@ -0,0 +1,48 @@ +{% set version = "2.3.1" %} +{% set packagename = "rnaalishapes" %} +{% set sha256 = "0c5b7d91893d0a23189f4af3602e18f110f030eac49a3658f7acede23596fde0" %} + +package: + name: {{ packagename }} + version: 2.5.0 + +source: + sha256: {{ sha256 }} + # the repository "fold-grammars" contains sources for several programs, i.e. pKiss, RNAshapes, ... + # thus, the version number does not correspond to the {{ packagename }} version number + url: https://github.com/jlab/fold-grammars/archive/{{ version }}.tar.gz + +build: + number: 0 + run_exports: + - {{ pin_subpackage('rnaalishapes', max_pin="x") }} + +requirements: + build: + - make + - {{ compiler('cxx') }} + - libcxx <17 # [osx] + host: + - perl + - bellmans-gapc >=2024.01.12 + - libopenblas + - libcxx <17 # [osx] + run: + - perl + - bellmans-gapc >=2024.01.12 + - libopenblas + +test: + commands: + - RNAalishapes -h + - echo -e "CLUSTAL W (1.83) multiple sequence alignment\ntest CGCAUGCUAGUCGCG" | RNAalishapes + +about: + home: https://bibiserv.cebitec.uni-bielefeld.de/{{ packagename }} + license: 'GPL-3.0-or-later' + license_file: LICENSE + summary: "RNAalishapes is a tool for secondary structure prediction, using shape abstraction. Input is a multiple sequence alignment. Pseudoknots are not considered at all." + +extra: + identifiers: + - doi:10.1093/bioinformatics/btu649 From 74d2d400e790cd410ece79f1d55f2014d0f8ab81 Mon Sep 17 00:00:00 2001 From: Nextstrain bot <78992647+nextstrain-bot@users.noreply.github.com> Date: Wed, 17 Jul 2024 10:14:13 -0400 Subject: [PATCH 0660/1514] Update nextclade to 3.8.2 (#49351) Co-authored-by: nextstrain-bot --- recipes/nextclade/meta.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/recipes/nextclade/meta.yaml b/recipes/nextclade/meta.yaml index 23f6a0e05c17e..ee8272d6611b5 100644 --- a/recipes/nextclade/meta.yaml +++ b/recipes/nextclade/meta.yaml @@ -1,5 +1,5 @@ {% set name = "nextclade" %} -{% set version = "3.8.1" %} +{% set version = "3.8.2" %} package: name: "{{ name|lower }}" @@ -7,13 +7,13 @@ package: source: - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-x86_64-unknown-linux-gnu # [linux64] - sha256: d099c8f12c2453da5d4ab7dfc90d962f486797d50f87bdf761b2e1b255054a76 # [linux64] + sha256: 8366d5f7c8f131d8659aa2af1ab014d3ea0d429420dab90f90badbe827a532e6 # [linux64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-aarch64-unknown-linux-gnu # [aarch64] - sha256: 4ff82022f6d703fd76a3d6e778e3dc7fa5e870f75e11d537b8458d2f67be8386 # [aarch64] + sha256: 87fce29bbcfd84290073c0fc23f53ed7c7c459df35077bc11b360515e85917bb # [aarch64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-x86_64-apple-darwin # [osx and x86_64] - sha256: bf85c3b9580b2297abbae63abcd594524a106ca84e3944c5061ac3788de10db2 # [osx and x86_64] + sha256: 414a6c0057665f72f598d1d2051ded309cc7aa96c88468d7cf9322ed559c9013 # [osx and x86_64] - url: https://github.com/nextstrain/nextclade/releases/download/{{ version }}/{{ name }}-aarch64-apple-darwin # [osx and arm64] - sha256: e001446f040533fc689f92421ebf7ea8ca822eb954f2e43b71979ec3a0f6faa0 # [osx and arm64] + sha256: a5fbd37742cce895bbe7a468f136f06e6ca56e8b44a65e7c52ff15d9a126aa00 # [osx and arm64] build: number: 0 From f4e4768a973644ac15741b01a45681e6a93de576 Mon Sep 17 00:00:00 2001 From: "Joe Wirth (Joseph S. Wirth)" <71667025+dr-joe-wirth@users.noreply.github.com> Date: Wed, 17 Jul 2024 10:31:11 -0400 Subject: [PATCH 0661/1514] attempting to update `khmer` pinnings (#49350) * attempting to update `khmer` pinnings * trying to appease the linter * will this fix the failed test? --- recipes/khmer/meta.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recipes/khmer/meta.yaml b/recipes/khmer/meta.yaml index 77dc9b24006f5..28c79094230cf 100644 --- a/recipes/khmer/meta.yaml +++ b/recipes/khmer/meta.yaml @@ -13,8 +13,10 @@ source: build: number: 4 - skip: True # [py<30 or py>38 or osx] + skip: True # [py<30 or py>=312 or osx] script: {{ PYTHON }} -m pip install . --no-deps -vv + run_exports: + - {{ pin_subpackage('khmer', max_pin="x.x") }} requirements: build: @@ -24,14 +26,14 @@ requirements: - libgomp # [linux] - make host: - - python + - python >=3.6,<3.12 - pip - setuptools >=18.0 - Cython >=0.25.2 - bzip2 - zlib run: - - python + - python >=3.6,<3.12 - screed >=1.0 - bz2file - bzip2 From e52d0b23765bf03560d8c66984563bcd060d24ac Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 17 Jul 2024 17:53:31 +0300 Subject: [PATCH 0662/1514] ucsc-psltochain: add linux-aarch64 build (#49332) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-psltochain/build.sh | 24 ++++++++++++++++-------- recipes/ucsc-psltochain/include.patch | 6 +++--- recipes/ucsc-psltochain/meta.yaml | 22 +++++++++++++++------- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 89ccb2917fa17..ee5b06a4d5a04 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -934,7 +934,6 @@ recipes/ucsc-pslstats recipes/ucsc-pslswap recipes/ucsc-psltobed recipes/ucsc-psltobigpsl -recipes/ucsc-psltochain recipes/ucsc-psltopslx recipes/ucsc-pslxtofa recipes/ucsc-qacagplift diff --git a/recipes/ucsc-psltochain/build.sh b/recipes/ucsc-psltochain/build.sh index 395fb5dd5152c..4d4568b0f1411 100644 --- a/recipes/ucsc-psltochain/build.sh +++ b/recipes/ucsc-psltochain/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/pslToChain && make) -cp bin/pslToChain "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslToChain" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/pslToChain && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/pslToChain "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/pslToChain" diff --git a/recipes/ucsc-psltochain/include.patch b/recipes/ucsc-psltochain/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-psltochain/include.patch +++ b/recipes/ucsc-psltochain/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-psltochain/meta.yaml b/recipes/ucsc-psltochain/meta.yaml index 690a1adda6060..c851e92f46935 100644 --- a/recipes/ucsc-psltochain/meta.yaml +++ b/recipes/ucsc-psltochain/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-psltochain" %} {% set program = "pslToChain" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "Convert psl records to chain records " + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From cd434224e7e932cfd3b9c70e544dcd57f76dba8a Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 17 Jul 2024 17:53:57 +0300 Subject: [PATCH 0663/1514] ucsc-stringify: add linux-aarch64 build (#49333) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-stringify/build.sh | 24 ++++++++++++++++-------- recipes/ucsc-stringify/include.patch | 6 +++--- recipes/ucsc-stringify/meta.yaml | 22 +++++++++++++++------- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index ee5b06a4d5a04..301c52a2bcb36 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -950,7 +950,6 @@ recipes/ucsc-spacedtotab recipes/ucsc-splitfile recipes/ucsc-splitfilebycolumn recipes/ucsc-sqltoxml -recipes/ucsc-stringify recipes/ucsc-subchar recipes/ucsc-subcolumn recipes/ucsc-taillines diff --git a/recipes/ucsc-stringify/build.sh b/recipes/ucsc-stringify/build.sh index 8e4e6dccf022d..8a122223b89ca 100644 --- a/recipes/ucsc-stringify/build.sh +++ b/recipes/ucsc-stringify/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/stringify && make) -cp bin/stringify "$PREFIX/bin" -chmod +x "$PREFIX/bin/stringify" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/stringify && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/stringify "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/stringify" diff --git a/recipes/ucsc-stringify/include.patch b/recipes/ucsc-stringify/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-stringify/include.patch +++ b/recipes/ucsc-stringify/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-stringify/meta.yaml b/recipes/ucsc-stringify/meta.yaml index b3f3167443d63..b11c925f68302 100644 --- a/recipes/ucsc-stringify/meta.yaml +++ b/recipes/ucsc-stringify/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-stringify" %} {% set program = "stringify" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "Convert file to C strings" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From eb0ad197ac70b6c5795ecb2155f3c9644ca3fb64 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 17 Jul 2024 17:54:22 +0300 Subject: [PATCH 0664/1514] ucsc-psltobed: add linux-aarch64 build (#49335) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-psltobed/build.sh | 24 ++++++++++++++++-------- recipes/ucsc-psltobed/include.patch | 6 +++--- recipes/ucsc-psltobed/meta.yaml | 22 +++++++++++++++------- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 301c52a2bcb36..f320008c67214 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -932,7 +932,6 @@ recipes/ucsc-pslselect recipes/ucsc-pslsomerecords recipes/ucsc-pslstats recipes/ucsc-pslswap -recipes/ucsc-psltobed recipes/ucsc-psltobigpsl recipes/ucsc-psltopslx recipes/ucsc-pslxtofa diff --git a/recipes/ucsc-psltobed/build.sh b/recipes/ucsc-psltobed/build.sh index 5b52875eee5fb..aad6779233d63 100644 --- a/recipes/ucsc-psltobed/build.sh +++ b/recipes/ucsc-psltobed/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/pslToBed && make) -cp bin/pslToBed "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslToBed" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/pslToBed && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/pslToBed "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/pslToBed" diff --git a/recipes/ucsc-psltobed/include.patch b/recipes/ucsc-psltobed/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-psltobed/include.patch +++ b/recipes/ucsc-psltobed/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-psltobed/meta.yaml b/recipes/ucsc-psltobed/meta.yaml index df2d5e872272a..b80b18d71a5c4 100644 --- a/recipes/ucsc-psltobed/meta.yaml +++ b/recipes/ucsc-psltobed/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-psltobed" %} {% set program = "pslToBed" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,20 +27,20 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" @@ -46,3 +48,9 @@ about: summary: " transform a psl format file to a bed format file. " + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 089b925287f0de3b48226d6b7f4790758e09e978 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 17 Jul 2024 17:54:44 +0300 Subject: [PATCH 0665/1514] ucsc-oligomatch: add linux-aarch64 build (#49336) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-oligomatch/build.sh | 24 ++++++++++++++++-------- recipes/ucsc-oligomatch/include.patch | 6 +++--- recipes/ucsc-oligomatch/meta.yaml | 22 +++++++++++++++------- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index f320008c67214..da1bf99518bbe 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -897,7 +897,6 @@ recipes/ucsc-nettobed recipes/ucsc-newprog recipes/ucsc-newpythonprog recipes/ucsc-nibsize -recipes/ucsc-oligomatch recipes/ucsc-overlapselect recipes/ucsc-para recipes/ucsc-parafetch diff --git a/recipes/ucsc-oligomatch/build.sh b/recipes/ucsc-oligomatch/build.sh index 1d3303dce7e3e..a88ccff20a470 100644 --- a/recipes/ucsc-oligomatch/build.sh +++ b/recipes/ucsc-oligomatch/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/utils/oligoMatch && make) -cp bin/oligoMatch "$PREFIX/bin" -chmod +x "$PREFIX/bin/oligoMatch" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/utils/oligoMatch && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/oligoMatch "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/oligoMatch" diff --git a/recipes/ucsc-oligomatch/include.patch b/recipes/ucsc-oligomatch/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-oligomatch/include.patch +++ b/recipes/ucsc-oligomatch/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-oligomatch/meta.yaml b/recipes/ucsc-oligomatch/meta.yaml index 1aef9ddca42aa..e3e152c54dd21 100644 --- a/recipes/ucsc-oligomatch/meta.yaml +++ b/recipes/ucsc-oligomatch/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-oligomatch" %} {% set program = "oligoMatch" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "find perfect matches in sequence." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 671147954dd93d714ed1e5d33a3c6090f9de9404 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 17 Jul 2024 17:55:15 +0300 Subject: [PATCH 0666/1514] ucsc-pslpostarget: add linux-aarch64 build (#49337) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-pslpostarget/build.sh | 24 ++++++++++++++++-------- recipes/ucsc-pslpostarget/include.patch | 6 +++--- recipes/ucsc-pslpostarget/meta.yaml | 22 +++++++++++++++------- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index da1bf99518bbe..6ee7994adc790 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -921,7 +921,6 @@ recipes/ucsc-pslmappostchain recipes/ucsc-pslmrnacover recipes/ucsc-pslpairs recipes/ucsc-pslpartition -recipes/ucsc-pslpostarget recipes/ucsc-pslpretty recipes/ucsc-pslrc recipes/ucsc-pslrecalcmatch diff --git a/recipes/ucsc-pslpostarget/build.sh b/recipes/ucsc-pslpostarget/build.sh index 37338962297b7..a69900e05adbd 100644 --- a/recipes/ucsc-pslpostarget/build.sh +++ b/recipes/ucsc-pslpostarget/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/pslPosTarget && make) -cp bin/pslPosTarget "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslPosTarget" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/pslPosTarget && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/pslPosTarget "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/pslPosTarget" diff --git a/recipes/ucsc-pslpostarget/include.patch b/recipes/ucsc-pslpostarget/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslpostarget/include.patch +++ b/recipes/ucsc-pslpostarget/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslpostarget/meta.yaml b/recipes/ucsc-pslpostarget/meta.yaml index 68c7c3cd85537..7dfaf50fd3ce5 100644 --- a/recipes/ucsc-pslpostarget/meta.yaml +++ b/recipes/ucsc-pslpostarget/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslpostarget" %} {% set program = "pslPosTarget" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "flip psl strands so target is positive and implicit" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 672bb5d2b6636eb9f4b501cf778c563aa0977692 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 17 Jul 2024 17:56:37 +0300 Subject: [PATCH 0667/1514] kalign3: add aarch64/arm64 builds (#49342) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/kalign3/build.sh | 4 ++-- recipes/kalign3/meta.yaml | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/recipes/kalign3/build.sh b/recipes/kalign3/build.sh index dcc1809fa1c98..57d2c16eae4be 100644 --- a/recipes/kalign3/build.sh +++ b/recipes/kalign3/build.sh @@ -1,8 +1,8 @@ #!/bin/bash -set -eo pipefail +set -xeo pipefail mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=${PREFIX} .. -make +make -j ${CPU_COUNT} make install diff --git a/recipes/kalign3/meta.yaml b/recipes/kalign3/meta.yaml index c9be17442a1a0..29793014d4418 100644 --- a/recipes/kalign3/meta.yaml +++ b/recipes/kalign3/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin='x') }} @@ -27,10 +27,13 @@ test: about: home: https://github.com/TimoLassmann/kalign - license: GPL3 + license: GPL-3.0-only license_file: COPYING summary: 'Kalign is a fast and accurate multiple sequence alignment algorithm.' extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 identifiers: - doi:10.1093/bioinformatics/btz795 From dc450f44977c9f5d2a0780c65d719f3628a0958c Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 17 Jul 2024 18:00:23 +0300 Subject: [PATCH 0668/1514] cancerit-allelecount: add linux-aarch64 build (#49343) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/cancerit-allelecount/build.sh | 4 ++-- recipes/cancerit-allelecount/meta.yaml | 12 ++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/recipes/cancerit-allelecount/build.sh b/recipes/cancerit-allelecount/build.sh index 5921b2bc83f38..2b179831fcee9 100644 --- a/recipes/cancerit-allelecount/build.sh +++ b/recipes/cancerit-allelecount/build.sh @@ -1,5 +1,5 @@ #!/bin/bash -set -eu +set -xeu export LIBRARY_PATH=${PREFIX}/lib export INCPATH=${PREFIX}/include #export HTSLIB_VERSION=1.7 @@ -18,6 +18,6 @@ sed -i 's/$(CC) /$(compiler) /g' Makefile #Force HTSLIb locations sed -i 's#HTSLOC?=$(HTSLIB)#HTSLOC=${PREFIX}/lib#g' Makefile sed -i 's#prefix=?/usr/local#prefix=${PREFIX}#g' Makefile -make OPTINC="-I$PREFIX/include -L$PREFIX/lib" +make -j ${CPU_COUNT} OPTINC="-I$PREFIX/include -L$PREFIX/lib" mkdir -p $PREFIX/bin cp bin/* $PREFIX/bin diff --git a/recipes/cancerit-allelecount/meta.yaml b/recipes/cancerit-allelecount/meta.yaml index 3320289ef69da..b86b40f7fad2f 100644 --- a/recipes/cancerit-allelecount/meta.yaml +++ b/recipes/cancerit-allelecount/meta.yaml @@ -9,8 +9,10 @@ source: sha256: 5363ae12c2385c962728336a4498b1a29c9eaa3d4a24492d0debf897771cfd3c build: - number: 6 + number: 7 skip: True # [osx] + run_exports: + - {{ pin_subpackage('cancerit-allelecount', max_pin='x') }} requirements: build: @@ -34,5 +36,11 @@ test: about: home: https://github.com/cancerit/alleleCount - license: GPLv3 + license: GPL-3.0-only + license_file: LICENCE + license_family: GPL3 summary: Support code for NGS copy number algorithms + +extra: + additional-platforms: + - linux-aarch64 From b30fac4e47788e33b5b7a8f2aeb5068db03eb1d4 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 17 Jul 2024 18:07:23 +0300 Subject: [PATCH 0669/1514] fido: add linux-aarch64 build (#49347) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/fido/build.sh | 4 +++- recipes/fido/meta.yaml | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/recipes/fido/build.sh b/recipes/fido/build.sh index 0aea3c28699f3..ee62480f0e04b 100644 --- a/recipes/fido/build.sh +++ b/recipes/fido/build.sh @@ -1,6 +1,8 @@ #!/bin/bash +set -xe + mkdir -p "${PREFIX}/bin" cd src/cpp sed -i.bak 's/\tg++/\t$(CXX)/' makefile -make BINPATH="${PREFIX}/bin" +make -j ${CPU_COUNT} BINPATH="${PREFIX}/bin" diff --git a/recipes/fido/meta.yaml b/recipes/fido/meta.yaml index 26c5c2c83c124..98053c0117123 100644 --- a/recipes/fido/meta.yaml +++ b/recipes/fido/meta.yaml @@ -7,8 +7,10 @@ source: md5: 6ee89316f492105a6fb06729475c37e0 build: - number: 6 + number: 7 skip: True # [osx] + run_exports: + - {{ pin_subpackage('fido', max_pin='x') }} requirements: build: @@ -26,3 +28,6 @@ about: license: MIT license summary: A method for protein identification in MS/MS proteomics. Think of it like a protein delivery dog. You bring it the scored matches between peptides and spectra, and it fetches a list of proteins ranked by posterior probability by doing clever tricks. +extra: + additional-platforms: + - linux-aarch64 From e1aa379eb666cc6dc1f6b1eec53dd34af6850ac5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 17 Jul 2024 11:35:12 -0400 Subject: [PATCH 0670/1514] Update querynator to 0.5.2 (#49354) --- recipes/querynator/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/querynator/meta.yaml b/recipes/querynator/meta.yaml index 3b1fdabd9f683..0ccd6b596b9b3 100644 --- a/recipes/querynator/meta.yaml +++ b/recipes/querynator/meta.yaml @@ -1,5 +1,5 @@ {% set name = "querynator" %} -{% set version = "0.5.1" %} +{% set version = "0.5.2" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 21a0a77062b86ebf20bc87a7746ab1a58526f485cf2e981ff06ef2dd8fe021f3 + sha256: bad38b5a62cd05701e13cb9e7157a854c0b9870c993971a20ae03ae9c91ac9a9 build: number: 0 From c2c03d997278705436dbe454c3794a6677981ce5 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 17 Jul 2024 18:48:48 +0300 Subject: [PATCH 0671/1514] famsa: add aarch64/arm64 builds (#49346) * famsa: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Pass PLATFORM=arm8 for aarch64/arm64 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/famsa/build.sh | 16 ++++++++++++++-- recipes/famsa/meta.yaml | 9 +++++++-- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/recipes/famsa/build.sh b/recipes/famsa/build.sh index 10ce8514d75f0..f5a64f295d171 100644 --- a/recipes/famsa/build.sh +++ b/recipes/famsa/build.sh @@ -1,4 +1,16 @@ -#!/bin/bash -e -make famsa -j${CPU_COUNT} +#!/bin/bash + +set -xe + +case $(uname -m) in + aarch64 | arm64) + ARCH_OPTS="PLATFORM=arm8" + ;; + *) + ARCH_OPTS="" + ;; +esac + +make famsa ${ARCH_OPTS} -j${CPU_COUNT} install -d "${PREFIX}/bin" install famsa "${PREFIX}/bin" diff --git a/recipes/famsa/meta.yaml b/recipes/famsa/meta.yaml index 50dc221b1a833..aff435a23945f 100644 --- a/recipes/famsa/meta.yaml +++ b/recipes/famsa/meta.yaml @@ -6,7 +6,9 @@ package: version: {{ version }} build: - number: 2 + number: 3 + run_exports: + - {{ pin_subpackage('famsa', max_pin='x') }} source: url: https://github.com/refresh-bio/FAMSA/archive/v{{ version }}.tar.gz @@ -24,11 +26,14 @@ test: about: home: https://github.com/refresh-bio/FAMSA summary: "Algorithm for large-scale multiple sequence alignments" - license: GPL-3 + license: GPL-3.0-only license_family: GPL license_file: LICENSE extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 identifiers: - doi:10.1038/srep33964 - biotools:famsa From f22cb0e9eb8a54f74c5c148b7406b168540203f4 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 17 Jul 2024 10:54:12 -0500 Subject: [PATCH 0672/1514] Upgrade hits to 0.4.2 (#49322) * Upgrade hits to 0.4.2 * remove skip line --- recipes/hits/meta.yaml | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/recipes/hits/meta.yaml b/recipes/hits/meta.yaml index b0ffd46411dda..9d62615f1cdfe 100644 --- a/recipes/hits/meta.yaml +++ b/recipes/hits/meta.yaml @@ -1,29 +1,32 @@ {% set name = "hits" %} -{% set version = "0.4.0" %} +{% set version = "0.4.2" %} +{% set sha256 = "0e9bab5b353ca907b1c2c8d9d68724716210acc4d50fbaa4f20b6e25902f80dd" %} package: - name: "{{ name|lower }}" - version: "{{ version }}" + name: {{ name|lower }} + version: {{ version }} source: - url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: "743bfc1b56ab8fcf9fefacfcad4c1f23e9bafec1b42225709dbe097c8e669383" + url: https://github.com/jeffhussmann/hits/archive/refs/tags/v{{ version }}.tar.gz + sha256: {{ sha256 }} build: - number: 2 - skip: True # [py != 38] - script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv" + number: 0 + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir --use-pep517 + run_exports: + - {{ pin_subpackage('hits', max_pin="x.x") }} requirements: build: - {{ compiler('c') }} host: - - cython >=0.29.7 - - pip - python + - cython + - pip run: + - python - biopython >=1.72 - - bokeh + - bokeh >=2.4.2 - ipython >=7.8.0 - ipywidgets >=7.4.2 - matplotlib-base >=3.0.2 @@ -31,22 +34,22 @@ requirements: - pandas >=0.23.4 - pillow >=5.3.0 - pysam >=0.15.1 - - python >=3.8 - pyyaml >=3.13 - scipy >=1.2.1 - - seaborn >=0.11.0 + - seaborn-base >=0.11.0 - statsmodels >=0.12.1 test: imports: - hits - - hits.visualize - - hits.visualize.interactive about: - home: "https://github.com/jeffhussmann/hits" - license: GPLv3 - summary: "utilities for processing high-throughput sequencing experiments" + home: https://github.com/jeffhussmann/hits + summary: "Utilities for processing high-throughput sequencing experiments." + license: GPL-3.0-or-later + license_family: GPL3 + license_file: LICENSE + dev_url: https://github.com/jeffhussmann/hits extra: recipe-maintainers: From 2ed9c7a5841cb8a8671a1eae78055a8074eb2c9e Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 17 Jul 2024 12:52:35 -0500 Subject: [PATCH 0673/1514] Add recipe for cassiopeia v2.0.0 (#49323) * Add recipe for cassiopeia v2.0.0 * remove skip line * edit numpy dependency --- recipes/cassiopeia/meta.yaml | 67 ++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 recipes/cassiopeia/meta.yaml diff --git a/recipes/cassiopeia/meta.yaml b/recipes/cassiopeia/meta.yaml new file mode 100644 index 0000000000000..e29153e319632 --- /dev/null +++ b/recipes/cassiopeia/meta.yaml @@ -0,0 +1,67 @@ +{% set name = "cassiopeia" %} +{% set version = "2.0.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/YosefLab/Cassiopeia/archive/{{ version }}.tar.gz + sha256: 28ae7495152683f5733222255056a1e7b2f7a51e1cee2f23f0d9f8ae5f4c3742 + +build: + number: 0 + entry_points: + - cassiopeia-preprocess = cassiopeia.preprocess.cassiopeia_preprocess:main + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir --use-pep517 + run_exports: + - {{ pin_subpackage('cassiopeia', max_pin="x") }} + +requirements: + build: + - {{ compiler('c') }} + host: + - python + - pip + - cython + - numpy + run: + - python + - biopython >=1.71 + - bokeh >=0.12.15 + - ccphylo + - ete3 >=3.1.1 + - hits + - itolapi + - matplotlib-base >=2.2.2 + - nbconvert >=5.4.0 + - nbformat >=4.4.0 + - networkx >=2.5 + - ngs-tools >=1.5.3 + - numba >=0.51.0 + - pandas >=1.1.4 + - pysam >=0.14.1 + - python-levenshtein + - pyyaml >=3.12 + - scipy >=1.2.0 + - typing-extensions >=3.7.4 + - tqdm >=4 + - {{ pin_compatible('numpy') }} + +test: + imports: + - cassiopeia + commands: + - cassiopeia-preprocess --help + +about: + home: https://github.com/YosefLab/Cassiopeia + summary: "The Cython compiler for writing C extensions in the Python language." + license: MIT + license_family: MIT + license_file: LICENSE + dev_url: https://github.com/YosefLab/Cassiopeia + +extra: + recipe-maintainers: + - mencian From 2a0dc3e233382aadf5502ab399301b325928c381 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 17 Jul 2024 13:53:23 -0400 Subject: [PATCH 0674/1514] Update orthanq to 1.7.0 (#49358) --- recipes/orthanq/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/orthanq/meta.yaml b/recipes/orthanq/meta.yaml index 4a92e28023818..ce8c06a76c043 100644 --- a/recipes/orthanq/meta.yaml +++ b/recipes/orthanq/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.6.0" %} +{% set version = "1.7.0" %} package: name: orthanq @@ -12,7 +12,7 @@ build: source: url: https://github.com/orthanq/orthanq/archive/v{{ version }}.tar.gz - sha256: 70b64aa96ec43e160de8c32b379288c15ccbe201447a524c22583ef62cf4d518 + sha256: 7c6c93c47f31bb357210103573e38bed762a3435bdf44bccb0a8740dd15d427c requirements: build: From 19fb9f53d2221e4baa36f90eec365f06c0c493cc Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 17 Jul 2024 13:53:38 -0400 Subject: [PATCH 0675/1514] Update pyrodigal to 3.5.0 (#49357) --- recipes/pyrodigal/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pyrodigal/meta.yaml b/recipes/pyrodigal/meta.yaml index 5eb20b2335647..22c29035b5a4d 100644 --- a/recipes/pyrodigal/meta.yaml +++ b/recipes/pyrodigal/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pyrodigal" %} -{% set version = "3.4.1" %} +{% set version = "3.5.0" %} package: name: "{{ name|lower }}" @@ -7,10 +7,10 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 65963ad8cf651f408758e7fa74cbf793eae9720310f0ef8781ee1a285d435326 + sha256: f80bf17a2388e4007c65312c7ed84b661e0244be1ef8ef74006f4967a3591d09 build: - number: 1 + number: 0 skip: True # [py < 36] script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir --use-pep517 -vvv" entry_points: From 446b3f3c966e1b37a2d191c0599614605986cf4e Mon Sep 17 00:00:00 2001 From: Cole Lyman Date: Wed, 17 Jul 2024 12:04:08 -0600 Subject: [PATCH 0676/1514] Update crispresso2: osx-arm64 additional platform (#49356) * Add osx-arm64 to additional-platforms * Bump build number --- recipes/crispresso2/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/crispresso2/meta.yaml b/recipes/crispresso2/meta.yaml index 0ea0c7744814f..5fd4076cdc98a 100644 --- a/recipes/crispresso2/meta.yaml +++ b/recipes/crispresso2/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage('crispresso2', max_pin='x') }} @@ -50,3 +50,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 From 10f9df5ed14f24acad00524e05b88b50b3eb4b3c Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 17 Jul 2024 16:11:23 -0500 Subject: [PATCH 0677/1514] hits: add aarch64/arm64 builds (#49364) --- recipes/hits/meta.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/hits/meta.yaml b/recipes/hits/meta.yaml index 9d62615f1cdfe..6012f79b190b9 100644 --- a/recipes/hits/meta.yaml +++ b/recipes/hits/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir --use-pep517 run_exports: - {{ pin_subpackage('hits', max_pin="x.x") }} @@ -54,3 +54,6 @@ about: extra: recipe-maintainers: - jeffhussmann + additional-platforms: + - linux-aarch64 + - osx-arm64 From 0406f56f753ca65d1a8b5db9686a8a43ad0925f9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 17 Jul 2024 17:14:16 -0400 Subject: [PATCH 0678/1514] Update synapseclient to 4.4.0 (#49367) --- recipes/synapseclient/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/synapseclient/meta.yaml b/recipes/synapseclient/meta.yaml index 07be3a88467bc..28541bd233a37 100644 --- a/recipes/synapseclient/meta.yaml +++ b/recipes/synapseclient/meta.yaml @@ -1,5 +1,5 @@ {% set name = "synapseclient" %} -{% set version = "4.3.1" %} +{% set version = "4.4.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/synapseclient-{{ version }}.tar.gz - sha256: 9d1c2cd1d6fe4fabb386290c0eed20944ab7e44e6713db40f19cf28babe3be3c + sha256: 331d0740a8cebf29a231d5ead35cda164fc74d7d3a8470803e623f2c33e897b5 build: noarch: python From 1560f4344221186e2caa93ed816645d30f7261eb Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 17 Jul 2024 16:25:17 -0500 Subject: [PATCH 0679/1514] Update cassiopeia recipe (#49363) * Update cassiopeia recipe * remove numpy pinning --- recipes/cassiopeia/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/cassiopeia/meta.yaml b/recipes/cassiopeia/meta.yaml index e29153e319632..7d7254e282891 100644 --- a/recipes/cassiopeia/meta.yaml +++ b/recipes/cassiopeia/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 28ae7495152683f5733222255056a1e7b2f7a51e1cee2f23f0d9f8ae5f4c3742 build: - number: 0 + number: 1 entry_points: - cassiopeia-preprocess = cassiopeia.preprocess.cassiopeia_preprocess:main script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir --use-pep517 @@ -56,7 +56,7 @@ test: about: home: https://github.com/YosefLab/Cassiopeia - summary: "The Cython compiler for writing C extensions in the Python language." + summary: "An end-to-end pipeline for single-cell lineage tracing experiments." license: MIT license_family: MIT license_file: LICENSE From cd3cafc244105c119ae8aa8ccdd39a70799ce372 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 17 Jul 2024 20:49:20 -0400 Subject: [PATCH 0680/1514] Update abpoa to 1.5.2 (#49371) --- recipes/abpoa/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/abpoa/meta.yaml b/recipes/abpoa/meta.yaml index e0cbaba96a5cd..ad3e2d163205c 100644 --- a/recipes/abpoa/meta.yaml +++ b/recipes/abpoa/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.5.1" %} +{% set version = "1.5.2" %} {% set name = "abPOA" %} package: @@ -7,10 +7,10 @@ package: source: url: https://github.com/yangao07/{{ name }}/releases/download/v{{ version }}/{{ name }}-v{{ version }}.tar.gz - sha256: f0e1b41b1c9e18ecd2096df9b60ad053260ec773d70eecb307b02cca0efab89d + sha256: 706f0ca0110f4974ae7b93157db560bb9beda4273d8c883fa6a03ccb19958149 build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage(name | lower, max_pin="x") }} From b2ea21ddb349b4371acc16f93ee519c8d6f5f927 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 17 Jul 2024 20:49:50 -0400 Subject: [PATCH 0681/1514] Update pyabpoa to 1.5.2 (#49368) --- recipes/pyabpoa/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pyabpoa/meta.yaml b/recipes/pyabpoa/meta.yaml index c09f3816be9bb..aafc5a8df934e 100644 --- a/recipes/pyabpoa/meta.yaml +++ b/recipes/pyabpoa/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pyabpoa" %} -{% set version = "1.5.1" %} +{% set version = "1.5.2" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: https://github.com/yangao07/abPOA/releases/download/v{{ version }}/abPOA-v{{ version }}.tar.gz - sha256: f0e1b41b1c9e18ecd2096df9b60ad053260ec773d70eecb307b02cca0efab89d + sha256: 706f0ca0110f4974ae7b93157db560bb9beda4273d8c883fa6a03ccb19958149 build: - number: 2 + number: 0 script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --use-pep517 -vvv run_exports: - {{ pin_subpackage(name, max_pin="x") }} From 8670cbf34fef7f18458de7b82556cbbdf64120e5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 17 Jul 2024 22:38:52 -0400 Subject: [PATCH 0682/1514] Update singlem to 0.18.2 (#49377) --- recipes/singlem/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/singlem/meta.yaml b/recipes/singlem/meta.yaml index fbe9bb889e178..c686add8750fa 100644 --- a/recipes/singlem/meta.yaml +++ b/recipes/singlem/meta.yaml @@ -1,5 +1,5 @@ {% set name = "singlem" %} -{% set version = "0.18.1" %} +{% set version = "0.18.2" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: ab66c8d6f6ec712140f9f1b839c58fec33e5741437866ed7af6459af3188834e + sha256: 8b1f1e51a8cebc4d6d2aa916c6ebb566b3828d3b4029d5831ac186b238d739dc build: - number: 1 + number: 0 noarch: python script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" run_exports: From c08118bba05ca9365cde0f32bf59a2274b316899 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 17 Jul 2024 23:08:53 -0400 Subject: [PATCH 0683/1514] Update pyrodigal to 3.5.1 (#49370) --- recipes/pyrodigal/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pyrodigal/meta.yaml b/recipes/pyrodigal/meta.yaml index 22c29035b5a4d..f314da8744a62 100644 --- a/recipes/pyrodigal/meta.yaml +++ b/recipes/pyrodigal/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pyrodigal" %} -{% set version = "3.5.0" %} +{% set version = "3.5.1" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: f80bf17a2388e4007c65312c7ed84b661e0244be1ef8ef74006f4967a3591d09 + sha256: 20af59a6d968c88910b99d5f647bb7dd22d49e440ead95fe715cdd2c49f36e9f build: number: 0 From f473bbb5f15b96ec5d1c43e832b9840feb911bb6 Mon Sep 17 00:00:00 2001 From: Mitchell Robert Vollger Date: Wed, 17 Jul 2024 20:21:29 -0700 Subject: [PATCH 0684/1514] Add gia (#49361) --- recipes/gia/build.sh | 28 +++++++++++++++++++ recipes/gia/meta.yaml | 63 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 recipes/gia/build.sh create mode 100644 recipes/gia/meta.yaml diff --git a/recipes/gia/build.sh b/recipes/gia/build.sh new file mode 100644 index 0000000000000..cce5a6c8aabea --- /dev/null +++ b/recipes/gia/build.sh @@ -0,0 +1,28 @@ +#!/bin/bash -e + +# +# TODO: Remove the following export when pinning is updated and we use +# {{ compiler('rust') }} in the recipe. +export \ + CARGO_NET_GIT_FETCH_WITH_CLI=true \ + CARGO_HOME="${BUILD_PREFIX}/.cargo" +export BINDGEN_EXTRA_CLANG_ARGS="${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" + +# +# install package +# +HOME=$(pwd) +pushd ${PREFIX} + +cargo install --no-track --verbose \ + --root "${PREFIX}" --path "${HOME}" +popd + +echo "Done building gia" 1>&2 + +# +# test install +# +gia help + +exit 0 diff --git a/recipes/gia/meta.yaml b/recipes/gia/meta.yaml new file mode 100644 index 0000000000000..994d6dde9cbf2 --- /dev/null +++ b/recipes/gia/meta.yaml @@ -0,0 +1,63 @@ +{% set version = "0.2" %} +{% set name = "gia" %} +{% set build_number = "0" %} + +package: + name: {{ name }} + version: {{ version }} + + +source: + url: https://github.com/noamteyssier/gia/archive/{{ version }}.tar.gz + sha256: 86c1f4dcd36d296d3261ff456b2599e505fe0977a02bcea4e18641ee8add4920 + + +build: + run_exports: + - {{ pin_subpackage('gia', max_pin="x") }} + number: {{ build_number }} + +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + - {{ compiler('rust') }} + - make + - cmake + - unzip + - curl + # all the host and run requirements match those needed for htslib + host: + - libcurl + - bzip2 + - xz + - zlib + - libdeflate + - openssl # [not osx] + run: + - libcurl + - bzip2 + - xz + - zlib + - libdeflate + - openssl # [not osx] + +test: + commands: + - gia help + + +about: + home: https://github.com/noamteyssier/gia + license: MIT + summary: Genomic Interval Arithmetic (gia) + + +extra: + recipe-maintainers: + - mrvollger + - noamteyssier + additional-platforms: + - osx-arm64 + - linux-aarch64 + From b1d7ef5906be9ab313255278c4ee053f657d67c0 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 17 Jul 2024 22:45:07 -0500 Subject: [PATCH 0685/1514] Add recipe for scmidas 0.0.17 (#49378) --- recipes/scmidas/meta.yaml | 56 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 recipes/scmidas/meta.yaml diff --git a/recipes/scmidas/meta.yaml b/recipes/scmidas/meta.yaml new file mode 100644 index 0000000000000..c64513e680f91 --- /dev/null +++ b/recipes/scmidas/meta.yaml @@ -0,0 +1,56 @@ +{% set name = "scmidas" %} +{% set version = "0.0.17" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/scmidas-{{ version }}.tar.gz + sha256: d048a28df31340c58fd656ff8918ddebad59eeaa931a7171e582c6d2f5625a79 + +build: + number: 0 + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + run_exports: + - {{ pin_subpackage('scmidas', max_pin="x.x") }} + +requirements: + host: + - python >=3.9 + - pip + run: + - python >=3.9 + - toml + - tqdm + - numpy + - pytorch >1.12 + - matplotlib-base + - pandas + - scikit-learn + - scanpy + - louvain + - rpy2 + - anndata2ri + - ipykernel + - jupyter + +test: + imports: + - scmidas + +about: + home: https://github.com/labomics/midas + summary: "A torch-based integration method for single-cell multi-omic data." + license: MIT + license_family: MIT + license_file: LICENSE + dev_url: https://github.com/labomics/midas + doc_url: https://scmidas.readthedocs.io/en/latest/ + +extra: + recipe-maintainers: + - mencian + identifiers: + - doi:10.1038/s41587-023-02040-y From 88d33eaed2ddfcb6cdef7f85caa0ead06d34df9c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 00:16:26 -0400 Subject: [PATCH 0686/1514] Update liftover to 1.3.0 (#49376) Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/liftover/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/liftover/meta.yaml b/recipes/liftover/meta.yaml index 637b2dadf94f5..8acdcde59dfe1 100644 --- a/recipes/liftover/meta.yaml +++ b/recipes/liftover/meta.yaml @@ -1,6 +1,6 @@ {% set name = "liftover" %} -{% set version = "1.2.2" %} -{% set sha256 = "f858aed016227882263d369969790adf6df2c07399e16f063aec8a248a2b4513" %} +{% set version = "1.3.0" %} +{% set sha256 = "72b870e47a14210ff3bb6c14d90087b348149765780c65a7699a3a56f7ae7016" %} package: name: {{ name|lower }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 skip: True # [py < 38] script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv run_exports: From 76b95b5ee0541d9bb2e5df95fbb884963d6b53e2 Mon Sep 17 00:00:00 2001 From: Justin Chu Date: Wed, 17 Jul 2024 21:53:21 -0700 Subject: [PATCH 0687/1514] Add new recipe: Jupiterplot (#49318) --- recipes/jupiterplot/LICENSE | 674 ++++++++++++++++++++++++++++++++++ recipes/jupiterplot/build.sh | 5 + recipes/jupiterplot/meta.yaml | 43 +++ 3 files changed, 722 insertions(+) create mode 100644 recipes/jupiterplot/LICENSE create mode 100644 recipes/jupiterplot/build.sh create mode 100644 recipes/jupiterplot/meta.yaml diff --git a/recipes/jupiterplot/LICENSE b/recipes/jupiterplot/LICENSE new file mode 100644 index 0000000000000..9cecc1d4669ee --- /dev/null +++ b/recipes/jupiterplot/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + {one line to give the program's name and a brief idea of what it does.} + Copyright (C) {year} {name of author} + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + {project} Copyright (C) {year} {fullname} + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/recipes/jupiterplot/build.sh b/recipes/jupiterplot/build.sh new file mode 100644 index 0000000000000..9520eb3dd8d84 --- /dev/null +++ b/recipes/jupiterplot/build.sh @@ -0,0 +1,5 @@ +#!/bin/bash -euo + +mkdir -p ${PREFIX}/bin + +cp -rf . ${PREFIX}/bin diff --git a/recipes/jupiterplot/meta.yaml b/recipes/jupiterplot/meta.yaml new file mode 100644 index 0000000000000..e2ae417022470 --- /dev/null +++ b/recipes/jupiterplot/meta.yaml @@ -0,0 +1,43 @@ +{% set name = "jupiterplot" %} +{% set version = "1.1" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/JustinChu/JupiterPlot/releases/download/{{ version }}/{{ name }}-{{ version }}.tar.gz + sha256: cecf14dc4a4afaec5ea91d60277952fa6c7825dcc9157157b2efcd395c6103a9 + +build: + number: 0 + noarch: generic + run_exports: + - {{ pin_subpackage('jupiterplot', max_pin="x") }} + +requirements: + run: + - circos + - circos-tools + - minimap2 + - samtools + - make + - perl + - perl-gd + +test: + commands: + - jupiter -h + +about: + home: "https://github.com/JustinChu/JupiterPlot" + summary: "Circos Assembly Consistency (Jupiter) plot" + license: "GPL-3.0-or-later" + license_family: GPL3 + license_file: LICENSE + dev_url: "https://github.com/JustinChu/JupiterPlot" + doc_url: "https://github.com/JustinChu/JupiterPlot/blob/{{ version }}/README.md" + +extra: + identifiers: + - doi:10.5281/zenodo.1241235 From 83c8e637c070532c787fd7670da1741d8331c448 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 01:49:41 -0400 Subject: [PATCH 0688/1514] Update tb-profiler to 6.3.0 (#49339) --- recipes/tb-profiler/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/tb-profiler/meta.yaml b/recipes/tb-profiler/meta.yaml index 61d892d511497..0d2dcc79dbf30 100644 --- a/recipes/tb-profiler/meta.yaml +++ b/recipes/tb-profiler/meta.yaml @@ -1,6 +1,6 @@ {% set name = "tb-profiler" %} -{% set version = "6.2.1" %} -{% set sha256 = "11b4637a37be6fe501aa649ed8598c96e2043f2fbe0e6cf13e9cbf0b9ad8420b" %} +{% set version = "6.3.0" %} +{% set sha256 = "45f3f104a3dd0f2fe07b315e3dc4ab1f0e35be095180363ecc65d41842972140" %} package: name: {{name}} @@ -28,11 +28,11 @@ requirements: - python >=3.8 - git - jinja2 - - pathogen-profiler =4.2.0 + - pathogen-profiler =4.3.0 - filelock - docxtpl - iqtree - - usher + # - usher - joblib - tqdm - pysam From ea95f4623200b711e51fc1abc58666f9b1a2c717 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 04:35:39 -0400 Subject: [PATCH 0689/1514] Update bakta to 1.9.4 (#49381) --- recipes/bakta/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/bakta/meta.yaml b/recipes/bakta/meta.yaml index 2f9fe0bceefe4..fa02ae9c72a68 100644 --- a/recipes/bakta/meta.yaml +++ b/recipes/bakta/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.9.3" %} +{% set version = "1.9.4" %} package: name: bakta @@ -6,7 +6,7 @@ package: source: url: https://github.com/oschwengers/bakta/archive/v{{ version }}.tar.gz - sha256: '774a60b4fa2032ac4804a37eafdb4c2c67f2573d7f93e785b58963a47d535e70' + sha256: 'ad92853e9d4f022024d393149eb086ad36a7e35f824a5d9efed94c3262f9cf66' build: noarch: python From 4dde45164a9e9d4ec77b616985fc3b8bdd2916f2 Mon Sep 17 00:00:00 2001 From: Sebastian Will Date: Thu, 18 Jul 2024 14:05:07 +0200 Subject: [PATCH 0690/1514] Update viennarna to build for platform osx-arm64 (#49144) * Add osx-arm64 as additional platform * Increase build number * Update recipes/viennarna/meta.yaml Build fosx package for arm64 but not x86 Co-authored-by: Alicia A. Evans <108547992+aliciaaevans@users.noreply.github.com> * Update recipe * patch to remove deprecated register assignments, which caused clang to fail * add dependencies for multiprecision floats and lapack * turn off RNAforester for MacOS * suppress some warnings * Remove skip of MacOS for x86 * Update: * remove forester support; no gsl, mpfr for osx * Update recipe for osx * deactivate Perl interface on osx * install swig 4.1.1 on osx * Fix swig pin and add comment * Reactivate RNAforester on Linux * Avoid redefining CFLAGS * Reactivate forester on osx --------- Co-authored-by: Alicia A. Evans <108547992+aliciaaevans@users.noreply.github.com> --- recipes/viennarna/build.sh | 2 +- recipes/viennarna/meta.yaml | 12 ++++- recipes/viennarna/remove-register.patch | 64 +++++++++++++++++++++++++ 3 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 recipes/viennarna/remove-register.patch diff --git a/recipes/viennarna/build.sh b/recipes/viennarna/build.sh index 84c211fc7128f..7771cf62db901 100644 --- a/recipes/viennarna/build.sh +++ b/recipes/viennarna/build.sh @@ -4,7 +4,7 @@ ## (mac or linux) ## if [ `uname` == Darwin ] ; then - extra_config_options="LDFLAGS=-Wl,-headerpad_max_install_names" + extra_config_options="--without-perl LDFLAGS=-Wl,-headerpad_max_install_names" fi ## Configure and make diff --git a/recipes/viennarna/meta.yaml b/recipes/viennarna/meta.yaml index 97a42e3956325..13f38a0f0eae3 100644 --- a/recipes/viennarna/meta.yaml +++ b/recipes/viennarna/meta.yaml @@ -6,8 +6,7 @@ package: version: {{ version }} build: - skip: True # [osx] - number: 2 + number: 3 run_exports: # Ronny said VRNA is stable in x.x releases - {{ pin_subpackage('viennarna', max_pin='x.x') }} @@ -15,17 +14,25 @@ build: source: url: https://www.tbi.univie.ac.at/RNA/download/sourcecode/2_6_x/ViennaRNA-{{ version }}.tar.gz sha256: {{ sha256 }} + patches: + - remove-register.patch requirements: build: - make - {{ compiler('c') }} - {{ compiler('cxx') }} + # pin and install swig on osx due to some incompatibility with + # automatically installed swig + - swig ==4.1.1 # [osx] host: - pkgconfig ## needed for viennarna version checks in dependent packages - perl - python - zlib + - mpfr # [not osx] + - gsl # [not osx] + - lapack - llvm-openmp # [osx] run: - python @@ -50,3 +57,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 diff --git a/recipes/viennarna/remove-register.patch b/recipes/viennarna/remove-register.patch new file mode 100644 index 0000000000000..669f253301753 --- /dev/null +++ b/recipes/viennarna/remove-register.patch @@ -0,0 +1,64 @@ +diff --git a/src/RNAlocmin/hash_util.h b/src/RNAlocmin/hash_util.h +index e5dcfd3..50a0138 100644 +--- a/src/RNAlocmin/hash_util.h ++++ b/src/RNAlocmin/hash_util.h +@@ -79,10 +79,10 @@ struct hash_eq { + struct hash_fncts{ + size_t operator()(const Structure &x) const { + +- register short *k; /* the key */ +- register unsigned length; /* the length of the key */ +- register unsigned initval=0; /* the previous hash, or an arbitrary value */ +- register unsigned a,b,c,len; ++ short *k; /* the key */ ++ unsigned length; /* the length of the key */ ++ unsigned initval=0; /* the previous hash, or an arbitrary value */ ++ unsigned a,b,c,len; + + /* Set up the internal state */ + k = x.str; +@@ -123,10 +123,10 @@ struct hash_fncts{ + + size_t operator()(const struct_en &x) const { + +- register short *k; /* the key */ +- register unsigned length; /* the length of the key */ +- register unsigned initval=0; /* the previous hash, or an arbitrary value */ +- register unsigned a,b,c,len; ++ short *k; /* the key */ ++ unsigned length; /* the length of the key */ ++ unsigned initval=0; /* the previous hash, or an arbitrary value */ ++ unsigned a,b,c,len; + + /* Set up the internal state */ + k = x.structure; +@@ -165,10 +165,10 @@ struct hash_fncts{ + return (c & HASHSIZE); + } + size_t operator()(const Structure *x) const { +- register short *k; /* the key */ +- register unsigned length; /* the length of the key */ +- register unsigned initval=0; /* the previous hash, or an arbitrary value */ +- register unsigned a,b,c,len; ++ short *k; /* the key */ ++ unsigned length; /* the length of the key */ ++ unsigned initval=0; /* the previous hash, or an arbitrary value */ ++ unsigned a,b,c,len; + + /* Set up the internal state */ + k = x->str; +@@ -209,10 +209,10 @@ struct hash_fncts{ + + size_t operator()(const struct_en *x) const { + +- register short *k; /* the key */ +- register unsigned length; /* the length of the key */ +- register unsigned initval=0; /* the previous hash, or an arbitrary value */ +- register unsigned a,b,c,len; ++ short *k; /* the key */ ++ unsigned length; /* the length of the key */ ++ unsigned initval=0; /* the previous hash, or an arbitrary value */ ++ unsigned a,b,c,len; + + /* Set up the internal state */ + k = x->structure; From 80759e23925d899a8a527633e5e3b7a4521a8f1e Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 18 Jul 2024 15:06:55 +0300 Subject: [PATCH 0691/1514] gffcompare: add aarch64/arm64 builds (#49345) * gffcompare: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Add a patch to build GCLIB before trying to use it Signed-off-by: Martin Tzvetanov Grigorov * Make gcc available for GCLIB's build Signed-off-by: Martin Tzvetanov Grigorov * Add zlib as a host dependency for GCLIB Signed-off-by: Martin Tzvetanov Grigorov * Do not build in parallel. It needs to wait for git-clone+build for GCLIB first Signed-off-by: Martin Tzvetanov Grigorov * Drop the patch for building GCLIB Signed-off-by: Martin Tzvetanov Grigorov * Remove CC. It is no more needed since GCLIB's Makefile is not used Signed-off-by: Martin Tzvetanov Grigorov * Update recipes/gffcompare/meta.yaml --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/gffcompare/build.sh | 4 +++- recipes/gffcompare/meta.yaml | 8 ++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/recipes/gffcompare/build.sh b/recipes/gffcompare/build.sh index 307a00d9eb42f..92773a1acf63f 100644 --- a/recipes/gffcompare/build.sh +++ b/recipes/gffcompare/build.sh @@ -1,9 +1,11 @@ #!/bin/bash +set -xe + export CXX="$CXX" export LINKER="$CXX" mkdir -p "$PREFIX"/bin/ make release cp gffcompare "$PREFIX"/bin/ -cp trmap "$PREFIX"/bin/ +cp trmap "$PREFIX"/bin/ \ No newline at end of file diff --git a/recipes/gffcompare/meta.yaml b/recipes/gffcompare/meta.yaml index 36587982fa933..6204e94d07a36 100644 --- a/recipes/gffcompare/meta.yaml +++ b/recipes/gffcompare/meta.yaml @@ -7,8 +7,9 @@ package: version: {{ version }} build: - number: 2 - skip: False + number: 3 + run_exports: + - {{ pin_subpackage(name, max_pin='x.x') }} source: - url: https://github.com/gpertea/gffcompare/archive/v{{ version }}.tar.gz @@ -29,5 +30,8 @@ about: summary: 'GffCompare by Geo Pertea' extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 identifiers: - biotools:gffcompare From 0029911943bd574dada144174f3370653b8b9074 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 10:51:32 -0400 Subject: [PATCH 0692/1514] Update fwdpy11 to 0.24.0 (#49365) * Update fwdpy11 to 0.24.0 * update python pinnings --------- Co-authored-by: mencian --- recipes/fwdpy11/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/fwdpy11/meta.yaml b/recipes/fwdpy11/meta.yaml index 8100a53c23f66..6729780e4e7e6 100644 --- a/recipes/fwdpy11/meta.yaml +++ b/recipes/fwdpy11/meta.yaml @@ -1,5 +1,5 @@ {% set name = "fwdpy11" %} -{% set version = "0.23.0" %} +{% set version = "0.24.0" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/fwdpy11-{{ version }}.tar.gz - sha256: 2ba384af7fcf71ebd8ff348be0234d6ac37066f29aae5a85e5a4af8967b5d14d + sha256: 1b7b0ad6a78ccb43ebc1d5dee43ae6542dc254543aad6aad3462165204afe3a0 build: - skip: True # [py < 38 or py > 312] + skip: True # [py < 39 or py > 312] number: 0 script_env: - SETUPTOOLS_SCM_PRETEND_VERSION={{ version }} From cb4da184d31ad775ce66fcffab5dc029793f7b7c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 10:58:23 -0400 Subject: [PATCH 0693/1514] Update konezumiaid to 0.3.0 (#49385) --- recipes/konezumiaid/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/konezumiaid/meta.yaml b/recipes/konezumiaid/meta.yaml index ef6dcd8fdba49..92ccaa1b0a3aa 100644 --- a/recipes/konezumiaid/meta.yaml +++ b/recipes/konezumiaid/meta.yaml @@ -1,5 +1,5 @@ {% set name = "KOnezumiAID" %} -{% set version = "0.2.2" %} +{% set version = "0.3.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/konezumiaid-{{ version }}.tar.gz - sha256: 8b3ba715ded372c630d8c6e42f03cc8a950f0c44394f1a30e9c26ea82815c884 + sha256: 9070074372d1026e04016b9979ca3b5a5a216c7acea3ad333ecb955b6ceb4f36 build: entry_points: From b3d915bf04baf9706d7cbe15e10fd6025bcdc27a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 11:03:51 -0400 Subject: [PATCH 0694/1514] Update ggcaller to 1.3.7 (#49384) --- recipes/ggcaller/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ggcaller/meta.yaml b/recipes/ggcaller/meta.yaml index ca162538e3883..4bcc1c0943126 100644 --- a/recipes/ggcaller/meta.yaml +++ b/recipes/ggcaller/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ggCaller" %} -{% set version = "1.3.6" %} +{% set version = "1.3.7" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/bacpop/{{ name }}/archive/v{{ version }}.tar.gz - sha256: 7b8e2f786c56f5305297b95f635752aa74a3775b3fce48c0845cf45bc768b4a2 + sha256: 6b7930ec6f84616812fd89c4f1829e4afb5e2a2b6fd6a489976fef8bb0bbc193 build: number: 0 From 4986b4628041c6af4090e2dac2ccaf789dca2713 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 11:04:52 -0400 Subject: [PATCH 0695/1514] Update knotinframe to 2.3.2 (#49383) --- recipes/knotinframe/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/knotinframe/meta.yaml b/recipes/knotinframe/meta.yaml index 93d555f0ee88e..0a92ed9f51886 100644 --- a/recipes/knotinframe/meta.yaml +++ b/recipes/knotinframe/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "2.3.1" %} -{% set sha256 = "d9ab68329e48709cffbf5ed775f905bdddebab470d70836bb522993b971d48af" %} +{% set version = "2.3.2" %} +{% set sha256 = "d3e6cc8d2ecd31d4764b41fea589b98c637ff227d7ab3dcfe66f2ad3f24dece5" %} package: name: knotinframe @@ -10,7 +10,7 @@ source: url: https://github.com/jlab/fold-grammars/archive/{{ version }}.tar.gz build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('knotinframe', max_pin="x") }} From 6c8cd9053b3f10e95766d9deade2fe094c605759 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 11:06:11 -0400 Subject: [PATCH 0696/1514] Update mycotools to 0.31.40 (#49379) --- recipes/mycotools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index b84a8bd23097f..e4dd395d68480 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mycotools" %} -{% set version = "0.31.39" %} +{% set version = "0.31.40" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mycotools-{{ version }}.tar.gz - sha256: f4d076d93bb056c039440d0f669c4a8f97a4827ff031da4957dfa9354a22c3ee + sha256: 4c4ca7152ed34fb5a2412a972f17c3f7ea1b458475bc87e49dc0045a7f25b42f build: entry_points: From c993d56792202c601f75330af0478380e23b53cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20H=2E=20Franceschini-Santos?= Date: Thu, 18 Jul 2024 17:13:15 +0200 Subject: [PATCH 0697/1514] Update parm to v0.0.4 (#49387) --- recipes/parm/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/parm/meta.yaml b/recipes/parm/meta.yaml index 8a9136750dcbc..7bbca71239c4e 100644 --- a/recipes/parm/meta.yaml +++ b/recipes/parm/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.0.3" %} -{% set sha256 = "c04f8ec7d0d595e6dee291115aa1626371f17a36e125724d1576e7d4b829d8c7" %} +{% set version = "0.0.4" %} +{% set sha256 = "d816519a21c3d26dd35c659ec25eccf0b48cae50fec80f705e0bd1a36c04361e" %} package: name: parm @@ -24,7 +24,7 @@ requirements: - python >=3.10.8 - pytorch - biopython - - numpy + - numpy >=1.26.0 - pandas - matplotlib-base - logomaker From 0dcb54484f1a347db1efd325a309ef76f41248df Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Thu, 18 Jul 2024 17:31:23 +0200 Subject: [PATCH 0698/1514] Update galaxy-data to 24.1.1, add galaxy-schema recipe (#49232) * Update galaxy-data to 24.1.1 * Add galaxy-schema recipe * Sync requirements from setup.cfg * f * Update meta.yaml * Update meta.yaml * fix indent * Update meta.yaml * Update meta.yaml * Update recipes/galaxy-schema/meta.yaml * Update meta.yaml * let's try email_validator as well * Update recipes/galaxy-data/meta.yaml Co-authored-by: Nicola Soranzo * Update recipes/galaxy-schema/meta.yaml Co-authored-by: Nicola Soranzo * Update isa-rwval * fix dependencies * fix isa-rwval sha * tiny edits --------- Co-authored-by: Nicola Soranzo Co-authored-by: mencian --- recipes/galaxy-data/meta.yaml | 62 ++++++++------ recipes/galaxy-schema/meta.yaml | 81 +++++++++++++++++++ recipes/isa-rwval/build_failure.linux-64.yaml | 4 - recipes/isa-rwval/build_failure.osx-64.yaml | 4 - recipes/isa-rwval/meta.yaml | 17 ++-- 5 files changed, 128 insertions(+), 40 deletions(-) create mode 100644 recipes/galaxy-schema/meta.yaml delete mode 100644 recipes/isa-rwval/build_failure.linux-64.yaml delete mode 100644 recipes/isa-rwval/build_failure.osx-64.yaml diff --git a/recipes/galaxy-data/meta.yaml b/recipes/galaxy-data/meta.yaml index 6e13357253dad..12aa8245714e8 100644 --- a/recipes/galaxy-data/meta.yaml +++ b/recipes/galaxy-data/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "22.1.1" %} -{% set sha256 = "27d1fc4ccc0d05adbb49fced1b0bcf59497a702c8bf51e39b058449dc0644cfe" %} +{% set version = "24.1.1" %} +{% set sha256 = "be4d1ba81589cc5e6d4fb38829c1770483cff6c380b7647aa80b7bc90737f573" %} {% set galaxy_version = version.split(".")[:2]|join(".") %} package: @@ -7,43 +7,59 @@ package: version: {{ version }} source: - url: https://pypi.io/packages/source/g/galaxy-data/galaxy-data-{{ version }}.tar.gz + url: https://pypi.io/packages/source/g/galaxy-data/galaxy_data-{{ version }}.tar.gz sha256: {{ sha256 }} build: noarch: python number: 0 - script: "{{ PYTHON }} -m pip install . --no-deps -vv" + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv + run_exports: + - {{ pin_subpackage('galaxy-data', max_pin="x") }} + entry_points: + - galaxy-build-objects=galaxy.model.store.build_objects:main + - galaxy-load-objects=galaxy.model.store.load_objects:main + - galaxy-manage-db=galaxy.model.orm.scripts:manage_db + - galaxy-prune-histories=galaxy.model.scripts:prune_history_table requirements: host: - pip - - python >=3.6 + - python >=3.8 run: + - python >=3.8 + - galaxy-files >={{ galaxy_version }} - galaxy-objectstore >={{ galaxy_version }} + - galaxy-schema >={{ galaxy_version }} + - galaxy-tool-util >={{ galaxy_version }} - galaxy-util >={{ galaxy_version }} - - galaxy_sequence_utils - - bdbag + - alembic + - alembic-utils + - bdbag >=1.6.3 - bx-python + - dnspython + - galaxy_sequence_utils + - h5grove >=1.2.1 - h5py - - isa-rwval - - parsley + - isa-rwval >=0.10.10 + - python-isal + - markupsafe + - mrcfile + - msal - numpy + - parsley - pycryptodome - - pydantic - - pysam >=0.15 - - social-auth-core - - sqlalchemy - - sqlalchemy-migrate - - sqlalchemy-utils - - WebOb - - python >=3.6 - - six >=1.9.0 - # extra: jstree - # - dictobj - # extra: template - # - future - # - cheetah3 + - pydantic >=2.7.4 + - email-validator + # - pylibmagic # Pending https://github.com/kratsg/pylibmagic/issues/54 + - pysam >=0.21 + - python-magic + # - rocrate # Pending https://github.com/ResearchObject/ro-crate-py/issues/139 + - social-auth-core ==4.0.3 + - sqlalchemy >=2.0,<2.1 + - tifffile + - typing-extensions + - webob test: imports: diff --git a/recipes/galaxy-schema/meta.yaml b/recipes/galaxy-schema/meta.yaml new file mode 100644 index 0000000000000..f89975a11c2c7 --- /dev/null +++ b/recipes/galaxy-schema/meta.yaml @@ -0,0 +1,81 @@ +{% set name = "galaxy-schema" %} +{% set version = "24.1.1" %} +{% set sha256 = "622c65bf1f7fc0cfb5cf6ee844e819a7ceff2b929aca5894848761b3a7df84fa" %} +{% set galaxy_version = version.split(".")[:2]|join(".") %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/galaxy_schema-{{ version }}.tar.gz + sha256: {{ sha256 }} + +build: + noarch: python + number: 0 + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv + run_exports: + - {{ pin_subpackage('galaxy-schema', max_pin="x") }} + +requirements: + host: + - python >=3.8 + - pip + run: + - python >=3.8 + - galaxy-util >={{ galaxy_version }} + - pydantic >=2.7.4 + - email-validator + +test: + imports: + - galaxy + - galaxy.schema + # Disabling all .bco imports as I can't figure out how to install pydantic[email] + # Simply installing email-validator as separate dep does not work + #- galaxy.schema.bco + #- galaxy.schema.bco.description_domain + #- galaxy.schema.bco.error_domain + #- galaxy.schema.bco.execution_domain + #- galaxy.schema.bco.io_domain + #- galaxy.schema.bco.parametric_domain + #- galaxy.schema.bco.provenance_domain + #- galaxy.schema.bco.usability_domain + #- galaxy.schema.bco.util + - galaxy.schema.cloud + - galaxy.schema.cloud + - galaxy.schema.drs + - galaxy.schema.fetch_data + - galaxy.schema.fields + - galaxy.schema.generics + - galaxy.schema.groups + - galaxy.schema.help + - galaxy.schema.history + - galaxy.schema.invocation + - galaxy.schema.invocation + - galaxy.schema.jobs + - galaxy.schema.notifications + - galaxy.schema.remote_files + - galaxy.schema.schema + - galaxy.schema.storage_cleaner + - galaxy.schema.types + - galaxy.schema.workflow + - galaxy.schema.workflow.comments + - galaxy.schema.workflows + +about: + home: https://galaxyproject.org + license: MIT + license_family: MIT + license_file: LICENSE + summary: The Galaxy API schema objects. + doc_url: https://docs.galaxyproject.org + dev_url: https://github.com/galaxyproject/galaxy + +extra: + identifiers: + - biotools:galaxy + - doi:10.1093/nar/gky379 + recipe-maintainers: + - bernt-matthias diff --git a/recipes/isa-rwval/build_failure.linux-64.yaml b/recipes/isa-rwval/build_failure.linux-64.yaml deleted file mode 100644 index 10941d9825482..0000000000000 --- a/recipes/isa-rwval/build_failure.linux-64.yaml +++ /dev/null @@ -1,4 +0,0 @@ -recipe_sha: 79dcca1e40634b62bfd92b5248b30c58c92f2b4885b2602c06367234d043f867 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -reason: |- - build job in CI is killed, probably due to memory issues diff --git a/recipes/isa-rwval/build_failure.osx-64.yaml b/recipes/isa-rwval/build_failure.osx-64.yaml deleted file mode 100644 index 10941d9825482..0000000000000 --- a/recipes/isa-rwval/build_failure.osx-64.yaml +++ /dev/null @@ -1,4 +0,0 @@ -recipe_sha: 79dcca1e40634b62bfd92b5248b30c58c92f2b4885b2602c06367234d043f867 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -reason: |- - build job in CI is killed, probably due to memory issues diff --git a/recipes/isa-rwval/meta.yaml b/recipes/isa-rwval/meta.yaml index c866c3cf7d569..4b2ee4c5047ff 100644 --- a/recipes/isa-rwval/meta.yaml +++ b/recipes/isa-rwval/meta.yaml @@ -1,31 +1,30 @@ -{% set version = "0.10.9" %} -{% set sha256 = "2ac3742b85500b9cbc1f993a249e76fc930cb742f1fe4cc96b8136491b4eab89" %} +{% set name = "isa-rwval" %} +{% set version = "0.10.10" %} +{% set sha256 = "3e9fcf37d5e5ff7e92cf28069ecd95d1e62a4025c2d667519da382e5c2258e51" %} package: - name: isa-rwval + name: {{ name }} version: {{ version }} source: - url: https://files.pythonhosted.org/packages/a4/22/39d1b2ae26ba833c994c4019995a67c10edceec99c27f227f5cdf989ab09/isa-rwval-{{ version }}.tar.gz + url: https://pypi.io/packages/source/i/{{ name }}/{{ name }}-{{ version }}.tar.gz sha256: {{ sha256 }} build: noarch: python number: 0 - script: "{{ PYTHON }} -m pip install . --no-deps -vv" + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" requirements: host: - pip - - python >=3.5 - # Depend on galaxy-util during build time to avoid packaging galaxy/__init__.py . + - python >=3.6 run: - networkx - - six - numpy - pandas - matplotlib-base - - python >=3.5 + - python >=3.6 test: imports: From 21ef5050893787c9f15e0c89ac0434a1a7258f95 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 11:37:28 -0400 Subject: [PATCH 0699/1514] Update virusrecom to 1.2.0 (#49389) --- recipes/virusrecom/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/virusrecom/meta.yaml b/recipes/virusrecom/meta.yaml index a13702997cb2f..e51a7bea2b0bb 100644 --- a/recipes/virusrecom/meta.yaml +++ b/recipes/virusrecom/meta.yaml @@ -1,5 +1,5 @@ {% set name = "virusrecom" %} -{% set version = "1.1.7" %} +{% set version = "1.2.0" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: cbb6126dc1fd6f5ee7485d8ff512c81ca5d504a821113a8ff3dca1255c2f89fc + sha256: 98335c08d01caf9019743781ddc7f8f152591380a1574a731cb82fcc4815bc10 build: number: 0 From 879a9e48da1483d34c57c5d9fee18c510cb43e8b Mon Sep 17 00:00:00 2001 From: "Robert A. Petit III" Date: Thu, 18 Jul 2024 10:39:39 -0600 Subject: [PATCH 0700/1514] clermontyping use share folder (#49372) * add missing data for clermontyping * fix typo * expand variable * adjust quotes * update sed statement * I was making this harder then it needed to be -.- * this should do it --- recipes/clermontyping/build.sh | 16 +++++++++++++--- recipes/clermontyping/meta.yaml | 2 +- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/recipes/clermontyping/build.sh b/recipes/clermontyping/build.sh index 05b90b57289ce..1fe3da3fdd2e6 100644 --- a/recipes/clermontyping/build.sh +++ b/recipes/clermontyping/build.sh @@ -2,7 +2,17 @@ set -xe -mkdir -p ${PREFIX}/bin +CLERMONTYPING="${PREFIX}/share/${PKG_NAME}-${PKG_VERSION}" +mkdir -p ${PREFIX}/bin ${CLERMONTYPING} + +# Use the share folder of R scripts and reference data +mv ${SRC_DIR}/bin ${CLERMONTYPING} +mv ${SRC_DIR}/data ${CLERMONTYPING} +chmod 755 ${CLERMONTYPING}/bin/* + +# Edit Wrapper to use Share Folder +sed -E -i "s,^(MY_PATH=.*),\1/../share/${PKG_NAME}-${PKG_VERSION}," $SRC_DIR/clermonTyping.sh + +# Copy wrapper into bin cp $SRC_DIR/clermonTyping.sh ${PREFIX}/bin/ -mkdir -p ${PREFIX}/bin/bin -cp $SRC_DIR/bin/* ${PREFIX}/bin/bin \ No newline at end of file +chmod 755 ${PREFIX}/bin/clermonTyping.sh diff --git a/recipes/clermontyping/meta.yaml b/recipes/clermontyping/meta.yaml index a1c39da64b940..4b11f2423666a 100644 --- a/recipes/clermontyping/meta.yaml +++ b/recipes/clermontyping/meta.yaml @@ -10,7 +10,7 @@ source: sha256: '{{sha256}}' build: - number: 0 + number: 1 noarch: generic run_exports: - {{ pin_subpackage('clermontyping', max_pin=None) }} From e4a0017cfc41fef1b715c209ec112b2005924af8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 15:10:29 -0400 Subject: [PATCH 0701/1514] Update mycotools to 0.31.41 (#49393) --- recipes/mycotools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index e4dd395d68480..be0bff47a9d44 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mycotools" %} -{% set version = "0.31.40" %} +{% set version = "0.31.41" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mycotools-{{ version }}.tar.gz - sha256: 4c4ca7152ed34fb5a2412a972f17c3f7ea1b458475bc87e49dc0045a7f25b42f + sha256: 973a7aed4d9a471e18761fd8b2e6cd9bb3cec7a2ebdecf0062f8c7e98ddd1530 build: entry_points: From ff10017b6a1f7a7b8d519da2a634ad995caf0417 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 15:10:38 -0400 Subject: [PATCH 0702/1514] Update snakemake-storage-plugin-azure to 0.2.0 (#49391) --- recipes/snakemake-storage-plugin-azure/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-azure/meta.yaml b/recipes/snakemake-storage-plugin-azure/meta.yaml index 9e7875f4811e3..1cef786c7c342 100644 --- a/recipes/snakemake-storage-plugin-azure/meta.yaml +++ b/recipes/snakemake-storage-plugin-azure/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-azure" %} -{% set version = "0.1.6" %} +{% set version = "0.2.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_azure-{{ version }}.tar.gz - sha256: 549e54daf878be652ac5a301b1aa2b4d63d48e21a3a1abe33c4c7b4da79cf8d6 + sha256: 6eea1bc5ff7ab7f5261981eca929a5576dfb76382f597d86ea4863a3e2bac7e7 build: noarch: python From 83ab551a83234e8630cf5522555652e131fd28fa Mon Sep 17 00:00:00 2001 From: Malte Kuehl Date: Thu, 18 Jul 2024 21:57:28 +0200 Subject: [PATCH 0703/1514] Add pytximport (#49362) * New recipe * Pin minor version * Fix missing flit requirement * Remove noarch to build on osx, too * Add noarch again after failed linting * Resolve reviewed changes * Update license * Update recipes/pytximport/meta.yaml Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/pytximport/meta.yaml | 58 ++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 recipes/pytximport/meta.yaml diff --git a/recipes/pytximport/meta.yaml b/recipes/pytximport/meta.yaml new file mode 100644 index 0000000000000..5f43ef5d5e436 --- /dev/null +++ b/recipes/pytximport/meta.yaml @@ -0,0 +1,58 @@ +{% set name = "pytximport" %} +{% set version = "0.6.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pytximport-{{ version }}.tar.gz + sha256: 7a32d5cf5cd9582fe832661b81f0159896d69b7d52dd66ca55d74f1ec48f1606 + +build: + noarch: python + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv + number: 0 + entry_points: + - pytximport=pytximport._cli:cli + run_exports: + - {{ pin_subpackage('pytximport', max_pin="x.x") }} + +requirements: + host: + - flit-core >=3.2,<4 + - python >=3.9 + - pip + run: + - python >=3.9 + - anndata >=0.8.0 + - click >=8.1.7 + - dask >=2024.7.0 + - flox >=0.9.8 + - h5py >=3.11.0 + - numpy >=1.23.0 + - pandas >=1.4.0 + - pybiomart >=0.2.0 + - tqdm >=4.66.4 + - xarray >=2024.6.0 + +test: + imports: + - pytximport + commands: + - pytximport --help + +about: + home: https://pytximport.readthedocs.io/en/latest/start.html + dev_url: https://github.com/complextissue/pytximport + doc_url: https://pytximport.readthedocs.io + summary: pytximport - gene count estimation from alignment-free quantification + description: | + pytximport is a Python port of tximport that allows users to import transcript counts from tools such as kallisto and Salmon, correct them for differential isoform usage, and summarize them at the gene level. + license: GPL-3.0-only + license_family: GPL + license_file: LICENSE + +extra: + recipe-maintainers: + - maltekuehl From 876dd24049b10c7e92fb6b0f99e94a2633267bdf Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 16:19:25 -0400 Subject: [PATCH 0704/1514] Update elastic-blast to 1.3.0 (#49366) * Update elastic-blast to 1.3.0 * clean up recipe * Try from github --------- Co-authored-by: mencian Co-authored-by: Greg Boratyn --- recipes/elastic-blast/meta.yaml | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/recipes/elastic-blast/meta.yaml b/recipes/elastic-blast/meta.yaml index 80e44cda57f33..174ee8948b8cf 100644 --- a/recipes/elastic-blast/meta.yaml +++ b/recipes/elastic-blast/meta.yaml @@ -1,46 +1,47 @@ -{% set version = "1.2.0" %} +{% set name = "elastic-blast" %} +{% set version = "1.3.0" %} package: - name: elastic-blast + name: {{ name }} version: {{ version }} source: - url: https://files.pythonhosted.org/packages/source/e/elastic-blast/elastic_blast-{{ version }}.tar.gz - sha256: 584238fc79befa4e90625752eeca928db4807a0b2e0f8956d1fa9d35c61c083f + url: https://github.com/ncbi/elastic-blast/archive/refs/tags/{{ version }}.tar.gz + sha256: 1ac45f41430078de0fa89733079f5ba7147e7c97719ff6f856979b4b5661a52c build: number: 0 - noarch: generic - script: {{ PYTHON }} -m pip install . -vv + noarch: python + script: {{ PYTHON }} -m pip install . -vvv run_exports: - {{ pin_subpackage("elastic-blast", max_pin="x") }} + requirements: host: - pip - - python >=3.7,<3.10 + - python >=3.7 - python-packit - importlib-metadata run: - - python >=3.7,<3.10 + - python >=3.7 - boto3 - awscli - awslimitchecker - tenacity - google-cloud-sdk - kubernetes-client ==1.18.8 + - importlib-resources ==6.1.1 - importlib-metadata - dataclasses-json + - pex ==2.9.0 test: commands: - elastic-blast --version - elastic-blast --help - - gcloud --version - - gsutil --version - - aws --version - - kubectl version --client=true + about: - home: https://pypi.org/project/elastic-blast/ + home: https://github.com/ncbi/elastic-blast/ license: Public Domain license_family: PUBLIC-DOMAIN license_file: LICENSE.md From 87bcd117e3099055e57539cd354a8c6baa39faa0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 16:34:12 -0400 Subject: [PATCH 0705/1514] Update snakemake-storage-plugin-azure to 0.2.1 (#49397) --- recipes/snakemake-storage-plugin-azure/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-azure/meta.yaml b/recipes/snakemake-storage-plugin-azure/meta.yaml index 1cef786c7c342..9c4687fa88a71 100644 --- a/recipes/snakemake-storage-plugin-azure/meta.yaml +++ b/recipes/snakemake-storage-plugin-azure/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-azure" %} -{% set version = "0.2.0" %} +{% set version = "0.2.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_azure-{{ version }}.tar.gz - sha256: 6eea1bc5ff7ab7f5261981eca929a5576dfb76382f597d86ea4863a3e2bac7e7 + sha256: 0fb2ccf234a6aa7d4ec1e17b2bb2ab9bf19b0bd00f49f587722504ba01ea7423 build: noarch: python From bb1fc9c8c3946fb6ece2c21637206af3513ff1d6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 16:50:30 -0400 Subject: [PATCH 0706/1514] Update liftover to 1.3.1 (#49396) --- recipes/liftover/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/liftover/meta.yaml b/recipes/liftover/meta.yaml index 8acdcde59dfe1..b28259226f6ce 100644 --- a/recipes/liftover/meta.yaml +++ b/recipes/liftover/meta.yaml @@ -1,6 +1,6 @@ {% set name = "liftover" %} -{% set version = "1.3.0" %} -{% set sha256 = "72b870e47a14210ff3bb6c14d90087b348149765780c65a7699a3a56f7ae7016" %} +{% set version = "1.3.1" %} +{% set sha256 = "43173ba201f2ad2ffd84c699b228d3f21da58e4d087d15d8bdcf600697ade10c" %} package: name: {{ name|lower }} From dfff4b855db65576913222e0ffe073482379feee Mon Sep 17 00:00:00 2001 From: Akihiro Kuno Date: Fri, 19 Jul 2024 07:59:21 +0900 Subject: [PATCH 0707/1514] Build primer3-py on macOS ARM (#49375) * Build primer3-py on macOS ARM * Add llvm-openmp for osx * Remove Python < 3.8 build --- recipes/primer3-py/meta.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/recipes/primer3-py/meta.yaml b/recipes/primer3-py/meta.yaml index 4e1a79ec38a1f..6e59d2ae15ff7 100644 --- a/recipes/primer3-py/meta.yaml +++ b/recipes/primer3-py/meta.yaml @@ -10,8 +10,7 @@ source: sha256: 1ec6ce99ea149b1c82361c654a0eab824e698ce32d5f9ed2dd8f8f37564b3f5f build: - number: 2 - skip: True # [py < 38] + number: 3 run_exports: - {{ pin_subpackage('primer3-py', max_pin="x") }} @@ -19,6 +18,7 @@ requirements: build: - {{ compiler('c') }} - make + - llvm-openmp # [osx] host: - python - cython @@ -39,8 +39,11 @@ about: license_file: LICENSE doc_url: https://libnano.github.io/primer3-py/ + extra: additional-platforms: - linux-aarch64 + - osx-arm64 recipe-maintainers: - bgruening + - akikuno From da65e762146495d17b2b5e99cd745275bb22ba2d Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Fri, 19 Jul 2024 05:52:19 +0200 Subject: [PATCH 0708/1514] Add cmaple recipe (#49392) * Add cmaple recipe * add patch * Try simple * verbose build * try with ninja * f * f * let's try this * add proper test * fix test * fix test * try to find out paths * try again * remove failing mulled tests due to lack of source_files support --- recipes/cmaple/build.sh | 37 +++ recipes/cmaple/meta.yaml | 51 ++++ recipes/cmaple/patch | 563 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 651 insertions(+) create mode 100644 recipes/cmaple/build.sh create mode 100644 recipes/cmaple/meta.yaml create mode 100644 recipes/cmaple/patch diff --git a/recipes/cmaple/build.sh b/recipes/cmaple/build.sh new file mode 100644 index 0000000000000..78f24d3e35d16 --- /dev/null +++ b/recipes/cmaple/build.sh @@ -0,0 +1,37 @@ +#!/bin/bash +set -ex + +DCMAKE_ARGS="" +if [ "$(uname)" == Darwin ]; then + CC=$(which "$CC") + CXX=$(which "$CXX") + AR=$(which "$AR") + RANLIB=$(which "$RANLIB") + DCMAKE_ARGS=(-DCMAKE_C_COMPILER="${CC}" -DCMAKE_CXX_COMPILER="${CXX}" + -DCMAKE_CXX_COMPILER_AR="${AR}" -DCMAKE_CXX_COMPILER_RANLIB="${RANLIB}") +fi + +case $(uname -m) in +aarch64) + JOBS=1 # CircleCI's arm.medium VM runs out of memory with higher values + ;; +*) + JOBS=${CPU_COUNT} + ;; +esac + +mkdir build +cmake -S . -B build -DCMAKE_INSTALL_PREFIX="${PREFIX}" -G Ninja \ + "${DCMAKE_ARGS[@]}" \ + -DBUILD_GMOCK=OFF -DINSTALL_GTEST=OFF \ + -Wno-dev -Wno-deprecated --no-warn-unused-cli + +VERBOSE=1 cmake --build build --target install -j ${JOBS} + +chmod 755 "${PREFIX}/bin/cmaple"* + +for file in "${PREFIX}/example.maple" "${PREFIX}/tree.nwk"; do + if [ -f "$file" ]; then + rm "$file" + fi +done diff --git a/recipes/cmaple/meta.yaml b/recipes/cmaple/meta.yaml new file mode 100644 index 0000000000000..bea9bb9ac3cb0 --- /dev/null +++ b/recipes/cmaple/meta.yaml @@ -0,0 +1,51 @@ +{% set name = "cmaple" %} +{% set version = "1.0.0" %} +{% set sha256 = "68693229053d8c456028b7696ee39770ff55a3eaf3454d7087def08accbf0603" %} +package: + name: {{ name }} + version: {{ version | replace("-", "_") }} +build: + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} +source: + - url: https://github.com/iqtree/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz + sha256: {{ sha256 }} + # Patch necessary to build on arm, can be removed with next release + patches: + - patch +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + - make + - cmake + - ninja + host: + - libgomp # [linux] + - llvm-openmp # [osx] +test: + source_files: + - example/input.fa + commands: + - cmaple + - cmaple -h + - cmaple-aa + # Mulled builds don't work with source_files + - cmaple -aln example/input.fa # [osx] +about: + home: "https://github.com/iqtree/cmaple" + dev_url: "https://github.com/iqtree/cmaple" + doc_url: "https://github.com/iqtree/cmaple/wiki" + license: "GPL-2.0" + license_family: GPL2 + license_file: LICENSE + summary: "MAximum Parsimonious Likelihood Estimation in C/C++" +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 + identifiers: + - doi:10.1093/molbev/msae134 + recipe-maintainers: + - corneliusroemer diff --git a/recipes/cmaple/patch b/recipes/cmaple/patch new file mode 100644 index 0000000000000..afeca4c13e424 --- /dev/null +++ b/recipes/cmaple/patch @@ -0,0 +1,563 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a58bf79..306b4e8 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,6 +1,6 @@ + ################################################################## + # CMAPLE cmake build definition +-# Copyright (c) 2022 Nhan Ly-Trong, Chris Bielow, Nicola De Maio, Bui Quang Minh ++# Copyright (c) 2022 Nhan Ly-Trong, Chris Bielow, Nicola De Maio, Bui Quang Minh + ################################################################## + + # Windows example usages: +@@ -11,10 +11,8 @@ + # + # cmake -G "Visual Studio 12" (32-bit version, compiled with MSVC) + # cmake -G "Visual Studio 12 Win64" (64-bit version, compiled with MSVC) +-# cmake -G "Visual Studio 12 Win64" -T "Intel C++ Compiler XE 15.0" (64-bit version, compiled with ICC) +-# cmake -G "MinGW Makefiles" (TDM-GCC) +-# cmake -G "Unix Makefiles" -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_MAKE_PROGRAM=mingw32-make (TDM-GCC and clang) +- ++## using clang.exe as shipped with Visual Studio: ++# cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -G "Ninja" -DCMAPLE_FLAGS=static ..\cmaple + + # Linux example usages: + #---------------------- +@@ -63,13 +61,24 @@ set(GCC_MIN_VERSION "5") + ############################################################## + # Clang-tidy + ############################################################## +-message("Setup clang-tidy") +-#set(CMAKE_CXX_CLANG_TIDY "clang-tidy;-header-filter=.;-checks=performance-*") ++if (USE_CLANG_TIDY) ++ message("Setup clang-tidy (USE_CLANG_TIDY=ON)") ++ set(CMAKE_CXX_CLANG_TIDY "clang-tidy;-header-filter=.;-checks=performance-*") ++else() ++ message("No clang-tidy (USE_CLANG_TIDY=OFF)") ++endif() ++ + + project(cmaple) + add_definitions(-DCMAPLE) + set(CMAKE_CXX_STANDARD 20) +-set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE) # Enable IPO (LTO) by default ++ ++if (((${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch") AND (NOT APPLE AND UNIX)) ++ OR WIN32) ++ set(CMAKE_INTERPROCEDURAL_OPTIMIZATION FALSE) # Disable IPO (LTO) for Linux ARM ++else() ++ set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE) # Enable IPO (LTO) by default ++endif() + + # The version number. + set (cmaple_VERSION_MAJOR 1) +@@ -80,14 +89,19 @@ option(BUILD_SHARED_LIBS "Build Shared Libraries" OFF) + option(INSTALL_CMAPLE "Enable installation of CMAPLE. (Projects integrating CMAPLE may want to turn this OFF.)" ON) + + ################################################################## +-# check existence of a few basic functions ++# check existence of a few basic functions and headers + ################################################################## +-include (${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake) ++include (CheckFunctionExists) + check_function_exists (gettimeofday HAVE_GETTIMEOFDAY) + check_function_exists (getrusage HAVE_GETRUSAGE) + check_function_exists (GlobalMemoryStatusEx HAVE_GLOBALMEMORYSTATUSEX) + check_function_exists (strndup HAVE_STRNDUP) + check_function_exists (strtok_r HAVE_STRTOK_R) ++## find optional headers ++include (CheckIncludeFile) ++CHECK_INCLUDE_FILE("unistd.h" CMAPLE_HAS_UNISTDH) ++ ++ + + if (NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE "Release") +@@ -129,6 +143,8 @@ else() + message("Target OS : Unknown and untested yet") + endif() + ++# NHANLT: Note: to build a static version, we have to link ++# the static OpenMP library manually here instead of the dynamic one + ################################################################## + # configure OpenMP to build a static version + ################################################################## +@@ -136,13 +152,19 @@ if (NOT CMAPLE_FLAGS MATCHES "single") + message("OpenMP : Yes") + + if(APPLE) +- if(OSX_NATIVE_ARCHITECTURE STREQUAL "arm64") ++ if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch") + link_directories(${PROJECT_SOURCE_DIR}/libraries/static/libmac_m1) + else() + link_directories(${PROJECT_SOURCE_DIR}/libraries/static/libmac) + endif() +- elseif (WIN32 OR UNIX) +- if (CMAKE_SIZEOF_VOID_P EQUAL 4) ++ elseif (UNIX AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") ++ if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch") ++ link_directories(${PROJECT_SOURCE_DIR}/libraries/static/liblinux_arm) ++ else() ++ link_directories(${PROJECT_SOURCE_DIR}/libraries/static/lib) ++ endif() ++ elseif (WIN32) ++ if (BINARY32) + link_directories(${PROJECT_SOURCE_DIR}/libraries/static/lib32) + else() + link_directories(${PROJECT_SOURCE_DIR}/libraries/static/lib) +@@ -169,13 +191,20 @@ endif() + + ## enable 'SSE/AVX' on x86-64, 'neon' on arm to achive faster computations (mainly the Matrix::dotProduct()) + if (CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU") +- if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86") ++ if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86") + add_compile_options(-msse -msse2 -msse3 -mssse3 -msse4 -msse4.1 -msse4.2 -mavx) # needed for simde instructions +- elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm") +- add_compile_options(-neon) +- endif() ++ elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch") ++ # NHANLT: Because the option "-neon" is not found, ++ # I changed it to "-march=native" ++ #add_compile_options(-neon) ++ if (NOT APPLE AND UNIX) ++ add_compile_options(-march=armv8-a) ++ else() ++ add_compile_options(-march=native) ++ endif() ++ endif() + elseif (CMAKE_CXX_COMPILER_ID MATCHES "MSVC") +- if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86") ++ if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86") + add_compile_options(/arch:AVX2) ## not really needed, but may be beneficial in other places when in Release mode (i.e. with optimizations turned on) + endif() + endif() +@@ -244,13 +273,13 @@ FetchContent_MakeAvailable(googletest) + ################################################################## + LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}") + if (NOT TARGET ncl) +- add_subdirectory(libraries/ncl) +-endif() ++ add_subdirectory(libraries/ncl) ++endif() + if (NOT TARGET nclextra) +- add_subdirectory(libraries/nclextra) +-endif() ++ add_subdirectory(libraries/nclextra) ++endif() + add_subdirectory(utils) +-add_subdirectory(libraries/SIMDe) ++add_subdirectory(libraries/SIMDe) + target_include_directories(cmaple_utils PUBLIC ${SIMDE_INCLUDE_DIRECTORY}) + add_subdirectory(model) + add_subdirectory(alignment) +@@ -267,16 +296,17 @@ add_executable(cmaple-aa main/main.cpp) + + if(Backtrace_FOUND) + include_directories(${Backtrace_INCLUDE_DIR}) +- target_link_libraries(cmaple ${Backtrace_LIBRARY}) +- target_link_libraries(cmaple-aa ${Backtrace_LIBRARY}) ++ target_link_libraries(cmaple PRIVATE ${Backtrace_LIBRARY}) ++ target_link_libraries(cmaple-aa PRIVATE ${Backtrace_LIBRARY}) + endif(Backtrace_FOUND) + + ################################################################## + # setup linking flags + ################################################################## + +-target_link_libraries(cmaple maple cmaple_tree cmaple_alignment cmaple_model ncl nclextra cmaple_utils) +-target_link_libraries(cmaple-aa maple-aa cmaple_tree-aa cmaple_alignment-aa cmaple_model-aa ncl nclextra cmaple_utils) ++target_link_libraries(cmaple PUBLIC maple cmaple_tree cmaple_alignment cmaple_model ncl nclextra cmaple_utils) ++target_link_libraries(cmaple-aa PUBLIC maple-aa cmaple_tree-aa cmaple_alignment-aa cmaple_model-aa ncl nclextra cmaple_utils) ++ + + ############################################################## + # add the install targets +@@ -323,7 +353,20 @@ set(CPACK_SOURCE_IGNORE_FILES + + set (SYSTEM_NAME "${CMAKE_SYSTEM_NAME}") + if (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") +- set (SYSTEM_NAME "MacOSX") ++ if (IQTREE_FLAGS MATCHES "oldmac") ++ set (SYSTEM_NAME "macOS10.5") ++ elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch") ++ set (SYSTEM_NAME "macOS-arm") ++ else() ++ set (SYSTEM_NAME "macOS-intel") ++ endif() ++endif() ++if (NOT APPLE AND UNIX) ++ if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch") ++ set (SYSTEM_NAME "Linux-arm") ++ else() ++ set (SYSTEM_NAME "Linux-intel") ++ endif() + endif() + + set(CPACK_PACKAGE_FILE_NAME +diff --git a/alignment/alignment.cpp b/alignment/alignment.cpp +index 738793d..1b98ce1 100644 +--- a/alignment/alignment.cpp ++++ b/alignment/alignment.cpp +@@ -875,7 +875,15 @@ void cmaple::Alignment::readMaple(std::istream& aln_stream) { + + // extract + ssin >> tmp; +- StateType state = convertChar2State(toupper(tmp[0])); ++ StateType state; ++ try ++ { ++ state = convertChar2State(toupper(tmp[0])); ++ } ++ catch(std::invalid_argument& e) ++ { ++ throw std::invalid_argument("Line " + convertIntToString(line_num + 1) + ": " + e.what()); ++ } + + // extract + ssin >> tmp; +@@ -1037,9 +1045,8 @@ auto cmaple::Alignment::convertChar2State(char state) -> StateType { + return 1; + default: + { +- string invalid_state_msg = "Invalid state "; ++ string invalid_state_msg = "Unrecognized character "; + invalid_state_msg += state; +- invalid_state_msg += ". Please check and try again!"; + throw std::invalid_argument(invalid_state_msg); + return TYPE_INVALID; + } +@@ -1081,9 +1088,8 @@ auto cmaple::Alignment::convertChar2State(char state) -> StateType { + case 'V': + return 1 + 2 + 4 + 3; // A or G or C + default: { +- string invalid_state_msg = "Invalid state "; ++ string invalid_state_msg = "Unrecognized character "; + invalid_state_msg += state; +- invalid_state_msg += ". Please check and try again!"; + throw std::invalid_argument(invalid_state_msg); + // return TYPE_INVALID; // unrecognize character + } +@@ -1113,9 +1119,8 @@ auto cmaple::Alignment::convertChar2State(char state) -> StateType { + loc = strchr(symbols_protein, state); + + if (loc == nullptr) { +- string invalid_state_msg = "Invalid state "; ++ string invalid_state_msg = "Unrecognized character "; + invalid_state_msg += state; +- invalid_state_msg += ". Please check and try again!"; + throw std::invalid_argument(invalid_state_msg); + // return TYPE_INVALID; // unrecognize character + } +@@ -1130,9 +1135,8 @@ auto cmaple::Alignment::convertChar2State(char state) -> StateType { + + if (!loc) + { +- string invalid_state_msg = "Invalid state "; ++ string invalid_state_msg = "Unrecognized character "; + invalid_state_msg += state; +- invalid_state_msg += ". Please check and try again!"; + throw std::invalid_argument(invalid_state_msg); + return TYPE_INVALID; // unrecognize character + } +@@ -1141,9 +1145,8 @@ auto cmaple::Alignment::convertChar2State(char state) -> StateType { + case cmaple::SeqRegion::SEQ_AUTO: + case cmaple::SeqRegion::SEQ_UNKNOWN: + default: { +- string invalid_state_msg = "Invalid state "; ++ string invalid_state_msg = "Unrecognized character "; + invalid_state_msg += state; +- invalid_state_msg += ". Please check and try again!"; + throw std::invalid_argument(invalid_state_msg); + // return TYPE_INVALID; + } +diff --git a/cmaple.doxy b/cmaple.doxy +index 3beaee7..da2a488 100644 +--- a/cmaple.doxy ++++ b/cmaple.doxy +@@ -48,13 +48,13 @@ PROJECT_NAME = CMAPLE + # could be handy for archiving the generated documentation or if some version + # control system is used. + +-PROJECT_NUMBER = 1 ++PROJECT_NUMBER = 1.0.0 + + # Using the PROJECT_BRIEF tag one can provide an optional one line description + # for a project that appears at the top of each page and should give viewer a + # quick idea about the purpose of the project. Keep the description short. + +-PROJECT_BRIEF = "CMaple phylogenetic software" ++PROJECT_BRIEF = "C++ MAximum Parsimonious Likelihood Estimation" + + # With the PROJECT_LOGO tag one can specify a logo or an icon that is included + # in the documentation. The maximum height of the logo should not exceed 55 +diff --git a/cmaple_config.h.in b/cmaple_config.h.in +index 2729eea..4090d2b 100644 +--- a/cmaple_config.h.in ++++ b/cmaple_config.h.in +@@ -15,5 +15,7 @@ + #cmakedefine HAVE_STRNDUP + #cmakedefine HAVE_STRTOK_R + ++#cmakedefine CMAPLE_HAS_UNISTDH ++ + /* does the platform provide backtrace functions? */ + #cmakedefine Backtrace_FOUND +diff --git a/libraries/static/liblinux_arm/libomp.a b/libraries/static/liblinux_arm/libomp.a +new file mode 100644 +index 0000000..bf95783 +Binary files /dev/null and b/libraries/static/liblinux_arm/libomp.a differ +diff --git a/libraries/static/libmac_m1/libomp.a b/libraries/static/libmac_m1/libomp.a +index bdff3e4..0c72cdc 100644 +Binary files a/libraries/static/libmac_m1/libomp.a and b/libraries/static/libmac_m1/libomp.a differ +diff --git a/maple/cmaple.cpp b/maple/cmaple.cpp +index c9f898d..9e21c9f 100644 +--- a/maple/cmaple.cpp ++++ b/maple/cmaple.cpp +@@ -150,11 +150,6 @@ void cmaple::runCMAPLE(cmaple::Params ¶ms) + std::ostream null_stream(nullptr); + std::ostream& out_stream = cmaple::verbose_mode >= cmaple::VB_MED ? std::cout : null_stream; + tree.infer(tree_search_type, params.shallow_tree_search, out_stream); +- +- // Write the normal tree file +- ofstream out = ofstream(output_treefile); +- out << tree.exportNewick(tree_format); +- out.close(); + + // Compute branch supports (if users want to do so) + if (params.compute_aLRT_SH) +@@ -169,21 +164,19 @@ void cmaple::runCMAPLE(cmaple::Params ¶ms) + tree.computeBranchSupport(static_cast(params.num_threads), params.aLRT_SH_replicates, params.aLRT_SH_half_epsilon + params.aLRT_SH_half_epsilon, allow_replacing_ML_tree, out_stream); + + // write the tree file with branch supports +- ofstream out_tree_branch_supports = ofstream(prefix + ".aLRT_SH.treefile"); ++ /*ofstream out_tree_branch_supports = ofstream(prefix + ".aLRT_SH.treefile"); + out_tree_branch_supports << tree.exportNewick(tree_format, true); +- out_tree_branch_supports.close(); ++ out_tree_branch_supports.close();*/ + } + + // If needed, apply some minor changes (collapsing zero-branch leaves into less-info sequences, re-estimating model parameters) to make the processes of outputting then re-inputting a tree result in a consistent tree + if (params.make_consistent) +- { + tree.makeTreeInOutConsistent(); +- +- // Overwrite the normal tree file +- ofstream overwrite_out = ofstream(output_treefile); +- overwrite_out << tree.exportNewick(tree_format); +- overwrite_out.close(); +- } ++ ++ // Write the normal tree file ++ ofstream out = ofstream(output_treefile); ++ out << tree.exportNewick(tree_format); ++ out.close(); + + // output log-likelihood of the tree + if (cmaple::verbose_mode > cmaple::VB_QUIET) { +@@ -205,10 +198,10 @@ void cmaple::runCMAPLE(cmaple::Params ¶ms) + // Show information about output files + std::cout << "Analysis results written to:" << std::endl; + std::cout << "Maximum-likelihood tree: " << output_treefile << std::endl; +- if (params.compute_aLRT_SH) { ++ /*if (params.compute_aLRT_SH) { + std::cout << "Tree with aLRT-SH values: " + << prefix + ".aLRT_SH.treefile" << std::endl; +- } ++ }*/ + std::cout << "Screen log file: " << prefix + ".log" << std::endl << std::endl; + + // show runtime +diff --git a/model/model_aa.nexus b/model/model_aa.nexus +index e52e032..6da7af0 100644 +--- a/model/model_aa.nexus ++++ b/model/model_aa.nexus +@@ -208,7 +208,9 @@ model VT= + 0.5411769916657778 0.8912614404565405 1.0894926581511342 0.7447620891784513 2.1579775140421025 0.9183596801412757 0.5818111331782764 0.3374467649724478 7.7587442309146040 0.8626796044156272 1.2452243224541324 0.7835447533710449 1.0899165770956820 10.3848523331334590 0.4819109019647465 0.9547229305958682 0.8564314184691215 4.5377235790405388 + 4.6501894691803214 0.7807017855806767 0.4586061981719967 0.4594535241660911 2.2627456996290891 0.6366932501396869 0.8940572875547330 0.6193321034173915 0.5333220944030346 14.8729334615190609 3.5458093276667237 0.7801080335991272 4.0584577156753401 1.7039730522675411 0.5985498912985666 0.9305232113028208 3.4242218450865543 0.5658969249032649 1.0000000000000000 + 0.0770764620135024 0.0500819370772208 0.0462377395993731 0.0537929860758246 0.0144533387583345 0.0408923608974345 0.0633579339160905 0.0655672355884439 0.0218802687005936 0.0591969699027449 0.0976461276528445 0.0592079410822730 0.0220695876653368 0.0413508521834260 0.0476871596856874 0.0707295165111524 0.0567759161524817 0.0127019797647213 0.0323746050281867 0.0669190817443274; +- ++)" ++// Visual studio needs regular breaks in long strings, to avoid C2026 "string too big" ++R"( + model BLOSUM62= + 0.735790389698 + 0.485391055466 1.297446705134 +@@ -390,7 +392,9 @@ model HIVW= + 0.0050000 0.0050000 5.0647500 2.2815400 8.3483500 0.0050000 0.0050000 0.0050000 47.4889000 0.1145120 0.0050000 0.0050000 0.5791980 4.1272800 0.0050000 0.9331420 0.4906080 0.0050000 + 24.8094000 0.2794250 0.0744808 2.9178600 0.0050000 0.0050000 2.1995200 2.7962200 0.8274790 24.8231000 2.9534400 0.1280650 14.7683000 2.2800000 0.0050000 0.8626370 0.0050000 0.0050000 1.3548200 + 0.0377494 0.0573210 0.0891129 0.0342034 0.0240105 0.0437824 0.0618606 0.0838496 0.0156076 0.0983641 0.0577867 0.0641682 0.0158419 0.0422741 0.0458601 0.0550846 0.0813774 0.0195970 0.0205847 0.0515638; +- ++)" ++// Visual studio needs regular breaks in long strings, to avoid C2026 "string too big" ++R"( + model JTTDCMUT= + 0.531678 + 0.557967 0.451095 +@@ -503,7 +507,9 @@ model MTINV= + 0.021939769224089 0.182762501894970 1.139165041333800 0.192759935895995 1.342951983818990 0.476209340516188 0.137649645940120 0.072268115092742 2.321701900318870 0.177138315144646 0.161052630578922 0.348477651608884 0.393193176722666 3.234681510126880 0.081395316441860 0.345719568712117 0.174898633040519 0.636664640334042 + 2.751362222454670 0.072153227138698 0.065420927831618 0.088077392769029 1.555396905840990 0.065221940911213 0.231186486525368 0.396428077428706 0.008043434782625 8.542589373962890 1.075872855650690 0.056252073499162 1.509852171058890 0.534676724129225 0.162975872809625 0.377288666084473 1.885338569864270 0.128598566560553 0.080346083861554 + 0.031742312696925 0.010900704360282 0.061579224631690 0.016149206459683 0.013570105428042 0.014644105857642 0.022311208924484 0.047847519139008 0.011641804656722 0.094322337728935 0.149407059762824 0.044438717775487 0.077262530905012 0.102287040914816 0.026290210516084 0.105939042375617 0.042869117147647 0.020701008280403 0.046556718622687 0.059540023816010; +- ++)" ++// Visual studio needs regular breaks in long strings, to avoid C2026 "string too big" ++R"( + model Q.PFAM= + 0.531344742 + 0.266631781 0.610524242 +@@ -635,7 +641,9 @@ model Q.MAMMAL= + 0.091694198 0.139818982 0.655149301 0.420781565 5.685285320 0.126113134 0.070592995 0.083304052 7.287086510 0.172110578 0.176288430 0.080506454 0.165573576 5.877878503 0.112513257 0.458878972 0.102291161 0.645002709 + 4.300445029 0.107177686 0.082093349 0.228482448 0.278600785 0.094238794 0.325642029 0.868890049 0.081513165 12.950251994 1.879650916 0.097391390 7.158497660 0.733119107 0.145626117 0.152049202 0.573328824 0.113423271 0.125003102 + 0.067997000 0.055503000 0.036288000 0.046867000 0.021435000 0.050281000 0.068935000 0.055323000 0.026410000 0.041953000 0.101191000 0.060037000 0.019662000 0.036237000 0.055146000 0.096864000 0.057136000 0.011785000 0.024730000 0.066223000; +- ++)" ++// Visual studio needs regular breaks in long strings, to avoid C2026 "string too big" ++R"( + model Q.PLANT= + 0.061995451 + 0.071787018 0.324146307 +@@ -725,7 +733,9 @@ model NQ.BIRD= + 0.003367 0.003420 0.025103 0.019062 0.118842 0.002325 0.001636 0.002267 0.172299 0.003816 0.011255 0.001973 0.001121 0.149120 0.003758 0.041478 0.002483 0.002546 -0.568642 0.002770 + 0.353020 0.003671 0.001550 0.011216 0.004391 0.002838 0.025621 0.063330 0.001568 0.600920 0.192704 0.003462 0.154474 0.028747 0.004789 0.007272 0.022534 0.001180 0.000311 -1.483598 + 0.066333 0.053982 0.037723 0.047442 0.022723 0.049236 0.071640 0.058487 0.025459 0.045195 0.100085 0.061369 0.020983 0.038111 0.053610 0.089423 0.053556 0.012287 0.027118 0.065238; +- ++)" ++// Visual studio needs regular breaks in long strings, to avoid C2026 "string too big" ++R"( + model NQ.INSECT= + -1.158307 0.010073 0.016374 0.018148 0.024562 0.031278 0.050686 0.115871 0.007708 0.016759 0.030487 0.021161 0.017635 0.007697 0.047195 0.387388 0.180867 0.001003 0.005193 0.168222 + 0.016988 -0.864366 0.028327 0.009011 0.016427 0.091271 0.017198 0.023080 0.063484 0.009987 0.026047 0.441579 0.010386 0.003027 0.013118 0.047581 0.024505 0.004420 0.007183 0.010747 +@@ -817,7 +827,9 @@ model NQ.YEAST= + 0.008246 0.005644 0.022807 0.004919 0.019212 0.007773 0.004189 0.001883 0.119939 0.010396 0.023220 0.003733 0.004427 0.375273 0.002243 0.021838 0.007934 0.015523 -0.669995 0.010796 + 0.198675 0.005913 0.007857 0.004763 0.020689 0.009495 0.019917 0.008777 0.004253 0.727245 0.155452 0.012278 0.043536 0.027573 0.012496 0.016617 0.125934 0.001048 0.008587 -1.411103 + 0.062250 0.044391 0.048928 0.052085 0.009471 0.039753 0.068567 0.039996 0.018745 0.069961 0.114036 0.081245 0.018619 0.047434 0.030178 0.090883 0.054691 0.008448 0.033789 0.066530; +- ++)" ++// Visual studio needs regular breaks in long strings, to avoid C2026 "string too big" ++R"( + model FLAVI= + 0.077462 + 0.078037 0.000020 +diff --git a/tree/tree.cpp b/tree/tree.cpp +index 5290594..e130697 100644 +--- a/tree/tree.cpp ++++ b/tree/tree.cpp +@@ -6991,8 +6991,10 @@ PositionType cmaple::Tree::count_aRLT_SH_branch( + lh_diff_3 += site_lh_diff_3[j]; + lh_diff_3 += site_lh_root_diff_3[j]; + } ++#ifdef DEBUG + assert(isinf(lh_diff_2) || fabs(lh_diff_2 - nodelh.getLhDiff2()) < 1e-3); + assert(isinf(lh_diff_3) || fabs(lh_diff_3 - nodelh.getLhDiff3()) < 1e-3); ++#endif + + // iterate a number of replicates + #pragma omp parallel reduction(+ : sh_count) +@@ -8848,8 +8850,17 @@ void cmaple::Tree::expandTreeByOneLessInfoSeq(PhyloNode& node, + // add a new node representing the less-info-seq + // the default min_blength in CMAPLE is not small enough -> I set it at + // min_blength * 0.1 for a higher accuracy when calculating aLRT-SH +- const RealNumType new_min_blength = ++ RealNumType new_min_blength = + (params->fixed_min_blength == -1) ? min_blength * 0.1 : min_blength; ++ ++ // if the two sequences are identical set the new blength at 0 ++ if (lower_regions->compareWithSample(*node.getPartialLh(TOP), ++ static_cast(aln->ref_seq.size()), aln) == 1 && ++ node.getPartialLh(TOP)->compareWithSample(*lower_regions, ++ static_cast(aln->ref_seq.size()), aln) == 1) ++ new_min_blength = 0; ++ ++ // connect the new node to the tree + connectNewSample2Branch( + lower_regions, seq_name_index, node_index, node, top_distance, 0, + new_min_blength, best_child_regions, upper_left_right_regions); +diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt +index 524f20e..1a400be 100644 +--- a/utils/CMakeLists.txt ++++ b/utils/CMakeLists.txt +@@ -7,6 +7,14 @@ matrix.h + logstream.h logstream.cpp + ) + ++if(CLANG AND WIN32) ++ if (BINARY32) ++ target_link_libraries(cmaple_utils ${PROJECT_SOURCE_DIR}/libraries/static/lib32/libiomp5md.dll) ++ else() ++ target_link_libraries(cmaple_utils ${PROJECT_SOURCE_DIR}/libraries/static/lib/libiomp5md.dll) ++ endif() ++endif() ++ + #find_package(OpenMP) + #if(OpenMP_CXX_FOUND) + # if(ZLIB_FOUND) +diff --git a/utils/matrix.h b/utils/matrix.h +index cc72203..7b3b2ba 100644 +--- a/utils/matrix.h ++++ b/utils/matrix.h +@@ -79,7 +79,7 @@ inline double horiz_sum(simde__m256d v) { + vlow = simde_mm_add_pd(vlow, vhigh); // reduce down to 128 + + simde__m128d high64 = simde_mm_unpackhi_pd(vlow, vlow); +- return simde_mm_cvtsd_f64(_mm_add_sd(vlow, high64)); // reduce to scalar ++ return simde_mm_cvtsd_f64(simde_mm_add_sd(vlow, high64)); // reduce to scalar + } + + +diff --git a/utils/operatingsystem.cpp b/utils/operatingsystem.cpp +index b8715d9..08d9a63 100644 +--- a/utils/operatingsystem.cpp ++++ b/utils/operatingsystem.cpp +@@ -8,10 +8,10 @@ + #include "operatingsystem.h" + #include + #include +-#if defined(WIN32) || defined(WIN64) +-#include //for _isatty +-#else ++#if defined(CMAPLE_HAS_UNISTDH) + #include //for isatty ++#else ++#include //for _isatty + #endif + + auto getOSName() -> std::string { +@@ -32,9 +32,9 @@ auto getOSName() -> std::string { + } + + auto isStandardOutputATerminal() -> bool { +-#if defined(WIN32) || defined(WIN64) +- return _isatty(fileno(stdout)); +-#else ++#if defined(CMAPLE_HAS_UNISTDH) + return isatty(fileno(stdout)); ++#else ++ return _isatty(fileno(stdout)); + #endif + } +diff --git a/utils/operatingsystem.h b/utils/operatingsystem.h +index 35ac951..37dfe92 100644 +--- a/utils/operatingsystem.h ++++ b/utils/operatingsystem.h +@@ -9,6 +9,7 @@ + #define operatingsystem_h + + #include ++#include + + std::string getOSName(); + bool isStandardOutputATerminal(); +diff --git a/utils/tools.cpp b/utils/tools.cpp +index a8b1c4e..9992a93 100644 +--- a/utils/tools.cpp ++++ b/utils/tools.cpp +@@ -881,8 +881,8 @@ void cmaple::parseArg(int argc, char* argv[], Params& params) { + outError(e.what()); + } + +- if (params.fixed_min_blength <= 0) { +- outError(" following -min-bl must be positive!"); ++ if (params.fixed_min_blength <= 1e-12) { ++ outError(" following -min-bl must be at least 1e-12!"); + } + + continue; From dff7f1c4dd3fcbc058b8c8cf2e546d8c83e646a2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 23:53:01 -0400 Subject: [PATCH 0709/1514] Update virusrecom to 1.2.1 (#49404) --- recipes/virusrecom/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/virusrecom/meta.yaml b/recipes/virusrecom/meta.yaml index e51a7bea2b0bb..a0f638776f348 100644 --- a/recipes/virusrecom/meta.yaml +++ b/recipes/virusrecom/meta.yaml @@ -1,5 +1,5 @@ {% set name = "virusrecom" %} -{% set version = "1.2.0" %} +{% set version = "1.2.1" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 98335c08d01caf9019743781ddc7f8f152591380a1574a731cb82fcc4815bc10 + sha256: 969e4af84eee30626319b562dbe085ccfdf81c5aa0bb8ff2874b4669f77e70b5 build: number: 0 From c4facb1a04673dfb956d423db8641f3bf32b0568 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 23:53:20 -0400 Subject: [PATCH 0710/1514] Update paragone to 1.1.3 (#49403) --- recipes/paragone/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/paragone/meta.yaml b/recipes/paragone/meta.yaml index d1dfd040d9241..b6c95e93e9849 100644 --- a/recipes/paragone/meta.yaml +++ b/recipes/paragone/meta.yaml @@ -1,5 +1,5 @@ {% set name = "paragone" %} -{% set version = "1.1.2" %} +{% set version = "1.1.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: "https://github.com/chrisjackson-pellicle/ParaGone/archive/refs/tags/v{{ version }}.tar.gz" - sha256: 49c5b2d0a3dad9f3d10a6ccc8d89e46959ec09aac0d6a6f4dd44e0cf47914ac0 + sha256: b6bf77b0ed9641f8d5a85ab3870dc24703410b5beb993c77e7c2803174911182 build: number: 0 From c3d1df76c487341e60ad8f0061140aec207c62b7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 23:53:50 -0400 Subject: [PATCH 0711/1514] Update cogent3 to 2024.7.19a1 (#49401) --- recipes/cogent3/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/cogent3/meta.yaml b/recipes/cogent3/meta.yaml index 4772fb5cad6f0..d475b58bcaa0b 100644 --- a/recipes/cogent3/meta.yaml +++ b/recipes/cogent3/meta.yaml @@ -1,5 +1,5 @@ {% set name = "cogent3" %} -{% set version = "2024.5.7a1" %} +{% set version = "2024.7.19a1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 7e4417a2728d246b1acc695209ec2e4f24ab9c7bfcd01cd113db0a791ea1c090 + sha256: fdf62233b60eb28e16a7aa8a58abdc6b98b594a596b220316875cb3d31f34dda build: noarch: python From 59757358764d353752e2fb6db186ddf5c1020c2a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 18 Jul 2024 23:54:06 -0400 Subject: [PATCH 0712/1514] Update r-ldweaver to 1.5.1 (#49402) --- recipes/r-ldweaver/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/r-ldweaver/meta.yaml b/recipes/r-ldweaver/meta.yaml index 9d1ef8ded260c..8ae0114fc3966 100644 --- a/recipes/r-ldweaver/meta.yaml +++ b/recipes/r-ldweaver/meta.yaml @@ -1,6 +1,6 @@ {% set name = "r-ldweaver" %} -{% set version = "1.5" %} -{% set sha256 = "4952b30c4e50850d6ed119469b377ecd49047f4802c5c1b84564cad60d972676" %} +{% set version = "1.5.1" %} +{% set sha256 = "baa8d5f07f76fa72a57b5b54cf09bd45152a2ee444a2f5a5abbc62fadbe756a1" %} package: name: {{ name }} From 75a13e745e3273b9a2160e419f0659d12e1439b4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 19 Jul 2024 04:40:59 -0400 Subject: [PATCH 0713/1514] Update tmhg to 1.0.3 (#49405) --- recipes/tmhg/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/tmhg/meta.yaml b/recipes/tmhg/meta.yaml index 92b87b6be7175..4c9862644ea4b 100644 --- a/recipes/tmhg/meta.yaml +++ b/recipes/tmhg/meta.yaml @@ -1,5 +1,5 @@ {% set name = "tmhg" %} -{% set version = "1.0.2" %} +{% set version = "1.0.3" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: 'https://github.com/yongze-yin/tMHG-Finder/archive/refs/tags/v{{version}}.tar.gz' - sha256: ce17dbe0f2fc7605948bc4dbd57d0f84c0b92df761c7edefb73419a050959d71 + sha256: 21046a4bab493271c82ede7432b74d7d5cacd68ee586e7be88118d7f74bd5b46 build: run_exports: From c38e38e6a7c7f518b1fe3f5ee78177d2d8521f11 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 19 Jul 2024 04:41:09 -0400 Subject: [PATCH 0714/1514] Update khipu-metabolomics to 2.0.2 (#49399) * Update khipu-metabolomics to 2.0.2 * Update meta.yaml * Update meta.yaml --------- Co-authored-by: Cornelius Roemer --- recipes/khipu-metabolomics/meta.yaml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/recipes/khipu-metabolomics/meta.yaml b/recipes/khipu-metabolomics/meta.yaml index 17677c29ab01d..97660e7d7985f 100644 --- a/recipes/khipu-metabolomics/meta.yaml +++ b/recipes/khipu-metabolomics/meta.yaml @@ -1,5 +1,5 @@ {% set name = "khipu-metabolomics" %} -{% set version = "2.0.1" %} +{% set version = "2.0.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/khipu_metabolomics-{{ version }}.tar.gz - sha256: 98bc3a78ece5def5041506f3219b0a549b3eb95c05b75817d91eabf94f0810ac + sha256: c9c5c1febbe7d368aa249819cb14a6633bb14f1ab13ec1192e1ea27546174d47 build: noarch: python @@ -27,7 +27,7 @@ requirements: - intervaltree - isocor - mass2chem - - matplotlib + - matplotlib-base - numpy - networkx - pandas @@ -42,7 +42,6 @@ test: - khipu --help requires: - pip - - requests about: home: https://github.com/shuzhao-li/khipu From 1f286eed0c07291746091df1eda1e37e51f1b7a1 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Fri, 19 Jul 2024 14:21:44 +0200 Subject: [PATCH 0715/1514] fix: Half Auspice package size (#49415) - Run `yarn cache clean --all` to remove unnecessary cache, saving 250 MB - Make build.sh posix compliant and DRYer --- recipes/auspice/build.sh | 27 +++++++++++++++------------ recipes/auspice/meta.yaml | 12 +++++++----- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/recipes/auspice/build.sh b/recipes/auspice/build.sh index 779b58cd87a2f..bc9e16bc339b8 100644 --- a/recipes/auspice/build.sh +++ b/recipes/auspice/build.sh @@ -1,18 +1,21 @@ #!/bin/sh -set -xeuo pipefail +set -xeuo -mkdir -p $PREFIX/lib/auspice -pushd $PREFIX/lib/auspice - yarn add --non-interactive --ignore-engines $SRC_DIR -popd +AUSPICE_LIB_DIR="$PREFIX"/lib/auspice +mkdir -p "$AUSPICE_LIB_DIR" +cd "$AUSPICE_LIB_DIR" +yarn add --non-interactive --ignore-engines "$SRC_DIR" +yarn cache clean --all # Remove 250 MB source cache added -mkdir -p $PREFIX/bin -pushd $PREFIX/bin - ln -s ../lib/auspice/node_modules/.bin/auspice . -popd +BIN_DIR="$PREFIX"/bin +mkdir -p "$BIN_DIR" +cd "$BIN_DIR" +ln -s ../lib/auspice/node_modules/.bin/auspice . # For the license_file field in meta.yaml -cp $PREFIX/lib/auspice/node_modules/auspice/LICENSE.txt $SRC_DIR -if [ -f $PREFIX/lib/auspice/node_modules/watchpack-chokidar2/node_modules/fsevents/build/node_gyp_bins/python3 ] ; then - unlink $PREFIX/lib/auspice/node_modules/watchpack-chokidar2/node_modules/fsevents/build/node_gyp_bins/python3 +cp "$AUSPICE_LIB_DIR"/node_modules/auspice/LICENSE.txt "$SRC_DIR" + +NODE_GYP_PYTHON="$AUSPICE_LIB_DIR"/node_modules/watchpack-chokidar2/node_modules/fsevents/build/node_gyp_bins/python3 +if [ -f "$NODE_GYP_PYTHON" ]; then + unlink "$NODE_GYP_PYTHON" fi diff --git a/recipes/auspice/meta.yaml b/recipes/auspice/meta.yaml index 4507c2050df07..3d686e8bf8ffe 100644 --- a/recipes/auspice/meta.yaml +++ b/recipes/auspice/meta.yaml @@ -1,17 +1,18 @@ {% set version = "2.56.0" %} +{% set name = "auspice" %} package: - name: auspice + name: {{ name }} version: {{ version }} source: - url: https://registry.npmjs.org/auspice/-/auspice-{{ version }}.tgz + url: https://registry.npmjs.org/{{ name }}/-/{{ name }}-{{ version }}.tgz sha256: 89c620bc790c5e3f28969a253f41e36bf35a13346cb8c6ab55868d9c6ee08714 build: - number: 2 + number: 3 run_exports: - - {{ pin_subpackage("auspice", max_pin="x.x") }} + - {{ pin_subpackage(name, max_pin="x.x") }} requirements: build: @@ -20,7 +21,7 @@ requirements: - "{{ compiler('c') }}" - "{{ compiler('cxx') }}" - nodejs 16.*|18.*|20.* - - python * + - python - pkg-config - yarn 1.* host: @@ -31,6 +32,7 @@ requirements: test: commands: - auspice --help + - auspice -v about: home: https://docs.nextstrain.org/projects/auspice/ From f7f773a589d54ec37cd8f84c6701f4a729099978 Mon Sep 17 00:00:00 2001 From: AntonS-bio <47866509+AntonS-bio@users.noreply.github.com> Date: Fri, 19 Jul 2024 13:40:30 +0100 Subject: [PATCH 0716/1514] Update to version 0.1.22 (#49414) --- recipes/handyreadgenotyper/meta.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/recipes/handyreadgenotyper/meta.yaml b/recipes/handyreadgenotyper/meta.yaml index 173b1894489fa..7460e9d78995f 100644 --- a/recipes/handyreadgenotyper/meta.yaml +++ b/recipes/handyreadgenotyper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "HandyReadGenotyper" %} -{% set version = "0.1.21" %} +{% set version = "0.1.22" %} package: name: {{ name|lower }} @@ -7,14 +7,14 @@ package: source: url: https://github.com/AntonS-bio/HandyReadGenotyper/archive/{{ version }}.tar.gz - sha256: ac0f0bc3f5db78f400e67f355f5cc6de7089bf481d6c8272e42b271a571c2bed + sha256: e969f57238a517c6483de0eabdad57e0359168ac6a6be1ebed34c03cffb2d48d build: noarch: python script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation run_exports: - {{ pin_subpackage('handyreadgenotyper', max_pin="x.x") }} - number: 1 + number: 0 requirements: host: @@ -34,6 +34,7 @@ requirements: test: commands: - train -h + - classify -h requires: - pip From c30d0b8c422061abfe65b1d087c1f463fc99609f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 19 Jul 2024 11:05:08 -0400 Subject: [PATCH 0717/1514] Update defense-finder to 1.3.0 (#49408) --- recipes/defense-finder/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/defense-finder/meta.yaml b/recipes/defense-finder/meta.yaml index 80a8fee131a79..a6efd6b8a8504 100644 --- a/recipes/defense-finder/meta.yaml +++ b/recipes/defense-finder/meta.yaml @@ -1,5 +1,5 @@ {% set name = "defense-finder" %} -{% set version = "1.2.2" %} +{% set version = "1.3.0" %} package: name: {{ name|lower }} @@ -7,11 +7,11 @@ package: source: url: https://github.com/mdmparis/defense-finder/archive/v{{ version }}.tar.gz - sha256: e34e59cf1329e26c9cb6e42bb5cb6a7a051e09ca4bf981b9334f73a08d354625 + sha256: cfcc3092d7426f6bae924d08f8303dcef19446f88808d116443bc8ef287be0c5 # patches: 0001-fix-no-results.patch build: - number: 1 + number: 0 noarch: python script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv run_exports: From fef8130e6c6cfbf2beb90b7438ac15fcf10bebbf Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 19 Jul 2024 11:15:16 -0400 Subject: [PATCH 0718/1514] Update dfast_qc to 1.0.1 (#49411) --- recipes/dfast_qc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/dfast_qc/meta.yaml b/recipes/dfast_qc/meta.yaml index b057e76fa7d9d..60cf4b8dc949e 100644 --- a/recipes/dfast_qc/meta.yaml +++ b/recipes/dfast_qc/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.0.0" %} +{% set version = "1.0.1" %} package: name: dfast_qc @@ -12,7 +12,7 @@ build: source: url: https://github.com/nigyta/dfast_qc/archive/{{ version }}.tar.gz - sha256: 456843b81b4f3e221d2ae20cfd64aec8bd74e7f1a772d64eb9942b164f829813 + sha256: 9f8456e953add634cc5e1e2f7181df4836d9a239a86a21184bdcaa75fa89e90d requirements: From 1c567e44c5906c2d443d7f7217d9c3581cc982d6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 19 Jul 2024 11:35:24 -0400 Subject: [PATCH 0719/1514] Update zdb to 1.3.1 (#49413) --- recipes/zdb/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/zdb/meta.yaml b/recipes/zdb/meta.yaml index 0ac72934d1172..44567e264fe2a 100644 --- a/recipes/zdb/meta.yaml +++ b/recipes/zdb/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.3.0" %} +{% set version = "1.3.1" %} package: name: zdb @@ -11,8 +11,8 @@ build: - {{ pin_subpackage('zdb', max_pin="x.x") }} source: - url: https://github.com/metagenlab/zDB/archive/refs/tags/v1.3.0.tar.gz - sha256: 3f9496d423875e0d281bc62c3fcc88f9878c167ea14ff9b8afebfea4087466c0 + url: https://github.com/metagenlab/zDB/archive/refs/tags/v1.3.1.tar.gz + sha256: dec71cf53fd30f490fbbedd2bfa8488a3d2dfa67459d0c9b54f70a020ce8beb1 requirements: run: From 4eeb356db59908b22364a533f38baeaf511c9204 Mon Sep 17 00:00:00 2001 From: "Robert A. Petit III" Date: Fri, 19 Jul 2024 09:42:16 -0600 Subject: [PATCH 0720/1514] add recipe for scrubby (#49373) * add recipe for scrubby * fix typo try arm build * skip arm due to depends * try OSX build --------- Co-authored-by: mencian --- recipes/scrubby/build.sh | 20 ++++++++++++++++++ recipes/scrubby/meta.yaml | 43 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 recipes/scrubby/build.sh create mode 100644 recipes/scrubby/meta.yaml diff --git a/recipes/scrubby/build.sh b/recipes/scrubby/build.sh new file mode 100644 index 0000000000000..42c7a115fff25 --- /dev/null +++ b/recipes/scrubby/build.sh @@ -0,0 +1,20 @@ +#!/bin/bash +set -ex + +# adopted from: https://github.com/bioconda/bioconda-recipes/blob/master/recipes/rasusa/build.sh + +RUST_BACKTRACE=full + +if [ "$(uname)" == "Darwin" ]; then + # apparently the HOME variable isn't set correctly, and circle ci + # output indicates the following as the home directory + export HOME="/Users/distiller" + export HOME=`pwd` + echo "HOME is $HOME" + + # according to https://github.com/rust-lang/cargo/issues/2422#issuecomment-198458960 + # removing circle ci default configuration solves cargo trouble downloading crates + # git config --global --unset url.ssh://git@github.com.insteadOf +fi + +cargo install -v --locked --root "$PREFIX" --path . diff --git a/recipes/scrubby/meta.yaml b/recipes/scrubby/meta.yaml new file mode 100644 index 0000000000000..9e5b36b11e7b1 --- /dev/null +++ b/recipes/scrubby/meta.yaml @@ -0,0 +1,43 @@ +{% set version = "0.2.1" %} +{% set name = "scrubby" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/esteinig/{{ name }}/archive/{{ version }}.tar.gz + sha256: 88aaf4420393501b1387f45c9291a373a3a01c034c1d1d72555cccb05fea92a2 + +build: + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} + +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('rust') }} + - make + - cmake + - clang # [osx] + run: + - minimap2 =2.24 + - kraken2 =2.1.2 + - strobealign =0.8.0 + +test: + commands: + - scrubby -h + +about: + home: https://github.com/esteinig/scrubby + license: MIT + license_family: MIT + summary: Read depletion/extraction and database cleaning using k-mer and alignment methods + license_file: LICENSE + dev_url: https://github.com/esteinig/scrubby + +extra: + recipe-maintainers: + - esteinig From e4dcd41ee4d1746e1d6408339c8eab69c4480a39 Mon Sep 17 00:00:00 2001 From: Niclas Grote <57624670+HomoPolyethylen@users.noreply.github.com> Date: Fri, 19 Jul 2024 17:43:16 +0200 Subject: [PATCH 0721/1514] querynator: pin pandas to 1.5.3 (#49407) * pin pandas to 1.5.3 fixes querynator issue 37 * increment built number lint test failed due to version and built number being same, increment built number --- recipes/querynator/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/querynator/meta.yaml b/recipes/querynator/meta.yaml index 0ccd6b596b9b3..2bbf594ece3e8 100644 --- a/recipes/querynator/meta.yaml +++ b/recipes/querynator/meta.yaml @@ -10,7 +10,7 @@ source: sha256: bad38b5a62cd05701e13cb9e7157a854c0b9870c993971a20ae03ae9c91ac9a9 build: - number: 0 + number: 1 noarch: python run_exports: - {{ pin_subpackage('querynator', max_pin="x") }} @@ -28,7 +28,7 @@ requirements: - httplib2 - matplotlib-base >=3.6.1 - numpy ==1.24.4 - - pandas >=1.5.1 + - pandas ==1.5.3 - pretty_html_table >=0.9.16 - pytest >=6.2.4 - python >=3.8,<3.11 From 63f9e1e4e1fd0f2469c53d507402210d299c4f14 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 19 Jul 2024 12:01:40 -0400 Subject: [PATCH 0722/1514] Update r-ic10 to 2.0.2 (#49410) * Update r-ic10 to 2.0.2 * add run_exports --------- Co-authored-by: mencian --- recipes/r-ic10/build.sh | 1 - recipes/r-ic10/meta.yaml | 15 +++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) delete mode 100644 recipes/r-ic10/build.sh diff --git a/recipes/r-ic10/build.sh b/recipes/r-ic10/build.sh deleted file mode 100644 index 5bf492ab9fc06..0000000000000 --- a/recipes/r-ic10/build.sh +++ /dev/null @@ -1 +0,0 @@ -$R CMD INSTALL --build . diff --git a/recipes/r-ic10/meta.yaml b/recipes/r-ic10/meta.yaml index a2c4c3c934ccb..82853f886728a 100644 --- a/recipes/r-ic10/meta.yaml +++ b/recipes/r-ic10/meta.yaml @@ -1,21 +1,25 @@ -{% set version = '1.5' %} +{% set name = "r-ic10" %} +{% set version = '2.0.2' %} package: - name: r-ic10 + name: {{ name }} version: {{ version|replace("-", "_") }} source: url: - {{ cran_mirror }}/src/contrib/iC10_{{ version }}.tar.gz - {{ cran_mirror }}/src/contrib/Archive/iC10/iC10_{{ version }}.tar.gz - sha256: b471088158320778bac7b145233eeaaf9480061e2a5ac12c58ad7381caee06f7 + sha256: 8c417097765b74576aad6a4dfa30917910dc06a05e858f6a6080574c109c1b32 build: - number: 6 + number: 0 noarch: generic + script: ${R} CMD INSTALL --build . ${R_ARGS} rpaths: - lib/R/lib/ - lib/ + run_exports: + - {{ pin_subpackage('r-ic10', max_pin="x") }} requirements: host: @@ -31,12 +35,11 @@ requirements: test: commands: - - $R -e "library('iC10')" about: home: https://CRAN.R-project.org/package=iC10 - license: GPL-3 + license: GPL-3.0-or-later license_file: '{{ environ["PREFIX"] }}/lib/R/share/licenses/GPL-3' summary: Implementation of the classifier described in the paper 'Genome-driven integrated classification of breast cancer validated in over 7,500 samples' (Ali HR et al., From 560c815be870aa35911e47c6a94211d6590919e4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 19 Jul 2024 13:24:09 -0400 Subject: [PATCH 0723/1514] Update nonpareil to 3.5.5 (#49418) * Update nonpareil to 3.5.5 * Add new dependencies and copy over new utlity script * Linting required build reset? * Update recipes/nonpareil/meta.yaml * Update recipes/nonpareil/meta.yaml --------- Co-authored-by: James A. Fellows Yates --- recipes/nonpareil/meta.yaml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/recipes/nonpareil/meta.yaml b/recipes/nonpareil/meta.yaml index 553c4d5f0a67e..b9efb68dcc775 100644 --- a/recipes/nonpareil/meta.yaml +++ b/recipes/nonpareil/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "3.5.4" %} -{% set sha256 = "41ea9c1378e85787142b29c7cdf8d352073764a620f818333492266e6bbec1cd" %} +{% set version = "3.5.5" %} +{% set sha256 = "a1896a3ecf1394cbbc685de8dcb0eef04aa089e5ad6badf51d0eaa89b4b3bf1e" %} package: name: nonpareil @@ -16,6 +16,8 @@ build: script: | make -j ${CPU_COUNT} cpp="${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}" nonpareil make prefix="${PREFIX}" install + chmod +x utils/NonpareilCurves.R + cp utils/NonpareilCurves.R ${PREFIX}/bin/NonpareilCurves.R requirements: build: @@ -25,11 +27,14 @@ requirements: - zlib run: - r-base + - r-optparse + - r-jsonlite - zlib test: commands: - nonpareil -h 2>&1 | grep "Nonpareil" + - NonpareilCurves.R -h about: home: http://nonpareil.readthedocs.io/ From 82661c20805afc0113923599875ee5b4460b87bb Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Fri, 19 Jul 2024 10:27:25 -0700 Subject: [PATCH 0724/1514] btllib build for osx-arm64 (#49155) * btllib build for osx-arm64 * Skip lrzip dependency for osx-arm64 * Fixes for build restrictions * Fix erroneous skip --- recipes/btllib/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/btllib/meta.yaml b/recipes/btllib/meta.yaml index a22466fe79d65..7414af219a0f1 100644 --- a/recipes/btllib/meta.yaml +++ b/recipes/btllib/meta.yaml @@ -10,8 +10,7 @@ source: sha256: 4c1bb29fdbd7d9a39f960360a5d4b224d22189862b948027a8e3ecd67c635926 build: - skip: True # [py < 38 or win] - number: 2 + number: 3 run_exports: - {{ pin_subpackage('btllib', max_pin="x") }} @@ -39,7 +38,7 @@ requirements: - tar - bzip2 - xz - - lrzip + - lrzip # [not arm64] - zip - wget @@ -61,6 +60,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - doi:10.21105/joss.04720 - doi:10.1093/bioadv/vbad162 From ce54903c75570ec6d83bb7de275b9f7cd587ea45 Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Fri, 19 Jul 2024 13:56:51 -0400 Subject: [PATCH 0725/1514] ggcaller: fix dependency issue (#49419) --- recipes/ggcaller/build_failure.linux-64.yaml | 106 ------------------- recipes/ggcaller/meta.yaml | 4 +- 2 files changed, 2 insertions(+), 108 deletions(-) delete mode 100644 recipes/ggcaller/build_failure.linux-64.yaml diff --git a/recipes/ggcaller/build_failure.linux-64.yaml b/recipes/ggcaller/build_failure.linux-64.yaml deleted file mode 100644 index 1f869f1bff695..0000000000000 --- a/recipes/ggcaller/build_failure.linux-64.yaml +++ /dev/null @@ -1,106 +0,0 @@ -recipe_sha: 881e0ffc9f1369a08046148dd3819c99665e42c9c09ae279668944b12d1e6bff # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - mkl 2023.2.0 h84fe81f_37, which can be installed; - mkl-devel 2023.2.0 would require - mkl 2023.2.0 h84fe81f_49501, which can be installed; - mkl-devel 2023.2.0 would require - mkl 2023.2.0 h84fe81f_49502, which can be installed; - mkl-devel 2023.2.0 would require - mkl 2023.2.0 h84fe81f_49572, which can be installed; - mkl-devel 2023.2.0 would require - mkl 2023.2.0 h84fe81f_50495, which can be installed; - mkl-devel 2023.2.0 would require - mkl 2023.2.0 h84fe81f_50496, which can be installed; - pytorch 1.10.* is not installable because there are no viable options - pytorch 1.10.0 would require - mkl >=2021.4.0,<2022.0a0 , which conflicts with any installable versions previously reported; - pytorch [1.10.1|1.10.2] would require - mkl 2022.* , which conflicts with any installable versions previously reported. - Reloading output folder: ...working... done - Getting pinned dependencies: ...working... failed - Reloading output folder: ...working... done - Getting pinned dependencies: ...working... failed - Reloading output folder: ...working... done - Getting pinned dependencies: ...working... failed - ERROR: Failed to get package records, max retries exceeded. - Reloading output folder: ...working... done - Getting pinned dependencies: ...working... failed - Reloading output folder: ...working... done - Getting pinned dependencies: ...working... failed - Reloading output folder: ...working... done - Getting pinned dependencies: ...working... failed - Reloading output folder: ...working... done - Getting pinned dependencies: ...working... failed - Reloading output folder: ...working... done - Getting pinned dependencies: ...working... failed - Reloading output folder: ...working... done - Getting pinned dependencies: ...working... failed - Reloading output folder: ...working... done - Getting pinned dependencies: ...working... failed - Reloading output folder: ...working... done - Getting pinned dependencies: ...working... failed - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/models/version.py", line 44, in __call__ - return cls._cache_[arg] - KeyError: '>=3.9' - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/bioconda-utils", line 8, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/bioconda_utils/cli.py", line 1124, in main - argh.dispatch_commands([ - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/argh/dispatching.py", line 510, in dispatch_commands - dispatch(parser, *args, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/argh/dispatching.py", line 198, in dispatch - return run_endpoint_function( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/argh/dispatching.py", line 269, in run_endpoint_function - return _process_command_output(lines, output_file, raw_output, always_flush) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/argh/dispatching.py", line 289, in _process_command_output - for line in lines: - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/argh/dispatching.py", line 414, in _execute_command - for line in result: - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/argh/dispatching.py", line 394, in _call - result = function(*positional_values, **values_by_name) - File "", line 2, in build - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/bioconda_utils/cli.py", line 137, in wrapper - func(*args, **kwargs) - File "", line 2, in build - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/bioconda_utils/cli.py", line 66, in wrapper - func(*args, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/bioconda_utils/cli.py", line 498, in build - success = build_recipes(recipe_folder, config, recipes, - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/bioconda_utils/build.py", line 431, in build_recipes - pkg_paths = utils.get_package_paths(recipe, check_channels, force=force) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/bioconda_utils/utils.py", line 1125, in get_package_paths - platform, metas = _load_platform_metas(recipe, finalize=True) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/bioconda_utils/utils.py", line 1025, in _load_platform_metas - return platform, load_all_meta(recipe, config=config, finalize=finalize) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/bioconda_utils/utils.py", line 459, in load_all_meta - metas = [ - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/bioconda_utils/utils.py", line 462, in - for (meta, _, _) in api.render( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 74, in render - for od, om in meta.get_output_metadata_set( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 2737, in get_output_metadata_set - conda_packages = finalize_outputs_pass( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 1095, in finalize_outputs_pass - fm = finalize_metadata( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 688, in finalize_metadata - versioned_run_deps = [ - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 689, in - get_pin_from_build(m, dep, full_build_dep_versions) for dep in run_deps - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 219, in get_pin_from_build - pin = utils.apply_pin_expressions(version.split()[0], **pin_cfg) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 1523, in apply_pin_expressions - parsed_version = VersionOrder(version).version[1:] - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/models/version.py", line 46, in __call__ - val = cls._cache_[arg] = super().__call__(arg) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/models/version.py", line 172, in __init__ - raise InvalidVersionSpec(vstr, "invalid character(s)") - conda.exceptions.InvalidVersionSpec: Invalid version '>=3.9': invalid character(s) -# Last 100 lines of the build log. -category: |- - dependency issue diff --git a/recipes/ggcaller/meta.yaml b/recipes/ggcaller/meta.yaml index 4bcc1c0943126..5a24268ec7461 100644 --- a/recipes/ggcaller/meta.yaml +++ b/recipes/ggcaller/meta.yaml @@ -25,7 +25,7 @@ requirements: - make - tbb - tbb-devel - - mkl-devel # [linux] + - mkl-devel >=2021.4.0,<2023.0.0 # [linux] - openblas # [osx] - protobuf - pytorch-cpu =1.10 @@ -43,7 +43,7 @@ requirements: - setuptools - llvm-openmp # [osx] - libgomp # [linux] - - mkl-devel # [linux] + - mkl-devel >=2021.4.0,<2023.0.0 # [linux] - lapack # [osx] - openblas # [osx] - eigen =3.3 From 1a51aa71e911a26a2a76ef398a8fa7eea77c7972 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 19 Jul 2024 13:57:16 -0400 Subject: [PATCH 0726/1514] Update abyss to 2.3.8 (#49422) --- recipes/abyss/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/abyss/meta.yaml b/recipes/abyss/meta.yaml index 4a7e8a2e62cde..c713a409e12e6 100644 --- a/recipes/abyss/meta.yaml +++ b/recipes/abyss/meta.yaml @@ -1,18 +1,18 @@ {% set name = "abyss" %} -{% set version = "2.3.7" %} +{% set version = "2.3.8" %} package: name: {{ name|lower }} version: {{ version }} build: - number: 4 + number: 0 run_exports: - {{ pin_subpackage(name, max_pin="x") }} source: url: https://github.com/bcgsc/abyss/releases/download/{{ version }}/abyss-{{ version }}.tar.gz - sha256: ba37780e79ec3aa359b6003e383caef13479a87f4d0022af01b86398f9ffca1f + sha256: 3c262269043f619c79ec3dcd91f5595cb141229f9a13d1a76a952b9a0bfb0d84 requirements: build: From c7668978954fdd1a37dbba241d64f26f52a6686a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 19 Jul 2024 14:56:52 -0400 Subject: [PATCH 0727/1514] Update pbstarphase to 0.12.0 (#49424) --- recipes/pbstarphase/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pbstarphase/meta.yaml b/recipes/pbstarphase/meta.yaml index 9b1869e8b4ebb..08cd05ff96e91 100644 --- a/recipes/pbstarphase/meta.yaml +++ b/recipes/pbstarphase/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pbstarphase" %} -{% set version = "0.11.3" %} -{% set sha256 = "1b935576c546c9630a4ee0b8a193fd308889c3cae491963cbf9b7fdef4aefce5" %} +{% set version = "0.12.0" %} +{% set sha256 = "a44a71aa786c8ad08860dcb542bb98cd5142f4c331c54e44533a0b62d6d51d7e" %} package: name: {{ name }} From 39a51a1f0c6219573162f59ab4d67addddc2375d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 19 Jul 2024 16:59:44 -0400 Subject: [PATCH 0728/1514] Update gia to 0.2.23 (#49426) --- recipes/gia/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gia/meta.yaml b/recipes/gia/meta.yaml index 994d6dde9cbf2..63a3997827f29 100644 --- a/recipes/gia/meta.yaml +++ b/recipes/gia/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.2" %} +{% set version = "0.2.23" %} {% set name = "gia" %} {% set build_number = "0" %} @@ -9,7 +9,7 @@ package: source: url: https://github.com/noamteyssier/gia/archive/{{ version }}.tar.gz - sha256: 86c1f4dcd36d296d3261ff456b2599e505fe0977a02bcea4e18641ee8add4920 + sha256: 57f843d61281e7e243ee3ebf16f9aa2e96f9fe0e03a02e14e9b7a43ad3b6d949 build: From f3ee206b3ec85bc4759c90dc664ca7a7540b1eb8 Mon Sep 17 00:00:00 2001 From: jxu10 <142250120+jxu10@users.noreply.github.com> Date: Fri, 19 Jul 2024 14:20:16 -0700 Subject: [PATCH 0729/1514] pybedtools: add osx-arm64 build (#49421) Co-authored-by: Elmar Pruesse --- recipes/pybedtools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybedtools/meta.yaml b/recipes/pybedtools/meta.yaml index eed3d0401005a..1470932f51d10 100644 --- a/recipes/pybedtools/meta.yaml +++ b/recipes/pybedtools/meta.yaml @@ -10,8 +10,7 @@ source: sha256: 1a6fbaad23b013becc741d7d5922a2df03e391bc44ff92772ffb7dd456711161 build: - skip: True # [py < 36] - number: 1 + number: 2 run_exports: - {{ pin_subpackage("pybedtools", max_pin="x.x") }} @@ -49,3 +48,4 @@ extra: - biotools:pybedtools additional-platforms: - linux-aarch64 + - osx-arm64 From 5a8694f7279825b5d2641bd7fb17e4ade21d938b Mon Sep 17 00:00:00 2001 From: Mervin Fansler Date: Fri, 19 Jul 2024 23:26:39 +0200 Subject: [PATCH 0730/1514] Add R package `easyLift` as `r-easylift` (#49417) * add r-easylift * Create build.sh --- recipes/r-easylift/build.sh | 3 +++ recipes/r-easylift/meta.yaml | 50 ++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 recipes/r-easylift/build.sh create mode 100644 recipes/r-easylift/meta.yaml diff --git a/recipes/r-easylift/build.sh b/recipes/r-easylift/build.sh new file mode 100644 index 0000000000000..b8d2635525637 --- /dev/null +++ b/recipes/r-easylift/build.sh @@ -0,0 +1,3 @@ +#!/bin/bash +export DISABLE_AUTOBREW=1 +${R} CMD INSTALL --build . ${R_ARGS} diff --git a/recipes/r-easylift/meta.yaml b/recipes/r-easylift/meta.yaml new file mode 100644 index 0000000000000..266299908bd36 --- /dev/null +++ b/recipes/r-easylift/meta.yaml @@ -0,0 +1,50 @@ +{% set version = "0.2.1" %} +{% set github = "https://github.com/caleblareau/easyLift" %} +{% set commit = "43590e059828027e6f1fa057484b239b028da5fd" %} + +package: + name: r-easylift + version: "{{ version }}" + +source: + url: "{{ github }}/archive/{{ commit }}.zip" + sha256: a259440b5911586235828fbe4c0329fa5c514ac342b24641210af35527e3a680 + +build: + noarch: generic + number: 0 + rpaths: + - lib/R/lib/ + - lib/ + run_exports: + - {{ pin_subpackage("r-easylift", max_pin="x.x") }} + +requirements: + host: + - r-base + - bioconductor-genomicranges + - bioconductor-iranges + - bioconductor-rtracklayer + run: + - r-base + - bioconductor-genomicranges + - bioconductor-iranges + - bioconductor-rtracklayer + +test: + commands: + - $R -e "library(easyLift)" + +about: + home: {{ github }} + dev_url: {{ github }} + license: MIT + license_file: + - LICENSE + - {{ environ["PREFIX"] }}/lib/R/share/licenses/MIT + license_family: MIT + summary: A convenience package for converting between popular mouse & human builds. + +extra: + recipe-maintainers: + - mfansler From 138ea8231a3c51e7457c8dc45ad7cd305240b9dd Mon Sep 17 00:00:00 2001 From: Chris Jackson <55370301+chrisjackson-pellicle@users.noreply.github.com> Date: Sat, 20 Jul 2024 08:01:27 +1000 Subject: [PATCH 0731/1514] Update HybPiper entry point for v2.2.0 (#49428) --- recipes/hybpiper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/hybpiper/meta.yaml b/recipes/hybpiper/meta.yaml index be3d2f7c46985..6305cc6c34bf0 100644 --- a/recipes/hybpiper/meta.yaml +++ b/recipes/hybpiper/meta.yaml @@ -10,11 +10,11 @@ source: sha256: 8337b1d17de9fa11f9d2b3f59ccc4597c5e3359d70e26d88346e871ccc6b1ac3 build: - number: 0 + number: 1 noarch: python script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir entry_points: - - hybpiper = hybpiper.assemble:main + - hybpiper = hybpiper.hybpiper_main:main run_exports: - {{ pin_subpackage('hybpiper', max_pin="x") }} From 9173f0ef76ce736bc4c23a96e1681a935860117d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 19 Jul 2024 18:08:06 -0400 Subject: [PATCH 0732/1514] Update comparem2 to 2.9.1 (#49430) --- recipes/comparem2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/comparem2/meta.yaml b/recipes/comparem2/meta.yaml index abe3fd587efca..b4f14db1a4721 100644 --- a/recipes/comparem2/meta.yaml +++ b/recipes/comparem2/meta.yaml @@ -1,6 +1,6 @@ {% set name = "comparem2" %} -{% set version = "2.8.2" %} -{% set sha256 = "181b341077d3e2cc86758620475dc4f79dffd9646f182dd30558b852bbffa92d" %} +{% set version = "2.9.1" %} +{% set sha256 = "3ffba08cf086c0d5b3ee821e15fa5cf91a4e418e28f7eac6a34628bfbba90023" %} package: name: {{ name }} From 7a6dfb2a05a5f3fd546eef9870afa67d9222c187 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 19 Jul 2024 18:08:32 -0400 Subject: [PATCH 0733/1514] Update straglr to 1.5.1 (#49429) --- recipes/straglr/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/straglr/meta.yaml b/recipes/straglr/meta.yaml index 572fb1c829da6..88b99b723b0dd 100644 --- a/recipes/straglr/meta.yaml +++ b/recipes/straglr/meta.yaml @@ -1,13 +1,13 @@ {% set name = "straglr" %} -{% set version = "1.5.0" %} +{% set version = "1.5.1" %} package: name: {{ name }} version: {{ version }} source: - url: https://github.com/bcgsc/straglr/archive/refs/tags/v1.5.0.tar.gz - sha256: 9daab4251a640959e3caa59e9ebfec1fbd0384c78730b4e71fd5a81d7fa23f58 + url: https://github.com/bcgsc/straglr/archive/refs/tags/v1.5.1.tar.gz + sha256: 8c65247e9329f5c0b51b83cbf595089efc1d5f4783fc7e8346c05b93e9bc8abe build: noarch: python From 3a50a0f915192db6c2941c51ef5a4192412719b5 Mon Sep 17 00:00:00 2001 From: jxu10 <142250120+jxu10@users.noreply.github.com> Date: Fri, 19 Jul 2024 15:11:11 -0700 Subject: [PATCH 0734/1514] Update pydna to 5.2.0 (#49425) --- recipes/pydna/meta.yaml | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/recipes/pydna/meta.yaml b/recipes/pydna/meta.yaml index d55993eb39537..9015c821a1756 100644 --- a/recipes/pydna/meta.yaml +++ b/recipes/pydna/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pydna" %} -{% set version = "3.1.0" %} -{% set hash = "99ed63c845e666b328f728a555ab622d42826cfa515c393d635c22be48727a7b" %} +{% set version = "5.2.0" %} +{% set hash = "24e89cc71c77c727c3681da8fe889fb65f243766db63fb17f67a8a6280fde313" %} package: name: {{ name|lower }} @@ -10,25 +10,33 @@ build: number: 0 noarch: python script: {{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv + script_env: + # Workaround for poetry-dynamic-versioning generating incorrect version due + # to missing Git metadata. + - POETRY_DYNAMIC_VERSIONING_BYPASS={{ version }} + run_exports: + - {{ pin_subpackage('pydna', max_pin='x.x') }} source: - url: https://github.com/BjornFJohansson/{{ name|lower }}/archive/{{ version }}.tar.gz + url: https://github.com/BjornFJohansson/{{ name|lower }}/archive/v{{ version }}.tar.gz sha256: {{ hash }} requirements: host: - - python >=3 + - python >=3.8 - pip - - pytest-runner + - poetry + - poetry-dynamic-versioning run: - - python >=3 - - biopython >=1.65 - - networkx >=1.8.1 - - appdirs >=1.3.0 - - prettytable >=0.7.2 - - ordered-set >=2.0.1 - - pyparsing >=2.1.10 - - requests >=2.12 + - python >=3.8 + - appdirs >=1.4.4 + - biopython >=1.80 + - networkx >=2.8.8 + - prettytable >=3.5.0 + - pyperclip >=1.8.2 + - pyfiglet >=0.8.post1 + - pyparsing >=2.4.7 + - requests >=2.26.0 test: imports: @@ -39,4 +47,4 @@ about: license: BSD-3-Clause license_family: BSD license_file: LICENSE.txt - summary: 'Representing double stranded DNA and simulating cloning, homologous recombination, Gibson assembly, Gel electrophoresis etc.' + summary: 'Representing double stranded DNA and functions for simulating cloning and homologous recombination between DNA molecules.' From b6cec9a4582eb22cd1939dbe12bf0d5209546d3e Mon Sep 17 00:00:00 2001 From: Thom Griffioen Date: Sat, 20 Jul 2024 00:13:21 +0200 Subject: [PATCH 0735/1514] Update BLAST to 2.16.0 (#49338) * Update BLAST to 2.16.0 * Reset build number to 0 * Add @ebete as recipe maintainer * Skip OSX build for now --------- Co-authored-by: Cornelius Roemer --- recipes/blast/meta.yaml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/recipes/blast/meta.yaml b/recipes/blast/meta.yaml index ac83310298c71..69232e668d399 100644 --- a/recipes/blast/meta.yaml +++ b/recipes/blast/meta.yaml @@ -1,6 +1,6 @@ {% set name = "blast" %} -{% set version = "2.15.0" %} -{% set sha256 = "6918c370524c8d44e028bf491e8f245a895e07c66c77b261ce3b38d6058216e0" %} +{% set version = "2.16.0" %} +{% set sha256 = "17c93cf009721023e5aecf5753f9c6a255d157561638b91b3ad7276fd6950c2b" %} package: name: {{ name }} @@ -25,7 +25,8 @@ source: - normbase.patch build: - number: 1 + skip: True # [osx] + number: 0 run_exports: # Now, the point releases seem to be only bugfixes at least (but this definitely was not the # case up to v2.2.31) @@ -89,7 +90,7 @@ test: - get_species_taxids.sh -h > /dev/null about: - home: http://blast.ncbi.nlm.nih.gov/Blast.cgi?PAGE_TYPE=BlastDocs + home: https://blast.ncbi.nlm.nih.gov/doc/blast-help/ license: Public Domain summary: BLAST+ is a new suite of BLAST tools that utilizes the NCBI C++ Toolkit. @@ -100,4 +101,5 @@ extra: - usegalaxy-eu:ncbi_blastx_wrapper recipe-maintainers: - christiam + - ebete - epruesse From f20dff4c1331bd49d80d3500eacad472a1212b91 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 19 Jul 2024 18:26:25 -0400 Subject: [PATCH 0736/1514] Update ymp to 0.3.1 (#49423) * Update ymp to 0.3.1 Co-authored-by: Elmar Pruesse --- recipes/ymp/meta.yaml | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/recipes/ymp/meta.yaml b/recipes/ymp/meta.yaml index 04daf28c6d37a..bbfb3ab1b6b41 100644 --- a/recipes/ymp/meta.yaml +++ b/recipes/ymp/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ymp" %} -{% set version = "0.2.1" %} +{% set version = "0.3.1" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 7bcd41dfeb7534a971d4da44f30ef0b46992799097707279080650145f71a258 + sha256: dbd88b552584f1268c8b7b68df18a94a08eca127561bf60162b8e894711814b4 build: number: 0 @@ -15,10 +15,13 @@ build: - ymp=ymp.cli:main noarch: python script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv" + run_exports: + - {{ pin_subpackage('ymp', max_pin="x.x") }} + requirements: host: - - python >=3.6 + - python >=3.10 - setuptools_scm >=3.4 - setuptools >=42 - pytest-runner @@ -31,27 +34,30 @@ requirements: - pandas >=0.20 - pip - ruamel.yaml >0.15 - - snakemake >=5.20.1,<5.21.0a0 + - snakemake >=7.32.1,<8.0a0 - tqdm >=4.21.0 - xdg - xlrd + - openpyxl - fastentrypoints run: - - python >=3.6 + - python >=3.10 - aiohttp - - click + - click >8 - click-completion - coloredlogs - drmaa - networkx >=2 - pandas >=0.20 - ruamel.yaml >0.15 - - snakemake >=5.20.1,<5.21.0a0 + - snakemake >=7.32.1,<8.0a0 - tqdm >=4.21.0 - xdg - xlrd + - openpyxl - conda + - mamba test: imports: From 042d7733edf9e6e3175bef1a542fc14b6b0b5b62 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 21 Jul 2024 03:17:31 -0400 Subject: [PATCH 0737/1514] Update wfmash to 0.17.0 (#49435) --- recipes/wfmash/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/wfmash/meta.yaml b/recipes/wfmash/meta.yaml index 79efc9cc86ab9..c973a63f23d8c 100644 --- a/recipes/wfmash/meta.yaml +++ b/recipes/wfmash/meta.yaml @@ -1,5 +1,5 @@ {% set name = "wfmash" %} -{% set version = "0.16.0" %} +{% set version = "0.17.0" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: https://github.com/waveygang/{{ name }}/releases/download/v{{ version }}/{{ name }}-v{{ version }}.tar.gz - sha256: a3e59f27553d900ec2ce5b832a548d55b9c4f1e8a034040e39f6cb02bff7860e + sha256: 9d1a9c7c2635fdd617360746d0bd2b5cdf9f775c42247ecf80a81ba585bd54d4 build: skip: True # [osx] From b346c0bb31d4ce259a3adcb95d80cbd7fef55575 Mon Sep 17 00:00:00 2001 From: Greg Boratyn Date: Sun, 21 Jul 2024 07:58:16 -0400 Subject: [PATCH 0738/1514] elastic-blast: fix reported version (#49420) --- recipes/elastic-blast/meta.yaml | 10 ++++++++-- recipes/elastic-blast/version.patch | 9 +++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 recipes/elastic-blast/version.patch diff --git a/recipes/elastic-blast/meta.yaml b/recipes/elastic-blast/meta.yaml index 174ee8948b8cf..edd911e78d3f9 100644 --- a/recipes/elastic-blast/meta.yaml +++ b/recipes/elastic-blast/meta.yaml @@ -8,9 +8,11 @@ package: source: url: https://github.com/ncbi/elastic-blast/archive/refs/tags/{{ version }}.tar.gz sha256: 1ac45f41430078de0fa89733079f5ba7147e7c97719ff6f856979b4b5661a52c + patches: + - version.patch build: - number: 0 + number: 1 noarch: python script: {{ PYTHON }} -m pip install . -vvv run_exports: @@ -29,7 +31,7 @@ requirements: - awslimitchecker - tenacity - google-cloud-sdk - - kubernetes-client ==1.18.8 + - kubernetes-client - importlib-resources ==6.1.1 - importlib-metadata - dataclasses-json @@ -39,6 +41,10 @@ test: commands: - elastic-blast --version - elastic-blast --help + - gcloud --version + - gsutil --version + - aws --version + - kubectl version --client=true about: home: https://github.com/ncbi/elastic-blast/ diff --git a/recipes/elastic-blast/version.patch b/recipes/elastic-blast/version.patch new file mode 100644 index 0000000000000..d4b678a46142f --- /dev/null +++ b/recipes/elastic-blast/version.patch @@ -0,0 +1,9 @@ +--- a/setup.cfg ++++ b/setup.cfg +@@ -50,4 +50,5 @@ data_files = + Makefile = Makefile + + [auto-version] +-type = git-pep440 ++type = fixed ++value = 1.3.0 From acc0c6a3da1a6036e84f24210fe09fdd77f6be0d Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Sun, 21 Jul 2024 05:09:38 -0700 Subject: [PATCH 0739/1514] Bump build for ntroot (#49431) --- recipes/ntroot/build.sh | 1 + recipes/ntroot/meta.yaml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/ntroot/build.sh b/recipes/ntroot/build.sh index 65498faa460dd..9c3343b59ea74 100644 --- a/recipes/ntroot/build.sh +++ b/recipes/ntroot/build.sh @@ -5,3 +5,4 @@ mkdir -p ${PREFIX}/bin cp ntroot ${PREFIX}/bin cp ntRootAncestryPredictor.pl ${PREFIX}/bin cp ntroot_run_pipeline.smk ${PREFIX}/bin +cp ntroot_cross_reference_vcf.py ${PREFIX}/bin diff --git a/recipes/ntroot/meta.yaml b/recipes/ntroot/meta.yaml index b9eb9e928f42a..82a7b533fd94e 100644 --- a/recipes/ntroot/meta.yaml +++ b/recipes/ntroot/meta.yaml @@ -10,7 +10,7 @@ source: sha256: c91ba834bc221e7883dff864aed7a2230700a515f5475b1f2d331007d9db73a8 build: - number: 0 + number: 1 noarch: generic run_exports: - {{ pin_subpackage("ntroot", max_pin="x") }} From ba6f3c884bba8d5c2e0ea7f38140ab33dbbf3137 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 21 Jul 2024 08:11:03 -0400 Subject: [PATCH 0740/1514] Update pytrf to 1.3.3 (#49432) --- recipes/pytrf/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pytrf/meta.yaml b/recipes/pytrf/meta.yaml index f4afd5195b61e..eb36fafc0aa87 100644 --- a/recipes/pytrf/meta.yaml +++ b/recipes/pytrf/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pytrf" %} -{% set version = "1.3.2" %} -{% set sha256 = "98cd1171f58dc147fa8aac89b23cd0e34eaac83e5b5b501e31723dfc318f6cc5" %} +{% set version = "1.3.3" %} +{% set sha256 = "f635dc817e0431d1f29dfda9ea2f2f901c89890443e15cd1f207975d6f84002f" %} package: name: "{{ name|lower }}" @@ -11,7 +11,7 @@ source: sha256: "{{ sha256 }}" build: - number: 1 + number: 0 script: "{{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv" run_exports: - {{ pin_subpackage("pytrf", max_pin="x.x") }} From 3347caa45fa927979c1e1bf68c24f556c4900e6b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 21 Jul 2024 08:15:56 -0400 Subject: [PATCH 0741/1514] Update mycotools to 0.31.42 (#49437) --- recipes/mycotools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index be0bff47a9d44..5e3111a790c2b 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mycotools" %} -{% set version = "0.31.41" %} +{% set version = "0.31.42" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mycotools-{{ version }}.tar.gz - sha256: 973a7aed4d9a471e18761fd8b2e6cd9bb3cec7a2ebdecf0062f8c7e98ddd1530 + sha256: 871f536c467ebaba6b4d721b2392d62866f6fc098a6e298fd3b83b906ae44a08 build: entry_points: From 80e47f62a5414c83c78a2cdc1c628b1f7774eed5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 21 Jul 2024 08:16:38 -0400 Subject: [PATCH 0742/1514] Update snakemake-storage-plugin-azure to 0.2.2 (#49439) --- recipes/snakemake-storage-plugin-azure/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-azure/meta.yaml b/recipes/snakemake-storage-plugin-azure/meta.yaml index 9c4687fa88a71..a66b6d1a88edc 100644 --- a/recipes/snakemake-storage-plugin-azure/meta.yaml +++ b/recipes/snakemake-storage-plugin-azure/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-azure" %} -{% set version = "0.2.1" %} +{% set version = "0.2.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_azure-{{ version }}.tar.gz - sha256: 0fb2ccf234a6aa7d4ec1e17b2bb2ab9bf19b0bd00f49f587722504ba01ea7423 + sha256: df1f5740005dcdbe765f3f6c1b52b657dacaa5177a7a6e981a00aa5f5f2b0be7 build: noarch: python From 2eabcdbd65f2e3fb472d7ef75033a262401121ec Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 21 Jul 2024 08:18:03 -0400 Subject: [PATCH 0743/1514] Update nf-test to 0.9.0 (#49444) --- recipes/nf-test/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/nf-test/meta.yaml b/recipes/nf-test/meta.yaml index 280a8e4979ddd..13b0e97045e44 100644 --- a/recipes/nf-test/meta.yaml +++ b/recipes/nf-test/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.8.4" %} +{% set version = "0.9.0" %} package: @@ -13,7 +13,7 @@ build: source: url: https://github.com/askimed/nf-test/releases/download/v{{version}}/nf-test-{{version}}.tar.gz - sha256: 8023bbe6e354294fba514493f423f80e75869e5daf7e51f4cb808877fdc84381 + sha256: 3e123ceba36b6e890cb12ad4e98792bf4dd2d7e55c36a549b28708df13df0dc7 requirements: host: From 5e865b4061115d5ef98ed60e4bc3462e11ec7ad8 Mon Sep 17 00:00:00 2001 From: Mariia Zelenskaia <102167492+mariia-zelenskaia@users.noreply.github.com> Date: Sun, 21 Jul 2024 14:19:04 +0200 Subject: [PATCH 0744/1514] update TransAnnot version after the paper revision (#49442) --- recipes/transannot/meta.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recipes/transannot/meta.yaml b/recipes/transannot/meta.yaml index 8db64f2fe9716..4b3e3f49ff2e1 100644 --- a/recipes/transannot/meta.yaml +++ b/recipes/transannot/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1-fa9ebab" %} -{% set sha256 = "432f31744683fa467a1ab76493818f52d3cb8f87d489c7190c255f18c03d9418" %} +{% set version = "3-7f1c8e1" %} +{% set sha256 = "713d5c008886d81da80c6d6990d1bb9d7cf53c9a98dd37aa429cb341e8d2ae36" %} package: name: transannot @@ -40,7 +40,7 @@ test: about: home: https://github.com/soedinglab/transannot - summary: "TransAnnot: fast and all-in-one transcriptome annotation pipeline" + summary: "TransAnnot: a fast transcriptome annotation pipeline" license: GPL-3.0-or-later license_family: GPL license_file: LICENSE.md @@ -50,3 +50,5 @@ extra: - biotools:transannot recipe-maintainers: - mariia-zelenskaia + additional-platforms: + - osx-arm64 From d40409f34ab29b0517da15786f4d5412d63927ae Mon Sep 17 00:00:00 2001 From: Mervin Fansler Date: Sun, 21 Jul 2024 14:21:16 +0200 Subject: [PATCH 0745/1514] Add R package `EpiTrace` as `r-epitrace` (#49412) --- recipes/r-epitrace/build.sh | 3 ++ recipes/r-epitrace/meta.yaml | 80 ++++++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 recipes/r-epitrace/build.sh create mode 100644 recipes/r-epitrace/meta.yaml diff --git a/recipes/r-epitrace/build.sh b/recipes/r-epitrace/build.sh new file mode 100644 index 0000000000000..b8d2635525637 --- /dev/null +++ b/recipes/r-epitrace/build.sh @@ -0,0 +1,3 @@ +#!/bin/bash +export DISABLE_AUTOBREW=1 +${R} CMD INSTALL --build . ${R_ARGS} diff --git a/recipes/r-epitrace/meta.yaml b/recipes/r-epitrace/meta.yaml new file mode 100644 index 0000000000000..23ae72ef2b744 --- /dev/null +++ b/recipes/r-epitrace/meta.yaml @@ -0,0 +1,80 @@ +{% set version = "0.0.1.3" %} +{% set github = "https://github.com/MagpiePKU/EpiTrace" %} +{% set commit = "300ec2137d8da651ba3829c92922841f4eef1b2f" %} + +package: + name: r-epitrace + version: "{{ version }}" + +source: + url: "{{ github }}/archive/{{ commit }}.zip" + sha256: 6d7bea517925436a363da66991fed7a160f9aa117ea8bf2a90e7f075d717dd00 + +build: + noarch: generic + number: 0 + rpaths: + - lib/R/lib/ + - lib/ + run_exports: + - {{ pin_subpackage("r-epitrace", max_pin="x.x.x") }} + +requirements: + host: + - r-base + - r-ape + - r-dplyr + - r-easylift + - r-ggplot2 + - r-ggpubr + - r-matrix + - r-matrixstats + - r-nnls + - r-rcolorbrewer + - r-seurat >=4.0 + - r-seuratobject + - r-signac >=1.5.0 + - r-stringr + - r-tidyr + - r-wgcna >=1.7 + - bioconductor-ggtree + - bioconductor-genomicranges + - bioconductor-plyranges + - bioconductor-sparsematrixstats + run: + - r-ape + - r-ape + - r-dplyr + - r-easylift + - r-ggplot2 + - r-ggpubr + - r-matrix + - r-matrixstats + - r-nnls + - r-rcolorbrewer + - r-seurat >=4.0 + - r-seuratobject + - r-signac >=1.5.0 + - r-stringr + - r-tidyr + - r-wgcna >=1.7 + - bioconductor-ggtree + - bioconductor-genomicranges + - bioconductor-plyranges + - bioconductor-sparsematrixstats + +test: + commands: + - $R -e "library(EpiTrace)" + +about: + home: https://epitrace.readthedocs.io + dev_url: {{ github }} + license: GPL-3.0-or-later + license_file: LICENSE + license_family: GPL + summary: Inference of cell age and phylogeny from single cell ATAC data. + +extra: + recipe-maintainers: + - mfansler From 529bd075fc8079a293adaaf66ff9f9d23352a43a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 21 Jul 2024 14:02:58 -0400 Subject: [PATCH 0746/1514] Update pygcap to 0.0.7 (#49445) --- recipes/pygcap/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pygcap/meta.yaml b/recipes/pygcap/meta.yaml index f5ff896aa7eef..4d08068885af2 100644 --- a/recipes/pygcap/meta.yaml +++ b/recipes/pygcap/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pygcap" %} -{% set version = "0.0.5" %} +{% set version = "0.0.7" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pygcap-{{ version }}.tar.gz - sha256: a82eb375e4daac5f8626f32dce80479bd169cec911739d8e87d031849ec4aa27 + sha256: 616681fb678d3de6100b30da972bdeec57ccfde013e72ad4bd759f9f23bf30e9 build: number: 0 From 0fced5b813fed92f42a0868cea990922d1024fd3 Mon Sep 17 00:00:00 2001 From: Carl Mathias Kobel Date: Sun, 21 Jul 2024 20:04:07 +0200 Subject: [PATCH 0747/1514] amend (#49436) --- recipes/comparem2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/comparem2/meta.yaml b/recipes/comparem2/meta.yaml index b4f14db1a4721..3c6eaf6fd7358 100644 --- a/recipes/comparem2/meta.yaml +++ b/recipes/comparem2/meta.yaml @@ -1,6 +1,6 @@ {% set name = "comparem2" %} {% set version = "2.9.1" %} -{% set sha256 = "3ffba08cf086c0d5b3ee821e15fa5cf91a4e418e28f7eac6a34628bfbba90023" %} +{% set sha256 = "d8dc87511cb213a8e25603bace700e83d91981effd90fae5d493cfc21e5f7281" %} package: name: {{ name }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 noarch: generic run_exports: - {{ pin_subpackage('comparem2', max_pin="x") }} From 13438c62595e903acc4722271556630bad3088e1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 21 Jul 2024 22:13:05 -0400 Subject: [PATCH 0748/1514] Update chronumental to 0.0.65 (#49447) --- recipes/chronumental/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/chronumental/meta.yaml b/recipes/chronumental/meta.yaml index 72c19011e38a4..430c1b3165792 100644 --- a/recipes/chronumental/meta.yaml +++ b/recipes/chronumental/meta.yaml @@ -1,5 +1,5 @@ {% set name = "chronumental" %} -{% set version = "0.0.63" %} +{% set version = "0.0.65" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/chronumental-{{ version }}.tar.gz - sha256: f008bae186592447609cdd51ad940e0474b61a6c0ce9db1b44ed317d3b02f35f + sha256: 3bfa5bca03a466c32a2393db2c978acb1abce9eb0f0edaeb00c922d64c73d50c build: noarch: python From b0bf6417a62c89adea0d151d6b71e2c2f27f65df Mon Sep 17 00:00:00 2001 From: Lucas Czech Date: Sun, 21 Jul 2024 19:14:16 -0700 Subject: [PATCH 0749/1514] Update and refine gappa meta.yaml descriptions (#49388) --- recipes/gappa/meta.yaml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/recipes/gappa/meta.yaml b/recipes/gappa/meta.yaml index 480e2fa880580..e1be51a506d49 100644 --- a/recipes/gappa/meta.yaml +++ b/recipes/gappa/meta.yaml @@ -3,7 +3,7 @@ package: version: "0.8.5" build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('gappa', max_pin='x.x') }} @@ -31,9 +31,19 @@ about: license: GPL-3.0-only license_file: LICENSE.txt summary: Genesis Applications for Phylogenetic Placement Analysis + description: | + gappa is a collection of commands for working with phylogenetic data. + Its main focus are evolutionary placements of short environmental sequences + on a reference phylogenetic tree. Such data are typically produced by tools + such as EPA-ng, RAxML-EPA or pplacer, and usually stored in jplace files. + dev_url: https://github.com/lczech/gappa + doc_url: https://github.com/lczech/gappa/wiki extra: additional-platforms: - linux-aarch64 identifiers: + - doi:10.1093/bioinformatics/btaa070 + - doi:10.3389/fbinf.2022.871393 - doi:10.1093/bioinformatics/bty767 + - doi:10.1371/journal.pone.0217050 From 4cd5261fb9ca1620f22978faf0f619059b7beb68 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 03:28:39 -0400 Subject: [PATCH 0750/1514] Update konezumiaid to 0.3.1 (#49449) --- recipes/konezumiaid/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/konezumiaid/meta.yaml b/recipes/konezumiaid/meta.yaml index 92ccaa1b0a3aa..5ead433a9586c 100644 --- a/recipes/konezumiaid/meta.yaml +++ b/recipes/konezumiaid/meta.yaml @@ -1,5 +1,5 @@ {% set name = "KOnezumiAID" %} -{% set version = "0.3.0" %} +{% set version = "0.3.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/konezumiaid-{{ version }}.tar.gz - sha256: 9070074372d1026e04016b9979ca3b5a5a216c7acea3ad333ecb955b6ceb4f36 + sha256: 78379cd1c923c5e6ae81fe0c0e84f6624b05ecca0cb87a73381431756e8a3489 build: entry_points: From ed4bf3583b98b66b12bf5eab6e6c0880c89b7155 Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Mon, 22 Jul 2024 09:30:20 +0200 Subject: [PATCH 0751/1514] Add rapidshapes (#49352) * using latest release of upstream * use recent gapc update with hopes to compile on OSX * add subrecipe for older version 4.3.10 (pinned in qiime2) which shall additionally expose upp.config * adding new recipe * new hashsum * adding rsync dependency * adding explicit g++ dependency at runtime * "patch" readlink option -m to -f * use pre-release * pre-release is using different URL * trigger action --- recipes/rapidshapes/build.sh | 7 +++++ recipes/rapidshapes/meta.yaml | 52 +++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 recipes/rapidshapes/build.sh create mode 100644 recipes/rapidshapes/meta.yaml diff --git a/recipes/rapidshapes/build.sh b/recipes/rapidshapes/build.sh new file mode 100644 index 0000000000000..641712a964c6a --- /dev/null +++ b/recipes/rapidshapes/build.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +make -j ${CPU_COUNT} PREFIX=$PREFIX CC=$CC -C Misc/Applications/RapidShapes all +make PREFIX=$PREFIX CC=$CC -C Misc/Applications/RapidShapes install-program +make PREFIX=$PREFIX CC=$CC -C Misc/Applications/lib install +chmod 755 $PREFIX/bin/RapidShapes* + diff --git a/recipes/rapidshapes/meta.yaml b/recipes/rapidshapes/meta.yaml new file mode 100644 index 0000000000000..33b9844539cdf --- /dev/null +++ b/recipes/rapidshapes/meta.yaml @@ -0,0 +1,52 @@ +{% set version = "2.3.2" %} +{% set packagename = "rapidshapes" %} +{% set sha256 = "d3e6cc8d2ecd31d4764b41fea589b98c637ff227d7ab3dcfe66f2ad3f24dece5" %} + +package: + name: {{ packagename }} + version: 2.1.0 + +source: + sha256: {{ sha256 }} + # the repository "fold-grammars" contains sources for several programs, i.e. pKiss, RNAshapes, ... + # thus, the version number does not correspond to the {{ packagename }} version number + #url: https://github.com/jlab/fold-grammars/archive/{{ version }}.tar.gz + url: https://github.com/jlab/fold-grammars/archive/refs/tags/{{ version }}.tar.gz + +build: + number: 0 + run_exports: + - {{ pin_subpackage('rapidshapes', max_pin="x") }} + +requirements: + build: + - make + - {{ compiler('cxx') }} + - libcxx <17 # [osx] + - rsync + host: + - perl + - bellmans-gapc >=2024.01.12 + - libcxx <17 # [osx] + - rsync + run: + - perl + - bellmans-gapc >=2024.01.12 + - libcxx <17 # [osx] + - gxx_linux-64 # [linux] + - clangxx_osx-64 # [osx] + +test: + commands: + - RapidShapes ccaaagg + +about: + home: https://bibiserv.cebitec.uni-bielefeld.de/{{ packagename }} + license: 'GPL-3.0-or-later' + license_file: LICENSE + summary: 'RapidShapes computes a thermodynamic matcher (TDM), using a runtime heuristic for probabilistic shape analysis.' + +extra: + identifiers: + - doi:10.1093/bioinformatics/btq014 + - doi:10.1093/bioinformatics/btu649 From ac94616dcb91cd733265afa49aae2ebc4f80017f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 04:14:13 -0400 Subject: [PATCH 0752/1514] Update pygcap to 1.0.1 (#49448) * Update pygcap to 1.0.0 * Update pygcap to 1.0.1 * Change max_pin to "x" https://github.com/bioconda/bioconda-recipes/pull/49448 bumped the version from 0.0.7 to 1.0.1 Signed-off-by: Martin Tzvetanov Grigorov (cherry picked from commit 977ce738a030b597eadfc2fc18b3839e19bd3b3b) --------- Co-authored-by: Martin Tzvetanov Grigorov --- recipes/pygcap/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pygcap/meta.yaml b/recipes/pygcap/meta.yaml index 4d08068885af2..86de461bfaea5 100644 --- a/recipes/pygcap/meta.yaml +++ b/recipes/pygcap/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pygcap" %} -{% set version = "0.0.7" %} +{% set version = "1.0.1" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pygcap-{{ version }}.tar.gz - sha256: 616681fb678d3de6100b30da972bdeec57ccfde013e72ad4bd759f9f23bf30e9 + sha256: 29e8817d200539bb67e2ddcaef15f6cec9c726e42c078767e7840922e94fdb76 build: number: 0 @@ -16,7 +16,7 @@ build: entry_points: - pygcap=pygcap.cli:main run_exports: - - {{ pin_subpackage('pygcap', max_pin="x.x") }} + - {{ pin_subpackage('pygcap', max_pin="x") }} requirements: build: From 39da4e0fc4f3d9c6b483b5aed40c058586b415c2 Mon Sep 17 00:00:00 2001 From: Abhilesh Dhawanjewar <2447878+abhilesh@users.noreply.github.com> Date: Mon, 22 Jul 2024 09:37:01 +0100 Subject: [PATCH 0753/1514] Add recipe for Poolsnp (#49156) * Add PoolSNP recipe v1.0.0 * Add run_exports * Fix linting * Include test directory * Specify Testdata destination * Fix path specifications * Fix path specification in test.sh * Potential tests fix * Add noarch specification * Adding .py scripts to bin/ * Test fixes * Add noarch specification * Streamline tests * Alter test command * Separate out tests * Add release tarball --- recipes/poolsnp/build.sh | 33 ++++++++++++++++++++++++++++++ recipes/poolsnp/meta.yaml | 40 +++++++++++++++++++++++++++++++++++++ recipes/poolsnp/run_test.sh | 22 ++++++++++++++++++++ 3 files changed, 95 insertions(+) create mode 100644 recipes/poolsnp/build.sh create mode 100644 recipes/poolsnp/meta.yaml create mode 100644 recipes/poolsnp/run_test.sh diff --git a/recipes/poolsnp/build.sh b/recipes/poolsnp/build.sh new file mode 100644 index 0000000000000..1b0171d1264e6 --- /dev/null +++ b/recipes/poolsnp/build.sh @@ -0,0 +1,33 @@ +#! /bin/bash + +set -ex + +BASE_DIR=$(dirname "$0") +SCRIPTS_DIR="${BASE_DIR}/scripts" +TEST_DATA_DIR="${BASE_DIR}/TestData" + +if [ ! -d "${SCRIPTS_DIR}" ]; then + echo "The scripts directory is missing. It should be placed in the same directory as the PoolSNP.sh script." + exit 1 +fi + +if [ ! -d "${TEST_DATA_DIR}" ]; then + echo "The TestData directory is missing. It should be placed in the same directory as the PoolSNP.sh script." + exit 1 +fi + +mkdir -p ${PREFIX}/bin +mkdir -p ${PREFIX}/bin/scripts +mkdir -p ${PREFIX}/share/PoolSNP + +cp PoolSNP.sh ${PREFIX}/bin +chmod +x ${PREFIX}/bin/PoolSNP.sh + +for script in $SCRIPTS_DIR/*; do + cp $script ${PREFIX}/bin/$(basename $script) + cp $script ${PREFIX}/bin/scripts/ + chmod +x ${PREFIX}/bin/$(basename $script) + chmod +x ${PREFIX}/bin/scripts/$(basename $script) +done + +cp -r ${TEST_DATA_DIR} ${PREFIX}/share/PoolSNP/TestData \ No newline at end of file diff --git a/recipes/poolsnp/meta.yaml b/recipes/poolsnp/meta.yaml new file mode 100644 index 0000000000000..5f92f96931557 --- /dev/null +++ b/recipes/poolsnp/meta.yaml @@ -0,0 +1,40 @@ +{% set name = "poolsnp" %} +{% set version = "1.0.0" %} +{% set github = "https://github.com/capoony/PoolSNP" %} + +package: + name: "{{ name }}" + version: "{{ version }}" + +source: + url: "{{ github }}/archive/refs/tags/v.{{ version }}.tar.gz" + sha256: a73c61c7ef49be9bd1212ea8049fe617296b0a82b80e0338e2b78dc55105438f + +requirements: + host: + - python + - parallel + run: + - python + - parallel + +build: + number: 0 + noarch: generic + run_exports: + - {{ pin_subpackage('poolsnp', max_pin='x.x') }} + +test: + source_files: + - TestData/* + - scripts/* + +about: + summary: PoolSNP is a heuristic SNP caller, which uses an MPILEUP file and a reference genome in FASTA format as inputs. + license: Apache-2.0 + license_file: LICENSE + home: https://github.com/capoony/PoolSNP + +extra: + recipe-maintainers: + - abhilesh \ No newline at end of file diff --git a/recipes/poolsnp/run_test.sh b/recipes/poolsnp/run_test.sh new file mode 100644 index 0000000000000..60c03dc8eaf08 --- /dev/null +++ b/recipes/poolsnp/run_test.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +# Ensure the script is executable +test -x ${PREFIX}/bin/PoolSNP.sh + +# Run PoolSNP.sh with a minimal set of parameters to ensure it executes +bash ${PREFIX}/bin/PoolSNP.sh \ + mpileup="${PREFIX}/share/PoolSNP/TestData/test.mpileup" \ + reference="${PREFIX}/share/PoolSNP/TestData/test.fa" \ + names=Sample1,Sample2 \ + max-cov=0.7 \ + min-cov=4 \ + min-count=4 \ + min-freq=0.01 \ + miss-frac=0.5 \ + jobs=4 \ + badsites=1 \ + allsites=1 \ + output=${PREFIX}/share/PoolSNP/TestResult/test + +# Optionally, check the output file to ensure it was created +test -f ${PREFIX}/share/PoolSNP/TestResult/test.vcf.gz \ No newline at end of file From 7201cf94acd437d099e7490b5a4107ed222de174 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 06:35:50 -0400 Subject: [PATCH 0754/1514] Update nohuman to 0.1.1 (#49450) --- recipes/nohuman/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/nohuman/meta.yaml b/recipes/nohuman/meta.yaml index 5256c6bbd5606..f084e962a765c 100644 --- a/recipes/nohuman/meta.yaml +++ b/recipes/nohuman/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.1.0" %} +{% set version = "0.1.1" %} {% set name = "nohuman" %} package: @@ -7,7 +7,7 @@ package: source: url: https://github.com/mbhall88/{{ name }}/archive/{{ version }}.tar.gz - sha256: 6133ece500c543303f2ba3819b4f8d5d4f04778b04d942c5a9bd840a4ce6e41a + sha256: 73a79909e487e0669e1604407024c8f1db1a3a0adf2fb3d76d80987823d85fd2 build: number: 0 From 5932a68c4055c99cb6a9d194a47ff88b31666779 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 06:49:04 -0400 Subject: [PATCH 0755/1514] Update beacon2-import to 2.2.1 (#49458) --- recipes/beacon2-import/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/beacon2-import/meta.yaml b/recipes/beacon2-import/meta.yaml index 21173f1c679c8..30562965cc5d4 100644 --- a/recipes/beacon2-import/meta.yaml +++ b/recipes/beacon2-import/meta.yaml @@ -1,5 +1,5 @@ {% set name = "beacon2-import" %} -{% set version = "2.1.0" %} +{% set version = "2.2.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/beacon2-import-{{ version }}.tar.gz - sha256: 788fd69d03f5133cd30a97509904686469f4abfb14072c895b37569708348c39 + sha256: 1c8e26beaed158563dbf46f86aec89be385fa79c40f05e081edcb5a91c954290 build: entry_points: From 4e961ddac1a1c1085ecf7180f283073c1547057f Mon Sep 17 00:00:00 2001 From: Mervin Fansler Date: Mon, 22 Jul 2024 12:57:07 +0200 Subject: [PATCH 0756/1514] add R package `gchromVAR` as `r-gchromvar` (#49453) * add r-gchromvar * Create build.sh * url * fix library name --- recipes/r-gchromvar/build.sh | 3 ++ recipes/r-gchromvar/meta.yaml | 56 +++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 recipes/r-gchromvar/build.sh create mode 100644 recipes/r-gchromvar/meta.yaml diff --git a/recipes/r-gchromvar/build.sh b/recipes/r-gchromvar/build.sh new file mode 100644 index 0000000000000..b8d2635525637 --- /dev/null +++ b/recipes/r-gchromvar/build.sh @@ -0,0 +1,3 @@ +#!/bin/bash +export DISABLE_AUTOBREW=1 +${R} CMD INSTALL --build . ${R_ARGS} diff --git a/recipes/r-gchromvar/meta.yaml b/recipes/r-gchromvar/meta.yaml new file mode 100644 index 0000000000000..5d3b2466a581a --- /dev/null +++ b/recipes/r-gchromvar/meta.yaml @@ -0,0 +1,56 @@ +{% set version = "0.3.2" %} +{% set github = "https://github.com/caleblareau/gchromVAR" %} +{% set commit = "e4f33cad4115160ee4bdf16fd625c2fcd0bf3910" %} + +package: + name: r-gchromvar + version: "{{ version }}" + +source: + url: "{{ github }}/archive/{{ commit }}.zip" + sha256: dcb7b686c34155febbf20c17e28aceee7c5301efb817999b3366693da8e75b47 + +build: + noarch: generic + number: 0 + rpaths: + - lib/R/lib/ + - lib/ + run_exports: + - {{ pin_subpackage("r-gchromvar", max_pin="x.x") }} + +requirements: + host: + - r-base + - r-matrix + - bioconductor-biocparallel + - bioconductor-chromvar + - bioconductor-genomicranges + - bioconductor-s4vectors + - bioconductor-summarizedexperiment + run: + - r-base + - r-matrix + - bioconductor-biocparallel + - bioconductor-chromvar + - bioconductor-genomicranges + - bioconductor-s4vectors + - bioconductor-summarizedexperiment + +test: + commands: + - $R -e "library(gchromVAR)" + +about: + home: https://caleblareau.github.io/gchromVAR/ + dev_url: {{ github }} + license: MIT + license_file: + - LICENSE + - {{ environ["PREFIX"] }}/lib/R/share/licenses/MIT + license_family: MIT + summary: R package for computing cell-type specific GWAS enrichments from Finemapping data and quantitative epigenomic data. + +extra: + recipe-maintainers: + - mfansler From d4f4277567f0860cee20a4e2b651f111db019777 Mon Sep 17 00:00:00 2001 From: Felix Lenner <52530259+fellen31@users.noreply.github.com> Date: Mon, 22 Jul 2024 12:58:25 +0200 Subject: [PATCH 0757/1514] add splitubam (#49454) --- recipes/splitubam/build.sh | 9 ++++++++ recipes/splitubam/meta.yaml | 41 +++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 recipes/splitubam/build.sh create mode 100644 recipes/splitubam/meta.yaml diff --git a/recipes/splitubam/build.sh b/recipes/splitubam/build.sh new file mode 100644 index 0000000000000..932803bad05f5 --- /dev/null +++ b/recipes/splitubam/build.sh @@ -0,0 +1,9 @@ +#!/bin/bash -euo +# Add workaround for SSH-based Git connections from Rust/cargo. See https://github.com/rust-lang/cargo/issues/2078 for details. +# We set CARGO_HOME because we don't pass on HOME to conda-build, thus rendering the default "${HOME}/.cargo" defunct. +export CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_HOME="$(pwd)/.cargo" + +export BINDGEN_EXTRA_CLANG_ARGS="${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" + +# build statically linked binary with Rust +RUST_BACKTRACE=1 cargo install --verbose --path . --root $PREFIX diff --git a/recipes/splitubam/meta.yaml b/recipes/splitubam/meta.yaml new file mode 100644 index 0000000000000..e99a9c167f98a --- /dev/null +++ b/recipes/splitubam/meta.yaml @@ -0,0 +1,41 @@ +{% set name = "splitubam" %} +{% set version = "0.1.1" %} + +package: + name: {{ name }} + version: {{ version }} + +build: + number: 0 + run_exports: + - {{ pin_subpackage('splitubam', max_pin="x.x") }} + +source: + url: https://github.com/fellen31/splitubam/archive/refs/tags/{{ version }}.tar.gz + sha256: 3dceb04531f20ad27bf164e0f1c1772b1a31bcc52829c8d00a4b5545a2bce9bd + +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('rust') }} + - clangdev + - make + - pkg-config + host: + - zlib + +test: + commands: + - splitubam --help + +about: + home: "https://github.com/fellen31/splitubam" + license: MIT + license_family: MIT + license_file: LICENSE + summary: "Split one ubam into multiple, per line, fast" + dev_url: "https://github.com/fellen31/splitubam" + +additional-platforms: + - linux-aarch64 + - osx-arm64 From 8dc115c25011b8156d40dfd82c3ad01f3f228dfa Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 22 Jul 2024 16:10:06 +0300 Subject: [PATCH 0758/1514] liftover: add aarch64/arm64 builds (#49451) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/liftover/meta.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/liftover/meta.yaml b/recipes/liftover/meta.yaml index b28259226f6ce..2a39c5f0cbf80 100644 --- a/recipes/liftover/meta.yaml +++ b/recipes/liftover/meta.yaml @@ -11,8 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 - skip: True # [py < 38] + number: 1 script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv run_exports: - {{ pin_subpackage('liftover', max_pin="x") }} @@ -43,5 +42,8 @@ about: dev_url: 'https://pypi.org/project/liftover/' extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - mencian From 2bcfa07fc1583e04aaf535ef271e101dac18dc24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20H=2E=20Franceschini-Santos?= Date: Mon, 22 Jul 2024 15:21:24 +0200 Subject: [PATCH 0759/1514] Update parm to v0.0.5 (#49461) * Update parm to v0.0.4 * update parm to v0.0.5 --------- Co-authored-by: vhfsantos --- recipes/parm/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/parm/meta.yaml b/recipes/parm/meta.yaml index 7bbca71239c4e..cc9d3f2ef73a6 100644 --- a/recipes/parm/meta.yaml +++ b/recipes/parm/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.0.4" %} -{% set sha256 = "d816519a21c3d26dd35c659ec25eccf0b48cae50fec80f705e0bd1a36c04361e" %} +{% set version = "0.0.5" %} +{% set sha256 = "bdb609e7266b0d509ace8b6fd0a2405f6ba8cf68c3b44428ae83b672414e0c2a" %} package: name: parm From 10d39a0a9747f6de9b4fd0862522cea4d36c565b Mon Sep 17 00:00:00 2001 From: Michael Steinbaugh Date: Mon, 22 Jul 2024 09:24:37 -0400 Subject: [PATCH 0760/1514] Update kallisto to v0.51.0 (#49455) * Bump to v0.51.0 * Attempt to add build support for Apple Silicon * Reset build number * Make it explicit that we want to use Conda's m4 installation Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov --- recipes/kallisto/build.sh | 1 + recipes/kallisto/meta.yaml | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/recipes/kallisto/build.sh b/recipes/kallisto/build.sh index b797c382d4071..99c91effdd6c4 100644 --- a/recipes/kallisto/build.sh +++ b/recipes/kallisto/build.sh @@ -1,6 +1,7 @@ #!/bin/bash cd ext/htslib || exit 1 +export M4=${BUILD_PREFIX}/bin/m4 autoreconf --force --install --verbose ./configure cd ../.. || exit 1 diff --git a/recipes/kallisto/meta.yaml b/recipes/kallisto/meta.yaml index 3ad6e31fead1b..489c0d5c2a274 100644 --- a/recipes/kallisto/meta.yaml +++ b/recipes/kallisto/meta.yaml @@ -1,15 +1,15 @@ -{% set version = "0.50.1" %} +{% set version = "0.51.0" %} package: name: kallisto version: {{ version }} source: - url: https://github.com/pachterlab/kallisto/archive/v{{ version }}.tar.gz - sha256: 030752bab3b0e33cd3f23f6d8feddd74194e5513532ffbf23519e84db2a86d34 + url: https://github.com/pachterlab/kallisto/archive/V{{ version }}.tar.gz + sha256: efeb0191c1a6a0d6de69111fb66f4bda51ff31fb40c513280f072bd44556f80d build: - number: 2 + number: 0 run_exports: - {{ pin_subpackage('kallisto', max_pin="x.x") }} @@ -53,3 +53,4 @@ extra: - missing_tests additional-platforms: - linux-aarch64 + - osx-arm64 From 47e8862cb87a8263de332d9e4061d4b1233f249a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 11:37:24 -0400 Subject: [PATCH 0761/1514] Update pygcap to 1.1.6 (#49466) --- recipes/pygcap/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pygcap/meta.yaml b/recipes/pygcap/meta.yaml index 86de461bfaea5..6afd9f62cf3d7 100644 --- a/recipes/pygcap/meta.yaml +++ b/recipes/pygcap/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pygcap" %} -{% set version = "1.0.1" %} +{% set version = "1.1.6" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pygcap-{{ version }}.tar.gz - sha256: 29e8817d200539bb67e2ddcaef15f6cec9c726e42c078767e7840922e94fdb76 + sha256: 4a98ebe034da7e4440cd6874dc581a76a95e10ef91dfd3339c914bed780878af build: number: 0 From cf1009f0a13a0380b5b5eb61199ab4850a56afae Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 11:37:34 -0400 Subject: [PATCH 0762/1514] Update metabolights-utils to 1.1.5 (#49465) * Update metabolights-utils to 1.1.4 * Update metabolights-utils to 1.1.5 --- recipes/metabolights-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/metabolights-utils/meta.yaml b/recipes/metabolights-utils/meta.yaml index c2ed7fc4b6ca6..eb899c33eb3da 100644 --- a/recipes/metabolights-utils/meta.yaml +++ b/recipes/metabolights-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "metabolights-utils" %} -{% set version = "1.1.3" %} +{% set version = "1.1.5" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/metabolights_utils-{{ version }}.tar.gz - sha256: 77a18d9f69e61f6fe607b7497f9b627b56a773a1d00575776f01f0ae3f901eb9 + sha256: eafde551191dac729435067b37acefbd9c2b921f661a4f8253e6a618413a2c27 build: entry_points: From 1906c2b3a5cf39113733edc64d7c0ff8f2fdf86e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 11:37:55 -0400 Subject: [PATCH 0763/1514] Update harpy to 1.2.3 (#49463) --- recipes/harpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index 07613277f35ca..5da755925429d 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.2.2" %} -{% set sha256 = "1d02296332986cc779397f9e6685e25b3f592873962c9d0c8ea707a7b51303b3" %} +{% set version = "1.2.3" %} +{% set sha256 = "286ac2097d6113c7f683490b98e2c7f7b285a32271ef96046a6b18752b6a6025" %} package: name: harpy From 980ee315b9896855161f1a975a77045062a94529 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 11:51:32 -0400 Subject: [PATCH 0764/1514] Update obonet to 1.1.0 (#49434) * Update obonet to 1.1.0 * add run_exports --------- Co-authored-by: mencian --- recipes/obonet/meta.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/recipes/obonet/meta.yaml b/recipes/obonet/meta.yaml index 36d4c179edb60..89ec46a51d353 100644 --- a/recipes/obonet/meta.yaml +++ b/recipes/obonet/meta.yaml @@ -1,5 +1,5 @@ {% set name = "obonet" %} -{% set version = "1.0.0" %} +{% set version = "1.1.0" %} package: name: "{{ name|lower }}" @@ -7,12 +7,14 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: e96a69e41210b01bab2d9613b287899cd8aa61b6a32e5a2792041f76d4bf2a28 + sha256: abf5d7bc5d30f4e1548dbdd100e63df7343c9a15f2f1ec839d5142c63b8a150d build: number: 0 noarch: python - script: "{{ PYTHON }} -m pip install . -vv" + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" + run_exports: + - {{ pin_subpackage('obonet', max_pin="x") }} requirements: host: @@ -29,6 +31,7 @@ test: about: home: "https://github.com/dhimmel/obonet" license: BSD-2-Clause-Patent + license_family: BSD license_file: LICENSE.md summary: "Parse OBO formatted ontologies into networkx" doc_url: "https://github.com/dhimmel/obonet/README.md" From f353fa7081af14006db599f7131ad9c5b442209a Mon Sep 17 00:00:00 2001 From: Robbe Devreese <93122887+rodvrees@users.noreply.github.com> Date: Mon, 22 Jul 2024 18:26:54 +0200 Subject: [PATCH 0765/1514] Add im2deep (#45558) * im2deep * add hash * fix dependency names * remove LICENSE * minor changes to retrigger CI * retrigger * im2deep * add hash * fix dependency names * remove LICENSE * minor changes to retrigger CI * retrigger * small change to retrigger --------- Co-authored-by: mencian Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/im2deep/meta.yaml | 52 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 recipes/im2deep/meta.yaml diff --git a/recipes/im2deep/meta.yaml b/recipes/im2deep/meta.yaml new file mode 100644 index 0000000000000..643715664c695 --- /dev/null +++ b/recipes/im2deep/meta.yaml @@ -0,0 +1,52 @@ +{% set name = "im2deep" %} +{% set version = "0.1.2" %} +{% set sha256 = "9024f46428f619f3b9f2f93f81060749331e7daaee683e35f2067df9c4ddd074" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/im2deep-{{ version }}.tar.gz + sha256: {{ sha256 }} + +build: + + number: 0 + entry_points: + - im2deep=im2deep.__main__:main + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" + noarch: python + run_exports: + - {{ pin_subpackage('im2deep', max_pin="x.x") }} + +requirements: + host: + - pip + - python >=3.8 + run: + - python >=3.8 + - click + - deeplc + - deeplcretrainer + - psm-utils + - pandas + - numpy + - tensorflow >=2.2,<2.13.0 + +test: + imports: + - im2deep + +about: + home: https://github.com/compomics/im2deep + license: Apache-2.0 + license_file: LICENSE + license_family: APACHE + summary: "Framework for prediction of collisional cross-section of peptides." + dev_url: https://github.com/compomics/im2deep + +extra: + recipe-maintainers: + - compomics + From 72eca6ccc8c78e7e51f6a95121bca44b969eac74 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 12:32:22 -0400 Subject: [PATCH 0766/1514] Update fraposa-pgsc to 1.0.0 (#49469) --- recipes/fraposa-pgsc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/fraposa-pgsc/meta.yaml b/recipes/fraposa-pgsc/meta.yaml index f70b5b8a05465..5babab25225b0 100644 --- a/recipes/fraposa-pgsc/meta.yaml +++ b/recipes/fraposa-pgsc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "fraposa-pgsc" %} -{% set version = "0.1.1" %} +{% set version = "1.0.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/fraposa_pgsc-{{ version }}.tar.gz - sha256: 51292cc691422edb54264b3820e93041ae7bbad5f18ee20e7e478063ae0b9424 + sha256: a21ce6c8d90752f23d3694dbbd69060a7dabaeb6ac29d0ecc27c0435b7fce0a7 build: entry_points: From ef76cf122bcb298ce954f7c4f886287037358999 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 14:51:28 -0400 Subject: [PATCH 0767/1514] Update virusrecom to 1.3.1 (#49471) --- recipes/virusrecom/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/virusrecom/meta.yaml b/recipes/virusrecom/meta.yaml index a0f638776f348..6bbb348c19d1a 100644 --- a/recipes/virusrecom/meta.yaml +++ b/recipes/virusrecom/meta.yaml @@ -1,5 +1,5 @@ {% set name = "virusrecom" %} -{% set version = "1.2.1" %} +{% set version = "1.3.1" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 969e4af84eee30626319b562dbe085ccfdf81c5aa0bb8ff2874b4669f77e70b5 + sha256: cc12a3b94602864165530cbf36f64d0054e072a8ff61b445be237bac445e24cc build: number: 0 From dcc186c91f2c3365b3cb35136181790aece07570 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 14:51:45 -0400 Subject: [PATCH 0768/1514] Update im2deep to 0.1.7 (#49470) --- recipes/im2deep/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/im2deep/meta.yaml b/recipes/im2deep/meta.yaml index 643715664c695..0c2453e8e7fe4 100644 --- a/recipes/im2deep/meta.yaml +++ b/recipes/im2deep/meta.yaml @@ -1,6 +1,6 @@ {% set name = "im2deep" %} -{% set version = "0.1.2" %} -{% set sha256 = "9024f46428f619f3b9f2f93f81060749331e7daaee683e35f2067df9c4ddd074" %} +{% set version = "0.1.7" %} +{% set sha256 = "5d5e255e551c2a9131c1a94b76cdbbb5064cc9a76bf8217cb71cc5909bd4a97c" %} package: name: {{ name|lower }} From d6905d2d5dff39923bf02c69820fbdd1e110ecf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Plaza=20O=C3=B1ate?= <4588656+fplazaonate@users.noreply.github.com> Date: Mon, 22 Jul 2024 22:16:42 +0200 Subject: [PATCH 0769/1514] Install dna_jellyfish module (#49464) --- recipes/kmer-jellyfish/build.sh | 2 ++ recipes/kmer-jellyfish/meta.yaml | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/recipes/kmer-jellyfish/build.sh b/recipes/kmer-jellyfish/build.sh index 73d6ed59c87e7..d80b1f2cbe9b7 100644 --- a/recipes/kmer-jellyfish/build.sh +++ b/recipes/kmer-jellyfish/build.sh @@ -7,3 +7,5 @@ make -j ${CPU_COUNT} make install make check -j ${CPU_COUNT} +cd swig/python +pip install . --prefix=$PREFIX diff --git a/recipes/kmer-jellyfish/meta.yaml b/recipes/kmer-jellyfish/meta.yaml index 390387b20c872..3c7f76dafe597 100644 --- a/recipes/kmer-jellyfish/meta.yaml +++ b/recipes/kmer-jellyfish/meta.yaml @@ -10,7 +10,7 @@ source: sha256: ee032b57257948ca0f0610883099267572c91a635eecbd88ae5d8974c2430fcd build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage("kmer-jellyfish", max_pin="x") }} @@ -18,10 +18,16 @@ requirements: build: - {{ compiler('cxx') }} - make + host: + - python >=3.8 + run: + - python >=3.8 test: commands: - jellyfish --version 2>&1 > /dev/null + imports: + - dna_jellyfish about: home: "https://genome.umd.edu/jellyfish.html" From f5ea0405654ea6ee202b3a88730baa24331fd830 Mon Sep 17 00:00:00 2001 From: Mervin Fansler Date: Mon, 22 Jul 2024 22:20:31 +0200 Subject: [PATCH 0770/1514] Adds R package `SCAVENGE` as `r-scavenge` (#49459) --- recipes/r-scavenge/build.sh | 3 ++ recipes/r-scavenge/meta.yaml | 57 ++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 recipes/r-scavenge/build.sh create mode 100644 recipes/r-scavenge/meta.yaml diff --git a/recipes/r-scavenge/build.sh b/recipes/r-scavenge/build.sh new file mode 100644 index 0000000000000..b8d2635525637 --- /dev/null +++ b/recipes/r-scavenge/build.sh @@ -0,0 +1,3 @@ +#!/bin/bash +export DISABLE_AUTOBREW=1 +${R} CMD INSTALL --build . ${R_ARGS} diff --git a/recipes/r-scavenge/meta.yaml b/recipes/r-scavenge/meta.yaml new file mode 100644 index 0000000000000..ae09624aa011a --- /dev/null +++ b/recipes/r-scavenge/meta.yaml @@ -0,0 +1,57 @@ +{% set version = "1.0.2" %} +{% set github = "https://github.com/sankaranlab/SCAVENGE" %} +{% set commit = "8ee8b173d965009a696b2a590d5b17b28b7cf851" %} + +package: + name: r-scavenge + version: "{{ version }}" + +source: + url: "{{ github }}/archive/{{ commit }}.zip" + sha256: b3b57a259f54582be219b6cea90c54016e05e0b5bae07ce964f308786e9a53b7 + +build: + noarch: generic + number: 0 + rpaths: + - lib/R/lib/ + - lib/ + run_exports: + - {{ pin_subpackage("r-scavenge", max_pin="x.x") }} + +requirements: + host: + - r-base + - r-gchromvar + - r-igraph + - r-irlba + - r-matrix + - r-rann + - bioconductor-summarizedexperiment + run: + - r-base + - r-gchromvar + - r-igraph + - r-irlba + - r-matrix + - r-rann + - bioconductor-summarizedexperiment + +test: + commands: + - $R -e "library(SCAVENGE)" + +about: + home: {{ github }} + dev_url: {{ github }} + license: GPL-2.0-or-later + license_file: + - LICENSE + - {{ environ["PREFIX"] }}/lib/R/share/licenses/GPL-2 + - {{ environ["PREFIX"] }}/lib/R/share/licenses/GPL-3 + license_family: GPL + summary: SCAVENGE (Single Cell Analysis of Variant Enrichment through Network propagation of GEnomic data) optimizes the inference of functional and genetic associations to specific cells at single-cell resolution. + +extra: + recipe-maintainers: + - mfansler From 6734c40ef7abc145f31937234d01a35d75eb82c1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 17:15:54 -0400 Subject: [PATCH 0771/1514] Update bracken to 3.0 (#49467) * Update bracken to 3.0 * clean up recipe * remove osx patch * revert back to skipping OSX --------- Co-authored-by: mencian --- recipes/bracken/build.sh | 19 ++++++++++--------- recipes/bracken/meta.yaml | 22 +++++++++++++--------- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/recipes/bracken/build.sh b/recipes/bracken/build.sh index 1bc089cb3021d..7ea7675b8ec7f 100644 --- a/recipes/bracken/build.sh +++ b/recipes/bracken/build.sh @@ -3,14 +3,15 @@ mkdir -p "${PREFIX}"/bin/src # inject compilers -sed -i.bak "s#g++#${CXX} -I${BUILD_PREFIX}/include#" src/Makefile +sed -i.bak "s#g++#${CXX} -I${PREFIX}/include#" src/Makefile +rm src/*.bak sh install_bracken.sh -cp bracken "${PREFIX}"/bin -cp bracken-build "${PREFIX}"/bin -cp src/est_abundance.py "${PREFIX}"/bin/src && chmod +x "${PREFIX}"/bin/src/est_abundance.py -ln -s "${PREFIX}"/bin/src/est_abundance.py "${PREFIX}"/bin/est_abundance.py -cp src/generate_kmer_distribution.py "${PREFIX}"/bin/src && chmod +x "${PREFIX}"/bin/src/generate_kmer_distribution.py -ln -s "${PREFIX}"/bin/src/generate_kmer_distribution.py "${PREFIX}"/bin/generate_kmer_distribution.py -cp src/kmer2read_distr "${PREFIX}"/bin -cp analysis_scripts/combine_bracken_outputs.py "${PREFIX}"/bin && chmod +x "${PREFIX}"/bin/combine_bracken_outputs.py +cp -rf bracken "${PREFIX}"/bin +cp -rf bracken-build "${PREFIX}"/bin +cp -rf src/est_abundance.py "${PREFIX}"/bin/src && chmod +x "${PREFIX}"/bin/src/est_abundance.py +ln -sf "${PREFIX}"/bin/src/est_abundance.py "${PREFIX}"/bin/est_abundance.py +cp -rf src/generate_kmer_distribution.py "${PREFIX}"/bin/src && chmod +x "${PREFIX}"/bin/src/generate_kmer_distribution.py +ln -sf "${PREFIX}"/bin/src/generate_kmer_distribution.py "${PREFIX}"/bin/generate_kmer_distribution.py +cp -rf src/kmer2read_distr "${PREFIX}"/bin +cp -rf analysis_scripts/combine_bracken_outputs.py "${PREFIX}"/bin && chmod +x "${PREFIX}"/bin/combine_bracken_outputs.py diff --git a/recipes/bracken/meta.yaml b/recipes/bracken/meta.yaml index aa8518a741cfe..b684896187a89 100644 --- a/recipes/bracken/meta.yaml +++ b/recipes/bracken/meta.yaml @@ -1,31 +1,31 @@ -{% set version = "2.9" %} -{% set sha256 = "b8fd43fc396a2184d9351fb4a459f95ae9bb5865b195a18e22436f643044c788" %} +{% set name = "bracken" %} +{% set version = "3.0" %} +{% set sha256 = "1d437fd8df1a8c5c03d908a7026a41cd486f5ce771e288be7aadd93542da7e44" %} package: - name: bracken + name: {{ name }} version: {{ version }} source: url: https://github.com/jenniferlu717/Bracken/archive/v{{ version }}.tar.gz sha256: {{ sha256 }} patches: - - osx.patch # [osx] + #- osx.patch # [osx] - py3.patch build: + number: 0 skip: True # [osx] - number: 1 run_exports: - {{ pin_subpackage('bracken', max_pin="x") }} requirements: build: - {{ compiler('cxx') }} - - llvm-openmp # [osx] - - libgomp # [linux] - make host: - - python + - llvm-openmp # [osx] + - libgomp # [linux] run: - python - kraken2 @@ -41,11 +41,15 @@ test: about: home: https://github.com/jenniferlu717/Bracken - license: GPL-3.0 + license: GPL-3.0-or-later + license_family: GPL3 license_file: LICENSE summary: 'Bracken (Bayesian Reestimation of Abundance with KrakEN) is a highly accurate statistical method that computes the abundance of species in DNA sequences from a metagenomics sample.' + dev_url: https://github.com/jenniferlu717/Bracken + doc_url: https://github.com/jenniferlu717/Bracken/blob/v{{ version }}/README.md extra: identifiers: - biotools:Bracken + - usegalaxy-eu:est_abundance - doi:10.7717/peerj-cs.104 From f7742f7330b1f32f264243bb1aa91511cf3e6095 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 22 Jul 2024 16:59:06 -0500 Subject: [PATCH 0772/1514] Add recipe for r-redeemR v1.0.0 (#49479) --- recipes/r-redeemr/meta.yaml | 94 +++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 recipes/r-redeemr/meta.yaml diff --git a/recipes/r-redeemr/meta.yaml b/recipes/r-redeemr/meta.yaml new file mode 100644 index 0000000000000..d9ac70e68cddc --- /dev/null +++ b/recipes/r-redeemr/meta.yaml @@ -0,0 +1,94 @@ +{% set name = "r-redeemr" %} +{% set version = '1.0.0' %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/chenweng1991/redeemR/archive/refs/tags/v{{ version }}.tar.gz + sha256: 2837bee4a5a6130de08e31f543b11bfbd19eef30d351868b74c42681f45bb6e9 + +build: + number: 0 + script: ${R} CMD INSTALL --build . ${R_ARGS} + rpaths: + - lib/R/lib/ + - lib/ + run_exports: + - {{ pin_subpackage('r-redeemr', max_pin="x") }} + +requirements: + build: + - {{ compiler('c') }} + host: + - r-base + - r-ape + - r-domc + - r-doparallel + - r-dplyr + - r-foreach + - r-ggextra + - r-ggnewscale + - r-ggplot2 + - bioconductor-ggtree + - bioconductor-ggtreeextra + - r-gridextra + - r-igraph + - r-matrix + - r-phangorn + - r-phytools + - r-pryr + - bioconductor-qvalue + - r-rcolorbrewer + - r-reshape2 + - r-scavenge + - r-seurat + - r-matrixstats + - r-tibble + - bioconductor-treeio + - r-tidytree + run: + - r-base + - r-ape + - r-domc + - r-doparallel + - r-dplyr + - r-foreach + - r-ggextra + - r-ggnewscale + - r-ggplot2 + - bioconductor-ggtree + - bioconductor-ggtreeextra + - r-gridextra + - r-igraph + - r-matrix + - r-phangorn + - r-phytools + - r-pryr + - bioconductor-qvalue + - r-rcolorbrewer + - r-reshape2 + - r-scavenge + - r-seurat + - r-matrixstats + - r-tibble + - bioconductor-treeio + - r-tidytree + +test: + commands: + - $R -e "library('redeemR')" + +about: + home: https://github.com/chenweng1991/redeemR + dev_url: https://github.com/chenweng1991/redeemR + license: MIT + license_file: LICENSE + summary: "R package for Regulatory multi-omics with Deep Mitochondrial mutation profiling." + description: "Introduce a new approach for single-cell Regulatory multi-omics (transcriptomics and + chromatin accessibility) with Deep Mitochondrial mutation profiling (~10-fold increase in detection rate), + or ReDeeM. redeemR is the R package that facilitates mutation refining, lineage tracing, as well + multiomics integration analysis." + license_family: MIT + doc_url: https://chenweng1991.github.io/redeemR From f342c6db52d3e7f9f0fe4121f57a5c6f7c0720c9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 19:06:30 -0400 Subject: [PATCH 0773/1514] Update camlhmp to 0.2.0 (#49480) --- recipes/camlhmp/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/camlhmp/meta.yaml b/recipes/camlhmp/meta.yaml index d7284e52d4dac..e6342a4c697f0 100644 --- a/recipes/camlhmp/meta.yaml +++ b/recipes/camlhmp/meta.yaml @@ -1,5 +1,5 @@ {% set name = "camlhmp" %} -{% set version = "0.1.0" %} +{% set version = "0.2.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/camlhmp/camlhmp-{{ version }}.tar.gz - sha256: c2b19d85be14c5764f3ef4c977f958d11e6612d2c4b6c790c1c4e38f1c8b9f79 + sha256: a99dc9c56b285bcbaedbc19a6a7acd427328672070439672129a6251d78a28f7 build: noarch: python From 20a1ce780f5bc131271690edb29ec51ed94e4252 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 20:22:41 -0400 Subject: [PATCH 0774/1514] Update centrosome to 1.2.3 (#49481) --- recipes/centrosome/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/centrosome/meta.yaml b/recipes/centrosome/meta.yaml index 856557b5be116..5bc0f3c0dafd2 100644 --- a/recipes/centrosome/meta.yaml +++ b/recipes/centrosome/meta.yaml @@ -1,5 +1,5 @@ {% set name = "centrosome" %} -{% set version = "1.2.2" %} +{% set version = "1.2.3" %} package: name: "{{ name|lower }}" @@ -7,10 +7,10 @@ package: source: url: https://github.com/CellProfiler/centrosome/archive/v{{version}}.zip - sha256: bb69cd2d0f9df7976710be72c2269368588da36724537657f7d88b6d827456bf + sha256: 889ce9f79857cdf1d0d04d8d19dd749dfae4a077915fadec223717d5ddcb47fc build: - number: 1 + number: 0 skip: True # [py<30] script: CFLAGS="$CFLAGS -Wno-error=int-conversion" python -m pip install --no-deps --ignore-installed . -vv run_exports: From 5ff7032b2c11949f9924c46447e462dd9d7f3f73 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 21:33:58 -0400 Subject: [PATCH 0775/1514] Update camlhmp to 0.2.1 (#49482) --- recipes/camlhmp/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/camlhmp/meta.yaml b/recipes/camlhmp/meta.yaml index e6342a4c697f0..97d3aa0a1c092 100644 --- a/recipes/camlhmp/meta.yaml +++ b/recipes/camlhmp/meta.yaml @@ -1,5 +1,5 @@ {% set name = "camlhmp" %} -{% set version = "0.2.0" %} +{% set version = "0.2.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/camlhmp/camlhmp-{{ version }}.tar.gz - sha256: a99dc9c56b285bcbaedbc19a6a7acd427328672070439672129a6251d78a28f7 + sha256: 7d2ff688b7c8d2b69324c3da16bdc42d15ea9220d874e9cee64eeb8ea1d38af9 build: noarch: python From 1fb971fc3353fdc4ac033468a9c8e4bde8fc0d00 Mon Sep 17 00:00:00 2001 From: xxmalcala <86986240+xxmalcala@users.noreply.github.com> Date: Mon, 22 Jul 2024 21:40:43 -0600 Subject: [PATCH 0776/1514] Update package and dependency versions (#49478) --- recipes/tides-ml/meta.yaml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/recipes/tides-ml/meta.yaml b/recipes/tides-ml/meta.yaml index d397cf604be0d..dcb55a46afbe0 100644 --- a/recipes/tides-ml/meta.yaml +++ b/recipes/tides-ml/meta.yaml @@ -1,5 +1,5 @@ {% set name = "tides-ml" %} -{% set version = "1.3.2" %} +{% set version = "1.3.4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/TIdeS-ML-{{ version }}.tar.gz - sha256: f9b33375d4e5f08cf6c1c67e2d7240eb554e1afd2e535dbbde44b9951f5e0199 + sha256: 6b4680a6b1ba98c7bc7db8530ff85f547f57892137ca233a32cdade367435d96 build: entry_points: @@ -20,20 +20,20 @@ build: requirements: host: - - python <=3.11.7 + - python >=3.7,<=3.11 - pip run: - - python <=3.11.7 - - biopython >=1.79 - - ete3 >=3.1.2 - - optuna >=3.0 - - pandas >=2.0 - - seaborn >=0.12.2 - - scikit-learn >=1.3.0 - - diamond >=2.1.3 - - cd-hit >=4.8.1 - - barrnap >=0.9 - - kraken2 >=2.0.0 + - python >=3.7,<=3.11 + - biopython =1.79 + - ete3 =3.1.2 + - optuna =3.1 + - pandas =2.0 + - seaborn =0.12.2 + - scikit-learn =1.5.0 + - diamond =2.1 + - cd-hit =4.8 + - barrnap =0.9 + - kraken2 =2.1 test: imports: From 7ad47c1380e4e3bb41b16acc65bf4971ce822564 Mon Sep 17 00:00:00 2001 From: Akihiro Kuno Date: Tue, 23 Jul 2024 12:48:19 +0900 Subject: [PATCH 0777/1514] Update DAJIN2 (#49483) --- recipes/dajin2/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/dajin2/meta.yaml b/recipes/dajin2/meta.yaml index a96b6a5c76296..6428524d57fb4 100644 --- a/recipes/dajin2/meta.yaml +++ b/recipes/dajin2/meta.yaml @@ -1,5 +1,5 @@ {% set name = "DAJIN2" %} -{% set version = "0.5.3" %} +{% set version = "0.5.4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/dajin2-{{ version }}.tar.gz - sha256: 51f7c7bc430727c839c8a113c55d92dbcd66311344f456e49ac994edf1a9d6da + sha256: c90d026e219c93bd7211d00fabd4e8e5ee0c145e9fc5f0b4ddbd6a72281abe35 build: entry_points: @@ -34,7 +34,7 @@ requirements: - rapidfuzz >=3.6.0 - scikit-learn >=1.3.0 - ruptures >=1.1.8 - - ortools-python >=9.0 + - networkx >=3.0 - mappy >=2.24 - pysam >=0.21.0 - flask >=2.2.0 From 2ea478f14bc35612077646d6d69abb36df1ca5ef Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 22 Jul 2024 23:50:07 -0400 Subject: [PATCH 0778/1514] Update virusrecom to 1.3.2 (#49485) --- recipes/virusrecom/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/virusrecom/meta.yaml b/recipes/virusrecom/meta.yaml index 6bbb348c19d1a..9e95949b46f06 100644 --- a/recipes/virusrecom/meta.yaml +++ b/recipes/virusrecom/meta.yaml @@ -1,5 +1,5 @@ {% set name = "virusrecom" %} -{% set version = "1.3.1" %} +{% set version = "1.3.2" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: cc12a3b94602864165530cbf36f64d0054e072a8ff61b445be237bac445e24cc + sha256: 5ba74f015546c480e6628fcb4625019d98d181c1684fef7b1e29f92bef558141 build: number: 0 From 20d9a794feb6ebb697752f74a351d2b55c3075ee Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 23 Jul 2024 00:51:15 -0400 Subject: [PATCH 0779/1514] Update camlhmp to 0.2.2 (#49486) --- recipes/camlhmp/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/camlhmp/meta.yaml b/recipes/camlhmp/meta.yaml index 97d3aa0a1c092..b9cb984c17da0 100644 --- a/recipes/camlhmp/meta.yaml +++ b/recipes/camlhmp/meta.yaml @@ -1,5 +1,5 @@ {% set name = "camlhmp" %} -{% set version = "0.2.1" %} +{% set version = "0.2.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/camlhmp/camlhmp-{{ version }}.tar.gz - sha256: 7d2ff688b7c8d2b69324c3da16bdc42d15ea9220d874e9cee64eeb8ea1d38af9 + sha256: 564b1bc900ce6d3474a66ae6e357733971a61620be79ddf566f36ac51b74e3c1 build: noarch: python From 68712e4987c0385e1be0605b33c5fe65050c71c5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 23 Jul 2024 02:20:34 -0400 Subject: [PATCH 0780/1514] Update mycotools to 0.31.43 (#49487) --- recipes/mycotools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index 5e3111a790c2b..9ba6be3cd58d1 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mycotools" %} -{% set version = "0.31.42" %} +{% set version = "0.31.43" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mycotools-{{ version }}.tar.gz - sha256: 871f536c467ebaba6b4d721b2392d62866f6fc098a6e298fd3b83b906ae44a08 + sha256: 1df89c05a89cfc82fa1d94f3e3a2f82cc0c4b4f7373ab3063f0f804ad3413914 build: entry_points: From 3327d1a97b0e976b58b2275bee2e89098fc16a8d Mon Sep 17 00:00:00 2001 From: John Marshall Date: Wed, 24 Jul 2024 01:34:55 +1200 Subject: [PATCH 0781/1514] Bump staden_io_lib to 1.15.0 and activate macOS builds (#49490) * Bump staden_io_lib to 1.15.0 and activate macOS builds Also remove library `run` dependencies: these libraries will add appropriate dependencies themselves via their run_exports, and in particular zlib will add libzlib so we should not over-depend on zlib as well. * Patch ancient config.sub and for sysroot_linux-aarch64 2.17 * Depend on libcurl to get the library via run_export correctly --- recipes/staden_io_lib/arm_hwcap.patch | 15 +++++++++++++++ recipes/staden_io_lib/config.patch | 15 +++++++++++++++ recipes/staden_io_lib/meta.yaml | 21 +++++++++------------ 3 files changed, 39 insertions(+), 12 deletions(-) create mode 100644 recipes/staden_io_lib/arm_hwcap.patch create mode 100644 recipes/staden_io_lib/config.patch diff --git a/recipes/staden_io_lib/arm_hwcap.patch b/recipes/staden_io_lib/arm_hwcap.patch new file mode 100644 index 0000000000000..40733dcc33b1d --- /dev/null +++ b/recipes/staden_io_lib/arm_hwcap.patch @@ -0,0 +1,15 @@ +Conda-forge's build environment on ARM uses sysroot_linux-aarch64 2.17, which +is based on glibc 2.17 so does not define HWCAP_* values on ARM. +Work around this by including the kernel header to get the desired values. + +--- a/htscodecs/htscodecs/rANS_static4x16pr.c 2023-10-10 02:54:16 ++++ b/htscodecs/htscodecs/rANS_static4x16pr.c 2024-03-06 00:01:14 +@@ -1030,6 +1030,8 @@ + + #if defined(__linux__) || defined(__FreeBSD__) + #include ++// Ensure ARM HWCAP_* values are defined even on old glibc ++#include + #elif defined(_WIN32) + #include + #endif diff --git a/recipes/staden_io_lib/config.patch b/recipes/staden_io_lib/config.patch new file mode 100644 index 0000000000000..591667b3a81ee --- /dev/null +++ b/recipes/staden_io_lib/config.patch @@ -0,0 +1,15 @@ +Upstream release contains config.{guess,sub} from six years ago that +don't handle Apple silicon. This patches minimally around it. + +--- a/config.sub 2018-02-22 00:00:00 ++++ b/config.sub 2024-07-23 21:45:09 +@@ -450,6 +450,9 @@ + | ymp-* \ + | z8k-* | z80-*) + ;; ++ arm64-apple) ++ basic_machine=aarch64-apple ++ ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown diff --git a/recipes/staden_io_lib/meta.yaml b/recipes/staden_io_lib/meta.yaml index 05414ca88e4e2..aceb5b5700ad2 100644 --- a/recipes/staden_io_lib/meta.yaml +++ b/recipes/staden_io_lib/meta.yaml @@ -1,18 +1,20 @@ {% set name = "staden_io_lib" %} -{% set version = "1.14.14" %} -{% set hash = "a471c79b9aede1776a895cb46fcb81b5d163d6ca9c3e1e33096346fef46d3598" %} +{% set version = "1.15.0" %} +{% set hash = "ad343dac7c77086db1b54585c5887b26eda6430d1639d111dd3304c3b749494f" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://github.com/jkbonfield/io_lib/releases/download/io_lib-1-14-14/io_lib-1.14.14.tar.gz + url: https://github.com/jkbonfield/io_lib/releases/download/io_lib-{{ version|replace('.','-') }}/io_lib-{{ version }}.tar.gz sha256: {{ hash }} + patches: + - arm_hwcap.patch + - config.patch build: - number: 9 - skip: True # [osx] + number: 0 run_exports: - {{ pin_subpackage('staden_io_lib', max_pin='x.x') }} @@ -24,13 +26,7 @@ requirements: - bzip2 - zlib - xz - - curl - - libdeflate - run: - - bzip2 - - zlib - - xz - - curl + - libcurl - libdeflate test: @@ -46,3 +42,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 From 3801b06736e440940c702177888206bfbdb95667 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 23 Jul 2024 10:45:46 -0400 Subject: [PATCH 0782/1514] Update querynator to 0.5.3 (#49495) --- recipes/querynator/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/querynator/meta.yaml b/recipes/querynator/meta.yaml index 2bbf594ece3e8..9a66732b8e6eb 100644 --- a/recipes/querynator/meta.yaml +++ b/recipes/querynator/meta.yaml @@ -1,5 +1,5 @@ {% set name = "querynator" %} -{% set version = "0.5.2" %} +{% set version = "0.5.3" %} package: name: "{{ name|lower }}" @@ -7,10 +7,10 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: bad38b5a62cd05701e13cb9e7157a854c0b9870c993971a20ae03ae9c91ac9a9 + sha256: a265fd68804a3b9b7ebf8b9fc1b8624c77a2ae44db1c060ae720d037a1c99bdb build: - number: 1 + number: 0 noarch: python run_exports: - {{ pin_subpackage('querynator', max_pin="x") }} From 81385b293b7a2611cd51cf0484ba828d4e82c9a6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 23 Jul 2024 10:45:53 -0400 Subject: [PATCH 0783/1514] Update hmftools-orange to 3.7.0 (#49493) --- recipes/hmftools-orange/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/hmftools-orange/meta.yaml b/recipes/hmftools-orange/meta.yaml index 91fb69d4ab0e3..3289d58f61584 100644 --- a/recipes/hmftools-orange/meta.yaml +++ b/recipes/hmftools-orange/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "3.6.0" %} -{% set sha256 = "55d600d1e47e95d24b47ea67b731ba996043448b3287f0c29883270da004e001" %} +{% set version = "3.7.0" %} +{% set sha256 = "5eefa9acb4040361ba4f56ec5670ccdcd0ac18e8b13e3bdbd6a6e6241104dfd1" %} package: name: hmftools-orange From 9c21eaa33598f33df3b4c74da6e529a5abe6c2eb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 23 Jul 2024 10:46:21 -0400 Subject: [PATCH 0784/1514] Update ska2 to 0.3.9 (#49491) --- recipes/ska2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ska2/meta.yaml b/recipes/ska2/meta.yaml index 02b0a45464bd5..f6a8f34b16558 100644 --- a/recipes/ska2/meta.yaml +++ b/recipes/ska2/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ska2" %} -{% set version = "0.3.8" %} +{% set version = "0.3.9" %} package: name: {{ name|lower}} @@ -7,7 +7,7 @@ package: source: url: https://github.com/bacpop/ska.rust/archive/v{{ version }}.tar.gz - sha256: 5abadd0222db05b2bfa787a896d422675312837c7ac850df6283e6a64d4f204b + sha256: e25a05c2c08a871feb5f9eca6993d9719a63a97323385353a58ba30fa829b5c1 build: number: 0 From b409bc71fb570accf6ad6c6d7f4907db39404df1 Mon Sep 17 00:00:00 2001 From: Niklaus Johner Date: Tue, 23 Jul 2024 17:23:23 +0200 Subject: [PATCH 0785/1514] Update zDB recipe for version 1.3.1. (#49199) --- recipes/zdb/meta.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/recipes/zdb/meta.yaml b/recipes/zdb/meta.yaml index 44567e264fe2a..b8864a209efab 100644 --- a/recipes/zdb/meta.yaml +++ b/recipes/zdb/meta.yaml @@ -6,7 +6,7 @@ package: build: noarch: generic - number: 0 + number: 1 run_exports: - {{ pin_subpackage('zdb', max_pin="x.x") }} @@ -16,7 +16,7 @@ source: requirements: run: - - nextflow >=21.04.0,<=22.10.8 + - nextflow >=21.04.0 - mamba test: @@ -26,12 +26,15 @@ test: about: home: https://github.com/metagenlab/zDB/ license: MIT + license_family: MIT license_file: LICENSE summary: zDB is both a bacterial comparative genomics pipeline and a tool to visualize the results dev_url: https://github.com/metagenlab/zDB/ + doc_url: https://zdb.readthedocs.io/en/latest/ extra: recipe-maintainers: - bkm + - njohner identifiers: - biotools:zDB From 1aeed180194731b71c5119f67ba9412cd37005c5 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 23 Jul 2024 10:29:54 -0500 Subject: [PATCH 0786/1514] kma: add arm64 build (#49497) --- recipes/kma/build.sh | 6 +++--- recipes/kma/meta.yaml | 9 ++++----- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/recipes/kma/build.sh b/recipes/kma/build.sh index 20626f6691fb4..62d5aef475fd3 100755 --- a/recipes/kma/build.sh +++ b/recipes/kma/build.sh @@ -1,9 +1,9 @@ #!/bin/bash BINARIES="kma kma_index kma_shm kma_update" -make CFLAGS="${CFLAGS} -w -O3 -I${PREFIX}/include -L${PREFIX}/lib" +make CFLAGS="${CFLAGS} -w -O3 -I${PREFIX}/include -L${PREFIX}/lib" -j "${CPU_COUNT}" mkdir -p ${PREFIX}/bin -cp $BINARIES $PREFIX/bin +cp -rf $BINARIES $PREFIX/bin mkdir -p $PREFIX/doc/kma -cp README.md $PREFIX/doc/kma/ +cp -rf README.md $PREFIX/doc/kma/ diff --git a/recipes/kma/meta.yaml b/recipes/kma/meta.yaml index 0ba3d848b9a81..13fd1af05d5f3 100644 --- a/recipes/kma/meta.yaml +++ b/recipes/kma/meta.yaml @@ -1,6 +1,6 @@ {% set name = "kma" %} -{% set version = "1.4.14" %} -{% set sha256 = "85971fcb2e806d2ee95d3499cd9b358f313b1635d5d71cb189eabc503be4b10f" %} +{% set version = "1.4.15" %} +{% set sha256 = "d95b1a958879fcbd37f680cfad74b7939879d357e13a073e53b62ea108675885" %} package: name: {{ name|lower }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('kma', max_pin="x") }} @@ -21,8 +21,6 @@ requirements: - {{ compiler('c') }} host: - zlib - run: - - zlib test: commands: @@ -40,5 +38,6 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - doi:10.1186/s12859-018-2336-6 From dcf6c6817684f14f9ad92a377494d7e31c5e34cd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 23 Jul 2024 11:31:47 -0400 Subject: [PATCH 0787/1514] Update gxformat2 to 0.19.0 (#49489) * Update gxformat2 to 0.19.0 * add run_exports --------- Co-authored-by: mencian --- recipes/gxformat2/meta.yaml | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/recipes/gxformat2/meta.yaml b/recipes/gxformat2/meta.yaml index 27f44d09908d1..94eda22a18411 100644 --- a/recipes/gxformat2/meta.yaml +++ b/recipes/gxformat2/meta.yaml @@ -1,5 +1,5 @@ {% set name = "gxformat2" %} -{% set version = "0.18.0" %} +{% set version = "0.19.0" %} package: name: "{{ name|lower }}" @@ -7,22 +7,30 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: e772e899968822c07d7b6bf20b662c52a2a87bd03eb0b7a6c81f72b6b2b3ad9e + sha256: 19cf7d4301ef3a7545c465e5daa7127042758bf4d9eba1f1dcc122eb47b99cfc build: number: 0 noarch: python - preserve_egg_dir: True - script: python -m pip install --no-deps --ignore-installed . + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + entry_points: + - gxwf-to-native = gxformat2.converter:main + - gxwf-to-format2 = gxformat2.export:main + - gxwf-lint = gxformat2.lint:main + - gxwf-viz = gxformat2.cytoscape:main + - gxwf-abstract-export = gxformat2.abstract:main + run_exports: + - {{ pin_subpackage('gxformat2', max_pin="x.x") }} requirements: host: - - python + - python >=3.7 - pip run: - - python - - pyyaml + - python >=3.7 - bioblend + - pyyaml + - schema-salad >=8.2 - six >=1.9.0 test: @@ -31,6 +39,8 @@ test: about: home: https://github.com/jmchilton/gxformat2 - license: AFL-3.0-only + license: MIT summary: 'Galaxy Workflow Format 2 Descriptions' - license_family: OTHER + license_family: MIT + license_file: LICENSE + dev_url: https://github.com/jmchilton/gxformat2 From 521edfbae58f0706fd5f010f1d463fc517791d92 Mon Sep 17 00:00:00 2001 From: Thom Griffioen Date: Tue, 23 Jul 2024 20:37:38 +0200 Subject: [PATCH 0788/1514] Update `entrez-direct` to 22.4 (#49496) * Update entrez-direct to 22.4 * Enable osx-arm64 build --- recipes/entrez-direct/meta.yaml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/recipes/entrez-direct/meta.yaml b/recipes/entrez-direct/meta.yaml index d0346051629b9..85cec6100e239 100644 --- a/recipes/entrez-direct/meta.yaml +++ b/recipes/entrez-direct/meta.yaml @@ -1,15 +1,16 @@ -{% set version = "22.1" %} -{% set date = "20240517" %} -{% set sha256 = "28d9cc2d353323375a2102e9031e229943d1f1f975f140d0815db3e5a111f235" %} +{% set name = "entrez-direct" %} +{% set version = "22.4" %} +{% set date = "20240717" %} +{% set sha256 = "350b47cd285aa8370f8af7fc2f3d4a11f31d8118f3f9cb87204063c9f3374739" %} package: - name: entrez-direct + name: {{ name }} version: {{ version }} build: number: 0 run_exports: - - {{ pin_subpackage("entrez-direct", max_pin="x") }} + - {{ pin_subpackage(name, max_pin="x") }} source: url: https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/{{ version }}.{{ date }}/edirect.tar.gz @@ -42,5 +43,6 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 container: extended-base: True From 9d754474d7e9a06763ec99786cbe7bb6162e2761 Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Tue, 23 Jul 2024 14:37:49 -0400 Subject: [PATCH 0789/1514] khmer: update sha in build failure (#49494) --- recipes/khmer/build_failure.linux-64.yaml | 118 +++------------------- 1 file changed, 16 insertions(+), 102 deletions(-) diff --git a/recipes/khmer/build_failure.linux-64.yaml b/recipes/khmer/build_failure.linux-64.yaml index 7e810b76361af..9afdfa5776715 100644 --- a/recipes/khmer/build_failure.linux-64.yaml +++ b/recipes/khmer/build_failure.linux-64.yaml @@ -1,104 +1,18 @@ -recipe_sha: b3ca0bd5abc48a4a6f9cb09105ae183483ec3bd4b8baadd8ef77b286a1aba900 # The commit at which this recipe failed to build. +recipe_sha: 27b4bbe98422ab7e905e27f1693fcc531b4fe44fc7ec6d8fd817fe958e90da78 # The hash of the recipe's meta.yaml at which this recipe failed to build. skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. log: |- - [34m # This is -- a caller that pip uses to run setup.py[0m - [34m #[0m - [34m # - It imports setuptools before invoking setup.py, to enable projects that directly[0m - [34m # import from distutils.core to work with newer packaging standards.[0m - [34m # - It provides a clear error message when setuptools is not installed.[0m - [34m # - It sets sys.argv[0] to the underlying setup.py, when invoking setup.py so[0m - [34m # setuptools doesn'"'"'t think the script is -c. This avoids the following warning:[0m - [34m # manifest_maker: standard file '"'"'-c'"'"' not found".[0m - [34m # - It generates a shim setup.py, for handling setup.cfg-only projects.[0m - [34m import os, sys, tokenize[0m - [34m [0m - [34m try:[0m - [34m import setuptools[0m - [34m except ImportError as error:[0m - [34m print([0m - [34m "ERROR: Can not execute setup.py since setuptools is not available in "[0m - [34m "the build environment.",[0m - [34m file=sys.stderr,[0m - [34m )[0m - [34m sys.exit(1)[0m - [34m [0m - [34m __file__ = %r[0m - [34m sys.argv[0] = __file__[0m - [34m [0m - [34m if os.path.exists(__file__):[0m - [34m filename = __file__[0m - [34m with tokenize.open(__file__) as f:[0m - [34m setup_py_code = f.read()[0m - [34m else:[0m - [34m filename = ""[0m - [34m setup_py_code = "from setuptools import setup; setup()"[0m - [34m [0m - [34m exec(compile(setup_py_code, filename, "exec"))[0m - [34m '"'"''"'"''"'"' % ('"'"'/opt/conda/conda-bld/khmer_1685391754054/work/setup.py'"'"',), "", "exec"))' bdist_wheel -d /tmp/pip-wheel-vjdncpwn[0m - [1;35mcwd[0m: /opt/conda/conda-bld/khmer_1685391754054/work/ - Building wheel for khmer (setup.py): finished with status 'error' - [31m ERROR: Failed building wheel for khmer[0m[31m - [0m Running setup.py clean for khmer - Running command python setup.py clean - /opt/conda/conda-bld/khmer_1685391754054/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.8/site-packages/setuptools/dist.py:755: SetuptoolsDeprecationWarning: Invalid dash-separated options - !! - - ******************************************************************************** - Usage of dash-separated 'include-dirs' will not be supported in future - versions. Please use the underscore name 'include_dirs' instead. - - By 2023-Sep-26, you need to update your project and remove deprecated calls - or your builds will no longer be supported. - - See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details. - ******************************************************************************** - - !! - opt = self.warn_dash_deprecation(opt, section) - /opt/conda/conda-bld/khmer_1685391754054/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.8/site-packages/setuptools/__init__.py:84: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated. - !! - - ******************************************************************************** - Requirements should be satisfied by a PEP 517 installer. - If you are using pip, you can try pip install --use-pep517. - ******************************************************************************** - - !! - dist.fetch_build_eggs(dist.setup_requires) - running clean - removing 'build/temp.linux-x86_64-cpython-38' (and everything under it) - removing 'build/lib.linux-x86_64-cpython-38' (and everything under it) - 'build/bdist.linux-x86_64' does not exist -- can't clean it - 'build/scripts-3.8' does not exist -- can't clean it - removing 'build' - Failed to build khmer - [31mERROR: Could not build wheels for khmer, which is required to install pyproject.toml-based projects[0m[31m - [0mException information: - Traceback (most recent call last): - File "$PREFIX/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 169, in exc_logging_wrapper - status = run_func(*args) - File "$PREFIX/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 248, in wrapper - return func(self, options, args) - File "$PREFIX/lib/python3.8/site-packages/pip/_internal/commands/install.py", line 426, in run - raise InstallationError( - pip._internal.exceptions.InstallationError: Could not build wheels for khmer, which is required to install pyproject.toml-based projects - Removed build tracker: '/tmp/pip-build-tracker-jesaqami' - Traceback (most recent call last): - File "/opt/conda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/conda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/conda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/conda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/khmer_1685391754054/work/conda_build.sh']' returned non-zero exit status 1. -# Last 100 lines of the build log. +01:00:23 BIOCONDA INFO (OUT) /opt/conda/conda-bld/khmer_1721696148356/_build_env/bin/x86_64-conda-linux-gnu-cc -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -fPIC -O2 -isystem /opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -fdebug-prefix-map=/opt/conda/conda-bld/khmer_1721696148356/work=/usr/local/src/conda/khmer-3.0.0a3 -fdebug-prefix-map=/opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho=/usr/local/src/conda-prefix -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -fPIC -DVERSION=3.0.0a3 -DSEQAN_HAS_BZIP2=1 -DSEQAN_HAS_ZLIB=1 -UNO_UNIQUE_RC -Iinclude -I. -Iinclude -Ithird-party/seqan/core/include -Ithird-party/smhasher -Ithird-party/cqf -Ithird-party/rollinghash -I/opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/python3.11 -c khmer/_oxli/graphs.cpp -o build/temp.linux-x86_64-cpython-311/khmer/_oxli/graphs.o -O3 -std=c++11 -fopenmp +01:00:23 BIOCONDA INFO (OUT) khmer/_oxli/graphs.cpp:196:12: fatal error: longintrepr.h: No such file or directory +01:00:23 BIOCONDA INFO (OUT) 196 | #include "longintrepr.h" +01:00:23 BIOCONDA INFO (OUT) | ^~~~~~~~~~~~~~~ +01:00:23 BIOCONDA INFO (OUT) compilation terminated. +01:00:23 BIOCONDA INFO (OUT) error: command '/opt/conda/conda-bld/khmer_1721696148356/_build_env/bin/x86_64-conda-linux-gnu-cc' failed with exit code 1 +01:00:24 BIOCONDA INFO (OUT) error: subprocess-exited-with-error +01:00:24 BIOCONDA INFO (OUT) +01:00:24 BIOCONDA INFO (OUT) × python setup.py bdist_wheel did not run successfully. +01:00:24 BIOCONDA INFO (OUT) │ exit code: 1 +01:00:24 BIOCONDA INFO (OUT) ╰─> See above for output. +reason: |- + breaks in nightly build +category: |- + compiler error From 6694ccfe1ca6cddc67705903424689409cc182f5 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 23 Jul 2024 14:01:07 -0500 Subject: [PATCH 0790/1514] Add recipe for SEAcells v0.3.3 (#49501) --- recipes/seacells/meta.yaml | 50 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 recipes/seacells/meta.yaml diff --git a/recipes/seacells/meta.yaml b/recipes/seacells/meta.yaml new file mode 100644 index 0000000000000..c2a088b21dd0e --- /dev/null +++ b/recipes/seacells/meta.yaml @@ -0,0 +1,50 @@ +{% set name = "seacells" %} +{% set version = "0.3.3" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/SEACells-{{ version }}.tar.gz + sha256: 0f75d1970ab148732796d2d7afbd1001f779c00959af3212002434780254fc15 + +build: + number: 0 + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + run_exports: + - {{ pin_subpackage('seacells', max_pin="x.x") }} + +requirements: + host: + - python >=3.8 + - pip + run: + - python >=3.8 + - numpy + - pandas + - palantir + - scanpy >1.8 + - anndata + - numba >=0.51.2 + - scipy >=1.5 + - pyranges + +test: + imports: + - SEACells + +about: + home: https://github.com/dpeerlab/SEACells + summary: "SEACells algorithm for Inference of transcriptional and epigenomic cellular states from single-cell genomics data." + license: GPL-2.0-or-later + license_family: GPL + license_file: LICENSE.txt + dev_url: https://github.com/dpeerlab/SEACells + +extra: + recipe-maintainers: + - mencian + identifiers: + - doi:10.1038/s41587-023-01716-9 From fbabf5a60da89fee6e28777f6ea1b1e15f39435f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 23 Jul 2024 15:41:56 -0400 Subject: [PATCH 0791/1514] Update microhapulator to 0.8 (#49498) * Update microhapulator to 0.8 * add run_exports * pin python to <3.12 --------- Co-authored-by: mencian --- recipes/microhapulator/meta.yaml | 43 ++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/recipes/microhapulator/meta.yaml b/recipes/microhapulator/meta.yaml index c5727c42c8c84..311ce5aa3802a 100644 --- a/recipes/microhapulator/meta.yaml +++ b/recipes/microhapulator/meta.yaml @@ -1,56 +1,67 @@ -{% set version = "0.7.2" %} -{% set sha256 = "7fff263a4d469d00695d0a314d9a85b8427b454d6b4dd783f930708a3a796f02" %} +{% set name = "microhapulator" %} +{% set version = "0.8" %} +{% set sha256 = "7415985d6dc7147bec0cf97e1bdf707d72033ccc3fdd0a1c332014da637d35fe" %} package: - name: microhapulator - version: '{{version}}' + name: {{ name }} + version: {{ version }} source: url: https://github.com/bioforensics/MicroHapulator/archive/{{ version }}.tar.gz - sha256: '{{sha256}}' + sha256: {{ sha256 }} build: noarch: python entry_points: - mhpl8r = microhapulator.cli:main - script: python -m pip install --no-deps --ignore-installed . + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir number: 0 + run_exports: + - {{ pin_subpackage('microhapulator', max_pin="x.x") }} requirements: host: - - python >=3 + - python <3.12 - pip run: - - biopython ==1.78 + - biopython - bwa >=0.7.17 - fastqc >=0.11.9 - flash >=1.2 - happer >=0.1 - - insilicoseq >=1.5.4 - - jsonschema >=3.1 + - insilicoseq >=1.5.4,<2.0 + - jsonschema >=4.0 - matplotlib-base >=3.0 - - numpy >=1.15.4 - - pandas >=1.0 - - python >=3 + - microhapdb >=0.10.1 + - multiqc >=1.14 + - nbformat >=5.0,<5.6 + - numpy >=1.19 + - pandas >1.0 + - pulp ==2.3.1 + - python <3.12 - pysam >=0.15.2 - scipy >=1.7 - samtools >=1.12 - - snakemake >=6.0 + - seaborn-base >=0.13.2 + - snakemake-minimal >=7.15.2,<8.0 - termgraph >=0.5 - tqdm >=4.0 test: imports: - microhapulator + commands: + - mhpl8r --help requires: - pytest >=3.10 - pytest-cov >=2.6 about: home: https://github.com/bioforensics/MicroHapulator/ - license: BSD License + license: BSD-3-Clause license_family: BSD - summary: Tools for empirical microhaplotype calling, forensic interpretation, and simulation. + license_file: LICENSE.txt + summary: "Tools for empirical microhaplotype calling, forensic interpretation, and simulation." dev_url: https://github.com/bioforensics/MicroHapulator/ extra: From 94d23891eb5721d939740dd023e44714659575be Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Tue, 23 Jul 2024 12:52:09 -0700 Subject: [PATCH 0792/1514] Build abyss for osx-arm64 (#49473) (Patch elderly config.sub that doesn't recognise Apple silicon.) --- recipes/abyss/config.patch | 15 +++++++++++++++ recipes/abyss/meta.yaml | 5 ++++- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 recipes/abyss/config.patch diff --git a/recipes/abyss/config.patch b/recipes/abyss/config.patch new file mode 100644 index 0000000000000..0eff6cb938fc6 --- /dev/null +++ b/recipes/abyss/config.patch @@ -0,0 +1,15 @@ +Upstream release contains config.{guess,sub} from ten years ago that +don't handle Apple silicon. This patches minimally around it. + +--- a/config.sub 2014-06-10 20:03:11 ++++ b/config.sub 2024-07-23 19:48:49 +@@ -436,6 +436,9 @@ + | ymp-* \ + | z8k-* | z80-*) + ;; ++ arm64-apple) ++ basic_machine=aarch64-apple ++ ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown diff --git a/recipes/abyss/meta.yaml b/recipes/abyss/meta.yaml index c713a409e12e6..0d927ebfebd75 100644 --- a/recipes/abyss/meta.yaml +++ b/recipes/abyss/meta.yaml @@ -6,13 +6,15 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin="x") }} source: url: https://github.com/bcgsc/abyss/releases/download/{{ version }}/abyss-{{ version }}.tar.gz sha256: 3c262269043f619c79ec3dcd91f5595cb141229f9a13d1a76a952b9a0bfb0d84 + patches: + - config.patch requirements: build: @@ -46,6 +48,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 container: # openmpi needs ssh/rsh extended-base: true From ee4d0cdf4b34716038b89b601646f734d7007330 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 23 Jul 2024 16:26:19 -0400 Subject: [PATCH 0793/1514] Update pasty to 2.0.0 (#49502) * Update pasty to 2.0.0 * Update meta.yaml * Update build.sh * add run_exports * Update meta.yaml --------- Co-authored-by: Robert A. Petit III --- recipes/pasty/build.sh | 18 +++++++++--------- recipes/pasty/meta.yaml | 11 +++++------ 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/recipes/pasty/build.sh b/recipes/pasty/build.sh index 6c870165bf734..a64b3f4867aed 100644 --- a/recipes/pasty/build.sh +++ b/recipes/pasty/build.sh @@ -1,11 +1,11 @@ -#! /bin/bash +#!/bin/bash -# Set up defaults -PASTY_SHARE="share/${PKG_NAME}-${PKG_VERSION}" -mkdir -p ${PREFIX}/${PASTY_SHARE} -mkdir -p ${PREFIX}/bin +mkdir -p $PREFIX/bin ${PREFIX}/share/pasty -# Make Bioconda compatible -mv db/OSAdb.fasta ${PREFIX}/${PASTY_SHARE}/ -sed "s=db/OSAdb.fasta=$PASTY_SHARE/OSAdb.fasta=" bin/pasty > ${PREFIX}/bin/pasty -chmod 755 ${PREFIX}/bin/pasty +# Copy wrapper +chmod 755 bin/pasty-bioconda +cp -f bin/pasty-bioconda $PREFIX/bin/pasty + +# Copy schema (~100kb) +cp -f data/pa-osa.fasta ${PREFIX}/share/pasty +cp -f data/pa-osa.yaml ${PREFIX}/share/pasty diff --git a/recipes/pasty/meta.yaml b/recipes/pasty/meta.yaml index 8b2220b2bdfb3..c0ac5731107c1 100644 --- a/recipes/pasty/meta.yaml +++ b/recipes/pasty/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pasty" %} -{% set version = "1.0.3" %} +{% set version = "2.0.0" %} package: name: {{ name | lower }} @@ -7,18 +7,17 @@ package: source: url: https://github.com/rpetit3/pasty/archive/v{{ version }}.tar.gz - sha256: 96b43053e7411f8e071355d604cdda02fd6bf03ebec199fdbaa85afe251623b6 + sha256: f1d6d38c1a797b88249c896030192901ea1e399387a30cda0612537387619cc8 build: number: 0 noarch: generic + run_exports: + - {{ pin_subpackage(name, max_pin='x.x') }} requirements: run: - - blast - - executor - - python >=3.7 - - rich-click + - camlhmp >=0.2.2 test: commands: From ada7d5acd991d027553f905d22f2fdcbbd757364 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 23 Jul 2024 21:39:31 -0400 Subject: [PATCH 0794/1514] Update pangwes to 0.3.0_alpha (#49503) --- recipes/pangwes/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pangwes/meta.yaml b/recipes/pangwes/meta.yaml index d34abb3224eaa..44874495eafd5 100644 --- a/recipes/pangwes/meta.yaml +++ b/recipes/pangwes/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pangwes" %} -{% set version = "0.2.0_alpha" %} +{% set version = "0.3.0_alpha" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Sudaraka88/PAN-GWES/archive/refs/tags/v{{ version }}.tar.gz - sha256: 288e2c403b880d1a912525aa00a66b402889cb94df01ca87d99355b2d7287837 + sha256: d91f01f2a098cb8f7492c2208d0ae143d2b66f0d58b89b9c96dfb17ebca07c8e build: number: 0 From 59c25a32086fb01b5021e41bb2f6b39d7481d4e6 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 23 Jul 2024 21:47:22 -0500 Subject: [PATCH 0795/1514] Add recipe for ctxcore v0.2.0 (#49504) --- recipes/ctxcore/meta.yaml | 52 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 recipes/ctxcore/meta.yaml diff --git a/recipes/ctxcore/meta.yaml b/recipes/ctxcore/meta.yaml new file mode 100644 index 0000000000000..5610e87640ebb --- /dev/null +++ b/recipes/ctxcore/meta.yaml @@ -0,0 +1,52 @@ +{% set name = "ctxcore" %} +{% set version = "0.2.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/aertslab/ctxcore/archive/{{ version }}.tar.gz + sha256: a7ebf0f2625641b76a390993e12042e92fff7d0ac242c7fad5e3bff3ff3cd67a + +build: + number: 0 + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + script_env: + - SETUPTOOLS_SCM_PRETEND_VERSION={{ version }} + run_exports: + - {{ pin_subpackage('ctxcore', max_pin="x.x") }} + +requirements: + host: + - python + - setuptools-scm + - pip + run: + - python + - cytoolz + - frozendict + - numba >=0.51.2 + - numpy + - pandas >=0.24 + - pyarrow >=8.0.0 + - pyyaml + - tqdm + +test: + imports: + - ctxcore + +about: + home: "https://scenic.aertslab.org" + summary: "Core functions for pycisTarget and the SCENIC tool suite." + license: GPL-3.0-or-later + license_family: GPL3 + license_file: LICENSE.txt + dev_url: "https://github.com/aertslab/ctxcore" + doc_url: "https://ctxcore.readthedocs.io/en/latest" + +extra: + recipe-maintainers: + - mencian From 55d9c450e41dc33d83c37709b84ab71858e0aaa8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 23 Jul 2024 22:47:33 -0400 Subject: [PATCH 0796/1514] Update planemo to 0.75.24 (#47760) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update planemo to 0.75.23 * update dependencies * edit tests * Update planemo to 0.75.24 * Bump galaxy deps * edit tests --------- Co-authored-by: mencian Co-authored-by: Björn Grüning Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/planemo/meta.yaml | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/recipes/planemo/meta.yaml b/recipes/planemo/meta.yaml index 4d0b0f2dcb6c6..e37d7821ced54 100644 --- a/recipes/planemo/meta.yaml +++ b/recipes/planemo/meta.yaml @@ -1,6 +1,6 @@ {% set name = "planemo" %} -{% set version = "0.75.22" %} -{% set sha256 = "ad6b7b0eeb8d180004963b72bad5ec630d396a3ac0c36f9d1403927413158b8b" %} +{% set version = "0.75.24" %} +{% set sha256 = "a0ee1ace9b5e2a9bf17c735d3b95236e9756921eded7cd9847717dd0adff6e42" %} package: name: {{ name|lower }} @@ -13,11 +13,11 @@ source: build: number: 0 noarch: python - run_exports: - - {{ pin_subpackage('planemo', max_pin='x.x') }} - script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv entry_points: - planemo = planemo.cli:planemo + run_exports: + - {{ pin_subpackage('planemo', max_pin='x.x') }} requirements: host: @@ -26,15 +26,12 @@ requirements: run: - python >=3.7 - allure-python-commons - - beautifulsoup4 - bioblend >=1.0.0 - - click + - click !=8.0.2 - cwltool >=1.0.20191225192155 - - docutils - ephemeris >=0.10.3 - - galaxy-containers - - galaxy-tool-util >=23.1,<24.0 - - galaxy-util >=23.1,<24.0 + - galaxy-tool-util >=23.1,!=24.0.0,!=24.0.1,<24.2 + - galaxy-util >=23.1,<24.2 - glob2 - gxformat2 >=0.14.0 - h5py @@ -44,16 +41,16 @@ requirements: - pathvalidate - pyyaml - virtualenv + - stdlib-list # [py < 310] - tabulate - - six >=1.7.0 test: imports: - planemo - planemo.commands - - planemo.cwl + #- planemo.cwl - planemo.database - - planemo.engine + #- planemo.engine - planemo.galaxy - planemo.galaxy.test - planemo.linters @@ -64,10 +61,10 @@ test: - planemo.training - planemo.xml commands: - - planemo --help + #- planemo --help about: - home: 'https://pypi.org/project/planemo/' + home: 'https://github.com/galaxyproject/planemo' summary: 'Command-line utilities to assist in building tools for the Galaxy project (http://galaxyproject.org/).' license: MIT license_family: MIT From 7f855cd42e5fe127bf5c28e2e744f9f95ff014ab Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 24 Jul 2024 00:30:51 -0400 Subject: [PATCH 0797/1514] Update pygcap to 1.2.0 (#49506) --- recipes/pygcap/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pygcap/meta.yaml b/recipes/pygcap/meta.yaml index 6afd9f62cf3d7..cd6f274a87989 100644 --- a/recipes/pygcap/meta.yaml +++ b/recipes/pygcap/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pygcap" %} -{% set version = "1.1.6" %} +{% set version = "1.2.0" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pygcap-{{ version }}.tar.gz - sha256: 4a98ebe034da7e4440cd6874dc581a76a95e10ef91dfd3339c914bed780878af + sha256: 23a1bcd9caa18bd35a78c3bb8ea3a8811cff0d84b32eaef44850348bfe71399e build: number: 0 From 5eb595888d41b8ace5bcab6b4dfbdf196177364c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 24 Jul 2024 01:06:38 -0400 Subject: [PATCH 0798/1514] Update metav to 1.0.5 (#49505) * Update metav to 1.0.5 * edit license --------- Co-authored-by: mencian --- recipes/metav/build.sh | 4 ---- recipes/metav/meta.yaml | 19 ++++++++++--------- 2 files changed, 10 insertions(+), 13 deletions(-) delete mode 100644 recipes/metav/build.sh diff --git a/recipes/metav/build.sh b/recipes/metav/build.sh deleted file mode 100644 index c65b9bb44d4b1..0000000000000 --- a/recipes/metav/build.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -# build -$PYTHON setup.py install --single-version-externally-managed --record=record.txt \ No newline at end of file diff --git a/recipes/metav/meta.yaml b/recipes/metav/meta.yaml index 8d066718670c2..3423876580db3 100644 --- a/recipes/metav/meta.yaml +++ b/recipes/metav/meta.yaml @@ -1,5 +1,5 @@ {% set name = "metav" %} -{% set version = "1.0.4" %} +{% set version = "1.0.5" %} package: name: "{{ name }}" @@ -7,21 +7,21 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 5a1bd914c3c180f2c73c77bb093fa7706853e6f8b718425dc1667a9f44356c6f + sha256: f1cbf33630a26e9c34276244e08e2d56fa7128aca2553347700065f6536cdd65 build: - number: 1 + number: 0 noarch: python + entry_points: + - metav = metav.main:starts + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir run_exports: - {{ pin_subpackage('metav', max_pin="x") }} - requirements: host: - python >=3.5 - pip - - setuptools - run: - python >=3.5 - trimmomatic >=0.39 @@ -37,10 +37,11 @@ test: about: home: "https://github.com/ZhijianZhou01/metav" - license: "LGPL-2.1-or-later" - license_family: "LGPL" + license: "GPL-3.0-or-later" + license_family: "GPL3" license_file: LICENSE - summary: "rapid detection and classification of viruses in metagenomics sequencing." + summary: "Rapid detection and classification of viruses in metagenomics sequencing." + dev_url: "https://github.com/ZhijianZhou01/metav" extra: recipe-maintainers: From b0374b7af19f5e3a8f898440b915f3059a481682 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 24 Jul 2024 01:36:36 -0400 Subject: [PATCH 0799/1514] Update pygcap to 1.2.2 (#49508) --- recipes/pygcap/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pygcap/meta.yaml b/recipes/pygcap/meta.yaml index cd6f274a87989..eb274b6fc0600 100644 --- a/recipes/pygcap/meta.yaml +++ b/recipes/pygcap/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pygcap" %} -{% set version = "1.2.0" %} +{% set version = "1.2.2" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pygcap-{{ version }}.tar.gz - sha256: 23a1bcd9caa18bd35a78c3bb8ea3a8811cff0d84b32eaef44850348bfe71399e + sha256: ef1ee2187e2ba0c5a847b51ae2f15023e45faeb6bdec45de8358d9f9c37ccd13 build: number: 0 From 7fb639e282cb6356a40116d9e35cf339538e4935 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 24 Jul 2024 01:47:23 -0400 Subject: [PATCH 0800/1514] Update dnaapler to 0.8.0 (#49509) * Update dnaapler to 0.8.0 * add --no-cache-dir to attempt to decrease package size --------- Co-authored-by: mencian --- recipes/dnaapler/meta.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/recipes/dnaapler/meta.yaml b/recipes/dnaapler/meta.yaml index afdd8db8dc58a..ca0ab07f0d1c8 100644 --- a/recipes/dnaapler/meta.yaml +++ b/recipes/dnaapler/meta.yaml @@ -1,5 +1,5 @@ {% set name = "dnaapler" %} -{% set version = "0.7.0" %} +{% set version = "0.8.0" %} package: name: {{ name|lower }} @@ -7,16 +7,16 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 1ae921824055e8c4e9f7651ddd4d4011612f863f17cb95b496849de03560304f + sha256: 393c70dc355243200b7652810b3349e763de6bfcc07e168e51308c16cde045ea build: number: 0 noarch: python entry_points: - dnaapler = dnaapler:main - script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv" + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" run_exports: - - {{ pin_subpackage('dnaapler', max_pin='x') }} + - {{ pin_subpackage('dnaapler', max_pin='x.x') }} requirements: host: @@ -46,6 +46,7 @@ about: license_file: LICENSE summary: Reorients assembled microbial sequences doc_url: https://dnaapler.readthedocs.io/en/latest/ + dev_url: https://github.com/gbouras13/dnaapler extra: recipe-maintainers: From 61026e32d70293e478b7ef3cd0346d2f1d25a43a Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 24 Jul 2024 00:48:10 -0500 Subject: [PATCH 0801/1514] polypolish: add aarch64/arm64 build (#49510) --- recipes/polypolish/build.sh | 4 ---- recipes/polypolish/meta.yaml | 8 ++++++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/recipes/polypolish/build.sh b/recipes/polypolish/build.sh index d70db500fe871..cc6ea610520c3 100644 --- a/recipes/polypolish/build.sh +++ b/recipes/polypolish/build.sh @@ -1,9 +1,5 @@ #!/bin/bash -euo -# Add workaround for SSH-based Git connections from Rust/cargo. See https://github.com/rust-lang/cargo/issues/2078 for details. -# We set CARGO_HOME because we don't pass on HOME to conda-build, thus rendering the default "${HOME}/.cargo" defunct. -export CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_HOME="${BUILD_PREFIX}/.cargo" - # build statically linked binary with Rust RUST_BACKTRACE=1 cargo install --verbose --path . --root ${PREFIX} diff --git a/recipes/polypolish/meta.yaml b/recipes/polypolish/meta.yaml index 1fb18422206e1..f130383f9422d 100644 --- a/recipes/polypolish/meta.yaml +++ b/recipes/polypolish/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 99ea799352cecf6723b73fb4c5c64dd2091ff1cdab6eef10309e06c642e56855 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('polypolish', max_pin="x.x") }} @@ -17,7 +17,7 @@ requirements: build: - {{ compiler('c') }} - {{ compiler('cxx') }} - - rust >=1.39 + - {{ compiler('rust') }} - pkg-config - clangdev - make @@ -37,8 +37,12 @@ about: license_file: LICENSE summary: Polishing genome assemblies with short reads. doc_url: https://github.com/rrwick/Polypolish/wiki + dev_url: https://github.com/rrwick/Polypolish extra: identifiers: - doi:10.1371/journal.pcbi.1009802 - biotools:polypolish + additional-platforms: + - linux-aarch64 + - osx-arm64 From bf32ffe558dae7f08cec2a821357456ebd57848f Mon Sep 17 00:00:00 2001 From: Samuel Aroney <41124903+AroneyS@users.noreply.github.com> Date: Wed, 24 Jul 2024 16:29:32 +1000 Subject: [PATCH 0802/1514] Update binchicken to 0.12.0 (#49511) * update binchicken to v0.12.0 * clean up recipe --------- Co-authored-by: mencian --- recipes/binchicken/meta.yaml | 51 ++++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/recipes/binchicken/meta.yaml b/recipes/binchicken/meta.yaml index dc8ac18b55db2..9989b66e49e5f 100644 --- a/recipes/binchicken/meta.yaml +++ b/recipes/binchicken/meta.yaml @@ -1,38 +1,43 @@ -{% set version = "0.11.0" %} +{% set version = "0.12.0" %} {% set name = "binchicken" %} -{% set sha256 = "2494f388ac0634341ba6f844df5e35fb30808ad50695016165fc7f88228de179" %} +{% set sha256 = "3210e8ddcceeb77c18d04a16686d27b47018d229e5105c3d38af92a5f228f2d4" %} package: - name: binchicken + name: {{ name }} version: {{ version }} +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz + sha256: {{ sha256 }} + build: number: 0 noarch: python - script: "{{ PYTHON }} -m pip install . -vv" + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" + entry_points: + - binchicken = binchicken.binchicken:main + - ibis = binchicken.binchicken:main run_exports: - - {{ pin_subpackage('binchicken', max_pin="x") }} - -source: - url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: {{ sha256 }} + - {{ pin_subpackage('binchicken', max_pin="x.x") }} requirements: host: - - python >=3.8 + - python >=3.10 - pip run: - - python =3.10.* - - snakemake =7.32.* - - mamba =1.4.* - - networkx =3.1 - - bird_tool_utils_python =0.4.* - - extern =0.4.* - - ruamel.yaml =0.17.* - - polars =0.20.* - - pigz =2.3.* - - pyarrow =12.0.* - - parallel =20230522 + - python >=3.10 + - snakemake-minimal >=6.0.5,<8 + - mamba + - networkx + - bird_tool_utils_python + - extern + - ruamel.yaml >=0.15.99 + - polars + - pigz + - pyarrow + - parallel + - sourmash =4.8.* + - sourmash_plugin_branchwater =0.9.* - pyopenssl >22.1.0 test: @@ -41,7 +46,9 @@ test: about: home: https://github.com/aroneys/binchicken - license: GNU General Public v3 (GPLv3) + license: GPL-3.0-or-later license_family: GPL3 license_file: LICENSE summary: Targeted recovery of low abundance metagenome assembled genomes through intelligent coassembly + dev_url: https://github.com/aroneys/binchicken + doc_url: https://aroneys.github.io/binchicken From fd5953fc792070bfeb1835c6fa7fd2cc2cc9b8d3 Mon Sep 17 00:00:00 2001 From: Anton Kravchenko Date: Wed, 24 Jul 2024 02:16:04 -0700 Subject: [PATCH 0803/1514] kallisto dependency was reverted to 0.44 (#49512) --- recipes/arcas-hla/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/arcas-hla/meta.yaml b/recipes/arcas-hla/meta.yaml index c1508a625042b..b1d2fa23462d1 100644 --- a/recipes/arcas-hla/meta.yaml +++ b/recipes/arcas-hla/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 75bef1a5596a9dfabccb901420f5d852d6d8a15d9c676e4c94787b8d25dd708b build: - number: 1 + number: 2 noarch: generic run_exports: - {{ pin_subpackage("arcas-hla", max_pin="x.x") }} @@ -21,7 +21,7 @@ requirements: - coreutils - git - git-lfs - - kallisto ==0.50.1 + - kallisto ==0.44 - numpy - pandas - pigz From f8218b465339745434a31a35a97329c846c93a44 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Wed, 24 Jul 2024 15:30:39 +0200 Subject: [PATCH 0804/1514] Build iqtree2 with cmaple feature, reduce pkg size from 8MB to 3MB (#49360) --- recipes/iqtree/build.sh | 49 ++++++++++++++++++++++++++++------------ recipes/iqtree/meta.yaml | 36 ++++++++++++++++++++--------- recipes/iqtree/patch | 25 ++++++++++++++++++++ 3 files changed, 84 insertions(+), 26 deletions(-) create mode 100644 recipes/iqtree/patch diff --git a/recipes/iqtree/build.sh b/recipes/iqtree/build.sh index 775b3c1099a17..9fcec17dbde4a 100644 --- a/recipes/iqtree/build.sh +++ b/recipes/iqtree/build.sh @@ -4,29 +4,48 @@ set -ex export INCLUDES="-I${PREFIX}/include" export LIBPATH="-L${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" -export CFLAGS="${CFLAGS} -O3" -export CPPFLAGS="${CPPFLAGS} -I${PREFIX}/include" -export CXXFLAGS="${CXXFLAGS} -std=c++14" +export CFLAGS="${CFLAGS} -O3 -w" +export CPPFLAGS="${CPPFLAGS} -I${PREFIX}/include -w" +export CXXFLAGS="${CXXFLAGS} -w" if [ "$(uname)" == Darwin ]; then export CMAKE_C_COMPILER="clang" export CMAKE_CXX_COMPILER="clang++" + export CXXFLAGS="${CXXFLAGS} -mmacosx-version-min=11" + # `which` is required, as full paths needed + # see https://github.com/bioconda/bioconda-recipes/pull/49360#discussion_r1686187284 + CC=$(which "$CC") + CXX=$(which "$CXX") + AR=$(which "$AR") + RANLIB=$(which "$RANLIB") + DCMAKE_ARGS=(-DCMAKE_C_COMPILER="${CC}" -DCMAKE_CXX_COMPILER="${CXX}" + -DCMAKE_CXX_COMPILER_AR="${AR}" -DCMAKE_CXX_COMPILER_RANLIB="${RANLIB}") fi cmake -S . -B build -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DCMAKE_BUILD_TYPE=Release \ - -DUSE_LSD2=ON -DIQTREE_FLAGS=omp -DCMAKE_CXX_COMPILER="${CXX}" \ - -DCMAKE_CXX_FLAGS="${CXXFLAGS}" -Wno-dev -Wno-deprecated --no-warn-unused-cli + -GNinja \ + -DUSE_LSD2=ON -DIQTREE_FLAGS=omp -DUSE_CMAPLE=ON \ + -DCMAKE_CXX_FLAGS="${CXXFLAGS}" "${DCMAKE_ARGS[@]}" \ + -DBUILD_GMOCK=OFF -DINSTALL_GTEST=OFF \ + -Wno-dev -Wno-deprecated --no-warn-unused-cli -case $(uname -m) in - aarch64) - JOBS=1 # CircleCI's arm.medium VM runs out of memory with higher values - ;; - *) - JOBS=${CPU_COUNT} - ;; -esac +# Detect if we are running on CircleCI's arm.medium VM +# If CPU_COUNT is 4, we are on CircleCI's arm.large VM +JOBS=${CPU_COUNT} +if [[ "$(uname -m)" == "aarch64" ]] && [[ "${CPU_COUNT}" -lt 4 ]]; then + JOBS=1 # CircleCI's arm.medium VM runs out of memory with higher values +fi -cmake --build build --target install -j ${JOBS} +VERBOSE=1 cmake --build build --target install -j "${JOBS}" chmod 755 "${PREFIX}/bin/iqtree2" -cp -f "${PREFIX}"/bin/iqtree2 "${PREFIX}"/bin/iqtree + +# Use symlink to not duplicate the binary, saving space +ln -s "${PREFIX}"/bin/iqtree2 "${PREFIX}"/bin/iqtree + +# Remove example data files +for file in "${PREFIX}/example"* "${PREFIX}/models.nex" "${PREFIX}/bin/iqtree2-aa"; do + if [ -f "$file" ]; then + rm "$file" + fi +done diff --git a/recipes/iqtree/meta.yaml b/recipes/iqtree/meta.yaml index d973ad4ff8ea5..6c0b3e3a4795c 100644 --- a/recipes/iqtree/meta.yaml +++ b/recipes/iqtree/meta.yaml @@ -1,40 +1,47 @@ {% set name = "IQTREE" %} {% set version = "2.3.5" %} -{% set sha256 = "8e323e0b7c46e97901d3500f11e810703e0e5d25848188047eca9602d03fa6b1" %} package: name: {{ name|lower }} version: {{ version | replace("-", "_") }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('iqtree', max_pin="x") }} source: - - url: https://github.com/iqtree/iqtree2/archive/refs/tags/v{{ version }}.tar.gz - sha256: {{ sha256 }} - - url: https://github.com/tothuhien/lsd2/archive/refs/tags/v.2.4.1.tar.gz - sha256: 3d0921c96edb8f30498dc8a27878a76d785516043fbede4a72eefd84b5955458 - folder: lsd2 + # using git_url rather than tarball due to use of 2 submodules by iqtree (lsd2, cmaple) + # Previously, the submodules were specified as source tarballs themselves + # But the submodules weren't updated when iqtree was, hence switch to git_url + # see discussion https://github.com/bioconda/bioconda-recipes/pull/49360/files#r1686415630 + git_url: https://github.com/iqtree/iqtree2.git + git_rev: v{{ version }} + sha256: unused + patches: + - "patch" requirements: build: + - {{ compiler('c') }} - {{ compiler('cxx') }} - - make - cmake + - ninja host: - libgomp # [linux] - llvm-openmp # [osx] - - ld64 # [osx] - boost-cpp - eigen - - zlib - test: + source_files: + - cmaple/example/input.fa commands: - iqtree - iqtree2 + # Mulled builds don't work with source_files + - iqtree --pathogen-force -s cmaple/example/input.fa # [osx] + # Test that the CMAPLE submodule is working + - grep -v "not compiled with CMAPLE integrated" cmaple/example/input.fa.log # [osx] about: home: "http://www.iqtree.org" @@ -46,6 +53,9 @@ about: doc_url: "http://www.iqtree.org/doc" extra: + skip-lints: + # uses submodules + - uses_vcs_url additional-platforms: - linux-aarch64 - osx-arm64 @@ -55,4 +65,8 @@ extra: - doi:10.1038/nmeth.4285 - doi:10.1093/molbev/msx281 - doi:10.1093/sysbio/syae008 + # cmaple + - doi:10.1093/molbev/msae134 - usegalaxy-eu:{{ name|lower }} + recipe-maintainers: + - corneliusroemer diff --git a/recipes/iqtree/patch b/recipes/iqtree/patch new file mode 100644 index 0000000000000..d93fd391f1781 --- /dev/null +++ b/recipes/iqtree/patch @@ -0,0 +1,25 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ca5ebac7..f88c4410 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -204,16 +204,16 @@ if (WIN32) + elseif (APPLE) + message("Target OS : Mac OS X") + if(OSX_NATIVE_ARCHITECTURE STREQUAL "arm64") +- add_definitions("--target=arm64-apple-macos10.5") +- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --target=arm64-apple-macos12.0.1") ++ add_definitions("--target=arm64-apple-macos11") ++ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --target=arm64-apple-macos11") + else() + # to be compatible back to Mac OS X 10.7 + if (IQTREE_FLAGS MATCHES "oldmac") + add_definitions("-mmacosx-version-min=10.5") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -mmacosx-version-min=10.5") + else() +- add_definitions("--target=x86_64-apple-macos10.7") +- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --target=x86_64-apple-macos10.7") ++ add_definitions("--target=x86_64-apple-macos10.13") ++ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --target=x86_64-apple-macos10.13") + endif() + endif() + SET(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES}) From add58a8a407bcd184aa6a23058dadf991869090b Mon Sep 17 00:00:00 2001 From: Edmund Miller <20095261+edmundmiller@users.noreply.github.com> Date: Wed, 24 Jul 2024 09:21:13 -0500 Subject: [PATCH 0805/1514] Static link NARFMAP (#49518) * build: Add STATIC=1 * build: Add LD Library path * build: Lock down boost version to have static files * chore: Bump build number --- recipes/narfmap/build.sh | 2 ++ recipes/narfmap/meta.yaml | 12 +++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/recipes/narfmap/build.sh b/recipes/narfmap/build.sh index 99c92de8a6f32..f48b3d6bd2db5 100644 --- a/recipes/narfmap/build.sh +++ b/recipes/narfmap/build.sh @@ -3,6 +3,8 @@ export BOOST_INCLUDE_DIR="${PREFIX}/include" export BOOST_LIBRARY_DIR="${PREFIX}/lib" export HAS_GTEST=0 +export LD_LIBRARY_PATH=${PREFIX}/lib +export STATIC=1 # fix build number in config sed -i.bak 's/VERSION_STRING.*/VERSION_STRING="${PKG_VERSION}"/' config.mk diff --git a/recipes/narfmap/meta.yaml b/recipes/narfmap/meta.yaml index ed77a73e4c577..5db049e65b13a 100644 --- a/recipes/narfmap/meta.yaml +++ b/recipes/narfmap/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 2 + number: 3 skip: True # [osx] run_exports: - {{ pin_subpackage("narfmap", max_pin="x") }} @@ -23,12 +23,14 @@ requirements: - {{ compiler('cxx') }} host: - zlib - - boost - - boost-cpp + # Last version of conda-forge::boost that included static files (.a) + - boost >=1.69, <=1.71 + - boost-cpp >=1.69, <=1.71 # last version to have static libs run: - zlib - - boost - - boost-cpp + # Last version of conda-forge::boost that included static files (.a) + - boost >=1.69, <=1.71 + - boost-cpp >=1.69, <=1.71 # last version to have static libs test: commands: From ee37e0efadf4a191c5cdb808614cb76c2345960b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 24 Jul 2024 10:35:51 -0400 Subject: [PATCH 0806/1514] Update elastic-blast to 1.3.1 (#49515) * Update elastic-blast to 1.3.1 * Get source distribution from pypi, removed version patch --------- Co-authored-by: Greg Boratyn --- recipes/elastic-blast/meta.yaml | 10 ++++------ recipes/elastic-blast/version.patch | 9 --------- 2 files changed, 4 insertions(+), 15 deletions(-) delete mode 100644 recipes/elastic-blast/version.patch diff --git a/recipes/elastic-blast/meta.yaml b/recipes/elastic-blast/meta.yaml index edd911e78d3f9..b573d8e789933 100644 --- a/recipes/elastic-blast/meta.yaml +++ b/recipes/elastic-blast/meta.yaml @@ -1,18 +1,16 @@ {% set name = "elastic-blast" %} -{% set version = "1.3.0" %} +{% set version = "1.3.1" %} package: name: {{ name }} version: {{ version }} source: - url: https://github.com/ncbi/elastic-blast/archive/refs/tags/{{ version }}.tar.gz - sha256: 1ac45f41430078de0fa89733079f5ba7147e7c97719ff6f856979b4b5661a52c - patches: - - version.patch + url: https://files.pythonhosted.org/packages/95/5e/00375acbe2a0c666c8643cbbf9c5c7d5ed6c74eea80767f7d4a3f05ffda9/elastic_blast-{{ version }}.tar.gz + sha256: ed64887dedfc1da109ea1ddb05e96c0e0268e6a372656f8412a7bac973e6e31c build: - number: 1 + number: 0 noarch: python script: {{ PYTHON }} -m pip install . -vvv run_exports: diff --git a/recipes/elastic-blast/version.patch b/recipes/elastic-blast/version.patch deleted file mode 100644 index d4b678a46142f..0000000000000 --- a/recipes/elastic-blast/version.patch +++ /dev/null @@ -1,9 +0,0 @@ ---- a/setup.cfg -+++ b/setup.cfg -@@ -50,4 +50,5 @@ data_files = - Makefile = Makefile - - [auto-version] --type = git-pep440 -+type = fixed -+value = 1.3.0 From 2ef334387bb7124cd91cd2f416da7f555b86931e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 24 Jul 2024 11:26:54 -0400 Subject: [PATCH 0807/1514] Update pybiolib to 1.1.2244 (#49519) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index d599c7b7c2c13..2ecfc649d42a0 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.1.2236" %} +{% set version = "1.1.2244" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: e4e87e11d48de73b311b099a4307c258e6e38c8901dd2d9d1a82d3c035ca5718 + sha256: af57cacff6cbf4c54c70b308d0c3a48757285795c5983f7e596437f9981ba62f build: noarch: python From 9f7a73bed633972689383cc74e620a6feea13dec Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 24 Jul 2024 11:27:01 -0400 Subject: [PATCH 0808/1514] Update taxmyphage to 0.3.0 (#49516) --- recipes/taxmyphage/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/taxmyphage/meta.yaml b/recipes/taxmyphage/meta.yaml index fac201dd375df..c0e805bc104fa 100644 --- a/recipes/taxmyphage/meta.yaml +++ b/recipes/taxmyphage/meta.yaml @@ -1,5 +1,5 @@ {% set name = "taxmyphage" %} -{% set version = "0.2.9" %} +{% set version = "0.3.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/taxmyphage-{{ version }}.tar.gz - sha256: 53208a3490d4c6ca0dab9b762ab0c9c609dcff2489926e3659277680fb4ef6b6 + sha256: 821cb48a758e1587401b1eb48029c68cb3411f6240e87723b8c5aff5f28e6212 build: entry_points: From da6b2fe5bfb22d5d55225922edbcc77c43c80503 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 24 Jul 2024 11:38:00 -0400 Subject: [PATCH 0809/1514] Update amdirt to 1.6.2 (#49524) --- recipes/amdirt/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/amdirt/meta.yaml b/recipes/amdirt/meta.yaml index 7969b929a6ad4..22f2028220053 100644 --- a/recipes/amdirt/meta.yaml +++ b/recipes/amdirt/meta.yaml @@ -1,5 +1,5 @@ {% set name = "amdirt" %} -{% set version = "1.6.1" %} +{% set version = "1.6.2" %} package: name: {{ name|lower }} @@ -7,14 +7,14 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/AMDirT-{{ version }}.tar.gz - sha256: dbeb4f50972ad2c01aeb3221d0a8bd35e1cb7bf45418dd913fa45fa1c2c9050c + sha256: 9e7ac732ac9faca5900b18c42d2fee9528081d97614f629ae81c7e1052aac46e build: entry_points: - AMDirT = AMDirT.cli:cli noarch: python script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv - number: 1 + number: 0 run_exports: - {{ pin_subpackage("amdirt", max_pin="x") }} From bbb17d8680329030919ff5154d15415b5310f231 Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Wed, 24 Jul 2024 11:57:07 -0400 Subject: [PATCH 0810/1514] khmer: fix build failure formatting (#49521) --- recipes/khmer/build_failure.linux-64.yaml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/recipes/khmer/build_failure.linux-64.yaml b/recipes/khmer/build_failure.linux-64.yaml index 9afdfa5776715..9faa1c70a56c4 100644 --- a/recipes/khmer/build_failure.linux-64.yaml +++ b/recipes/khmer/build_failure.linux-64.yaml @@ -1,17 +1,17 @@ recipe_sha: 27b4bbe98422ab7e905e27f1693fcc531b4fe44fc7ec6d8fd817fe958e90da78 # The hash of the recipe's meta.yaml at which this recipe failed to build. skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. log: |- -01:00:23 BIOCONDA INFO (OUT) /opt/conda/conda-bld/khmer_1721696148356/_build_env/bin/x86_64-conda-linux-gnu-cc -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -fPIC -O2 -isystem /opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -fdebug-prefix-map=/opt/conda/conda-bld/khmer_1721696148356/work=/usr/local/src/conda/khmer-3.0.0a3 -fdebug-prefix-map=/opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho=/usr/local/src/conda-prefix -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -fPIC -DVERSION=3.0.0a3 -DSEQAN_HAS_BZIP2=1 -DSEQAN_HAS_ZLIB=1 -UNO_UNIQUE_RC -Iinclude -I. -Iinclude -Ithird-party/seqan/core/include -Ithird-party/smhasher -Ithird-party/cqf -Ithird-party/rollinghash -I/opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/python3.11 -c khmer/_oxli/graphs.cpp -o build/temp.linux-x86_64-cpython-311/khmer/_oxli/graphs.o -O3 -std=c++11 -fopenmp -01:00:23 BIOCONDA INFO (OUT) khmer/_oxli/graphs.cpp:196:12: fatal error: longintrepr.h: No such file or directory -01:00:23 BIOCONDA INFO (OUT) 196 | #include "longintrepr.h" -01:00:23 BIOCONDA INFO (OUT) | ^~~~~~~~~~~~~~~ -01:00:23 BIOCONDA INFO (OUT) compilation terminated. -01:00:23 BIOCONDA INFO (OUT) error: command '/opt/conda/conda-bld/khmer_1721696148356/_build_env/bin/x86_64-conda-linux-gnu-cc' failed with exit code 1 -01:00:24 BIOCONDA INFO (OUT) error: subprocess-exited-with-error -01:00:24 BIOCONDA INFO (OUT) -01:00:24 BIOCONDA INFO (OUT) × python setup.py bdist_wheel did not run successfully. -01:00:24 BIOCONDA INFO (OUT) │ exit code: 1 -01:00:24 BIOCONDA INFO (OUT) ╰─> See above for output. + 01:00:23 BIOCONDA INFO (OUT) /opt/conda/conda-bld/khmer_1721696148356/_build_env/bin/x86_64-conda-linux-gnu-cc -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -fPIC -O2 -isystem /opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -fdebug-prefix-map=/opt/conda/conda-bld/khmer_1721696148356/work=/usr/local/src/conda/khmer-3.0.0a3 -fdebug-prefix-map=/opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho=/usr/local/src/conda-prefix -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include -fPIC -DVERSION=3.0.0a3 -DSEQAN_HAS_BZIP2=1 -DSEQAN_HAS_ZLIB=1 -UNO_UNIQUE_RC -Iinclude -I. -Iinclude -Ithird-party/seqan/core/include -Ithird-party/smhasher -Ithird-party/cqf -Ithird-party/rollinghash -I/opt/conda/conda-bld/khmer_1721696148356/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/include/python3.11 -c khmer/_oxli/graphs.cpp -o build/temp.linux-x86_64-cpython-311/khmer/_oxli/graphs.o -O3 -std=c++11 -fopenmp + 01:00:23 BIOCONDA INFO (OUT) khmer/_oxli/graphs.cpp:196:12: fatal error: longintrepr.h: No such file or directory + 01:00:23 BIOCONDA INFO (OUT) 196 | #include "longintrepr.h" + 01:00:23 BIOCONDA INFO (OUT) | ^~~~~~~~~~~~~~~ + 01:00:23 BIOCONDA INFO (OUT) compilation terminated. + 01:00:23 BIOCONDA INFO (OUT) error: command '/opt/conda/conda-bld/khmer_1721696148356/_build_env/bin/x86_64-conda-linux-gnu-cc' failed with exit code 1 + 01:00:24 BIOCONDA INFO (OUT) error: subprocess-exited-with-error + 01:00:24 BIOCONDA INFO (OUT) + 01:00:24 BIOCONDA INFO (OUT) python setup.py bdist_wheel did not run successfully. + 01:00:24 BIOCONDA INFO (OUT) │ exit code: 1 + 01:00:24 BIOCONDA INFO (OUT) ╰─> See above for output. reason: |- breaks in nightly build category: |- From b6800c49ce2413cefb81fc2688efa0044f38ec83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Plaza=20O=C3=B1ate?= <4588656+fplazaonate@users.noreply.github.com> Date: Wed, 24 Jul 2024 17:59:36 +0200 Subject: [PATCH 0811/1514] Add eskrim recipe (#49517) --- recipes/eskrim/meta.yaml | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 recipes/eskrim/meta.yaml diff --git a/recipes/eskrim/meta.yaml b/recipes/eskrim/meta.yaml new file mode 100644 index 0000000000000..6728087045e83 --- /dev/null +++ b/recipes/eskrim/meta.yaml @@ -0,0 +1,36 @@ +{% set name = "eskrim" %} +{% set version = "1.0.9" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/eskrim-{{ version }}.tar.gz + sha256: de2888bc281f4d2e7e66e1219cce0c1a193f82873ecb35e47e8882a31331b5dc + +build: + noarch: python + number: 0 + script: {{ PYTHON }} -m pip install . --no-deps -vv + run_exports: + - {{ pin_subpackage('eskrim', max_pin="x.x") }} + +requirements: + host: + - python >=3.12 + - poetry + run: + - python >=3.12 + - kmer-jellyfish >=2.3.1 +test: + commands: + - eskrim -h + +about: + home: https://forgemia.inra.fr/metagenopolis/eskrim + license: GPL-3.0-or-later + license_file: COPYING + summary: 'ESKRIM: EStimate with K-mers the RIchness in a Microbiome' + description: ESKRIM is a reference-free tool that compares microbial richness in shotgun metagenomic samples by counting k-mers + license_family: GPL3 From af09d1e7b861f6563944ddc40e6a885b87011adf Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 24 Jul 2024 12:29:03 -0400 Subject: [PATCH 0812/1514] Update hits to 0.4.3 (#49520) Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/hits/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/hits/meta.yaml b/recipes/hits/meta.yaml index 6012f79b190b9..76845592b805c 100644 --- a/recipes/hits/meta.yaml +++ b/recipes/hits/meta.yaml @@ -1,6 +1,6 @@ {% set name = "hits" %} -{% set version = "0.4.2" %} -{% set sha256 = "0e9bab5b353ca907b1c2c8d9d68724716210acc4d50fbaa4f20b6e25902f80dd" %} +{% set version = "0.4.3" %} +{% set sha256 = "a100289a2724f48ba1d95c430d56899d382208f6f5d35283488917b9d59b620a" %} package: name: {{ name|lower }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir --use-pep517 run_exports: - {{ pin_subpackage('hits', max_pin="x.x") }} From 12990abc095006f4f389208df2fb3e24e49a48a4 Mon Sep 17 00:00:00 2001 From: Cade Mirchandani Date: Wed, 24 Jul 2024 09:34:11 -0700 Subject: [PATCH 0813/1514] Update d4tools (#49499) * update d4tools to 3.10 * update url and shasum * clean up recipe * add gcc back * clean up recipe --------- Co-authored-by: mencian --- recipes/d4tools/build.sh | 14 ++++---------- recipes/d4tools/meta.yaml | 21 +++++++++++++-------- 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/recipes/d4tools/build.sh b/recipes/d4tools/build.sh index 3e230e2259342..aa736275faff8 100644 --- a/recipes/d4tools/build.sh +++ b/recipes/d4tools/build.sh @@ -1,11 +1,5 @@ -#!/bin/bash -e +#!/bin/bash -ex -set -x - -# TODO: Remove the following export when pinning is updated and we use -# {{ compiler('rust') }} in the recipe. -export \ - CARGO_NET_GIT_FETCH_WITH_CLI=true \ - CARGO_HOME="${BUILD_PREFIX}/.cargo" - -cargo install --verbose --path=d4tools --root ${PREFIX} +# build statically linked binary with Rust +RUST_BACKTRACE=1 +cargo install --verbose --path=d4tools --root "${PREFIX}" diff --git a/recipes/d4tools/meta.yaml b/recipes/d4tools/meta.yaml index 239cb6310566d..7fb61567b8afe 100644 --- a/recipes/d4tools/meta.yaml +++ b/recipes/d4tools/meta.yaml @@ -1,22 +1,24 @@ -{% set version = "0.3.8" %} +{% set version = "0.3.10" %} package: name: d4tools version: {{ version }} -build: - number: 1 - source: - url: https://github.com/38/d4-format/archive/refs/tags/d4tools-v{{ version }}.tar.gz - sha256: 2b1df781fd40e3e80b9e0871f2ebec53f1b57004baa96547e4d7912def011607 + url: https://github.com/38/d4-format/archive/refs/tags/v{{ version }}.tar.gz + sha256: d3fbe8f063ed1f89148ae0333abc1d5b955f499fc429254f83af464012678d33 + +build: + number: 0 + run_exports: + - {{ pin_subpackage('d4tools', max_pin="x.x") }} requirements: build: - {{ compiler('c') }} - {{ compiler('cxx') }} - - gcc #[not osx] - - rust >=1.30 + - {{ compiler('rust') }} + - gcc # [not osx] - clangdev - pkg-config - make @@ -31,8 +33,11 @@ test: about: home: https://github.com/38/d4-format license: MIT + license_family: MIT summary: | The D4 command line utility program + dev_url: https://github.com/38/d4-format + extra: recipe-maintainers: - haohou From 3d7c2373c799fa45516a3ee9f1d2b279cce2450c Mon Sep 17 00:00:00 2001 From: John Huddleston Date: Wed, 24 Jul 2024 11:05:22 -0700 Subject: [PATCH 0814/1514] Update augur to 25.2.0 (#49531) * Update augur to 25.2.0 * Add python-calamine to augur dependencies --------- Co-authored-by: BiocondaBot <47040946+BiocondaBot@users.noreply.github.com> --- recipes/augur/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/augur/meta.yaml b/recipes/augur/meta.yaml index 07fbe41c998c9..582384a73f4d2 100644 --- a/recipes/augur/meta.yaml +++ b/recipes/augur/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "25.1.1" %} +{% set version = "25.2.0" %} package: name: augur @@ -6,7 +6,7 @@ package: source: url: https://github.com/nextstrain/augur/releases/download/{{ version }}/nextstrain_augur-{{ version }}.tar.gz - sha256: 8374b0815ae4358cbb80892eb5205f6c7264ff5a9cd679f32edb3f3fcab682ef + sha256: 2869033bf551476859792e6fa442204dcd03c37e5a8a6239a19fe2da9e307248 build: number: 0 @@ -34,6 +34,7 @@ requirements: - packaging >=19.2 - pandas >=1.0.0,<2 - pyfastx >=1.0.0,<3 + - python-calamine >=0.2.0 - scipy >=1.0.0,<2 - treetime >=0.11.2,<0.12 - xopen[zstd] >=1.7.0,<3 From 5080fc581b0d65da37df698789b6e04c8846983b Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Wed, 24 Jul 2024 11:10:50 -0700 Subject: [PATCH 0815/1514] Bump ntsynt build - build for linux-aarch64 and osx-arm64 (#49525) --- recipes/ntsynt/meta.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/recipes/ntsynt/meta.yaml b/recipes/ntsynt/meta.yaml index 44809b03ae3c3..1229bf07bc8b3 100644 --- a/recipes/ntsynt/meta.yaml +++ b/recipes/ntsynt/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 71fa06c73481313518a504586b86a2a32cd49006ce6728b40eef0d455b9bb409 build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage("ntsynt", max_pin="x") }} @@ -47,3 +47,8 @@ about: license: GPL-3.0 license_file: LICENSE summary: 'Detecting multi-genome synteny blocks using minimizer graph mapping' + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From 009189ab6483b478f3c13e7d25731b61d9789477 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 24 Jul 2024 16:44:15 -0400 Subject: [PATCH 0816/1514] Update easypqp to 0.1.48 (#49537) --- recipes/easypqp/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/easypqp/meta.yaml b/recipes/easypqp/meta.yaml index 96d0824e74a1a..69f9dba6117d2 100644 --- a/recipes/easypqp/meta.yaml +++ b/recipes/easypqp/meta.yaml @@ -1,6 +1,6 @@ {% set name = "easypqp" %} -{% set version = "0.1.47" %} -{% set sha256 = "5018f2122e7d782c04e75bb48623069ec2be182e9fc477d909a1f98afc6f2b64" %} +{% set version = "0.1.48" %} +{% set sha256 = "417dd35c421d1d61cade8e6989777c6ef93823da6a53c1c2c540a0a2676a0db6" %} package: name: {{ name|lower }} From 0f4d4c7cbbfde822b5ce51fc3c24c8c5309036e9 Mon Sep 17 00:00:00 2001 From: Alan Collins <38288262+Alan-Collins@users.noreply.github.com> Date: Wed, 24 Jul 2024 16:45:42 -0400 Subject: [PATCH 0817/1514] Update el_gato to 1.18.0 (#49534) --- recipes/el_gato/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/el_gato/meta.yaml b/recipes/el_gato/meta.yaml index 7d299d85a9136..bdeb7c6eda601 100644 --- a/recipes/el_gato/meta.yaml +++ b/recipes/el_gato/meta.yaml @@ -1,6 +1,6 @@ {% set name = "el_gato" %} -{% set version = "1.15.2" %} -{% set hash = "ef930f7e0e2940f7d28820fbfc19b2262d1898c82d8699ca47dbc4c851eb11ad" %} +{% set version = "1.18.0" %} +{% set hash = "b00d812d047053823275e62d7f01ed88aaffa906471e073443bb18e85c905995" %} {% set user = "appliedbinf" %} package: @@ -30,6 +30,7 @@ requirements: - ispcr >=33.0 - nextflow - fpdf2 + - packaging test: commands: From df219c9f5390252d2a01b78764dc0630c5d029b8 Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Wed, 24 Jul 2024 13:46:41 -0700 Subject: [PATCH 0818/1514] Bump build for arcs - build for linux-aarch64 and osx-arm64 (#49533) --- recipes/arcs/build.sh | 3 ++- recipes/arcs/meta.yaml | 8 +++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/recipes/arcs/build.sh b/recipes/arcs/build.sh index fcbd111922e56..e79a8c1f15f2b 100644 --- a/recipes/arcs/build.sh +++ b/recipes/arcs/build.sh @@ -1,9 +1,10 @@ #!/bin/sh + if [[ ${target_platform} =~ osx.* ]]; then ./configure --prefix=${PREFIX} CXXFLAGS="${CXXFLAGS} -Wno-error=unused-result -Wno-error=unknown-warning-option" else - ./configure --prefix=${PREFIX} CXXFLAGS="${CXXFLAGS} -Wno-error=unused-result" + ./configure --prefix=${PREFIX} CXXFLAGS="${CXXFLAGS} -Wno-error=unused-result -fopenmp" fi make install diff --git a/recipes/arcs/meta.yaml b/recipes/arcs/meta.yaml index 957cdd792cc43..a9d5122b1c4c3 100644 --- a/recipes/arcs/meta.yaml +++ b/recipes/arcs/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('arcs', max_pin="x") }} @@ -22,6 +22,7 @@ requirements: - sparsehash - zlib - llvm-openmp # [osx] + - libgomp # [linux] - btllib run: - llvm-openmp # [osx] @@ -38,3 +39,8 @@ about: license_family: GPL3 license_file: '{{ environ["RECIPE_DIR"] }}/LICENSE' summary: Scaffolding genome sequence assemblies using linked or long reads + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 \ No newline at end of file From 29fce71040184bbd22838c7e4a9c9ee07f81ae61 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 24 Jul 2024 17:48:15 -0400 Subject: [PATCH 0819/1514] Update aletsch to 1.1.2 (#49539) --- recipes/aletsch/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/aletsch/meta.yaml b/recipes/aletsch/meta.yaml index b29140cf38271..4e9c236f55485 100644 --- a/recipes/aletsch/meta.yaml +++ b/recipes/aletsch/meta.yaml @@ -1,5 +1,5 @@ {% set name = "aletsch" %} -{% set version = "1.1.1" %} +{% set version = "1.1.2" %} package: name: "{{ name }}" @@ -7,10 +7,10 @@ package: source: url: "https://github.com/Shao-Group/aletsch/releases/download/v{{ version }}/aletsch-{{ version }}.tar.gz" - sha256: "3537e90213baa7ea132b1648f4687780537999f3796711cf7398f9168d72f027" + sha256: "b081cfcbd2f232dcddab4f9c6ce11f15f41e4319e1f977dd955cca240748d4b5" build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('aletsch', max_pin="x") }} From e566e586089de4664afc5535fdbd844ccbbb76f2 Mon Sep 17 00:00:00 2001 From: Samuel Aroney <41124903+AroneyS@users.noreply.github.com> Date: Thu, 25 Jul 2024 09:59:13 +1000 Subject: [PATCH 0820/1514] revert pin removal for binchicken (#49542) --- recipes/binchicken/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/binchicken/meta.yaml b/recipes/binchicken/meta.yaml index 9989b66e49e5f..ec608306bb9e9 100644 --- a/recipes/binchicken/meta.yaml +++ b/recipes/binchicken/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 noarch: python script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" entry_points: @@ -25,14 +25,14 @@ requirements: - python >=3.10 - pip run: - - python >=3.10 + - python =3.10.* - snakemake-minimal >=6.0.5,<8 - mamba - networkx - bird_tool_utils_python - extern - ruamel.yaml >=0.15.99 - - polars + - polars =0.20.31 - pigz - pyarrow - parallel From caa7c7f36f79b4088ef7734ab53717fd52118388 Mon Sep 17 00:00:00 2001 From: Samuel Aroney <41124903+AroneyS@users.noreply.github.com> Date: Thu, 25 Jul 2024 13:41:47 +1000 Subject: [PATCH 0821/1514] update binchicken to v0.12.1 (#49547) --- recipes/binchicken/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/binchicken/meta.yaml b/recipes/binchicken/meta.yaml index ec608306bb9e9..c19d5f3a24cf6 100644 --- a/recipes/binchicken/meta.yaml +++ b/recipes/binchicken/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "0.12.0" %} +{% set version = "0.12.1" %} {% set name = "binchicken" %} -{% set sha256 = "3210e8ddcceeb77c18d04a16686d27b47018d229e5105c3d38af92a5f228f2d4" %} +{% set sha256 = "99466aafa8037f683f02c5c68ffc689ba9137709e130cf434cd0d4b8a829a67f" %} package: name: {{ name }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 noarch: python script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" entry_points: From 14dbe65976f8aec596296d2c0df799d01c79495c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 25 Jul 2024 01:56:44 -0400 Subject: [PATCH 0822/1514] Update unicycler to 0.5.1 (#49551) --- recipes/unicycler/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/unicycler/meta.yaml b/recipes/unicycler/meta.yaml index 15496f2541cc7..4fbe7d2e5653e 100644 --- a/recipes/unicycler/meta.yaml +++ b/recipes/unicycler/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.5.0" %} -{% set sha256 = "84a8709c9f2e624225410af702d779ffb0cb06f7c22c20e1f01b989945e08a47" %} +{% set version = "0.5.1" %} +{% set sha256 = "c6b04923363719d7672c8c0b39a357712328ab8471175a2f172effbd9584448e" %} package: name: unicycler @@ -13,7 +13,7 @@ source: - misc.py.patch build: - number: 5 + number: 0 skip: True # [osx] run_exports: - {{ pin_subpackage('unicycler', max_pin='x.x') }} From 71669f6df89e75e58b69993a7d2942d6e927b173 Mon Sep 17 00:00:00 2001 From: Kristina Gomoryova Date: Thu, 25 Jul 2024 09:52:40 +0200 Subject: [PATCH 0823/1514] Add recipe for rcx-tk (#49514) * Initial commit of rcx-tk package * source url adjusted * home section updated * run_exports added * source url adjusted * revert url change * replaced openpyxl with pyxlsx * Helge Hecht added as recipe maintainer --- recipes/rcx-tk/meta.yaml | 52 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 recipes/rcx-tk/meta.yaml diff --git a/recipes/rcx-tk/meta.yaml b/recipes/rcx-tk/meta.yaml new file mode 100644 index 0000000000000..e185552856d94 --- /dev/null +++ b/recipes/rcx-tk/meta.yaml @@ -0,0 +1,52 @@ +{% set name = "rcx-tk" %} +{% set version = "0.1.0" %} + +package: + name: rcx-tk + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/rcx_tk-{{ version }}.tar.gz + sha256: 78eb18c1b90289b9e39d2451cb444ded39134fa9e56744cf692839e7835ddb04 + +build: + entry_points: + - rcx_tk = rcx_tk.__main__:main + run_exports: + - {{ pin_subpackage("rcx-tk", max_pin="x.x") }} + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + +requirements: + host: + - python >=3.11,<4.0 + - poetry-core + - pip + run: + - python >=3.11.0,<4.0.0 + - pandas >=2.2.2,<3.0.0 + - pyxlsx >=1.1.3,<2.0.0 + - pandas-stubs >=2.2.2,<3.0.0 + - mypy >=1.10.1,<2.0.0 + - click >=8.1.7,<9.0.0 + +test: + imports: + - rcx_tk + commands: + - pip check + - rcx_tk --help + requires: + - pip + +about: + home: https://github.com/RECETOX/rcx-tk + summary: This package adjusts and cleans the metadata file provided by a user. + license: MIT + license_file: LICENSE + +extra: + recipe-maintainers: + - KristinaGomoryova + - hechth From 223afa87493c1595dbdadacd2cf8c43ca561eaae Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 25 Jul 2024 08:56:14 -0400 Subject: [PATCH 0824/1514] Update locityper to 0.16.5 (#49555) --- recipes/locityper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/locityper/meta.yaml b/recipes/locityper/meta.yaml index c100e4f7eb39d..ffdfcf067f992 100644 --- a/recipes/locityper/meta.yaml +++ b/recipes/locityper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "locityper" %} -{% set version = "0.16.0" %} +{% set version = "0.16.5" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/tprodanov/locityper/archive/refs/tags/v{{ version }}.tar.gz - sha256: f5594bf0d361df7ea5736e882303f8ec78b77e3af734dd78d0b05e63dc2dca5f + sha256: 59324bd91546f199838e328eb1b9fdcb7f9bebc2125f8b018812fc90836b9bd0 build: number: 0 From d59edb63ef3924b749207429e214d3dc428bb690 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 25 Jul 2024 08:56:41 -0400 Subject: [PATCH 0825/1514] Update micom to 0.36.0 (#49552) --- recipes/micom/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/micom/meta.yaml b/recipes/micom/meta.yaml index 13e69607e3381..9f057b17a3d3b 100644 --- a/recipes/micom/meta.yaml +++ b/recipes/micom/meta.yaml @@ -1,5 +1,5 @@ {% set name = "micom" %} -{% set version = "0.35.0" %} +{% set version = "0.36.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 0df2fbb3282c10e1de6522bf104e39d9540c1b1a92c63cc6882bee9980e61ae3 + sha256: bde5f8ab886a9294e11ccb2be63d399e2baffadb9775ef96182e88966aa37e34 build: number: 0 From b4e3186a6a647f6a087440e4c40c9d750f7b6093 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 25 Jul 2024 08:57:13 -0400 Subject: [PATCH 0826/1514] Update mycotools to 0.31.44 (#49553) --- recipes/mycotools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index 9ba6be3cd58d1..76525f003da4e 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mycotools" %} -{% set version = "0.31.43" %} +{% set version = "0.31.44" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mycotools-{{ version }}.tar.gz - sha256: 1df89c05a89cfc82fa1d94f3e3a2f82cc0c4b4f7373ab3063f0f804ad3413914 + sha256: 48eb2b467fffbf8e4c681378b3a17d2ca127e0ed122dc41d8f2ef9b52984cc29 build: entry_points: From 01215da3c6ec0942c10ef45de7afd454a313d410 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 25 Jul 2024 08:58:37 -0400 Subject: [PATCH 0827/1514] Update gencove to 2.18.2 (#49540) --- recipes/gencove/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gencove/meta.yaml b/recipes/gencove/meta.yaml index 820f2fee7f560..845f186c29776 100644 --- a/recipes/gencove/meta.yaml +++ b/recipes/gencove/meta.yaml @@ -1,6 +1,6 @@ {% set name = "gencove" %} -{% set version = "2.18.1" %} -{% set sha256 = "3e9cd5172ba7b72017685de0e6f141584177f74647746ab964f686f5c6470e8b" %} +{% set version = "2.18.2" %} +{% set sha256 = "80ef5a41a5c47ee14d5ee7296480491016bf9e55dc39b8c3f1eb7454ebc400e2" %} package: name: {{ name }} From 7c2ac7e38808ec94188c852294d4bb93e68915d1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 25 Jul 2024 08:59:22 -0400 Subject: [PATCH 0828/1514] Update morpheus to 290 (#49546) --- recipes/morpheus/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/morpheus/meta.yaml b/recipes/morpheus/meta.yaml index f4230238a4989..c71b01f970812 100644 --- a/recipes/morpheus/meta.yaml +++ b/recipes/morpheus/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "288" %} -{% set sha256 = "05f2f502e591d349006eabd23f4c6a3933608d8ad1a2cfa898a46afd3245268a" %} +{% set version = "290" %} +{% set sha256 = "ca138b718debdf131d8b48386c5873b4d3c03f8457179991f814cb5278577609" %} package: name: morpheus From 38adfc8e329d695115ebe7cba9431530458b6a7c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 25 Jul 2024 08:59:52 -0400 Subject: [PATCH 0829/1514] Update pygcap to 1.2.3 (#49548) --- recipes/pygcap/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pygcap/meta.yaml b/recipes/pygcap/meta.yaml index eb274b6fc0600..6a2c7eae82282 100644 --- a/recipes/pygcap/meta.yaml +++ b/recipes/pygcap/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pygcap" %} -{% set version = "1.2.2" %} +{% set version = "1.2.3" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pygcap-{{ version }}.tar.gz - sha256: ef1ee2187e2ba0c5a847b51ae2f15023e45faeb6bdec45de8358d9f9c37ccd13 + sha256: f9f96bff4cfa880746f9d549f58ac4c50758544c7f91fafffb680e654363d477 build: number: 0 From 1b4bb054198e559a939f82bb77e6f3470150d68c Mon Sep 17 00:00:00 2001 From: Vivek Bhardwaj Date: Thu, 25 Jul 2024 15:06:46 +0200 Subject: [PATCH 0830/1514] update sincei (#49535) * add torch * build bump * fix pytorch --- recipes/sincei/meta.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/sincei/meta.yaml b/recipes/sincei/meta.yaml index 046e0abc67dea..1c8dce08e2904 100644 --- a/recipes/sincei/meta.yaml +++ b/recipes/sincei/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 04d60233a9cfadc32601b5ef79b872bc6e08c51bd6909e62a22a9b37ecabd213 build: - number: 0 + number: 1 noarch: python entry_points: - sincei = sincei.sincei:main @@ -29,11 +29,14 @@ requirements: - pandas - deeptools - scanpy + - anndata - loompy - gensim - networkx - leidenalg - python-igraph + - session-info + - pytorch - importlib-metadata test: From 4d02567fc6a4464f5a2395551a4e30a547d04bf7 Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Thu, 25 Jul 2024 06:07:53 -0700 Subject: [PATCH 0831/1514] Bump build for links - builds for linux-aarch64 and osx-arm64 (#49538) * Bump build for links - builds for linux-aarch64 and osx-arm64 * Add run_exports section --- recipes/links/meta.yaml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/recipes/links/meta.yaml b/recipes/links/meta.yaml index 9474248425e4c..4401e28541db5 100644 --- a/recipes/links/meta.yaml +++ b/recipes/links/meta.yaml @@ -10,7 +10,9 @@ source: sha256: {{ sha256 }} build: - number: 4 + number: 5 + run_exports: + - {{ pin_subpackage("links", max_pin="x") }} requirements: build: @@ -29,3 +31,7 @@ about: license: GPLv3 license_file: '{{ environ["RECIPE_DIR"] }}/LICENSE' +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 \ No newline at end of file From 40c678d29a97aae41ef3ef01ac305dd281fe46f7 Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Thu, 25 Jul 2024 06:17:43 -0700 Subject: [PATCH 0832/1514] Update nthits build - build for linux-aarch64 and osx-arm64 (#49541) --- recipes/nthits/meta.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/recipes/nthits/meta.yaml b/recipes/nthits/meta.yaml index ef933a0b68fd5..2e1d256d54b0a 100644 --- a/recipes/nthits/meta.yaml +++ b/recipes/nthits/meta.yaml @@ -10,7 +10,7 @@ source: sha256: ee50e825f2c99f859031fa7e5bfe4cbbc71357108c32863e31b40b950cc077b2 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('nthits', max_pin="x") }} @@ -38,3 +38,8 @@ about: license_family: MIT license_file: LICENSE summary: ntHits is a tool for efficiently counting and filtering k-mers based on their frequencies + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 \ No newline at end of file From c94eaa3d4bf179e392f7f6263be6e6554a9b31cd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 25 Jul 2024 10:47:17 -0400 Subject: [PATCH 0833/1514] Update locityper to 0.16.6 (#49567) --- recipes/locityper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/locityper/meta.yaml b/recipes/locityper/meta.yaml index ffdfcf067f992..90326e88bd02d 100644 --- a/recipes/locityper/meta.yaml +++ b/recipes/locityper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "locityper" %} -{% set version = "0.16.5" %} +{% set version = "0.16.6" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/tprodanov/locityper/archive/refs/tags/v{{ version }}.tar.gz - sha256: 59324bd91546f199838e328eb1b9fdcb7f9bebc2125f8b018812fc90836b9bd0 + sha256: 3be692fd0799e26d6a1b17fadd415ea48d0a98df06df84a9a8184ea577645cfe build: number: 0 From 6fcaa32d840f35b9d6d02bd8a7085e46f99b4027 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 25 Jul 2024 10:55:12 -0400 Subject: [PATCH 0834/1514] Update seqnado to 0.5.3 (#49557) --- recipes/seqnado/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/seqnado/meta.yaml b/recipes/seqnado/meta.yaml index 1adccb88dc283..ec3b91250d2bc 100644 --- a/recipes/seqnado/meta.yaml +++ b/recipes/seqnado/meta.yaml @@ -1,5 +1,5 @@ {% set name = "seqnado" %} -{% set version = "0.5.2" %} +{% set version = "0.5.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/seqnado-{{ version }}.tar.gz - sha256: dde020e7856c521d0bbb5a7d291765ec30315dd4258228acb4e74f82efd3faa1 + sha256: a8614656b340450dd304517cd841a3366d20e65a7d91d601fb11b6f07ced1611 build: From f4ae4aa0891368080f69be3d64a454ebfd72367b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 25 Jul 2024 10:59:39 -0400 Subject: [PATCH 0835/1514] Update pychopper to 2.7.10 (#49558) --- recipes/pychopper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pychopper/meta.yaml b/recipes/pychopper/meta.yaml index d747c663fb446..197ddbe202370 100644 --- a/recipes/pychopper/meta.yaml +++ b/recipes/pychopper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pychopper" %} -{% set version = "2.7.9" %} +{% set version = "2.7.10" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://github.com/epi2me-labs/pychopper/archive/v{{ version }}.tar.gz - sha256: 630d644fbafc3199609e111c1522dc47864c1bfde5cc9682d796974acb97ac70 + sha256: 99be3fd0f3e051868b7fcfa1dd88a12470e2ed0c54c326af95eba83311966595 build: noarch: python From 5aa91b9761209b7e6938dfb27d224ded4968681b Mon Sep 17 00:00:00 2001 From: Pieter Moris <13552343+pmoris@users.noreply.github.com> Date: Thu, 25 Jul 2024 17:01:55 +0200 Subject: [PATCH 0836/1514] Add recipe for dapcy (#49564) --- recipes/dapcy/meta.yaml | 55 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 recipes/dapcy/meta.yaml diff --git a/recipes/dapcy/meta.yaml b/recipes/dapcy/meta.yaml new file mode 100644 index 0000000000000..42b3650aeadb4 --- /dev/null +++ b/recipes/dapcy/meta.yaml @@ -0,0 +1,55 @@ +{% set name = "dapcy" %} +{% set version = "0.1.1" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/dapcy-{{ version }}.tar.gz + sha256: b62440ea8523f05597cd0a889b9eafb68192bd4e481048e859b772ac654ccb93 + +build: + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + run_exports: + - {{ pin_subpackage('dapcy', max_pin="x.x") }} + +requirements: + host: + - python >=3.6 + - pip + run: + - python >=3.6 + - bed-reader + - joblib + - matplotlib-base + - numpy + - pandas + - scikit-learn + - scipy + - seaborn + - sgkit + - aiohttp + - cyvcf2 + - requests + - yarl + +test: + imports: + - dapcy + commands: + - pip check + requires: + - pip + +about: + home: https://gitlab.com/uhasselt-bioinfo/dapcy + summary: An sklearn implementation of discriminant analysis of principal components (DAPC) for population genetics + license: MIT + license_file: LICENSE + +extra: + recipe-maintainers: + - pmoris From 09f1d3f911629857f3c9ac4a92a4e07877ca671d Mon Sep 17 00:00:00 2001 From: Kristina Gomoryova Date: Thu, 25 Jul 2024 18:38:31 +0200 Subject: [PATCH 0837/1514] Add MFAssignR (#49568) * initial commit of the MFAssignR * run_exports added * pin_subpackage corrected * run_exports corrected * Update recipes/r-mfassignr/meta.yaml * Update recipes/r-mfassignr/meta.yaml --------- Co-authored-by: Helge Hecht --- recipes/r-mfassignr/meta.yaml | 56 +++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 recipes/r-mfassignr/meta.yaml diff --git a/recipes/r-mfassignr/meta.yaml b/recipes/r-mfassignr/meta.yaml new file mode 100644 index 0000000000000..c2d1902a1d541 --- /dev/null +++ b/recipes/r-mfassignr/meta.yaml @@ -0,0 +1,56 @@ +{% set name = "mfassignr" %} +{% set version = "1.0.3" %} +{% set github = "https://github.com/RECETOX" %} + +package: + name: "r-{{ name|lower }}" + version: "{{ version }}" + +source: + url: "{{ github }}/MFAssignR/archive/refs/tags/v{{ version }}.tar.gz" + sha256: facb0d53f39d25f7c8ea6a04d87d218a4bf3e72c4b0257f1c028f40f99962a22 + +build: + number: 0 + noarch: generic + rpaths: + - lib/R/lib/ + - lib/ + script: R CMD INSTALL --build . + run_exports: + - {{ pin_subpackage("r-mfassignr", max_pin="x.x") }} + +requirements: + host: + - r-base >=3.4.1 + - r-dplyr >=0.7.6 + - r-tidyr >=0.8.1 + - r-ggplot2 >=3.0.0 + - r-colorRamps >=2.3 + run: + - r-base >=3.4.1 + - r-dplyr >=0.7.6 + - r-tidyr >=0.8.1 + - r-ggplot2 >=3.0.0 + - r-colorRamps >=2.3 + +test: + commands: + - $R -e "library('MFAssignR')" + +about: + home: "{{ github }}/MFAssignR" + license: GPL-3.0-or-later + license_file: LICENSE.md + summary: | + The MFAssignR package was designed for multi-element molecular formula (MF) + assignment of ultrahigh resolution mass spectrometry measurements. + A number of tools for internal mass recalibration, MF assignment, signal-to-noise evaluation, + and unambiguous formula selections are provided. + +extra: + recipe-maintainers: + - hechth + - KristinaGomoryova + container: + extended-base: True From 681ca2f220701a510c6793ea7fa5429e76fca843 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 25 Jul 2024 12:56:09 -0400 Subject: [PATCH 0838/1514] Update lusstr to 0.10 (#49523) * Update lusstr to 0.10 * add streamlit * Add streamlit_option_menu dependency * Fix version pin --------- Co-authored-by: mencian Co-authored-by: Daniel Standage Co-authored-by: Alicia A. Evans <108547992+aliciaaevans@users.noreply.github.com> Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/lusstr/meta.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/recipes/lusstr/meta.yaml b/recipes/lusstr/meta.yaml index 58fb667975528..ae7c92a256713 100644 --- a/recipes/lusstr/meta.yaml +++ b/recipes/lusstr/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.9" %} -{% set sha256 = "abb32bac6d4fd86fbbcd630ef2b254ff66a5658bb3ef6efeb014c7304118561e" %} +{% set version = "0.10" %} +{% set sha256 = "cd4006c8a54249feefb44d26799557d029a8e10f262bad887de11491cf572844" %} package: name: lusstr @@ -13,7 +13,7 @@ build: noarch: python entry_points: - lusstr = lusSTR.cli:main - script: {{ PYTHON }} -m pip install --no-deps --no-build-isolation . -vvv + script: {{ PYTHON }} -m pip install --no-deps --no-build-isolation --no-cache-dir . -vvv number: 0 run_exports: - {{ pin_subpackage('lusstr', max_pin="x.x") }} @@ -30,6 +30,9 @@ requirements: - snakemake-minimal >=7.22.0,<8.0 - pyyaml >=6.0 - matplotlib-base >=3.5.3 + - numpy ==1.26.4 + - streamlit >=1.31.0 + - streamlit_option_menu >=0.3.13 test: imports: From 6cf4f6708690a4cfa86a5f6671caf138dad89053 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 25 Jul 2024 21:54:33 +0300 Subject: [PATCH 0839/1514] centrosome: add linux-aarch64 support (#49562) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/centrosome/meta.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/recipes/centrosome/meta.yaml b/recipes/centrosome/meta.yaml index 5bc0f3c0dafd2..fadf6ee90961e 100644 --- a/recipes/centrosome/meta.yaml +++ b/recipes/centrosome/meta.yaml @@ -10,8 +10,7 @@ source: sha256: 889ce9f79857cdf1d0d04d8d19dd749dfae4a077915fadec223717d5ddcb47fc build: - number: 0 - skip: True # [py<30] + number: 1 script: CFLAGS="$CFLAGS -Wno-error=int-conversion" python -m pip install --no-deps --ignore-installed . -vv run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} @@ -44,3 +43,8 @@ about: license: BSD 3 license_file: LICENSE summary: 'An open source image processing library. Dependency for CellProfiler' + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 \ No newline at end of file From e7b38a6f3b16a7f57fc3ebfc8a7dcab354644f6d Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Thu, 25 Jul 2024 11:56:36 -0700 Subject: [PATCH 0840/1514] Update ntcard build - builds for linux-aarch64 and osx-arm64 (#49570) * Update ntcard build - builds for linux-aarch64 and osx-arm64 * Add run_exports * Add m4 * Ignore erroneous warning * Add to CXX flags --- recipes/ntcard/build.sh | 3 +++ recipes/ntcard/meta.yaml | 12 ++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/recipes/ntcard/build.sh b/recipes/ntcard/build.sh index c23c0bf12130c..5f60fef2b0369 100644 --- a/recipes/ntcard/build.sh +++ b/recipes/ntcard/build.sh @@ -3,6 +3,9 @@ export CFLAGS="-I$PREFIX/include" export LDFLAGS="-L$PREFIX/lib" export CPATH=${PREFIX}/include +export CXXFLAGS="$CXXFLAGS -Wno-array-bounds" + +export M4="$BUILD_PREFIX/bin/m4" sh autogen.sh ./configure --prefix=$PREFIX diff --git a/recipes/ntcard/meta.yaml b/recipes/ntcard/meta.yaml index d75ebcdcca625..06daf06500ea3 100644 --- a/recipes/ntcard/meta.yaml +++ b/recipes/ntcard/meta.yaml @@ -6,7 +6,9 @@ package: version: {{ version }} build: - number: 4 + number: 5 + run_exports: + - {{ pin_subpackage('ntcard', max_pin="x") }} source: url: https://github.com/bcgsc/ntCard/releases/download/{{ version }}/ntcard-{{ version }}.tar.gz @@ -19,12 +21,13 @@ requirements: - automake - autoconf - llvm-openmp # [osx] + - m4 host: - perl - zlib run: - zlib - - llvm-openmp + - llvm-openmp # [osx] test: commands: @@ -35,3 +38,8 @@ about: license: MIT license_file: LICENSE summary: 'Estimating k-mer coverage histogram of genomics data' + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 \ No newline at end of file From f4c74a420588b522fee50087e8d1de3ad1f6d1c5 Mon Sep 17 00:00:00 2001 From: xuxif <2623716586@qq.com> Date: Fri, 26 Jul 2024 12:31:47 +0800 Subject: [PATCH 0841/1514] Update DeepMEI (#49563) --- recipes/deepmei/build.sh | 5 ++++- recipes/deepmei/meta.yaml | 21 ++++++++++++--------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/recipes/deepmei/build.sh b/recipes/deepmei/build.sh index 1b8b9158061ef..b6799d5311c31 100644 --- a/recipes/deepmei/build.sh +++ b/recipes/deepmei/build.sh @@ -1,4 +1,7 @@ +#!/usr/bin/env bash + +set -xe + mkdir -p $PREFIX/bin -ls $PREFIX/bin/ cp -r * $PREFIX/bin/ chmod +x $PREFIX/bin/* diff --git a/recipes/deepmei/meta.yaml b/recipes/deepmei/meta.yaml index 5176e0a8ea618..1890bf99d6fc9 100644 --- a/recipes/deepmei/meta.yaml +++ b/recipes/deepmei/meta.yaml @@ -1,13 +1,15 @@ +{% set version = "1.6.24" %} + package: name: deepmei - version: 1.6.24 + version: {{ version }} source: - url: https://raw.githubusercontent.com/kanglu123/deepmei/deepmei-v1.6.24/deepmei_update_v1.6.24.2.tar.gz + url: https://raw.githubusercontent.com/kanglu123/deepmei/deepmei-v{{ version }}/deepmei_update_v{{ version }}.2.tar.gz sha256: 9a0fa0905776924969907cd71dfdf47e9e7afa8fc0ca277e30b2bf222efee3fd build: noarch: generic - number: 0 + number: 1 run_exports: - {{ pin_subpackage('deepmei', max_pin="x.x") }} @@ -16,20 +18,21 @@ requirements: # List dependencies here. e.g.: # ... any other dependencies - bedtools =2.30.0 - - bwa + - bwa =0.7.17 - pysam =0.17.0 - - repeatmasker - - tensorflow =2.7.0 + - repeatmasker =4.1.2.p1 + - tensorflow >=2.7.0,<=2.10.0 - python >=3.8,<=3.9 - perl =5.32.1 - - samtools + - samtools =1.18 test: commands: - deepmei about: - home: https://github.com/Kanglu123/deepmei/tree/deepmei-v1.6.24 - license: GPL-3.0 + home: https://github.com/Kanglu123/deepmei/tree/deepmei-v{{ version }} + license: GPL-3.0-only license_file: license.txt + license_family: GPL3 summary: A tool to detect mobile elements insertion From ac4ad9ba528564599152db97803cc7aebe8e5ed4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 00:34:20 -0400 Subject: [PATCH 0842/1514] Update savana to 1.2.0 (#49581) --- recipes/savana/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/savana/meta.yaml b/recipes/savana/meta.yaml index 346e21295480e..51c6b9be90c4c 100644 --- a/recipes/savana/meta.yaml +++ b/recipes/savana/meta.yaml @@ -1,5 +1,5 @@ {% set name = "savana" %} -{% set version = "1.0.5" %} +{% set version = "1.2.0" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: "https://github.com/cortes-ciriano-lab/{{ name }}/archive/{{ version }}.tar.gz" - sha256: 987cf91c355f98e45b29fbca32d7766284eea98d63333ed34f60885d8234510e + sha256: 25025d73628e282c7cd5fd6204befe9152d0d695ebd027b87831aa1338b83914 build: number: 0 From ee5d29533283de56ab03df17f61461adf7eb74f2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 00:35:12 -0400 Subject: [PATCH 0843/1514] Update dfast_qc to 1.0.2 (#49582) --- recipes/dfast_qc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/dfast_qc/meta.yaml b/recipes/dfast_qc/meta.yaml index 60cf4b8dc949e..5481d28e3c43b 100644 --- a/recipes/dfast_qc/meta.yaml +++ b/recipes/dfast_qc/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.0.1" %} +{% set version = "1.0.2" %} package: name: dfast_qc @@ -12,7 +12,7 @@ build: source: url: https://github.com/nigyta/dfast_qc/archive/{{ version }}.tar.gz - sha256: 9f8456e953add634cc5e1e2f7181df4836d9a239a86a21184bdcaa75fa89e90d + sha256: 60cc0badf7b2aa8a464b92db717b2853e343b09a18f2c4bf6eeced3c79b0ba7b requirements: From 00744da3de704bd18fd1a084a0201ce9fe2d6954 Mon Sep 17 00:00:00 2001 From: Rauf Salamzade Date: Thu, 25 Jul 2024 23:39:10 -0500 Subject: [PATCH 0844/1514] Upade zol recipe (#49550) --- recipes/zol/build.sh | 1 - recipes/zol/meta.yaml | 15 +++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/recipes/zol/build.sh b/recipes/zol/build.sh index 1060034d46bb1..048162828ed7d 100644 --- a/recipes/zol/build.sh +++ b/recipes/zol/build.sh @@ -1,6 +1,5 @@ #!/bin/bash -#$PYTHON setup.py install --single-version-externally-managed --record=record.txt $PYTHON -m pip install . --ignore-installed --no-deps -vv mkdir -p ${PREFIX}/bin diff --git a/recipes/zol/meta.yaml b/recipes/zol/meta.yaml index b4ffee8842b54..875f6748aaf0a 100644 --- a/recipes/zol/meta.yaml +++ b/recipes/zol/meta.yaml @@ -10,10 +10,10 @@ source: sha256: 5a147e00b400c09423f4739d6a5bae59d7d9007f4d56ad712ccf0c734147bc47 build: - number: 0 - skip: True # [py <= 311] + number: 1 + skip: True # [py != 310] run_exports: - - {{ pin_subpackage('zol', max_pin='x.x') }} + - {{ pin_subpackage('zol', max_pin='x') }} requirements: build: @@ -22,13 +22,11 @@ requirements: - python - setuptools - pip - - axel run: - python >=3.10 - r-base - biopython - muscle >=5.0 - - setuptools - mcl - pal2nal >=14.1 - hmmer >=3.0.0 @@ -61,9 +59,7 @@ requirements: test: commands: - - prepTG -v - - fai -v - - zol -v + - zol -h about: home: https://github.com/Kalan-Lab/zol @@ -73,3 +69,6 @@ about: summary: "zol (& fai): large-scale targeted detection and evolutionary investigation of gene clusters." dev_url: https://github.com/Kalan-Lab/zol +extra: + recipe-maintainers: + - raufs From 15b9eb5b87c9d03e233ebc1d01e075c3ddc960c5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 00:40:02 -0400 Subject: [PATCH 0845/1514] Update harpy to 1.3 (#49580) --- recipes/harpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index 5da755925429d..d93024ddac567 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.2.3" %} -{% set sha256 = "286ac2097d6113c7f683490b98e2c7f7b285a32271ef96046a6b18752b6a6025" %} +{% set version = "1.3" %} +{% set sha256 = "1e55b0d15853276afa6a3c3863766515e5d1ef20df7dc71a1560bb48226dabdf" %} package: name: harpy From 7b4d033dd217bf2761cdce010ac90af52bcd87d3 Mon Sep 17 00:00:00 2001 From: Benjamin Redelings Date: Fri, 26 Jul 2024 00:41:10 -0400 Subject: [PATCH 0846/1514] bali-phy: 4.0-beta15 (#49577) --- recipes/bali-phy/meta.yaml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/recipes/bali-phy/meta.yaml b/recipes/bali-phy/meta.yaml index b0e583d8e4050..09e5e5cc8ed04 100644 --- a/recipes/bali-phy/meta.yaml +++ b/recipes/bali-phy/meta.yaml @@ -1,10 +1,10 @@ package: name: bali-phy - version: '4.0beta14' + version: '4.0beta15' source: - url: https://github.com/bredelings/bali-phy/archive/4.0-beta14.tar.gz - sha256: b3a55d8e89589d5b46a621b1c9ee5bcbe576b6fb6ea22fe3782d10c9830c66f1 + url: https://github.com/bredelings/bali-phy/archive/4.0-beta15.tar.gz + sha256: 4d1b6f08dee5bb359a13a4e2913129fd1f6e0ddb36350c7f8851f583192b4a94 build: number: 0 @@ -40,7 +40,6 @@ about: license: GPL2 summary: 'Phylogenetics - Bayesian estimation of phylogenies and multiple sequence alignments.' - test: commands: - bali-phy help From a0f4b3c9f35d3bb58309eddc0b2cb1ea775cfb8f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 00:43:22 -0400 Subject: [PATCH 0847/1514] Update gencove to 2.18.3 (#49579) --- recipes/gencove/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gencove/meta.yaml b/recipes/gencove/meta.yaml index 845f186c29776..dd588c788987b 100644 --- a/recipes/gencove/meta.yaml +++ b/recipes/gencove/meta.yaml @@ -1,6 +1,6 @@ {% set name = "gencove" %} -{% set version = "2.18.2" %} -{% set sha256 = "80ef5a41a5c47ee14d5ee7296480491016bf9e55dc39b8c3f1eb7454ebc400e2" %} +{% set version = "2.18.3" %} +{% set sha256 = "e4762be0bc238bbe13c98daa1e4eead1a5a14d65b6651650238784adf8c093f2" %} package: name: {{ name }} From 3d1c253197087d7ef9f3ca4f94b24edb6994df92 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 00:46:41 -0400 Subject: [PATCH 0848/1514] Update jbrowse2 to 2.13.0 (#49576) --- recipes/jbrowse2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/jbrowse2/meta.yaml b/recipes/jbrowse2/meta.yaml index ea465f9b7f8c3..c2d22862f7b86 100644 --- a/recipes/jbrowse2/meta.yaml +++ b/recipes/jbrowse2/meta.yaml @@ -1,12 +1,12 @@ # When updating, check the @jbrowse/cli version in build.sh too -{% set version = "2.12.3" %} +{% set version = "2.13.0" %} package: name: jbrowse2 version: {{ version }} source: - sha256: 682235117961f69b1600366009c69290f74fffb2c337952e051a9536b6366914 + sha256: f543642573b53f40be9ca233641af1c9705614f85a7a1e901de989e86a76b1e7 url: https://github.com/GMOD/jbrowse-components/releases/download/v{{ version }}/jbrowse-web-v{{ version }}.zip build: From e4a50a196e1c849749f6cd4653a13eafdd8a883d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 00:47:06 -0400 Subject: [PATCH 0849/1514] Update ntroot to 1.1.3 (#49575) --- recipes/ntroot/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/ntroot/meta.yaml b/recipes/ntroot/meta.yaml index 82a7b533fd94e..ab1636a060e4c 100644 --- a/recipes/ntroot/meta.yaml +++ b/recipes/ntroot/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ntRoot" %} -{% set version = "1.1.2" %} +{% set version = "1.1.3" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: https://github.com/bcgsc/ntRoot/releases/download/v{{ version }}/{{ name }}-{{ version }}.tar.gz - sha256: c91ba834bc221e7883dff864aed7a2230700a515f5475b1f2d331007d9db73a8 + sha256: 0b1cfb7008e1bb7efeea400fab9da4f73e297357ee83ae23904b21d9a91d5c81 build: - number: 1 + number: 0 noarch: generic run_exports: - {{ pin_subpackage("ntroot", max_pin="x") }} From 1f29069f42134a6ee0436d5ac2ec2b0a0d428cb0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 00:49:13 -0400 Subject: [PATCH 0850/1514] Update parm to 0.0.6 (#49573) --- recipes/parm/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/parm/meta.yaml b/recipes/parm/meta.yaml index cc9d3f2ef73a6..cc2b6ed42e026 100644 --- a/recipes/parm/meta.yaml +++ b/recipes/parm/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.0.5" %} -{% set sha256 = "bdb609e7266b0d509ace8b6fd0a2405f6ba8cf68c3b44428ae83b672414e0c2a" %} +{% set version = "0.0.6" %} +{% set sha256 = "58853578e42e76ecb9e609cb9b292fa979ae5a999d28126f3c43ac0e986f44a5" %} package: name: parm From d3aa7fc1b634b480a4a6c3e7518a6e1f8873a2c7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 00:49:43 -0400 Subject: [PATCH 0851/1514] Update comparem2 to 2.10.1 (#49572) --- recipes/comparem2/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/comparem2/meta.yaml b/recipes/comparem2/meta.yaml index 3c6eaf6fd7358..60d0db2a6c5fa 100644 --- a/recipes/comparem2/meta.yaml +++ b/recipes/comparem2/meta.yaml @@ -1,6 +1,6 @@ {% set name = "comparem2" %} -{% set version = "2.9.1" %} -{% set sha256 = "d8dc87511cb213a8e25603bace700e83d91981effd90fae5d493cfc21e5f7281" %} +{% set version = "2.10.1" %} +{% set sha256 = "6689d7b7cd82fecf74a63a7f5cb014b5f3baac797445cce9957bc13e563f3cb8" %} package: name: {{ name }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 noarch: generic run_exports: - {{ pin_subpackage('comparem2', max_pin="x") }} From 0b4dafea7420c63127a2b149708115e863b686c2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 00:50:17 -0400 Subject: [PATCH 0852/1514] Update locityper to 0.16.7 (#49571) --- recipes/locityper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/locityper/meta.yaml b/recipes/locityper/meta.yaml index 90326e88bd02d..23a47de1dcea9 100644 --- a/recipes/locityper/meta.yaml +++ b/recipes/locityper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "locityper" %} -{% set version = "0.16.6" %} +{% set version = "0.16.7" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/tprodanov/locityper/archive/refs/tags/v{{ version }}.tar.gz - sha256: 3be692fd0799e26d6a1b17fadd415ea48d0a98df06df84a9a8184ea577645cfe + sha256: b75c5fea1047ae8f3c673454039d96c61733712e02cea8e7ae2d6d50089732d3 build: number: 0 From 976ca77e7783bdfb731a4dcce7d17f840e32cd6a Mon Sep 17 00:00:00 2001 From: Louis Kraft <61252748+LouisPwr@users.noreply.github.com> Date: Fri, 26 Jul 2024 06:53:51 +0200 Subject: [PATCH 0853/1514] Add carpedeam (#49522) --- recipes/carpedeam/build.sh | 19 ++++++++++++++ recipes/carpedeam/meta.yaml | 50 +++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 recipes/carpedeam/build.sh create mode 100644 recipes/carpedeam/meta.yaml diff --git a/recipes/carpedeam/build.sh b/recipes/carpedeam/build.sh new file mode 100644 index 0000000000000..3583663b92364 --- /dev/null +++ b/recipes/carpedeam/build.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +ARCH_BUILD="" +case $(uname -m) in + x86_64) ARCH_BUILD="-DHAVE_SSE4_1=1" ;; +esac + +if [ -z "${ARCH_BUILD}" ]; then + echo "Unsupported architecture" + exit 1 +fi + +mkdir build +cd build + +cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DHAVE_TESTS=0 -DHAVE_MPI=0 ${ARCH_BUILD} -DVERSION_OVERRIDE="${PKG_VERSION}" .. + +make -j${CPU_COUNT} ${VERBOSE_CM} +make install diff --git a/recipes/carpedeam/meta.yaml b/recipes/carpedeam/meta.yaml new file mode 100644 index 0000000000000..59691207623a8 --- /dev/null +++ b/recipes/carpedeam/meta.yaml @@ -0,0 +1,50 @@ +{% set version = "1.0.0" %} +{% set sha256 = "92deec3d670810f8433c0345758588b47fa460349e61ce8aa549374f5cf4a812" %} + +package: + name: carpedeam + version: {{ version|replace("-", ".") }} + +build: + number: 0 + run_exports: + - {{ pin_subpackage('carpedeam', max_pin="x.x") }} + +source: + url: https://github.com/LouisPwr/CarpeDeam/archive/refs/tags/v{{ version }}.tar.gz + sha256: {{ sha256 }} + +requirements: + build: + - {{ compiler('cxx') }} + - {{ compiler('c') }} + - cmake + - make + - llvm-openmp # [osx] + - libgomp # [linux] + host: + - perl + - gawk + - zlib + - bzip2 + run: + - gawk + - zlib + - bzip2 + +test: + commands: + - carpedeam --version | grep "Ancient Metagenome Assembler." + +about: + home: https://github.com/LouisPwr/CarpeDeam + license: GPL-3.0-only + license_family: GPL3 + summary: "CarpeDeam - A metagenomic assembler for heavily damaged ancient datasets" + +extra: + identifiers: + - biotools:carpedeam + recipe-maintainers: + - gabriel-renaud + - louis-kraft From baeb9886f316a4fcd02388756694cbfc09189a28 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 26 Jul 2024 09:33:48 +0300 Subject: [PATCH 0854/1514] d4tools: add aarch64 build (#49559) * d4tools: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Do not build for osx-arm64. It fails because gcc is missing --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/d4tools/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/d4tools/meta.yaml b/recipes/d4tools/meta.yaml index 7fb61567b8afe..54a4335bead4b 100644 --- a/recipes/d4tools/meta.yaml +++ b/recipes/d4tools/meta.yaml @@ -9,7 +9,7 @@ source: sha256: d3fbe8f063ed1f89148ae0333abc1d5b955f499fc429254f83af464012678d33 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('d4tools', max_pin="x.x") }} @@ -39,6 +39,8 @@ about: dev_url: https://github.com/38/d4-format extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - haohou skip-lints: From 0b8305326cacfb6d2f62f9a4ddc0e5698a0cdc36 Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Fri, 26 Jul 2024 00:26:29 -0700 Subject: [PATCH 0855/1514] Update ntedit build - add builds for linux-aarch64 and osx-arm64 (#49574) --- recipes/ntedit/meta.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/recipes/ntedit/meta.yaml b/recipes/ntedit/meta.yaml index 9a067676b03f6..0c4fd19bd40e6 100644 --- a/recipes/ntedit/meta.yaml +++ b/recipes/ntedit/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage(name, max_pin="x") }} @@ -52,7 +52,10 @@ about: doc_url: https://github.com/bcgsc/ntEdit/blob/master/README.md dev_url: https://github.com/bcgsc/ntEdit -extra: +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 identifiers: - doi:10.1093/bioinformatics/btz400 - biotools:ntEdit From f6c323cfd88c41cf42798d20d51da31e79ba1252 Mon Sep 17 00:00:00 2001 From: BertBog Date: Fri, 26 Jul 2024 09:27:38 +0200 Subject: [PATCH 0856/1514] Add recipe for PACU snp (#49500) * Added recipe for pacu_snp * Added run_exports entry * added entry points * Added setuptools build dependency * Added test for module import * Updated installation for pacu * Use pypi.io url. It does not use hashes => easier for bot autoupdates --------- Co-authored-by: Bert Bogaerts Co-authored-by: Martin Grigorov --- recipes/pacu_snp/meta.yaml | 62 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 recipes/pacu_snp/meta.yaml diff --git a/recipes/pacu_snp/meta.yaml b/recipes/pacu_snp/meta.yaml new file mode 100644 index 0000000000000..02d1fa110b448 --- /dev/null +++ b/recipes/pacu_snp/meta.yaml @@ -0,0 +1,62 @@ +{% set version = "0.0.3" %} + +package: + name: pacu_snp + version: {{ version }} + +source: + url: https://pypi.io/packages/source/p/pacu_snp/pacu_snp-{{ version }}.tar.gz + sha256: a4e9934f6b218a48784389fdc3f2af4fe4fe7225f69a90278a83976bfa02fc78 + +build: + noarch: python + number: 0 + entry_points: + - PACU=pacu.run_pacu:main + - PACU_map=pacu.map_to_ref:main + run_exports: + - {{ pin_subpackage("pacu_snp", max_pin="x.x") }} + script: "{{ PYTHON }} -m pip install . --no-deps -vv" + +requirements: + host: + - python >=3.9 + - pip + - setuptools + - biopython >=1.84 + - pyyaml >=6.0.1 + run: + - bcftools >=1.17 + - beautifulsoup4 >=4.12.2 + - biopython >=1.84 + - bowtie2 >=2.5.1 + - figtree >=1.4.4 + - gubbins >=3.3.1 + - iqtree >=2.2.5 + - matplotlib-base >=3.8.0 + - minimap2 >=2.26 + - pandas >=2.1.0 + - pyvcf3 >=1.0.3 + - pyyaml >=6.0.1 + - samtools >=1.17 + - seqkit >=2.3.1 + - snakemake ==7.32.4 + - snp-dists >=0.8.2 + - trimmomatic >=0.39 + - upsetplot >=0.8.0 + - yattag >=1.15.1 + +about: + home: https://github.com/BioinformaticsPlatformWIV-ISP/PACU + license: GPL-3.0 + license_family: GPL + license_file: LICENSE + summary: PACU is a workflow for whole genome sequencing based phylogeny of Illumina and ONT R9/R10 data. + +test: + imports: + - pacu + commands: + - PACU -h + - PACU_map -h + From 6b4e0939b503f20f8424cd98f257b5e9f9916695 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 06:50:19 -0400 Subject: [PATCH 0857/1514] Update cmat to 3.2.2 (#49587) --- recipes/cmat/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/cmat/meta.yaml b/recipes/cmat/meta.yaml index ffcbd6088a86c..030383993adc5 100644 --- a/recipes/cmat/meta.yaml +++ b/recipes/cmat/meta.yaml @@ -1,5 +1,5 @@ {% set name = "cmat" %} -{% set version = "3.2.1" %} +{% set version = "3.2.2" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/EBIvariation/CMAT/archive/v{{version}}.tar.gz - sha256: f7368fe08422080f333b51c90f63b450b59300437169686b9729c21c1f142224 + sha256: 63b052052e6c3809e2d55835bfbe1dbd5ee312d6ef12906b25e5c67816fa6186 build: number: 0 From 7c81e6468946ba1831c4b5ed08c9dcfed4dc189f Mon Sep 17 00:00:00 2001 From: Kez Cleal <42997789+kcleal@users.noreply.github.com> Date: Fri, 26 Jul 2024 12:32:22 +0100 Subject: [PATCH 0858/1514] Gw v1.0.0 (#49589) * Delete recipes/gw/fix-version.patch * Update meta.yaml --- recipes/gw/fix-version.patch | 4 ---- recipes/gw/meta.yaml | 5 ++--- 2 files changed, 2 insertions(+), 7 deletions(-) delete mode 100644 recipes/gw/fix-version.patch diff --git a/recipes/gw/fix-version.patch b/recipes/gw/fix-version.patch deleted file mode 100644 index 963b5293eae99..0000000000000 --- a/recipes/gw/fix-version.patch +++ /dev/null @@ -1,4 +0,0 @@ -+++ b/src/term_out.cpp -@@ -1354,1 +1354,1 @@ -- const char* CURRENT_VERSION = "v0.10.0"; -+ const char* CURRENT_VERSION = "v0.10.1"; diff --git a/recipes/gw/meta.yaml b/recipes/gw/meta.yaml index 5346dd6421760..d3447048afbb5 100644 --- a/recipes/gw/meta.yaml +++ b/recipes/gw/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "0.10.1" %} -{% set sha256 = "a864010d9ba329feb9211d554ea9c410f5bcc1e1462369bef56a8f5b8914f3d2" %} +{% set version = "1.0.0" %} +{% set sha256 = "80a595adfcc230afcaf170b86252f4451f61b98e670bcb4c443ea72be9070cf1" %} package: @@ -13,7 +13,6 @@ source: sha256: {{ sha256 }} patches: - fix-linker-issues.patch # [linux] - - fix-version.patch build: From b3af857b960f3addc973bcadadf26cbef13380f0 Mon Sep 17 00:00:00 2001 From: KChigira <83323455+KChigira@users.noreply.github.com> Date: Fri, 26 Jul 2024 20:33:28 +0900 Subject: [PATCH 0859/1514] Add taseq (#49585) * Add taseq * Add taseq * Add taseq --- recipes/taseq/meta.yaml | 61 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 recipes/taseq/meta.yaml diff --git a/recipes/taseq/meta.yaml b/recipes/taseq/meta.yaml new file mode 100644 index 0000000000000..0d8d160a83ead --- /dev/null +++ b/recipes/taseq/meta.yaml @@ -0,0 +1,61 @@ +{% set name = "taseq" %} +{% set version = "1.0.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/taseq-{{ version }}.tar.gz + sha256: a5ace00224b7bfd7e95d7552c89fea996327799be03f490fea7c782e3c01abea + +build: + entry_points: + - taseq_hapcall = taseq.hapcall:main + - taseq_genotype = taseq.genotype:main + - taseq_filter = taseq.filter:main + - taseq_draw = taseq.draw:main + - taseq = taseq.default:main + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + run_exports: + - {{ pin_subpackage('taseq', max_pin="x") }} + +requirements: + host: + - python + - pip + run: + - python >=3.12,<4.0 + - pandas >=2.2.2,<3.0.0 + - matplotlib-base >=3.9.1,<4.0.0 + - samtools >=1.20,<2.0 + - gatk4 >=4.5.0.0,<4.6.0.0 + - picard-slim >=2.27.4,<3.0.0 + - bwa >=0.7.18,<0.8.0 + - trimmomatic >=0.39,<1.0 + + +test: + imports: + - taseq + commands: + - pip check + - taseq_hapcall --help + - taseq_genotype --help + - taseq_filter --help + - taseq_draw --help + - taseq --help + requires: + - pip + +about: + home: https://github.com/KChigira/taseq/ + summary: Downstream analysis for targetted amplicon sequencing. + license: MIT + license_file: LICENSE + +extra: + recipe-maintainers: + - KChigira From 449316b9e2b9492942687625e5a933aa2932e5a1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 08:58:40 -0400 Subject: [PATCH 0860/1514] Update virusrecom to 1.3.5 (#49592) --- recipes/virusrecom/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/virusrecom/meta.yaml b/recipes/virusrecom/meta.yaml index 9e95949b46f06..06585485b03b1 100644 --- a/recipes/virusrecom/meta.yaml +++ b/recipes/virusrecom/meta.yaml @@ -1,5 +1,5 @@ {% set name = "virusrecom" %} -{% set version = "1.3.2" %} +{% set version = "1.3.5" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 5ba74f015546c480e6628fcb4625019d98d181c1684fef7b1e29f92bef558141 + sha256: 0f5b1c8ce87c35bb152fefd2e90160b7088f157dfb1551d93455a67611e374bb build: number: 0 From 9d9771dc5474597a306f66415c0bfe5558160575 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 26 Jul 2024 16:11:12 +0300 Subject: [PATCH 0861/1514] aletsch: add aarch64/arm64 builds (#49560) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/aletsch/build.sh | 4 +++- recipes/aletsch/meta.yaml | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/recipes/aletsch/build.sh b/recipes/aletsch/build.sh index 7a0d70011ef7a..b74dbe117a440 100644 --- a/recipes/aletsch/build.sh +++ b/recipes/aletsch/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + ./configure --prefix=$PREFIX -make LIBS+=-lhts +make -j ${CPU_COUNT} LIBS+=-lhts make install diff --git a/recipes/aletsch/meta.yaml b/recipes/aletsch/meta.yaml index 4e9c236f55485..d877735467abd 100644 --- a/recipes/aletsch/meta.yaml +++ b/recipes/aletsch/meta.yaml @@ -10,7 +10,7 @@ source: sha256: "b081cfcbd2f232dcddab4f9c6ce11f15f41e4319e1f977dd955cca240748d4b5" build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('aletsch', max_pin="x") }} @@ -37,5 +37,8 @@ about: summary: "Aletsch is an accurate, versatile assembler for multiple RNA-seq samples." extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - shaomingfu From 7a8e4d92ceb4b5c100720c2ba5cd417a17caaecd Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 26 Jul 2024 16:12:54 +0300 Subject: [PATCH 0862/1514] bali-phy: add aarch64/arm64 builds (#49586) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/bali-phy/meta.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/bali-phy/meta.yaml b/recipes/bali-phy/meta.yaml index 09e5e5cc8ed04..db1ab541968a6 100644 --- a/recipes/bali-phy/meta.yaml +++ b/recipes/bali-phy/meta.yaml @@ -7,7 +7,7 @@ source: sha256: 4d1b6f08dee5bb359a13a4e2913129fd1f6e0ddb36350c7f8851f583192b4a94 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('bali-phy', max_pin='x') }} @@ -45,6 +45,9 @@ test: - bali-phy help extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 identifiers: - doi:10.1093/bioinformatics/btab129 - biotools:bali-phy From 878470ebc9cfcca75cd42e09a015d1431afad231 Mon Sep 17 00:00:00 2001 From: Anna Zhukova Date: Fri, 26 Jul 2024 15:30:34 +0200 Subject: [PATCH 0863/1514] treesimulator recipe (#49590) --- recipes/treesimulator/meta.yaml | 59 +++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 recipes/treesimulator/meta.yaml diff --git a/recipes/treesimulator/meta.yaml b/recipes/treesimulator/meta.yaml new file mode 100644 index 0000000000000..247f0a7959257 --- /dev/null +++ b/recipes/treesimulator/meta.yaml @@ -0,0 +1,59 @@ +{% set name = "treesimulator" %} +{% set version = "0.1.22" %} + +package: + name: "{{ name|lower }}" + version: "{{ version }}" + +source: + url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" + sha256: 2ea8d07b1ef98590b1477c322d8a06efabf63f39ac7d9ff0f75f6063e48898c8 + +build: + number: 0 + noarch: python + entry_points: + - generate_bd = treesimulator.simulate_forest_bd:main + - generate_bdei = treesimulator.simulate_forest_bdei:main + - generate_bdss = treesimulator.simulate_forest_bdss:main + - generate_mtbd = treesimulator.simulate_forest:main + script: "{{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation" + run_exports: + - {{ pin_subpackage('treesimulator', max_pin="x") }} + +requirements: + host: + - pip + - python >=3.9 + run: + - six >=1.16.0 + - ete3 >=3.1.1 + - numpy >=1.22 + - python >=3.9 + - scipy >=1.5.0 + +test: + imports: + - treesimulator + commands: + - generate_bd --help + - generate_bdei --help + - generate_bdss --help + - generate_mtbd --help + +about: + home: "https://github.com/evolbioinfo/treesimulator" + summary: "Simulation of rooted phylogenetic trees under a given Multitype Birth–Death (MTBD) model." + description: | + Treesimulator provides fast methods for simulation of rooted phylogenetic trees under + Multitype Birth–Death (MTBD) models, in particular the classical BD model, + the BD Exposed-Infectious (BDEI) model, and BD with superspreading (BDSS). + license: GPL-3.0-or-later + license_family: GPL3 + license_file: LICENSE + doc_url: https://github.com/evolbioinfo/treesimulator + dev_url: https://github.com/evolbioinfo/treesimulator + +extra: + recipe-maintainers: + - annazhukova From 6e6c81b95fa583fe652c1a965783eb71415d610e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 12:06:09 -0400 Subject: [PATCH 0864/1514] Update querynator to 0.5.4 (#49594) --- recipes/querynator/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/querynator/meta.yaml b/recipes/querynator/meta.yaml index 9a66732b8e6eb..d6936b6ac72d9 100644 --- a/recipes/querynator/meta.yaml +++ b/recipes/querynator/meta.yaml @@ -1,5 +1,5 @@ {% set name = "querynator" %} -{% set version = "0.5.3" %} +{% set version = "0.5.4" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: a265fd68804a3b9b7ebf8b9fc1b8624c77a2ae44db1c060ae720d037a1c99bdb + sha256: 803aff3939b21ce35f92a1d39bd2c4db2f9a8cc1f96a409e939ef3bbeb1fbaf2 build: number: 0 From c20bc3c5902210ff1c834204aa4eaccb64d925a0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 12:06:19 -0400 Subject: [PATCH 0865/1514] Update locityper to 0.16.8 (#49598) --- recipes/locityper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/locityper/meta.yaml b/recipes/locityper/meta.yaml index 23a47de1dcea9..444882115ee1a 100644 --- a/recipes/locityper/meta.yaml +++ b/recipes/locityper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "locityper" %} -{% set version = "0.16.7" %} +{% set version = "0.16.8" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/tprodanov/locityper/archive/refs/tags/v{{ version }}.tar.gz - sha256: b75c5fea1047ae8f3c673454039d96c61733712e02cea8e7ae2d6d50089732d3 + sha256: 45676912a3a7a8d164f0e6c0c71697d21878baa476cd45b8bf4a2c9d9e5f018f build: number: 0 From 529f69fbb93cc3ae3025fcdcedde22ade5df7dbf Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 12:06:26 -0400 Subject: [PATCH 0866/1514] Update dxpy to 0.380.0 (#49599) --- recipes/dxpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/dxpy/meta.yaml b/recipes/dxpy/meta.yaml index 51818f8006263..11e66e5ca8a77 100644 --- a/recipes/dxpy/meta.yaml +++ b/recipes/dxpy/meta.yaml @@ -1,5 +1,5 @@ {% set name = "dxpy" %} -{% set version = "0.379.0" %} +{% set version = "0.380.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 09cf1e418be0fc91dd23ee916e83eacd1f5f3baa8972484f713e1cd4ed081ff1 + sha256: e3fb70b283a9eda2f861d6b85322841d78b2655cd7de11f1e946643b58de3d4f build: number: 0 From 5f55e6a9f39f7ba6aad10e714b9019d1a5765c96 Mon Sep 17 00:00:00 2001 From: Jose Figueroa Date: Fri, 26 Jul 2024 12:38:50 -0400 Subject: [PATCH 0867/1514] Update MetaCerberus-lite (#49427) * Update MetaCerberus-lite * Update MetaCerberus-lite * Update MetaCerberus-lite * Update MetaCerberus-lite * Update recipes/metacerberus-lite/meta.yaml Co-authored-by: Alicia A. Evans <108547992+aliciaaevans@users.noreply.github.com> --------- Co-authored-by: Alicia A. Evans <108547992+aliciaaevans@users.noreply.github.com> --- recipes/metacerberus-lite/meta.yaml | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/recipes/metacerberus-lite/meta.yaml b/recipes/metacerberus-lite/meta.yaml index d9dff07348aef..3888274b58bec 100644 --- a/recipes/metacerberus-lite/meta.yaml +++ b/recipes/metacerberus-lite/meta.yaml @@ -1,20 +1,20 @@ {% set name = "MetaCerberus-lite" %} -{% set version = "1.3.1" %} +{% set version = "1.3.2" %} package: name: "{{ name|lower }}" version: "{{ version }}" source: - url: "https://files.pythonhosted.org/packages/source/m/MetaCerberus/MetaCerberus-{{ version }}.tar.gz" - sha256: 725be35a0e9b2a3867791e1cb8284ec95a09d3479516e9b265e3751659ce7935 + url: "https://github.com/raw-lab/MetaCerberus/archive/refs/tags/v{{version}}.tar.gz" + sha256: 678929f58b38fafc635dfb35e248b5c76b4cd682b9e2d3499fe953ee3b974d68 build: number: 0 noarch: python script: "{{ PYTHON }} -m pip install . -vv" run_exports: - - {{ pin_compatible('MetaCerberus', max_pin="x") }} + - {{ pin_subpackage('metacerberus-lite', max_pin="x") }} requirements: host: @@ -24,16 +24,11 @@ requirements: run: - python >=3.8 - setuptools <70.0.0 - - grpcio =1.43 - pandas - flash2 - pyrodigal - pyrodigal-gv - pyhmmer - - ray-default <=2.6.3 - - ray-core <=2.6.3 - - ray-tune <=2.6.3 - - ray-dashboard <=2.6.3 - plotly - scikit-learn - dominate From 7e8f76180e1cf7f83ca7bc1e86c45c4aa26d67d7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 12:43:55 -0400 Subject: [PATCH 0868/1514] Update nda-tools to 0.3.0 (#49601) --- recipes/nda-tools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/nda-tools/meta.yaml b/recipes/nda-tools/meta.yaml index 12325594827f1..3ef8411d3c9ad 100644 --- a/recipes/nda-tools/meta.yaml +++ b/recipes/nda-tools/meta.yaml @@ -1,6 +1,6 @@ {% set name = "nda-tools" %} -{% set version = "0.2.27" %} -{% set sha256 = "79cb91fe4265384287a833911b91747265449e1040a3e88c7c8566d0a561d8a4" %} +{% set version = "0.3.0" %} +{% set sha256 = "7315dcf21bf2597485e930f1199c259f1f82c9bc79ebcefb5ef3e8e02aff56f1" %} package: name: {{ name }} From b67bb9587b74522aeaba77fdacf464933645cf94 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 13:17:34 -0400 Subject: [PATCH 0869/1514] Update zol to 1.4.11 (#49600) --- recipes/zol/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/zol/meta.yaml b/recipes/zol/meta.yaml index 875f6748aaf0a..b07a6bcdc5338 100644 --- a/recipes/zol/meta.yaml +++ b/recipes/zol/meta.yaml @@ -1,5 +1,5 @@ {% set name = "zol" %} -{% set version = "1.4.10" %} +{% set version = "1.4.11" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: https://github.com/Kalan-Lab/zol/archive/refs/tags/v{{ version }}.tar.gz - sha256: 5a147e00b400c09423f4739d6a5bae59d7d9007f4d56ad712ccf0c734147bc47 + sha256: 9e282d1255355e2c643d93f1748f028be862af6cc967de713ef61a4809cadca7 build: - number: 1 + number: 0 skip: True # [py != 310] run_exports: - {{ pin_subpackage('zol', max_pin='x') }} From cf15ad5b12c8c3837c97426f58bf92bda5127753 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 26 Jul 2024 14:42:11 -0400 Subject: [PATCH 0870/1514] Update pango-designation to 1.29 (#49606) --- recipes/pango-designation/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pango-designation/meta.yaml b/recipes/pango-designation/meta.yaml index 220c076249b98..8f8eef806262b 100644 --- a/recipes/pango-designation/meta.yaml +++ b/recipes/pango-designation/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.28" %} +{% set version = "1.29" %} package: name: pango-designation @@ -6,7 +6,7 @@ package: source: url: https://github.com/cov-lineages/pango-designation/archive/refs/tags/v{{ version }}.tar.gz - sha256: cca1e265ae754d4fd3c8a6d47cb99ca997242abdf81e0ec55c3608cf9c3a3865 + sha256: 884b4de47169323f711d02f9801ddb31bb3e383ac1b4eab93aed9d435cb15c6a build: number: 0 From 6d6b49d02bf1f7ba51d33929ac4f583f5d132ebe Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Sat, 27 Jul 2024 12:55:43 -0500 Subject: [PATCH 0871/1514] Build Unicycler on macOS (#49602) --- recipes/unicycler/build.sh | 3 --- recipes/unicycler/meta.yaml | 21 +++++++++++++-------- 2 files changed, 13 insertions(+), 11 deletions(-) delete mode 100644 recipes/unicycler/build.sh diff --git a/recipes/unicycler/build.sh b/recipes/unicycler/build.sh deleted file mode 100644 index 650c36ed10929..0000000000000 --- a/recipes/unicycler/build.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -python -m pip install --no-deps --ignore-installed . diff --git a/recipes/unicycler/meta.yaml b/recipes/unicycler/meta.yaml index 4fbe7d2e5653e..8b0db344689bb 100644 --- a/recipes/unicycler/meta.yaml +++ b/recipes/unicycler/meta.yaml @@ -13,8 +13,11 @@ source: - misc.py.patch build: - number: 0 - skip: True # [osx] + number: 1 + skip: True # [py < 39] + entry_points: + - unicycler = unicycler.unicycler:main + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir run_exports: - {{ pin_subpackage('unicycler', max_pin='x.x') }} @@ -29,24 +32,26 @@ requirements: - zlib run: - python - - spades >=3.15.4,<4 + - spades >=3.15.4 - blast - racon - miniasm - test: commands: - - COLUMNS=80 unicycler -h + - "COLUMNS=80 unicycler -h" about: home: https://github.com/rrwick/Unicycler - license: GPL-3.0 - license_family: GPL + license: GPL-3.0-or-later + license_family: GPL3 license_file: LICENSE - summary: Hybrid assembly pipeline for bacterial genomes + summary: "Hybrid assembly pipeline for bacterial genomes." + dev_url: https://github.com/rrwick/Unicycler + doc_url: https://github.com/rrwick/Unicycler/wiki extra: identifiers: - biotools:unicycler - usegalaxy-eu:unicycler + - doi:10.1371/journal.pcbi.1005595 From cb6d6cd8883ad24a680c54dbcfc77b535748fa38 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 27 Jul 2024 13:56:03 -0400 Subject: [PATCH 0872/1514] Update cpstools to 1.0.13 (#49609) --- recipes/cpstools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/cpstools/meta.yaml b/recipes/cpstools/meta.yaml index 708dea0eb24f7..f8dbea9224cbb 100644 --- a/recipes/cpstools/meta.yaml +++ b/recipes/cpstools/meta.yaml @@ -1,6 +1,6 @@ {% set name = "cpstools" %} -{% set version = "1.0.12" %} -{% set sha256 = "299e324e30a3b45dcb2cffb354bf41f2698b6193699da0e2631db5e6b3616c07" %} +{% set version = "1.0.13" %} +{% set sha256 = "767f5739416f290726ed459bf82969b453ffd2c04aa9171e5dc7c842a8d6b81e" %} package: name: {{ name|lower }} From 5e4f0dada324b8f02368a43536cb382d5dc2c495 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Sat, 27 Jul 2024 12:56:10 -0500 Subject: [PATCH 0873/1514] flye: add arm64 build (#49468) * flye: add arm64 build * add pip * try adding six * revert addition of six * pin python to <3.12 --- recipes/flye/meta.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/flye/meta.yaml b/recipes/flye/meta.yaml index 3b75b43a8a8a5..4cc8f7c9eb91a 100644 --- a/recipes/flye/meta.yaml +++ b/recipes/flye/meta.yaml @@ -13,7 +13,8 @@ source: - 0001-Makefile-aarch64.patch build: - number: 1 + number: 2 + skip: True # [py > 311] entry_points: - flye = flye.main:main run_exports: @@ -25,6 +26,7 @@ requirements: - make host: - python + - pip - zlib run: - python @@ -45,6 +47,7 @@ about: extra: additional-platforms: + - osx-arm64 - linux-aarch64 identifiers: - biotools:Flye From 1c17633e8a72021bfb03ad72977a485ed9eea5cb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 27 Jul 2024 13:56:24 -0400 Subject: [PATCH 0874/1514] Update recentrifuge to 1.14.1 (#49608) --- recipes/recentrifuge/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/recentrifuge/meta.yaml b/recipes/recentrifuge/meta.yaml index 792c16374b7da..2efe7685617b8 100644 --- a/recipes/recentrifuge/meta.yaml +++ b/recipes/recentrifuge/meta.yaml @@ -1,5 +1,5 @@ {% set name = "recentrifuge" %} -{% set version = "1.14.0" %} +{% set version = "1.14.1" %} package: name: {{ name }} @@ -14,7 +14,7 @@ build: source: url: https://github.com/khyox/{{ name }}/archive/v{{ version }}.tar.gz - sha256: 8151fe3f7d6581f487eb10fab61ef211b132b0774128ed7d060b5fe389d69674 + sha256: b9ec5f04b256d24fc768818069838b44d576715b8093f2566fe70b129e659401 requirements: host: From 4c3cc329bcfb275244b3b259e61b688bba481815 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 27 Jul 2024 16:54:34 -0400 Subject: [PATCH 0875/1514] Update saccharis to 2.0.1 (#49536) * Update saccharis to 2.0.1 * Reset the build number and drop its variable Signed-off-by: Martin Tzvetanov Grigorov * edit sha256 * revert dbcan pin to <4 --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov Co-authored-by: mencian --- recipes/saccharis/meta.yaml | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/recipes/saccharis/meta.yaml b/recipes/saccharis/meta.yaml index e6ebf9c22151a..dacd35cfbd8fd 100644 --- a/recipes/saccharis/meta.yaml +++ b/recipes/saccharis/meta.yaml @@ -1,8 +1,6 @@ {% set name = "SACCHARIS" %} - {% set version = "2.0.0.dev21" %} - {% set build_no = 2 %} - {% set hash = "BA68CAB1070A11D5D4F2335CB770E1603ED54E1FB4B52A31DB4CA9A6CBBD6F7E" %} - +{% set version = "2.0.1" %} +{% set hash = "b2bce5fb1d2c959df571735634de5b68fd175148978613e6fc0daa24b3e25df9" %} package: name: "{{ name|lower }}" @@ -14,9 +12,9 @@ source: build: noarch: python - number: {{ build_no }} + number: 0 script: {{ PYTHON }} setup.py install --single-version-externally-managed --record=record.txt - preserve_egg_dir: True # added because the entry points below seem to be causing a build error + preserve_egg_dir: True # added because the entry points below seem to be causing a build error entry_points: - saccharis = saccharis.CLI:cli_main - saccharis.make_family_files = saccharis.utils.FamilyCategories:cli_main @@ -28,21 +26,18 @@ build: - saccharis-gui = saccharis.gui.PipelineGUI:main - saccharis.config = saccharis.utils.AdvancedConfig:cli_config - saccharis.update_db = saccharis.ExtractAndPruneCAZymes:update_hmms - run_exports: - {{ pin_subpackage("saccharis", max_pin="x.x") }} requirements: - build: - - python - - setuptools host: - python >=3.6 + - pip run: - beautifulsoup4 >=4.11.1 - biopython >=1.79 - blast >=2.* - - dbcan >=3.0.6, < 4 + - dbcan <4 - diamond >=2.0.15 # [not win] - fasttree >=2.1.11 # [not win] - hmmer >=3.3 # [not win] @@ -82,6 +77,7 @@ about: home: https://github.com/saccharis/SACCHARIS_2 dev_url: https://github.com/saccharis/SACCHARIS_2 description: Bioinformatics pipeline to automate phylogenetic analysis of CAZyme families in FASTA sequences via creation of phylogenetic trees. - license: GPL v3 + license: GPL-3.0-or-later + license_family: GPL3 license_file: LICENSE summary: A CAZyme discovery tool. Easily create phylogenetic trees from FASTA files and CAZyme families. From 23e4606468d7ae1ff9cb67bf482fd127e73b40bb Mon Sep 17 00:00:00 2001 From: Hillary Elrick <47190916+helrick@users.noreply.github.com> Date: Sun, 28 Jul 2024 08:15:10 +0100 Subject: [PATCH 0876/1514] Update savana to 1.2.0 - pin versions, cna subcommand test, LICENSE update (#49591) --- recipes/savana/meta.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/recipes/savana/meta.yaml b/recipes/savana/meta.yaml index 51c6b9be90c4c..8ba9b74b466b6 100644 --- a/recipes/savana/meta.yaml +++ b/recipes/savana/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 25025d73628e282c7cd5fd6204befe9152d0d695ebd027b87831aa1338b83914 build: - number: 0 + number: 1 noarch: python script: - "{{ PYTHON }} -m pip install . -vv" @@ -27,7 +27,7 @@ requirements: - pybedtools >=0.9.0 - pysam >=0.20.0 - cyvcf2 >=0.30.16 - - scikit-learn >=1.2.2,<1.3.0 + - scikit-learn 1.2.2 - pandas >=2.0.0 - matplotlib-base >=3.7.1 @@ -39,9 +39,10 @@ test: - savana classify --help - savana evaluate --help - savana train --help + - savana cna --help about: home: "https://github.com/cortes-ciriano-lab/{{ name }}" - license: Free for Academic Use + license: Apache-2.0 license_file: LICENSE.txt summary: "SAVANA: a somatic structural variant caller for long-read data" From 73748f2a27da6eb675fe116d8f5706538d3dfc82 Mon Sep 17 00:00:00 2001 From: Clint Valentine Date: Sun, 28 Jul 2024 03:16:17 -0400 Subject: [PATCH 0877/1514] Add neodisambiguate for multi-species read disambiguation (xenografts, etc.) (#49583) --- recipes/neodisambiguate/meta.yaml | 35 +++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 recipes/neodisambiguate/meta.yaml diff --git a/recipes/neodisambiguate/meta.yaml b/recipes/neodisambiguate/meta.yaml new file mode 100644 index 0000000000000..5665c96529ccf --- /dev/null +++ b/recipes/neodisambiguate/meta.yaml @@ -0,0 +1,35 @@ +{% set version="1.0.0" %} + +package: + name: neodisambiguate + version: {{ version }} + +source: + url: https://github.com/clintval/neodisambiguate/releases/download/{{ version }}/neodisambiguate + sha256: 175f80595162de99c9f0813da773d48cf9883eb2772d434ec61bb237968b1729 + +build: + noarch: generic + number: 0 + run_exports: + - {{ pin_subpackage('neodisambiguate', max_pin="x") }} + script: | + mkdir -p "${PREFIX}/bin" + cp neodisambiguate "${PREFIX}/bin/" + chmod +x "${PREFIX}/bin/neodisambiguate" + +requirements: + run: + - openjdk >=8 + +test: + commands: + - 'neodisambiguate --help 2>&1 | grep "neodisambiguate"' + - 'neodisambiguate --version 2>&1 | grep "neodisambiguate"' + +about: + home: https://github.com/clintval/neodisambiguate + license: MIT + license_family: MIT + summary: Disambiguate reads that were mapped to multiple references. + doc_url: https://github.com/clintval/neodisambiguate From ddba6940e429348c8fe24c15c0e6a036e83e32de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20P=C5=99=C3=ADhoda?= Date: Sun, 28 Jul 2024 09:22:18 +0200 Subject: [PATCH 0878/1514] Bump up abnumber to 0.3.6 (#49597) --- recipes/abnumber/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/abnumber/meta.yaml b/recipes/abnumber/meta.yaml index 2e69c0df6335f..bf1cba8ad94cf 100644 --- a/recipes/abnumber/meta.yaml +++ b/recipes/abnumber/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.3.5" %} # Remember to update sha256 below +{% set version = "0.3.6" %} # Remember to update sha256 below package: name: abnumber @@ -6,7 +6,7 @@ package: source: url: https://github.com/prihoda/abnumber/archive/v{{ version }}.tar.gz - sha256: '6fb14c90c071306b3d87484242bb5e8e89ba4c1bb45461d64a9b1b6bc415bbdb' + sha256: 'a3120224ca340c224085a8311ee9d5515fccdbadb156d769918bf86e06890d7d' build: noarch: python From a2124c2c911fef57918ce9d39c2099093bf43fcf Mon Sep 17 00:00:00 2001 From: zhenxian <920596906@qq.com> Date: Sun, 28 Jul 2024 23:05:59 +0800 Subject: [PATCH 0879/1514] Update meta.yaml (#49616) --- recipes/clair3/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/clair3/meta.yaml b/recipes/clair3/meta.yaml index 751c1c12e54fe..6fe7acdc26c4d 100644 --- a/recipes/clair3/meta.yaml +++ b/recipes/clair3/meta.yaml @@ -1,5 +1,5 @@ {% set name = "clair3" %} -{% set version = "1.0.8" %} +{% set version = "1.0.10" %} package: name: {{ name }} @@ -7,10 +7,10 @@ package: source: url: http://www.bio8.cs.hku.hk/clair3/bioconda/Clair3_v{{ version }}.zip - sha256: 3bc493269878af0d06c3fa006656d77ab01ae55d19c217fcf2ba1d68e2350a9d + sha256: b2de8180d3825f9e1ed4ee1710ce0988dd85eba79ab8bdaf2ad8dae7ac70e228 build: - number: 2 + number: 0 skip: True # [osx] run_exports: - {{ pin_subpackage(name, max_pin="x") }} From c98a520b776b0450c2bc2ca463a466afa839f7f6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 28 Jul 2024 11:41:58 -0400 Subject: [PATCH 0880/1514] Update cstag to 1.1.0 (#49617) --- recipes/cstag/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/cstag/meta.yaml b/recipes/cstag/meta.yaml index 056545dac83d6..8e0a6a0ca3761 100644 --- a/recipes/cstag/meta.yaml +++ b/recipes/cstag/meta.yaml @@ -1,5 +1,5 @@ {% set name = "cstag" %} -{% set version = "1.0.5" %} +{% set version = "1.1.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/cstag-{{ version }}.tar.gz - sha256: 69aeb279da6143a8f7b9b42a92ae1978f752890c8d475c953077c09ce918774b + sha256: cecde4b604c00114fadc2344f9fd9b19947ce56f04cabe7b184e621c9c6e3355 build: noarch: python From 483342433ae5d260cf0ce82b9687f9f9dd0ebcdd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 28 Jul 2024 11:44:30 -0400 Subject: [PATCH 0881/1514] Update clair3-illumina to 1.0.10 (#49618) --- recipes/clair3-illumina/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/clair3-illumina/meta.yaml b/recipes/clair3-illumina/meta.yaml index bd27a4dfbce85..22db4a4e6d969 100644 --- a/recipes/clair3-illumina/meta.yaml +++ b/recipes/clair3-illumina/meta.yaml @@ -1,5 +1,5 @@ {% set name = "clair3-illumina" %} -{% set version = "1.0.9" %} +{% set version = "1.0.10" %} package: name: {{ name }} @@ -7,10 +7,10 @@ package: source: url: https://github.com/HKU-BAL/Clair3/archive/refs/tags/v{{ version }}.zip - sha256: 79a697046c649daeb1df85a9d65c1a40f61816c4f0497d218192ed557b5d79b1 + sha256: e8114dec1ef768d5ecdbf3b0734f41c69c95fee543d999b841bd6bfb8be64ea8 build: - number: 1 + number: 0 skip: True # [osx] run_exports: - {{ pin_subpackage(name, max_pin="x") }} From 6e60e4926ee8839b903087671d0bf603a55bd785 Mon Sep 17 00:00:00 2001 From: "Tianyu (Sky) Lu" Date: Sun, 28 Jul 2024 18:22:09 -0500 Subject: [PATCH 0882/1514] Update TIR-Learner (#49611) * Update build.sh * Update meta.yaml --- recipes/tir-learner/build.sh | 6 +++--- recipes/tir-learner/meta.yaml | 13 ++++++------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/recipes/tir-learner/build.sh b/recipes/tir-learner/build.sh index 0855b1275d676..6c3cf59227f02 100644 --- a/recipes/tir-learner/build.sh +++ b/recipes/tir-learner/build.sh @@ -1,15 +1,15 @@ #!/bin/sh set -x -e -TIR_LEARNER_DIR=${PREFIX}/share/TIR-Learner3.0 +TIR_LEARNER_DIR=${PREFIX}/share/TIR-Learner3 mkdir -p ${PREFIX}/bin mkdir -p ${TIR_LEARNER_DIR} -cp -r TIR-Learner3.0/* ${TIR_LEARNER_DIR} +cp -r TIR-Learner3/* ${TIR_LEARNER_DIR} cat <>${PREFIX}/bin/TIR-Learner #!/bin/bash -python3 ${TIR_LEARNER_DIR}/TIR-Learner3.0.py \$@ +python3 ${TIR_LEARNER_DIR}/TIR-Learner.py \$@ END chmod a+x ${PREFIX}/bin/TIR-Learner diff --git a/recipes/tir-learner/meta.yaml b/recipes/tir-learner/meta.yaml index 71766ee41780e..4bf29c104fcc1 100644 --- a/recipes/tir-learner/meta.yaml +++ b/recipes/tir-learner/meta.yaml @@ -1,6 +1,6 @@ {% set name = "TIR-Learner" %} -{% set version = "3.0.2" %} -{% set sha256 = "71edc2633fd2d5a6306db83528291b21e9a50b7e08b02a3f1d2cdc13d04ff441" %} +{% set version = "3.0.3" %} +{% set sha256 = "cf91397cb693439857c34b358b68ee6d110324d926e9dda76b8af00faea85bf5" %} package: name: "{{ name|lower }}" @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 noarch: generic run_exports: - {{ pin_subpackage('tir-learner', max_pin='x') }} @@ -24,10 +24,9 @@ requirements: - biopython - scikit-learn >=1.3 - pandas - - glob2 - multiprocess - regex - - tensorflow >=2.11 + - pytorch - keras >=3.3.3 - swifter @@ -38,8 +37,8 @@ test: about: home: https://github.com/lutianyu2001/TIR-Learner - license: GPLv3 - license_family: GPL + license: GPL-3.0-or-later + license_family: GPL3 license_file: LICENSE summary: An ensemble pipeline for terminal inverted repeat (TIR) transposable elements annotation dev_url: https://github.com/lutianyu2001/TIR-Learner From 9a3867af89e6d7575e1a24d2ac5117384e12cff9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 28 Jul 2024 19:22:37 -0400 Subject: [PATCH 0883/1514] Update neodisambiguate to 1.1.0 (#49619) --- recipes/neodisambiguate/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/neodisambiguate/meta.yaml b/recipes/neodisambiguate/meta.yaml index 5665c96529ccf..4c36772865992 100644 --- a/recipes/neodisambiguate/meta.yaml +++ b/recipes/neodisambiguate/meta.yaml @@ -1,4 +1,4 @@ -{% set version="1.0.0" %} +{% set version="1.1.0" %} package: name: neodisambiguate @@ -6,7 +6,7 @@ package: source: url: https://github.com/clintval/neodisambiguate/releases/download/{{ version }}/neodisambiguate - sha256: 175f80595162de99c9f0813da773d48cf9883eb2772d434ec61bb237968b1729 + sha256: 000ca66f52cf18b2d1949749a3d672861480d0831ff86113f3e0e05d54c85e45 build: noarch: generic From d546cf78219083c1f80abeb81856293ca10c6dec Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 28 Jul 2024 19:23:26 -0400 Subject: [PATCH 0884/1514] Update mhcflurry to 2.1.2 (#49621) --- recipes/mhcflurry/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mhcflurry/meta.yaml b/recipes/mhcflurry/meta.yaml index e1fa36f02ca62..cf51e883c801f 100644 --- a/recipes/mhcflurry/meta.yaml +++ b/recipes/mhcflurry/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mhcflurry" %} -{% set version = "2.1.1" %} +{% set version = "2.1.2" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 5907a489ffe7e459295b08849428677fc738fcb19716628e4e3d06f247131ff8 + sha256: 95f7b23abde2838118190307096d84c795f373646d231ddf07969cdb4a5138de build: number: 0 From a1f50eeaf8736592a67a1177173ed1291b12fb03 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 28 Jul 2024 19:23:54 -0400 Subject: [PATCH 0885/1514] Update snakemake-storage-plugin-azure to 0.3.0 (#49620) --- recipes/snakemake-storage-plugin-azure/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-azure/meta.yaml b/recipes/snakemake-storage-plugin-azure/meta.yaml index a66b6d1a88edc..f22cf394948c6 100644 --- a/recipes/snakemake-storage-plugin-azure/meta.yaml +++ b/recipes/snakemake-storage-plugin-azure/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-azure" %} -{% set version = "0.2.2" %} +{% set version = "0.3.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_azure-{{ version }}.tar.gz - sha256: df1f5740005dcdbe765f3f6c1b52b657dacaa5177a7a6e981a00aa5f5f2b0be7 + sha256: 95f58b2f355707a37fcf739a0e9172388acef8a1800242f2e0724154521a20e0 build: noarch: python From 9db0d81e71e92074b47abfd843639dd6c4f0eb89 Mon Sep 17 00:00:00 2001 From: Akihiro Kuno Date: Mon, 29 Jul 2024 12:49:42 +0900 Subject: [PATCH 0886/1514] Remove wasyprint in cstag (#49622) --- recipes/cstag/meta.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/recipes/cstag/meta.yaml b/recipes/cstag/meta.yaml index 8e0a6a0ca3761..f2ed2333e74a9 100644 --- a/recipes/cstag/meta.yaml +++ b/recipes/cstag/meta.yaml @@ -12,7 +12,7 @@ source: build: noarch: python script: {{ PYTHON }} -m pip install . -vv - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name|lower, max_pin='x.x') }} @@ -23,7 +23,6 @@ requirements: - pip run: - python >=3.7.0,<4.0.0 - - weasyprint >=52.5 test: imports: From d706ddc5e4f51d81de63a9bf00cacddb5fc33a21 Mon Sep 17 00:00:00 2001 From: Marc Sturm Date: Mon, 29 Jul 2024 12:10:17 +0200 Subject: [PATCH 0887/1514] Update of ngs-bits to version 2024_07 (#49623) --- recipes/ngs-bits/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/ngs-bits/meta.yaml b/recipes/ngs-bits/meta.yaml index 2cdff02b988a1..a0cfd0e03364c 100644 --- a/recipes/ngs-bits/meta.yaml +++ b/recipes/ngs-bits/meta.yaml @@ -1,18 +1,18 @@ -{% set version = "2024_06" %} +{% set version = "2024_07" %} package: name: ngs-bits version: {{ version }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage("ngs-bits", max_pin=None) }} source: url: https://github.com/imgag/ngs-bits/releases/download/{{ version }}/ngs-bits-{{ version }}.tgz - sha256: d338ed656e80a67dba4d1e7decdf40744f398e7559eb4daa2e6cac5b951ec157 + sha256: c1f78b59d87516c5fba44a1375da561b8b1577b4ef949ce63b9a042bbf7f1853 # Note: pinning of sysroot_linux-64 =2.17 enforces cos7 and is currently needed to prevent an memcpy@GLIBC2.14 error requirements: From 243afe64c60c7247398bcfb0d9cd03832a56ff8b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 09:02:46 -0400 Subject: [PATCH 0888/1514] Update pgscatalog.match to 0.2.3 (#49632) --- recipes/pgscatalog.match/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pgscatalog.match/meta.yaml b/recipes/pgscatalog.match/meta.yaml index 239167ed3705d..9d5d74a74c3f0 100644 --- a/recipes/pgscatalog.match/meta.yaml +++ b/recipes/pgscatalog.match/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pgscatalog.match" %} -{% set version = "0.2.2" %} +{% set version = "0.2.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pgscatalog_match-{{ version }}.tar.gz - sha256: 29bd67377ea2f50b8fde7c8287d3498987395c5d3f92ac378cc0886791b549b8 + sha256: 7aa2e940a984d0e7610fe8c712b2730468757e54195880a251b4e250848e39e7 build: number: 0 From 470d1e6c5175fcc8d3371e71f3ce1292c2ac7db7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 09:05:50 -0400 Subject: [PATCH 0889/1514] Update scmidas to 0.0.18 (#49626) --- recipes/scmidas/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/scmidas/meta.yaml b/recipes/scmidas/meta.yaml index c64513e680f91..2ddf1bb026882 100644 --- a/recipes/scmidas/meta.yaml +++ b/recipes/scmidas/meta.yaml @@ -1,5 +1,5 @@ {% set name = "scmidas" %} -{% set version = "0.0.17" %} +{% set version = "0.0.18" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/scmidas-{{ version }}.tar.gz - sha256: d048a28df31340c58fd656ff8918ddebad59eeaa931a7171e582c6d2f5625a79 + sha256: 62c953d679a7298a25882930098cda8c6f3055ec37b89e5306eb471edec10b3f build: number: 0 From d5e42833026857ed6de3b52c81efba5cb54311e5 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 29 Jul 2024 10:00:52 -0500 Subject: [PATCH 0890/1514] longshot: add arm64 build (#49642) --- recipes/longshot/build.sh | 4 ---- recipes/longshot/meta.yaml | 5 +++-- recipes/longshot/update-rust-htslib.patch | 2 +- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/recipes/longshot/build.sh b/recipes/longshot/build.sh index f7112e78ae4b7..c2ec39a96c873 100644 --- a/recipes/longshot/build.sh +++ b/recipes/longshot/build.sh @@ -1,10 +1,6 @@ #!/bin/bash set -ex -# Add workaround for SSH-based Git connections from Rust/cargo. See https://github.com/rust-lang/cargo/issues/2078 for details. -# We set CARGO_HOME because we don't pass on HOME to conda-build, thus rendering the default "${HOME}/.cargo" defunct. -export CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_HOME="${BUILD_PREFIX}/.cargo" - # build statically linked binary with Rust export LD="${CC}" C_INCLUDE_PATH="${PREFIX}/include" LIBRARY_PATH="${PREFIX}/lib" RUST_BACKTRACE=1 diff --git a/recipes/longshot/meta.yaml b/recipes/longshot/meta.yaml index 10c98313b10f1..b02c830a4eddd 100644 --- a/recipes/longshot/meta.yaml +++ b/recipes/longshot/meta.yaml @@ -12,8 +12,7 @@ source: - update-rust-htslib.patch build: - number: 1 - skip: True # [osx] + number: 2 run_exports: - {{ pin_subpackage('longshot', max_pin="x") }} @@ -43,10 +42,12 @@ about: license_file: LICENSE summary: "Diploid SNV caller for error-prone reads." dev_url: https://github.com/pjedge/longshot + doc_url: https://github.com/pjedge/longshot/blob/v(( version }}/README.md extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - doi:10.1038/s41467-019-12493-y - biotools:longshot diff --git a/recipes/longshot/update-rust-htslib.patch b/recipes/longshot/update-rust-htslib.patch index 1f2ec95d71d9f..80c03a76bc485 100644 --- a/recipes/longshot/update-rust-htslib.patch +++ b/recipes/longshot/update-rust-htslib.patch @@ -17,7 +17,7 @@ index c8592eb..e3a32db 100644 [dependencies] bio = "0.25.0" -rust-htslib = "0.38.2" -+rust-htslib = "0.46.0" ++rust-htslib = "0.47.0" clap = "2.26.2" chrono = "0.4" rand = { version = "0.8", features = ["std_rng"] } From ad1e4a899ca40a543f7b1e7a79ab499d5e74c862 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 11:01:34 -0400 Subject: [PATCH 0891/1514] Update pgscatalog-utils to 1.2.0 (#49641) --- recipes/pgscatalog-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pgscatalog-utils/meta.yaml b/recipes/pgscatalog-utils/meta.yaml index f5b5d58027690..1a1f0bf5d31ba 100644 --- a/recipes/pgscatalog-utils/meta.yaml +++ b/recipes/pgscatalog-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pgscatalog-utils" %} -{% set version = "1.1.2" %} +{% set version = "1.2.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pgscatalog_utils-{{ version }}.tar.gz - sha256: f241285f4d316d69a7ca8aef6ccfa0a136431a79f78f390576ab0e92a0e9bdcc + sha256: 00c22d84306c671f909f09ee3cd1c4de223d02009b16c0162c76f9526d0d6efa build: noarch: python From 551bec49230c0d17b87f321ae32c708338defbad Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 11:01:43 -0400 Subject: [PATCH 0892/1514] Update ebi-eva-common-pyutils to 0.6.9 (#49638) --- recipes/ebi-eva-common-pyutils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ebi-eva-common-pyutils/meta.yaml b/recipes/ebi-eva-common-pyutils/meta.yaml index b81c865455d4c..98e6fd2a8d6d6 100644 --- a/recipes/ebi-eva-common-pyutils/meta.yaml +++ b/recipes/ebi-eva-common-pyutils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ebi-eva-common-pyutils" %} -{% set version = "0.6.8" %} +{% set version = "0.6.9" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/ebi_eva_common_pyutils-{{ version }}.tar.gz - sha256: 91ec82a783ac8f5b3b9a2f3d998b99b0af02083bb3c7b8f7c56b37827d6631a5 + sha256: 073b60a4349d3ad540453ee1983bcbbe200cf744242f421bb4ba019cd60eb9a7 build: script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation From 186735e389a275c89f95ba010f2407cf7b1d9c9a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 11:01:52 -0400 Subject: [PATCH 0893/1514] Update pgscatalog.calc to 0.2.2 (#49637) --- recipes/pgscatalog.calc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pgscatalog.calc/meta.yaml b/recipes/pgscatalog.calc/meta.yaml index 0665ea2148648..67c7c66cbacd7 100644 --- a/recipes/pgscatalog.calc/meta.yaml +++ b/recipes/pgscatalog.calc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pgscatalog.calc" %} -{% set version = "0.2.1" %} +{% set version = "0.2.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pgscatalog_calc-{{ version }}.tar.gz - sha256: 66c661a2b8a1b4c46db6f0377b31077053251123b46d31b3b51d54c8ea0dd4d8 + sha256: 3589cc8541e8c8f6e0a359ba163454da1cd4aef0baf6e11c8c23e3aff82c237f build: entry_points: From c8d86e47d3602634ec354b3e529cda7e0f2d5923 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 11:02:26 -0400 Subject: [PATCH 0894/1514] Update pgscatalog.core to 0.2.2 (#49636) --- recipes/pgscatalog.core/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pgscatalog.core/meta.yaml b/recipes/pgscatalog.core/meta.yaml index 1592418bb8ef4..3e037ff67cd1e 100644 --- a/recipes/pgscatalog.core/meta.yaml +++ b/recipes/pgscatalog.core/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pgscatalog.core" %} -{% set version = "0.2.1" %} +{% set version = "0.2.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pgscatalog_core-{{ version }}.tar.gz - sha256: b4711156dfd0a0e4bcf4990e019071e51f97e8bda4eece2e31cf5dd6003d92ee + sha256: 1a716fdaa6972c86b7a8c2a8141a738cbd5f9e6a98941877631f4187415a0a7f build: entry_points: From bd11c6e2ae5cbcd00df270cd4497aa84fac5fedf Mon Sep 17 00:00:00 2001 From: BertBog Date: Mon, 29 Jul 2024 17:04:34 +0200 Subject: [PATCH 0895/1514] updated pacu_snp to v0.0.4 (#49640) --- recipes/pacu_snp/meta.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/pacu_snp/meta.yaml b/recipes/pacu_snp/meta.yaml index 02d1fa110b448..a25469c48a3fa 100644 --- a/recipes/pacu_snp/meta.yaml +++ b/recipes/pacu_snp/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.0.3" %} +{% set version = "0.0.4" %} package: name: pacu_snp @@ -6,7 +6,7 @@ package: source: url: https://pypi.io/packages/source/p/pacu_snp/pacu_snp-{{ version }}.tar.gz - sha256: a4e9934f6b218a48784389fdc3f2af4fe4fe7225f69a90278a83976bfa02fc78 + sha256: a00027a667bd502073f682e4ea72c0e31a1940345b19338cd2b67838ef925c2a build: noarch: python @@ -14,6 +14,7 @@ build: entry_points: - PACU=pacu.run_pacu:main - PACU_map=pacu.map_to_ref:main + - PACU_galaxy=pacu.galaxy:main run_exports: - {{ pin_subpackage("pacu_snp", max_pin="x.x") }} script: "{{ PYTHON }} -m pip install . --no-deps -vv" @@ -59,4 +60,5 @@ test: commands: - PACU -h - PACU_map -h + - PACU_galaxy -h From 257c08752202c31b051edc96c68e72cec07ed621 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 15:43:57 -0400 Subject: [PATCH 0896/1514] Update pytximport to 0.7.0 (#49646) --- recipes/pytximport/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pytximport/meta.yaml b/recipes/pytximport/meta.yaml index 5f43ef5d5e436..698fc623fa95c 100644 --- a/recipes/pytximport/meta.yaml +++ b/recipes/pytximport/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pytximport" %} -{% set version = "0.6.0" %} +{% set version = "0.7.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pytximport-{{ version }}.tar.gz - sha256: 7a32d5cf5cd9582fe832661b81f0159896d69b7d52dd66ca55d74f1ec48f1606 + sha256: fa4992d4fe11246941b36eadc886d34d61d6682e5cf2ad266f9f96bb0da9290a build: noarch: python From 1cfab4ae8d15542a065cfa20a234ecbadb999565 Mon Sep 17 00:00:00 2001 From: Lauren Coombe Date: Mon, 29 Jul 2024 12:44:30 -0700 Subject: [PATCH 0897/1514] Update btllib to 1.7.3 (#49643) --- recipes/btllib/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/btllib/meta.yaml b/recipes/btllib/meta.yaml index 7414af219a0f1..c106b65e155e0 100644 --- a/recipes/btllib/meta.yaml +++ b/recipes/btllib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "btllib" %} -{% set version = "1.7.2" %} +{% set version = "1.7.3" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: https://github.com/bcgsc/btllib/releases/download/v{{ version }}/{{ name|lower }}-{{ version }}.tar.gz - sha256: 4c1bb29fdbd7d9a39f960360a5d4b224d22189862b948027a8e3ecd67c635926 + sha256: 31e7124e1cda9eea6f27b654258a7f8d3dea83c828f0b2e8e847faf1c5296aa3 build: - number: 3 + number: 0 run_exports: - {{ pin_subpackage('btllib', max_pin="x") }} From 84f37fc0e8e74d388e31e2783527bc295ee20e8e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 15:45:20 -0400 Subject: [PATCH 0898/1514] Update perbase to 0.10.0 (#49644) --- recipes/perbase/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/perbase/meta.yaml b/recipes/perbase/meta.yaml index e97ff9b77b19d..ac6865b1435ff 100644 --- a/recipes/perbase/meta.yaml +++ b/recipes/perbase/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.9.0" %} -{% set sha256 = "8f3c4ef2475241e06636c9e2790da5258aac69722d6fbc8592b33a6bfeb49ddb" %} +{% set version = "0.10.0" %} +{% set sha256 = "357d2b24cf06875e177f9aa5165286709aec91ce84bef13602ae4c26274160f4" %} package: name: perbase @@ -12,7 +12,7 @@ source: - perbase-aarch64.patch build: - number: 2 + number: 0 run_exports: - {{ pin_subpackage('perbase', max_pin="x.x") }} From 392d15856bb2b192bdf007cac4e3bed406833177 Mon Sep 17 00:00:00 2001 From: Gioele Lazzari <56556415+lazzarigioele@users.noreply.github.com> Date: Mon, 29 Jul 2024 21:52:11 +0200 Subject: [PATCH 0899/1514] add gempipe recipe (#49639) --- recipes/gempipe/meta.yaml | 69 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100755 recipes/gempipe/meta.yaml diff --git a/recipes/gempipe/meta.yaml b/recipes/gempipe/meta.yaml new file mode 100755 index 0000000000000..163ceffad28ed --- /dev/null +++ b/recipes/gempipe/meta.yaml @@ -0,0 +1,69 @@ +{% set version = "1.33.0" %} + +package: + name: "gempipe" + version: {{ version }} + + +source: + url: https://github.com/lazzarigioele/gempipe/archive/v{{ version }}.tar.gz + sha256: 547e812764177ba1171740e1b4ea564784dee6c395618ae125ffb0f28fe196f3 + + +build: + number: 0 # Build number, increment this when making new builds of the same version + noarch: python + script: + - {{ PYTHON }} -m pip install . -vv --no-deps # Script to run for building the package + entry_points: + - gempipe = gempipe:main + run_exports: + - {{ pin_subpackage('gempipe', max_pin="x") }} + + +requirements: + host: + - python >=3.9 + - pip + - poetry >=1.7.1 + - poetry-core >=1.8.1 + - ipython >=8.7.0 + run: + - python >=3.9 + - ipython >=8.7.0 + - cobra >=0.29 + - pandas >=2.0.0 + - openpyxl >=3.1.0 + - ncbi-genome-download >=0.3.3 + - biopython >=1.80 + - pigz >=2.5 + - prodigal >=2.6.3 + - prokka >=1.14.6 + - busco >=5.4.0 + - seqkit >=2.2.0 + - cd-hit >=4.8.1 + - blast >=2.12.0 + - diamond >=2.0.15 + - eggnog-mapper >=2.1.7 + + +test: + imports: + - gempipe + commands: + - gempipe --help + + +about: + home: "https://github.com/lazzarigioele/gempipe" + summary: 'gempipe is a tool for the reconstruction of strain-specific genome-scale metabolic models.' + license: GPL-3.0-only + license_file: LICENSE.txt + doc_url: "https://gempipe.readthedocs.io/" + dev_url: "https://github.com/lazzarigioele/gempipe" + + +extra: + recipe-maintainers: + - lazzarigioele + From 6591dc0a033928af8de2d3961a8c5cbf994231b1 Mon Sep 17 00:00:00 2001 From: richard-burhans Date: Mon, 29 Jul 2024 16:50:35 -0400 Subject: [PATCH 0900/1514] adding missing requirement (#49647) Co-authored-by: Richard Burhans --- recipes/segalign-galaxy/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/segalign-galaxy/meta.yaml b/recipes/segalign-galaxy/meta.yaml index 4c89cace6e0b2..587bf1cacd24e 100644 --- a/recipes/segalign-galaxy/meta.yaml +++ b/recipes/segalign-galaxy/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 noarch: generic run_exports: - {{ pin_compatible('segalign-galaxy', max_pin='x.x') }} @@ -14,6 +14,7 @@ requirements: run: - segalign-full ={{ version }} - bashlex + - gzip - python =3.12 test: From 054aee05255a270f46989d344a080713592ef04a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 21:18:07 -0400 Subject: [PATCH 0901/1514] Update oarfish to 0.5.0 (#49652) --- recipes/oarfish/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/oarfish/meta.yaml b/recipes/oarfish/meta.yaml index 633bcc960583e..566a540757180 100644 --- a/recipes/oarfish/meta.yaml +++ b/recipes/oarfish/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.4.0" %} +{% set version = "0.5.0" %} package: name: oarfish @@ -11,7 +11,7 @@ build: source: url: https://github.com/COMBINE-lab/oarfish/archive/v{{ version }}.tar.gz - sha256: 97e5d42d7797977a12790d9986a7e28c2ec264ca7a9637916178594e868080c8 + sha256: 2fcaeca31f7e1c9870dd200ce0fd4163b58e8e945015ad00d06e8a98cf4921f6 requirements: build: From da58087d74bff672c4cd6f8a27e59364113c1198 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 21:20:02 -0400 Subject: [PATCH 0902/1514] Update pathogen-embed to 2.3.0 (#49650) --- recipes/pathogen-embed/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pathogen-embed/meta.yaml b/recipes/pathogen-embed/meta.yaml index 7adbedfad19a3..585b65b93e761 100644 --- a/recipes/pathogen-embed/meta.yaml +++ b/recipes/pathogen-embed/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.2.1" %} +{% set version = "2.3.0" %} {% set name = "pathogen-embed" %} package: @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pathogen_embed-{{ version }}.tar.gz - sha256: 50c18c45aa53aa469b26e9b18d903167e7bd52755de6b4a6a2acec9feff8f1dc + sha256: 47ef737b7609593c6de143c17f54bc1e526aaa615773aad73bb6464de67cbff1 build: number: 0 From 75ed8b019dac25432b8e3eca7bf67642c0c5db2b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 21:52:56 -0400 Subject: [PATCH 0903/1514] Update pybiolib to 1.2.12 (#49645) * Update pybiolib to 1.1.2250 * Update pybiolib to 1.2.12 * add entry_points --------- Co-authored-by: mencian --- recipes/pybiolib/meta.yaml | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index 2ecfc649d42a0..5a7d5bf7ebabb 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.1.2244" %} +{% set version = "1.2.12" %} package: name: {{ name|lower }} @@ -7,25 +7,27 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: af57cacff6cbf4c54c70b308d0c3a48757285795c5983f7e596437f9981ba62f + sha256: dec5aa160f90cbbd0060975fc2cf5667cf8d44ce8936d6aef0886da336b66265 build: - noarch: python - script: {{ PYTHON }} -m pip install . -vv number: 0 + noarch: python + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv + entry_points: + - biolib = biolib:call_cli run_exports: - - {{ pin_subpackage('pybiolib', max_pin="x.x") }} + - {{ pin_subpackage('pybiolib', max_pin="x") }} requirements: host: - python >=3.6,<4.0 - - poetry >=0.12 + - poetry >=1.8.0 - poetry-core - pip run: - python >=3.6,<4.0 - appdirs >=1.4.3 - - click >=8.0.0,<8.1.0 + - click >=8.0.0 - docker-py >=5.0.3 - flask >=2.0.1 - flask-cors >=3.0.10 @@ -35,24 +37,23 @@ requirements: - pyjwt >=2.3.0 - pyyaml >=5.3.1 - requests >=2.25.1,<2.30.0 - - rich >=12.4.4,<13.0.0 - - typing_extensions >=3.10.0 # [py<38] - - typing_inspect >=0.5.0,<0.6.0 # [py<38] + - rich >=12.4.4 + - typing_extensions >=3.10.0 # [py < 38] + - typing_inspect >=0.5.0,<0.6.0 # [py < 38] test: imports: - biolib commands: - - pip check - biolib -h - requires: - - pip about: home: https://github.com/biolib - summary: BioLib Python Client + summary: "BioLib Python Client" license: MIT + license_family: MIT license_file: LICENSE + dev_url: https://github.com/biolib extra: recipe-maintainers: From 159d1b11214cc3820a572f7132567f4f3b8c86df Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 29 Jul 2024 21:56:44 -0500 Subject: [PATCH 0904/1514] Update cellprofiler-core to 4.2.7 (#49653) --- recipes/cellprofiler-core/meta.yaml | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/recipes/cellprofiler-core/meta.yaml b/recipes/cellprofiler-core/meta.yaml index eb03ea8eddc69..f439833bd2fb8 100644 --- a/recipes/cellprofiler-core/meta.yaml +++ b/recipes/cellprofiler-core/meta.yaml @@ -1,39 +1,39 @@ {% set name = "cellprofiler-core" %} -{% set version = "4.2.6" %} +{% set version = "4.2.7" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/cellprofiler-core-{{ version }}.tar.gz - sha256: 91993485783bbab87d89a728260f10e57fda3f7335e6057393702cea774db2d7 + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/cellprofiler_core-{{ version }}.tar.gz + sha256: b1a4c232a7d6237726ec3f5a5d5b9c06b177d3b37020c14b2179b690aef1f772 build: number: 0 noarch: python - script: {{ PYTHON }} -m pip install . -vv + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv run_exports: - {{ pin_subpackage(name, max_pin='x') }} requirements: host: - pip - - python >=3.6 + - python >=3.8 run: - boto3 >=1.12.28 - - centrosome ==1.2.1 + - centrosome >=1.2.3,<1.3 - docutils ==0.15.2 - - h5py 3.6.0 + - h5py >=3.6.0,<3.7.dev0 - matplotlib-base >=3.1.3 - numpy >=1.18.2 - prokaryote ==2.4.4 - psutil >=5.7.0 - - python >=3.6 - - python-bioformats ==4.0.6 + - python >=3.8 + - python-bioformats ==4.0.7 - python-javabridge ==4.0.3 - - pyzmq 22.3 - - scikit-image >=0.16.2 + - pyzmq >=22.3,<23.dev0 + - scikit-image ==0.18.3 - scipy >=1.4.1 test: @@ -42,10 +42,13 @@ test: - cellprofiler_core.analysis about: - home: https://github.com/CellProfiler/core + home: "https://github.com/CellProfiler/core" license: BSD-3-Clause + license_family: BSD license_file: LICENSE - summary: Dependency for CellProfiler v4 + summary: "Dependency for CellProfiler v4." + dev_url: "https://github.com/CellProfiler/core" + doc_url: "https://github.com/CellProfiler/CellProfiler/wiki" extra: recipe-maintainers: From f744496006b6dd32954de6dc443a1b82c8c2af21 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 22:57:28 -0400 Subject: [PATCH 0905/1514] Update r-recetox-aplcms to 0.13.0 (#49625) * Update r-recetox-aplcms to 0.13.0 * Update meta.yaml * add run_exports * fix URL --------- Co-authored-by: Helge Hecht Co-authored-by: mencian --- recipes/r-recetox-aplcms/meta.yaml | 48 +++++++++++++++--------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/recipes/r-recetox-aplcms/meta.yaml b/recipes/r-recetox-aplcms/meta.yaml index b28a820e83e71..066f8b6fa62e8 100644 --- a/recipes/r-recetox-aplcms/meta.yaml +++ b/recipes/r-recetox-aplcms/meta.yaml @@ -1,64 +1,62 @@ {% set name = "recetox-aplcms" %} -{% set version = "0.12.0" %} -{% set github = "https://github.com/RECETOX" %} +{% set version = "0.13.0" %} +{% set github = "https://github.com/RECETOX/recetox-aplcms" %} package: name: "r-{{ name|lower }}" version: "{{ version }}" source: - url: "{{ github }}/recetox-aplcms/archive/refs/tags/v{{ version }}.tar.gz" - sha256: c76715e50a442b45f46f79120af6f382965f9a8de63bf0f624eb132478b6ed2c + url: "https://github.com/RECETOX/recetox-aplcms/archive/refs/tags/v{{ version }}.tar.gz" + sha256: d08847e0846734c76f06d009f4449ba498da8ea955d5029ee4ce4a67ba8e82ea build: - number: 1 + number: 0 noarch: generic rpaths: - lib/R/lib/ - lib/ script_env: - - RGL_USE_NULL=TRUE # avoid warning at test-time - script: R CMD INSTALL --build . - + - RGL_USE_NULL=TRUE # avoid warning at test-time + script: ${R} CMD INSTALL --build . ${R_ARGS} + run_exports: + - {{ pin_subpackage('r-recetox-aplcms', max_pin="x.x") }} + requirements: host: - - r-base =4.2 + - r-base - r-mass - - bioconductor-mzr + - bioconductor-mzr ==2.36.0 - r-splines2 - r-doparallel - r-foreach - r-iterators - r-snow - r-rcpp - - r-arrow >=7.0.0,<10.0.0 + - r-arrow - r-dplyr - r-tidyr - r-stringr - # TODO work around bug in conda mambabuild that takes this from defaults instead of conda-forge - # can be removed once conda mambabuild properly respects strict priorities. - # See https://github.com/mamba-org/boa/issues/115 - - r-stringi >=1.7.12 + - r-stringi - r-tibble + - r-plyr run: - - r-base =4.2 + - r-base - r-mass - - bioconductor-mzr + - bioconductor-mzr ==2.36.0 - r-splines2 - r-doparallel - r-foreach - r-iterators - r-snow - r-rcpp - - r-arrow >=7.0.0,<10.0.0 + - r-arrow - r-dplyr - r-tidyr - r-stringr - # TODO work around bug in conda mambabuild that takes this from defaults instead of conda-forge - # can be removed once conda mambabuild properly respects strict priorities. - # See https://github.com/mamba-org/boa/issues/115 - - r-stringi >=1.7.12 + - r-stringi - r-tibble + - r-plyr test: commands: @@ -66,9 +64,11 @@ test: about: home: "{{ github }}" - license: GPL-2.0 + license: "GPL-2.0-or-later" license_file: LICENSE - summary: apLCMS is a software which generates a feature table from a batch of LC/MS spectra. A modified fork of the original apLCMS by Tianwei Yu. + summary: "apLCMS is a software which generates a feature table from a batch of LC/MS spectra. A modified fork of the original apLCMS by Tianwei Yu." + dev_url: "{{ github }}" + doc_url: "https://mypage.cuhk.edu.cn/academics/yutianwei/apLCMS" extra: recipe-maintainers: From edb5f0ecf5cf30d0cd73969d4fd11a7e95c39ce1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 22:57:44 -0400 Subject: [PATCH 0906/1514] Update pygcap to 1.2.5 (#49654) --- recipes/pygcap/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pygcap/meta.yaml b/recipes/pygcap/meta.yaml index 6a2c7eae82282..abc14978799ed 100644 --- a/recipes/pygcap/meta.yaml +++ b/recipes/pygcap/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pygcap" %} -{% set version = "1.2.3" %} +{% set version = "1.2.5" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pygcap-{{ version }}.tar.gz - sha256: f9f96bff4cfa880746f9d549f58ac4c50758544c7f91fafffb680e654363d477 + sha256: caa4edf728b8cee811daf71e6fda4f3a088fcec3a6bd24a3fc37807c2ee01125 build: number: 0 From c7691c9e2154f64446d3e62f9113fe263f2fc886 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 29 Jul 2024 23:24:00 -0400 Subject: [PATCH 0907/1514] Update espresso to 1.5.0 (#49649) --- recipes/espresso/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/espresso/meta.yaml b/recipes/espresso/meta.yaml index 336ead6120ef1..6c4740057bb4e 100644 --- a/recipes/espresso/meta.yaml +++ b/recipes/espresso/meta.yaml @@ -1,11 +1,11 @@ -{% set version = "1.4.0" %} +{% set version = "1.5.0" %} package: name: espresso version: {{ version }} source: - sha256: 656a5ab152782e5bb195b25a3814a3b94c1ed9ae9c03a1692cf1bba0794d1295 + sha256: 7cc7dd73465f434c98e8c5a41c510bfc419edb32954f2736b20af3f05cc7e348 url: https://github.com/Xinglab/espresso/releases/download/v{{ version }}/espresso_v_{{ version|replace(".", "_") }}.tar.gz build: From 0a0206234b544662bf89aee7ea2ab5d3021c8c76 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 29 Jul 2024 22:52:31 -0500 Subject: [PATCH 0908/1514] wfa2-lib: add arm64 build (#49655) * wfa2-lib: add arm64 build * edit build.sh --- recipes/wfa2-lib/build.sh | 15 ++++++++------- recipes/wfa2-lib/meta.yaml | 7 ++++--- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/recipes/wfa2-lib/build.sh b/recipes/wfa2-lib/build.sh index 1c1d621252dc4..ae970ee6f6ad4 100644 --- a/recipes/wfa2-lib/build.sh +++ b/recipes/wfa2-lib/build.sh @@ -5,13 +5,14 @@ export C_INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" -ARCH=$(uname -m) - -if [ "${ARCH}" == "aarch64" ]; then - export EXTRA_FLAGS="-ftree-vectorize" -else - export EXTRA_FLAGS="-ftree-vectorize -msse2 -mfpmath=sse" -fi +case $(uname -m) in + aarch64 | arm64) + EXTRA_FLAGS="-ftree-vectorize" + ;; + *) + EXTRA_FLAGS="-ftree-vectorize -msse2 -mfpmath=sse" + ;; +esac cmake -S . -B build \ -DCMAKE_CXX_COMPILER="${CXX}" \ diff --git a/recipes/wfa2-lib/meta.yaml b/recipes/wfa2-lib/meta.yaml index dc5ce51a913f7..1ae790fdcb1e4 100644 --- a/recipes/wfa2-lib/meta.yaml +++ b/recipes/wfa2-lib/meta.yaml @@ -11,9 +11,9 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 run_exports: - - {{ pin_subpackage(name, max_pin="x.x") }} + - {{ pin_subpackage(name, max_pin="x") }} requirements: build: @@ -38,7 +38,7 @@ about: license_file: LICENSE summary: "Wavefront alignment algorithm library v2" dev_url: "https://github.com/smarco/WFA2-lib" - doc_url: "https://github.com/smarco/WFA2-lib/blob/main/README.md" + doc_url: "https://github.com/smarco/WFA2-lib/blob/v{{ version }}/README.md" extra: identifiers: @@ -46,3 +46,4 @@ extra: - doi:10.1101/2022.04.14.488380 additional-platforms: - linux-aarch64 + - osx-arm64 From a28f672d2cac19b5cdebc4410b02de263aa91670 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 00:05:01 -0400 Subject: [PATCH 0909/1514] Update cellprofiler to 4.2.7 (#49651) * Update cellprofiler to 4.2.7 * clean up recipe --------- Co-authored-by: mencian Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- .../cellprofiler/build_failure.osx-64.yaml | 104 ------------------ recipes/cellprofiler/meta.yaml | 46 ++++---- 2 files changed, 25 insertions(+), 125 deletions(-) delete mode 100644 recipes/cellprofiler/build_failure.osx-64.yaml diff --git a/recipes/cellprofiler/build_failure.osx-64.yaml b/recipes/cellprofiler/build_failure.osx-64.yaml deleted file mode 100644 index 8cc30b4cb724e..0000000000000 --- a/recipes/cellprofiler/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 3c02010a42e840b731d104e29ebd56082cedc1da36c80ba792045e1e2edefd71 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |- - Could not solve for environment specs - The following packages are incompatible - python-javabridge is installable with the potential options - python-javabridge 4.0.0 would require - python_abi 3.6.* *_cp36m, which can be installed; - python-javabridge 4.0.0 would require - python_abi 3.6 *_pypy36_pp73, which can be installed; - python-javabridge 4.0.0 would require - python_abi 3.7.* *_cp37m, which can be installed; - python-javabridge 4.0.0 would require - python_abi 3.7 *_pypy37_pp73, which can be installed; - python-javabridge 4.0.0 would require - python_abi 3.8.* *_cp38, which can be installed; - python-javabridge [4.0.0|4.0.3] would require - python_abi 3.9.* *_cp39, which can be installed; - python-javabridge 4.0.3 would require - python_abi 3.10.* *_cp310, which can be installed; - python 3.12.* *_cpython is not installable because there are no viable options - python [3.12.0|3.12.1|3.12.2|3.12.3] would require - python_abi 3.12.* *_cp312, which conflicts with any installable versions previously reported; - python 3.12.0rc3 would require - _python_rc, which does not exist (perhaps a missing channel). - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2308, in build - output_metas = expand_outputs([(m, need_source_download, need_reparse_in_env)]) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 916, in expand_outputs - for output_dict, m in deepcopy(_m).get_output_metadata_set( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 2737, in get_output_metadata_set - conda_packages = finalize_outputs_pass( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/metadata.py", line 1095, in finalize_outputs_pass - fm = finalize_metadata( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 650, in finalize_metadata - build_unsat, host_unsat = add_upstream_pins( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 491, in add_upstream_pins - host_deps, host_unsat, extra_run_specs_from_host = _read_upstream_pin_files( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 444, in _read_upstream_pin_files - deps, precs, unsat = get_env_dependencies( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/render.py", line 156, in get_env_dependencies - precs = environ.get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions - precs = _install_actions(prefix, index, specs)["LINK"] - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions - txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction - unlink_precs, link_precs = self.solve_for_diff( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff - final_precs = self.solve_final_state( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state - out_state = self._solving_loop(in_state, out_state, index) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop - solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {MatchSpec("_python_rc"), MatchSpec("python==3.12.0rc3=rc3_h30d4d87_1_cpython")} - Encountered problems while solving: - - nothing provides _python_rc needed by python-3.12.0rc3-rc3_h30d4d87_1_cpython - - Could not solve for environment specs - The following packages are incompatible - python-javabridge is installable with the potential options - python-javabridge 4.0.0 would require - python_abi 3.6.* *_cp36m, which can be installed; - python-javabridge 4.0.0 would require - python_abi 3.6 *_pypy36_pp73, which can be installed; - python-javabridge 4.0.0 would require - python_abi 3.7.* *_cp37m, which can be installed; - python-javabridge 4.0.0 would require - python_abi 3.7 *_pypy37_pp73, which can be installed; - python-javabridge 4.0.0 would require - python_abi 3.8.* *_cp38, which can be installed; - python-javabridge [4.0.0|4.0.3] would require - python_abi 3.9.* *_cp39, which can be installed; - python-javabridge 4.0.3 would require - python_abi 3.10.* *_cp310, which can be installed; - python 3.12.* *_cpython is not installable because there are no viable options - python [3.12.0|3.12.1|3.12.2|3.12.3] would require - python_abi 3.12.* *_cp312, which conflicts with any installable versions previously reported; - python 3.12.0rc3 would require - _python_rc, which does not exist (perhaps a missing channel). -# Last 100 lines of the build log. diff --git a/recipes/cellprofiler/meta.yaml b/recipes/cellprofiler/meta.yaml index e920a91d10b0f..813f6bbada87d 100644 --- a/recipes/cellprofiler/meta.yaml +++ b/recipes/cellprofiler/meta.yaml @@ -1,5 +1,5 @@ {% set name = "CellProfiler" %} -{% set version = "4.2.6" %} +{% set version = "4.2.7" %} package: name: "{{ name|lower }}" @@ -7,30 +7,30 @@ package: source: url: https://github.com/CellProfiler/{{ name }}/archive/v{{ version }}.tar.gz - sha256: "fae14f97efc69f09d9074e53fcebbf50e1eafbf4ebaeb3a3de8699f44c9bccd9" + sha256: "8bc0819f1e2c215756e7eb5b7f0078949760d707397930eddf002b8bdd452ed3" build: - number: 1 - skip: True # [ py < 39 ] - script: "{{ PYTHON }} -m pip install --no-deps --ignore-installed . -vv" + number: 0 + noarch: python + script: "{{ PYTHON }} -m pip install --no-deps --no-build-isolation --no-cache-dir --use-pep517 . -vvv" + entry_points: + - cellprofiler=cellprofiler.__main__:main run_exports: - {{ pin_subpackage('cellprofiler', max_pin='x') }} requirements: - build: - - {{ compiler('c') }} host: - - python + - python >=3.8 - pip - - cython - - python-javabridge - pytest run: - - python + - python >=3.8 + - boto3 >=1.12.28 - centrosome - docutils - - cellprofiler-core {{ version }} - - h5py >=2.10 + - cellprofiler-core =={{ version }} + - h5py >=3.6.0,<3.7.dev0,<4 + - imageio >=2.5 - inflect - python-javabridge - joblib @@ -40,15 +40,17 @@ requirements: - matplotlib-base - mysqlclient - numpy + - pillow - prokaryote - python-bioformats + - pyzmq >=22.3,<23.dev0 - requests - - scikit-image >=0.17.2 - - scikit-learn >=0.20 - - scipy >=1.4.1 + - scikit-image ==0.18.3 + - scikit-learn >=0.20,<1 + - scipy ==1.9.0 - six + - tifffile <2022.4.22 - wxpython - - pillow test: imports: @@ -57,14 +59,16 @@ test: - cellprofiler --help about: - home: https://github.com/CellProfiler/CellProfiler - license: 3-clause BSD + home: "https://github.com/CellProfiler/CellProfiler" + license: "BSD-3-Clause" license_family: BSD license_file: LICENSE - summary: "CellProfiler is free, open-source software for quantitative analysis of biological images" + summary: "CellProfiler is free, open-source software for quantitative analysis of biological images." description: | CellProfiler is free, open-source software for quantitative analysis of biological images.No prior experience in programming or computer vision is required. + dev_url: "https://github.com/CellProfiler/CellProfiler" + doc_url: "https://cellprofiler-manual.s3.amazonaws.com/CellProfiler-{{ version }}/index.html" extra: container: - extended-base: true + extended-base: True From 33974b621438587075dbf5747b45c89fa7e3c6c3 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 29 Jul 2024 23:05:40 -0500 Subject: [PATCH 0910/1514] tabixpp: add arm64 build (#49657) --- recipes/tabixpp/meta.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recipes/tabixpp/meta.yaml b/recipes/tabixpp/meta.yaml index b8f8488b7f72c..b15f3d0e790dd 100644 --- a/recipes/tabixpp/meta.yaml +++ b/recipes/tabixpp/meta.yaml @@ -12,12 +12,12 @@ source: patches: - shared_lib.patch - pkg-config.patch # [osx] -- url: https://github.com/samtools/htslib/releases/download/1.19.1/htslib-1.19.1.tar.bz2 - sha256: 222d74d3574fb67b158c6988c980eeaaba8a0656f5e4ffb76b5fa57f035933ec +- url: https://github.com/samtools/htslib/releases/download/1.20/htslib-1.20.tar.bz2 + sha256: e52d95b14da68e0cfd7d27faf56fef2f88c2eaf32a2be51c72e146e3aa928544 folder: htslib build: - number: 2 + number: 3 run_exports: # Observed ABI version increase from 1.1.0 to 1.1.2. # Hence, we pin to the patch version even. @@ -47,6 +47,7 @@ about: license_family: MIT license_file: LICENSE summary: "A C++ wrapper around the tabix project, a generic indexer for TAB-delimited genome position files." + dev_url: "https://github.com/vcflib/tabixpp" extra: identifiers: @@ -55,3 +56,4 @@ extra: - jpuritz additional-platforms: - linux-aarch64 + - osx-arm64 From 4c6e08b8447b6ab088f94cac89503bbcbe59bf38 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 29 Jul 2024 23:24:08 -0500 Subject: [PATCH 0911/1514] Add recipe for scspectra v0.2.0 (#49603) * Add recipe for scspectra v0.2.0 * edit tests --- recipes/scspectra/meta.yaml | 47 +++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 recipes/scspectra/meta.yaml diff --git a/recipes/scspectra/meta.yaml b/recipes/scspectra/meta.yaml new file mode 100644 index 0000000000000..89469914bc995 --- /dev/null +++ b/recipes/scspectra/meta.yaml @@ -0,0 +1,47 @@ +{% set name = "scspectra" %} +{% set version = "0.2.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/scspectra-{{ version }}.tar.gz + sha256: dd0d2ae2f0cef68d41a10ba2174e6e4e89e9d185958ef6f60a1798f27970206f + +build: + number: 0 + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + run_exports: + - {{ pin_subpackage('scspectra', max_pin="x.x") }} + +requirements: + host: + - python >=3.8 + - poetry-core >=1.0.0 + - pip + run: + - python >=3.8 + - numpy >=1.20.3 + - scipy >=1.7.3 + - scanpy >=1.8.2 + - pytorch >=1.10.1,<2.0.0 + - opt-einsum >=3.3.0 + - pandas >=1.3.5,<2.0.0 + - tqdm >=4.62.3 + - pyvis >=0.1.9,<0.2.0 + +test: + #imports: + #- scspectra + commands: + - pip check + +about: + home: https://github.com/dpeerlab/spectra + summary: "Supervised discovery of interpretable gene programs from single-cell data." + license: MIT + license_family: MIT + license_file: LICENSE.md + dev_url: https://github.com/dpeerlab/spectra From ee0b59f09009b95764cfe12d53d136087ed83b61 Mon Sep 17 00:00:00 2001 From: "UENO, M." Date: Tue, 30 Jul 2024 14:55:10 +0900 Subject: [PATCH 0912/1514] Add recipe for Reduce v4.14 (#49610) * Add recipe for reduce * Update build.sh * Modify build.sh and meta.yaml * Update mata.yaml * Update mata.yaml * Update build.sh * Update build.sh * Update meta.yaml * Update meta.yaml * Update meta.yaml * Fix meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update build.sh * Update build.sh * Update build.sh * Update build.sh * Revert parallel build * Fix build.sh * Update build.sh * Update build.sh * Update build.sh --------- Co-authored-by: Martin Grigorov --- recipes/reduce/build.sh | 7 ++++++ recipes/reduce/meta.yaml | 48 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 recipes/reduce/build.sh create mode 100644 recipes/reduce/meta.yaml diff --git a/recipes/reduce/build.sh b/recipes/reduce/build.sh new file mode 100644 index 0000000000000..7dc7f938e30cb --- /dev/null +++ b/recipes/reduce/build.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +mkdir -p build +cd build +cmake ${SRC_DIR} ${CMAKE_ARGS} +make +make install diff --git a/recipes/reduce/meta.yaml b/recipes/reduce/meta.yaml new file mode 100644 index 0000000000000..d9729ccdc437c --- /dev/null +++ b/recipes/reduce/meta.yaml @@ -0,0 +1,48 @@ +{% set name = "reduce" %} +{% set version = "4.14" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/rlabduke/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz + sha256: 62e61cce221fff76b5834031302d91fe703a19945a42e16620d4fb860604daf4 + +build: + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} + +requirements: + build: + - make + - cmake + - {{ compiler('c') }} + - {{ compiler('cxx') }} # [linux] + host: + - libboost-python-devel + - python + run: + - python + +test: + commands: + - reduce -version || if [ $? -eq 2 ]; then exit 0; else exit 1; fi + +about: + home: https://github.com/rlabduke/reduce + summary: Reduce - tool for adding and correcting hydrogens in PDB files + license: BSD-4-Clause-UC + license_family: BSD + license_file: LICENSE.txt + description: | + Reduce is a tool for adding and correcting hydrogens in PDB files. + It is often used in computational biology and molecular modeling to + prepare protein structures for further analysis or simulations. + doc_url: https://github.com/rlabduke/reduce#readme + dev_url: https://github.com/rlabduke/reduce + +extra: + recipe-maintainers: + - eunos-1128 From c6795b7b59155303ab98619211bb32861d11033b Mon Sep 17 00:00:00 2001 From: Konstantinn Bonnet <50845450+qwx9@users.noreply.github.com> Date: Tue, 30 Jul 2024 06:03:59 +0000 Subject: [PATCH 0913/1514] add strangepg package (#49612) --- recipes/strangepg/build.sh | 4 +++ recipes/strangepg/meta.yaml | 56 +++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 recipes/strangepg/build.sh create mode 100644 recipes/strangepg/meta.yaml diff --git a/recipes/strangepg/build.sh b/recipes/strangepg/build.sh new file mode 100644 index 0000000000000..08e12b16862ae --- /dev/null +++ b/recipes/strangepg/build.sh @@ -0,0 +1,4 @@ +#!/bin/bash +export CFLAGS="$CFLAGS -I${PREFIX}/include" +export LDFLAGS="$LDFLAGS -ldl -lpthread" +make -j install diff --git a/recipes/strangepg/meta.yaml b/recipes/strangepg/meta.yaml new file mode 100644 index 0000000000000..5305080d13612 --- /dev/null +++ b/recipes/strangepg/meta.yaml @@ -0,0 +1,56 @@ +{% set name = "strangepg" %} +{% set version = "0.8.0" %} +{% set ref = "55e8fba29e9e0259f5d950df477d1850eb4f3163" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/qwx9/{{ name }}/archive/{{ ref }}.tar.gz + sha256: a8210b50f6ceda7dc6edd05a771d8645523a05d43d01fc7d15bb36ad86d4ffc9 + +build: + number: 0 + skip: True # [not linux] + run_exports: + - {{ pin_subpackage('strangepg', max_pin=None) }} + +requirements: + build: + - {{ compiler('c') }} + - make + - {{ cdt('mesa-libgl-devel') }} + - {{ cdt('mesa-libegl-devel') }} + - {{ cdt('mesa-dri-drivers') }} + - {{ cdt('libdrm-devel') }} + - {{ cdt('libglvnd-glx') }} # [cdt_name != 'cos6'] + host: + - xorg-libx11 + - xorg-libxau + - xorg-libxcb + - xorg-libxcursor + - xorg-libxdmcp + - xorg-libxext + - xorg-libxfixes + - xorg-libxi + - xorg-libxrandr + run: + +test: + commands: + - which strpg + - which strawk + +about: + home: https://github.com/qwx9/{{ name }} + summary: 'Strange pangenome-scale interactive graph visualizer' + license: MIT + license_family: MIT + license_file: LICENSE + +extra: + recipe-maintainers: + - qwx9 + container: + extended-base: True From ed83a7d8d4447b37e2fa1e8dac48c60b6ee6e51d Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Tue, 30 Jul 2024 08:44:25 +0200 Subject: [PATCH 0914/1514] Update pkiss (#49225) * using latest release of upstream * use recent gapc update with hopes to compile on OSX * revert to master * enforcing latest gapc version + support for OSX * don't change rnashapes in pkiss recipe! * update version + add pin_subpackage info * update * removed skip: False # [osx] * fix hash --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/pkiss/build.sh | 4 ++-- recipes/pkiss/meta.yaml | 26 ++++++++++++++++---------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/recipes/pkiss/build.sh b/recipes/pkiss/build.sh index 781e02b15ec3e..c981876f2b94b 100644 --- a/recipes/pkiss/build.sh +++ b/recipes/pkiss/build.sh @@ -1,5 +1,5 @@ -#!/bin/sh -make PREFIX=$PREFIX CC=$CC -C Misc/Applications/pKiss all +#!/bin/bash +make -j ${CPU_COUNT} PREFIX=$PREFIX CC=$CC -C Misc/Applications/pKiss all make PREFIX=$PREFIX CC=$CC -C Misc/Applications/pKiss install-program make PREFIX=$PREFIX CC=$CC -C Misc/Applications/lib install chmod +x $PREFIX/bin/pKiss* $PREFIX/bin/addRNA* diff --git a/recipes/pkiss/meta.yaml b/recipes/pkiss/meta.yaml index aca19bb29a981..88ca3d4c41c4a 100644 --- a/recipes/pkiss/meta.yaml +++ b/recipes/pkiss/meta.yaml @@ -1,36 +1,42 @@ -{% set version = "2.2.14" %} -{% set sha256 = "da7371378e32b2329da226be79a11974fdc4e66fe0b664757b5aafe29e2e12d6" %} +{% set version = "2.3.1" %} +{% set packagename = "pkiss" %} +{% set sha256 = "0c5b7d91893d0a23189f4af3602e18f110f030eac49a3658f7acede23596fde0" %} package: - name: pkiss - version: {{ version }} + name: {{ packagename }} + version: 2.3.0 source: sha256: {{ sha256 }} + # the repository "fold-grammars" contains sources for several programs, i.e. pKiss, RNAshapes, ... + # thus, the version number does not correspond to the {{ packagename }} version number url: https://github.com/jlab/fold-grammars/archive/{{ version }}.tar.gz build: - number: 3 - skip: False # [osx] + number: 0 + run_exports: + - {{ pin_subpackage('pkiss', max_pin="x") }} requirements: build: - make - {{ compiler('cxx') }} + - libcxx <17 # [osx] host: - perl - - bellmans-gapc >=2020.12.08 + - bellmans-gapc >=2024.01.12 + - libcxx <17 # [osx] run: - perl - - bellmans-gapc >=2020.12.08 + - bellmans-gapc >=2024.01.12 test: commands: - echo "UGGCCGGCAUGGUCCCAGCCUCCUCGCUGGCGCCGGCUGGGCAACAUUCC" | pKiss --mode=probs &> /dev/null about: - home: https://bibiserv.cebitec.uni-bielefeld.de/pkiss - license: 'GPLv3+' + home: https://bibiserv.cebitec.uni-bielefeld.de/{{ packagename }} + license: 'GPL-3.0-or-later' license_file: LICENSE summary: 'RNA secondary structure prediction including K-type and kissing hairpin- pseudoknots.' From a282932cb5d2a3d153ef18809f0bdf022818c7f8 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 30 Jul 2024 02:13:48 -0500 Subject: [PATCH 0915/1514] Add recipe for subset-bam v1.1.0 (#49395) * Add recipe for subset-bam v1.1.0 * add --locked * patch rust-htslib version * add make * try removing --locked * bump ring version * add make * add clang * add clangdev to build section * try without --locked * edit meta.yaml --- recipes/subset-bam/LICENSE | 21 ++++++++++++++++++++ recipes/subset-bam/build.sh | 6 ++++++ recipes/subset-bam/meta.yaml | 38 ++++++++++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+) create mode 100644 recipes/subset-bam/LICENSE create mode 100644 recipes/subset-bam/build.sh create mode 100644 recipes/subset-bam/meta.yaml diff --git a/recipes/subset-bam/LICENSE b/recipes/subset-bam/LICENSE new file mode 100644 index 0000000000000..3f2bdcc55d5bb --- /dev/null +++ b/recipes/subset-bam/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2020 10x Genomics, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/recipes/subset-bam/build.sh b/recipes/subset-bam/build.sh new file mode 100644 index 0000000000000..0ea5b92d1092e --- /dev/null +++ b/recipes/subset-bam/build.sh @@ -0,0 +1,6 @@ +#!/bin/bash -euo + +mkdir -p ${PREFIX}/bin + +mv subset-bam_* ${PREFIX}/bin/subset-bam +chmod 755 ${PREFIX}/bin/subset-bam diff --git a/recipes/subset-bam/meta.yaml b/recipes/subset-bam/meta.yaml new file mode 100644 index 0000000000000..664775c5b0687 --- /dev/null +++ b/recipes/subset-bam/meta.yaml @@ -0,0 +1,38 @@ +{% set name = "subset-bam" %} +{% set version = "1.1.0" %} +{% set url = "https://github.com/10XGenomics/subset-bam/releases/download/v1.1.0/subset-bam_linux" %} # [linux and x86_64] +{% set sha256 = "05496ea56d52becdb7972528af0a486be1d52c1749e35bea9ae4c41215ed0a1b" %} # [linux and x86_64] +{% set url = "https://github.com/10XGenomics/subset-bam/releases/download/v1.1.0/subset-bam_macos" %} # [osx and x86_64] +{% set sha256 = "756357b6dfe9bc7e757bdc4a084ca06d2a256f2b8855d35b47fd956afd97ebca" %} # [osx and x86_64] + +package: + name: {{ name }} + version: {{ version }} + +source: + url: {{ url }} + sha256: {{ sha256 }} + +build: + number: 0 + run_exports: + - {{ pin_subpackage('subset-bam', max_pin="x") }} + +requirements: + build: + - {{ compiler('rust') }} + - make + - clangdev + +test: + commands: + - subset-bam --help + +about: + home: "https://github.com/10XGenomics/subset-bam" + license: MIT + license_family: MIT + license_file: LICENSE + summary: "A tool to subset a 10x Genomics BAM file based on a tag, most commonly the cell barcode tag." + doc_url: "https://github.com/10XGenomics/subset-bam/blob/v{{ version }}/README.md" + dev_url: "https://github.com/10XGenomics/subset-bam" From 29ec422d3b92b8aa1e73a8e0540c91c9e74147cd Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 30 Jul 2024 02:29:33 -0500 Subject: [PATCH 0916/1514] Add recipe for bio v1.7.1 (#48808) * Add recipe for bio v1.7.1 * add summary * edit tests * edit tests * edit tests --- recipes/bio/meta.yaml | 48 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 recipes/bio/meta.yaml diff --git a/recipes/bio/meta.yaml b/recipes/bio/meta.yaml new file mode 100644 index 0000000000000..b835d98a124a7 --- /dev/null +++ b/recipes/bio/meta.yaml @@ -0,0 +1,48 @@ +{% set name = "bio" %} +{% set version = "1.7.1" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/bio-{{ version }}.tar.gz + sha256: df3252905b0b1e739eca3760c91fd519d5af07b09632df25c2bd4ecd20da2724 + +build: + number: 0 + noarch: python + entry_points: + - bio = biorun.__main__:run + - fasta_filter.py = biorun.scripts.fasta_filter:run + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + run_exports: + - {{ pin_subpackage('bio', max_pin="x") }} + +requirements: + host: + - python >=3.10 + - hatchling + - pip + run: + - python >=3.10 + - biopython >=1.80 + - requests + - tqdm + - mygene + - pandas + - pooch + - gprofiler-official + +test: + commands: + - pip check + #- bio --help + +about: + home: https://github.com/ialbert/bio + license: MIT + license_family: MIT + license_file: LICENSE + summary: "Command-line utilities to make bioinformatics explorations more enjoyable." + dev_url: https://github.com/ialbert/bio From 2d0636d96aceed797afa1f944bcbab681d4a16ab Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 30 Jul 2024 02:56:32 -0500 Subject: [PATCH 0917/1514] python-edlib: add arm64 build (#49659) --- recipes/python-edlib/meta.yaml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/recipes/python-edlib/meta.yaml b/recipes/python-edlib/meta.yaml index 902eb1dd7f5d0..aedfbb654230e 100644 --- a/recipes/python-edlib/meta.yaml +++ b/recipes/python-edlib/meta.yaml @@ -9,8 +9,8 @@ source: sha256: 64c3dfab3ebe3e759565a0cc71eb4df23cf3ce1713fd558af3c473dddc2a3766 build: - number: 7 - script: "EDLIB_USE_CYTHON=1 {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv" + number: 8 + script: "EDLIB_USE_CYTHON=1 {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" run_exports: - {{ pin_subpackage("python-edlib", max_pin="x") }} @@ -29,16 +29,17 @@ test: - edlib about: - home: https://github.com/Martinsos/edlib + home: "https://github.com/Martinsos/edlib" license: MIT summary: 'Lightweight, super fast C/C++ (& Python) library for sequence alignment using edit (Levenshtein) distance.' license_family: MIT license_file: LICENSE - dev_url: https://github.com/Martinsos/edlib - doc_url: https://martinsos.github.io/edlib/ + dev_url: "https://github.com/Martinsos/edlib" + doc_url: "https://martinsos.github.io/edlib" extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - doi:10.1093/bioinformatics/btw753 From abc636bbd37355b3c27c3a27c7d01cceb7429803 Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Tue, 30 Jul 2024 11:08:25 +0200 Subject: [PATCH 0918/1514] Update rnashapes (#49224) * using latest release of upstream * use recent gapc update with hopes to compile on OSX * patch obsolete, bump version, use latest bellmans-gapc * moving files as suggested * added old versions back in * update version and add pin_subpackage * adapted like rnaalishapes * fix hashsum * use rnashapes_version Co-authored-by: Cornelius Roemer * use fold_grammars_version variable Co-authored-by: Cornelius Roemer * use fold_grammars_version variable Co-authored-by: Cornelius Roemer --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Co-authored-by: Cornelius Roemer --- recipes/rnashapes/build.sh | 4 ++-- recipes/rnashapes/meta.yaml | 30 +++++++++++++++++------------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/recipes/rnashapes/build.sh b/recipes/rnashapes/build.sh index f56990dd3f74e..493ed0cc387a1 100644 --- a/recipes/rnashapes/build.sh +++ b/recipes/rnashapes/build.sh @@ -1,5 +1,5 @@ -#!/bin/sh -make PREFIX=$PREFIX CC=$CC -C Misc/Applications/RNAshapes all +#!/bin/bash +make -j ${CPU_COUNT} PREFIX=$PREFIX CC=$CC -C Misc/Applications/RNAshapes all make PREFIX=$PREFIX CC=$CC -C Misc/Applications/RNAshapes install-program make PREFIX=$PREFIX CC=$CC -C Misc/Applications/lib install chmod +x $PREFIX/bin/RNA* diff --git a/recipes/rnashapes/meta.yaml b/recipes/rnashapes/meta.yaml index 59e8e9b425b5b..6d3ffafb2be5c 100644 --- a/recipes/rnashapes/meta.yaml +++ b/recipes/rnashapes/meta.yaml @@ -1,32 +1,36 @@ -{% set version = "3.3.2" %} -{% set sha256 = "da7371378e32b2329da226be79a11974fdc4e66fe0b664757b5aafe29e2e12d6" %} +{% set fold_grammars_version = "2.3.1" %} +{% set rnashapes_version = "3.4.0" %} +{% set packagename = "rnashapes" %} +{% set sha256 = "0c5b7d91893d0a23189f4af3602e18f110f030eac49a3658f7acede23596fde0" %} package: - name: rnashapes - version: 3.3.2 + name: {{ packagename }} + version: {{ rnashapes_version }} source: sha256: {{ sha256 }} # the repository "fold-grammars" contains sources for several programs, i.e. pKiss, RNAshapes, ... - # thus, the version number does not correspond to the RNAshapes version number - url: https://github.com/jlab/fold-grammars/archive/2.2.14.tar.gz + # thus, the version number does not correspond to the {{ packagename }} version number + url: https://github.com/jlab/fold-grammars/archive/{{ fold_grammars_version }}.tar.gz build: - number: 3 - skip: False # [osx] + number: 0 + run_exports: + - {{ pin_subpackage('rnashapes', max_pin="x") }} requirements: build: - make - {{ compiler('cxx') }} + - libcxx <17 # [osx] host: - perl - - bellmans-gapc >=2021.04.28 + - bellmans-gapc >=2024.01.12 - libopenblas + - libcxx <17 # [osx] run: - - {{ compiler('cxx') }} - perl - - bellmans-gapc >=2021.04.28 + - bellmans-gapc >=2024.01.12 - libopenblas test: @@ -35,8 +39,8 @@ test: - RNAshapes CGCAUGCUAGUCGCG about: - home: https://bibiserv.cebitec.uni-bielefeld.de/rnashapes - license: 'GPLv3+' + home: https://bibiserv.cebitec.uni-bielefeld.de/{{ packagename }} + license: 'GPL-3.0-or-later' license_file: LICENSE summary: "RNAshape abstraction maps structures to a tree-like domain of shapes, retaining adjacency and nesting of structural features, but disregarding helix From d3b645c55f90947889a1657cb0afc3e4039a580d Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 30 Jul 2024 04:08:41 -0500 Subject: [PATCH 0919/1514] pyabpoa: add arm64 build (#49661) --- recipes/pyabpoa/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/pyabpoa/meta.yaml b/recipes/pyabpoa/meta.yaml index aafc5a8df934e..a70e32f310f07 100644 --- a/recipes/pyabpoa/meta.yaml +++ b/recipes/pyabpoa/meta.yaml @@ -10,8 +10,8 @@ source: sha256: 706f0ca0110f4974ae7b93157db560bb9beda4273d8c883fa6a03ccb19958149 build: - number: 0 - script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --use-pep517 -vvv + number: 1 + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir --use-pep517 -vvv run_exports: - {{ pin_subpackage(name, max_pin="x") }} @@ -46,3 +46,4 @@ extra: - biotools:abpoa additional-platforms: - linux-aarch64 + - osx-arm64 From a10e76a8b52b8a25ad75820181dc39732b51937c Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 30 Jul 2024 04:08:52 -0500 Subject: [PATCH 0920/1514] pyspoa: add arm64 build (#49660) --- recipes/pyspoa/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/pyspoa/meta.yaml b/recipes/pyspoa/meta.yaml index 08c94cfd376ab..a8d2bdcf48d67 100644 --- a/recipes/pyspoa/meta.yaml +++ b/recipes/pyspoa/meta.yaml @@ -11,9 +11,9 @@ source: sha256: {{ sha256 }} build: - number: 2 + number: 3 skip: True # [py < 38] - script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir run_exports: - {{ pin_subpackage('pyspoa', max_pin="x.x") }} @@ -50,3 +50,4 @@ extra: - iiSeymour additional-platforms: - linux-aarch64 + - osx-arm64 From e6d4ae65f5ac01049bf31b3502200283711436d9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 06:41:44 -0400 Subject: [PATCH 0921/1514] Update pyteomics to 4.7.3 (#49662) --- recipes/pyteomics/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pyteomics/meta.yaml b/recipes/pyteomics/meta.yaml index cdc52d031adeb..2127906fd62dd 100644 --- a/recipes/pyteomics/meta.yaml +++ b/recipes/pyteomics/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "4.7.2" %} +{% set version = "4.7.3" %} package: name: pyteomics @@ -6,7 +6,7 @@ package: source: url: https://pypi.io/packages/source/p/pyteomics/pyteomics-{{ version }}.tar.gz - sha256: 9c2cc22f0e45574c62a8e8628a8412d7b5688ccdd679b2f6ddc6fbbee2abb26d + sha256: ae87f6ba02ee735b06ae56e1ac85a37051aa503e0c9dbfee650c8a7107d08f57 build: noarch: python From 7aa209d533fa0456bc8d63c138f81bb86f7e946c Mon Sep 17 00:00:00 2001 From: Gioele Lazzari <56556415+lazzarigioele@users.noreply.github.com> Date: Tue, 30 Jul 2024 12:54:06 +0200 Subject: [PATCH 0922/1514] update gempipe recipe (#49664) --- recipes/gempipe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gempipe/meta.yaml b/recipes/gempipe/meta.yaml index 163ceffad28ed..7a4210e4820f6 100755 --- a/recipes/gempipe/meta.yaml +++ b/recipes/gempipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.33.0" %} +{% set version = "1.33.1" %} package: name: "gempipe" @@ -7,7 +7,7 @@ package: source: url: https://github.com/lazzarigioele/gempipe/archive/v{{ version }}.tar.gz - sha256: 547e812764177ba1171740e1b4ea564784dee6c395618ae125ffb0f28fe196f3 + sha256: 84fb9cb2bb1963078bfdc61068ee869504c15e3f905a94afad3f8362776e8f6a build: From 67ba0f1e8e84ee8a0d1cd8c9b69273b31af5de92 Mon Sep 17 00:00:00 2001 From: Zhang Jun <37918894+zhangjuncsu@users.noreply.github.com> Date: Tue, 30 Jul 2024 20:05:41 +0800 Subject: [PATCH 0923/1514] add a new repo diphase (#49656) --- recipes/diphase/build.sh | 28 ++++++++++++++++++++++++ recipes/diphase/meta.yaml | 45 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 recipes/diphase/build.sh create mode 100644 recipes/diphase/meta.yaml diff --git a/recipes/diphase/build.sh b/recipes/diphase/build.sh new file mode 100644 index 0000000000000..e7acbd7f81c99 --- /dev/null +++ b/recipes/diphase/build.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +mkdir -p ${PREFIX}/bin + +export LIBRARY_PATH=${PREFIX}/lib +export LD_LIBRARY_PATH=${PREFIX}/lib +export CPATH=${PREFIX}/include +export C_INCLUDE_PATH=${PREFIX}/include +export CPLUS_INCLUDE_PATH=${PREFIX}/include +export CPP_INCLUDE_PATH=${PREFIX}/include +export CXX_INCLUDE_PATH=${PREFIX}/include +export PATH=$PATH:${PREFIX}/bin + +CC=${CC} +CXX=${CXX} + +mkdir -p ${PREFIX}/bin +ln -fs $CC ${PREFIX}/bin/gcc +ln -fs $CXX ${PREFIX}/bin/g++ + +make -C src + +cp -r bin/* ${PREFIX}/bin/ +cp -r script/* ${PREFIX}/bin/ +chmod +x ${PREFIX}/bin/pipeline.py + +unlink ${PREFIX}/bin/gcc +unlink ${PREFIX}/bin/g++ diff --git a/recipes/diphase/meta.yaml b/recipes/diphase/meta.yaml new file mode 100644 index 0000000000000..c7e671514d4ce --- /dev/null +++ b/recipes/diphase/meta.yaml @@ -0,0 +1,45 @@ +{% set name = "diphase" %} +{% set version = "1.0.0" %} +{% set sha256 = "bd6ae483fb7763eff44935d3a19c7d8df604805e84615ed65566161458b50e77" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/zhangjuncsu/Diphase/archive/refs/tags/v{{ version }}.tar.gz + sha256: {{ sha256 }} + +build: + number: 0 + skip: True # [osx] + run_exports: + - {{ pin_subpackage('diphase', max_pin="x") }} + +requirements: + build: + - make + - {{ compiler('c') }} + - {{ compiler('cxx') }} + host: + - zlib + - xz + - bzip2 + - libdeflate + - libcurl 7.87.0 + - openssl 1.1.1 + run: + - python 3.9.0 + - zlib + - samtools + - bwa + +test: + commands: + - phasing -h 2>&1 | grep 'Usage' + - pipeline.py -h 2>&1 | grep 'phase' + +about: + home: https://github.com/zhangjuncsu/Diphase + license: MIT + summary: A diploid genome phasing tool From b4f2e00690c69d9101df05ee1d5f6ac462287e9c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 08:06:20 -0400 Subject: [PATCH 0924/1514] Update taxmyphage to 0.3.1 (#49665) --- recipes/taxmyphage/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/taxmyphage/meta.yaml b/recipes/taxmyphage/meta.yaml index c0e805bc104fa..cad6b75921845 100644 --- a/recipes/taxmyphage/meta.yaml +++ b/recipes/taxmyphage/meta.yaml @@ -1,5 +1,5 @@ {% set name = "taxmyphage" %} -{% set version = "0.3.0" %} +{% set version = "0.3.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/taxmyphage-{{ version }}.tar.gz - sha256: 821cb48a758e1587401b1eb48029c68cb3411f6240e87723b8c5aff5f28e6212 + sha256: f3c6638ae347ecab7bef84fad71db1fecc922144a0bda8fe7d430d3bf628f00d build: entry_points: From 5301f80d3d9744c18696cde894a2c1ca2adafb8c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 08:06:38 -0400 Subject: [PATCH 0925/1514] Update sdrf-pipelines to 0.0.28 (#49666) --- recipes/sdrf-pipelines/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sdrf-pipelines/meta.yaml b/recipes/sdrf-pipelines/meta.yaml index cf5fb70753f7d..19d25a6692e31 100644 --- a/recipes/sdrf-pipelines/meta.yaml +++ b/recipes/sdrf-pipelines/meta.yaml @@ -1,6 +1,6 @@ {% set name = "sdrf-pipelines" %} {% set pypi_name = "sdrf_pipelines" %} -{% set version = "0.0.27" %} +{% set version = "0.0.28" %} package: name: "{{ name|lower }}" @@ -8,7 +8,7 @@ package: source: url: "https://pypi.io/packages/source/{{ pypi_name[0] }}/{{ pypi_name }}/{{ pypi_name }}-{{ version }}.tar.gz" - sha256: cb52e0c427e820aa28343b2ff58947e23244701798f038e53b5c0f6e36f98f33 + sha256: b9978c4599a0e04e157392a2adc35a8a613ce40d88f6b89eee592af667d088dd build: number: 0 From 457b74f8f7ece9280c2e1da273b674515279bc35 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 11:04:44 -0400 Subject: [PATCH 0926/1514] Update im2deep to 0.1.8 (#49667) --- recipes/im2deep/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/im2deep/meta.yaml b/recipes/im2deep/meta.yaml index 0c2453e8e7fe4..80ba742c8e0f8 100644 --- a/recipes/im2deep/meta.yaml +++ b/recipes/im2deep/meta.yaml @@ -1,6 +1,6 @@ {% set name = "im2deep" %} -{% set version = "0.1.7" %} -{% set sha256 = "5d5e255e551c2a9131c1a94b76cdbbb5064cc9a76bf8217cb71cc5909bd4a97c" %} +{% set version = "0.1.8" %} +{% set sha256 = "cd671e843c850f8deb8682872890f0555e9d250ef5351239e4f29f2b49d519ee" %} package: name: {{ name|lower }} From 44d8d0a499b9e19da920edd91a4bb0125081f384 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 11:04:59 -0400 Subject: [PATCH 0927/1514] Update pybiolib to 1.2.16 (#49668) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index 5a7d5bf7ebabb..1fc5590a325af 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.2.12" %} +{% set version = "1.2.16" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: dec5aa160f90cbbd0060975fc2cf5667cf8d44ce8936d6aef0886da336b66265 + sha256: fe6acc99bc6874bbb02246982545b7e355287bc22e3e82b16909d3e2237dad3d build: number: 0 From 98e7b135ac778beb179006c0a9476334c8791edb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 11:05:58 -0400 Subject: [PATCH 0928/1514] Update micom to 0.36.1 (#49670) --- recipes/micom/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/micom/meta.yaml b/recipes/micom/meta.yaml index 9f057b17a3d3b..d2cce5b00901c 100644 --- a/recipes/micom/meta.yaml +++ b/recipes/micom/meta.yaml @@ -1,5 +1,5 @@ {% set name = "micom" %} -{% set version = "0.36.0" %} +{% set version = "0.36.1" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: bde5f8ab886a9294e11ccb2be63d399e2baffadb9775ef96182e88966aa37e34 + sha256: 8b278dec56e04c2fbf2193a07ccce988a2fbf8408ce99fdb705c68e40ef28fb2 build: number: 0 From 47fb99238f3b79e9365c910378ce02e629ef8451 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 11:07:17 -0400 Subject: [PATCH 0929/1514] Update zdb to 1.3.2 (#49671) --- recipes/zdb/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/zdb/meta.yaml b/recipes/zdb/meta.yaml index b8864a209efab..007604596b270 100644 --- a/recipes/zdb/meta.yaml +++ b/recipes/zdb/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.3.1" %} +{% set version = "1.3.2" %} package: name: zdb @@ -6,13 +6,13 @@ package: build: noarch: generic - number: 1 + number: 0 run_exports: - {{ pin_subpackage('zdb', max_pin="x.x") }} source: - url: https://github.com/metagenlab/zDB/archive/refs/tags/v1.3.1.tar.gz - sha256: dec71cf53fd30f490fbbedd2bfa8488a3d2dfa67459d0c9b54f70a020ce8beb1 + url: https://github.com/metagenlab/zDB/archive/refs/tags/v1.3.2.tar.gz + sha256: bd2f4e132376f78e6fe0a28f9be003dd35a0b0d86d2880a39e5a25d9778e0d3e requirements: run: From 67daf7c0652b5e75bac4f4f0188b8caad92450f8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 11:07:40 -0400 Subject: [PATCH 0930/1514] Update el_gato to 1.18.1 (#49673) --- recipes/el_gato/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/el_gato/meta.yaml b/recipes/el_gato/meta.yaml index bdeb7c6eda601..633fcde6bb33b 100644 --- a/recipes/el_gato/meta.yaml +++ b/recipes/el_gato/meta.yaml @@ -1,6 +1,6 @@ {% set name = "el_gato" %} -{% set version = "1.18.0" %} -{% set hash = "b00d812d047053823275e62d7f01ed88aaffa906471e073443bb18e85c905995" %} +{% set version = "1.18.1" %} +{% set hash = "34f3d45be297c70e5abe3cc20ed50c7de479c7c0dba421fea6b4d703c33bb89d" %} {% set user = "appliedbinf" %} package: From aa50066b9db5cc26acd87e3400f9808a27901ea8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 11:07:56 -0400 Subject: [PATCH 0931/1514] Update r-recetox-aplcms to 0.13.2 (#49674) --- recipes/r-recetox-aplcms/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/r-recetox-aplcms/meta.yaml b/recipes/r-recetox-aplcms/meta.yaml index 066f8b6fa62e8..01bb61a31fb8b 100644 --- a/recipes/r-recetox-aplcms/meta.yaml +++ b/recipes/r-recetox-aplcms/meta.yaml @@ -1,5 +1,5 @@ {% set name = "recetox-aplcms" %} -{% set version = "0.13.0" %} +{% set version = "0.13.2" %} {% set github = "https://github.com/RECETOX/recetox-aplcms" %} package: @@ -8,7 +8,7 @@ package: source: url: "https://github.com/RECETOX/recetox-aplcms/archive/refs/tags/v{{ version }}.tar.gz" - sha256: d08847e0846734c76f06d009f4449ba498da8ea955d5029ee4ce4a67ba8e82ea + sha256: 070e1dc9df4e3bff0e55d1332ee0a738ed368a03dbd485a37b14120408be08b2 build: number: 0 From d2c3c55a15a42de48a1ba880594a5ef578a49729 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 12:07:27 -0400 Subject: [PATCH 0932/1514] Update gempipe to 1.33.2 (#49676) --- recipes/gempipe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gempipe/meta.yaml b/recipes/gempipe/meta.yaml index 7a4210e4820f6..c164ed6cea692 100755 --- a/recipes/gempipe/meta.yaml +++ b/recipes/gempipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.33.1" %} +{% set version = "1.33.2" %} package: name: "gempipe" @@ -7,7 +7,7 @@ package: source: url: https://github.com/lazzarigioele/gempipe/archive/v{{ version }}.tar.gz - sha256: 84fb9cb2bb1963078bfdc61068ee869504c15e3f905a94afad3f8362776e8f6a + sha256: 7486a7de14e975be052072abd1817a2a4bf54b0f585b5b05898f4d315d1bb7b4 build: From 7433db7ac9c8138b8222424500e95a4d5b1ee4f1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 12:59:10 -0400 Subject: [PATCH 0933/1514] Update bigtools to 0.5.1 (#49678) --- recipes/bigtools/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/bigtools/meta.yaml b/recipes/bigtools/meta.yaml index a53fbc5eb40d8..103e8822e7ec1 100644 --- a/recipes/bigtools/meta.yaml +++ b/recipes/bigtools/meta.yaml @@ -1,17 +1,17 @@ -{% set version = "0.5.0" %} +{% set version = "0.5.1" %} package: name: bigtools version: {{ version }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('bigtools', max_pin="x.x") }} source: url: https://github.com/jackh726/bigtools/archive/refs/tags/v{{ version }}.tar.gz - sha256: "f17f8129ea9bb3cdde5ce7ecc2465bd3a228409eb10620594911de22c86ba4ef" + sha256: "dc006ee7037420e9cd279b2aaaf3a2859c81c07eb08c3ce6b1598b1962f055a3" requirements: build: From b7b24b87b3a00afef72f5abeea53eabcdce274bc Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 13:02:32 -0400 Subject: [PATCH 0934/1514] Update el_gato to 1.18.2 (#49677) --- recipes/el_gato/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/el_gato/meta.yaml b/recipes/el_gato/meta.yaml index 633fcde6bb33b..7dc82c6beb55f 100644 --- a/recipes/el_gato/meta.yaml +++ b/recipes/el_gato/meta.yaml @@ -1,6 +1,6 @@ {% set name = "el_gato" %} -{% set version = "1.18.1" %} -{% set hash = "34f3d45be297c70e5abe3cc20ed50c7de479c7c0dba421fea6b4d703c33bb89d" %} +{% set version = "1.18.2" %} +{% set hash = "328a8399d01594a69a87c11357310efe54c00159949b396f1211d7ce2787040a" %} {% set user = "appliedbinf" %} package: From 3c4eeffff7fd5ba1873ad347fb7d37787f348061 Mon Sep 17 00:00:00 2001 From: Mariia Zelenskaia <102167492+mariia-zelenskaia@users.noreply.github.com> Date: Tue, 30 Jul 2024 19:40:05 +0200 Subject: [PATCH 0935/1514] update TransAnnot version (#49672) --- recipes/transannot/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/transannot/meta.yaml b/recipes/transannot/meta.yaml index 4b3e3f49ff2e1..12721ce0697f9 100644 --- a/recipes/transannot/meta.yaml +++ b/recipes/transannot/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "3-7f1c8e1" %} -{% set sha256 = "713d5c008886d81da80c6d6990d1bb9d7cf53c9a98dd37aa429cb341e8d2ae36" %} +{% set version = "3-70b2a60" %} +{% set sha256 = "3b1d2f28362004378528755b8b4e0b8dc45b51cc60562816258bdf16d9cda08d" %} package: name: transannot From 6d52a4efe352ef513bdebc64cce51778a5de23a4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 16:28:26 -0400 Subject: [PATCH 0936/1514] Update pbstarphase to 0.13.0 (#49683) --- recipes/pbstarphase/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pbstarphase/meta.yaml b/recipes/pbstarphase/meta.yaml index 08cd05ff96e91..4cff85620e07b 100644 --- a/recipes/pbstarphase/meta.yaml +++ b/recipes/pbstarphase/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pbstarphase" %} -{% set version = "0.12.0" %} -{% set sha256 = "a44a71aa786c8ad08860dcb542bb98cd5142f4c331c54e44533a0b62d6d51d7e" %} +{% set version = "0.13.0" %} +{% set sha256 = "d21c239440bbb90d96048b4d290c951baa2cb3dbc332c6ad7351e696eaba21ed" %} package: name: {{ name }} From cd47ae01e775b063fe2f37fad775e817606e3dd4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 16:51:59 -0400 Subject: [PATCH 0937/1514] Update pangolin-data to 1.29 (#49681) --- recipes/pangolin-data/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pangolin-data/meta.yaml b/recipes/pangolin-data/meta.yaml index 6fcedd8d0f4c4..d1b23dc48e60a 100644 --- a/recipes/pangolin-data/meta.yaml +++ b/recipes/pangolin-data/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.28.1" %} +{% set version = "1.29" %} package: name: pangolin-data @@ -6,7 +6,7 @@ package: source: url: https://github.com/cov-lineages/pangolin-data/archive/refs/tags/v{{ version }}.tar.gz - sha256: 1d24d1a3c702ce947fac9ba164079622d5b074624aa5104d236b85ab26a2361b + sha256: 9f0e8ebab54ff1933f9abffb60cbc577df79b0d0ebfa51b8265b7d72720802d6 build: number: 0 From bd78b9af24187dfafe42dd9eb37d688d19756976 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 23:13:57 -0400 Subject: [PATCH 0938/1514] Update codoff to 1.1.5 (#49685) --- recipes/codoff/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/codoff/meta.yaml b/recipes/codoff/meta.yaml index d16742c487629..36f3fab25d8a4 100644 --- a/recipes/codoff/meta.yaml +++ b/recipes/codoff/meta.yaml @@ -1,5 +1,5 @@ {% set name = "codoff" %} -{% set version = "1.1.0" %} +{% set version = "1.1.5" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: https://github.com/Kalan-Lab/codoff/archive/refs/tags/v{{ version }}.tar.gz - sha256: ffa16c6f4fba96bfb6b0a4d9efda202bb6215d1aca558cac9d96761e02962237 + sha256: eb048616dabcae38a2476d7325e689e6499b2d1651c33a91502a1b82131a6bb3 build: - number: 2 + number: 0 noarch: python script: "{{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv" run_exports: From c757111ce111576aa42b03de4daeea3603a5ec08 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 30 Jul 2024 23:14:32 -0400 Subject: [PATCH 0939/1514] Update seismic-rna to 0.20.0 (#49684) --- recipes/seismic-rna/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/seismic-rna/meta.yaml b/recipes/seismic-rna/meta.yaml index dd30945f9368b..2a1e20c694de2 100644 --- a/recipes/seismic-rna/meta.yaml +++ b/recipes/seismic-rna/meta.yaml @@ -2,7 +2,7 @@ package: name: seismic-rna - version: 0.19.2 + version: 0.20.0 about: home: https://github.com/rouskinlab/seismic-rna license: GPL-3.0-only @@ -11,8 +11,8 @@ about: license_url: https://www.gnu.org/licenses/gpl-3.0.html summary: SEISMIC-RNA software by the Rouskin Lab source: - url: https://github.com/rouskinlab/seismic-rna/archive/refs/tags/v0.19.2.tar.gz - sha256: ef2a7b6932cf3e6247bca25838dcacffca2a43523df5bf0eb455d3243b3f246f + url: https://github.com/rouskinlab/seismic-rna/archive/refs/tags/v0.20.0.tar.gz + sha256: 91ea9c7d23a85a0d9d035e41ee0782f892ea7e4f0df5af96317b7302a58c8de4 build: noarch: python number: 0 @@ -42,4 +42,4 @@ requirements: - scipy >=1.9 test: imports: - - seismicrna \ No newline at end of file + - seismicrna From 3273124be640961a9d56fa7129590da97559f7a5 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Wed, 31 Jul 2024 06:12:45 +0200 Subject: [PATCH 0940/1514] Disable avx for iqtree for x86-64 (#49682) * Disable avx for iqtree for x86-64 * Patch out `-mavx` to not use that instruction * fix --- recipes/iqtree/build.sh | 13 ++++++++++--- recipes/iqtree/meta.yaml | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/recipes/iqtree/build.sh b/recipes/iqtree/build.sh index 9fcec17dbde4a..3fffe3a1e8433 100644 --- a/recipes/iqtree/build.sh +++ b/recipes/iqtree/build.sh @@ -1,6 +1,12 @@ #!/bin/bash set -ex +# AVX might not be supported on all CPUs, in particular Rosetta2 on Apple Silicon +# -march=nocona and -mtune=haswell are the original conda-forge flags +# we're restoring them here by mentioning them explicitly +# .bak is required for sed -i on macOS +sed -i.bak 's/-mavx/-mno-avx -mno-avx2 -march=nocona -mtune=haswell/' cmaple/CMakeLists.txt + export INCLUDES="-I${PREFIX}/include" export LIBPATH="-L${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" @@ -12,8 +18,8 @@ if [ "$(uname)" == Darwin ]; then export CMAKE_C_COMPILER="clang" export CMAKE_CXX_COMPILER="clang++" export CXXFLAGS="${CXXFLAGS} -mmacosx-version-min=11" - # `which` is required, as full paths needed - # see https://github.com/bioconda/bioconda-recipes/pull/49360#discussion_r1686187284 + # `which` is required, as full paths needed + # see https://github.com/bioconda/bioconda-recipes/pull/49360#discussion_r1686187284 CC=$(which "$CC") CXX=$(which "$CXX") AR=$(which "$AR") @@ -25,7 +31,8 @@ fi cmake -S . -B build -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DCMAKE_BUILD_TYPE=Release \ -GNinja \ -DUSE_LSD2=ON -DIQTREE_FLAGS=omp -DUSE_CMAPLE=ON \ - -DCMAKE_CXX_FLAGS="${CXXFLAGS}" "${DCMAKE_ARGS[@]}" \ + -DCMAKE_C_FLAGS="${CFLAGS}" -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ + "${DCMAKE_ARGS[@]}" \ -DBUILD_GMOCK=OFF -DINSTALL_GTEST=OFF \ -Wno-dev -Wno-deprecated --no-warn-unused-cli diff --git a/recipes/iqtree/meta.yaml b/recipes/iqtree/meta.yaml index 6c0b3e3a4795c..78c3729b31380 100644 --- a/recipes/iqtree/meta.yaml +++ b/recipes/iqtree/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version | replace("-", "_") }} build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage('iqtree', max_pin="x") }} From e1b09f5165443154b1d299e0e243eff5c27f1a95 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Wed, 31 Jul 2024 06:13:17 +0200 Subject: [PATCH 0941/1514] Disable avx (#49679) Update meta.yaml line endings back to unix --- recipes/cmaple/build.sh | 12 +++++++++--- recipes/cmaple/meta.yaml | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/recipes/cmaple/build.sh b/recipes/cmaple/build.sh index 78f24d3e35d16..63ffed49625be 100644 --- a/recipes/cmaple/build.sh +++ b/recipes/cmaple/build.sh @@ -1,6 +1,12 @@ #!/bin/bash set -ex +# AVX is not supported on all CPUs, in particular Rosetta2 on Apple Silicon +# -march=nocona and -mtune=haswell are the original conda-forge flags +# we're restoring them here by mentioning them explicitly +# .bak is required for sed -i on macOS +sed -i.bak 's/-mavx/-mno-avx -mno-avx2 -march=nocona -mtune=haswell/' CMakeLists.txt + DCMAKE_ARGS="" if [ "$(uname)" == Darwin ]; then CC=$(which "$CC") @@ -31,7 +37,7 @@ VERBOSE=1 cmake --build build --target install -j ${JOBS} chmod 755 "${PREFIX}/bin/cmaple"* for file in "${PREFIX}/example.maple" "${PREFIX}/tree.nwk"; do - if [ -f "$file" ]; then - rm "$file" - fi + if [ -f "$file" ]; then + rm "$file" + fi done diff --git a/recipes/cmaple/meta.yaml b/recipes/cmaple/meta.yaml index bea9bb9ac3cb0..808b5f3f941ee 100644 --- a/recipes/cmaple/meta.yaml +++ b/recipes/cmaple/meta.yaml @@ -5,7 +5,7 @@ package: name: {{ name }} version: {{ version | replace("-", "_") }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin="x") }} source: From 25328a0fb33fbccd348781f60debf47e7d1659ae Mon Sep 17 00:00:00 2001 From: Thom Griffioen Date: Wed, 31 Jul 2024 06:14:19 +0200 Subject: [PATCH 0942/1514] Add ARM build to `perl-json-xz` (#49669) * Add ARM build to perl-json-xz * Update recipes/perl-json-xs/meta.yaml Co-authored-by: Martin Grigorov --------- Co-authored-by: Martin Grigorov --- recipes/perl-json-xs/meta.yaml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/recipes/perl-json-xs/meta.yaml b/recipes/perl-json-xs/meta.yaml index d9c7c94ae2741..871c1c95fef43 100644 --- a/recipes/perl-json-xs/meta.yaml +++ b/recipes/perl-json-xs/meta.yaml @@ -7,11 +7,13 @@ package: version: {{ version }} source: - url: https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN/JSON-XS-4.03.tar.gz + url: https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN/JSON-XS-{{ version }}.tar.gz sha256: {{ sha256 }} build: - number: 2 + number: 3 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} requirements: build: @@ -35,6 +37,12 @@ test: - JSON::XS about: - home: http://metacpan.org/pod/JSON::XS - license: unknown + home: https://metacpan.org/pod/JSON::XS + license_file: COPYING + license: GPL-1.0-or-later OR Artistic-1.0-Perl summary: 'JSON serialising/deserialising, done correctly and fast' + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From 0f8523abc8361569f2701e998ab90038db11c513 Mon Sep 17 00:00:00 2001 From: Thom Griffioen Date: Wed, 31 Jul 2024 06:15:36 +0200 Subject: [PATCH 0943/1514] Add RpsbProc (#49607) * Add `RpsbProc` recipe * Add LICENSE file * Skip ARM and only use 1 make job * Use 32bit GI * Apply config.sub patch * type-o * Remove compiler options already set by the toolkit * MacOS debugging run * Force stderr so it doesn't interleave with stdout stream * Retry Clang 16 * Build linux --- recipes/rpsbproc/LICENSE | 19 + recipes/rpsbproc/build.sh | 165 ++ recipes/rpsbproc/configurellvm.patch | 37 + recipes/rpsbproc/meta.yaml | 83 + recipes/rpsbproc/normbase.patch | 8 + recipes/rpsbproc/phonehome.patch | 11 + recipes/rpsbproc/update_configsub.patch | 3207 +++++++++++++++++++++++ 7 files changed, 3530 insertions(+) create mode 100644 recipes/rpsbproc/LICENSE create mode 100755 recipes/rpsbproc/build.sh create mode 100644 recipes/rpsbproc/configurellvm.patch create mode 100644 recipes/rpsbproc/meta.yaml create mode 100644 recipes/rpsbproc/normbase.patch create mode 100644 recipes/rpsbproc/phonehome.patch create mode 100644 recipes/rpsbproc/update_configsub.patch diff --git a/recipes/rpsbproc/LICENSE b/recipes/rpsbproc/LICENSE new file mode 100644 index 0000000000000..f31cbe98a9f46 --- /dev/null +++ b/recipes/rpsbproc/LICENSE @@ -0,0 +1,19 @@ + PUBLIC DOMAIN NOTICE + National Center for Biotechnology Information + +This software/database is a "United States Government Work" under the +terms of the United States Copyright Act. It was written as part of +the author's official duties as a United States Government employee and +thus cannot be copyrighted. This software/database is freely available +to the public for use. The National Library of Medicine and the U.S. +Government have not placed any restriction on its use or reproduction. + +Although all reasonable efforts have been taken to ensure the accuracy +and reliability of the software and data, the NLM and the U.S. +Government do not and cannot warrant the performance or results that +may be obtained by using this software or data. The NLM and the U.S. +Government disclaim all warranties, express or implied, including +warranties of performance, merchantability or fitness for any particular +purpose. + +Please cite the author in any work or product based on this material. diff --git a/recipes/rpsbproc/build.sh b/recipes/rpsbproc/build.sh new file mode 100755 index 0000000000000..dbaea1d1ac5e7 --- /dev/null +++ b/recipes/rpsbproc/build.sh @@ -0,0 +1,165 @@ +#!/bin/bash + +set -o xtrace +set -o errexit +set -o nounset +set -o pipefail + + +# For debugging ./configure +cat << EOF >&2 +ENVIRONMENT +----------- +uname -a $(uname -a) + KERNEL +uname -s $(uname -s) +uname -r $(uname -r) +uname -v $(uname -v) + ARCHITECTURE +uname -m $(uname -m) +EOF + + +# Source paths +NCBI_CXX_TOOLKIT="$SRC_DIR/ncbi_cxx/c++" +RPSBPROC_SRC="$SRC_DIR/rpsbproc" +# Work directory +RESULT_PATH="$NCBI_CXX_TOOLKIT/Release" + + +# C/C++ preprocessor header includes paths +export CPPFLAGS="$CPPFLAGS -I$PREFIX/include" +# Linker library paths +export LDFLAGS="$LDFLAGS -L$PREFIX/lib" +# C++ compiler flags +if [[ "$(uname)" = "Darwin" ]]; then + # See https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk for -D_LIBCPP_DISABLE_AVAILABILITY + export CXXFLAGS="$CXXFLAGS -D_LIBCPP_DISABLE_AVAILABILITY" +fi + + +# Embed RpsbProc into the NCBI C++ toolkit source tree +mkdir "$NCBI_CXX_TOOLKIT/src/app/RpsbProc" +cp -rf "$RPSBPROC_SRC/src/"* "$NCBI_CXX_TOOLKIT/src/app/RpsbProc/" + + +# Configuration synopsis: +# https://ncbi.github.io/cxx-toolkit/pages/ch_config.html#ch_config.ch_configget_synopsi +# Run `./configure --help` for all flags. +CONFIGURE_FLAGS="--with-build-root=$RESULT_PATH" + +# Platform-independent flags +## BUILD CHAIN OPTIONS +# --with(out)-bin-release: +# Build executables suitable for public release +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-bin-release" +# --with(out)-debug: +# Build non-debug versions of libs and apps. +# Strips -D_DEBUG and -g, engage -DNDEBUG and -O. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-debug" +# --with(out)-strip: +# Strip binaries at build time (remove debugging symbols) +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-strip" +# --with-experimental={ChaosMonkey,Int4GI,Int8GI,StrictGI,PSGLoader,BM64,C++20,C2X}: +# Enable named experimental feature (comma-separated list): +# - ChaosMonkey Enable "ChaosMonkey" failure testing. +# - Int4GI Use a simple 32-bit type for GI numbers. +# - Int8GI Use a simple 64-bit type for GI numbers. +# - StrictGI Use a strict 64-bit type for GI numbers. +# - PSGLoader Let the GenBank date loader use PubSeq Gateway (PSG). +# - BM64 Use 64-bit bitset indices. +# - C++20 Use '-std=gnu++20' compiler flag. +# - C2X Use '-std=gnu2x' compiler flag. +# See c++/src/build-system/configure.ac lines 1020:1068 for the named options. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-experimental=Int4GI" +# --with(out)-mt: +# Compile in a multi-threading safe manner. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-mt" +# --with(out)-autodep: +# Do not automatically generate dependencies (one time build). +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-autodep" +# --with(out)-makefile-auto-update: +# Do not auto-update generated makefiles (one time build). +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-makefile-auto-update" +# --with(out)-flat-makefile: +# Generate an all-encompassing flat makefile. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-flat-makefile" +# --with(out)-caution: +# Proceed configuration without asking when in doubt. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-caution" +# --with(out)-sse42 +# Disable SSE 4.2 when optimizing. +# Old CPU's (read: 10+ years) don't have this instruction set. +# We can consider removing this. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-sse42" + +## LIBRARIES +# --with(out)-lzo: +# Do not add lzo support (compression lib, req. lzo >2.x). +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-lzo" +# --with(out)-z: +# Set zlib path (compression lib). +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-z=$PREFIX" +# --with(out)-bz2: +# Set bzlib path (compression lib). +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-bz2=$PREFIX" +# --with(out)-sqlite3: +# Set sqlite3 path (local database lib). +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-sqlite3=$PREFIX" +# --with(out)-krb5: +# Do not use Kerberos 5 (needed on OSX). +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-krb5" +# --with(out)-gnutls: +# Do not use gnutls. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-gnutls" +# --with(out)-boost: +# Do not use Boost. +# It tries to search for it and prints some warnings, so might as well tell it beforehand. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-boost" +# --with(out)-pcre: +# Do not use pcre (Perl regex). +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-pcre" +# Static linking of libraries +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-dll --with-static-exe" + +# Platform-specific flags +if [[ "$(uname)" = "Linux" ]]; then + # --with(out)-64: + # Compile in 64-bit mode instead of 32-bit. + # Flag not available for osx build. + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-64" + # --with(out)-openmp: + # Enable OpenMP extensions for all projects. + # Does not work without hacks for OSX + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-openmp" +else + # --with(out)-openmp: + # Disable OpenMP extensions for all projects. + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-openmp" + # --with(out)-gcrypt: + # Do not use gcrypt (needed on OSX). + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-gcrypt" + # --with(out)-zstd: + # Do not use Zstandard. + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-zstd" +fi + +# Fixes building on unix (linux and osx) +export AR="${AR} rcs" + +# Run configure script +cd "$NCBI_CXX_TOOLKIT" +./configure.orig $CONFIGURE_FLAGS >&2 + +# Run GNU Make +cd "$RESULT_PATH/build" +echo "RUNNING MAKE" >&2 +make -j1 -f Makefile.flat rpsbproc.exe >&2 + +# Copy compiled binaries to the Conda $PREFIX +mkdir -p "$PREFIX/bin" +chmod +x "$RESULT_PATH/bin/"* +cp "$RESULT_PATH/bin/rpsbproc"* "$PREFIX/bin/" + +# Extra log to check results +ls -lhAF "$PREFIX/bin/" diff --git a/recipes/rpsbproc/configurellvm.patch b/recipes/rpsbproc/configurellvm.patch new file mode 100644 index 0000000000000..83a44bc1372b2 --- /dev/null +++ b/recipes/rpsbproc/configurellvm.patch @@ -0,0 +1,37 @@ +# fix OSX build issue +# see issue #20874 for more info +diff -ruN c++/src/build-system/configure c++/src/build-system/configure +--- c++/src/build-system/configure 2023-05-03 08:56:44.398601956 +0200 ++++ c++/src/build-system/configure 2023-05-03 09:34:41.470127549 +0200 +@@ -9573,10 +9573,12 @@ + CONF_loadable_ext=".dylib" + fi + if test "$compiler" = AppleClang \ +- || ("$compiler" = GCC && $CXX -v 2>&1 | grep -q Apple) ; then ++ || test "$compiler" = LLVMClang \ ++ || (test "$compiler" = GCC && $CXX -v 2>&1 | grep -i -q Apple) ; then + CFLAGS="-fpascal-strings $CFLAGS" + CXXFLAGS="-fpascal-strings $CXXFLAGS" +- if test "$compiler" = AppleClang; then ++ if test "$compiler" = AppleClang \ ++ || test "$compiler" = LLVMClang; then + try_old_sdks=no + else + try_old_sdks=$with_ncbi_public +@@ -9983,7 +9985,7 @@ + else + ac_cv_header_stdc=no + fi +-rm -f conftest* ++rm -rf conftest* + + fi + +@@ -10000,7 +10002,7 @@ + else + ac_cv_header_stdc=no + fi +-rm -f conftest* ++rm -rf conftest* + + fi diff --git a/recipes/rpsbproc/meta.yaml b/recipes/rpsbproc/meta.yaml new file mode 100644 index 0000000000000..e6f28433383b3 --- /dev/null +++ b/recipes/rpsbproc/meta.yaml @@ -0,0 +1,83 @@ +{% set name = "rpsbproc" %} +{% set version = "0.5.0" %} +{% set sha256 = "8b29f7e7d0a0654d10943e362557ed2d8df9a16218a4c8441c4dea4e7dc9154f" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + - url: https://ftp.ncbi.nih.gov/pub/mmdb/cdd/rpsbproc/RpsbProc-src.tar.gz + sha256: {{ sha256 }} + folder: rpsbproc + patches: + - normbase.patch + + # Get the last supported BLAST version (contains a subset of the NCBI-CXX toolchain), + # required for building. + - url: https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/2.15.0/ncbi-blast-2.15.0+-src.tar.gz + sha256: 6918c370524c8d44e028bf491e8f245a895e07c66c77b261ce3b38d6058216e0 + folder: ncbi_cxx + patches: + - configurellvm.patch + - phonehome.patch + - update_configsub.patch + +build: + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} + +requirements: + build: + - make + - {{ compiler('c') }} + - {{ compiler('cxx') }} + host: + - zlib + - bzip2 + # required as of blast-2.15.0 + - sqlite >=3.6.6 + # no runtime dependencies as it's statically linked (except standard libs) + run: + + +test: + commands: + - rpsbproc -version-full + +about: + home: https://ftp.ncbi.nih.gov/pub/mmdb/cdd/rpsbproc/README + license: Public Domain + license_file: LICENSE + summary: RpsbProc, the post-RPSBLAST Processing Utility. + description: | + The rpsbproc command line utility is an addition to the standalone version of + Reverse Position-Specific BLAST (RPS-BLAST), also known as CD-Search (Conserved + Domain Search). + + It post-processes the results of local RPS-BLAST searches in order to provide a + non-redundant view of the search results, and to provide additional annotation + on query sequences, such as domain superfamilies and functional sites, similar to + the annotation provided by the corresponding web services (e.g., the NCBI Batch + CD-Search web service at + http://www.ncbi.nlm.nih.gov/Structure/bwrpsb/bwrpsb.cgi). + + Specifically, the rpsbproc utility reads the output of rpsblast/rpstblastn, + fills in domain superfamily and functional site information for each region of + the sequence, re-sorts the hits by a different standard, and calculates a + set of non-redundent representative hits. In this way, it turns the + raw alignments into domain/site annotations on the query sequence at different + redundancy level, basically produce the same data as web-based Batch CD-Search + service does. The annotation data is presented in tab-delimited tables to be processed + either programatically or manually with a spreadsheet (see details below). + + See the CDD and CD-Search help document for additional details about + superfamilies, conserved sites, and more: + + http://www.ncbi.nlm.nih.gov/Structure/cdd/cdd_help.shtml + + +extra: + identifiers: + - doi:10.1002/cpbi.90 diff --git a/recipes/rpsbproc/normbase.patch b/recipes/rpsbproc/normbase.patch new file mode 100644 index 0000000000000..78183e1d88122 --- /dev/null +++ b/recipes/rpsbproc/normbase.patch @@ -0,0 +1,8 @@ +--- src/common/normbase.hpp ++++ src/common/normbase.hpp +@@ -142,7 +142,7 @@ private: + + std::ostream & operator << (std::ostream &os, const CSimpleException &e); + +-#define THROW_SIMPLE(a) throw CSimpleException(__FILE__, __LINE__, dynamic_cast (stringstream() << a)) ++#define THROW_SIMPLE(a) throw CSimpleException(__FILE__, __LINE__, static_cast (stringstream() << a)) diff --git a/recipes/rpsbproc/phonehome.patch b/recipes/rpsbproc/phonehome.patch new file mode 100644 index 0000000000000..a02e55a0ad186 --- /dev/null +++ b/recipes/rpsbproc/phonehome.patch @@ -0,0 +1,11 @@ +--- c++/include/connect/ncbi_usage_report.hpp 2020-09-25 19:21:05 +0200 ++++ c++/include/connect/ncbi_usage_report.hpp 2022-07-18 23:39:42 +0200 +@@ -39,7 +39,7 @@ + // API is available for MT builds only, + // for single thread builds all API is available but disabled. + #if defined(NCBI_THREADS) +-# define NCBI_USAGE_REPORT_SUPPORTED 1 ++// # define NCBI_USAGE_REPORT_SUPPORTED 1 + #endif + + #if defined(NCBI_USAGE_REPORT_SUPPORTED) diff --git a/recipes/rpsbproc/update_configsub.patch b/recipes/rpsbproc/update_configsub.patch new file mode 100644 index 0000000000000..d4dfa0bd35e7d --- /dev/null +++ b/recipes/rpsbproc/update_configsub.patch @@ -0,0 +1,3207 @@ +# Update config.sub to a modern version that recognises osx-arm64 +--- c++/src/build-system/config.sub ++++ c++/src/build-system/config.sub +@@ -1,12 +1,14 @@ + #! /bin/sh + # Configuration validation subroutine script. +-# Copyright 1992-2013 Free Software Foundation, Inc. ++# Copyright 1992-2024 Free Software Foundation, Inc. + +-timestamp='2013-02-12' ++# shellcheck disable=SC2006,SC2268 # see below for rationale ++ ++timestamp='2024-01-01' + + # This file is free software; you can redistribute it and/or modify it + # under the terms of the GNU General Public License as published by +-# the Free Software Foundation; either version 3 of the License, or ++# the Free Software Foundation, either version 3 of the License, or + # (at your option) any later version. + # + # This program is distributed in the hope that it will be useful, but +@@ -15,7 +17,7 @@ timestamp='2013-02-12' + # General Public License for more details. + # + # You should have received a copy of the GNU General Public License +-# along with this program; if not, see . ++# along with this program; if not, see . + # + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a +@@ -25,7 +27,7 @@ timestamp='2013-02-12' + # of the GNU General Public License, version 3 ("GPLv3"). + + +-# Please send patches with a ChangeLog entry to config-patches@gnu.org. ++# Please send patches to . + # + # Configuration subroutine to validate and canonicalize a configuration type. + # Supply the specified configuration type as an argument. +@@ -33,7 +35,7 @@ timestamp='2013-02-12' + # Otherwise, we print the canonical config type on stdout and succeed. + + # You can get the latest version of this script from: +-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD ++# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub + + # This file is supposed to be the same for all GNU packages + # and recognize all the CPU types, system types and aliases +@@ -50,15 +52,21 @@ timestamp='2013-02-12' + # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM + # It is wrong to echo any other type of specification. + ++# The "shellcheck disable" line above the timestamp inhibits complaints ++# about features and limitations of the classic Bourne shell that were ++# superseded or lifted in POSIX. However, this script identifies a wide ++# variety of pre-POSIX systems that do not have POSIX shells at all, and ++# even some reasonably current systems (Solaris 10 as case-in-point) still ++# have a pre-POSIX /bin/sh. ++ + me=`echo "$0" | sed -e 's,.*/,,'` + + usage="\ +-Usage: $0 [OPTION] CPU-MFR-OPSYS +- $0 [OPTION] ALIAS ++Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + + Canonicalize a configuration name. + +-Operation modes: ++Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit +@@ -68,13 +76,13 @@ Report bugs and patches to ." + version="\ + GNU config.sub ($timestamp) + +-Copyright 1992-2013 Free Software Foundation, Inc. ++Copyright 1992-2024 Free Software Foundation, Inc. + + This is free software; see the source for copying conditions. There is NO + warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + + help=" +-Try \`$me --help' for more information." ++Try '$me --help' for more information." + + # Parse command line + while test $# -gt 0 ; do +@@ -90,12 +98,12 @@ while test $# -gt 0 ; do + - ) # Use stdin as input. + break ;; + -* ) +- echo "$me: invalid option $1$help" ++ echo "$me: invalid option $1$help" >&2 + exit 1 ;; + + *local*) + # First pass through any local machine types. +- echo $1 ++ echo "$1" + exit ;; + + * ) +@@ -111,1209 +119,1167 @@ case $# in + exit 1;; + esac + +-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +-# Here we must recognize all the valid KERNEL-OS combinations. +-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +-case $maybe_os in +- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ +- linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ +- knetbsd*-gnu* | netbsd*-gnu* | \ +- kopensolaris*-gnu* | \ +- storm-chaos* | os2-emx* | rtmk-nova*) +- os=-$maybe_os +- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` +- ;; +- android-linux) +- os=-linux-android +- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown +- ;; +- *) +- basic_machine=`echo $1 | sed 's/-[^-]*$//'` +- if [ $basic_machine != $1 ] +- then os=`echo $1 | sed 's/.*-/-/'` +- else os=; fi +- ;; +-esac ++# Split fields of configuration type ++# shellcheck disable=SC2162 ++saved_IFS=$IFS ++IFS="-" read field1 field2 field3 field4 <&2 ++ exit 1 + ;; +- -ptx*) +- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ++ *-*-*-*) ++ basic_machine=$field1-$field2 ++ basic_os=$field3-$field4 + ;; +- -windowsnt*) +- os=`echo $os | sed -e 's/windowsnt/winnt/'` ++ *-*-*) ++ # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two ++ # parts ++ maybe_os=$field2-$field3 ++ case $maybe_os in ++ nto-qnx* | linux-* | uclinux-uclibc* \ ++ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ ++ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ ++ | storm-chaos* | os2-emx* | rtmk-nova* | managarm-* \ ++ | windows-* ) ++ basic_machine=$field1 ++ basic_os=$maybe_os ++ ;; ++ android-linux) ++ basic_machine=$field1-unknown ++ basic_os=linux-android ++ ;; ++ *) ++ basic_machine=$field1-$field2 ++ basic_os=$field3 ++ ;; ++ esac + ;; +- -psos*) +- os=-psos ++ *-*) ++ # A lone config we happen to match not fitting any pattern ++ case $field1-$field2 in ++ decstation-3100) ++ basic_machine=mips-dec ++ basic_os= ++ ;; ++ *-*) ++ # Second component is usually, but not always the OS ++ case $field2 in ++ # Prevent following clause from handling this valid os ++ sun*os*) ++ basic_machine=$field1 ++ basic_os=$field2 ++ ;; ++ zephyr*) ++ basic_machine=$field1-unknown ++ basic_os=$field2 ++ ;; ++ # Manufacturers ++ dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ ++ | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ ++ | unicom* | ibm* | next | hp | isi* | apollo | altos* \ ++ | convergent* | ncr* | news | 32* | 3600* | 3100* \ ++ | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ ++ | ultra | tti* | harris | dolphin | highlevel | gould \ ++ | cbm | ns | masscomp | apple | axis | knuth | cray \ ++ | microblaze* | sim | cisco \ ++ | oki | wec | wrs | winbond) ++ basic_machine=$field1-$field2 ++ basic_os= ++ ;; ++ *) ++ basic_machine=$field1 ++ basic_os=$field2 ++ ;; ++ esac ++ ;; ++ esac + ;; +- -mint | -mint[0-9]*) +- basic_machine=m68k-atari +- os=-mint ++ *) ++ # Convert single-component short-hands not valid as part of ++ # multi-component configurations. ++ case $field1 in ++ 386bsd) ++ basic_machine=i386-pc ++ basic_os=bsd ++ ;; ++ a29khif) ++ basic_machine=a29k-amd ++ basic_os=udi ++ ;; ++ adobe68k) ++ basic_machine=m68010-adobe ++ basic_os=scout ++ ;; ++ alliant) ++ basic_machine=fx80-alliant ++ basic_os= ++ ;; ++ altos | altos3068) ++ basic_machine=m68k-altos ++ basic_os= ++ ;; ++ am29k) ++ basic_machine=a29k-none ++ basic_os=bsd ++ ;; ++ amdahl) ++ basic_machine=580-amdahl ++ basic_os=sysv ++ ;; ++ amiga) ++ basic_machine=m68k-unknown ++ basic_os= ++ ;; ++ amigaos | amigados) ++ basic_machine=m68k-unknown ++ basic_os=amigaos ++ ;; ++ amigaunix | amix) ++ basic_machine=m68k-unknown ++ basic_os=sysv4 ++ ;; ++ apollo68) ++ basic_machine=m68k-apollo ++ basic_os=sysv ++ ;; ++ apollo68bsd) ++ basic_machine=m68k-apollo ++ basic_os=bsd ++ ;; ++ aros) ++ basic_machine=i386-pc ++ basic_os=aros ++ ;; ++ aux) ++ basic_machine=m68k-apple ++ basic_os=aux ++ ;; ++ balance) ++ basic_machine=ns32k-sequent ++ basic_os=dynix ++ ;; ++ blackfin) ++ basic_machine=bfin-unknown ++ basic_os=linux ++ ;; ++ cegcc) ++ basic_machine=arm-unknown ++ basic_os=cegcc ++ ;; ++ convex-c1) ++ basic_machine=c1-convex ++ basic_os=bsd ++ ;; ++ convex-c2) ++ basic_machine=c2-convex ++ basic_os=bsd ++ ;; ++ convex-c32) ++ basic_machine=c32-convex ++ basic_os=bsd ++ ;; ++ convex-c34) ++ basic_machine=c34-convex ++ basic_os=bsd ++ ;; ++ convex-c38) ++ basic_machine=c38-convex ++ basic_os=bsd ++ ;; ++ cray) ++ basic_machine=j90-cray ++ basic_os=unicos ++ ;; ++ crds | unos) ++ basic_machine=m68k-crds ++ basic_os= ++ ;; ++ da30) ++ basic_machine=m68k-da30 ++ basic_os= ++ ;; ++ decstation | pmax | pmin | dec3100 | decstatn) ++ basic_machine=mips-dec ++ basic_os= ++ ;; ++ delta88) ++ basic_machine=m88k-motorola ++ basic_os=sysv3 ++ ;; ++ dicos) ++ basic_machine=i686-pc ++ basic_os=dicos ++ ;; ++ djgpp) ++ basic_machine=i586-pc ++ basic_os=msdosdjgpp ++ ;; ++ ebmon29k) ++ basic_machine=a29k-amd ++ basic_os=ebmon ++ ;; ++ es1800 | OSE68k | ose68k | ose | OSE) ++ basic_machine=m68k-ericsson ++ basic_os=ose ++ ;; ++ gmicro) ++ basic_machine=tron-gmicro ++ basic_os=sysv ++ ;; ++ go32) ++ basic_machine=i386-pc ++ basic_os=go32 ++ ;; ++ h8300hms) ++ basic_machine=h8300-hitachi ++ basic_os=hms ++ ;; ++ h8300xray) ++ basic_machine=h8300-hitachi ++ basic_os=xray ++ ;; ++ h8500hms) ++ basic_machine=h8500-hitachi ++ basic_os=hms ++ ;; ++ harris) ++ basic_machine=m88k-harris ++ basic_os=sysv3 ++ ;; ++ hp300 | hp300hpux) ++ basic_machine=m68k-hp ++ basic_os=hpux ++ ;; ++ hp300bsd) ++ basic_machine=m68k-hp ++ basic_os=bsd ++ ;; ++ hppaosf) ++ basic_machine=hppa1.1-hp ++ basic_os=osf ++ ;; ++ hppro) ++ basic_machine=hppa1.1-hp ++ basic_os=proelf ++ ;; ++ i386mach) ++ basic_machine=i386-mach ++ basic_os=mach ++ ;; ++ isi68 | isi) ++ basic_machine=m68k-isi ++ basic_os=sysv ++ ;; ++ m68knommu) ++ basic_machine=m68k-unknown ++ basic_os=linux ++ ;; ++ magnum | m3230) ++ basic_machine=mips-mips ++ basic_os=sysv ++ ;; ++ merlin) ++ basic_machine=ns32k-utek ++ basic_os=sysv ++ ;; ++ mingw64) ++ basic_machine=x86_64-pc ++ basic_os=mingw64 ++ ;; ++ mingw32) ++ basic_machine=i686-pc ++ basic_os=mingw32 ++ ;; ++ mingw32ce) ++ basic_machine=arm-unknown ++ basic_os=mingw32ce ++ ;; ++ monitor) ++ basic_machine=m68k-rom68k ++ basic_os=coff ++ ;; ++ morphos) ++ basic_machine=powerpc-unknown ++ basic_os=morphos ++ ;; ++ moxiebox) ++ basic_machine=moxie-unknown ++ basic_os=moxiebox ++ ;; ++ msdos) ++ basic_machine=i386-pc ++ basic_os=msdos ++ ;; ++ msys) ++ basic_machine=i686-pc ++ basic_os=msys ++ ;; ++ mvs) ++ basic_machine=i370-ibm ++ basic_os=mvs ++ ;; ++ nacl) ++ basic_machine=le32-unknown ++ basic_os=nacl ++ ;; ++ ncr3000) ++ basic_machine=i486-ncr ++ basic_os=sysv4 ++ ;; ++ netbsd386) ++ basic_machine=i386-pc ++ basic_os=netbsd ++ ;; ++ netwinder) ++ basic_machine=armv4l-rebel ++ basic_os=linux ++ ;; ++ news | news700 | news800 | news900) ++ basic_machine=m68k-sony ++ basic_os=newsos ++ ;; ++ news1000) ++ basic_machine=m68030-sony ++ basic_os=newsos ++ ;; ++ necv70) ++ basic_machine=v70-nec ++ basic_os=sysv ++ ;; ++ nh3000) ++ basic_machine=m68k-harris ++ basic_os=cxux ++ ;; ++ nh[45]000) ++ basic_machine=m88k-harris ++ basic_os=cxux ++ ;; ++ nindy960) ++ basic_machine=i960-intel ++ basic_os=nindy ++ ;; ++ mon960) ++ basic_machine=i960-intel ++ basic_os=mon960 ++ ;; ++ nonstopux) ++ basic_machine=mips-compaq ++ basic_os=nonstopux ++ ;; ++ os400) ++ basic_machine=powerpc-ibm ++ basic_os=os400 ++ ;; ++ OSE68000 | ose68000) ++ basic_machine=m68000-ericsson ++ basic_os=ose ++ ;; ++ os68k) ++ basic_machine=m68k-none ++ basic_os=os68k ++ ;; ++ paragon) ++ basic_machine=i860-intel ++ basic_os=osf ++ ;; ++ parisc) ++ basic_machine=hppa-unknown ++ basic_os=linux ++ ;; ++ psp) ++ basic_machine=mipsallegrexel-sony ++ basic_os=psp ++ ;; ++ pw32) ++ basic_machine=i586-unknown ++ basic_os=pw32 ++ ;; ++ rdos | rdos64) ++ basic_machine=x86_64-pc ++ basic_os=rdos ++ ;; ++ rdos32) ++ basic_machine=i386-pc ++ basic_os=rdos ++ ;; ++ rom68k) ++ basic_machine=m68k-rom68k ++ basic_os=coff ++ ;; ++ sa29200) ++ basic_machine=a29k-amd ++ basic_os=udi ++ ;; ++ sei) ++ basic_machine=mips-sei ++ basic_os=seiux ++ ;; ++ sequent) ++ basic_machine=i386-sequent ++ basic_os= ++ ;; ++ sps7) ++ basic_machine=m68k-bull ++ basic_os=sysv2 ++ ;; ++ st2000) ++ basic_machine=m68k-tandem ++ basic_os= ++ ;; ++ stratus) ++ basic_machine=i860-stratus ++ basic_os=sysv4 ++ ;; ++ sun2) ++ basic_machine=m68000-sun ++ basic_os= ++ ;; ++ sun2os3) ++ basic_machine=m68000-sun ++ basic_os=sunos3 ++ ;; ++ sun2os4) ++ basic_machine=m68000-sun ++ basic_os=sunos4 ++ ;; ++ sun3) ++ basic_machine=m68k-sun ++ basic_os= ++ ;; ++ sun3os3) ++ basic_machine=m68k-sun ++ basic_os=sunos3 ++ ;; ++ sun3os4) ++ basic_machine=m68k-sun ++ basic_os=sunos4 ++ ;; ++ sun4) ++ basic_machine=sparc-sun ++ basic_os= ++ ;; ++ sun4os3) ++ basic_machine=sparc-sun ++ basic_os=sunos3 ++ ;; ++ sun4os4) ++ basic_machine=sparc-sun ++ basic_os=sunos4 ++ ;; ++ sun4sol2) ++ basic_machine=sparc-sun ++ basic_os=solaris2 ++ ;; ++ sun386 | sun386i | roadrunner) ++ basic_machine=i386-sun ++ basic_os= ++ ;; ++ sv1) ++ basic_machine=sv1-cray ++ basic_os=unicos ++ ;; ++ symmetry) ++ basic_machine=i386-sequent ++ basic_os=dynix ++ ;; ++ t3e) ++ basic_machine=alphaev5-cray ++ basic_os=unicos ++ ;; ++ t90) ++ basic_machine=t90-cray ++ basic_os=unicos ++ ;; ++ toad1) ++ basic_machine=pdp10-xkl ++ basic_os=tops20 ++ ;; ++ tpf) ++ basic_machine=s390x-ibm ++ basic_os=tpf ++ ;; ++ udi29k) ++ basic_machine=a29k-amd ++ basic_os=udi ++ ;; ++ ultra3) ++ basic_machine=a29k-nyu ++ basic_os=sym1 ++ ;; ++ v810 | necv810) ++ basic_machine=v810-nec ++ basic_os=none ++ ;; ++ vaxv) ++ basic_machine=vax-dec ++ basic_os=sysv ++ ;; ++ vms) ++ basic_machine=vax-dec ++ basic_os=vms ++ ;; ++ vsta) ++ basic_machine=i386-pc ++ basic_os=vsta ++ ;; ++ vxworks960) ++ basic_machine=i960-wrs ++ basic_os=vxworks ++ ;; ++ vxworks68) ++ basic_machine=m68k-wrs ++ basic_os=vxworks ++ ;; ++ vxworks29k) ++ basic_machine=a29k-wrs ++ basic_os=vxworks ++ ;; ++ xbox) ++ basic_machine=i686-pc ++ basic_os=mingw32 ++ ;; ++ ymp) ++ basic_machine=ymp-cray ++ basic_os=unicos ++ ;; ++ *) ++ basic_machine=$1 ++ basic_os= ++ ;; ++ esac + ;; + esac + +-# Decode aliases for certain CPU-COMPANY combinations. ++# Decode 1-component or ad-hoc basic machines + case $basic_machine in +- # Recognize the basic CPU types without company name. +- # Some are omitted here because they have special meanings below. +- 1750a | 580 \ +- | a29k \ +- | aarch64 | aarch64_be \ +- | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ +- | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ +- | am33_2.0 \ +- | arc \ +- | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ +- | avr | avr32 \ +- | be32 | be64 \ +- | bfin \ +- | c4x | clipper \ +- | d10v | d30v | dlx | dsp16xx \ +- | epiphany \ +- | fido | fr30 | frv \ +- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ +- | hexagon \ +- | i370 | i860 | i960 | ia64 \ +- | ip2k | iq2000 \ +- | le32 | le64 \ +- | lm32 \ +- | m32c | m32r | m32rle | m68000 | m68k | m88k \ +- | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ +- | mips | mipsbe | mipseb | mipsel | mipsle \ +- | mips16 \ +- | mips64 | mips64el \ +- | mips64octeon | mips64octeonel \ +- | mips64orion | mips64orionel \ +- | mips64r5900 | mips64r5900el \ +- | mips64vr | mips64vrel \ +- | mips64vr4100 | mips64vr4100el \ +- | mips64vr4300 | mips64vr4300el \ +- | mips64vr5000 | mips64vr5000el \ +- | mips64vr5900 | mips64vr5900el \ +- | mipsisa32 | mipsisa32el \ +- | mipsisa32r2 | mipsisa32r2el \ +- | mipsisa64 | mipsisa64el \ +- | mipsisa64r2 | mipsisa64r2el \ +- | mipsisa64sb1 | mipsisa64sb1el \ +- | mipsisa64sr71k | mipsisa64sr71kel \ +- | mipsr5900 | mipsr5900el \ +- | mipstx39 | mipstx39el \ +- | mn10200 | mn10300 \ +- | moxie \ +- | mt \ +- | msp430 \ +- | nds32 | nds32le | nds32be \ +- | nios | nios2 | nios2eb | nios2el \ +- | ns16k | ns32k \ +- | open8 \ +- | or1k | or32 \ +- | pdp10 | pdp11 | pj | pjl \ +- | powerpc | powerpc64 | powerpc64le | powerpcle \ +- | pyramid \ +- | rl78 | rx \ +- | score \ +- | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ +- | sh64 | sh64le \ +- | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ +- | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ +- | spu \ +- | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ +- | ubicom32 \ +- | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ +- | we32k \ +- | x86 | xc16x | xstormy16 | xtensa \ +- | z8k | z80) +- basic_machine=$basic_machine-unknown +- ;; +- c54x) +- basic_machine=tic54x-unknown +- ;; +- c55x) +- basic_machine=tic55x-unknown +- ;; +- c6x) +- basic_machine=tic6x-unknown +- ;; +- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) +- basic_machine=$basic_machine-unknown +- os=-none +- ;; +- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) +- ;; +- ms1) +- basic_machine=mt-unknown ++ # Here we handle the default manufacturer of certain CPU types. It is in ++ # some cases the only manufacturer, in others, it is the most popular. ++ w89k) ++ cpu=hppa1.1 ++ vendor=winbond + ;; +- +- strongarm | thumb | xscale) +- basic_machine=arm-unknown ++ op50n) ++ cpu=hppa1.1 ++ vendor=oki + ;; +- xgate) +- basic_machine=$basic_machine-unknown +- os=-none ++ op60c) ++ cpu=hppa1.1 ++ vendor=oki + ;; +- xscaleeb) +- basic_machine=armeb-unknown ++ ibm*) ++ cpu=i370 ++ vendor=ibm + ;; +- +- xscaleel) +- basic_machine=armel-unknown ++ orion105) ++ cpu=clipper ++ vendor=highlevel + ;; +- +- # We use `pc' rather than `unknown' +- # because (1) that's what they normally are, and +- # (2) the word "unknown" tends to confuse beginning users. +- i*86 | x86_64) +- basic_machine=$basic_machine-pc +- ;; +- # Object if more than one company name word. +- *-*-*) +- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 +- exit 1 ++ mac | mpw | mac-mpw) ++ cpu=m68k ++ vendor=apple + ;; +- # Recognize the basic CPU types with company name. +- 580-* \ +- | a29k-* \ +- | aarch64-* | aarch64_be-* \ +- | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ +- | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ +- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ +- | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ +- | avr-* | avr32-* \ +- | be32-* | be64-* \ +- | bfin-* | bs2000-* \ +- | c[123]* | c30-* | [cjt]90-* | c4x-* \ +- | clipper-* | craynv-* | cydra-* \ +- | d10v-* | d30v-* | dlx-* \ +- | elxsi-* \ +- | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ +- | h8300-* | h8500-* \ +- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ +- | hexagon-* \ +- | i*86-* | i860-* | i960-* | ia64-* \ +- | ip2k-* | iq2000-* \ +- | le32-* | le64-* \ +- | lm32-* \ +- | m32c-* | m32r-* | m32rle-* \ +- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ +- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ +- | microblaze-* | microblazeel-* \ +- | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ +- | mips16-* \ +- | mips64-* | mips64el-* \ +- | mips64octeon-* | mips64octeonel-* \ +- | mips64orion-* | mips64orionel-* \ +- | mips64r5900-* | mips64r5900el-* \ +- | mips64vr-* | mips64vrel-* \ +- | mips64vr4100-* | mips64vr4100el-* \ +- | mips64vr4300-* | mips64vr4300el-* \ +- | mips64vr5000-* | mips64vr5000el-* \ +- | mips64vr5900-* | mips64vr5900el-* \ +- | mipsisa32-* | mipsisa32el-* \ +- | mipsisa32r2-* | mipsisa32r2el-* \ +- | mipsisa64-* | mipsisa64el-* \ +- | mipsisa64r2-* | mipsisa64r2el-* \ +- | mipsisa64sb1-* | mipsisa64sb1el-* \ +- | mipsisa64sr71k-* | mipsisa64sr71kel-* \ +- | mipsr5900-* | mipsr5900el-* \ +- | mipstx39-* | mipstx39el-* \ +- | mmix-* \ +- | mt-* \ +- | msp430-* \ +- | nds32-* | nds32le-* | nds32be-* \ +- | nios-* | nios2-* | nios2eb-* | nios2el-* \ +- | none-* | np1-* | ns16k-* | ns32k-* \ +- | open8-* \ +- | orion-* \ +- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ +- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ +- | pyramid-* \ +- | rl78-* | romp-* | rs6000-* | rx-* \ +- | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ +- | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ +- | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ +- | sparclite-* \ +- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ +- | tahoe-* \ +- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ +- | tile*-* \ +- | tron-* \ +- | ubicom32-* \ +- | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ +- | vax-* \ +- | we32k-* \ +- | x86-* | x86_64-* | xc16x-* | xps100-* \ +- | xstormy16-* | xtensa*-* \ +- | ymp-* \ +- | z8k-* | z80-*) +- ;; +- # Recognize the basic CPU types without company name, with glob match. +- xtensa*) +- basic_machine=$basic_machine-unknown ++ pmac | pmac-mpw) ++ cpu=powerpc ++ vendor=apple + ;; ++ + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. +- 386bsd) +- basic_machine=i386-unknown +- os=-bsd +- ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) +- basic_machine=m68000-att ++ cpu=m68000 ++ vendor=att + ;; + 3b*) +- basic_machine=we32k-att +- ;; +- a29khif) +- basic_machine=a29k-amd +- os=-udi +- ;; +- abacus) +- basic_machine=abacus-unknown +- ;; +- adobe68k) +- basic_machine=m68010-adobe +- os=-scout +- ;; +- alliant | fx80) +- basic_machine=fx80-alliant +- ;; +- altos | altos3068) +- basic_machine=m68k-altos +- ;; +- am29k) +- basic_machine=a29k-none +- os=-bsd +- ;; +- amd64) +- basic_machine=x86_64-pc +- ;; +- amd64-*) +- basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- amdahl) +- basic_machine=580-amdahl +- os=-sysv +- ;; +- amiga | amiga-*) +- basic_machine=m68k-unknown +- ;; +- amigaos | amigados) +- basic_machine=m68k-unknown +- os=-amigaos +- ;; +- amigaunix | amix) +- basic_machine=m68k-unknown +- os=-sysv4 +- ;; +- apollo68) +- basic_machine=m68k-apollo +- os=-sysv +- ;; +- apollo68bsd) +- basic_machine=m68k-apollo +- os=-bsd +- ;; +- aros) +- basic_machine=i386-pc +- os=-aros +- ;; +- aux) +- basic_machine=m68k-apple +- os=-aux +- ;; +- balance) +- basic_machine=ns32k-sequent +- os=-dynix +- ;; +- blackfin) +- basic_machine=bfin-unknown +- os=-linux +- ;; +- blackfin-*) +- basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` +- os=-linux ++ cpu=we32k ++ vendor=att + ;; + bluegene*) +- basic_machine=powerpc-ibm +- os=-cnk +- ;; +- c54x-*) +- basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- c55x-*) +- basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- c6x-*) +- basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- c90) +- basic_machine=c90-cray +- os=-unicos +- ;; +- cegcc) +- basic_machine=arm-unknown +- os=-cegcc +- ;; +- convex-c1) +- basic_machine=c1-convex +- os=-bsd +- ;; +- convex-c2) +- basic_machine=c2-convex +- os=-bsd +- ;; +- convex-c32) +- basic_machine=c32-convex +- os=-bsd +- ;; +- convex-c34) +- basic_machine=c34-convex +- os=-bsd +- ;; +- convex-c38) +- basic_machine=c38-convex +- os=-bsd +- ;; +- cray | j90) +- basic_machine=j90-cray +- os=-unicos +- ;; +- craynv) +- basic_machine=craynv-cray +- os=-unicosmp +- ;; +- cr16 | cr16-*) +- basic_machine=cr16-unknown +- os=-elf +- ;; +- crds | unos) +- basic_machine=m68k-crds +- ;; +- crisv32 | crisv32-* | etraxfs*) +- basic_machine=crisv32-axis +- ;; +- cris | cris-* | etrax*) +- basic_machine=cris-axis +- ;; +- crx) +- basic_machine=crx-unknown +- os=-elf +- ;; +- da30 | da30-*) +- basic_machine=m68k-da30 +- ;; +- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) +- basic_machine=mips-dec ++ cpu=powerpc ++ vendor=ibm ++ basic_os=cnk + ;; + decsystem10* | dec10*) +- basic_machine=pdp10-dec +- os=-tops10 ++ cpu=pdp10 ++ vendor=dec ++ basic_os=tops10 + ;; + decsystem20* | dec20*) +- basic_machine=pdp10-dec +- os=-tops20 ++ cpu=pdp10 ++ vendor=dec ++ basic_os=tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) +- basic_machine=m68k-motorola +- ;; +- delta88) +- basic_machine=m88k-motorola +- os=-sysv3 ++ cpu=m68k ++ vendor=motorola + ;; +- dicos) +- basic_machine=i686-pc +- os=-dicos +- ;; +- djgpp) +- basic_machine=i586-pc +- os=-msdosdjgpp +- ;; +- dpx20 | dpx20-*) +- basic_machine=rs6000-bull +- os=-bosx +- ;; +- dpx2* | dpx2*-bull) +- basic_machine=m68k-bull +- os=-sysv3 +- ;; +- ebmon29k) +- basic_machine=a29k-amd +- os=-ebmon +- ;; +- elxsi) +- basic_machine=elxsi-elxsi +- os=-bsd ++ dpx2*) ++ cpu=m68k ++ vendor=bull ++ basic_os=sysv3 + ;; + encore | umax | mmax) +- basic_machine=ns32k-encore ++ cpu=ns32k ++ vendor=encore + ;; +- es1800 | OSE68k | ose68k | ose | OSE) +- basic_machine=m68k-ericsson +- os=-ose ++ elxsi) ++ cpu=elxsi ++ vendor=elxsi ++ basic_os=${basic_os:-bsd} + ;; + fx2800) +- basic_machine=i860-alliant ++ cpu=i860 ++ vendor=alliant + ;; + genix) +- basic_machine=ns32k-ns +- ;; +- gmicro) +- basic_machine=tron-gmicro +- os=-sysv +- ;; +- go32) +- basic_machine=i386-pc +- os=-go32 ++ cpu=ns32k ++ vendor=ns + ;; + h3050r* | hiux*) +- basic_machine=hppa1.1-hitachi +- os=-hiuxwe2 +- ;; +- h8300hms) +- basic_machine=h8300-hitachi +- os=-hms +- ;; +- h8300xray) +- basic_machine=h8300-hitachi +- os=-xray +- ;; +- h8500hms) +- basic_machine=h8500-hitachi +- os=-hms +- ;; +- harris) +- basic_machine=m88k-harris +- os=-sysv3 +- ;; +- hp300-*) +- basic_machine=m68k-hp +- ;; +- hp300bsd) +- basic_machine=m68k-hp +- os=-bsd +- ;; +- hp300hpux) +- basic_machine=m68k-hp +- os=-hpux ++ cpu=hppa1.1 ++ vendor=hitachi ++ basic_os=hiuxwe2 + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) +- basic_machine=hppa1.0-hp ++ cpu=hppa1.0 ++ vendor=hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) +- basic_machine=m68000-hp ++ cpu=m68000 ++ vendor=hp + ;; + hp9k3[2-9][0-9]) +- basic_machine=m68k-hp ++ cpu=m68k ++ vendor=hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) +- basic_machine=hppa1.0-hp ++ cpu=hppa1.0 ++ vendor=hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) +- basic_machine=hppa1.1-hp ++ cpu=hppa1.1 ++ vendor=hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp +- basic_machine=hppa1.1-hp ++ cpu=hppa1.1 ++ vendor=hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp +- basic_machine=hppa1.1-hp ++ cpu=hppa1.1 ++ vendor=hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) +- basic_machine=hppa1.1-hp ++ cpu=hppa1.1 ++ vendor=hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) +- basic_machine=hppa1.0-hp +- ;; +- hppa-next) +- os=-nextstep3 +- ;; +- hppaosf) +- basic_machine=hppa1.1-hp +- os=-osf +- ;; +- hppro) +- basic_machine=hppa1.1-hp +- os=-proelf +- ;; +- i370-ibm* | ibm*) +- basic_machine=i370-ibm ++ cpu=hppa1.0 ++ vendor=hp + ;; + i*86v32) +- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` +- os=-sysv32 ++ cpu=`echo "$1" | sed -e 's/86.*/86/'` ++ vendor=pc ++ basic_os=sysv32 + ;; + i*86v4*) +- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` +- os=-sysv4 ++ cpu=`echo "$1" | sed -e 's/86.*/86/'` ++ vendor=pc ++ basic_os=sysv4 + ;; + i*86v) +- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` +- os=-sysv ++ cpu=`echo "$1" | sed -e 's/86.*/86/'` ++ vendor=pc ++ basic_os=sysv + ;; + i*86sol2) +- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` +- os=-solaris2 +- ;; +- i386mach) +- basic_machine=i386-mach +- os=-mach ++ cpu=`echo "$1" | sed -e 's/86.*/86/'` ++ vendor=pc ++ basic_os=solaris2 + ;; +- i386-vsta | vsta) +- basic_machine=i386-unknown +- os=-vsta ++ j90 | j90-cray) ++ cpu=j90 ++ vendor=cray ++ basic_os=${basic_os:-unicos} + ;; + iris | iris4d) +- basic_machine=mips-sgi +- case $os in +- -irix*) ++ cpu=mips ++ vendor=sgi ++ case $basic_os in ++ irix*) + ;; + *) +- os=-irix4 ++ basic_os=irix4 + ;; + esac + ;; +- isi68 | isi) +- basic_machine=m68k-isi +- os=-sysv +- ;; +- m68knommu) +- basic_machine=m68k-unknown +- os=-linux +- ;; +- m68knommu-*) +- basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` +- os=-linux +- ;; +- m88k-omron*) +- basic_machine=m88k-omron +- ;; +- magnum | m3230) +- basic_machine=mips-mips +- os=-sysv +- ;; +- merlin) +- basic_machine=ns32k-utek +- os=-sysv +- ;; +- microblaze*) +- basic_machine=microblaze-xilinx +- ;; +- mingw64) +- basic_machine=x86_64-pc +- os=-mingw64 +- ;; +- mingw32) +- basic_machine=i386-pc +- os=-mingw32 +- ;; +- mingw32ce) +- basic_machine=arm-unknown +- os=-mingw32ce +- ;; + miniframe) +- basic_machine=m68000-convergent +- ;; +- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) +- basic_machine=m68k-atari +- os=-mint +- ;; +- mips3*-*) +- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` +- ;; +- mips3*) +- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown +- ;; +- monitor) +- basic_machine=m68k-rom68k +- os=-coff +- ;; +- morphos) +- basic_machine=powerpc-unknown +- os=-morphos +- ;; +- msdos) +- basic_machine=i386-pc +- os=-msdos +- ;; +- ms1-*) +- basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` +- ;; +- msys) +- basic_machine=i386-pc +- os=-msys +- ;; +- mvs) +- basic_machine=i370-ibm +- os=-mvs +- ;; +- nacl) +- basic_machine=le32-unknown +- os=-nacl +- ;; +- ncr3000) +- basic_machine=i486-ncr +- os=-sysv4 ++ cpu=m68000 ++ vendor=convergent + ;; +- netbsd386) +- basic_machine=i386-unknown +- os=-netbsd +- ;; +- netwinder) +- basic_machine=armv4l-rebel +- os=-linux +- ;; +- news | news700 | news800 | news900) +- basic_machine=m68k-sony +- os=-newsos +- ;; +- news1000) +- basic_machine=m68030-sony +- os=-newsos ++ *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) ++ cpu=m68k ++ vendor=atari ++ basic_os=mint + ;; + news-3600 | risc-news) +- basic_machine=mips-sony +- os=-newsos +- ;; +- necv70) +- basic_machine=v70-nec +- os=-sysv +- ;; +- next | m*-next ) +- basic_machine=m68k-next +- case $os in +- -nextstep* ) ++ cpu=mips ++ vendor=sony ++ basic_os=newsos ++ ;; ++ next | m*-next) ++ cpu=m68k ++ vendor=next ++ case $basic_os in ++ openstep*) ++ ;; ++ nextstep*) + ;; +- -ns2*) +- os=-nextstep2 ++ ns2*) ++ basic_os=nextstep2 + ;; + *) +- os=-nextstep3 ++ basic_os=nextstep3 + ;; + esac + ;; +- nh3000) +- basic_machine=m68k-harris +- os=-cxux +- ;; +- nh[45]000) +- basic_machine=m88k-harris +- os=-cxux +- ;; +- nindy960) +- basic_machine=i960-intel +- os=-nindy +- ;; +- mon960) +- basic_machine=i960-intel +- os=-mon960 +- ;; +- nonstopux) +- basic_machine=mips-compaq +- os=-nonstopux +- ;; + np1) +- basic_machine=np1-gould +- ;; +- neo-tandem) +- basic_machine=neo-tandem +- ;; +- nse-tandem) +- basic_machine=nse-tandem +- ;; +- nsr-tandem) +- basic_machine=nsr-tandem ++ cpu=np1 ++ vendor=gould + ;; + op50n-* | op60c-*) +- basic_machine=hppa1.1-oki +- os=-proelf +- ;; +- openrisc | openrisc-*) +- basic_machine=or32-unknown +- ;; +- os400) +- basic_machine=powerpc-ibm +- os=-os400 +- ;; +- OSE68000 | ose68000) +- basic_machine=m68000-ericsson +- os=-ose +- ;; +- os68k) +- basic_machine=m68k-none +- os=-os68k ++ cpu=hppa1.1 ++ vendor=oki ++ basic_os=proelf + ;; + pa-hitachi) +- basic_machine=hppa1.1-hitachi +- os=-hiuxwe2 +- ;; +- paragon) +- basic_machine=i860-intel +- os=-osf +- ;; +- parisc) +- basic_machine=hppa-unknown +- os=-linux +- ;; +- parisc-*) +- basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` +- os=-linux ++ cpu=hppa1.1 ++ vendor=hitachi ++ basic_os=hiuxwe2 + ;; + pbd) +- basic_machine=sparc-tti ++ cpu=sparc ++ vendor=tti + ;; + pbb) +- basic_machine=m68k-tti +- ;; +- pc532 | pc532-*) +- basic_machine=ns32k-pc532 +- ;; +- pc98) +- basic_machine=i386-pc +- ;; +- pc98-*) +- basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- pentium | p5 | k5 | k6 | nexgen | viac3) +- basic_machine=i586-pc ++ cpu=m68k ++ vendor=tti + ;; +- pentiumpro | p6 | 6x86 | athlon | athlon_*) +- basic_machine=i686-pc +- ;; +- pentiumii | pentium2 | pentiumiii | pentium3) +- basic_machine=i686-pc +- ;; +- pentium4) +- basic_machine=i786-pc +- ;; +- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) +- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- pentiumpro-* | p6-* | 6x86-* | athlon-*) +- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) +- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- pentium4-*) +- basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ++ pc532) ++ cpu=ns32k ++ vendor=pc532 + ;; + pn) +- basic_machine=pn-gould +- ;; +- power) basic_machine=power-ibm +- ;; +- ppc | ppcbe) basic_machine=powerpc-unknown +- ;; +- ppc-* | ppcbe-*) +- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- ppcle | powerpclittle | ppc-le | powerpc-little) +- basic_machine=powerpcle-unknown +- ;; +- ppcle-* | powerpclittle-*) +- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- ppc64) basic_machine=powerpc64-unknown +- ;; +- ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- ppc64le | powerpc64little | ppc64-le | powerpc64-little) +- basic_machine=powerpc64le-unknown ++ cpu=pn ++ vendor=gould + ;; +- ppc64le-* | powerpc64little-*) +- basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ++ power) ++ cpu=power ++ vendor=ibm + ;; + ps2) +- basic_machine=i386-ibm +- ;; +- pw32) +- basic_machine=i586-unknown +- os=-pw32 +- ;; +- rdos | rdos64) +- basic_machine=x86_64-pc +- os=-rdos +- ;; +- rdos32) +- basic_machine=i386-pc +- os=-rdos +- ;; +- rom68k) +- basic_machine=m68k-rom68k +- os=-coff ++ cpu=i386 ++ vendor=ibm + ;; + rm[46]00) +- basic_machine=mips-siemens ++ cpu=mips ++ vendor=siemens + ;; + rtpc | rtpc-*) +- basic_machine=romp-ibm +- ;; +- s390 | s390-*) +- basic_machine=s390-ibm +- ;; +- s390x | s390x-*) +- basic_machine=s390x-ibm +- ;; +- sa29200) +- basic_machine=a29k-amd +- os=-udi ++ cpu=romp ++ vendor=ibm + ;; +- sb1) +- basic_machine=mipsisa64sb1-unknown ++ sde) ++ cpu=mipsisa32 ++ vendor=sde ++ basic_os=${basic_os:-elf} + ;; +- sb1el) +- basic_machine=mipsisa64sb1el-unknown ++ simso-wrs) ++ cpu=sparclite ++ vendor=wrs ++ basic_os=vxworks + ;; +- sde) +- basic_machine=mipsisa32-sde +- os=-elf ++ tower | tower-32) ++ cpu=m68k ++ vendor=ncr + ;; +- sei) +- basic_machine=mips-sei +- os=-seiux ++ vpp*|vx|vx-*) ++ cpu=f301 ++ vendor=fujitsu + ;; +- sequent) +- basic_machine=i386-sequent ++ w65) ++ cpu=w65 ++ vendor=wdc + ;; +- sh) +- basic_machine=sh-hitachi +- os=-hms ++ w89k-*) ++ cpu=hppa1.1 ++ vendor=winbond ++ basic_os=proelf + ;; +- sh5el) +- basic_machine=sh5le-unknown ++ none) ++ cpu=none ++ vendor=none + ;; +- sh64) +- basic_machine=sh64-unknown ++ leon|leon[3-9]) ++ cpu=sparc ++ vendor=$basic_machine + ;; +- sparclite-wrs | simso-wrs) +- basic_machine=sparclite-wrs +- os=-vxworks ++ leon-*|leon[3-9]-*) ++ cpu=sparc ++ vendor=`echo "$basic_machine" | sed 's/-.*//'` + ;; +- sps7) +- basic_machine=m68k-bull +- os=-sysv2 ++ ++ *-*) ++ # shellcheck disable=SC2162 ++ saved_IFS=$IFS ++ IFS="-" read cpu vendor <&2 +- exit 1 ++ # Recognize the canonical CPU types that are allowed with any ++ # company name. ++ case $cpu in ++ 1750a | 580 \ ++ | a29k \ ++ | aarch64 | aarch64_be | aarch64c | arm64ec \ ++ | abacus \ ++ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ ++ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ ++ | alphapca5[67] | alpha64pca5[67] \ ++ | am33_2.0 \ ++ | amdgcn \ ++ | arc | arceb | arc32 | arc64 \ ++ | arm | arm[lb]e | arme[lb] | armv* \ ++ | avr | avr32 \ ++ | asmjs \ ++ | ba \ ++ | be32 | be64 \ ++ | bfin | bpf | bs2000 \ ++ | c[123]* | c30 | [cjt]90 | c4x \ ++ | c8051 | clipper | craynv | csky | cydra \ ++ | d10v | d30v | dlx | dsp16xx \ ++ | e2k | elxsi | epiphany \ ++ | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ ++ | javascript \ ++ | h8300 | h8500 \ ++ | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ ++ | hexagon \ ++ | i370 | i*86 | i860 | i960 | ia16 | ia64 \ ++ | ip2k | iq2000 \ ++ | k1om \ ++ | kvx \ ++ | le32 | le64 \ ++ | lm32 \ ++ | loongarch32 | loongarch64 \ ++ | m32c | m32r | m32rle \ ++ | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ ++ | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ ++ | m88110 | m88k | maxq | mb | mcore | mep | metag \ ++ | microblaze | microblazeel \ ++ | mips* \ ++ | mmix \ ++ | mn10200 | mn10300 \ ++ | moxie \ ++ | mt \ ++ | msp430 \ ++ | nanomips* \ ++ | nds32 | nds32le | nds32be \ ++ | nfp \ ++ | nios | nios2 | nios2eb | nios2el \ ++ | none | np1 | ns16k | ns32k | nvptx \ ++ | open8 \ ++ | or1k* \ ++ | or32 \ ++ | orion \ ++ | picochip \ ++ | pdp10 | pdp11 | pj | pjl | pn | power \ ++ | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ ++ | pru \ ++ | pyramid \ ++ | riscv | riscv32 | riscv32be | riscv64 | riscv64be \ ++ | rl78 | romp | rs6000 | rx \ ++ | s390 | s390x \ ++ | score \ ++ | sh | shl \ ++ | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ ++ | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ ++ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ ++ | sparclite \ ++ | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ ++ | spu \ ++ | tahoe \ ++ | thumbv7* \ ++ | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ ++ | tron \ ++ | ubicom32 \ ++ | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ ++ | vax \ ++ | vc4 \ ++ | visium \ ++ | w65 \ ++ | wasm32 | wasm64 \ ++ | we32k \ ++ | x86 | x86_64 | xc16x | xgate | xps100 \ ++ | xstormy16 | xtensa* \ ++ | ymp \ ++ | z8k | z80) ++ ;; ++ ++ *) ++ echo "Invalid configuration '$1': machine '$cpu-$vendor' not recognized" 1>&2 ++ exit 1 ++ ;; ++ esac + ;; + esac + + # Here we canonicalize certain aliases for manufacturers. +-case $basic_machine in +- *-digital*) +- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ++case $vendor in ++ digital*) ++ vendor=dec + ;; +- *-commodore*) +- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ++ commodore*) ++ vendor=cbm + ;; + *) + ;; +@@ -1321,200 +1287,226 @@ esac + + # Decode manufacturer-specific aliases for certain operating systems. + +-if [ x"$os" != x"" ] ++if test x"$basic_os" != x + then ++ ++# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just ++# set os. ++obj= ++case $basic_os in ++ gnu/linux*) ++ kernel=linux ++ os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` ++ ;; ++ os2-emx) ++ kernel=os2 ++ os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` ++ ;; ++ nto-qnx*) ++ kernel=nto ++ os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` ++ ;; ++ *-*) ++ # shellcheck disable=SC2162 ++ saved_IFS=$IFS ++ IFS="-" read kernel os <&2 +- exit 1 ++ # No normalization, but not necessarily accepted, that comes below. + ;; + esac ++ + else + + # Here we handle the default operating systems that come with various machines. +@@ -1527,261 +1519,452 @@ else + # will signal an error saying that MANUFACTURER isn't an operating + # system, and we'll never get to this point. + +-case $basic_machine in ++kernel= ++obj= ++case $cpu-$vendor in + score-*) +- os=-elf ++ os= ++ obj=elf + ;; + spu-*) +- os=-elf ++ os= ++ obj=elf + ;; + *-acorn) +- os=-riscix1.2 ++ os=riscix1.2 + ;; + arm*-rebel) +- os=-linux ++ kernel=linux ++ os=gnu + ;; + arm*-semi) +- os=-aout ++ os= ++ obj=aout + ;; + c4x-* | tic4x-*) +- os=-coff ++ os= ++ obj=coff ++ ;; ++ c8051-*) ++ os= ++ obj=elf ++ ;; ++ clipper-intergraph) ++ os=clix + ;; + hexagon-*) +- os=-elf ++ os= ++ obj=elf + ;; + tic54x-*) +- os=-coff ++ os= ++ obj=coff + ;; + tic55x-*) +- os=-coff ++ os= ++ obj=coff + ;; + tic6x-*) +- os=-coff ++ os= ++ obj=coff + ;; + # This must come before the *-dec entry. + pdp10-*) +- os=-tops20 ++ os=tops20 + ;; + pdp11-*) +- os=-none ++ os=none + ;; + *-dec | vax-*) +- os=-ultrix4.2 ++ os=ultrix4.2 + ;; + m68*-apollo) +- os=-domain ++ os=domain + ;; + i386-sun) +- os=-sunos4.0.2 ++ os=sunos4.0.2 + ;; + m68000-sun) +- os=-sunos3 ++ os=sunos3 + ;; + m68*-cisco) +- os=-aout ++ os= ++ obj=aout + ;; + mep-*) +- os=-elf ++ os= ++ obj=elf + ;; + mips*-cisco) +- os=-elf +- ;; +- mips*-*) +- os=-elf ++ os= ++ obj=elf + ;; +- or1k-*) +- os=-elf ++ mips*-*|nanomips*-*) ++ os= ++ obj=elf + ;; + or32-*) +- os=-coff ++ os= ++ obj=coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. +- os=-sysv3 ++ os=sysv3 + ;; + sparc-* | *-sun) +- os=-sunos4.1.1 ++ os=sunos4.1.1 + ;; +- *-be) +- os=-beos ++ pru-*) ++ os= ++ obj=elf + ;; +- *-haiku) +- os=-haiku ++ *-be) ++ os=beos + ;; + *-ibm) +- os=-aix ++ os=aix + ;; + *-knuth) +- os=-mmixware ++ os=mmixware + ;; + *-wec) +- os=-proelf ++ os=proelf + ;; + *-winbond) +- os=-proelf ++ os=proelf + ;; + *-oki) +- os=-proelf ++ os=proelf + ;; + *-hp) +- os=-hpux ++ os=hpux + ;; + *-hitachi) +- os=-hiux ++ os=hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) +- os=-sysv ++ os=sysv + ;; + *-cbm) +- os=-amigaos ++ os=amigaos + ;; + *-dg) +- os=-dgux ++ os=dgux + ;; + *-dolphin) +- os=-sysv3 ++ os=sysv3 + ;; + m68k-ccur) +- os=-rtu ++ os=rtu + ;; + m88k-omron*) +- os=-luna ++ os=luna + ;; +- *-next ) +- os=-nextstep ++ *-next) ++ os=nextstep + ;; + *-sequent) +- os=-ptx ++ os=ptx + ;; + *-crds) +- os=-unos ++ os=unos + ;; + *-ns) +- os=-genix ++ os=genix + ;; + i370-*) +- os=-mvs +- ;; +- *-next) +- os=-nextstep3 ++ os=mvs + ;; + *-gould) +- os=-sysv ++ os=sysv + ;; + *-highlevel) +- os=-bsd ++ os=bsd + ;; + *-encore) +- os=-bsd ++ os=bsd + ;; + *-sgi) +- os=-irix ++ os=irix + ;; + *-siemens) +- os=-sysv4 ++ os=sysv4 + ;; + *-masscomp) +- os=-rtu ++ os=rtu + ;; + f30[01]-fujitsu | f700-fujitsu) +- os=-uxpv ++ os=uxpv + ;; + *-rom68k) +- os=-coff ++ os= ++ obj=coff + ;; + *-*bug) +- os=-coff ++ os= ++ obj=coff + ;; + *-apple) +- os=-macos ++ os=macos + ;; + *-atari*) +- os=-mint ++ os=mint ++ ;; ++ *-wrs) ++ os=vxworks + ;; + *) +- os=-none ++ os=none + ;; + esac ++ + fi + ++# Now, validate our (potentially fixed-up) individual pieces (OS, OBJ). ++ ++case $os in ++ # Sometimes we do "kernel-libc", so those need to count as OSes. ++ llvm* | musl* | newlib* | relibc* | uclibc*) ++ ;; ++ # Likewise for "kernel-abi" ++ eabi* | gnueabi*) ++ ;; ++ # VxWorks passes extra cpu info in the 4th filed. ++ simlinux | simwindows | spe) ++ ;; ++ # See `case $cpu-$os` validation below ++ ghcjs) ++ ;; ++ # Now accept the basic system types. ++ # The portable systems comes first. ++ # Each alternative MUST end in a * to match a version number. ++ gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ ++ | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \ ++ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ ++ | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ ++ | hiux* | abug | nacl* | netware* | windows* \ ++ | os9* | macos* | osx* | ios* | tvos* | watchos* \ ++ | mpw* | magic* | mmixware* | mon960* | lnews* \ ++ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ ++ | aos* | aros* | cloudabi* | sortix* | twizzler* \ ++ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ ++ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ ++ | mirbsd* | netbsd* | dicos* | openedition* | ose* \ ++ | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \ ++ | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ ++ | bosx* | nextstep* | cxux* | oabi* \ ++ | ptx* | ecoff* | winnt* | domain* | vsta* \ ++ | udi* | lites* | ieee* | go32* | aux* | hcos* \ ++ | chorusrdb* | cegcc* | glidix* | serenity* \ ++ | cygwin* | msys* | moss* | proelf* | rtems* \ ++ | midipix* | mingw32* | mingw64* | mint* \ ++ | uxpv* | beos* | mpeix* | udk* | moxiebox* \ ++ | interix* | uwin* | mks* | rhapsody* | darwin* \ ++ | openstep* | oskit* | conix* | pw32* | nonstopux* \ ++ | storm-chaos* | tops10* | tenex* | tops20* | its* \ ++ | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ ++ | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ ++ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ ++ | skyos* | haiku* | rdos* | toppers* | drops* | es* \ ++ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ ++ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ ++ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ ++ | fiwix* | mlibc* | cos* | mbr* | ironclad* ) ++ ;; ++ # This one is extra strict with allowed versions ++ sco3.2v2 | sco3.2v[4-9]* | sco5v6*) ++ # Don't forget version if it is 3.2v4 or newer. ++ ;; ++ # This refers to builds using the UEFI calling convention ++ # (which depends on the architecture) and PE file format. ++ # Note that this is both a different calling convention and ++ # different file format than that of GNU-EFI ++ # (x86_64-w64-mingw32). ++ uefi) ++ ;; ++ none) ++ ;; ++ kernel* | msvc* ) ++ # Restricted further below ++ ;; ++ '') ++ if test x"$obj" = x ++ then ++ echo "Invalid configuration '$1': Blank OS only allowed with explicit machine code file format" 1>&2 ++ fi ++ ;; ++ *) ++ echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2 ++ exit 1 ++ ;; ++esac ++ ++case $obj in ++ aout* | coff* | elf* | pe*) ++ ;; ++ '') ++ # empty is fine ++ ;; ++ *) ++ echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2 ++ exit 1 ++ ;; ++esac ++ ++# Here we handle the constraint that a (synthetic) cpu and os are ++# valid only in combination with each other and nowhere else. ++case $cpu-$os in ++ # The "javascript-unknown-ghcjs" triple is used by GHC; we ++ # accept it here in order to tolerate that, but reject any ++ # variations. ++ javascript-ghcjs) ++ ;; ++ javascript-* | *-ghcjs) ++ echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2 ++ exit 1 ++ ;; ++esac ++ ++# As a final step for OS-related things, validate the OS-kernel combination ++# (given a valid OS), if there is a kernel. ++case $kernel-$os-$obj in ++ linux-gnu*- | linux-android*- | linux-dietlibc*- | linux-llvm*- \ ++ | linux-mlibc*- | linux-musl*- | linux-newlib*- \ ++ | linux-relibc*- | linux-uclibc*- ) ++ ;; ++ uclinux-uclibc*- ) ++ ;; ++ managarm-mlibc*- | managarm-kernel*- ) ++ ;; ++ windows*-msvc*-) ++ ;; ++ -dietlibc*- | -llvm*- | -mlibc*- | -musl*- | -newlib*- | -relibc*- \ ++ | -uclibc*- ) ++ # These are just libc implementations, not actual OSes, and thus ++ # require a kernel. ++ echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2 ++ exit 1 ++ ;; ++ -kernel*- ) ++ echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2 ++ exit 1 ++ ;; ++ *-kernel*- ) ++ echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2 ++ exit 1 ++ ;; ++ *-msvc*- ) ++ echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2 ++ exit 1 ++ ;; ++ kfreebsd*-gnu*- | kopensolaris*-gnu*-) ++ ;; ++ vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-) ++ ;; ++ nto-qnx*-) ++ ;; ++ os2-emx-) ++ ;; ++ *-eabi*- | *-gnueabi*-) ++ ;; ++ none--*) ++ # None (no kernel, i.e. freestanding / bare metal), ++ # can be paired with an machine code file format ++ ;; ++ -*-) ++ # Blank kernel with real OS is always fine. ++ ;; ++ --*) ++ # Blank kernel and OS with real machine code file format is always fine. ++ ;; ++ *-*-*) ++ echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2 ++ exit 1 ++ ;; ++esac ++ + # Here we handle the case where we know the os, and the CPU type, but not the + # manufacturer. We pick the logical manufacturer. +-vendor=unknown +-case $basic_machine in +- *-unknown) +- case $os in +- -riscix*) ++case $vendor in ++ unknown) ++ case $cpu-$os in ++ *-riscix*) + vendor=acorn + ;; +- -sunos*) ++ *-sunos*) + vendor=sun + ;; +- -cnk*|-aix*) ++ *-cnk* | *-aix*) + vendor=ibm + ;; +- -beos*) ++ *-beos*) + vendor=be + ;; +- -hpux*) ++ *-hpux*) + vendor=hp + ;; +- -mpeix*) ++ *-mpeix*) + vendor=hp + ;; +- -hiux*) ++ *-hiux*) + vendor=hitachi + ;; +- -unos*) ++ *-unos*) + vendor=crds + ;; +- -dgux*) ++ *-dgux*) + vendor=dg + ;; +- -luna*) ++ *-luna*) + vendor=omron + ;; +- -genix*) ++ *-genix*) + vendor=ns + ;; +- -mvs* | -opened*) ++ *-clix*) ++ vendor=intergraph ++ ;; ++ *-mvs* | *-opened*) ++ vendor=ibm ++ ;; ++ *-os400*) + vendor=ibm + ;; +- -os400*) ++ s390-* | s390x-*) + vendor=ibm + ;; +- -ptx*) ++ *-ptx*) + vendor=sequent + ;; +- -tpf*) ++ *-tpf*) + vendor=ibm + ;; +- -vxsim* | -vxworks* | -windiss*) ++ *-vxsim* | *-vxworks* | *-windiss*) + vendor=wrs + ;; +- -aux*) ++ *-aux*) + vendor=apple + ;; +- -hms*) ++ *-hms*) + vendor=hitachi + ;; +- -mpw* | -macos*) ++ *-mpw* | *-macos*) + vendor=apple + ;; +- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) ++ *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) + vendor=atari + ;; +- -vos*) ++ *-vos*) + vendor=stratus + ;; + esac +- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; + esac + +-echo $basic_machine$os ++echo "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}" + exit + + # Local variables: +-# eval: (add-hook 'write-file-hooks 'time-stamp) ++# eval: (add-hook 'before-save-hook 'time-stamp) + # time-stamp-start: "timestamp='" + # time-stamp-format: "%:y-%02m-%02d" + # time-stamp-end: "'" From 813ed588d3a51ff73ccc81c31728597c858c6c89 Mon Sep 17 00:00:00 2001 From: BertBog Date: Wed, 31 Jul 2024 06:16:11 +0200 Subject: [PATCH 0944/1514] Added missing bedtools dependency, increased build number (#49680) --- recipes/pacu_snp/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/pacu_snp/meta.yaml b/recipes/pacu_snp/meta.yaml index a25469c48a3fa..54a5b5864e9ef 100644 --- a/recipes/pacu_snp/meta.yaml +++ b/recipes/pacu_snp/meta.yaml @@ -10,7 +10,7 @@ source: build: noarch: python - number: 0 + number: 1 entry_points: - PACU=pacu.run_pacu:main - PACU_map=pacu.map_to_ref:main @@ -29,6 +29,7 @@ requirements: run: - bcftools >=1.17 - beautifulsoup4 >=4.12.2 + - bedtools >=2.31.0 - biopython >=1.84 - bowtie2 >=2.5.1 - figtree >=1.4.4 From d54e9dc548f2a7e2d10c2e892495a9d45be83d26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Gudy=C5=9B?= Date: Wed, 31 Jul 2024 06:19:02 +0200 Subject: [PATCH 0945/1514] Add clusty (#49554) * Add clusty * fix * fix * fix * LEIDEN added * osx fix * fix * Include Leiden only in Linux package * fix * Attempt to make Leiden work under macOS. * Leiden disabled under macOS. --- recipes/clusty/build.sh | 10 ++++++++++ recipes/clusty/meta.yaml | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 recipes/clusty/build.sh create mode 100644 recipes/clusty/meta.yaml diff --git a/recipes/clusty/build.sh b/recipes/clusty/build.sh new file mode 100644 index 0000000000000..abc2ec7057f35 --- /dev/null +++ b/recipes/clusty/build.sh @@ -0,0 +1,10 @@ +#!/bin/bash +#ln -s ${CC} gcc +#ln -s ${CXX} g++ +#export PATH=$PATH:$(pwd) +uname_S=`uname -s 2>/dev/null || echo not` + +if [ "$uname_S" == "Darwin" ]; then make -j${CPU_COUNT}; else make -j${CPU_COUNT} LEIDEN=true; fi + +install -d "${PREFIX}/bin" +install clusty "${PREFIX}/bin" diff --git a/recipes/clusty/meta.yaml b/recipes/clusty/meta.yaml new file mode 100644 index 0000000000000..851f217e4673d --- /dev/null +++ b/recipes/clusty/meta.yaml @@ -0,0 +1,39 @@ +{% set version = "1.0.0" %} + +package: + name: clusty + version: {{ version }} + +build: + number: 0 + run_exports: + - {{ pin_subpackage('clusty', max_pin='x.x.x') }} + +source: + git_url: https://github.com/refresh-bio/clusty.git + git_rev: v{{ version }} + +requirements: + build: + - make + - {{ compiler('c') }} + - {{ compiler('cxx') }} + - cmake + - flex + - bison + +about: + home: https://github.com/refresh-bio/clusty + summary: "Clusty is a tool for large-scale data clustering." + license: GPL-3 + license_family: GPL + license_file: LICENSE + +test: + commands: + - clusty > /dev/null + +extra: + skip-lints: + - uses_vcs_url + - missing_hash \ No newline at end of file From d13e1c578be41077d24f0872d958c08ecd284272 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 31 Jul 2024 00:34:21 -0400 Subject: [PATCH 0946/1514] Update codoff to 1.1.8 (#49689) --- recipes/codoff/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/codoff/meta.yaml b/recipes/codoff/meta.yaml index 36f3fab25d8a4..ac722f131ce11 100644 --- a/recipes/codoff/meta.yaml +++ b/recipes/codoff/meta.yaml @@ -1,5 +1,5 @@ {% set name = "codoff" %} -{% set version = "1.1.5" %} +{% set version = "1.1.8" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Kalan-Lab/codoff/archive/refs/tags/v{{ version }}.tar.gz - sha256: eb048616dabcae38a2476d7325e689e6499b2d1651c33a91502a1b82131a6bb3 + sha256: 9f32c3f0a72df67a9951add4bcd0ecbe60fd48471321ba952bdb0c2867343cfd build: number: 0 From 0ccf0ed857278ed3c6f4e6dfda9ffc1ccf5e066f Mon Sep 17 00:00:00 2001 From: Marios Nikolaidis Date: Wed, 31 Jul 2024 08:08:42 +0300 Subject: [PATCH 0947/1514] Update meta.yaml: Added missing dependencies (#49593) * Update meta.yaml Added requests and pyhmmer as dependencies * clean up recipe --------- Co-authored-by: mencian --- recipes/dbcan/meta.yaml | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/recipes/dbcan/meta.yaml b/recipes/dbcan/meta.yaml index 4c247128ceb5f..c6e354daf60a3 100644 --- a/recipes/dbcan/meta.yaml +++ b/recipes/dbcan/meta.yaml @@ -6,16 +6,13 @@ package: version: {{ version }} source: - # the sha256 sum is generated by doing - # wget -0- [URL] | shasum -a 256 url: https://github.com/linnabrown/run_dbcan/releases/download/{{ version }}/dbcan-{{ version }}.tar.gz sha256: 12dc906b56c3b1bfea667aa617d46d3f292857fc360730e4fe1d35f5b5557215 - build: - number: 0 - script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv" + number: 1 noarch: python + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" entry_points: - run_dbcan = dbcan.cli.run_dbcan:cli_main - cgc_standard2json = dbcan.cli.cgc_process_json:main @@ -48,6 +45,8 @@ requirements: - matplotlib-base - session-info - blast + - requests + - pyhmmer test: imports: @@ -56,13 +55,13 @@ test: - run_dbcan --help about: - home: https://bcb.unl.edu/dbCAN2/ - dev_url: https://github.com/linnabrown/run_dbcan + home: "https://bcb.unl.edu/dbCAN2" + dev_url: "https://github.com/linnabrown/run_dbcan" license: GPL-3.0-or-later license_family: GPL3 license_file: LICENSE - summary: "Standalone version of dbCAN annotation tool for automated CAZyme annotation" - doc_url: https://dbcan.readthedocs.io/en/latest/ + summary: "Standalone version of dbCAN annotation tool for automated CAZyme annotation." + doc_url: "https://dbcan.readthedocs.io/en/latest" extra: recipe-maintainers: @@ -71,4 +70,4 @@ extra: - doi:10.1093/nar/gkx894 - doi:10.1093/nar/gky418 - doi:10.1093/nar/gkad328 - - biotools:dbcan2 \ No newline at end of file + - biotools:dbcan2 From 0a32d57b6f3fa0dc34a3964c60d99976e5b17226 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 31 Jul 2024 00:09:14 -0500 Subject: [PATCH 0948/1514] Update ucsc-blat to 468 (#49691) --- recipes/ucsc-blat/meta.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/recipes/ucsc-blat/meta.yaml b/recipes/ucsc-blat/meta.yaml index ec96d9d1c1285..089b3c02933a3 100644 --- a/recipes/ucsc-blat/meta.yaml +++ b/recipes/ucsc-blat/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-blat" %} {% set program = "blat" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "468" %} +{% set sha256 = "f57b49be7e4eeb0719ac9414ca8878f93916fc3eb8dd408c8f7e076a999d1ca8" %} package: name: {{ package }} @@ -14,7 +14,7 @@ source: - include.patch build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('ucsc-blat', max_pin=None) }} @@ -42,9 +42,9 @@ test: about: home: "https://hgdownload.cse.ucsc.edu/admin/exe/" license: "Varies; see https://genome.ucsc.edu/license" - summary: "Standalone BLAT v. 37x1 fast sequence search command line tool" + summary: "Standalone BLAT v. 39x1 fast sequence search command line tool" dev_url: "https://github.com/ucscGenomeBrowser/kent" - doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/v{{ version }}_base/README" extra: additional-platforms: From ecc0e875de2469d8629cc3ea07e1887a70c1f829 Mon Sep 17 00:00:00 2001 From: Mateus Bernabe Fiamenghi <35854519+Matt-BF@users.noreply.github.com> Date: Tue, 30 Jul 2024 22:50:34 -0700 Subject: [PATCH 0949/1514] Add bigslice (#49059) * add bigslice * Add noarch and run_exports * fix python version (removes noarch) * readd noarch, remove skip * add psutil due to pyhmmer * fix psutil * Fix tests * add pip to test requirements * clean up recipe --------- Co-authored-by: mencian --- recipes/bigslice/meta.yaml | 51 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 recipes/bigslice/meta.yaml diff --git a/recipes/bigslice/meta.yaml b/recipes/bigslice/meta.yaml new file mode 100644 index 0000000000000..c47fadef55aad --- /dev/null +++ b/recipes/bigslice/meta.yaml @@ -0,0 +1,51 @@ +{% set name = "bigslice" %} +{% set version = "2.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/bigslice-{{ version }}.tar.gz + sha256: cb4cafca05883827b00ff864e035d0cb34c2c7905a7722c6a255c2efb9797417 + +build: + number: 0 + noarch: python + run_exports: + - {{ pin_subpackage('bigslice', max_pin="x") }} + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + +requirements: + host: + - python >=3.7 + - pip + run: + - python >=3.7 + - pyhmmer + - biopython >=1.73,<=1.83 + - numpy + - pandas + - psutil <=5.8 + - scikit-learn + - tqdm + - pyarrow + +test: + commands: + - "bigslice --version ." + +about: + home: "https://github.com/satriaphd/bigslice" + summary: "A highly scalable, user-interactive tool for the large scale analysis of Biosynthetic Gene Clusters data." + license: "AGPL-3.0-or-later" + license_family: AGPL + license_file: LICENSE.txt + dev_url: "https://github.com/satriaphd/bigslice" + doc_url: "https://github.com/medema-group/bigslice/blob/v{{ version }}/README.md" + +extra: + recipe-maintainers: + - Matt-BF + identifiers: + - doi:10.1093/gigascience/giaa154 From 7671ae8d83f607b7af2433561d85f181a9195606 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 31 Jul 2024 01:03:07 -0500 Subject: [PATCH 0950/1514] pyrodigal: add arm64 build (#49693) --- recipes/pyrodigal/meta.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/recipes/pyrodigal/meta.yaml b/recipes/pyrodigal/meta.yaml index f314da8744a62..00f628aa03c5c 100644 --- a/recipes/pyrodigal/meta.yaml +++ b/recipes/pyrodigal/meta.yaml @@ -10,8 +10,7 @@ source: sha256: 20af59a6d968c88910b99d5f647bb7dd22d49e440ead95fe715cdd2c49f36e9f build: - number: 0 - skip: True # [py < 36] + number: 1 script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir --use-pep517 -vvv" entry_points: - pyrodigal = pyrodigal.cli:main @@ -37,13 +36,13 @@ test: - python -m unittest -vv {{ name }}.tests about: - home: https://github.com/althonos/pyrodigal - license: GPL-3.0-or-later + home: "https://github.com/althonos/pyrodigal" + license: "GPL-3.0-or-later" license_family: GPL3 license_file: COPYING - summary: Python bindings to Prodigal, an ORF finder for microbial sequences. - doc_url: https://pyrodigal.readthedocs.org/ - dev_url: https://github.com/althonos/pyrodigal + summary: "Python bindings to Prodigal, an ORF finder for microbial sequences." + doc_url: "https://pyrodigal.readthedocs.org" + dev_url: "https://github.com/althonos/pyrodigal" extra: recipe-maintainers: @@ -52,3 +51,4 @@ extra: - doi:10.21105/joss.04296 # JOSS paper additional-platforms: - linux-aarch64 + - osx-arm64 From 9e9ea559809607f151cf2f9aaef7cbda118f4e24 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 31 Jul 2024 01:09:45 -0500 Subject: [PATCH 0951/1514] pyhmmer: add arm64 build (#49692) --- recipes/pyhmmer/meta.yaml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/recipes/pyhmmer/meta.yaml b/recipes/pyhmmer/meta.yaml index 9d1d0fd182385..3966832072c6c 100644 --- a/recipes/pyhmmer/meta.yaml +++ b/recipes/pyhmmer/meta.yaml @@ -10,7 +10,7 @@ source: sha256: eb50bdfdf67a3b1fecfe877d7ca6d9bade9a9f3dea3ad60c959453bbb235573d build: - number: 0 + number: 1 skip: True # [py2k or win] script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir --use-pep517 -vvv" run_exports: @@ -23,7 +23,6 @@ requirements: - python - pip - cython - - psutil >=5.8 run: - python - psutil >=5.8 @@ -37,18 +36,20 @@ test: - python -m unittest -vv {{ name }}.tests about: - home: https://github.com/althonos/pyhmmer + home: "https://github.com/althonos/pyhmmer" license: MIT license_family: MIT license_file: COPYING - summary: Cython bindings and Python interface to HMMER3. - doc_url: https://pyhmmer.readthedocs.io - dev_url: https://github.com/althonos/pyhmmer + summary: "Cython bindings and Python interface to HMMER3." + doc_url: "https://pyhmmer.readthedocs.io" + dev_url: "https://github.com/althonos/pyhmmer" extra: recipe-maintainers: - althonos identifiers: - - DOI:10.1093/bioinformatics/btad214 + - doi:10.1093/bioinformatics/btad214 + - biotools:pyhmmer additional-platforms: - linux-aarch64 + - osx-arm64 From e803c2fed78f00719c1807e26bf9086e1d2c45a2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 31 Jul 2024 02:16:43 -0400 Subject: [PATCH 0952/1514] Update fibertools-rs to 0.5.3 (#49690) * Update fibertools-rs to 0.5.2 * Update meta.yaml * Update fibertools-rs to 0.5.3 * Update meta.yaml --------- Co-authored-by: Mitchell Robert Vollger --- recipes/fibertools-rs/meta.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/recipes/fibertools-rs/meta.yaml b/recipes/fibertools-rs/meta.yaml index 160e43029b101..5166a33b6115a 100644 --- a/recipes/fibertools-rs/meta.yaml +++ b/recipes/fibertools-rs/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "0.4.2" %} +{% set version = "0.5.3" %} {% set name = "fibertools-rs" %} -{% set build_number = "1" %} +{% set build_number = "0" %} package: name: {{ name }} @@ -9,7 +9,7 @@ package: source: url: https://github.com/fiberseq/fibertools-rs/archive/v{{ version }}.tar.gz - sha256: 8d73b8160d93731435afbccad3f8f8ea33c291383783303e2f88a98815cc3425 + sha256: 62a38ab16a199d9d03a79f7ccf3543d10127635baa7898edc004e636383fadad build: @@ -57,4 +57,7 @@ about: extra: recipe-maintainers: - mrvollger + additional-platforms: + - osx-arm64 + # - linux-aarch64 # Dependency issue, see https://github.com/bioconda/bioconda-recipes/pull/48868 From 059a9170ec8b61fccc49962466e0f1890b7a8b3d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 31 Jul 2024 03:56:43 -0400 Subject: [PATCH 0953/1514] Update gempipe to 1.33.3 (#49694) --- recipes/gempipe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gempipe/meta.yaml b/recipes/gempipe/meta.yaml index c164ed6cea692..1c4e6675d3d80 100755 --- a/recipes/gempipe/meta.yaml +++ b/recipes/gempipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.33.2" %} +{% set version = "1.33.3" %} package: name: "gempipe" @@ -7,7 +7,7 @@ package: source: url: https://github.com/lazzarigioele/gempipe/archive/v{{ version }}.tar.gz - sha256: 7486a7de14e975be052072abd1817a2a4bf54b0f585b5b05898f4d315d1bb7b4 + sha256: 0d6770d064cc645147cd9c9f226696c106afbd5b9cf1c5989f1c85f31f8cb44e build: From 18257d7d7ce5c4a56452d5bcd8c6ba25c21c3547 Mon Sep 17 00:00:00 2001 From: Eric Kutschera Date: Wed, 31 Jul 2024 04:40:15 -0400 Subject: [PATCH 0954/1514] Update espresso to v1.5.0 (#49648) * Update espresso to v1.5.0 * Skip OSX build The build script assumes .so file names and gets this error: cp: ./parasail/build/libparasail.so: No such file or directory It looks like libparasail.dylib is created instead. Skip OSX until the script is updated --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/espresso/build.sh | 7 +++++++ recipes/espresso/meta.yaml | 13 +++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/recipes/espresso/build.sh b/recipes/espresso/build.sh index 9a4cfdcc48686..ab1ff68b92884 100644 --- a/recipes/espresso/build.sh +++ b/recipes/espresso/build.sh @@ -1,8 +1,15 @@ #!/bin/bash +./src/Parasail/build + mkdir -p $PREFIX/bin cp src/ESPRESSO_C.pl $PREFIX/bin/ cp src/ESPRESSO_Q.pl $PREFIX/bin/ cp src/ESPRESSO_Q_Thread.pm $PREFIX/bin/ cp src/ESPRESSO_S.pl $PREFIX/bin/ cp src/ESPRESSO_Version.pm $PREFIX/bin/ +cp src/Parasail.pm $PREFIX/bin/ +cp src/Parasail.so $PREFIX/bin/ + +mkdir -p $PREFIX/lib +cp src/libparasail.so $PREFIX/lib/ diff --git a/recipes/espresso/meta.yaml b/recipes/espresso/meta.yaml index 6c4740057bb4e..d2666bf00cc5b 100644 --- a/recipes/espresso/meta.yaml +++ b/recipes/espresso/meta.yaml @@ -9,12 +9,20 @@ source: url: https://github.com/Xinglab/espresso/releases/download/v{{ version }}/espresso_v_{{ version|replace(".", "_") }}.tar.gz build: - noarch: generic - number: 0 + number: 1 + skip: True # [osx] run_exports: - {{ pin_subpackage('espresso', max_pin="x") }} requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + - cmake + - make + host: + - perl >=5.8 + - zlib run: - blast >=2.8.1 - hmmer >=3.3.1 @@ -27,6 +35,7 @@ test: - perl $PREFIX/bin/ESPRESSO_S.pl --help > /dev/null - perl $PREFIX/bin/ESPRESSO_C.pl --help > /dev/null - perl $PREFIX/bin/ESPRESSO_Q.pl --help > /dev/null + - perl -I$PREFIX/bin -e 'use Parasail;' > /dev/null about: home: https://github.com/Xinglab/espresso From 3caf2f7cecf81ed47e84533f72d81b98aa7d556c Mon Sep 17 00:00:00 2001 From: Sebastian Gregoricchio <52447016+sebastian-gregoricchio@users.noreply.github.com> Date: Wed, 31 Jul 2024 10:41:33 +0200 Subject: [PATCH 0955/1514] Add recipe for snakeatac_env (#49615) * Add recipe for snakeatac_env * Update meta.yaml * Rename meta.yaml to meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml Remove channel predefinition * Update meta.yaml Update license and license_file --- recipes/snakeatac_env/meta.yaml | 93 +++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 recipes/snakeatac_env/meta.yaml diff --git a/recipes/snakeatac_env/meta.yaml b/recipes/snakeatac_env/meta.yaml new file mode 100644 index 0000000000000..9727e6f066356 --- /dev/null +++ b/recipes/snakeatac_env/meta.yaml @@ -0,0 +1,93 @@ +{% set version = "0.1.1" %} +{% set sha256 = "7d9c753aceadd0cdd2132f510375e191f1bd9de92e29e43d710433ca770e1f03" %} + +package: + name: snakeatac_env + version: {{ version }} + +source: + - url: https://github.com/sebastian-gregoricchio/snakeATAC/archive/refs/tags/v{{ version }}.tar.gz + sha256: {{ sha256 }} +build: + noarch: python + number: 0 + run_exports: + - {{ pin_subpackage('snakeatac_env', max_pin="x.x") }} + +requirements: + host: + - python + - pip + - numpy >=1.22 + - mpich + + run: + - bcftools + - bedtools + - bioconductor-copywriter + - bioconductor-shortread + - bioinfokit + - bwa-mem2 + - bzip2 + - cutadapt + - deeptools >=3.5.2 + - fastqc + - gatk4 + - macs3 + - matplotlib-base + - multiqc >=1.23 + - pdfcombine + - pip + - py-bgzip + - py2bit + - pybigwig + - pyfaidx + - pysam + - python + - r-colorspace + - r-data.table + - r-dplyr + - r-generics + - r-ggplot2 + - r-ggtext + - r-plyr + - r-rcolorbrewer + - r-reshape2 + - r-scales + - r-snow + - r-stringr + - r-viridis + - samtools + - scipy + - seaborn + - snakemake >=7.24.0 + - snpsift + - subread + - tobias + - ucsc-bedgraphtobigwig + - biopython + - docutils + - fastcluster + - logomaker + - numpydoc + - pandas + - pybedtools + + +test: + commands: + - deeptools --help + - samtools --help + + +about: + home: https://github.com/sebastian-gregoricchio/snakeATAC + license_file: LICENSE + license: GPL-3.0-or-later + summary: snakemake based ATACseq pipeline + doc_url: https://github.com/sebastian-gregoricchio/snakeATAC/wiki + + +extra: + recipe-maintainers: + - sebastian-gregoricchio From d2778e7cd67e744209a94cf452fad180122a32ff Mon Sep 17 00:00:00 2001 From: Thom Griffioen Date: Wed, 31 Jul 2024 11:13:26 +0200 Subject: [PATCH 0956/1514] Fix perl-json dependencies (#49695) * Unpin perl-json-xs * Set `license` to an SDPX-compatible format --- recipes/perl-json/meta.yaml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/recipes/perl-json/meta.yaml b/recipes/perl-json/meta.yaml index e6a372b79ac77..ac61b30a6bcdd 100644 --- a/recipes/perl-json/meta.yaml +++ b/recipes/perl-json/meta.yaml @@ -1,5 +1,6 @@ {% set name = "perl-json" %} {% set version = "4.10" %} +{% set sha256 = "df8b5143d9a7de99c47b55f1a170bd1f69f711935c186a6dc0ab56dd05758e35" %} package: name: {{ name }} @@ -7,21 +8,23 @@ package: source: url: https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI/JSON-{{ version }}.tar.gz - sha256: df8b5143d9a7de99c47b55f1a170bd1f69f711935c186a6dc0ab56dd05758e35 + sha256: {{ sha256 }} build: noarch: generic - number: 0 + number: 1 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} requirements: build: - make host: - perl - - perl-json-xs <3 + - perl-json-xs run: - perl - - perl-json-xs <3 + - perl-json-xs test: # Perl 'use' tests @@ -29,6 +32,7 @@ test: - JSON about: - home: http://metacpan.org/pod/JSON - license: perl_5 + home: https://metacpan.org/pod/JSON + dev_url: https://github.com/makamaka/JSON + license: GPL-1.0-or-later OR Artistic-1.0-Perl summary: 'JSON (JavaScript Object Notation) encoder/decoder' From 985dd95e41d4f716a6c70958b55a4a9540f3073f Mon Sep 17 00:00:00 2001 From: Mariia Zelenskaia <102167492+mariia-zelenskaia@users.noreply.github.com> Date: Wed, 31 Jul 2024 12:58:12 +0200 Subject: [PATCH 0957/1514] TransAnnot: add linux-aarch64 support (#49406) * Update TransAnnot version after a new release * transannot: Pass arch specific build options Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Grigorov --- recipes/transannot/build.sh | 13 ++++++++++++- recipes/transannot/meta.yaml | 3 ++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/recipes/transannot/build.sh b/recipes/transannot/build.sh index c01a11fd88807..ae429591a47eb 100644 --- a/recipes/transannot/build.sh +++ b/recipes/transannot/build.sh @@ -1,7 +1,18 @@ #!/bin/bash -e +set -xe + +case $(uname -m) in + aarch64) + ARCH_OPTS="-DHAVE_ARM8=1" + ;; + *) + ARCH_OPTS="-DHAVE_SSE4_1=1" + ;; +esac + mkdir build cd build -cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DHAVE_TESTS=0 -DHAVE_MPI=0 -DHAVE_SSE4_1=1 -DVERSION_OVERRIDE="${PKG_VERSION}" .. +cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DHAVE_TESTS=0 -DHAVE_MPI=0 "${ARCH_OPTS}" -DVERSION_OVERRIDE="${PKG_VERSION}" .. make -j${CPU_COUNT} ${VERBOSE_CM} make install diff --git a/recipes/transannot/meta.yaml b/recipes/transannot/meta.yaml index 12721ce0697f9..068bb67a93dbe 100644 --- a/recipes/transannot/meta.yaml +++ b/recipes/transannot/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version|replace("-", ".") }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('transannot', max_pin="x") }} @@ -51,4 +51,5 @@ extra: recipe-maintainers: - mariia-zelenskaia additional-platforms: + - linux-aarch64 - osx-arm64 From cf45a59d686200b0371a5737fe6d32f947b0ddfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20H=2E=20Franceschini-Santos?= Date: Wed, 31 Jul 2024 13:49:47 +0200 Subject: [PATCH 0958/1514] Update PARM to v0.0.6 (#49569) * Update meta.yaml * Update meta.yaml * update parm * Update meta.yaml * replace torch-cuda with cuda-toolkit * Update meta.yaml * Update meta.yaml * Remove channels from recipe * Update meta.yaml --------- Co-authored-by: vhfsantos --- recipes/parm/meta.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/recipes/parm/meta.yaml b/recipes/parm/meta.yaml index cc2b6ed42e026..43aa89fff9051 100644 --- a/recipes/parm/meta.yaml +++ b/recipes/parm/meta.yaml @@ -10,7 +10,7 @@ source: sha256: {{ sha256 }} build: noarch: python - number: 0 + number: 2 script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed --no-cache-dir -vvv" run_exports: - {{ pin_subpackage('parm', max_pin="x.x") }} @@ -19,9 +19,10 @@ requirements: host: - python - pip + - setuptools run: - - python >=3.10.8 + - python - pytorch - biopython - numpy >=1.26.0 @@ -37,7 +38,7 @@ requirements: test: commands: - - parm --help + - parm train --help about: home: https://github.com/vansteensellab/PARM From 0b49d7ab33999cd5378cc9855be5a7b374db8861 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 31 Jul 2024 08:32:12 -0400 Subject: [PATCH 0959/1514] Update perl-datetime-locale to 1.43 (#44098) * Update perl-datetime-locale to 1.40 * Update perl-datetime-locale to 1.41 * Update perl-datetime-locale to 1.42 * Update perl-datetime-locale to 1.43 * Add run_exports Signed-off-by: Martin Tzvetanov Grigorov * Fix the pin_subpackage value --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Grigorov --- recipes/perl-datetime-locale/meta.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/recipes/perl-datetime-locale/meta.yaml b/recipes/perl-datetime-locale/meta.yaml index 081669f5ecf71..471c43e093dce 100644 --- a/recipes/perl-datetime-locale/meta.yaml +++ b/recipes/perl-datetime-locale/meta.yaml @@ -1,17 +1,20 @@ {% set name = "perl-datetime-locale" %} -{% set version = "1.39" %} -{% set sha256 = "10c145a6c7daf7118864e97482b4ae9f94f93b9414212eee8aa30b16a8135100" %} +{% set version = "1.43" %} +{% set sha256 = "6c859c17cf274749dfc2c6aaf6bf4b492b605fabdddd23712efbbd5caf601de1" %} package: name: {{ name }} version: {{ version }} source: - url: https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/DateTime-Locale-1.39.tar.gz + url: https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/DateTime-Locale-1.43.tar.gz sha256: {{ sha256 }} build: number: 0 + run_exports: + - {{ pin_subpackage("perl-datetime-locale", max_pin="x") }} + requirements: build: - make From 1f5cef23510755bf7a1b39cc86d72238607677dc Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 31 Jul 2024 16:21:39 +0300 Subject: [PATCH 0960/1514] oarfish: add aarch64/arm64 builds (#49700) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/oarfish/build.sh | 5 ++--- recipes/oarfish/meta.yaml | 7 ++++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/recipes/oarfish/build.sh b/recipes/oarfish/build.sh index 3c3929c054e07..580d388d2cf18 100644 --- a/recipes/oarfish/build.sh +++ b/recipes/oarfish/build.sh @@ -1,7 +1,6 @@ #!/bin/bash -euo -# Add workaround for SSH-based Git connections from Rust/cargo. See https://github.com/rust-lang/cargo/issues/2078 for details. -# We set CARGO_HOME because we don't pass on HOME to conda-build, thus rendering the default "${HOME}/.cargo" defunct. -export CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_HOME="$(pwd)/.cargo" + +set -xe # build statically linked binary with Rust RUST_BACKTRACE=1 cargo install --verbose --root $PREFIX --path . diff --git a/recipes/oarfish/meta.yaml b/recipes/oarfish/meta.yaml index 566a540757180..3cc1e8a8739a8 100644 --- a/recipes/oarfish/meta.yaml +++ b/recipes/oarfish/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("oarfish", max_pin="x.x") }} @@ -28,3 +28,8 @@ about: license: BSD-3-Clause license_file: LICENSE summary: oarfish is a tool for fast, accurate and versatile transcript quantification from long-read RNA-seq data + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 \ No newline at end of file From 1f92cb479ba837db990c8f16db4eeac074361946 Mon Sep 17 00:00:00 2001 From: Matty Allan <31744230+matthewfallan@users.noreply.github.com> Date: Wed, 31 Jul 2024 12:34:22 -0400 Subject: [PATCH 0961/1514] Update seismic-rna to v0.20.0 (#49686) * Initial commit of recipe for seismic-rna * Add run_exports to meta.yaml build section * Fix the problems causing linting errors * Apply suggestions from code review Co-authored-by: Martin Grigorov * Update meta.yaml Add Conda package brotli-python (equivalent of PyPI package brotli) to runtime dependencies * Update recipe generator; rebuild recipe files * seismic-rna v0.20.0 * bump build numer --------- Co-authored-by: Martin Grigorov Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/seismic-rna/meta.yaml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/recipes/seismic-rna/meta.yaml b/recipes/seismic-rna/meta.yaml index 2a1e20c694de2..408e717537b7e 100644 --- a/recipes/seismic-rna/meta.yaml +++ b/recipes/seismic-rna/meta.yaml @@ -3,6 +3,7 @@ package: name: seismic-rna version: 0.20.0 + about: home: https://github.com/rouskinlab/seismic-rna license: GPL-3.0-only @@ -10,17 +11,21 @@ about: license_file: LICENSE license_url: https://www.gnu.org/licenses/gpl-3.0.html summary: SEISMIC-RNA software by the Rouskin Lab + source: url: https://github.com/rouskinlab/seismic-rna/archive/refs/tags/v0.20.0.tar.gz sha256: 91ea9c7d23a85a0d9d035e41ee0782f892ea7e4f0df5af96317b7302a58c8de4 + build: noarch: python - number: 0 + number: 1 run_exports: - {{ pin_subpackage("seismic-rna", max_pin="x.x") }} + requirements: build: - python >=3.10 + - pip - hatch >=1.12 run: - python >=3.10 @@ -28,18 +33,18 @@ requirements: - fastqc >=0.12.1 - rnastructure >=6.3 - samtools >=1.17 + - matplotlib-base >=3.6 - brotli-python >=1.0 - - brotli >=1.0 - click >=8.1 - cutadapt >=4.4 - fastqsplitter >=1.2 - - matplotlib-base >=3.6 - numpy >=1.23,<1.27 - numba >=0.59 - pandas >=1.5 - plotly >=5.11 - pyyaml >=6.0 - scipy >=1.9 + test: imports: - seismicrna From 654ca4a0b04bb1c2d3beb62260cac1024ec1538b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 31 Jul 2024 13:34:33 -0400 Subject: [PATCH 0962/1514] Update gempipe to 1.33.4 (#49706) --- recipes/gempipe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gempipe/meta.yaml b/recipes/gempipe/meta.yaml index 1c4e6675d3d80..80aaf1acc33f4 100755 --- a/recipes/gempipe/meta.yaml +++ b/recipes/gempipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.33.3" %} +{% set version = "1.33.4" %} package: name: "gempipe" @@ -7,7 +7,7 @@ package: source: url: https://github.com/lazzarigioele/gempipe/archive/v{{ version }}.tar.gz - sha256: 0d6770d064cc645147cd9c9f226696c106afbd5b9cf1c5989f1c85f31f8cb44e + sha256: ff9a7f7ab4faa2ac1ed0e77d3e9051034f6f5a98dea347bebdb978727ccb73ea build: From 579a8f05703f7a680fc2ae94109adfdba6576869 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gr=C3=BCning?= Date: Wed, 31 Jul 2024 20:06:40 +0200 Subject: [PATCH 0963/1514] genomescope2 update (#49709) * genomescope2 update * add run_exports --- recipes/genomescope2/meta.yaml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/recipes/genomescope2/meta.yaml b/recipes/genomescope2/meta.yaml index 7bf3abda345cc..b69e08b29ae95 100644 --- a/recipes/genomescope2/meta.yaml +++ b/recipes/genomescope2/meta.yaml @@ -1,13 +1,18 @@ +{% set version = "2.0.1" %} + package: name: genomescope2 - version: "2.0" + version: {{ version }} source: - git_url: https://github.com/tbenavi1/genomescope2.0.git + url: https://github.com/tbenavi1/genomescope2.0/archive/refs/tags/v{{ version }}.tar.gz + sha256: 55a6dc4006ac3573d011558d5ee49a0f3c85593a5db944a548c0e6f4e5019f75 build: - number: 7 + number: 0 noarch: generic + run_exports: + - {{ pin_subpackage('genomescope2', max_pin="x.x") }} requirements: host: @@ -27,12 +32,9 @@ test: about: home: https://github.com/tbenavi1/genomescope2.0 - license: "Apache License, Version 2.0 (Apache-2.0)" + license: Apache-2.0 summary: "Reference-free profiling of polyploid genomes" extra: - skip-lints: - - uses_vcs_url - - missing_hash container: extended-base: True From 0c9f241470bc65482fbd9f93de961b84f4a9aaff Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 31 Jul 2024 14:07:08 -0400 Subject: [PATCH 0964/1514] Update jbrowse2 to 2.13.1 (#49711) --- recipes/jbrowse2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/jbrowse2/meta.yaml b/recipes/jbrowse2/meta.yaml index c2d22862f7b86..761afe067f7c8 100644 --- a/recipes/jbrowse2/meta.yaml +++ b/recipes/jbrowse2/meta.yaml @@ -1,12 +1,12 @@ # When updating, check the @jbrowse/cli version in build.sh too -{% set version = "2.13.0" %} +{% set version = "2.13.1" %} package: name: jbrowse2 version: {{ version }} source: - sha256: f543642573b53f40be9ca233641af1c9705614f85a7a1e901de989e86a76b1e7 + sha256: 6b2ccd796ae6c0e09e8e02fc4b7173826994b1db81bad5961fde588c6fc6964e url: https://github.com/GMOD/jbrowse-components/releases/download/v{{ version }}/jbrowse-web-v{{ version }}.zip build: From 958a5a88179a9f64765c5574ecc89b177e9ba39b Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 31 Jul 2024 21:07:32 +0300 Subject: [PATCH 0965/1514] pkiss: add linux-aarch64 support (#49701) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/pkiss/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/pkiss/meta.yaml b/recipes/pkiss/meta.yaml index 88ca3d4c41c4a..6e05c89596ce9 100644 --- a/recipes/pkiss/meta.yaml +++ b/recipes/pkiss/meta.yaml @@ -13,7 +13,7 @@ source: url: https://github.com/jlab/fold-grammars/archive/{{ version }}.tar.gz build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('pkiss', max_pin="x") }} @@ -41,6 +41,8 @@ about: summary: 'RNA secondary structure prediction including K-type and kissing hairpin- pseudoknots.' extra: + additional-platforms: + - linux-aarch64 identifiers: - doi:10.1007/978-3-642-15294-8_5 - doi:10.1093/bioinformatics/btu649 From 6c0040ba8fbac0308ca40e19cc4a6da0c2ebc988 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 31 Jul 2024 21:07:52 +0300 Subject: [PATCH 0966/1514] clusty: add aarch64/arm64 builds (#49696) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/clusty/meta.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/clusty/meta.yaml b/recipes/clusty/meta.yaml index 851f217e4673d..07c17e3c10851 100644 --- a/recipes/clusty/meta.yaml +++ b/recipes/clusty/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('clusty', max_pin='x.x.x') }} @@ -34,6 +34,9 @@ test: - clusty > /dev/null extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 skip-lints: - uses_vcs_url - missing_hash \ No newline at end of file From c046390d65a82731b05092f1f4c2334e8c09ed97 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 31 Jul 2024 21:08:15 +0300 Subject: [PATCH 0967/1514] rnashapes: add linux-aarch64 support (#49697) * rnashapes: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Remove osx-arm64 because there is no bellmans-gapc for it --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/rnashapes/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/rnashapes/meta.yaml b/recipes/rnashapes/meta.yaml index 6d3ffafb2be5c..0ba59f74cfb57 100644 --- a/recipes/rnashapes/meta.yaml +++ b/recipes/rnashapes/meta.yaml @@ -14,7 +14,7 @@ source: url: https://github.com/jlab/fold-grammars/archive/{{ fold_grammars_version }}.tar.gz build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('rnashapes', max_pin="x") }} @@ -50,5 +50,7 @@ about: account of properties of the molecule's folding space." extra: + additional-platforms: + - linux-aarch64 identifiers: - doi:10.1093/bioinformatics/btu649 From 061d5ccc79731c7a6bfd240a48eb6357d60ffcb7 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 31 Jul 2024 21:08:34 +0300 Subject: [PATCH 0968/1514] reduce: add aarch64/arm64 builds (#49698) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/reduce/meta.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/reduce/meta.yaml b/recipes/reduce/meta.yaml index d9729ccdc437c..08865f2e26638 100644 --- a/recipes/reduce/meta.yaml +++ b/recipes/reduce/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 62e61cce221fff76b5834031302d91fe703a19945a42e16620d4fb860604daf4 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin="x") }} @@ -44,5 +44,8 @@ about: dev_url: https://github.com/rlabduke/reduce extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - eunos-1128 From 4aa3a094dd414f7dbcfd9dba7530149239042d5d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 31 Jul 2024 14:57:44 -0400 Subject: [PATCH 0969/1514] Update gw to 1.0.1 (#49710) --- recipes/gw/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gw/meta.yaml b/recipes/gw/meta.yaml index d3447048afbb5..919a9ab11e2f2 100644 --- a/recipes/gw/meta.yaml +++ b/recipes/gw/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "1.0.0" %} -{% set sha256 = "80a595adfcc230afcaf170b86252f4451f61b98e670bcb4c443ea72be9070cf1" %} +{% set version = "1.0.1" %} +{% set sha256 = "aacd161bb7131d7874a75b2ed409ee22109be3f87dd062c5590c6d30d1503e68" %} package: From 1228686c08d33c75f49b8e9cb3e1bd964a4292ab Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 31 Jul 2024 16:26:58 -0400 Subject: [PATCH 0970/1514] Update sigprofilermatrixgenerator to 1.2.27 (#49714) --- recipes/sigprofilermatrixgenerator/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sigprofilermatrixgenerator/meta.yaml b/recipes/sigprofilermatrixgenerator/meta.yaml index e608211acf216..feea8811d72e4 100644 --- a/recipes/sigprofilermatrixgenerator/meta.yaml +++ b/recipes/sigprofilermatrixgenerator/meta.yaml @@ -1,5 +1,5 @@ {% set name = "SigProfilerMatrixGenerator" %} -{% set version = "1.2.26" %} +{% set version = "1.2.27" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/SigProfilerMatrixGenerator-{{ version }}.tar.gz - sha256: c405db79fbe5e42447e3ec2ae8b85519cc2ab8e94b23f66f50e8963345b2f797 + sha256: c25d3e4c3de14b7a758da8c5a54e53d591899938e71234b1ea44d66c4eec744b build: entry_points: From e77be95afa8330be6d2f96a3c67cd5042149b1c0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 31 Jul 2024 21:25:53 -0400 Subject: [PATCH 0971/1514] Update sourmash to 4.8.11 (#49713) Co-authored-by: Luiz Irber --- recipes/sourmash/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sourmash/meta.yaml b/recipes/sourmash/meta.yaml index e756d099f72be..a18735e3ccd85 100644 --- a/recipes/sourmash/meta.yaml +++ b/recipes/sourmash/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "4.8.10" %} +{% set version = "4.8.11" %} package: name: sourmash @@ -6,7 +6,7 @@ package: source: url: https://pypi.io/packages/source/s/sourmash/sourmash-{{ version }}.tar.gz - sha256: e945120f932c976e84ca85c978e56db6b7782e33682ab126a1da9bfa0107b7c2 + sha256: 1a06a76df464b92685779aaaa6ed02a577bdd73a4ab32972e8134581034d34bf build: number: 0 From c255cb923fdd97efd7416b3c81cf29dded9c83e4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 31 Jul 2024 23:19:17 -0400 Subject: [PATCH 0972/1514] Update vamos to 2.1.4 (#49717) --- recipes/vamos/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/vamos/meta.yaml b/recipes/vamos/meta.yaml index c8358ec898074..ff0ba66ccc160 100644 --- a/recipes/vamos/meta.yaml +++ b/recipes/vamos/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.1.3" %} +{% set version = "2.1.4" %} {% set name = "vamos" %} package: @@ -7,13 +7,13 @@ package: source: url: https://github.com/ChaissonLab/vamos/archive/refs/tags/vamos-v{{ version }}.tar.gz - sha256: 7925787ae9cbe214b0eb94b494e393f7fc48c318a884ab106470d7034101b14f + sha256: a4eb6d535e03cfa97192c821f5c896796a8953b039dd24ea6645fe537cba8740 patches: - vamos-aarch64.patch # [linux and aarch64] build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage(name, max_pin='x') }} @@ -46,4 +46,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 From eb6254e8c05cdb2ad01b68bf2e47b34a08091279 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 31 Jul 2024 23:19:33 -0400 Subject: [PATCH 0973/1514] Update sphae to 1.4.3 (#49718) --- recipes/sphae/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sphae/meta.yaml b/recipes/sphae/meta.yaml index 79b5f36449510..ffd1cd3558f3d 100644 --- a/recipes/sphae/meta.yaml +++ b/recipes/sphae/meta.yaml @@ -1,5 +1,5 @@ {% set name = "sphae" %} -{% set version = "1.4.2" %} +{% set version = "1.4.3" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://github.com/linsalrob/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz" - sha256: b8a886f8068227dffdce574ab7f68eb7167ed03b1f174a9d40894fa6d0e7db5d + sha256: 30b92bebe5538b52694a73614a932b12f46575ea5c857961815bbb9cec4c5db9 build: number: 0 From 5a3c64aa3dff7b7f732eaff089c6b2d0d7046657 Mon Sep 17 00:00:00 2001 From: Hamdiye Uzuner Date: Thu, 1 Aug 2024 09:45:45 +0200 Subject: [PATCH 0974/1514] Update orthanq dependencies (#49716) * add minimap to as dependency * increment build number --- recipes/orthanq/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/orthanq/meta.yaml b/recipes/orthanq/meta.yaml index ce8c06a76c043..b7eb561444afc 100644 --- a/recipes/orthanq/meta.yaml +++ b/recipes/orthanq/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 skip: True # [osx] run_exports: - {{ pin_subpackage("orthanq", max_pin="x") }} @@ -39,6 +39,7 @@ requirements: - varlociraptor =8.4.7 - samtools =1.19 - vg =1.56 + - minimap2 run: - gsl - libcblas From 2fbbeb44f616ef4f80bddc6312df3196ae5b153c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 03:48:01 -0400 Subject: [PATCH 0975/1514] Update nextstrain-cli to 8.5.1 (#49719) --- recipes/nextstrain-cli/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/nextstrain-cli/meta.yaml b/recipes/nextstrain-cli/meta.yaml index 09d58b61cae64..6d6f19923748b 100644 --- a/recipes/nextstrain-cli/meta.yaml +++ b/recipes/nextstrain-cli/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "8.5.0" %} +{% set version = "8.5.1" %} package: name: nextstrain-cli @@ -6,7 +6,7 @@ package: source: url: https://pypi.io/packages/source/n/nextstrain-cli/nextstrain_cli-{{ version }}.tar.gz - sha256: f5b41b5185560e77f35ce1498ed24dd5ce5561ebd7ca58f434935d8e79f22ac5 + sha256: 5318296512acc4e47fe7d0ffa11b0654ec47ad7822006be3b75864f17b94ea67 build: number: 0 From 5242620252ccceb575d5e2aac49391c2929cb6d6 Mon Sep 17 00:00:00 2001 From: "UENO, M." Date: Thu, 1 Aug 2024 16:58:10 +0900 Subject: [PATCH 0976/1514] Update Reduce v4.14 without libboost-python-devel (#49724) * Update meta.yaml * Update meta.yaml * Revert meta.yaml * Increment build number --- recipes/reduce/meta.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/recipes/reduce/meta.yaml b/recipes/reduce/meta.yaml index 08865f2e26638..f7b252312ff77 100644 --- a/recipes/reduce/meta.yaml +++ b/recipes/reduce/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 62e61cce221fff76b5834031302d91fe703a19945a42e16620d4fb860604daf4 build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage(name, max_pin="x") }} @@ -21,7 +21,6 @@ requirements: - {{ compiler('c') }} - {{ compiler('cxx') }} # [linux] host: - - libboost-python-devel - python run: - python @@ -48,4 +47,4 @@ extra: - linux-aarch64 - osx-arm64 recipe-maintainers: - - eunos-1128 + - eunos-1128 \ No newline at end of file From 5c14f3e63cdb490fb6fb63d86d32325126e43688 Mon Sep 17 00:00:00 2001 From: Stephan Schiffels Date: Thu, 1 Aug 2024 10:02:27 +0200 Subject: [PATCH 0977/1514] Update sequencetools to v1.5.4.0 (#49715) * updated version and hashs * updated executables * added arm64 build * updated version name * updated arch flags --- recipes/sequencetools/meta.yaml | 34 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/recipes/sequencetools/meta.yaml b/recipes/sequencetools/meta.yaml index bc3b6d6b88426..11d801d5246c7 100644 --- a/recipes/sequencetools/meta.yaml +++ b/recipes/sequencetools/meta.yaml @@ -1,28 +1,23 @@ -{% set version = "1.5.3.2" %} +{% set version = "1.5.4.0" %} package: name: sequencetools version: {{ version }} source: - - url: https://github.com/stschiff/sequenceTools/releases/download/v{{ version }}/genoStats-linux # [linux] - md5: 50fd1595be89c375e0c0d86353b68aab # [linux] - - url: https://github.com/stschiff/sequenceTools/releases/download/v{{ version }}/pileupCaller-linux # [linux] - md5: 7e9e44f223f3b23283b2e846ae3eff92 # [linux] - - url: https://github.com/stschiff/sequenceTools/releases/download/v{{ version }}/vcf2eigenstrat-linux # [linux] - md5: 88fe4a59b5a2df97794f67d7a4274e45 # [linux] - - url: https://github.com/stschiff/sequenceTools/releases/download/v{{ version }}/genoStats-macOS # [osx] - md5: d4ad978d5956b02ffac9d91aa7779cf8 # [osx] - - url: https://github.com/stschiff/sequenceTools/releases/download/v{{ version }}/pileupCaller-macOS # [osx] - md5: d1e10117bb7ef10c7f9bd43bd90c86af # [osx] - - url: https://github.com/stschiff/sequenceTools/releases/download/v{{ version }}/vcf2eigenstrat-macOS # [osx] - md5: 015ce6ca8b99405f626665d4e9246ae1 # [osx] - + - url: https://github.com/stschiff/sequenceTools/releases/download/v{{ version }}_more_binaries/pileupCaller-conda-linux # [linux] + md5: 559b74c033df69f179e405e8d65325df # [linux] + - url: https://github.com/stschiff/sequenceTools/releases/download/v{{ version }}_more_binaries/pileupCaller-macOS-X64 # [osx and x86_64] + md5: c99feed2be9f85bdc69da931673eacf0 # [osx and x86_64] + - url: https://github.com/stschiff/sequenceTools/releases/download/v{{ version }}_more_binaries/pileupCaller-macOS-ARM64 # [osx and arm64] + md5: 4f41008d654e683b7860fc0912376d4e # [osx and arm64] + build: number: 0 script: - "mkdir -p $PREFIX/bin" - - "for TOOL in genoStats pileupCaller vcf2eigenstrat; do mv $TOOL-* $PREFIX/bin/$TOOL; chmod u+x $PREFIX/bin/$TOOL; done" + - "mv pileupCaller* $PREFIX/bin/pileupCaller" + - "chmod u+x $PREFIX/bin/pileupCaller" run_exports: - {{ pin_subpackage("sequencetools", max_pin=None) }} @@ -31,20 +26,23 @@ requirements: build: # Precompiled binaries still link against libgcc - {{ compiler('c') }} + host: + - zlib + - gmp run: - zlib - - xz - gmp - samtools test: commands: - pileupCaller --version - - genoStats --version - - vcf2eigenstrat --version about: home: https://github.com/stschiff/sequenceTools license: MIT summary: Tools for population genetics on sequencing data +extra: + additional-platforms: + - osx-arm64 From 0c713361ed8bd05354866d978761d3ce5d84f3cf Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 04:48:40 -0400 Subject: [PATCH 0978/1514] Update smof to 2.22.4 (#49722) * Update smof to 2.22.4 * Add run_exports --------- Co-authored-by: Martin Grigorov --- recipes/smof/meta.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/smof/meta.yaml b/recipes/smof/meta.yaml index d29ff98ce37ba..3db7c7540d71b 100644 --- a/recipes/smof/meta.yaml +++ b/recipes/smof/meta.yaml @@ -1,5 +1,5 @@ {% set name = "smof" %} -{% set version = "2.22.2" %} +{% set version = "2.22.4" %} package: name: "{{ name|lower }}" @@ -7,10 +7,12 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: "04364e72a93a0555fe19ab1ab9e74bac41cd8564b4ed71d62ac7ed6b3e66160e" + sha256: "0f5967ea73fd7031f0a0f0e36c30546d12090a0c35498d79dbf3a6c19a3bd717" build: noarch: python + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} number: 0 entry_points: - smof=smof.ui:main From d78680b259b4fe8f49ba49e7451efcd5fecb3b81 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 06:18:24 -0400 Subject: [PATCH 0979/1514] Update nextflow to 24.04.4 (#49727) --- recipes/nextflow/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/nextflow/meta.yaml b/recipes/nextflow/meta.yaml index 68e2ac3b81319..923a54a387c81 100644 --- a/recipes/nextflow/meta.yaml +++ b/recipes/nextflow/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "24.04.3" %} -{% set sha256 = "e258f6395a38f044eb734cba6790af98b561aa521f63e2701fe95c050986e11c" %} +{% set version = "24.04.4" %} +{% set sha256 = "03bf3ad5018ce2eac7bf7836140475a1fda529d800503aa39565fc6c77a40bfd" %} package: name: nextflow From 53f85c6a9df6c8282eb5ce886adcdad0baec2830 Mon Sep 17 00:00:00 2001 From: Rauf Salamzade Date: Thu, 1 Aug 2024 07:19:22 -0500 Subject: [PATCH 0980/1514] Add lsaBGC (#49720) * create folder/add meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Create build.sh * Update meta.yaml * Update meta.yaml * Update build.sh * Update meta.yaml * Delete recipes/lsabgc/build.sh * Update meta.yaml --- recipes/lsabgc/meta.yaml | 65 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 recipes/lsabgc/meta.yaml diff --git a/recipes/lsabgc/meta.yaml b/recipes/lsabgc/meta.yaml new file mode 100644 index 0000000000000..24f9c2ea43c27 --- /dev/null +++ b/recipes/lsabgc/meta.yaml @@ -0,0 +1,65 @@ +{% set name = "lsabgc" %} +{% set version = "1.0.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/Kalan-Lab/lsaBGC-Pan/archive/refs/tags/v{{ version }}.tar.gz + sha256: 4030f51f1892be49908caf1814838384805eb5d37b7b9bc631f256cfae4d9bde + +build: + number: 0 + noarch: python + script: "{{ PYTHON }} -m pip install . --ignore-installed --no-deps -vv" + run_exports: + - {{ pin_subpackage("lsabgc", max_pin="x") }} + +requirements: + host: + - python + - setuptools + - pip + run: + - python >=3.10 + - r-base + - axel + - zol >=1.4.11 + - orthofinder =2.5.5 + - pyseer >=1.3 + - gecco + - prodigal + - pyrodigal + - biopython + - tar + - pandas + - xlsxwriter >=3.0.3 + - scikit-learn + - numpy + - r-ggplot2 + - r-cowplot + - r-phytools + - r-ape + - r-dplyr + - r-gggenes + - bioconductor-ggtree + - r-data.table + - r-plyr + - r-gridextra + +test: + commands: + - lsaBGC-Pan -h + +about: + home: https://github.com/Kalan-Lab/lsaBGC-Pan + license: BSD-3-Clause license + license_file: LICENSE + license_family: BSD + summary: "lsaBGC-Pan - refined workflow for pan-BGC-omic evolutionary investigations." + dev_url: https://github.com/Kalan-Lab/lsaBGC-Pan + +extra: + recipe-maintainers: + - raufs From 87ada2e7fe896d6051bbaf7507e451f7be9cae71 Mon Sep 17 00:00:00 2001 From: Hamdiye Uzuner Date: Thu, 1 Aug 2024 15:17:55 +0200 Subject: [PATCH 0981/1514] Update orthanq dependencies (#49738) * add bwa to dependencies * increment build number --- recipes/orthanq/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/orthanq/meta.yaml b/recipes/orthanq/meta.yaml index b7eb561444afc..0b9d61c3201e0 100644 --- a/recipes/orthanq/meta.yaml +++ b/recipes/orthanq/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 1 + number: 2 skip: True # [osx] run_exports: - {{ pin_subpackage("orthanq", max_pin="x") }} @@ -40,6 +40,7 @@ requirements: - samtools =1.19 - vg =1.56 - minimap2 + - bwa run: - gsl - libcblas From fe43a823fce4f151cd2146bfbd2174f6645f9868 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 09:18:22 -0400 Subject: [PATCH 0982/1514] Update jvarkit to 2024.08.01 (#49739) --- recipes/jvarkit/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/jvarkit/meta.yaml b/recipes/jvarkit/meta.yaml index 2df572a94b08a..b6f52cdbf9b3d 100644 --- a/recipes/jvarkit/meta.yaml +++ b/recipes/jvarkit/meta.yaml @@ -1,6 +1,6 @@ {% set name = "jvarkit" %} -{% set version = "2024.04.20" %} -{% set sha256 = "e4bb5ad1d8743cccc2a94af2ea6f17e883c3ec5e6674d9dcd3162a84b7de9d45" %} +{% set version = "2024.08.01" %} +{% set sha256 = "5c35258898ef0c65e118e01db663489565989792d949e6a5d93965c9680250cd" %} package: name: {{ name|lower }} From b410740e36f00c5c79887ef6c0e158a365db39ee Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 09:37:42 -0400 Subject: [PATCH 0983/1514] Update methbat to 0.13.1 (#49742) --- recipes/methbat/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/methbat/meta.yaml b/recipes/methbat/meta.yaml index a9c3225d7a792..33388fb2c43a5 100644 --- a/recipes/methbat/meta.yaml +++ b/recipes/methbat/meta.yaml @@ -1,6 +1,6 @@ {% set name = "methbat" %} -{% set version = "0.13.0" %} -{% set sha256 = "3d3fc1ce531cea3c95ce21c9ecac42450766ea42e897767e6982599873ec7806" %} +{% set version = "0.13.1" %} +{% set sha256 = "79e3e48edda49d31601a58252a5e4b5a0d2d35900208df97f16de66712d6ba56" %} package: name: {{ name }} From 7426a1a7d221614421f2b0fabd46b5f7df5e1713 Mon Sep 17 00:00:00 2001 From: John Lees Date: Thu, 1 Aug 2024 14:38:49 +0100 Subject: [PATCH 0984/1514] Add recipe for plasnet (#49729) * Add recipe for plasnet * Change poetry command * Add noarch * python version spec in run * Add poetry as a build deo * Temporarily remove the import test * Back to pip install --- recipes/plasnet/meta.yaml | 45 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 recipes/plasnet/meta.yaml diff --git a/recipes/plasnet/meta.yaml b/recipes/plasnet/meta.yaml new file mode 100644 index 0000000000000..82a185e403c37 --- /dev/null +++ b/recipes/plasnet/meta.yaml @@ -0,0 +1,45 @@ +{% set version = "0.5.1" %} +{% set name = "plasnet" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/leoisl/{{ name|lower }}/archive/v{{ version }}.tar.gz + sha256: ca8d17649d59dbf0b5ce20d8c687a9f3a17804007b0fdb59654156b665149285 + +build: + number: 0 + noarch: generic + script: python -m pip install . --no-deps --ignore-installed -vvv + entry_points: + - plasnet = plasnet.plasnet_main:main + run_exports: + - {{ pin_subpackage("plasnet", max_pin="x") }} + +requirements: + host: + - python >=3.9 + - poetry-core >=1.0.0 + - pip + run: + - python >=3.9 + - networkx + - click + - pandas + +test: + imports: + - plasnet + + commands: + - plasnet --help + +about: + home: https://github.com/leoisl/plasnet + license_file: LICENSE + license: MIT + license_family: MIT + summary: 'Clustering, visualising and exploring plasmid networks' + From d41199c3369aac147af6f401270e13cb22773563 Mon Sep 17 00:00:00 2001 From: Stephen Watts Date: Thu, 1 Aug 2024 23:39:29 +1000 Subject: [PATCH 0985/1514] Update r-ichorcna to 0.5.1 (#49726) * Bump to 0.5.1 * Reset build number * Add run exports * Update deps according to GH repo DESCRIPTION file * Remove unnecessary build.sh commands * Correct sha256 checksum --- recipes/r-ichorcna/build.sh | 18 ++---------- recipes/r-ichorcna/meta.yaml | 53 ++++++++++++++++++------------------ 2 files changed, 29 insertions(+), 42 deletions(-) diff --git a/recipes/r-ichorcna/build.sh b/recipes/r-ichorcna/build.sh index 37756d8b9c8e1..4bc8e1853b492 100644 --- a/recipes/r-ichorcna/build.sh +++ b/recipes/r-ichorcna/build.sh @@ -1,17 +1,3 @@ -$R CMD INSTALL --build . - -outdir=$PREFIX/share/$PKG_NAME-$PKG_VERSION-$PKG_BUILDNUM -mkdir -p $outdir/scripts -mkdir -p $outdir/extdata -mkdir -p $PREFIX/bin - -perl -pi -e 'print "#!/opt/anaconda1anaconda2anaconda3/bin/Rscript\n" if $. == 1' scripts/runIchorCNA.R -perl -pi -e 'print "#!/opt/anaconda1anaconda2anaconda3/bin/Rscript\n" if $. == 1' scripts/createPanelOfNormals.R +#!/bin/bash -cp ./R/*.R $outdir/scripts/ - -chmod a+x $outdir/scripts/*.R -ln -s $outdir/scripts/runIchorCNA.R $PREFIX/bin -ln -s $outdir/scripts/createPanelOfNormals.R $PREFIX/bin - -cp inst/extdata/* $outdir/extdata +$R CMD INSTALL --build . diff --git a/recipes/r-ichorcna/meta.yaml b/recipes/r-ichorcna/meta.yaml index 2b36285104717..b7012aa8c3965 100644 --- a/recipes/r-ichorcna/meta.yaml +++ b/recipes/r-ichorcna/meta.yaml @@ -1,4 +1,4 @@ -{% set version="0.5.0" %} +{% set version="0.5.1" %} {% set name="ichorCNA" %} {% set org="GavinHaLab" %} @@ -9,43 +9,44 @@ package: source: url: https://github.com/{{ org|lower }}/{{ name|lower }}/archive/refs/tags/v{{ version }}.zip - sha256: c046af1978bd38b42b9fc71febfb20ff2657795ab0548ed2c60fe97244f3f207 + sha256: 9c28f86efaee172d80390091edcaf8414ec3ca23c4272300284a4c3fac3ac683 build: - number: 1 + number: 0 noarch: generic rpaths: - lib/R/lib/ - lib/ + run_exports: + - {{ pin_subpackage('r-ichorcna', max_pin="x.x") }} requirements: host: - - r-base - - 'r-foreach >=1.5.0' - - 'r-ggplot2 >=3.3.5' - - 'r-stringr >=1.4.0' - - 'r-domc >=1.3.6' - - perl # for adding in correct path references to scripts + - 'r-base >=4.2' - 'bioconductor-bsgenome.hsapiens.ucsc.hg19 >=1.4.3,<1.5.0' - - 'bioconductor-bsgenome.hsapiens.ucsc.hg38 >=1.4.4,<1.5.0' - - 'bioconductor-genomeinfodb >=1.26.7' - - 'bioconductor-hmmcopy >=1.32.0' - - 'bioconductor-genomicranges >=1.42.0' - - r-optparse - - r-plyr + - 'bioconductor-bsgenome.hsapiens.ucsc.hg38 >=1.4.5,<1.5.0' + - 'bioconductor-genomeinfodb >=1.34.9' + - 'bioconductor-genomicranges >=1.50.2' + - 'bioconductor-hmmcopy >=1.40' + - 'r-data.table >=1.14' + - 'r-domc >=1.3.8' + - 'r-foreach >=1.5.2' + - 'r-ggplot2 >=3.4.3' + - 'r-plyr >=1.8' + - 'r-stringr >=1.5.0' run: - - r-base - - 'r-foreach >=1.5.0' - - 'r-ggplot2 >=3.3.5' - - 'r-stringr >=1.4.0' - - 'r-domc >=1.3.6' + - 'r-base >=4.2' - 'bioconductor-bsgenome.hsapiens.ucsc.hg19 >=1.4.3,<1.5.0' - - 'bioconductor-bsgenome.hsapiens.ucsc.hg38 >=1.4.4,<1.5.0' - - 'bioconductor-genomeinfodb >=1.26.7' - - 'bioconductor-hmmcopy >=1.32.0' - - 'bioconductor-genomicranges >=1.42.0' - - r-optparse - - r-plyr + - 'bioconductor-bsgenome.hsapiens.ucsc.hg38 >=1.4.5,<1.5.0' + - 'bioconductor-genomeinfodb >=1.34.9' + - 'bioconductor-genomicranges >=1.50.2' + - 'bioconductor-hmmcopy >=1.40' + - 'r-data.table >=1.14' + - 'r-domc >=1.3.8' + - 'r-foreach >=1.5.2' + - 'r-ggplot2 >=3.4.3' + - 'r-plyr >=1.8' + - 'r-stringr >=1.5.0' test: commands: From 7cf6dd741bb6bbf2f72a5ba73750c21f7ab13eb5 Mon Sep 17 00:00:00 2001 From: Pablo Riesgo-Ferreiro Date: Thu, 1 Aug 2024 15:39:51 +0200 Subject: [PATCH 0986/1514] Update neofox to 1.2.2 (#49723) * create recipe for pyasyfuse * address comments from review * tentative update of NeoFox recipe * Update meta.yaml * added new hash * increase neofox version * update hash and version * delete an old not used yml file * remove pip-like dependency versions * remove another ~ from the dependencies * Add poetry to meta.yaml --------- Co-authored-by: lkress <35309241+LKress@users.noreply.github.com> --- recipes/neofox/meta.yaml | 59 +++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 34 deletions(-) diff --git a/recipes/neofox/meta.yaml b/recipes/neofox/meta.yaml index 1440752000709..0120691675a02 100644 --- a/recipes/neofox/meta.yaml +++ b/recipes/neofox/meta.yaml @@ -1,5 +1,5 @@ {% set name = "neofox" %} -{% set version = "1.1.0" %} +{% set version = "1.2.2" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: c09b8b3df49b290ee239301626edfd9057c354ab6e8bd344aa1cae2765f4b105 + sha256: 643689ff289bd689c3bf04382a26c89f7f7642ce9389761811a735727b9c7df1 build: number: 0 @@ -22,51 +22,41 @@ build: requirements: host: - - cython + - cython >3 - betterproto >=1.2.5,<1.3.0 - - biopython ==1.76 - - dask[complete] >=2022.2.0,<2023.0.0 - - distributed >=2022.2.0,<2023.0.0 + - biopython >1.80 + - dask[complete] >=2024.2.0,<=2024.6.3 + - distributed >=2024.2.0,<=2024.6.3 - faker >=13.13.0,<13.14.0 - logzero >=1.5.0 - - mock >=4.0.3,<5.0.0 - - numpy >=1.21,<1.22 - - orjson >=3.5.2,<4.0.0 - - pandas >=1.3.5,<1.4 + - mock >=4.0.3,<4.1.0 + - numpy >=1.24,<1.27 + - pandas >=2.1,<2.3 - pip - - pysam - - python >=3.7,<=3.8 + - pysam >0.20 + - python ==3.11 - python-dotenv >=0.12.0,<0.13.0 - - scikit-learn ==0.22.1 - - scipy >=1.7.3,<1.8 + - scipy >=1.10.0 - xmltodict >=0.12.0,<0.13.0 - blast + - poetry ==1.8.2 run: - betterproto >=1.2.5,<1.3.0 - - biopython ==1.76 - - dask[complete] >=2022.2.0,<2023.0.0 - - distributed >=2022.2.0,<2023.0.0 + - biopython >1.80 + - dask[complete] >=2024.0.0,<=2024.6.3 + - distributed >=2024.0.0,<=2024.6.2 - faker >=13.13.0,<13.14.0 - logzero >=1.5.0 - - mock >=4.0.3,<5.0.0 - - numpy >=1.21,<1.22 - - orjson >=3.5.2,<4.0.0 - - pandas >=1.3.5,<1.4 - - pysam - - python >=3.7,<=3.8 + - mock >=4.0.3,<4.1.0 + - numpy >=1.24,<1.27 + - pandas >=2.1,<2.3 + - pysam >0.20 + - python ==3.11 - python-dotenv >=0.12.0,<0.13.0 - - scikit-learn ==0.22.1 - - scipy >=1.7.3,<1.8 + - scipy >=1.10.0 - xmltodict >=0.12.0,<0.13.0 - blast - - r-base - - r-lattice - - r-ggplot2 - - r-caret - - r-peptides - - r-doparallel - - r-gbm - - bioconductor-biostrings + - poetry ==1.8.2 test: imports: @@ -76,11 +66,11 @@ test: - neofox.MHC_predictors.netmhcpan - neofox.annotation_resources - neofox.annotation_resources.uniprot + - neofox.annotator - neofox.expression_imputation - neofox.helpers - neofox.model - neofox.published_features - - neofox.published_features.Tcell_predictor - neofox.published_features.differential_binding - neofox.published_features.dissimilarity_garnish - neofox.published_features.hex @@ -111,6 +101,7 @@ extra: recipe-maintainers: - priesgo - franla23 + - lkress identifiers: - doi:10.1093/bioinformatics/btab344 notes: 'NeoFox has some required and optional third party dependencies that have a non commercial use license. From 2613c1543559c589963c6ccb47c7eefc897980ca Mon Sep 17 00:00:00 2001 From: Milot Mirdita Date: Fri, 2 Aug 2024 01:37:15 +0900 Subject: [PATCH 0987/1514] Add FoldMason (#49744) * Initial FoldMason release * Add biotools identifier --- recipes/foldmason/build.sh | 18 ++++++++++++ recipes/foldmason/meta.yaml | 58 +++++++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 recipes/foldmason/build.sh create mode 100644 recipes/foldmason/meta.yaml diff --git a/recipes/foldmason/build.sh b/recipes/foldmason/build.sh new file mode 100644 index 0000000000000..b06956020200b --- /dev/null +++ b/recipes/foldmason/build.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +ARCH_BUILD="" +case $(uname -m) in + x86_64) ARCH_BUILD="-DHAVE_SSE4_1=1" ;; + arm64|aarch64) ARCH_BUILD="-DHAVE_ARM8=1" ;; +esac + +if [ -z "${ARCH_BUILD}" ]; then + echo "Invalid architecture" + exit 1 +fi + +mkdir build +cd build +cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DHAVE_TESTS=0 -DHAVE_MPI=0 ${ARCH_BUILD} -DVERSION_OVERRIDE="${PKG_VERSION}" .. +make -j${CPU_COUNT} ${VERBOSE_CM} +make install diff --git a/recipes/foldmason/meta.yaml b/recipes/foldmason/meta.yaml new file mode 100644 index 0000000000000..1bcad68e907a3 --- /dev/null +++ b/recipes/foldmason/meta.yaml @@ -0,0 +1,58 @@ +{% set version = "1-763a428" %} +{% set sha256 = "5ecae4918bd2a555e760a3518342cea3fbba8efee17d0de021c68d823c57dc39" %} + +package: + name: foldmason + version: {{ version|replace("-", ".") }} + +build: + number: 0 + run_exports: + - {{ pin_subpackage('foldmason', max_pin="x") }} + +source: + url: https://github.com/steineggerlab/foldmason/archive/{{ version }}.tar.gz + sha256: {{ sha256 }} + +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + - {{ compiler('rust') }} + - cmake + - make + - llvm-openmp # [osx] + - libgomp # [linux] + host: + - perl + - gawk + - zlib + - bzip2 + run: + - aria2 + - wget + - gawk + - zlib + - bzip2 + +test: + commands: + - foldmason > /dev/null + +about: + home: https://github.com/steineggerlab/foldmason + summary: "Multiple Protein Structure Alignment at Scale with FoldMason" + license: GPL-3 + license_family: GPL + license_file: LICENSE.md + +extra: + identifiers: + - biotools:foldmason + recipe-maintainers: + - gamcil + - milot-mirdita + - martin-steinegger + additional-platforms: + - linux-aarch64 + - osx-arm64 From 4be67192a3e665677f5e1ff04aa2544b76cbae7e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 12:55:11 -0400 Subject: [PATCH 0988/1514] Update pbstarphase to 0.13.1 (#49745) --- recipes/pbstarphase/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pbstarphase/meta.yaml b/recipes/pbstarphase/meta.yaml index 4cff85620e07b..7eb2b16bcdfc7 100644 --- a/recipes/pbstarphase/meta.yaml +++ b/recipes/pbstarphase/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pbstarphase" %} -{% set version = "0.13.0" %} -{% set sha256 = "d21c239440bbb90d96048b4d290c951baa2cb3dbc332c6ad7351e696eaba21ed" %} +{% set version = "0.13.1" %} +{% set sha256 = "1808901a0c3c29093733046ec343122905980566423773e64e8df29060ae6721" %} package: name: {{ name }} From 4f9a6094f745742b9338c01d70e631af1def2f69 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 1 Aug 2024 20:39:52 +0300 Subject: [PATCH 0989/1514] ataqv: add aarch64/arm64 builds (#49734) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/ataqv/build.sh | 4 +- recipes/ataqv/build_failure.linux-64.yaml | 105 ---------------------- recipes/ataqv/build_failure.osx-64.yaml | 105 ---------------------- recipes/ataqv/meta.yaml | 11 ++- 4 files changed, 12 insertions(+), 213 deletions(-) delete mode 100644 recipes/ataqv/build_failure.linux-64.yaml delete mode 100644 recipes/ataqv/build_failure.osx-64.yaml diff --git a/recipes/ataqv/build.sh b/recipes/ataqv/build.sh index 609f92584efa8..9bcf0ed453914 100644 --- a/recipes/ataqv/build.sh +++ b/recipes/ataqv/build.sh @@ -1,9 +1,11 @@ #!/bin/bash +set -xe + ## SET APPROPRIATE ENVIRONMENT VARIABLES AND BUILD export LIBRARY_PATH="${PREFIX}/lib" export LD_LIBRARY_PATH="${PREFIX}/lib" -make CPPFLAGS="-I$PREFIX/include" LDFLAGS="-L$PREFIX/lib" +make -j ${CPU_COUNT} CPPFLAGS="-I$PREFIX/include" LDFLAGS="-L$PREFIX/lib" ## MAKE EXECUTABLES EXECUTABLE! chmod a+x ./build/ataqv diff --git a/recipes/ataqv/build_failure.linux-64.yaml b/recipes/ataqv/build_failure.linux-64.yaml deleted file mode 100644 index b60b345fdde29..0000000000000 --- a/recipes/ataqv/build_failure.linux-64.yaml +++ /dev/null @@ -1,105 +0,0 @@ -recipe_sha: 934f4350f8c8aa698bf252326779b98d5992f2e629709c8219626a161e504204 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -category: test failure -log: |2- - - - number of files: 24 - patchelf: section header table out of bounds - WARNING :: patchelf --print-rpath failed for /opt/conda/conda-bld/ataqv_1717788465623/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/bin/ataqv, will proceed with LIEF (was None) - Warning: rpath /opt/conda/conda-bld/ataqv_1717788465623/_build_env/lib is outside prefix /opt/conda/conda-bld/ataqv_1717788465623/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho (removing it) - INFO: sysroot: '/opt/conda/conda-bld/ataqv_1717788465623/_build_env/x86_64-conda-linux-gnu/sysroot/' files: '['usr/share/zoneinfo/zone.tab', 'usr/share/zoneinfo/tzdata.zi', 'usr/share/zoneinfo/right/Zulu', 'usr/share/zoneinfo/right/WET']' - WARNING (ataqv,bin/ataqv): Needed DSO lib/libboost_filesystem.so.1.85.0 found in ['conda-forge/linux-64::libboost==1.85.0=hba137d9_1'] - WARNING (ataqv,bin/ataqv): .. but ['conda-forge/linux-64::libboost==1.85.0=hba137d9_1'] not in reqs/run, (i.e. it is overlinking) (likely) or a missing dependency (less likely) - WARNING (ataqv,bin/ataqv): Needed DSO lib/libboost_iostreams.so.1.85.0 found in ['conda-forge/linux-64::libboost==1.85.0=hba137d9_1'] - WARNING (ataqv,bin/ataqv): .. but ['conda-forge/linux-64::libboost==1.85.0=hba137d9_1'] not in reqs/run, (i.e. it is overlinking) (likely) or a missing dependency (less likely) - WARNING (ataqv,bin/ataqv): Needed DSO lib/libboost_system.so.1.85.0 found in ['conda-forge/linux-64::libboost==1.85.0=hba137d9_1'] - WARNING (ataqv,bin/ataqv): .. but ['conda-forge/linux-64::libboost==1.85.0=hba137d9_1'] not in reqs/run, (i.e. it is overlinking) (likely) or a missing dependency (less likely) - WARNING (ataqv,bin/ataqv): Needed DSO lib/libboost_chrono.so.1.85.0 found in ['conda-forge/linux-64::libboost==1.85.0=hba137d9_1'] - WARNING (ataqv,bin/ataqv): .. but ['conda-forge/linux-64::libboost==1.85.0=hba137d9_1'] not in reqs/run, (i.e. it is overlinking) (likely) or a missing dependency (less likely) - INFO (ataqv,bin/ataqv): Needed DSO lib/libhts.so.3 found in bioconda/linux-64::htslib==1.20=h5efdd21_1 - INFO (ataqv,bin/ataqv): Needed DSO lib/libz.so.1 found in conda-forge/linux-64::libzlib==1.2.13=h4ab18f5_6 - INFO (ataqv,bin/ataqv): Needed DSO lib/libncurses.so.6 found in conda-forge/linux-64::ncurses==6.5=h59595ed_0 - INFO (ataqv,bin/ataqv): Needed DSO lib/libtinfo.so.6 found in conda-forge/linux-64::ncurses==6.5=h59595ed_0 - INFO (ataqv,bin/ataqv): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libpthread.so.0 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 - INFO (ataqv,bin/ataqv): Needed DSO lib/libstdc.so.6 found in conda-forge/linux-64::libstdcxx-ng==13.2.0=hc0a3c3a_7 - INFO (ataqv,bin/ataqv): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libm.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 - INFO (ataqv,bin/ataqv): Needed DSO lib/libgcc_s.so.1 found in conda-forge/linux-64::libgcc-ng==13.2.0=h77fa898_7 - INFO (ataqv,bin/ataqv): Needed DSO x86_64-conda-linux-gnu/sysroot/lib64/libc.so.6 found in CDT/compiler package conda-forge/noarch::sysroot_linux-64==2.12=he073ed8_17 - WARNING (ataqv): run-exports library package conda-forge/linux-64::zlib==1.2.13=h4ab18f5_6 in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) - WARNING (ataqv): dso library package conda-forge/linux-64::coreutils==9.5=hd590300_0 in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) - WARNING (ataqv): interpreter (Python) package conda-forge/linux-64::python==3.8.19=hd12c33a_0_cpython in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to build/ignore_run_exports) - Fixing permissions - Packaged license file/s. - INFO :: Time taken to mark (prefix) - 0 replacements in 0 files was 0.01 seconds - Files containing CONDA_PREFIX - ----------------------------- - bin/ataqv (binary): Patching - TEST START: /opt/conda/conda-bld/linux-64/ataqv-1.3.1-py38h40952c3_3.tar.bz2 - Renaming work directory '/opt/conda/conda-bld/ataqv_1717788465623/work' to '/opt/conda/conda-bld/ataqv_1717788465623/work_moved_ataqv-1.3.1-py38h40952c3_3_linux-64' - shutil.move(work)=/opt/conda/conda-bld/ataqv_1717788465623/work, dest=/opt/conda/conda-bld/ataqv_1717788465623/work_moved_ataqv-1.3.1-py38h40952c3_3_linux-64) - Reloading output folder (local, file:///opt/host-conda-bld): ...working... done - Solving environment (_test_env): ...working... done - - ## Package Plan ## - - environment location: /opt/conda/conda-bld/ataqv_1717788465623/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl - - - The following NEW packages will be INSTALLED: - - _libgcc_mutex: 0.1-conda_forge conda-forge - _openmp_mutex: 4.5-2_gnu conda-forge - ataqv: 1.3.1-py38h40952c3_3 local - boost-cpp: 1.85.0-h44aadfe_1 conda-forge - bzip2: 1.0.8-hd590300_5 conda-forge - c-ares: 1.28.1-hd590300_0 conda-forge - ca-certificates: 2024.6.2-hbcca054_0 conda-forge - coreutils: 9.5-hd590300_0 conda-forge - htslib: 1.20-h5efdd21_1 bioconda - icu: 73.2-h59595ed_0 conda-forge - keyutils: 1.6.1-h166bdaf_0 conda-forge - krb5: 1.21.2-h659d440_0 conda-forge - ld_impl_linux-64: 2.40-hf3520f5_2 conda-forge - libboost: 1.85.0-hba137d9_1 conda-forge - libboost-devel: 1.85.0-h00ab1b0_1 conda-forge - libboost-headers: 1.85.0-ha770c72_1 conda-forge - libcurl: 8.8.0-hca28451_0 conda-forge - libdeflate: 1.20-hd590300_0 conda-forge - libedit: 3.1.20191231-he28a2e2_2 conda-forge - libev: 4.33-hd590300_2 conda-forge - libffi: 3.4.2-h7f98852_5 conda-forge - libgcc-ng: 13.2.0-h77fa898_7 conda-forge - libgomp: 13.2.0-h77fa898_7 conda-forge - libnghttp2: 1.58.0-h47da74e_1 conda-forge - libnsl: 2.0.1-hd590300_0 conda-forge - libsqlite: 3.45.3-h2797004_0 conda-forge - libssh2: 1.11.0-h0841786_0 conda-forge - libstdcxx-ng: 13.2.0-hc0a3c3a_7 conda-forge - libuuid: 2.38.1-h0b41bf4_0 conda-forge - libxcrypt: 4.4.36-hd590300_1 conda-forge - libzlib: 1.3.1-h4ab18f5_1 conda-forge - ncurses: 6.5-h59595ed_0 conda-forge - openssl: 3.3.1-h4ab18f5_0 conda-forge - pip: 24.0-pyhd8ed1ab_0 conda-forge - python: 3.8.19-hd12c33a_0_cpython conda-forge - python_abi: 3.8-4_cp38 conda-forge - readline: 8.2-h8228510_1 conda-forge - setuptools: 70.0.0-pyhd8ed1ab_0 conda-forge - tk: 8.6.13-noxft_h4845f30_101 conda-forge - wheel: 0.43.0-pyhd8ed1ab_1 conda-forge - xz: 5.2.6-h166bdaf_0 conda-forge - zlib: 1.3.1-h4ab18f5_1 conda-forge - zstd: 1.5.6-ha6fb4c9_0 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - export PREFIX=/opt/conda/conda-bld/ataqv_1717788465623/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl - export SRC_DIR=/opt/conda/conda-bld/ataqv_1717788465623/test_tmp - ataqv --version - grep 1.3.1 - WARNING: Tests failed for ataqv-1.3.1-py38h40952c3_3.tar.bz2 - moving package to /opt/conda/conda-bld/broken - TESTS FAILED: ataqv-1.3.1-py38h40952c3_3.tar.bz2 -# Last 100 lines of the build log. diff --git a/recipes/ataqv/build_failure.osx-64.yaml b/recipes/ataqv/build_failure.osx-64.yaml deleted file mode 100644 index ff5345e9a2467..0000000000000 --- a/recipes/ataqv/build_failure.osx-64.yaml +++ /dev/null @@ -1,105 +0,0 @@ -recipe_sha: 934f4350f8c8aa698bf252326779b98d5992f2e629709c8219626a161e504204 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -category: compiler error -log: |2- - make: 4.3-h22f3db7_1 conda-forge - openssl: 3.3.1-h87427d6_0 conda-forge - sigtool: 0.1.3-h88f4db0_0 conda-forge - tapi: 1100.0.11-h9ce4665_0 conda-forge - xz: 5.2.6-h775f41a_0 conda-forge - zstd: 1.5.6-h915ae27_0 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - /opt/mambaforge/envs/bioconda/conda-bld/ataqv_1718297740259/work/src/cpp/Metrics.cpp:998:57: warning: taking the max of a value and unsigned zero is always equal to the other value [-Wmax-unsigned-zero] - query << tss_region.reference << ":" << std::max(tss_region.start - extension * 2, 0ULL) << "-" << (tss_region.end extension * 2); - ^~~~~~~~ ~~~~ - /opt/mambaforge/envs/bioconda/conda-bld/ataqv_1718297740259/work/src/cpp/Metrics.cpp:998:57: note: remove call to max function and unsigned zero argument - query << tss_region.reference << ":" << std::max(tss_region.start - extension * 2, 0ULL) << "-" << (tss_region.end extension * 2); - ^~~~~~~~ ~~~~~~ - 1 warning generated. - dyld[74759]: Library not loaded: @rpath/libtapi.dylib - Referenced from: <7F8D8CA0-6698-329D-8085-2D0F07C40248> /opt/mambaforge/envs/bioconda/pkgs/ld64_osx-64-711-ha20a434_0/bin/x86_64-apple-darwin13.4.0-ld - Reason: tried: '/opt/mambaforge/envs/bioconda/pkgs/ld64_osx-64-711-ha20a434_0/bin/../lib/libtapi.dylib' (no such file), '/opt/mambaforge/envs/bioconda/pkgs/ld64_osx-64-711-ha20a434_0/bin/../lib/libtapi.dylib' (no such file), '/usr/local/lib/libtapi.dylib' (no such file), '/usr/lib/libtapi.dylib' (no such file, not in dyld cache) - clang-16: error: unable to execute command: Abort trap: 6 - clang-16: error: linker command failed due to signal (use -v to see invocation) - make: *** [Makefile:168: build/ataqv] Error 1 - Extracting download - source tree in: /opt/mambaforge/envs/bioconda/conda-bld/ataqv_1718297740259/work - export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/ataqv_1718297740259/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol - export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/ataqv_1718297740259/_build_env - export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/ataqv_1718297740259/work - INFO: activate_clang_osx-64.sh made the following environmental changes: - AR=x86_64-apple-darwin13.4.0-ar - AS=x86_64-apple-darwin13.4.0-as - CC=x86_64-apple-darwin13.4.0-clang - CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ataqv-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms - CLANG=x86_64-apple-darwin13.4.0-clang - Traceback (most recent call last): - CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin - CMAKE_PREFIX_PATH=:$PREFIX - CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 - CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 - CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 - DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ataqv-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - HOST=x86_64-apple-darwin13.4.0 - INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool - LD=x86_64-apple-darwin13.4.0-ld - LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib - LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib - LIBTOOL=x86_64-apple-darwin13.4.0-libtool - LIPO=x86_64-apple-darwin13.4.0-lipo - MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib - NM=x86_64-apple-darwin13.4.0-nm - NMEDIT=x86_64-apple-darwin13.4.0-nmedit - OBJC=x86_64-apple-darwin13.4.0-clang - OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - OTOOL=x86_64-apple-darwin13.4.0-otool - PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff - RANLIB=x86_64-apple-darwin13.4.0-ranlib - File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding - SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk - SEGEDIT=x86_64-apple-darwin13.4.0-segedit - SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table - SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - SIZE=x86_64-apple-darwin13.4.0-size - STRINGS=x86_64-apple-darwin13.4.0-strings - STRIP=x86_64-apple-darwin13.4.0-strip - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 - ac_cv_func_malloc_0_nonnull=yes - ac_cv_func_realloc_0_nonnull=yes - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/ataqv_1718297740259/work/conda_build.sh']' returned non-zero exit status 2. - build_alias=x86_64-apple-darwin13.4.0 - host_alias=x86_64-apple-darwin13.4.0 - INFO: activate_clangxx_osx-64.sh made the following environmental changes: - CLANGXX=x86_64-apple-darwin13.4.0-clang - CXX=x86_64-apple-darwin13.4.0-clang - CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ataqv-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/ataqv-1.3.1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - x86_64-apple-darwin13.4.0-clang -std=c11 -pthread -O3 -g -I$PREFIX/include -o build/ataqv.o -c $SRC_DIR/src/cpp/ataqv.cpp - x86_64-apple-darwin13.4.0-clang -std=c11 -pthread -O3 -g -I$PREFIX/include -o build/Features.o -c $SRC_DIR/src/cpp/Features.cpp - x86_64-apple-darwin13.4.0-clang -std=c11 -pthread -O3 -g -I$PREFIX/include -o build/HTS.o -c $SRC_DIR/src/cpp/HTS.cpp - x86_64-apple-darwin13.4.0-clang -std=c11 -pthread -O3 -g -I$PREFIX/include -o build/IO.o -c $SRC_DIR/src/cpp/IO.cpp - x86_64-apple-darwin13.4.0-clang -std=c11 -pthread -O3 -g -I$PREFIX/include -o build/Metrics.o -c $SRC_DIR/src/cpp/Metrics.cpp - x86_64-apple-darwin13.4.0-clang -std=c11 -pthread -O3 -g -I$PREFIX/include -o build/Peaks.o -c $SRC_DIR/src/cpp/Peaks.cpp - x86_64-apple-darwin13.4.0-clang -std=c11 -pthread -O3 -g -I$PREFIX/include -o build/Utils.o -c $SRC_DIR/src/cpp/Utils.cpp - x86_64-apple-darwin13.4.0-clang -o build/ataqv build/ataqv.o build/Features.o build/HTS.o build/IO.o build/Metrics.o build/Peaks.o build/Utils.o -L$PREFIX/lib -lboost_filesystem -lboost_iostreams -lboost_system -lboost_chrono -lhts -lz -lncurses -lpthread -# Last 100 lines of the build log. diff --git a/recipes/ataqv/meta.yaml b/recipes/ataqv/meta.yaml index 6d2a096b8eb34..58f8c7bb4ecaf 100644 --- a/recipes/ataqv/meta.yaml +++ b/recipes/ataqv/meta.yaml @@ -7,7 +7,9 @@ package: version: {{ version }} build: - number: 3 + number: 4 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} source: url: https://github.com/ParkerLab/ataqv/archive/{{ version }}.tar.gz @@ -41,8 +43,13 @@ test: about: home: https://parkerlab.github.io/ataqv/ - license: GPL3 + license: GPL-3.0-only license_file: LICENSE summary: ataqv is a toolkit for measuring and comparing ATAC-seq results. It was written to help understand how well ATAC-seq assays have worked, and to make it easier to spot differences that might be caused by library prep or sequencing. dev_url: https://github.com/ParkerLab/ataqv doc_url: https://github.com/ParkerLab/ataqv/blob/master/README.rst + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 \ No newline at end of file From ddfc548bf43be2e38bf1490d80d9234fa170d3db Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 1 Aug 2024 20:40:06 +0300 Subject: [PATCH 0990/1514] filtlong: add aarch64/arm64 builds (#49735) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/filtlong/build.sh | 4 +++- recipes/filtlong/meta.yaml | 9 ++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/recipes/filtlong/build.sh b/recipes/filtlong/build.sh index c16833531c8c5..a8e4c057d2c03 100644 --- a/recipes/filtlong/build.sh +++ b/recipes/filtlong/build.sh @@ -1,5 +1,7 @@ #!/bin/bash -make -j CXXFLAGS="${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}" +set -xe + +make -j ${CPU_COUNT} CXXFLAGS="${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}" install -d "${PREFIX}/bin" install bin/filtlong "${PREFIX}/bin/" diff --git a/recipes/filtlong/meta.yaml b/recipes/filtlong/meta.yaml index 2860ded47c62a..d6169fac82ae5 100644 --- a/recipes/filtlong/meta.yaml +++ b/recipes/filtlong/meta.yaml @@ -11,7 +11,9 @@ source: sha256: {{ sha256 }} build: - number: 3 + number: 4 + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} requirements: build: @@ -30,3 +32,8 @@ about: home: https://github.com/rrwick/Filtlong license: GPL-3.0 summary: 'Filtlong is a tool for filtering long reads. It can take a set of long reads and produce a smaller, better subset. It uses both read length (longer is better) and read identity (higher is better) when choosing which reads pass the filter.' + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 \ No newline at end of file From 9b0896673f86cec52d8e0dcdb54a3837089d4bdb Mon Sep 17 00:00:00 2001 From: Guilherme Bonotti Coppini <25513836+Coppini@users.noreply.github.com> Date: Thu, 1 Aug 2024 18:24:39 +0000 Subject: [PATCH 0991/1514] Update bam-readcount to v1.0.1 (#47911) * feat: updates bam-readcount to version v1.0.1 * fix: removed -j2 flag from make as it caused errors in the build * feat: adds sha256 of the tar.gz * fix: removes from blacklist * clean up recipe * edit build.sh * clean up recipe * edit patch * edit patch * edit patch * edit build.sh * clean up recipe * add macos target * edit build.sh * edit build.sh * unfortunately have to skip OSX build --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Co-authored-by: mencian --- build-fail-blacklist | 1 - recipes/bam-readcount/build.sh | 39 +++++++++++++++++++++++++--- recipes/bam-readcount/meta.yaml | 45 +++++++++++++++++++++------------ 3 files changed, 64 insertions(+), 21 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 6ee7994adc790..f9e833ba2f1ce 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -309,7 +309,6 @@ recipes/biolite recipes/pauda recipes/hicbrowser recipes/vqsr_cnn -recipes/bam-readcount recipes/mqc recipes/roprofile recipes/chanjo diff --git a/recipes/bam-readcount/build.sh b/recipes/bam-readcount/build.sh index f08dfb30e8ad1..ea36511e1ccc5 100644 --- a/recipes/bam-readcount/build.sh +++ b/recipes/bam-readcount/build.sh @@ -1,5 +1,36 @@ -#!/bin/bash +#!/bin/bash -euo -cd $PREFIX -cmake $SRC_DIR -make -j 2 +wget https://github.com/boostorg/boost/releases/download/boost-1.85.0/boost-1.85.0-cmake.tar.gz + +mv boost-1.85.0-cmake.tar.gz vendor/boost-1.55-bamrc.tar.gz + +mkdir -p "${PREFIX}/bin" + +# Needed for building utils dependency +export INCLUDES="-I{PREFIX}/include" +export LIBPATH="-L${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -pthread -L${PREFIX}/lib" +export CXXFLAGS="${CXXFLAGS} -O3 -I${PREFIX}/include" + +if [ `uname` == Darwin ]; then + export LDFLAGS="${LDFLAGS} -Wl,-rpath,${PREFIX}/lib -lz -lbz2" + export MACOSX_DEPLOYMENT_TARGET=10.13 + # See https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk for -D_LIBCPP_DISABLE_AVAILABILITY + # export CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" +fi + +mkdir -p build +pushd build +cmake -S .. -B . -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_CXX_COMPILER="${CXX}" \ + -DCMAKE_C_COMPILER="${CC}" \ + -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ + -Wno-dev -Wno-deprecated --no-warn-unused-cli + +make clean +make CXX="${CXX} ${LDFLAGS}" CC="${CC}" CXXFLAGS="${CXXFLAGS}" + +chmod 755 bin/bam-readcount +cp -f bin/bam-readcount "${PREFIX}/bin" +popd diff --git a/recipes/bam-readcount/meta.yaml b/recipes/bam-readcount/meta.yaml index b46fce1142718..81a6922eeaf7c 100644 --- a/recipes/bam-readcount/meta.yaml +++ b/recipes/bam-readcount/meta.yaml @@ -1,36 +1,49 @@ +{% set name = "bam-readcount" %} +{% set version = "1.0.1" %} + package: - name: bam-readcount - version: "0.8" + name: {{ name }} + version: {{ version }} source: - url: https://github.com/genome/bam-readcount/archive/v0.8.0.tar.gz - md5: 58d72588866f16f658ce4f40a3809af9 + url: https://github.com/genome/{{ name }}/archive/v{{ version }}.tar.gz + sha256: 8ebf84d9efee0f2d3b43f0452dbf16b27337c960e25128f6a7173119e62588b8 build: - number: 5 + number: 0 + skip: True # [osx] + run_exports: + - {{ pin_subpackage('bam-readcount', max_pin="x") }} requirements: build: - make - - cmake >=2.8.3 - - {{ compiler('c') }} + - cmake - {{ compiler('cxx') }} + - {{ compiler('c') }} host: - zlib - - ncurses - - perl - - python + - pthread-stubs + - wget + - clangdev run: - python - - zlib - - ncurses - - perl + - pthread-stubs test: commands: - - bam-readcount 2>&1 | grep bam-readcount > /dev/null + - "bam-readcount 2>&1 | grep bam-readcount > /dev/null" about: - home: https://github.com/genome/bam-readcount + home: "https://github.com/genome/bam-readcount" license: MIT - summary: bam-readcount generates metrics at single nucleotide positions. + license_family: MIT + license_file: LICENSE + summary: "bam-readcount generates metrics at single nucleotide positions." + dev_url: "https://github.com/genome/bam-readcount" + doc_url: "https://github.com/genome/bam-readcount/blob/master/README.md" + +extra: + identifiers: + - doi:10.21105/joss.03722 + - biotools:bam-readcount From 4d18498c8505a3020fa219a16d23053d9d1ef045 Mon Sep 17 00:00:00 2001 From: richard-burhans Date: Thu, 1 Aug 2024 15:04:04 -0400 Subject: [PATCH 0992/1514] Reviving no_static.patch (#49747) Co-authored-by: Richard Burhans --- recipes/ncbi-fcs-gx/meta.yaml | 5 +++-- recipes/ncbi-fcs-gx/no_static.patch | 10 ++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 recipes/ncbi-fcs-gx/no_static.patch diff --git a/recipes/ncbi-fcs-gx/meta.yaml b/recipes/ncbi-fcs-gx/meta.yaml index 44f122e158877..863e298cf163b 100644 --- a/recipes/ncbi-fcs-gx/meta.yaml +++ b/recipes/ncbi-fcs-gx/meta.yaml @@ -5,7 +5,8 @@ package: source: url: https://github.com/ncbi/fcs-gx/archive/refs/tags/v0.5.4.zip sha256: 4398f935f5f5053a9a47d46416e28e8e7df34942bc72f6b5ac266de8ee365cf0 - + patches: + - no_static.patch requirements: build: @@ -23,7 +24,7 @@ requirements: - grep >=3.4 build: - number: 0 + number: 1 skip: True # [not linux or not x86_64] run_exports: - {{ pin_compatible('ncbi-fcs-gx', max_pin="x.x") }} diff --git a/recipes/ncbi-fcs-gx/no_static.patch b/recipes/ncbi-fcs-gx/no_static.patch new file mode 100644 index 0000000000000..9ec777df07d1e --- /dev/null +++ b/recipes/ncbi-fcs-gx/no_static.patch @@ -0,0 +1,10 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -5,6 +5,6 @@ + set(gx_VERSION_MINOR 0) + + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -O0 -ggdb3 -DDEBUG") +-set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -static -O2 -DNDEBUG") # TODO: investigate whether can/should enable -march=x86-64-v4 ++set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -O2 -DNDEBUG") # TODO: investigate whether can/should enable -march=x86-64-v4 + + add_subdirectory(src) From 4553a2941b2ac5feef50f5c9cddd1d21a866a17a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 21:26:13 -0400 Subject: [PATCH 0993/1514] Update lsabgc to 1.0.3 (#49749) * Update lsabgc to 1.0.3 * Update meta.yaml --------- Co-authored-by: Rauf Salamzade --- recipes/lsabgc/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/lsabgc/meta.yaml b/recipes/lsabgc/meta.yaml index 24f9c2ea43c27..5b3bb14d85ef2 100644 --- a/recipes/lsabgc/meta.yaml +++ b/recipes/lsabgc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "lsabgc" %} -{% set version = "1.0.0" %} +{% set version = "1.0.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Kalan-Lab/lsaBGC-Pan/archive/refs/tags/v{{ version }}.tar.gz - sha256: 4030f51f1892be49908caf1814838384805eb5d37b7b9bc631f256cfae4d9bde + sha256: a7e68e3d5b69183e86d3026c95a6a177768d953bfccac18b3beabbb9450594ee build: number: 0 @@ -28,7 +28,7 @@ requirements: - zol >=1.4.11 - orthofinder =2.5.5 - pyseer >=1.3 - - gecco + - gecco =0.9.6 - prodigal - pyrodigal - biopython From b40f5923631ea4ed0e3979b645659a97a2b3d1cf Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 21:43:28 -0400 Subject: [PATCH 0994/1514] Update nanomotif to 0.4.10 (#49704) * Update nanomotif to 0.4.10 * add setuptools --------- Co-authored-by: mencian --- recipes/nanomotif/meta.yaml | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/recipes/nanomotif/meta.yaml b/recipes/nanomotif/meta.yaml index 208bbdd95ceaf..dc25d63a2db8a 100644 --- a/recipes/nanomotif/meta.yaml +++ b/recipes/nanomotif/meta.yaml @@ -1,6 +1,5 @@ {% set name = "nanomotif" %} -{% set version = "0.4.9" %} - +{% set version = "0.4.10" %} package: name: {{ name|lower }} @@ -8,13 +7,13 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/nanomotif-{{ version }}.tar.gz - sha256: 2d958ff07a35bf20c4db9e1a5bb033efd530e5ff21e16bc88796d70e09566589 + sha256: f5b573e9462f8043dd6f7e905461e4c7d804db612806180f1482002793653056 build: entry_points: - nanomotif = nanomotif.main:main noarch: python - script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir number: 0 run_exports: - {{ pin_subpackage('nanomotif', max_pin="x.x") }} @@ -23,21 +22,22 @@ requirements: host: - python - pip + - setuptools run: - python - wheel + - bio >=1.6.2 - requests - numpy >=1.24.4 - pandas >=2.0.2 - polars >=0.19 - - seaborn >=0.12.2 + - seaborn-base >=0.12.2 - scipy >=1.10.1 - networkx >=3.1 - progressbar2 >=3.53.1 - biopython >=1.6.2 - pyarrow >=15.0.2 - - snakemake >=7.32.4 - + - snakemake-minimal >=7.32.4 test: imports: @@ -46,11 +46,13 @@ test: - nanomotif --help about: - home: https://pypi.org/project/nanomotif/ - summary: Identifying methlyation motifs in nanopore data + home: "https://github.com/MicrobialDarkMatter/nanomotif" + summary: "Identifying methlyation motifs in nanopore data" license: MIT license_family: MIT license_file: LICENSE + doc_url: "https://nanomotif.readthedocs.io/en/latest" + dev_url: "https://github.com/MicrobialDarkMatter/nanomotif" extra: recipe-maintainers: From 6107c6957586dd1250fa78e87481aac1e20f8f59 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 21:43:38 -0400 Subject: [PATCH 0995/1514] Update reframed to 1.5.3 (#49705) * Update reframed to 1.5.3 * add setuptools --------- Co-authored-by: mencian --- recipes/reframed/meta.yaml | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/recipes/reframed/meta.yaml b/recipes/reframed/meta.yaml index 003f90d2ef333..cbcb3673cd42a 100644 --- a/recipes/reframed/meta.yaml +++ b/recipes/reframed/meta.yaml @@ -1,5 +1,5 @@ {% set name = "reframed" %} -{% set version = "1.5.2" %} +{% set version = "1.5.3" %} package: name: {{ name|lower }} @@ -7,14 +7,14 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/reframed-{{ version }}.tar.gz - sha256: cb4ec30364e0f50cd5a47933668d371024deac56255b10bb0d676ae453a51315 + sha256: e84a73a94a2ec1cdbe5a56dad796260b38dbaa662fecc12c4d6092ef223334d9 build: noarch: python - script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir number: 0 run_exports: - - {{ pin_subpackage('reframed', max_pin="x.x.x") }} + - {{ pin_subpackage('reframed', max_pin="x") }} requirements: host: @@ -32,16 +32,14 @@ requirements: test: imports: - reframed - commands: - - pip check - requires: - - pip about: home: https://github.com/cdanielmachado/reframed - summary: metabolic modeling package + summary: "Metabolic modeling package." license: Apache-2.0 + license_family: APACHE license_file: LICENSE + dev_url: https://github.com/cdanielmachado/reframed extra: recipe-maintainers: From 22a949b2b25e94f35929b56fb9b39002faf1fa5c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 21:43:49 -0400 Subject: [PATCH 0996/1514] Update carveme to 1.6.2 (#49707) * Update carveme to 1.6.2 * add setuptools --------- Co-authored-by: mencian --- recipes/carveme/meta.yaml | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/recipes/carveme/meta.yaml b/recipes/carveme/meta.yaml index 3a9692325ff17..a2cbfff5631e5 100644 --- a/recipes/carveme/meta.yaml +++ b/recipes/carveme/meta.yaml @@ -1,5 +1,5 @@ {% set name = "carveme" %} -{% set version = "1.6.1" %} +{% set version = "1.6.2" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 3f58e2519af378b15b7e0d175aefa94566793503e32856d690720213a1a9d478 + sha256: cd0ac30fff347c180d76083c96f85705ed1a426f69aa43ca47bb964df7d22ac3 build: number: 0 @@ -18,25 +18,26 @@ build: - gapfill=carveme.cli.gapfill:main - merge_community=carveme.cli.merge_community:main - benchmark=carveme.cli.benchmark:main - script: "{{ PYTHON }} -m pip install --use-pep517 . -vv" + script: "{{ PYTHON }} -m pip install --use-pep517 --no-deps --no-build-isolation --no-cache-dir . -vvv" noarch: python - build: run_exports: - - {{ pin_subpackage('carveme', max_pin="x.x.x") }} + - {{ pin_subpackage('carveme', max_pin="x") }} requirements: host: - python >=3.8 - pip + - setuptools run: - - pandas + - pandas - python >=3.8 - reframed >=1.5.1 - diamond - pyscipopt - scip - numpy - - requests + - requests + test: imports: - carveme @@ -58,6 +59,8 @@ about: license_family: APACHE license_file: LICENSE.txt summary: "CarveMe: automated genome-scale metabolic model reconstruction" + dev_url: "https://github.com/cdanielmachado/carveme" + doc_url: "https://carveme.readthedocs.io/en/latest" extra: recipe-maintainers: From 36657db94217fc85228d63382d3718020b40ea85 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 21:44:03 -0400 Subject: [PATCH 0997/1514] Update truvari to 4.3.0 (#49708) * Update truvari to 4.3.0 * add setuptools --------- Co-authored-by: mencian --- recipes/truvari/meta.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/recipes/truvari/meta.yaml b/recipes/truvari/meta.yaml index b27d82385cd1e..a87cbf94c0803 100644 --- a/recipes/truvari/meta.yaml +++ b/recipes/truvari/meta.yaml @@ -1,6 +1,6 @@ {% set name = "truvari" %} -{% set version = "4.2.2" %} -{% set sha256 = "4e7e504e8221b99c321d0825e32299954ef324f382b16fa09c97135aa1e4f872" %} +{% set version = "4.3.0" %} +{% set sha256 = "cb25b3e8163584b51dec06356b89f193674e4388891e29b56c7e5b6f4bb63779" %} package: name: {{ name|lower }} @@ -13,7 +13,7 @@ source: build: number: 0 noarch: python - script: {{ PYTHON }} -m pip install . -vvv + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv entry_points: - truvari = truvari.__main__:main run_exports: @@ -23,6 +23,7 @@ requirements: host: - python >=3.8 - pip + - setuptools run: - python >=3.8 - pywfa >=0.5.1 @@ -49,3 +50,5 @@ about: license: MIT license_family: MIT license_file: LICENSE + dev_url: https://github.com/ACEnglish/truvari + doc_url: https://github.com/acenglish/truvari/wiki From ec8d706b345f19ffb3d339cc33c10bf14f37ec5e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 21:44:19 -0400 Subject: [PATCH 0998/1514] Update pacu_snp to 0.0.5 (#49728) * Update pacu_snp to 0.0.5 * add LICENSE file --------- Co-authored-by: mencian --- recipes/pacu_snp/LICENSE | 674 +++++++++++++++++++++++++++++++++++++ recipes/pacu_snp/meta.yaml | 13 +- 2 files changed, 681 insertions(+), 6 deletions(-) create mode 100644 recipes/pacu_snp/LICENSE diff --git a/recipes/pacu_snp/LICENSE b/recipes/pacu_snp/LICENSE new file mode 100644 index 0000000000000..20d40b6bceca3 --- /dev/null +++ b/recipes/pacu_snp/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. \ No newline at end of file diff --git a/recipes/pacu_snp/meta.yaml b/recipes/pacu_snp/meta.yaml index 54a5b5864e9ef..6798465c0519a 100644 --- a/recipes/pacu_snp/meta.yaml +++ b/recipes/pacu_snp/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.0.4" %} +{% set version = "0.0.5" %} package: name: pacu_snp @@ -6,18 +6,18 @@ package: source: url: https://pypi.io/packages/source/p/pacu_snp/pacu_snp-{{ version }}.tar.gz - sha256: a00027a667bd502073f682e4ea72c0e31a1940345b19338cd2b67838ef925c2a + sha256: 68979d53d8a591351a3de4edcde38bb508a8fcf8a4b1878999c9e63c932ffeb6 build: noarch: python - number: 1 + number: 0 entry_points: - PACU=pacu.run_pacu:main - PACU_map=pacu.map_to_ref:main - PACU_galaxy=pacu.galaxy:main run_exports: - {{ pin_subpackage("pacu_snp", max_pin="x.x") }} - script: "{{ PYTHON }} -m pip install . --no-deps -vv" + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" requirements: host: @@ -42,7 +42,7 @@ requirements: - pyyaml >=6.0.1 - samtools >=1.17 - seqkit >=2.3.1 - - snakemake ==7.32.4 + - snakemake-minimal ==7.32.4 - snp-dists >=0.8.2 - trimmomatic >=0.39 - upsetplot >=0.8.0 @@ -50,10 +50,11 @@ requirements: about: home: https://github.com/BioinformaticsPlatformWIV-ISP/PACU - license: GPL-3.0 + license: GPL-3.0-or-later license_family: GPL license_file: LICENSE summary: PACU is a workflow for whole genome sequencing based phylogeny of Illumina and ONT R9/R10 data. + dev_url: https://github.com/BioinformaticsPlatformWIV-ISP/PACU test: imports: From 42a4fa28f956fac4fec4fdac05a1a759037e85fb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 21:44:34 -0400 Subject: [PATCH 0999/1514] Update harpy to 1.4 (#49750) --- recipes/harpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index d93024ddac567..c9c0604b6892d 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.3" %} -{% set sha256 = "1e55b0d15853276afa6a3c3863766515e5d1ef20df7dc71a1560bb48226dabdf" %} +{% set version = "1.4" %} +{% set sha256 = "810af5d7625d853610c74149d9de0a3a38a92986cc276cbc4c15c4ba8f6664ab" %} package: name: harpy From bc446f7262f44bf97ccafbefee599c05b34913c5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 1 Aug 2024 21:46:10 -0400 Subject: [PATCH 1000/1514] Update genewalk to 1.6.3 (#49751) --- recipes/genewalk/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/genewalk/meta.yaml b/recipes/genewalk/meta.yaml index 969b33e9b8222..2335055b20893 100644 --- a/recipes/genewalk/meta.yaml +++ b/recipes/genewalk/meta.yaml @@ -1,5 +1,5 @@ {% set name = "genewalk" %} -{% set version = "1.6.2" %} +{% set version = "1.6.3" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: "e989c20ef9c5ef5a6de0b495cc6f8ee4490ab9ebbdd2634e03cf77dfdec44b10" + sha256: "41fc63a6a3d2637ffea60b7256374852b92f70889a3a0ac823508b44fce3f347" build: number: 0 From 03f18a7bca1fb09be6903f706a53a151f94403ed Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 2 Aug 2024 04:47:42 +0300 Subject: [PATCH 1001/1514] quicksect: add aarch64/arm64 builds (#49743) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/quicksect/meta.yaml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/recipes/quicksect/meta.yaml b/recipes/quicksect/meta.yaml index 397ed3e780b91..d697f65359be5 100644 --- a/recipes/quicksect/meta.yaml +++ b/recipes/quicksect/meta.yaml @@ -10,8 +10,10 @@ source: sha256: "d3e65b55b7f48e6105b11b1e1d6f37ccbf8caecfc7d7db7aba73dfaf6d732a9c" build: - number: 9 + number: 10 script: rm -f src/*.c ; {{ PYTHON }} -m pip install --no-deps --ignore-installed . + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} requirements: build: @@ -35,3 +37,7 @@ about: license_file: LICENSE summary: "A cythonized, extended version of the interval search tree in bx" +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 \ No newline at end of file From f9a5675ce61f638f409719ee0034a4f1bd3282a1 Mon Sep 17 00:00:00 2001 From: Lucas Czech Date: Thu, 1 Aug 2024 23:12:05 -0700 Subject: [PATCH 1002/1514] Add recipe for grenedalf (#49390) * Add recipe for grenedalf * Fix license to use SPDX identifier * Try to fix the build on Mac OSX * Fix pinning syntax * Attempt grenedalf MacOS build with Clang <16 * Try building grenedalf on MacOS with Clang 15 * Fix Clang vs libcxx version compatibility * Fix Clang vs libcxx version compatibility pt 2 * Fix Clang vs libcxx version compatibility pt 3 * Fix Clang vs libcxx version compatibility pt 4 * Fix Clang vs libcxx version compatibility pt 5 * Exclude macOS build for now See https://github.com/bioconda/bioconda-recipes/pull/49390#issuecomment-2250342057 * Remove linux-aarch64 build This otherwise fails with Error: Failed to render jinja template in /home/circleci/project/recipes/grenedalf/meta.yaml: 'os._Environ object' has no attribute 'TRAVIS_OS_NAME' See https://app.circleci.com/pipelines/github/bioconda/bioconda-recipes/124268/workflows/75eb13df-d5d5-4dad-a806-dd6406e2d58d/jobs/200360?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-checks-link&utm_content=summary * Fix OS name check for bioconda * Add platform env var * Fix os selection mechanism for osx https://github.com/bioconda/bioconda-recipes/pull/49390#pullrequestreview-2213888968 --------- Co-authored-by: Martin Grigorov --- recipes/grenedalf/build.sh | 8 ++++++ recipes/grenedalf/meta.yaml | 52 +++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 recipes/grenedalf/build.sh create mode 100644 recipes/grenedalf/meta.yaml diff --git a/recipes/grenedalf/build.sh b/recipes/grenedalf/build.sh new file mode 100644 index 0000000000000..1fa785763c3b6 --- /dev/null +++ b/recipes/grenedalf/build.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +make -j ${CPU_COUNT} + +mkdir -p $PREFIX/bin + +cp bin/grenedalf $PREFIX/bin + diff --git a/recipes/grenedalf/meta.yaml b/recipes/grenedalf/meta.yaml new file mode 100644 index 0000000000000..83e5c1ee29eeb --- /dev/null +++ b/recipes/grenedalf/meta.yaml @@ -0,0 +1,52 @@ +package: + name: grenedalf + version: "0.5.2" + +build: + number: 0 + skip: true # [osx] + run_exports: + - {{ pin_subpackage('grenedalf', max_pin='x.x') }} + +source: + url: https://github.com/lczech/grenedalf/archive/refs/tags/v0.5.2.tar.gz + sha256: 03d5391be83532f67b4aaedeeb7275cdf1de19070096a23c48367b7cea902b4e + +requirements: + build: + - make + - cmake + - autoconf + - automake + - {{ compiler('cxx') }} + host: + - bzip2 + - xz + - zlib + run: + - bzip2 + - xz + - zlib + +test: + commands: + - grenedalf --help + +about: + home: https://github.com/lczech/grenedalf + license: GPL-3.0-only + license_file: LICENSE + summary: Toolkit for Population Genetic Statistics from Pool-Sequenced Samples, e.g., in Evolve and Resequence experiments + description: | + grenedalf is a collection of commands for working with population genetic data, in particular from pool sequencing. + Its main focus are statistical analyses such as Tajima's D and Fst. The statistics follow the approaches of PoPoolation + and PoPoolation2, as well as poolfstat and npstat. However, compared to those, grenedalf is significantly more scalable, + more user friendly, and offers more settings and input file formats. + dev_url: https://github.com/lczech/grenedalf + doc_url: https://github.com/lczech/grenedalf/wiki + +extra: + additional-platforms: + - linux-aarch64 + identifiers: + - arXiv:2306.11622 From 9227584c635138040aea465d393607accd9ea1bf Mon Sep 17 00:00:00 2001 From: Rob Patro Date: Fri, 2 Aug 2024 03:38:39 -0400 Subject: [PATCH 1003/1514] Add radtk (#49752) * add radtk * add rad-tk add build.sh * Use SPDX value for the license --------- Co-authored-by: Martin Grigorov --- recipes/radtk/build.sh | 2 ++ recipes/radtk/meta.yaml | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 recipes/radtk/build.sh create mode 100644 recipes/radtk/meta.yaml diff --git a/recipes/radtk/build.sh b/recipes/radtk/build.sh new file mode 100644 index 0000000000000..ec42da7d92de0 --- /dev/null +++ b/recipes/radtk/build.sh @@ -0,0 +1,2 @@ +# build statically linked binary with Rust +RUST_BACKTRACE=1 cargo install --locked --verbose --root $PREFIX --path . diff --git a/recipes/radtk/meta.yaml b/recipes/radtk/meta.yaml new file mode 100644 index 0000000000000..b3355c9314349 --- /dev/null +++ b/recipes/radtk/meta.yaml @@ -0,0 +1,39 @@ +{% set version = "0.2.0" %} + +package: + name: radtk + version: {{ version }} + +build: + number: 0 + run_exports: + - {{ pin_subpackage("radtk", max_pin="x.x") }} + +source: + url: https://github.com/COMBINE-lab/radtk/archive/v{{ version }}.tar.gz + sha256: 116c9b05576de3e9708d2d7817d7b4f4858f9edf44d2a9bb0548159f0ccff6fb + +requirements: + build: + - autoconf + - make + - {{ compiler('cxx') }} + - {{ compiler('rust') }} + - pkg-config + host: + run: + +test: + commands: + - radtk --help || test $? -eq 1 + +about: + home: https://github.com/COMBINE-lab/radtk + license: BSD-3-Clause + license_file: LICENSE + summary: A collection of tools for working with RAD files. + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From 227c0c8b1ebeb1aa5194907a1244b0c40123e818 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 03:44:56 -0400 Subject: [PATCH 1004/1514] Update grenedalf to 0.6.0 (#49755) --- recipes/grenedalf/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/grenedalf/meta.yaml b/recipes/grenedalf/meta.yaml index 83e5c1ee29eeb..63645f633c571 100644 --- a/recipes/grenedalf/meta.yaml +++ b/recipes/grenedalf/meta.yaml @@ -1,6 +1,6 @@ package: name: grenedalf - version: "0.5.2" + version: "0.6.0" build: number: 0 @@ -9,8 +9,8 @@ build: - {{ pin_subpackage('grenedalf', max_pin='x.x') }} source: - url: https://github.com/lczech/grenedalf/archive/refs/tags/v0.5.2.tar.gz - sha256: 03d5391be83532f67b4aaedeeb7275cdf1de19070096a23c48367b7cea902b4e + url: https://github.com/lczech/grenedalf/archive/refs/tags/v0.6.0.tar.gz + sha256: 43f7654d9b67fdce0b65096e0b1a4ac6160d838664a65151d44ea382d2489a3f requirements: build: From 36fdd349b9b269a9eb912bbc65adbf43396bad5c Mon Sep 17 00:00:00 2001 From: SantiagoSanchezF <42723108+SantiagoSanchezF@users.noreply.github.com> Date: Fri, 2 Aug 2024 09:51:30 +0100 Subject: [PATCH 1005/1514] Update SanntiS to ensure compatibility with scipy version (#49756) * Fix: Update SciPy version to 1.7.3 to resolve compatibility issues * Fix: Update SciPy version to 1.7.3 to resolve compatibility issues --- recipes/sanntis/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/sanntis/meta.yaml b/recipes/sanntis/meta.yaml index 72516e12f2345..b6732c54e0ef3 100644 --- a/recipes/sanntis/meta.yaml +++ b/recipes/sanntis/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 noarch: python entry_points: - sanntis = sanntis._cli:main @@ -25,6 +25,7 @@ requirements: - pip run: - python >=3.9 + - scipy >=1.7.3,<1.8.0 - perl >=5 - biopython - numpy >=1.16,<1.20 From 2484314f8f25ae972cd38ea5a535b23816fa81f9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 08:34:25 -0400 Subject: [PATCH 1006/1514] Update pgscatalog.match to 0.3.0 (#49762) --- recipes/pgscatalog.match/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pgscatalog.match/meta.yaml b/recipes/pgscatalog.match/meta.yaml index 9d5d74a74c3f0..fbf8c49332f44 100644 --- a/recipes/pgscatalog.match/meta.yaml +++ b/recipes/pgscatalog.match/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pgscatalog.match" %} -{% set version = "0.2.3" %} +{% set version = "0.3.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pgscatalog_match-{{ version }}.tar.gz - sha256: 7aa2e940a984d0e7610fe8c712b2730468757e54195880a251b4e250848e39e7 + sha256: ebebc432448559f7bc9a543acc029e3aa6944eef98f5d735f6750ef3aeb79e6f build: number: 0 From dafd26ad0715e69766a9611130e01e1c40d5bff9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 08:34:47 -0400 Subject: [PATCH 1007/1514] Update pybiolib to 1.2.31 (#49761) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index 1fc5590a325af..4b79d5057b32c 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.2.16" %} +{% set version = "1.2.31" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: fe6acc99bc6874bbb02246982545b7e355287bc22e3e82b16909d3e2237dad3d + sha256: 39abd33afc379d9624ff7da4f0eb38acaf7a14f5c48aa0bbce6d761ca3632e6b build: number: 0 From faa4bc17b4bbc0cc296b1f07f50f88466357c92c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 08:35:19 -0400 Subject: [PATCH 1008/1514] Update nanomotif to 0.4.11 (#49760) --- recipes/nanomotif/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/nanomotif/meta.yaml b/recipes/nanomotif/meta.yaml index dc25d63a2db8a..aa336929dc77c 100644 --- a/recipes/nanomotif/meta.yaml +++ b/recipes/nanomotif/meta.yaml @@ -1,5 +1,5 @@ {% set name = "nanomotif" %} -{% set version = "0.4.10" %} +{% set version = "0.4.11" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/nanomotif-{{ version }}.tar.gz - sha256: f5b573e9462f8043dd6f7e905461e4c7d804db612806180f1482002793653056 + sha256: 822a74f70748cdb0539dd990955adeceb76c8e4e858ecee5e0097a31fac34ceb build: entry_points: From d8e73a5ce3bc7f43fac04112ea4795f9f14709ea Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 11:43:04 -0400 Subject: [PATCH 1009/1514] Update pmultiqc to 0.0.25 (#49764) * Update pmultiqc to 0.0.25 * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml --------- Co-authored-by: Yasset Perez-Riverol --- recipes/pmultiqc/meta.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/recipes/pmultiqc/meta.yaml b/recipes/pmultiqc/meta.yaml index b8c4ab6027c61..6f8e33c2d2bd4 100644 --- a/recipes/pmultiqc/meta.yaml +++ b/recipes/pmultiqc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pmultiqc" %} -{% set version = "0.0.24" %} +{% set version = "0.0.25" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: e3d617cdfc4eab4fa8905dab1f4e575db038471659840bf1431b535d610ae136 + sha256: 463a09960e75a45b8af43c57896be1244fe487e35dcb53071cefcc34612f6e89 build: number: 0 @@ -24,11 +24,12 @@ requirements: - python >=3.6 - pytest - lxml - - multiqc ==1.19.0 + - multiqc ==1.23 - pandas - - sdrf-pipelines >=0.0.18 + - sdrf-pipelines >=0.0.28 - pyteomics - pyopenms >2.7 + - numpy >=1.23 test: imports: From ca5291ddde14583259ebd4b5ec33d5aef2f897c2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 11:53:01 -0400 Subject: [PATCH 1010/1514] Update seqnado to 0.5.4 (#49766) --- recipes/seqnado/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/seqnado/meta.yaml b/recipes/seqnado/meta.yaml index ec3b91250d2bc..1a30cf4a2b5bf 100644 --- a/recipes/seqnado/meta.yaml +++ b/recipes/seqnado/meta.yaml @@ -1,5 +1,5 @@ {% set name = "seqnado" %} -{% set version = "0.5.3" %} +{% set version = "0.5.4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/seqnado-{{ version }}.tar.gz - sha256: a8614656b340450dd304517cd841a3366d20e65a7d91d601fb11b6f07ced1611 + sha256: d0b281f06d2c8d2c55d99529c785549fe7aaed00f487b10fd609cef2baec76f8 build: From d2cfbaeaf5ca7d1bfcacf728069fecdac6285604 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 11:53:29 -0400 Subject: [PATCH 1011/1514] Update micom to 0.36.2 (#49765) --- recipes/micom/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/micom/meta.yaml b/recipes/micom/meta.yaml index d2cce5b00901c..19788fb22ba0a 100644 --- a/recipes/micom/meta.yaml +++ b/recipes/micom/meta.yaml @@ -1,5 +1,5 @@ {% set name = "micom" %} -{% set version = "0.36.1" %} +{% set version = "0.36.2" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 8b278dec56e04c2fbf2193a07ccce988a2fbf8408ce99fdb705c68e40ef28fb2 + sha256: 0d046c51eb73c86d1f694853f99e7f4c86f1f3938af2932871412fea01fc9613 build: number: 0 From 3d00e06bd2b514a51a00ce2b5988042de46911e0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 11:53:55 -0400 Subject: [PATCH 1012/1514] Update pgscatalog-utils to 1.3.0 (#49763) --- recipes/pgscatalog-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pgscatalog-utils/meta.yaml b/recipes/pgscatalog-utils/meta.yaml index 1a1f0bf5d31ba..6208f5eea7eac 100644 --- a/recipes/pgscatalog-utils/meta.yaml +++ b/recipes/pgscatalog-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pgscatalog-utils" %} -{% set version = "1.2.0" %} +{% set version = "1.3.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pgscatalog_utils-{{ version }}.tar.gz - sha256: 00c22d84306c671f909f09ee3cd1c4de223d02009b16c0162c76f9526d0d6efa + sha256: ec6a397a81891860256707d3b25d6615ddee705dd744822f886fbadf16419ab3 build: noarch: python From f6a9d6f4c6428736845aa31c25895f61037c1d80 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 2 Aug 2024 20:39:01 +0300 Subject: [PATCH 1013/1514] bam-readcount: add linux-aarch64 support (#49754) * bam-readcount: add linux-aarch64 support Signed-off-by: Martin Tzvetanov Grigorov * Do not use parallelism for the build. It fails on linux x86_64 --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/bam-readcount/build.sh | 2 ++ recipes/bam-readcount/meta.yaml | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/recipes/bam-readcount/build.sh b/recipes/bam-readcount/build.sh index ea36511e1ccc5..7d754621bbd4d 100644 --- a/recipes/bam-readcount/build.sh +++ b/recipes/bam-readcount/build.sh @@ -1,5 +1,7 @@ #!/bin/bash -euo +set -x + wget https://github.com/boostorg/boost/releases/download/boost-1.85.0/boost-1.85.0-cmake.tar.gz mv boost-1.85.0-cmake.tar.gz vendor/boost-1.55-bamrc.tar.gz diff --git a/recipes/bam-readcount/meta.yaml b/recipes/bam-readcount/meta.yaml index 81a6922eeaf7c..5e80b8f2b7fd7 100644 --- a/recipes/bam-readcount/meta.yaml +++ b/recipes/bam-readcount/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 8ebf84d9efee0f2d3b43f0452dbf16b27337c960e25128f6a7173119e62588b8 build: - number: 0 + number: 1 skip: True # [osx] run_exports: - {{ pin_subpackage('bam-readcount', max_pin="x") }} @@ -44,6 +44,8 @@ about: doc_url: "https://github.com/genome/bam-readcount/blob/master/README.md" extra: + additional-platforms: + - linux-aarch64 identifiers: - doi:10.21105/joss.03722 - biotools:bam-readcount From 4627f73f3b477409711a19b5676ef8416c0a8d47 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 13:52:23 -0400 Subject: [PATCH 1014/1514] Update sdm to 2.18 (#49769) --- recipes/sdm/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/sdm/meta.yaml b/recipes/sdm/meta.yaml index a518392945668..53a9f3e6b6a51 100644 --- a/recipes/sdm/meta.yaml +++ b/recipes/sdm/meta.yaml @@ -1,5 +1,5 @@ {% set name = "sdm" %} -{% set version = "2.17" %} +{% set version = "2.18" %} package: name: {{ name }} @@ -7,12 +7,12 @@ package: source: url: https://github.com/hildebra/{{ name }}/archive/v{{ version }}.tar.gz - sha256: d1655719b232b6c474c132be850c7a2633df4ef46b497935152f68b94f5f166f + sha256: 4ae8d1b2be6c3571e9c2db964421e5065255dff209f8e060d43b843be0f04e82 patches: - sdm_1.83.patch build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage(name|lower, max_pin="x.x") }} @@ -38,4 +38,4 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 From 2b9c406ee17e26dc7a1eafc638164db134b47acb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 13:52:31 -0400 Subject: [PATCH 1015/1514] Update fgpyo to 0.5.0 (#49768) --- recipes/fgpyo/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/fgpyo/meta.yaml b/recipes/fgpyo/meta.yaml index 17701e4fdb277..63a3a10fe4ea2 100644 --- a/recipes/fgpyo/meta.yaml +++ b/recipes/fgpyo/meta.yaml @@ -1,5 +1,5 @@ {% set name = "fgpyo" %} -{% set version = "0.4.0" %} +{% set version = "0.5.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/fulcrumgenomics/{{ name }}/archive/refs/tags/{{ version }}.tar.gz - sha256: fd92a8417fb93f494667f49ef9540e379884180fe8867fea6eb06f56be5937f2 + sha256: 875a189a0db739bd150b677a3b1c5a48489c83bc7da2cc405aee02a137ab7a04 build: noarch: python From a3f84f956c237eec07d72725ad2230da21130ef5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 13:52:40 -0400 Subject: [PATCH 1016/1514] Update harpy to 1.4.1 (#49767) --- recipes/harpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index c9c0604b6892d..6d9987bb12a93 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.4" %} -{% set sha256 = "810af5d7625d853610c74149d9de0a3a38a92986cc276cbc4c15c4ba8f6664ab" %} +{% set version = "1.4.1" %} +{% set sha256 = "389f391f1510e4fbaf582f8be32fe762fe792ea65f8c83cca4cf1e7237e442ef" %} package: name: harpy From c6284588e6d315267be60f24f2c5eba8616724f6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 13:59:33 -0400 Subject: [PATCH 1017/1514] Update pybedlite to 1.0.0 (#49771) --- recipes/pybedlite/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pybedlite/meta.yaml b/recipes/pybedlite/meta.yaml index 11f13450da28d..16e6de9deda68 100644 --- a/recipes/pybedlite/meta.yaml +++ b/recipes/pybedlite/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybedlite" %} -{% set version = "0.1.0" %} +{% set version = "1.0.0" %} package: name: {{ name|lower }} @@ -7,11 +7,11 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybedlite-{{ version }}.tar.gz - sha256: d7296b876d2093e7b877bea0e5d347353282c5d6cd110dcd03d5851f5eeda7dc + sha256: c87a246a673f69b929103176b744b6ad6978b63fae45f1ca6becc315a72d671c build: skip: True # [py < 38] - number: 1 + number: 0 script: {{ PYTHON }} -m pip install . -vvv --no-deps run_exports: - {{ pin_subpackage('pybedlite', max_pin="x") }} From 5521a2d9948750f78efb7876723dc38bca3f1caf Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 14:21:51 -0400 Subject: [PATCH 1018/1514] Update snapgene-reader to 0.1.21 (#49758) * Update snapgene-reader to 0.1.21 * add run_exports --------- Co-authored-by: mencian --- recipes/snapgene-reader/meta.yaml | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/recipes/snapgene-reader/meta.yaml b/recipes/snapgene-reader/meta.yaml index e843f58ee99a9..1cb425a9fe59f 100644 --- a/recipes/snapgene-reader/meta.yaml +++ b/recipes/snapgene-reader/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snapgene-reader" %} -{% set version = "0.1.20" %} +{% set version = "0.1.21" %} package: name: {{ name|lower }} @@ -7,36 +7,37 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snapgene_reader-{{ version }}.tar.gz - sha256: 5fbae3e8624a9578f584f840733328eecbf17ac837b021add56a560fce2f107f + sha256: b786cb8f9f6d8a0961057882ebcb68e318c185091a2ed36f552a2954df887a26 build: noarch: python - script: {{ PYTHON }} -m pip install . -vv + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv number: 0 + run_exports: + - {{ pin_subpackage('snapgene-reader', max_pin="x.x") }} requirements: host: - pip - - python + - python >=3 run: - biopython - html2text - - python + - python >=3 - xmltodict test: imports: - snapgene_reader - commands: - - pip check - requires: - - pip about: - home: https://pypi.org/project/snapgene-reader/ - summary: Convert Snapgene *.dna files dict/json/biopython. + home: "https://github.com/Edinburgh-Genome-Foundry/SnapGeneReader" + summary: "Convert Snapgene *.dna files dict/json/biopython." license: MIT - license_file: LICENCE.txt + license_family: MIT + license_file: "LICENCE.txt" + dev_url: "https://github.com/Edinburgh-Genome-Foundry/SnapGeneReader" + doc_url: "https://github.com/Edinburgh-Genome-Foundry/SnapGeneReader/blob/v{{ version }}/README.rst" extra: recipe-maintainers: From e8918711b9cb915f1450d0b58509ac4a6e6f2705 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 15:17:57 -0400 Subject: [PATCH 1019/1514] Update parascopy to 1.16.2 (#48778) * Update parascopy to 1.16.1 * add clang to host deps * Update parascopy to 1.16.2 * add setuptools --------- Co-authored-by: mencian --- recipes/parascopy/meta.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recipes/parascopy/meta.yaml b/recipes/parascopy/meta.yaml index 0f24f33fe767f..5bc435f33fb96 100644 --- a/recipes/parascopy/meta.yaml +++ b/recipes/parascopy/meta.yaml @@ -1,5 +1,5 @@ {% set name = "parascopy" %} -{% set version = "1.16.0" %} +{% set version = "1.16.2" %} package: name: {{ name|lower }} @@ -14,7 +14,7 @@ build: source: url: https://github.com/tprodanov/{{ name }}/archive/v{{ version }}.tar.gz - sha256: 72b4874990d19a85fe98dafc74808bb9d9357148d8dda6ed3aa80bf943de6167 + sha256: f1fa85349f49a504cc49afa93a2f8aab6600f6edaea3bdf7be21adca973ebe50 requirements: build: @@ -26,13 +26,14 @@ requirements: host: - python - pip + - setuptools - bzip2 - zlib - htslib - tabixpp + - clangdev # [osx] run: - python - - zlib - numpy >=1.15 - scipy >=1.5 - pysam >=0.17 @@ -66,3 +67,4 @@ about: license_family: MIT license_file: LICENSE summary: Calling paralog-specific copy number and sequence variants in duplicated genes using short-read whole-genome sequencing. + dev_url: https://github.com/tprodanov/parascopy From 3fdab15f873db2a7364a0fd193356545434727ff Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Fri, 2 Aug 2024 14:46:12 -0500 Subject: [PATCH 1020/1514] Update last to 1550 (#49772) --- recipes/last/build.sh | 4 +--- recipes/last/meta.yaml | 5 +++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/recipes/last/build.sh b/recipes/last/build.sh index 1387c3d3d6a6b..cdda4074d43e1 100644 --- a/recipes/last/build.sh +++ b/recipes/last/build.sh @@ -1,6 +1,4 @@ -#!/usr/bin/env bash - -set -xe +#!/bin/bash -xe ARCH=$(uname -m) case ${ARCH} in diff --git a/recipes/last/meta.yaml b/recipes/last/meta.yaml index 621a10a4deea4..fa4b3bc69aad2 100644 --- a/recipes/last/meta.yaml +++ b/recipes/last/meta.yaml @@ -1,5 +1,5 @@ {% set name = "LAST" %} -{% set version = "1548" %} +{% set version = "1550" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: "https://gitlab.com/mcfrith/last/-/archive/{{ version }}/last-{{ version }}.tar.gz" - sha256: bb1cab9586e7fed1dad6c101f1e0a44e053c52b7db417aa37769f1f8d0cba237 + sha256: 34a2d62bba74e6f2dad593b1c3997151617fb86a89a7d689e47a3a5e9377a07d build: number: 0 @@ -62,6 +62,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 container: extended-base: True identifiers: From 2b8718fbf734b0710c4039be10d877cdfb74a95f Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Fri, 2 Aug 2024 16:04:02 -0500 Subject: [PATCH 1021/1514] Update tantan to 50 (#49773) --- recipes/tantan/build.sh | 9 +++++++++ recipes/tantan/meta.yaml | 19 +++++++++++-------- 2 files changed, 20 insertions(+), 8 deletions(-) create mode 100644 recipes/tantan/build.sh diff --git a/recipes/tantan/build.sh b/recipes/tantan/build.sh new file mode 100644 index 0000000000000..550f4924bf485 --- /dev/null +++ b/recipes/tantan/build.sh @@ -0,0 +1,9 @@ +#!/bin/bash -euo + +ARCH=$(uname -m) +case ${ARCH} in + x86_64) ARCH_FLAGS="-msse4" ;; + *) ARCH_FLAGS="" ;; +esac + +make install CXXFLAGS="${CXXFLAGS} -O3 ${ARCH_FLAGS} -pthread -I${PREFIX}/include" prefix=${PREFIX} diff --git a/recipes/tantan/meta.yaml b/recipes/tantan/meta.yaml index 26e07ef7347b1..4f30f88e14745 100644 --- a/recipes/tantan/meta.yaml +++ b/recipes/tantan/meta.yaml @@ -1,16 +1,16 @@ -{% set version = "49" %} +{% set name = "tantan" %} +{% set version = "50" %} package: - name: tantan + name: {{ name }} version: {{ version }} source: url: https://gitlab.com/mcfrith/tantan/-/archive/{{ version }}/tantan-{{ version }}.tar.gz - sha256: 851eb8f1c0f169107cebe16cb9e973c49a54d0f00413063b514ea0edfa3a5238 + sha256: a239e9fb3c059ed9eb4c25a29b3c44a2ef1c1b492a9780874f429de7ae8b5407 build: number: 0 - script: make install prefix=$PREFIX run_exports: - {{ pin_subpackage('tantan', max_pin="None") }} @@ -21,8 +21,6 @@ requirements: - make host: - zlib - run: - - zlib test: commands: @@ -30,11 +28,16 @@ test: about: home: https://gitlab.com/mcfrith/tantan - license: GPL-3.0-or-later + license: "GPL-3.0-or-later" license_family: GPL3 - license_file: COPYING.txt + license_file: "COPYING.txt" summary: "tantan masks simple regions (low complexity & short-period tandem repeats) in biological sequences." + dev_url: https://gitlab.com/mcfrith/tantan + doc_url: https://gitlab.com/mcfrith/tantan/-/blob/main/README.rst extra: identifiers: - doi:10.1093/nar/gkq1212 + additional-platforms: + - linux-aarch64 + - osx-arm64 From ec283bd48e7ebd2d91a7df1abdddf37893975d5d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 2 Aug 2024 22:07:00 -0400 Subject: [PATCH 1022/1514] Update lsabgc to 1.0.4 (#49775) --- recipes/lsabgc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/lsabgc/meta.yaml b/recipes/lsabgc/meta.yaml index 5b3bb14d85ef2..8752b995ee828 100644 --- a/recipes/lsabgc/meta.yaml +++ b/recipes/lsabgc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "lsabgc" %} -{% set version = "1.0.3" %} +{% set version = "1.0.4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Kalan-Lab/lsaBGC-Pan/archive/refs/tags/v{{ version }}.tar.gz - sha256: a7e68e3d5b69183e86d3026c95a6a177768d953bfccac18b3beabbb9450594ee + sha256: d04c6a3a9a562c6fb97e778032ae7148bc90dfa982a8cac3d6e4eb2269995b66 build: number: 0 From bb1ad275d58f79143adf79cfd257cc21961ce8b2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 3 Aug 2024 02:12:04 -0400 Subject: [PATCH 1023/1514] Update trust4 to 1.1.3 (#49774) --- recipes/trust4/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/trust4/meta.yaml b/recipes/trust4/meta.yaml index d71466e7da114..65f568b349e3e 100644 --- a/recipes/trust4/meta.yaml +++ b/recipes/trust4/meta.yaml @@ -1,17 +1,17 @@ -{% set version = "1.1.2" %} +{% set version = "1.1.3" %} package: name: trust4 version: '{{ version }}' build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('trust4', max_pin="x") }} source: url: https://github.com/liulab-dfci/TRUST4/archive/v{{ version }}.tar.gz - sha256: 9321775c9636e31e4448952a9338c78736b652d46f219c0aef28386a0ca3d5a0 + sha256: 99bfd50a742598e6a5fbf6318b0fadeec811f635bc1d7f5f49315b64a708c378 requirements: build: From 8290b4e5b258f38b67033a45b78b14466b18de12 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 3 Aug 2024 02:51:25 -0400 Subject: [PATCH 1024/1514] Update taxopy to 0.13.0 (#49776) --- recipes/taxopy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/taxopy/meta.yaml b/recipes/taxopy/meta.yaml index fe5b571c1e819..1e2b85a9a93e8 100644 --- a/recipes/taxopy/meta.yaml +++ b/recipes/taxopy/meta.yaml @@ -1,5 +1,5 @@ {% set name = "taxopy" %} -{% set version = "0.12.0" %} +{% set version = "0.13.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 589e0d600a03535f1689d4be27c90af44b0552f26bdd7b27b31799cc098da828 + sha256: 0f56b8470864bc8c44cda1edb00dd210a0105e5aec25dfb9f6bb725b0f753f5c build: number: 0 From bca0ac48a339b562399c4eb474fb657d9e560ff9 Mon Sep 17 00:00:00 2001 From: Andrey Prjibelski Date: Sat, 3 Aug 2024 21:39:08 +0300 Subject: [PATCH 1025/1514] Update isoquant to 3.5.0 (#49780) --- recipes/isoquant/meta.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/recipes/isoquant/meta.yaml b/recipes/isoquant/meta.yaml index e112ee8533140..bbc7fbd26d950 100644 --- a/recipes/isoquant/meta.yaml +++ b/recipes/isoquant/meta.yaml @@ -1,6 +1,6 @@ {% set name = "IsoQuant" %} -{% set version = "3.4.2" %} -{% set sha256 = "7cff391e0d9e9d61d4fce6a1218270cf72e8dd034d7cfdd154b4c5b4055e17b4" %} +{% set version = "3.5.0" %} +{% set sha256 = "80771cc4fbe8d222b5dfa45be392942b2fdd356ebbb1d99e26d251c37bba085d" %} package: name: {{ name | lower }} @@ -24,6 +24,7 @@ requirements: - biopython >=1.76 - gffutils >=0.10.1 - minimap2 >=2.18 + - numpy >=1.18.1 - packaging - pandas >=1.0.1 - pybedtools >=0.8.1 @@ -31,6 +32,8 @@ requirements: - pysam >=0.15 - pyyaml >=5.4 - samtools >=1.14 + - scipy >=1.4.1 + - seaborn >=0.10.0 - simplejson >=3.17.0 - six >=1.14.0 @@ -48,7 +51,7 @@ about: license_family: GPL2 license_file: LICENSE dev_url: "https://github.com/ablab/IsoQuant" - doc_url: "https://github.com/ablab/IsoQuant/blob/master/README.md" + doc_url: "https://ablab.github.io/IsoQuant" extra: identifiers: From 3cafdf23b4aa8ebb1ca7ae44ed1d7284e3138360 Mon Sep 17 00:00:00 2001 From: Li Song Date: Sat, 3 Aug 2024 14:40:20 -0400 Subject: [PATCH 1026/1514] Add osx-arm64 support for TRUST4 (#49782) --- recipes/trust4/LICENSE | 695 ++------------------------------------- recipes/trust4/meta.yaml | 6 +- 2 files changed, 24 insertions(+), 677 deletions(-) diff --git a/recipes/trust4/LICENSE b/recipes/trust4/LICENSE index 94a9ed024d385..fb405d128dc60 100644 --- a/recipes/trust4/LICENSE +++ b/recipes/trust4/LICENSE @@ -1,674 +1,21 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. +MIT License + +Copyright (c) 2018- Li Song, X. Shirley Liu + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/recipes/trust4/meta.yaml b/recipes/trust4/meta.yaml index 65f568b349e3e..9781bf90f5806 100644 --- a/recipes/trust4/meta.yaml +++ b/recipes/trust4/meta.yaml @@ -5,7 +5,7 @@ package: version: '{{ version }}' build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('trust4', max_pin="x") }} @@ -41,10 +41,10 @@ test: about: home: https://github.com/liulab-dfci/TRUST4 summary: TCR and BCR assembly from bulk or single-cell RNA-seq data - license: GPL-3.0-only - license_family: GPL3 + license: MIT license_file: LICENSE.txt extra: additional-platforms: - linux-aarch64 + - osx-arm64 From 3ee87788568d99645dbed1397e68d49af74f4995 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 3 Aug 2024 21:51:14 -0400 Subject: [PATCH 1027/1514] Update zol to 1.4.12 (#49784) --- recipes/zol/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/zol/meta.yaml b/recipes/zol/meta.yaml index b07a6bcdc5338..ac3066121d731 100644 --- a/recipes/zol/meta.yaml +++ b/recipes/zol/meta.yaml @@ -1,5 +1,5 @@ {% set name = "zol" %} -{% set version = "1.4.11" %} +{% set version = "1.4.12" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Kalan-Lab/zol/archive/refs/tags/v{{ version }}.tar.gz - sha256: 9e282d1255355e2c643d93f1748f028be862af6cc967de713ef61a4809cadca7 + sha256: cb02a98c7257a9d7ef089bc585637aa9ee5671c6b3a65dbaed6c0dd2331b651b build: number: 0 From b363d4144c5b39aa8c320b94f7b155c502b68033 Mon Sep 17 00:00:00 2001 From: Thom Griffioen Date: Sun, 4 Aug 2024 04:52:18 +0200 Subject: [PATCH 1028/1514] Update blast OSX and add ARM builds (#49443) * add ARM builds * [ci skip] add build failure record for recipe recipes/blast * Revert "[ci skip] add build failure record for recipe recipes/blast" This reverts commit bf11ecee7caac25a531d21ad3287bdfe4ecfcafd. * Disable all builds except osx-64 (for speedy testing) * Remove `epruesse` from maintainers, as requested See: https://github.com/bioconda/bioconda-recipes/pull/49338#issuecomment-2239731757 * Reformat ./configure flags * Remove C/C++ compiler version pin * Re-pin Clang to version 14 * Formatting and comments updates * Give make more jobs * Clang v15? * Drop `RspbProc` build due to Clang version incompatibility * Retry dynlibs for osx + reformatting * Re-enable linux * Remove `pcre` library * Comment updates * Preparation for osx-arm64 (not recognised otherwise) * Update patches get_species_taxids.sh patch was fixed in blast-2.11.0. Moved the build.sh patching to the patch file instead * Add rpsbproc to prevent downstream regression bugs * Metadata updates * Fix incorrectly removed run dep. * Re-add static linking for osx * Them pesky GNU vs BSD options --- recipes/blast/build.sh | 333 +-- recipes/blast/conda_build_config.yaml | 7 - recipes/blast/configurellvm.patch | 10 +- recipes/blast/get_species_taxids.patch | 21 +- recipes/blast/meta.yaml | 46 +- recipes/blast/normbase.patch | 8 - recipes/blast/phonehome.patch | 1 + recipes/blast/update_configsub.patch | 3207 ++++++++++++++++++++++++ 8 files changed, 3441 insertions(+), 192 deletions(-) delete mode 100644 recipes/blast/conda_build_config.yaml delete mode 100644 recipes/blast/normbase.patch create mode 100644 recipes/blast/update_configsub.patch diff --git a/recipes/blast/build.sh b/recipes/blast/build.sh index e15801465e2e3..b9e8a95bcc91f 100644 --- a/recipes/blast/build.sh +++ b/recipes/blast/build.sh @@ -1,167 +1,220 @@ -#!/bin/bash -set -euxo pipefail +#!/usr/bin/env bash -export BLAST_SRC_DIR="${SRC_DIR}/blast" -cd $BLAST_SRC_DIR/c++/ +set -o xtrace +set -o errexit +set -o nounset +set -o pipefail -export CFLAGS="$CFLAGS -O2" -export CXXFLAGS="$CXXFLAGS -O2" -export CPPFLAGS="$CPPFLAGS -I$PREFIX/include" -export LDFLAGS="$LDFLAGS -L$PREFIX/lib" -export CC_FOR_BUILD=$CC -if test x"`uname`" = x"Linux"; then - # only add things needed; not supported by OSX ld - LDFLAGS="$LDFLAGS -Wl,-as-needed" -fi +# Source path +BLAST_SRC_DIR="$SRC_DIR/c++" +# Work directory +RESULT_PATH="$BLAST_SRC_DIR/Release" -if [ `uname` == Darwin ]; then - export LDFLAGS="${LDFLAGS} -Wl,-rpath,$PREFIX/lib -lz -lbz2" - # See https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk for -D_LIBCPP_DISABLE_AVAILABILITY - export CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" -else - export CPP_FOR_BUILD=$CPP +# C/C++ preprocessor header includes paths +export CPPFLAGS="$CPPFLAGS -I$PREFIX/include" +# Linker library paths +export LDFLAGS="$LDFLAGS -L$PREFIX/lib" +# C++ compiler flags +if [[ "$(uname)" = "Darwin" ]]; then + # See https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk for -D_LIBCPP_DISABLE_AVAILABILITY + export CXXFLAGS="$CXXFLAGS -D_LIBCPP_DISABLE_AVAILABILITY" fi -LIB_INSTALL_DIR=$PREFIX/lib/ncbi-blast+ - -# Get optional RpsbProc -# The rpsbproc command line utility is an addition to the standalone version of -# Reverse Position-Specific BLAST (RPS-BLAST), also known as CD-Search (Conserved -# Domain Search). -mkdir -p src/app/RpsbProc -cp -rf "${SRC_DIR}/RpsbProc/src/"* src/app/RpsbProc/ +LIB_INSTALL_DIR="$PREFIX/lib/ncbi-blast+" # Configuration synopsis: # https://ncbi.github.io/cxx-toolkit/pages/ch_config.html#ch_config.ch_configget_synopsi -# -# Description of used options (from ./configure --help): -# bin-release: +# Run `./configure --help` for all flags. +CONFIGURE_FLAGS="--with-build-root=$RESULT_PATH" + +# platform-independent flags +## BUILD CHAIN OPTIONS +# --with(out)-bin-release: # Build executables suitable for public release -# 64: -# Compile in 64-bit mode instead of 32-bit. -# mt: +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-bin-release" +# --with(out)-debug: +# Build non-debug versions of libs and apps. +# Strips -D_DEBUG and -g, engage -DNDEBUG and -O. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-debug" +# --with(out)-strip: +# Strip binaries at build time (remove debugging symbols) +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-strip" +# --with-experimental={ChaosMonkey,Int4GI,Int8GI,StrictGI,PSGLoader,BM64,C++20,C2X}: +# Enable named experimental feature (comma-separated list): +# - ChaosMonkey Enable "ChaosMonkey" failure testing. +# - Int4GI Use a simple 32-bit type for GI numbers. +# - Int8GI Use a simple 64-bit type for GI numbers. +# - StrictGI Use a strict 64-bit type for GI numbers. +# - PSGLoader Let the GenBank data loader use PubSeq Gateway (PSG). +# - BM64 Use 64-bit bitset indices. +# - C++20 Use '-std=gnu++20' compiler flag. +# - C2X Use '-std=gnu2x' compiler flag. +# See c++/src/build-system/configure.ac lines 1020:1068 for the named options. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-experimental=Int8GI" +# --with(out)-mt: # Compile in a multi-threading safe manner. -# dll: -# Use dynamic instead of static linking. -# openmp: -# Enable OpenMP extensions for all projects. -# autodep: -# No automatic dependency build (one time build). -# makefile-auto-update: -# No rebuild of makefile (one time build). -# flat-makefile: -# Use single makefile. -# caution: +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-mt" +# --with(out)-autodep: +# Do not automatically generate dependencies (one time build). +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-autodep" +# --with(out)-makefile-auto-update: +# Do not auto-update generated makefiles (one time build). +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-makefile-auto-update" +# --with(out)-flat-makefile: +# Generate an all-encompassing flat makefile. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-flat-makefile" +# --with(out)-caution: # Proceed configuration without asking when in doubt. -# lzo: -# Don't add lzo support (compression lib, req. lzo >2.x). -# runpath: -# Set runpath for installed $PREFIX location. -# hard-runpath: -# Hard-code runtime path, ignoring LD_LIBRARY_PATH (disallow LD_LIBRARY_PATH override on Linux). -# debug: -# Strip -D_DEBUG and -g, engage -DNDEBUG and -O. -# with-experimental=Int8GI: -# Enable named experimental feature: Int8GI (Use a simple 64-bit type for GI numbers). -# See c++/src/build-system/configure.ac lines 1020:1068 for the named options. -# strip: -# Strip binaries at build time (remove debugging symbols) -# vdb: -# Disable VDB/SRA toolkit. -# z: +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-caution" +# --with(out)-sse42 +# Disable SSE 4.2 when optimizing. +# Old CPU's (read: released befor 2012) may not have this instruction set. +# We can consider removing this, considering the NCBI builds enable this now. +# See: https://github.com/bioconda/bioconda-recipes/pull/17677 +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-sse42" + +## LIBRARIES +# --with(out)-pcre: +# Do not use pcre (Perl regex). +# The NCBI release builds also pass this. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-pcre" +# --with(out)-lzo: +# Do not add lzo support (compression lib, req. lzo >2.x). +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-lzo" +# --with(out)-vdb: +# Enable VDB/SRA toolkit. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-vdb=$PREFIX" +# --with(out)-z: # Set zlib path (compression lib). -# bz2: +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-z=$PREFIX" +# --with(out)-bz2: # Set bzlib path (compression lib). -# krb5: -# Disable kerberos (needed on OSX). -# gnutls: -# Disable gnutls. -# gcrypt: -# Disable gcrypt (needed on OSX). -# sse42 -# Don't enable SSE 4.2 when optimizing. -# pcre: -# Disable pcre (Perl regex). +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-bz2=$PREFIX" +# --with(out)-sqlite3: +# Set sqlite3 path (local database lib). +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-sqlite3=$PREFIX" +# --with(out)-krb5: +# Do not use Kerberos 5. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-krb5" +# --with(out)-gnutls: +# Do not use gnutls. +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-gnutls" +# --with(out)-boost: +# Do not use Boost. +# It tries to search for it and prints some warnings, so might as well tell it beforehand. +# See: https://github.com/bioconda/bioconda-recipes/pull/15754 +CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-boost" + +# platform-specific flags +if [[ "$(uname)" = "Linux" ]]; then + # --with(out)-64: + # Compile in 64-bit mode instead of 32-bit. + # Flag not available for osx build. + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-64" + # --with(out)-openmp: + # Enable OpenMP extensions for all projects. + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-openmp" + + ## LINKING + # Dynamically link libraries + # --with(out)-dll: + # Use dynamic instead of static library linking. + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-dll" + # --with(out)-runpath: + # Set runpath for installed $PREFIX location. + # Needed for --with-dll. + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-runpath=$LIB_INSTALL_DIR" + # --with(out)-hard-runpath: + # Hard-code runtime path, ignoring LD_LIBRARY_PATH + # (disallow LD_LIBRARY_PATH override on Linux). + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-hard-runpath" +else + # --with(out)-openmp: + # Disable OpenMP extensions for all projects. + # Does not work without hacks for OSX + # See: https://github.com/bioconda/bioconda-recipes/pull/40555 + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-openmp" + # --with(out)-gcrypt: + # Do not use gcrypt (needed on OSX). + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-gcrypt" + # --with(out)-zstd: + # Do not use Zstandard. + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --without-zstd" + + ## LINKING + # Build statically linked programs. For some reason it raises segfaults during compilation on + # osx-64 when trying a dynamically linked build. + # --with-static --with(out)-dll: + # Use static instead of dynamic library linking. + CONFIGURE_FLAGS="$CONFIGURE_FLAGS --with-static --without-dll" +fi # Fixes building on unix (linux and osx) export AR="${AR} rcs" -if [[ $(uname) = Linux ]] ; then - ./configure \ - --with-bin-release \ - --with-64 \ - --with-mt \ - --with-dll \ - --with-openmp \ - --without-autodep \ - --without-makefile-auto-update \ - --with-flat-makefile \ - --without-caution \ - --without-lzo \ - --with-hard-runpath \ - --with-runpath=$LIB_INSTALL_DIR \ - --without-debug \ - --with-experimental=Int8GI \ - --with-strip \ - --with-vdb=$PREFIX \ - --with-z=$PREFIX \ - --with-bz2=$PREFIX \ - --without-krb5 \ - --without-gnutls \ - --without-sse42 -else - ./configure \ - --with-bin-release \ - --with-mt \ - --without-openmp \ - --with-flat-makefile \ - --without-lzo \ - --without-zstd \ - --without-debug \ - --with-experimental=Int8GI \ - --with-strip \ - --with-vdb=$PREFIX \ - --with-z=$PREFIX \ - --with-bz2=$PREFIX \ - --without-krb5 \ - --without-gnutls \ - --without-sse42 \ - --without-gcrypt \ - --without-pcre -fi - -#list apps to build -apps="blastp.exe blastn.exe blastx.exe tblastn.exe tblastx.exe psiblast.exe" -apps="$apps rpsblast.exe rpstblastn.exe makembindex.exe segmasker.exe" -apps="$apps dustmasker.exe windowmasker.exe deltablast.exe makeblastdb.exe" -apps="$apps blastdbcmd.exe blastdb_aliastool.exe convert2blastmask.exe" -apps="$apps blastdbcheck.exe makeprofiledb.exe blast_formatter.exe rpsbproc.exe" -apps="$apps blastn_vdb.exe tblastn_vdb.exe" -cd ReleaseMT +# Run configure script +cd "$BLAST_SRC_DIR" +./configure.orig $CONFIGURE_FLAGS >&2 + + +# Run GNU Make +# List of apps to build +apps="\ +blast_formatter.exe \ +blastdb_aliastool.exe \ +blastdbcheck.exe \ +blastdbcmd.exe \ +blastn_vdb.exe \ +blastn.exe \ +blastp.exe \ +blastx.exe \ +convert2blastmask.exe \ +deltablast.exe \ +dustmasker.exe \ +makeblastdb.exe \ +makembindex.exe \ +makeprofiledb.exe \ +psiblast.exe \ +rpsblast.exe \ +rpstblastn.exe \ +segmasker.exe \ +tblastn_vdb.exe \ +tblastn.exe \ +tblastx.exe \ +windowmasker.exe \ +" # The "datatool" binary needs the libs at build time, create # link from final install path to lib build dir: -ln -s $BLAST_SRC_DIR/c++/ReleaseMT/lib $LIB_INSTALL_DIR +ln -s "$RESULT_PATH/lib" "$LIB_INSTALL_DIR" -cd build -echo "RUNNING MAKE" -#make -j${CPU_COUNT} -f Makefile.flat $apps -make -j1 -f Makefile.flat $apps +cd "$RESULT_PATH/build" +echo "RUNNING MAKE" >&2 +make -j1 -f Makefile.flat $apps >&2 # remove temporary link -rm $LIB_INSTALL_DIR - -mkdir -p $PREFIX/bin $LIB_INSTALL_DIR -chmod +x $BLAST_SRC_DIR/c++/ReleaseMT/bin/* -cp $BLAST_SRC_DIR/c++/ReleaseMT/bin/* $PREFIX/bin/ -cp $BLAST_SRC_DIR/c++/ReleaseMT/lib/* $LIB_INSTALL_DIR +rm "$LIB_INSTALL_DIR" + +# Copy compiled binaries to the Conda $PREFIX +mkdir -p "$PREFIX/bin" +chmod +x "$RESULT_PATH/bin/"* +cp "$RESULT_PATH/bin/"* "$PREFIX/bin/" +# Copy compiled libraries to the Conda $PREFIX +if [[ "$(uname)" = "Linux" ]]; then + # Not necessary for osx as that is statically linked + mkdir -p "$LIB_INSTALL_DIR" + cp "$RESULT_PATH/lib/"* "$LIB_INSTALL_DIR" +fi -#chmod +x $PREFIX/bin/* -sed -i.bak '1 s|^.*$|#!/usr/bin/env perl|g' $PREFIX/bin/update_blastdb.pl -# Patches to enable this script to work better in bioconda -sed -i.bak 's/mktemp.*/mktemp`/; s/exit 1/exit 0/; s/^export PATH=\/bin:\/usr\/bin:/\#export PATH=\/bin:\/usr\/bin:/g' $PREFIX/bin/get_species_taxids.sh +# Patch Perl shebangs +sed -i.bak '1 s|^.*$|#!/usr/bin/env perl|g' "$PREFIX/bin/update_blastdb.pl" +sed -i.bak '1 s|^.*$|#!/usr/bin/env perl|g' "$PREFIX/bin/legacy_blast.pl" +# Patch Python2 shebangs +sed -i.bak '1 s|^.*$|#!/usr/bin/env python|g' "$PREFIX/bin/windowmasker_2.2.22_adapter.py" +# remove the sed backup files +rm -f -v "$PREFIX/bin/"*.bak -#extra log to check all exe are present -ls -s $PREFIX/bin/ +# Extra log to check results +ls -lhAF "$PREFIX/bin/" diff --git a/recipes/blast/conda_build_config.yaml b/recipes/blast/conda_build_config.yaml deleted file mode 100644 index 1271f9dfbd295..0000000000000 --- a/recipes/blast/conda_build_config.yaml +++ /dev/null @@ -1,7 +0,0 @@ -# current version does not build with newer compilers -cxx_compiler_version: - - 10 # [linux] - - 14 # [osx] -c_compiler_version: - - 10 # [linux] - - 14 # [osx] diff --git a/recipes/blast/configurellvm.patch b/recipes/blast/configurellvm.patch index 83a44bc1372b2..4c84df2bc1e22 100644 --- a/recipes/blast/configurellvm.patch +++ b/recipes/blast/configurellvm.patch @@ -1,5 +1,5 @@ -# fix OSX build issue -# see issue #20874 for more info +# Fix OSX build issue. +# See: https://github.com/bioconda/bioconda-recipes/pull/20874 diff -ruN c++/src/build-system/configure c++/src/build-system/configure --- c++/src/build-system/configure 2023-05-03 08:56:44.398601956 +0200 +++ c++/src/build-system/configure 2023-05-03 09:34:41.470127549 +0200 @@ -24,14 +24,14 @@ diff -ruN c++/src/build-system/configure c++/src/build-system/configure fi -rm -f conftest* +rm -rf conftest* - + fi - + @@ -10000,7 +10002,7 @@ else ac_cv_header_stdc=no fi -rm -f conftest* +rm -rf conftest* - + fi diff --git a/recipes/blast/get_species_taxids.patch b/recipes/blast/get_species_taxids.patch index 1ec9d347aa21a..1da3879cd2470 100644 --- a/recipes/blast/get_species_taxids.patch +++ b/recipes/blast/get_species_taxids.patch @@ -1,14 +1,11 @@ -# fix single line json output of esummary which makes -# subsequent calls fail (grep -v will just remove everything) -diff -ruN c++/src/app/blast/get_species_taxids.sh c++/src/app/blast/get_species_taxids.sh ---- c++/src/app/blast/get_species_taxids.sh 2021-05-19 15:54:06.000000000 +0200 -+++ c++/src/app/blast/get_species_taxids.sh 2021-07-13 10:23:40.000000000 +0200 -@@ -135,7 +135,7 @@ - fi - fi +# The PATH override will do more harm than good +--- c++/src/app/blast/get_species_taxids.sh ++++ c++/src/app/blast/get_species_taxids.sh +@@ -34,7 +34,6 @@ + # + # =========================================================================== -- esummary -mode json < $OUTPUT > $TMP -+ esummary -mode json < $OUTPUT | sed 's/{/{\n/g; s/,/,\n/g; s/}/}\n/g' > $TMP +-export PATH=/bin:/usr/bin:/am/ncbiapdata/bin:$HOME/edirect:$PATH + set -uo pipefail - if [ $? -ne 0 ]; then - error_exit "esummary error" $? + TOO_MANY_MATCHES=500 diff --git a/recipes/blast/meta.yaml b/recipes/blast/meta.yaml index 69232e668d399..a637fdd91d09e 100644 --- a/recipes/blast/meta.yaml +++ b/recipes/blast/meta.yaml @@ -9,24 +9,14 @@ package: source: - url: https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/{{ version }}/ncbi-blast-{{ version }}+-src.tar.gz sha256: {{ sha256 }} - folder: blast patches: - configurellvm.patch - get_species_taxids.patch - phonehome.patch - # Get optional RpsbProc - # The rpsbproc command line utility is an addition to the standalone version of - # Reverse Position-Specific BLAST (RPS-BLAST), also known as CD-Search (Conserved - # Domain Search). - - url: https://ftp.ncbi.nih.gov/pub/mmdb/cdd/rpsbproc/RpsbProc-src.tar.gz - sha256: 8b29f7e7d0a0654d10943e362557ed2d8df9a16218a4c8441c4dea4e7dc9154f - folder: RpsbProc - patches: - - normbase.patch + - update_configsub.patch build: - skip: True # [osx] - number: 0 + number: 1 run_exports: # Now, the point releases seem to be only bugfixes at least (but this definitely was not the # case up to v2.2.31) @@ -40,7 +30,6 @@ requirements: host: - zlib - bzip2 - - pcre - entrez-direct - ncbi-vdb - curl @@ -48,7 +37,6 @@ requirements: run: - zlib - bzip2 - - pcre - perl - perl-list-moreutils - perl-archive-tar @@ -56,6 +44,9 @@ requirements: - entrez-direct - ncbi-vdb - curl + # Added to prevent regression bugs within 2.16.0. + # Remove on next release + - rpsbproc test: files: @@ -63,9 +54,6 @@ test: - testdatabase.fa commands: # (see run_test.sh for remainder of tests) - - blastn -help - - blastp -help - - makeblastdb -help - blastdb_aliastool -version > /dev/null - blastdbcheck -version > /dev/null - blastdbcmd -version > /dev/null @@ -80,7 +68,6 @@ test: - psiblast -version > /dev/null - rpsblast -version > /dev/null - rpstblastn -version > /dev/null - - rpsbproc -version > /dev/null - segmasker -version > /dev/null - tblastn -version > /dev/null - tblastn_vdb -version > /dev/null @@ -91,10 +78,30 @@ test: about: home: https://blast.ncbi.nlm.nih.gov/doc/blast-help/ - license: Public Domain + # SPDX license ID for NCBI Public Domain + license: NCBI-PD + license_file: c++/scripts/projects/blast/LICENSE summary: BLAST+ is a new suite of BLAST tools that utilizes the NCBI C++ Toolkit. + description: | + BLAST Command Line Applications. + + The NCBI Basic Local Alignment Search Tool (BLAST) finds regions of + local similarity between sequences. The program compares nucleotide or + protein sequences to sequence databases and calculates the statistical + significance of matches. BLAST can be used to infer functional and + evolutionary relationships between sequences as well as help identify + members of gene families. + + For more information, visit https://blast.ncbi.nlm.nih.gov + extra: + # this can be enabled once: + # perl-list-moreutils-xs, perl-io-compress + # have ARM builds available + #additional-platforms: + # - linux-aarch64 + # - osx-arm64 identifiers: - biotools:blast - doi:10.1016/S0022-2836(05)80360-2 @@ -102,4 +109,3 @@ extra: recipe-maintainers: - christiam - ebete - - epruesse diff --git a/recipes/blast/normbase.patch b/recipes/blast/normbase.patch deleted file mode 100644 index 78183e1d88122..0000000000000 --- a/recipes/blast/normbase.patch +++ /dev/null @@ -1,8 +0,0 @@ ---- src/common/normbase.hpp -+++ src/common/normbase.hpp -@@ -142,7 +142,7 @@ private: - - std::ostream & operator << (std::ostream &os, const CSimpleException &e); - --#define THROW_SIMPLE(a) throw CSimpleException(__FILE__, __LINE__, dynamic_cast (stringstream() << a)) -+#define THROW_SIMPLE(a) throw CSimpleException(__FILE__, __LINE__, static_cast (stringstream() << a)) diff --git a/recipes/blast/phonehome.patch b/recipes/blast/phonehome.patch index a02e55a0ad186..6fbf6e0326150 100644 --- a/recipes/blast/phonehome.patch +++ b/recipes/blast/phonehome.patch @@ -1,3 +1,4 @@ +# See: https://github.com/bioconda/bioconda-recipes/pull/32791 --- c++/include/connect/ncbi_usage_report.hpp 2020-09-25 19:21:05 +0200 +++ c++/include/connect/ncbi_usage_report.hpp 2022-07-18 23:39:42 +0200 @@ -39,7 +39,7 @@ diff --git a/recipes/blast/update_configsub.patch b/recipes/blast/update_configsub.patch new file mode 100644 index 0000000000000..d4dfa0bd35e7d --- /dev/null +++ b/recipes/blast/update_configsub.patch @@ -0,0 +1,3207 @@ +# Update config.sub to a modern version that recognises osx-arm64 +--- c++/src/build-system/config.sub ++++ c++/src/build-system/config.sub +@@ -1,12 +1,14 @@ + #! /bin/sh + # Configuration validation subroutine script. +-# Copyright 1992-2013 Free Software Foundation, Inc. ++# Copyright 1992-2024 Free Software Foundation, Inc. + +-timestamp='2013-02-12' ++# shellcheck disable=SC2006,SC2268 # see below for rationale ++ ++timestamp='2024-01-01' + + # This file is free software; you can redistribute it and/or modify it + # under the terms of the GNU General Public License as published by +-# the Free Software Foundation; either version 3 of the License, or ++# the Free Software Foundation, either version 3 of the License, or + # (at your option) any later version. + # + # This program is distributed in the hope that it will be useful, but +@@ -15,7 +17,7 @@ timestamp='2013-02-12' + # General Public License for more details. + # + # You should have received a copy of the GNU General Public License +-# along with this program; if not, see . ++# along with this program; if not, see . + # + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a +@@ -25,7 +27,7 @@ timestamp='2013-02-12' + # of the GNU General Public License, version 3 ("GPLv3"). + + +-# Please send patches with a ChangeLog entry to config-patches@gnu.org. ++# Please send patches to . + # + # Configuration subroutine to validate and canonicalize a configuration type. + # Supply the specified configuration type as an argument. +@@ -33,7 +35,7 @@ timestamp='2013-02-12' + # Otherwise, we print the canonical config type on stdout and succeed. + + # You can get the latest version of this script from: +-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD ++# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub + + # This file is supposed to be the same for all GNU packages + # and recognize all the CPU types, system types and aliases +@@ -50,15 +52,21 @@ timestamp='2013-02-12' + # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM + # It is wrong to echo any other type of specification. + ++# The "shellcheck disable" line above the timestamp inhibits complaints ++# about features and limitations of the classic Bourne shell that were ++# superseded or lifted in POSIX. However, this script identifies a wide ++# variety of pre-POSIX systems that do not have POSIX shells at all, and ++# even some reasonably current systems (Solaris 10 as case-in-point) still ++# have a pre-POSIX /bin/sh. ++ + me=`echo "$0" | sed -e 's,.*/,,'` + + usage="\ +-Usage: $0 [OPTION] CPU-MFR-OPSYS +- $0 [OPTION] ALIAS ++Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + + Canonicalize a configuration name. + +-Operation modes: ++Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit +@@ -68,13 +76,13 @@ Report bugs and patches to ." + version="\ + GNU config.sub ($timestamp) + +-Copyright 1992-2013 Free Software Foundation, Inc. ++Copyright 1992-2024 Free Software Foundation, Inc. + + This is free software; see the source for copying conditions. There is NO + warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + + help=" +-Try \`$me --help' for more information." ++Try '$me --help' for more information." + + # Parse command line + while test $# -gt 0 ; do +@@ -90,12 +98,12 @@ while test $# -gt 0 ; do + - ) # Use stdin as input. + break ;; + -* ) +- echo "$me: invalid option $1$help" ++ echo "$me: invalid option $1$help" >&2 + exit 1 ;; + + *local*) + # First pass through any local machine types. +- echo $1 ++ echo "$1" + exit ;; + + * ) +@@ -111,1209 +119,1167 @@ case $# in + exit 1;; + esac + +-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +-# Here we must recognize all the valid KERNEL-OS combinations. +-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +-case $maybe_os in +- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ +- linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ +- knetbsd*-gnu* | netbsd*-gnu* | \ +- kopensolaris*-gnu* | \ +- storm-chaos* | os2-emx* | rtmk-nova*) +- os=-$maybe_os +- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` +- ;; +- android-linux) +- os=-linux-android +- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown +- ;; +- *) +- basic_machine=`echo $1 | sed 's/-[^-]*$//'` +- if [ $basic_machine != $1 ] +- then os=`echo $1 | sed 's/.*-/-/'` +- else os=; fi +- ;; +-esac ++# Split fields of configuration type ++# shellcheck disable=SC2162 ++saved_IFS=$IFS ++IFS="-" read field1 field2 field3 field4 <&2 ++ exit 1 + ;; +- -ptx*) +- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ++ *-*-*-*) ++ basic_machine=$field1-$field2 ++ basic_os=$field3-$field4 + ;; +- -windowsnt*) +- os=`echo $os | sed -e 's/windowsnt/winnt/'` ++ *-*-*) ++ # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two ++ # parts ++ maybe_os=$field2-$field3 ++ case $maybe_os in ++ nto-qnx* | linux-* | uclinux-uclibc* \ ++ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ ++ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ ++ | storm-chaos* | os2-emx* | rtmk-nova* | managarm-* \ ++ | windows-* ) ++ basic_machine=$field1 ++ basic_os=$maybe_os ++ ;; ++ android-linux) ++ basic_machine=$field1-unknown ++ basic_os=linux-android ++ ;; ++ *) ++ basic_machine=$field1-$field2 ++ basic_os=$field3 ++ ;; ++ esac + ;; +- -psos*) +- os=-psos ++ *-*) ++ # A lone config we happen to match not fitting any pattern ++ case $field1-$field2 in ++ decstation-3100) ++ basic_machine=mips-dec ++ basic_os= ++ ;; ++ *-*) ++ # Second component is usually, but not always the OS ++ case $field2 in ++ # Prevent following clause from handling this valid os ++ sun*os*) ++ basic_machine=$field1 ++ basic_os=$field2 ++ ;; ++ zephyr*) ++ basic_machine=$field1-unknown ++ basic_os=$field2 ++ ;; ++ # Manufacturers ++ dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ ++ | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ ++ | unicom* | ibm* | next | hp | isi* | apollo | altos* \ ++ | convergent* | ncr* | news | 32* | 3600* | 3100* \ ++ | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ ++ | ultra | tti* | harris | dolphin | highlevel | gould \ ++ | cbm | ns | masscomp | apple | axis | knuth | cray \ ++ | microblaze* | sim | cisco \ ++ | oki | wec | wrs | winbond) ++ basic_machine=$field1-$field2 ++ basic_os= ++ ;; ++ *) ++ basic_machine=$field1 ++ basic_os=$field2 ++ ;; ++ esac ++ ;; ++ esac + ;; +- -mint | -mint[0-9]*) +- basic_machine=m68k-atari +- os=-mint ++ *) ++ # Convert single-component short-hands not valid as part of ++ # multi-component configurations. ++ case $field1 in ++ 386bsd) ++ basic_machine=i386-pc ++ basic_os=bsd ++ ;; ++ a29khif) ++ basic_machine=a29k-amd ++ basic_os=udi ++ ;; ++ adobe68k) ++ basic_machine=m68010-adobe ++ basic_os=scout ++ ;; ++ alliant) ++ basic_machine=fx80-alliant ++ basic_os= ++ ;; ++ altos | altos3068) ++ basic_machine=m68k-altos ++ basic_os= ++ ;; ++ am29k) ++ basic_machine=a29k-none ++ basic_os=bsd ++ ;; ++ amdahl) ++ basic_machine=580-amdahl ++ basic_os=sysv ++ ;; ++ amiga) ++ basic_machine=m68k-unknown ++ basic_os= ++ ;; ++ amigaos | amigados) ++ basic_machine=m68k-unknown ++ basic_os=amigaos ++ ;; ++ amigaunix | amix) ++ basic_machine=m68k-unknown ++ basic_os=sysv4 ++ ;; ++ apollo68) ++ basic_machine=m68k-apollo ++ basic_os=sysv ++ ;; ++ apollo68bsd) ++ basic_machine=m68k-apollo ++ basic_os=bsd ++ ;; ++ aros) ++ basic_machine=i386-pc ++ basic_os=aros ++ ;; ++ aux) ++ basic_machine=m68k-apple ++ basic_os=aux ++ ;; ++ balance) ++ basic_machine=ns32k-sequent ++ basic_os=dynix ++ ;; ++ blackfin) ++ basic_machine=bfin-unknown ++ basic_os=linux ++ ;; ++ cegcc) ++ basic_machine=arm-unknown ++ basic_os=cegcc ++ ;; ++ convex-c1) ++ basic_machine=c1-convex ++ basic_os=bsd ++ ;; ++ convex-c2) ++ basic_machine=c2-convex ++ basic_os=bsd ++ ;; ++ convex-c32) ++ basic_machine=c32-convex ++ basic_os=bsd ++ ;; ++ convex-c34) ++ basic_machine=c34-convex ++ basic_os=bsd ++ ;; ++ convex-c38) ++ basic_machine=c38-convex ++ basic_os=bsd ++ ;; ++ cray) ++ basic_machine=j90-cray ++ basic_os=unicos ++ ;; ++ crds | unos) ++ basic_machine=m68k-crds ++ basic_os= ++ ;; ++ da30) ++ basic_machine=m68k-da30 ++ basic_os= ++ ;; ++ decstation | pmax | pmin | dec3100 | decstatn) ++ basic_machine=mips-dec ++ basic_os= ++ ;; ++ delta88) ++ basic_machine=m88k-motorola ++ basic_os=sysv3 ++ ;; ++ dicos) ++ basic_machine=i686-pc ++ basic_os=dicos ++ ;; ++ djgpp) ++ basic_machine=i586-pc ++ basic_os=msdosdjgpp ++ ;; ++ ebmon29k) ++ basic_machine=a29k-amd ++ basic_os=ebmon ++ ;; ++ es1800 | OSE68k | ose68k | ose | OSE) ++ basic_machine=m68k-ericsson ++ basic_os=ose ++ ;; ++ gmicro) ++ basic_machine=tron-gmicro ++ basic_os=sysv ++ ;; ++ go32) ++ basic_machine=i386-pc ++ basic_os=go32 ++ ;; ++ h8300hms) ++ basic_machine=h8300-hitachi ++ basic_os=hms ++ ;; ++ h8300xray) ++ basic_machine=h8300-hitachi ++ basic_os=xray ++ ;; ++ h8500hms) ++ basic_machine=h8500-hitachi ++ basic_os=hms ++ ;; ++ harris) ++ basic_machine=m88k-harris ++ basic_os=sysv3 ++ ;; ++ hp300 | hp300hpux) ++ basic_machine=m68k-hp ++ basic_os=hpux ++ ;; ++ hp300bsd) ++ basic_machine=m68k-hp ++ basic_os=bsd ++ ;; ++ hppaosf) ++ basic_machine=hppa1.1-hp ++ basic_os=osf ++ ;; ++ hppro) ++ basic_machine=hppa1.1-hp ++ basic_os=proelf ++ ;; ++ i386mach) ++ basic_machine=i386-mach ++ basic_os=mach ++ ;; ++ isi68 | isi) ++ basic_machine=m68k-isi ++ basic_os=sysv ++ ;; ++ m68knommu) ++ basic_machine=m68k-unknown ++ basic_os=linux ++ ;; ++ magnum | m3230) ++ basic_machine=mips-mips ++ basic_os=sysv ++ ;; ++ merlin) ++ basic_machine=ns32k-utek ++ basic_os=sysv ++ ;; ++ mingw64) ++ basic_machine=x86_64-pc ++ basic_os=mingw64 ++ ;; ++ mingw32) ++ basic_machine=i686-pc ++ basic_os=mingw32 ++ ;; ++ mingw32ce) ++ basic_machine=arm-unknown ++ basic_os=mingw32ce ++ ;; ++ monitor) ++ basic_machine=m68k-rom68k ++ basic_os=coff ++ ;; ++ morphos) ++ basic_machine=powerpc-unknown ++ basic_os=morphos ++ ;; ++ moxiebox) ++ basic_machine=moxie-unknown ++ basic_os=moxiebox ++ ;; ++ msdos) ++ basic_machine=i386-pc ++ basic_os=msdos ++ ;; ++ msys) ++ basic_machine=i686-pc ++ basic_os=msys ++ ;; ++ mvs) ++ basic_machine=i370-ibm ++ basic_os=mvs ++ ;; ++ nacl) ++ basic_machine=le32-unknown ++ basic_os=nacl ++ ;; ++ ncr3000) ++ basic_machine=i486-ncr ++ basic_os=sysv4 ++ ;; ++ netbsd386) ++ basic_machine=i386-pc ++ basic_os=netbsd ++ ;; ++ netwinder) ++ basic_machine=armv4l-rebel ++ basic_os=linux ++ ;; ++ news | news700 | news800 | news900) ++ basic_machine=m68k-sony ++ basic_os=newsos ++ ;; ++ news1000) ++ basic_machine=m68030-sony ++ basic_os=newsos ++ ;; ++ necv70) ++ basic_machine=v70-nec ++ basic_os=sysv ++ ;; ++ nh3000) ++ basic_machine=m68k-harris ++ basic_os=cxux ++ ;; ++ nh[45]000) ++ basic_machine=m88k-harris ++ basic_os=cxux ++ ;; ++ nindy960) ++ basic_machine=i960-intel ++ basic_os=nindy ++ ;; ++ mon960) ++ basic_machine=i960-intel ++ basic_os=mon960 ++ ;; ++ nonstopux) ++ basic_machine=mips-compaq ++ basic_os=nonstopux ++ ;; ++ os400) ++ basic_machine=powerpc-ibm ++ basic_os=os400 ++ ;; ++ OSE68000 | ose68000) ++ basic_machine=m68000-ericsson ++ basic_os=ose ++ ;; ++ os68k) ++ basic_machine=m68k-none ++ basic_os=os68k ++ ;; ++ paragon) ++ basic_machine=i860-intel ++ basic_os=osf ++ ;; ++ parisc) ++ basic_machine=hppa-unknown ++ basic_os=linux ++ ;; ++ psp) ++ basic_machine=mipsallegrexel-sony ++ basic_os=psp ++ ;; ++ pw32) ++ basic_machine=i586-unknown ++ basic_os=pw32 ++ ;; ++ rdos | rdos64) ++ basic_machine=x86_64-pc ++ basic_os=rdos ++ ;; ++ rdos32) ++ basic_machine=i386-pc ++ basic_os=rdos ++ ;; ++ rom68k) ++ basic_machine=m68k-rom68k ++ basic_os=coff ++ ;; ++ sa29200) ++ basic_machine=a29k-amd ++ basic_os=udi ++ ;; ++ sei) ++ basic_machine=mips-sei ++ basic_os=seiux ++ ;; ++ sequent) ++ basic_machine=i386-sequent ++ basic_os= ++ ;; ++ sps7) ++ basic_machine=m68k-bull ++ basic_os=sysv2 ++ ;; ++ st2000) ++ basic_machine=m68k-tandem ++ basic_os= ++ ;; ++ stratus) ++ basic_machine=i860-stratus ++ basic_os=sysv4 ++ ;; ++ sun2) ++ basic_machine=m68000-sun ++ basic_os= ++ ;; ++ sun2os3) ++ basic_machine=m68000-sun ++ basic_os=sunos3 ++ ;; ++ sun2os4) ++ basic_machine=m68000-sun ++ basic_os=sunos4 ++ ;; ++ sun3) ++ basic_machine=m68k-sun ++ basic_os= ++ ;; ++ sun3os3) ++ basic_machine=m68k-sun ++ basic_os=sunos3 ++ ;; ++ sun3os4) ++ basic_machine=m68k-sun ++ basic_os=sunos4 ++ ;; ++ sun4) ++ basic_machine=sparc-sun ++ basic_os= ++ ;; ++ sun4os3) ++ basic_machine=sparc-sun ++ basic_os=sunos3 ++ ;; ++ sun4os4) ++ basic_machine=sparc-sun ++ basic_os=sunos4 ++ ;; ++ sun4sol2) ++ basic_machine=sparc-sun ++ basic_os=solaris2 ++ ;; ++ sun386 | sun386i | roadrunner) ++ basic_machine=i386-sun ++ basic_os= ++ ;; ++ sv1) ++ basic_machine=sv1-cray ++ basic_os=unicos ++ ;; ++ symmetry) ++ basic_machine=i386-sequent ++ basic_os=dynix ++ ;; ++ t3e) ++ basic_machine=alphaev5-cray ++ basic_os=unicos ++ ;; ++ t90) ++ basic_machine=t90-cray ++ basic_os=unicos ++ ;; ++ toad1) ++ basic_machine=pdp10-xkl ++ basic_os=tops20 ++ ;; ++ tpf) ++ basic_machine=s390x-ibm ++ basic_os=tpf ++ ;; ++ udi29k) ++ basic_machine=a29k-amd ++ basic_os=udi ++ ;; ++ ultra3) ++ basic_machine=a29k-nyu ++ basic_os=sym1 ++ ;; ++ v810 | necv810) ++ basic_machine=v810-nec ++ basic_os=none ++ ;; ++ vaxv) ++ basic_machine=vax-dec ++ basic_os=sysv ++ ;; ++ vms) ++ basic_machine=vax-dec ++ basic_os=vms ++ ;; ++ vsta) ++ basic_machine=i386-pc ++ basic_os=vsta ++ ;; ++ vxworks960) ++ basic_machine=i960-wrs ++ basic_os=vxworks ++ ;; ++ vxworks68) ++ basic_machine=m68k-wrs ++ basic_os=vxworks ++ ;; ++ vxworks29k) ++ basic_machine=a29k-wrs ++ basic_os=vxworks ++ ;; ++ xbox) ++ basic_machine=i686-pc ++ basic_os=mingw32 ++ ;; ++ ymp) ++ basic_machine=ymp-cray ++ basic_os=unicos ++ ;; ++ *) ++ basic_machine=$1 ++ basic_os= ++ ;; ++ esac + ;; + esac + +-# Decode aliases for certain CPU-COMPANY combinations. ++# Decode 1-component or ad-hoc basic machines + case $basic_machine in +- # Recognize the basic CPU types without company name. +- # Some are omitted here because they have special meanings below. +- 1750a | 580 \ +- | a29k \ +- | aarch64 | aarch64_be \ +- | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ +- | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ +- | am33_2.0 \ +- | arc \ +- | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ +- | avr | avr32 \ +- | be32 | be64 \ +- | bfin \ +- | c4x | clipper \ +- | d10v | d30v | dlx | dsp16xx \ +- | epiphany \ +- | fido | fr30 | frv \ +- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ +- | hexagon \ +- | i370 | i860 | i960 | ia64 \ +- | ip2k | iq2000 \ +- | le32 | le64 \ +- | lm32 \ +- | m32c | m32r | m32rle | m68000 | m68k | m88k \ +- | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ +- | mips | mipsbe | mipseb | mipsel | mipsle \ +- | mips16 \ +- | mips64 | mips64el \ +- | mips64octeon | mips64octeonel \ +- | mips64orion | mips64orionel \ +- | mips64r5900 | mips64r5900el \ +- | mips64vr | mips64vrel \ +- | mips64vr4100 | mips64vr4100el \ +- | mips64vr4300 | mips64vr4300el \ +- | mips64vr5000 | mips64vr5000el \ +- | mips64vr5900 | mips64vr5900el \ +- | mipsisa32 | mipsisa32el \ +- | mipsisa32r2 | mipsisa32r2el \ +- | mipsisa64 | mipsisa64el \ +- | mipsisa64r2 | mipsisa64r2el \ +- | mipsisa64sb1 | mipsisa64sb1el \ +- | mipsisa64sr71k | mipsisa64sr71kel \ +- | mipsr5900 | mipsr5900el \ +- | mipstx39 | mipstx39el \ +- | mn10200 | mn10300 \ +- | moxie \ +- | mt \ +- | msp430 \ +- | nds32 | nds32le | nds32be \ +- | nios | nios2 | nios2eb | nios2el \ +- | ns16k | ns32k \ +- | open8 \ +- | or1k | or32 \ +- | pdp10 | pdp11 | pj | pjl \ +- | powerpc | powerpc64 | powerpc64le | powerpcle \ +- | pyramid \ +- | rl78 | rx \ +- | score \ +- | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ +- | sh64 | sh64le \ +- | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ +- | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ +- | spu \ +- | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ +- | ubicom32 \ +- | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ +- | we32k \ +- | x86 | xc16x | xstormy16 | xtensa \ +- | z8k | z80) +- basic_machine=$basic_machine-unknown +- ;; +- c54x) +- basic_machine=tic54x-unknown +- ;; +- c55x) +- basic_machine=tic55x-unknown +- ;; +- c6x) +- basic_machine=tic6x-unknown +- ;; +- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) +- basic_machine=$basic_machine-unknown +- os=-none +- ;; +- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) +- ;; +- ms1) +- basic_machine=mt-unknown ++ # Here we handle the default manufacturer of certain CPU types. It is in ++ # some cases the only manufacturer, in others, it is the most popular. ++ w89k) ++ cpu=hppa1.1 ++ vendor=winbond + ;; +- +- strongarm | thumb | xscale) +- basic_machine=arm-unknown ++ op50n) ++ cpu=hppa1.1 ++ vendor=oki + ;; +- xgate) +- basic_machine=$basic_machine-unknown +- os=-none ++ op60c) ++ cpu=hppa1.1 ++ vendor=oki + ;; +- xscaleeb) +- basic_machine=armeb-unknown ++ ibm*) ++ cpu=i370 ++ vendor=ibm + ;; +- +- xscaleel) +- basic_machine=armel-unknown ++ orion105) ++ cpu=clipper ++ vendor=highlevel + ;; +- +- # We use `pc' rather than `unknown' +- # because (1) that's what they normally are, and +- # (2) the word "unknown" tends to confuse beginning users. +- i*86 | x86_64) +- basic_machine=$basic_machine-pc +- ;; +- # Object if more than one company name word. +- *-*-*) +- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 +- exit 1 ++ mac | mpw | mac-mpw) ++ cpu=m68k ++ vendor=apple + ;; +- # Recognize the basic CPU types with company name. +- 580-* \ +- | a29k-* \ +- | aarch64-* | aarch64_be-* \ +- | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ +- | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ +- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ +- | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ +- | avr-* | avr32-* \ +- | be32-* | be64-* \ +- | bfin-* | bs2000-* \ +- | c[123]* | c30-* | [cjt]90-* | c4x-* \ +- | clipper-* | craynv-* | cydra-* \ +- | d10v-* | d30v-* | dlx-* \ +- | elxsi-* \ +- | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ +- | h8300-* | h8500-* \ +- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ +- | hexagon-* \ +- | i*86-* | i860-* | i960-* | ia64-* \ +- | ip2k-* | iq2000-* \ +- | le32-* | le64-* \ +- | lm32-* \ +- | m32c-* | m32r-* | m32rle-* \ +- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ +- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ +- | microblaze-* | microblazeel-* \ +- | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ +- | mips16-* \ +- | mips64-* | mips64el-* \ +- | mips64octeon-* | mips64octeonel-* \ +- | mips64orion-* | mips64orionel-* \ +- | mips64r5900-* | mips64r5900el-* \ +- | mips64vr-* | mips64vrel-* \ +- | mips64vr4100-* | mips64vr4100el-* \ +- | mips64vr4300-* | mips64vr4300el-* \ +- | mips64vr5000-* | mips64vr5000el-* \ +- | mips64vr5900-* | mips64vr5900el-* \ +- | mipsisa32-* | mipsisa32el-* \ +- | mipsisa32r2-* | mipsisa32r2el-* \ +- | mipsisa64-* | mipsisa64el-* \ +- | mipsisa64r2-* | mipsisa64r2el-* \ +- | mipsisa64sb1-* | mipsisa64sb1el-* \ +- | mipsisa64sr71k-* | mipsisa64sr71kel-* \ +- | mipsr5900-* | mipsr5900el-* \ +- | mipstx39-* | mipstx39el-* \ +- | mmix-* \ +- | mt-* \ +- | msp430-* \ +- | nds32-* | nds32le-* | nds32be-* \ +- | nios-* | nios2-* | nios2eb-* | nios2el-* \ +- | none-* | np1-* | ns16k-* | ns32k-* \ +- | open8-* \ +- | orion-* \ +- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ +- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ +- | pyramid-* \ +- | rl78-* | romp-* | rs6000-* | rx-* \ +- | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ +- | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ +- | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ +- | sparclite-* \ +- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ +- | tahoe-* \ +- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ +- | tile*-* \ +- | tron-* \ +- | ubicom32-* \ +- | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ +- | vax-* \ +- | we32k-* \ +- | x86-* | x86_64-* | xc16x-* | xps100-* \ +- | xstormy16-* | xtensa*-* \ +- | ymp-* \ +- | z8k-* | z80-*) +- ;; +- # Recognize the basic CPU types without company name, with glob match. +- xtensa*) +- basic_machine=$basic_machine-unknown ++ pmac | pmac-mpw) ++ cpu=powerpc ++ vendor=apple + ;; ++ + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. +- 386bsd) +- basic_machine=i386-unknown +- os=-bsd +- ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) +- basic_machine=m68000-att ++ cpu=m68000 ++ vendor=att + ;; + 3b*) +- basic_machine=we32k-att +- ;; +- a29khif) +- basic_machine=a29k-amd +- os=-udi +- ;; +- abacus) +- basic_machine=abacus-unknown +- ;; +- adobe68k) +- basic_machine=m68010-adobe +- os=-scout +- ;; +- alliant | fx80) +- basic_machine=fx80-alliant +- ;; +- altos | altos3068) +- basic_machine=m68k-altos +- ;; +- am29k) +- basic_machine=a29k-none +- os=-bsd +- ;; +- amd64) +- basic_machine=x86_64-pc +- ;; +- amd64-*) +- basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- amdahl) +- basic_machine=580-amdahl +- os=-sysv +- ;; +- amiga | amiga-*) +- basic_machine=m68k-unknown +- ;; +- amigaos | amigados) +- basic_machine=m68k-unknown +- os=-amigaos +- ;; +- amigaunix | amix) +- basic_machine=m68k-unknown +- os=-sysv4 +- ;; +- apollo68) +- basic_machine=m68k-apollo +- os=-sysv +- ;; +- apollo68bsd) +- basic_machine=m68k-apollo +- os=-bsd +- ;; +- aros) +- basic_machine=i386-pc +- os=-aros +- ;; +- aux) +- basic_machine=m68k-apple +- os=-aux +- ;; +- balance) +- basic_machine=ns32k-sequent +- os=-dynix +- ;; +- blackfin) +- basic_machine=bfin-unknown +- os=-linux +- ;; +- blackfin-*) +- basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` +- os=-linux ++ cpu=we32k ++ vendor=att + ;; + bluegene*) +- basic_machine=powerpc-ibm +- os=-cnk +- ;; +- c54x-*) +- basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- c55x-*) +- basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- c6x-*) +- basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- c90) +- basic_machine=c90-cray +- os=-unicos +- ;; +- cegcc) +- basic_machine=arm-unknown +- os=-cegcc +- ;; +- convex-c1) +- basic_machine=c1-convex +- os=-bsd +- ;; +- convex-c2) +- basic_machine=c2-convex +- os=-bsd +- ;; +- convex-c32) +- basic_machine=c32-convex +- os=-bsd +- ;; +- convex-c34) +- basic_machine=c34-convex +- os=-bsd +- ;; +- convex-c38) +- basic_machine=c38-convex +- os=-bsd +- ;; +- cray | j90) +- basic_machine=j90-cray +- os=-unicos +- ;; +- craynv) +- basic_machine=craynv-cray +- os=-unicosmp +- ;; +- cr16 | cr16-*) +- basic_machine=cr16-unknown +- os=-elf +- ;; +- crds | unos) +- basic_machine=m68k-crds +- ;; +- crisv32 | crisv32-* | etraxfs*) +- basic_machine=crisv32-axis +- ;; +- cris | cris-* | etrax*) +- basic_machine=cris-axis +- ;; +- crx) +- basic_machine=crx-unknown +- os=-elf +- ;; +- da30 | da30-*) +- basic_machine=m68k-da30 +- ;; +- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) +- basic_machine=mips-dec ++ cpu=powerpc ++ vendor=ibm ++ basic_os=cnk + ;; + decsystem10* | dec10*) +- basic_machine=pdp10-dec +- os=-tops10 ++ cpu=pdp10 ++ vendor=dec ++ basic_os=tops10 + ;; + decsystem20* | dec20*) +- basic_machine=pdp10-dec +- os=-tops20 ++ cpu=pdp10 ++ vendor=dec ++ basic_os=tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) +- basic_machine=m68k-motorola +- ;; +- delta88) +- basic_machine=m88k-motorola +- os=-sysv3 ++ cpu=m68k ++ vendor=motorola + ;; +- dicos) +- basic_machine=i686-pc +- os=-dicos +- ;; +- djgpp) +- basic_machine=i586-pc +- os=-msdosdjgpp +- ;; +- dpx20 | dpx20-*) +- basic_machine=rs6000-bull +- os=-bosx +- ;; +- dpx2* | dpx2*-bull) +- basic_machine=m68k-bull +- os=-sysv3 +- ;; +- ebmon29k) +- basic_machine=a29k-amd +- os=-ebmon +- ;; +- elxsi) +- basic_machine=elxsi-elxsi +- os=-bsd ++ dpx2*) ++ cpu=m68k ++ vendor=bull ++ basic_os=sysv3 + ;; + encore | umax | mmax) +- basic_machine=ns32k-encore ++ cpu=ns32k ++ vendor=encore + ;; +- es1800 | OSE68k | ose68k | ose | OSE) +- basic_machine=m68k-ericsson +- os=-ose ++ elxsi) ++ cpu=elxsi ++ vendor=elxsi ++ basic_os=${basic_os:-bsd} + ;; + fx2800) +- basic_machine=i860-alliant ++ cpu=i860 ++ vendor=alliant + ;; + genix) +- basic_machine=ns32k-ns +- ;; +- gmicro) +- basic_machine=tron-gmicro +- os=-sysv +- ;; +- go32) +- basic_machine=i386-pc +- os=-go32 ++ cpu=ns32k ++ vendor=ns + ;; + h3050r* | hiux*) +- basic_machine=hppa1.1-hitachi +- os=-hiuxwe2 +- ;; +- h8300hms) +- basic_machine=h8300-hitachi +- os=-hms +- ;; +- h8300xray) +- basic_machine=h8300-hitachi +- os=-xray +- ;; +- h8500hms) +- basic_machine=h8500-hitachi +- os=-hms +- ;; +- harris) +- basic_machine=m88k-harris +- os=-sysv3 +- ;; +- hp300-*) +- basic_machine=m68k-hp +- ;; +- hp300bsd) +- basic_machine=m68k-hp +- os=-bsd +- ;; +- hp300hpux) +- basic_machine=m68k-hp +- os=-hpux ++ cpu=hppa1.1 ++ vendor=hitachi ++ basic_os=hiuxwe2 + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) +- basic_machine=hppa1.0-hp ++ cpu=hppa1.0 ++ vendor=hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) +- basic_machine=m68000-hp ++ cpu=m68000 ++ vendor=hp + ;; + hp9k3[2-9][0-9]) +- basic_machine=m68k-hp ++ cpu=m68k ++ vendor=hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) +- basic_machine=hppa1.0-hp ++ cpu=hppa1.0 ++ vendor=hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) +- basic_machine=hppa1.1-hp ++ cpu=hppa1.1 ++ vendor=hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp +- basic_machine=hppa1.1-hp ++ cpu=hppa1.1 ++ vendor=hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp +- basic_machine=hppa1.1-hp ++ cpu=hppa1.1 ++ vendor=hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) +- basic_machine=hppa1.1-hp ++ cpu=hppa1.1 ++ vendor=hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) +- basic_machine=hppa1.0-hp +- ;; +- hppa-next) +- os=-nextstep3 +- ;; +- hppaosf) +- basic_machine=hppa1.1-hp +- os=-osf +- ;; +- hppro) +- basic_machine=hppa1.1-hp +- os=-proelf +- ;; +- i370-ibm* | ibm*) +- basic_machine=i370-ibm ++ cpu=hppa1.0 ++ vendor=hp + ;; + i*86v32) +- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` +- os=-sysv32 ++ cpu=`echo "$1" | sed -e 's/86.*/86/'` ++ vendor=pc ++ basic_os=sysv32 + ;; + i*86v4*) +- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` +- os=-sysv4 ++ cpu=`echo "$1" | sed -e 's/86.*/86/'` ++ vendor=pc ++ basic_os=sysv4 + ;; + i*86v) +- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` +- os=-sysv ++ cpu=`echo "$1" | sed -e 's/86.*/86/'` ++ vendor=pc ++ basic_os=sysv + ;; + i*86sol2) +- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` +- os=-solaris2 +- ;; +- i386mach) +- basic_machine=i386-mach +- os=-mach ++ cpu=`echo "$1" | sed -e 's/86.*/86/'` ++ vendor=pc ++ basic_os=solaris2 + ;; +- i386-vsta | vsta) +- basic_machine=i386-unknown +- os=-vsta ++ j90 | j90-cray) ++ cpu=j90 ++ vendor=cray ++ basic_os=${basic_os:-unicos} + ;; + iris | iris4d) +- basic_machine=mips-sgi +- case $os in +- -irix*) ++ cpu=mips ++ vendor=sgi ++ case $basic_os in ++ irix*) + ;; + *) +- os=-irix4 ++ basic_os=irix4 + ;; + esac + ;; +- isi68 | isi) +- basic_machine=m68k-isi +- os=-sysv +- ;; +- m68knommu) +- basic_machine=m68k-unknown +- os=-linux +- ;; +- m68knommu-*) +- basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` +- os=-linux +- ;; +- m88k-omron*) +- basic_machine=m88k-omron +- ;; +- magnum | m3230) +- basic_machine=mips-mips +- os=-sysv +- ;; +- merlin) +- basic_machine=ns32k-utek +- os=-sysv +- ;; +- microblaze*) +- basic_machine=microblaze-xilinx +- ;; +- mingw64) +- basic_machine=x86_64-pc +- os=-mingw64 +- ;; +- mingw32) +- basic_machine=i386-pc +- os=-mingw32 +- ;; +- mingw32ce) +- basic_machine=arm-unknown +- os=-mingw32ce +- ;; + miniframe) +- basic_machine=m68000-convergent +- ;; +- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) +- basic_machine=m68k-atari +- os=-mint +- ;; +- mips3*-*) +- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` +- ;; +- mips3*) +- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown +- ;; +- monitor) +- basic_machine=m68k-rom68k +- os=-coff +- ;; +- morphos) +- basic_machine=powerpc-unknown +- os=-morphos +- ;; +- msdos) +- basic_machine=i386-pc +- os=-msdos +- ;; +- ms1-*) +- basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` +- ;; +- msys) +- basic_machine=i386-pc +- os=-msys +- ;; +- mvs) +- basic_machine=i370-ibm +- os=-mvs +- ;; +- nacl) +- basic_machine=le32-unknown +- os=-nacl +- ;; +- ncr3000) +- basic_machine=i486-ncr +- os=-sysv4 ++ cpu=m68000 ++ vendor=convergent + ;; +- netbsd386) +- basic_machine=i386-unknown +- os=-netbsd +- ;; +- netwinder) +- basic_machine=armv4l-rebel +- os=-linux +- ;; +- news | news700 | news800 | news900) +- basic_machine=m68k-sony +- os=-newsos +- ;; +- news1000) +- basic_machine=m68030-sony +- os=-newsos ++ *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) ++ cpu=m68k ++ vendor=atari ++ basic_os=mint + ;; + news-3600 | risc-news) +- basic_machine=mips-sony +- os=-newsos +- ;; +- necv70) +- basic_machine=v70-nec +- os=-sysv +- ;; +- next | m*-next ) +- basic_machine=m68k-next +- case $os in +- -nextstep* ) ++ cpu=mips ++ vendor=sony ++ basic_os=newsos ++ ;; ++ next | m*-next) ++ cpu=m68k ++ vendor=next ++ case $basic_os in ++ openstep*) ++ ;; ++ nextstep*) + ;; +- -ns2*) +- os=-nextstep2 ++ ns2*) ++ basic_os=nextstep2 + ;; + *) +- os=-nextstep3 ++ basic_os=nextstep3 + ;; + esac + ;; +- nh3000) +- basic_machine=m68k-harris +- os=-cxux +- ;; +- nh[45]000) +- basic_machine=m88k-harris +- os=-cxux +- ;; +- nindy960) +- basic_machine=i960-intel +- os=-nindy +- ;; +- mon960) +- basic_machine=i960-intel +- os=-mon960 +- ;; +- nonstopux) +- basic_machine=mips-compaq +- os=-nonstopux +- ;; + np1) +- basic_machine=np1-gould +- ;; +- neo-tandem) +- basic_machine=neo-tandem +- ;; +- nse-tandem) +- basic_machine=nse-tandem +- ;; +- nsr-tandem) +- basic_machine=nsr-tandem ++ cpu=np1 ++ vendor=gould + ;; + op50n-* | op60c-*) +- basic_machine=hppa1.1-oki +- os=-proelf +- ;; +- openrisc | openrisc-*) +- basic_machine=or32-unknown +- ;; +- os400) +- basic_machine=powerpc-ibm +- os=-os400 +- ;; +- OSE68000 | ose68000) +- basic_machine=m68000-ericsson +- os=-ose +- ;; +- os68k) +- basic_machine=m68k-none +- os=-os68k ++ cpu=hppa1.1 ++ vendor=oki ++ basic_os=proelf + ;; + pa-hitachi) +- basic_machine=hppa1.1-hitachi +- os=-hiuxwe2 +- ;; +- paragon) +- basic_machine=i860-intel +- os=-osf +- ;; +- parisc) +- basic_machine=hppa-unknown +- os=-linux +- ;; +- parisc-*) +- basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` +- os=-linux ++ cpu=hppa1.1 ++ vendor=hitachi ++ basic_os=hiuxwe2 + ;; + pbd) +- basic_machine=sparc-tti ++ cpu=sparc ++ vendor=tti + ;; + pbb) +- basic_machine=m68k-tti +- ;; +- pc532 | pc532-*) +- basic_machine=ns32k-pc532 +- ;; +- pc98) +- basic_machine=i386-pc +- ;; +- pc98-*) +- basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- pentium | p5 | k5 | k6 | nexgen | viac3) +- basic_machine=i586-pc ++ cpu=m68k ++ vendor=tti + ;; +- pentiumpro | p6 | 6x86 | athlon | athlon_*) +- basic_machine=i686-pc +- ;; +- pentiumii | pentium2 | pentiumiii | pentium3) +- basic_machine=i686-pc +- ;; +- pentium4) +- basic_machine=i786-pc +- ;; +- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) +- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- pentiumpro-* | p6-* | 6x86-* | athlon-*) +- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) +- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- pentium4-*) +- basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ++ pc532) ++ cpu=ns32k ++ vendor=pc532 + ;; + pn) +- basic_machine=pn-gould +- ;; +- power) basic_machine=power-ibm +- ;; +- ppc | ppcbe) basic_machine=powerpc-unknown +- ;; +- ppc-* | ppcbe-*) +- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- ppcle | powerpclittle | ppc-le | powerpc-little) +- basic_machine=powerpcle-unknown +- ;; +- ppcle-* | powerpclittle-*) +- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- ppc64) basic_machine=powerpc64-unknown +- ;; +- ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- ppc64le | powerpc64little | ppc64-le | powerpc64-little) +- basic_machine=powerpc64le-unknown ++ cpu=pn ++ vendor=gould + ;; +- ppc64le-* | powerpc64little-*) +- basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ++ power) ++ cpu=power ++ vendor=ibm + ;; + ps2) +- basic_machine=i386-ibm +- ;; +- pw32) +- basic_machine=i586-unknown +- os=-pw32 +- ;; +- rdos | rdos64) +- basic_machine=x86_64-pc +- os=-rdos +- ;; +- rdos32) +- basic_machine=i386-pc +- os=-rdos +- ;; +- rom68k) +- basic_machine=m68k-rom68k +- os=-coff ++ cpu=i386 ++ vendor=ibm + ;; + rm[46]00) +- basic_machine=mips-siemens ++ cpu=mips ++ vendor=siemens + ;; + rtpc | rtpc-*) +- basic_machine=romp-ibm +- ;; +- s390 | s390-*) +- basic_machine=s390-ibm +- ;; +- s390x | s390x-*) +- basic_machine=s390x-ibm +- ;; +- sa29200) +- basic_machine=a29k-amd +- os=-udi ++ cpu=romp ++ vendor=ibm + ;; +- sb1) +- basic_machine=mipsisa64sb1-unknown ++ sde) ++ cpu=mipsisa32 ++ vendor=sde ++ basic_os=${basic_os:-elf} + ;; +- sb1el) +- basic_machine=mipsisa64sb1el-unknown ++ simso-wrs) ++ cpu=sparclite ++ vendor=wrs ++ basic_os=vxworks + ;; +- sde) +- basic_machine=mipsisa32-sde +- os=-elf ++ tower | tower-32) ++ cpu=m68k ++ vendor=ncr + ;; +- sei) +- basic_machine=mips-sei +- os=-seiux ++ vpp*|vx|vx-*) ++ cpu=f301 ++ vendor=fujitsu + ;; +- sequent) +- basic_machine=i386-sequent ++ w65) ++ cpu=w65 ++ vendor=wdc + ;; +- sh) +- basic_machine=sh-hitachi +- os=-hms ++ w89k-*) ++ cpu=hppa1.1 ++ vendor=winbond ++ basic_os=proelf + ;; +- sh5el) +- basic_machine=sh5le-unknown ++ none) ++ cpu=none ++ vendor=none + ;; +- sh64) +- basic_machine=sh64-unknown ++ leon|leon[3-9]) ++ cpu=sparc ++ vendor=$basic_machine + ;; +- sparclite-wrs | simso-wrs) +- basic_machine=sparclite-wrs +- os=-vxworks ++ leon-*|leon[3-9]-*) ++ cpu=sparc ++ vendor=`echo "$basic_machine" | sed 's/-.*//'` + ;; +- sps7) +- basic_machine=m68k-bull +- os=-sysv2 ++ ++ *-*) ++ # shellcheck disable=SC2162 ++ saved_IFS=$IFS ++ IFS="-" read cpu vendor <&2 +- exit 1 ++ # Recognize the canonical CPU types that are allowed with any ++ # company name. ++ case $cpu in ++ 1750a | 580 \ ++ | a29k \ ++ | aarch64 | aarch64_be | aarch64c | arm64ec \ ++ | abacus \ ++ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ ++ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ ++ | alphapca5[67] | alpha64pca5[67] \ ++ | am33_2.0 \ ++ | amdgcn \ ++ | arc | arceb | arc32 | arc64 \ ++ | arm | arm[lb]e | arme[lb] | armv* \ ++ | avr | avr32 \ ++ | asmjs \ ++ | ba \ ++ | be32 | be64 \ ++ | bfin | bpf | bs2000 \ ++ | c[123]* | c30 | [cjt]90 | c4x \ ++ | c8051 | clipper | craynv | csky | cydra \ ++ | d10v | d30v | dlx | dsp16xx \ ++ | e2k | elxsi | epiphany \ ++ | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ ++ | javascript \ ++ | h8300 | h8500 \ ++ | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ ++ | hexagon \ ++ | i370 | i*86 | i860 | i960 | ia16 | ia64 \ ++ | ip2k | iq2000 \ ++ | k1om \ ++ | kvx \ ++ | le32 | le64 \ ++ | lm32 \ ++ | loongarch32 | loongarch64 \ ++ | m32c | m32r | m32rle \ ++ | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ ++ | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ ++ | m88110 | m88k | maxq | mb | mcore | mep | metag \ ++ | microblaze | microblazeel \ ++ | mips* \ ++ | mmix \ ++ | mn10200 | mn10300 \ ++ | moxie \ ++ | mt \ ++ | msp430 \ ++ | nanomips* \ ++ | nds32 | nds32le | nds32be \ ++ | nfp \ ++ | nios | nios2 | nios2eb | nios2el \ ++ | none | np1 | ns16k | ns32k | nvptx \ ++ | open8 \ ++ | or1k* \ ++ | or32 \ ++ | orion \ ++ | picochip \ ++ | pdp10 | pdp11 | pj | pjl | pn | power \ ++ | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ ++ | pru \ ++ | pyramid \ ++ | riscv | riscv32 | riscv32be | riscv64 | riscv64be \ ++ | rl78 | romp | rs6000 | rx \ ++ | s390 | s390x \ ++ | score \ ++ | sh | shl \ ++ | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ ++ | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ ++ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ ++ | sparclite \ ++ | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ ++ | spu \ ++ | tahoe \ ++ | thumbv7* \ ++ | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ ++ | tron \ ++ | ubicom32 \ ++ | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ ++ | vax \ ++ | vc4 \ ++ | visium \ ++ | w65 \ ++ | wasm32 | wasm64 \ ++ | we32k \ ++ | x86 | x86_64 | xc16x | xgate | xps100 \ ++ | xstormy16 | xtensa* \ ++ | ymp \ ++ | z8k | z80) ++ ;; ++ ++ *) ++ echo "Invalid configuration '$1': machine '$cpu-$vendor' not recognized" 1>&2 ++ exit 1 ++ ;; ++ esac + ;; + esac + + # Here we canonicalize certain aliases for manufacturers. +-case $basic_machine in +- *-digital*) +- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ++case $vendor in ++ digital*) ++ vendor=dec + ;; +- *-commodore*) +- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ++ commodore*) ++ vendor=cbm + ;; + *) + ;; +@@ -1321,200 +1287,226 @@ esac + + # Decode manufacturer-specific aliases for certain operating systems. + +-if [ x"$os" != x"" ] ++if test x"$basic_os" != x + then ++ ++# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just ++# set os. ++obj= ++case $basic_os in ++ gnu/linux*) ++ kernel=linux ++ os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` ++ ;; ++ os2-emx) ++ kernel=os2 ++ os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` ++ ;; ++ nto-qnx*) ++ kernel=nto ++ os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` ++ ;; ++ *-*) ++ # shellcheck disable=SC2162 ++ saved_IFS=$IFS ++ IFS="-" read kernel os <&2 +- exit 1 ++ # No normalization, but not necessarily accepted, that comes below. + ;; + esac ++ + else + + # Here we handle the default operating systems that come with various machines. +@@ -1527,261 +1519,452 @@ else + # will signal an error saying that MANUFACTURER isn't an operating + # system, and we'll never get to this point. + +-case $basic_machine in ++kernel= ++obj= ++case $cpu-$vendor in + score-*) +- os=-elf ++ os= ++ obj=elf + ;; + spu-*) +- os=-elf ++ os= ++ obj=elf + ;; + *-acorn) +- os=-riscix1.2 ++ os=riscix1.2 + ;; + arm*-rebel) +- os=-linux ++ kernel=linux ++ os=gnu + ;; + arm*-semi) +- os=-aout ++ os= ++ obj=aout + ;; + c4x-* | tic4x-*) +- os=-coff ++ os= ++ obj=coff ++ ;; ++ c8051-*) ++ os= ++ obj=elf ++ ;; ++ clipper-intergraph) ++ os=clix + ;; + hexagon-*) +- os=-elf ++ os= ++ obj=elf + ;; + tic54x-*) +- os=-coff ++ os= ++ obj=coff + ;; + tic55x-*) +- os=-coff ++ os= ++ obj=coff + ;; + tic6x-*) +- os=-coff ++ os= ++ obj=coff + ;; + # This must come before the *-dec entry. + pdp10-*) +- os=-tops20 ++ os=tops20 + ;; + pdp11-*) +- os=-none ++ os=none + ;; + *-dec | vax-*) +- os=-ultrix4.2 ++ os=ultrix4.2 + ;; + m68*-apollo) +- os=-domain ++ os=domain + ;; + i386-sun) +- os=-sunos4.0.2 ++ os=sunos4.0.2 + ;; + m68000-sun) +- os=-sunos3 ++ os=sunos3 + ;; + m68*-cisco) +- os=-aout ++ os= ++ obj=aout + ;; + mep-*) +- os=-elf ++ os= ++ obj=elf + ;; + mips*-cisco) +- os=-elf +- ;; +- mips*-*) +- os=-elf ++ os= ++ obj=elf + ;; +- or1k-*) +- os=-elf ++ mips*-*|nanomips*-*) ++ os= ++ obj=elf + ;; + or32-*) +- os=-coff ++ os= ++ obj=coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. +- os=-sysv3 ++ os=sysv3 + ;; + sparc-* | *-sun) +- os=-sunos4.1.1 ++ os=sunos4.1.1 + ;; +- *-be) +- os=-beos ++ pru-*) ++ os= ++ obj=elf + ;; +- *-haiku) +- os=-haiku ++ *-be) ++ os=beos + ;; + *-ibm) +- os=-aix ++ os=aix + ;; + *-knuth) +- os=-mmixware ++ os=mmixware + ;; + *-wec) +- os=-proelf ++ os=proelf + ;; + *-winbond) +- os=-proelf ++ os=proelf + ;; + *-oki) +- os=-proelf ++ os=proelf + ;; + *-hp) +- os=-hpux ++ os=hpux + ;; + *-hitachi) +- os=-hiux ++ os=hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) +- os=-sysv ++ os=sysv + ;; + *-cbm) +- os=-amigaos ++ os=amigaos + ;; + *-dg) +- os=-dgux ++ os=dgux + ;; + *-dolphin) +- os=-sysv3 ++ os=sysv3 + ;; + m68k-ccur) +- os=-rtu ++ os=rtu + ;; + m88k-omron*) +- os=-luna ++ os=luna + ;; +- *-next ) +- os=-nextstep ++ *-next) ++ os=nextstep + ;; + *-sequent) +- os=-ptx ++ os=ptx + ;; + *-crds) +- os=-unos ++ os=unos + ;; + *-ns) +- os=-genix ++ os=genix + ;; + i370-*) +- os=-mvs +- ;; +- *-next) +- os=-nextstep3 ++ os=mvs + ;; + *-gould) +- os=-sysv ++ os=sysv + ;; + *-highlevel) +- os=-bsd ++ os=bsd + ;; + *-encore) +- os=-bsd ++ os=bsd + ;; + *-sgi) +- os=-irix ++ os=irix + ;; + *-siemens) +- os=-sysv4 ++ os=sysv4 + ;; + *-masscomp) +- os=-rtu ++ os=rtu + ;; + f30[01]-fujitsu | f700-fujitsu) +- os=-uxpv ++ os=uxpv + ;; + *-rom68k) +- os=-coff ++ os= ++ obj=coff + ;; + *-*bug) +- os=-coff ++ os= ++ obj=coff + ;; + *-apple) +- os=-macos ++ os=macos + ;; + *-atari*) +- os=-mint ++ os=mint ++ ;; ++ *-wrs) ++ os=vxworks + ;; + *) +- os=-none ++ os=none + ;; + esac ++ + fi + ++# Now, validate our (potentially fixed-up) individual pieces (OS, OBJ). ++ ++case $os in ++ # Sometimes we do "kernel-libc", so those need to count as OSes. ++ llvm* | musl* | newlib* | relibc* | uclibc*) ++ ;; ++ # Likewise for "kernel-abi" ++ eabi* | gnueabi*) ++ ;; ++ # VxWorks passes extra cpu info in the 4th filed. ++ simlinux | simwindows | spe) ++ ;; ++ # See `case $cpu-$os` validation below ++ ghcjs) ++ ;; ++ # Now accept the basic system types. ++ # The portable systems comes first. ++ # Each alternative MUST end in a * to match a version number. ++ gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ ++ | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \ ++ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ ++ | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ ++ | hiux* | abug | nacl* | netware* | windows* \ ++ | os9* | macos* | osx* | ios* | tvos* | watchos* \ ++ | mpw* | magic* | mmixware* | mon960* | lnews* \ ++ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ ++ | aos* | aros* | cloudabi* | sortix* | twizzler* \ ++ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ ++ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ ++ | mirbsd* | netbsd* | dicos* | openedition* | ose* \ ++ | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \ ++ | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ ++ | bosx* | nextstep* | cxux* | oabi* \ ++ | ptx* | ecoff* | winnt* | domain* | vsta* \ ++ | udi* | lites* | ieee* | go32* | aux* | hcos* \ ++ | chorusrdb* | cegcc* | glidix* | serenity* \ ++ | cygwin* | msys* | moss* | proelf* | rtems* \ ++ | midipix* | mingw32* | mingw64* | mint* \ ++ | uxpv* | beos* | mpeix* | udk* | moxiebox* \ ++ | interix* | uwin* | mks* | rhapsody* | darwin* \ ++ | openstep* | oskit* | conix* | pw32* | nonstopux* \ ++ | storm-chaos* | tops10* | tenex* | tops20* | its* \ ++ | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ ++ | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ ++ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ ++ | skyos* | haiku* | rdos* | toppers* | drops* | es* \ ++ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ ++ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ ++ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ ++ | fiwix* | mlibc* | cos* | mbr* | ironclad* ) ++ ;; ++ # This one is extra strict with allowed versions ++ sco3.2v2 | sco3.2v[4-9]* | sco5v6*) ++ # Don't forget version if it is 3.2v4 or newer. ++ ;; ++ # This refers to builds using the UEFI calling convention ++ # (which depends on the architecture) and PE file format. ++ # Note that this is both a different calling convention and ++ # different file format than that of GNU-EFI ++ # (x86_64-w64-mingw32). ++ uefi) ++ ;; ++ none) ++ ;; ++ kernel* | msvc* ) ++ # Restricted further below ++ ;; ++ '') ++ if test x"$obj" = x ++ then ++ echo "Invalid configuration '$1': Blank OS only allowed with explicit machine code file format" 1>&2 ++ fi ++ ;; ++ *) ++ echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2 ++ exit 1 ++ ;; ++esac ++ ++case $obj in ++ aout* | coff* | elf* | pe*) ++ ;; ++ '') ++ # empty is fine ++ ;; ++ *) ++ echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2 ++ exit 1 ++ ;; ++esac ++ ++# Here we handle the constraint that a (synthetic) cpu and os are ++# valid only in combination with each other and nowhere else. ++case $cpu-$os in ++ # The "javascript-unknown-ghcjs" triple is used by GHC; we ++ # accept it here in order to tolerate that, but reject any ++ # variations. ++ javascript-ghcjs) ++ ;; ++ javascript-* | *-ghcjs) ++ echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2 ++ exit 1 ++ ;; ++esac ++ ++# As a final step for OS-related things, validate the OS-kernel combination ++# (given a valid OS), if there is a kernel. ++case $kernel-$os-$obj in ++ linux-gnu*- | linux-android*- | linux-dietlibc*- | linux-llvm*- \ ++ | linux-mlibc*- | linux-musl*- | linux-newlib*- \ ++ | linux-relibc*- | linux-uclibc*- ) ++ ;; ++ uclinux-uclibc*- ) ++ ;; ++ managarm-mlibc*- | managarm-kernel*- ) ++ ;; ++ windows*-msvc*-) ++ ;; ++ -dietlibc*- | -llvm*- | -mlibc*- | -musl*- | -newlib*- | -relibc*- \ ++ | -uclibc*- ) ++ # These are just libc implementations, not actual OSes, and thus ++ # require a kernel. ++ echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2 ++ exit 1 ++ ;; ++ -kernel*- ) ++ echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2 ++ exit 1 ++ ;; ++ *-kernel*- ) ++ echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2 ++ exit 1 ++ ;; ++ *-msvc*- ) ++ echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2 ++ exit 1 ++ ;; ++ kfreebsd*-gnu*- | kopensolaris*-gnu*-) ++ ;; ++ vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-) ++ ;; ++ nto-qnx*-) ++ ;; ++ os2-emx-) ++ ;; ++ *-eabi*- | *-gnueabi*-) ++ ;; ++ none--*) ++ # None (no kernel, i.e. freestanding / bare metal), ++ # can be paired with an machine code file format ++ ;; ++ -*-) ++ # Blank kernel with real OS is always fine. ++ ;; ++ --*) ++ # Blank kernel and OS with real machine code file format is always fine. ++ ;; ++ *-*-*) ++ echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2 ++ exit 1 ++ ;; ++esac ++ + # Here we handle the case where we know the os, and the CPU type, but not the + # manufacturer. We pick the logical manufacturer. +-vendor=unknown +-case $basic_machine in +- *-unknown) +- case $os in +- -riscix*) ++case $vendor in ++ unknown) ++ case $cpu-$os in ++ *-riscix*) + vendor=acorn + ;; +- -sunos*) ++ *-sunos*) + vendor=sun + ;; +- -cnk*|-aix*) ++ *-cnk* | *-aix*) + vendor=ibm + ;; +- -beos*) ++ *-beos*) + vendor=be + ;; +- -hpux*) ++ *-hpux*) + vendor=hp + ;; +- -mpeix*) ++ *-mpeix*) + vendor=hp + ;; +- -hiux*) ++ *-hiux*) + vendor=hitachi + ;; +- -unos*) ++ *-unos*) + vendor=crds + ;; +- -dgux*) ++ *-dgux*) + vendor=dg + ;; +- -luna*) ++ *-luna*) + vendor=omron + ;; +- -genix*) ++ *-genix*) + vendor=ns + ;; +- -mvs* | -opened*) ++ *-clix*) ++ vendor=intergraph ++ ;; ++ *-mvs* | *-opened*) ++ vendor=ibm ++ ;; ++ *-os400*) + vendor=ibm + ;; +- -os400*) ++ s390-* | s390x-*) + vendor=ibm + ;; +- -ptx*) ++ *-ptx*) + vendor=sequent + ;; +- -tpf*) ++ *-tpf*) + vendor=ibm + ;; +- -vxsim* | -vxworks* | -windiss*) ++ *-vxsim* | *-vxworks* | *-windiss*) + vendor=wrs + ;; +- -aux*) ++ *-aux*) + vendor=apple + ;; +- -hms*) ++ *-hms*) + vendor=hitachi + ;; +- -mpw* | -macos*) ++ *-mpw* | *-macos*) + vendor=apple + ;; +- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) ++ *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) + vendor=atari + ;; +- -vos*) ++ *-vos*) + vendor=stratus + ;; + esac +- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; + esac + +-echo $basic_machine$os ++echo "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}" + exit + + # Local variables: +-# eval: (add-hook 'write-file-hooks 'time-stamp) ++# eval: (add-hook 'before-save-hook 'time-stamp) + # time-stamp-start: "timestamp='" + # time-stamp-format: "%:y-%02m-%02d" + # time-stamp-end: "'" From 70bb18a446a9e93e2032b49b7f575d23581c7d34 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Sat, 3 Aug 2024 23:15:05 -0500 Subject: [PATCH 1029/1514] Update iqtree to v2.3.6 (#49785) --- recipes/iqtree/build.sh | 3 ++- recipes/iqtree/meta.yaml | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/recipes/iqtree/build.sh b/recipes/iqtree/build.sh index 3fffe3a1e8433..5b02ecc9cb4ac 100644 --- a/recipes/iqtree/build.sh +++ b/recipes/iqtree/build.sh @@ -6,6 +6,7 @@ set -ex # we're restoring them here by mentioning them explicitly # .bak is required for sed -i on macOS sed -i.bak 's/-mavx/-mno-avx -mno-avx2 -march=nocona -mtune=haswell/' cmaple/CMakeLists.txt +rm -rf cmaple/*.bak export INCLUDES="-I${PREFIX}/include" export LIBPATH="-L${PREFIX}/lib" @@ -48,7 +49,7 @@ VERBOSE=1 cmake --build build --target install -j "${JOBS}" chmod 755 "${PREFIX}/bin/iqtree2" # Use symlink to not duplicate the binary, saving space -ln -s "${PREFIX}"/bin/iqtree2 "${PREFIX}"/bin/iqtree +ln -sf "${PREFIX}"/bin/iqtree2 "${PREFIX}"/bin/iqtree # Remove example data files for file in "${PREFIX}/example"* "${PREFIX}/models.nex" "${PREFIX}/bin/iqtree2-aa"; do diff --git a/recipes/iqtree/meta.yaml b/recipes/iqtree/meta.yaml index 78c3729b31380..875325dc79689 100644 --- a/recipes/iqtree/meta.yaml +++ b/recipes/iqtree/meta.yaml @@ -1,12 +1,12 @@ {% set name = "IQTREE" %} -{% set version = "2.3.5" %} +{% set version = "2.3.6" %} package: name: {{ name|lower }} version: {{ version | replace("-", "_") }} build: - number: 3 + number: 0 run_exports: - {{ pin_subpackage('iqtree', max_pin="x") }} @@ -32,6 +32,7 @@ requirements: - llvm-openmp # [osx] - boost-cpp - eigen + test: source_files: - cmaple/example/input.fa From 03ca2582e27b8710b14577c004ad6497f0e3c59b Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Sat, 3 Aug 2024 23:29:26 -0500 Subject: [PATCH 1030/1514] Update table2asn to 1.28.1111 (#49786) * Update table2asn to 1.28.1111 * edit build.sh --- recipes/table2asn/build.sh | 2 +- recipes/table2asn/meta.yaml | 13 ++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/recipes/table2asn/build.sh b/recipes/table2asn/build.sh index 4237f9e676325..6e0c82f01b182 100644 --- a/recipes/table2asn/build.sh +++ b/recipes/table2asn/build.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -ex gunzip *table2asn.gz mkdir -p ${PREFIX}/bin diff --git a/recipes/table2asn/meta.yaml b/recipes/table2asn/meta.yaml index 309a04dc74f0f..9787dc6a10cc7 100644 --- a/recipes/table2asn/meta.yaml +++ b/recipes/table2asn/meta.yaml @@ -1,23 +1,22 @@ {% set name = "table2asn" %} -{% set version = "1.28.943" %} -{% set sha256 = "91632c6442986d5af455421ed8121647f9bd90e64560ba27ae0b2ab0a1289ae6" %} -{% set release_date = "2023-10-05" %} +{% set version = "1.28.1111" %} +{% set sha256 = "626116210fea6b1426092e370c32c7f766a6cc98857c4202712eb7b265da23cb" %} +{% set release_date = "2024-06-18" %} package: name: {{ name }} version: {{ version }} - release_date: {{ release_date }} source: - url: https://ftp.ncbi.nlm.nih.gov/asn1-converters/versions/{{ release_date }}/by_program/{{ name }}/mac.{{ name }}.gz # [osx] - sha256: 3ecc9fc29beb69640d47cd49a43b342ee6d7627f25c7b2d78dd44fce00cd2c6d # [osx] + sha256: 1b3ce05a1d3ef5afaa38c9b5c5a520b74d27aea9b516513ec647576e3a98bb32 # [osx] - url: https://ftp.ncbi.nlm.nih.gov/asn1-converters/versions/{{ release_date }}/by_program/{{ name }}/linux64.{{ name }}.gz # [linux] sha256: {{ sha256 }} # [linux] build: number: 0 run_exports: - - {{ pin_subpackage('table2asn', max_pin="x.x") }} + - {{ pin_subpackage('table2asn', max_pin="x") }} requirements: host: @@ -30,7 +29,7 @@ test: - table2asn -help about: - home: 'https://www.ncbi.nlm.nih.gov/genbank/table2asn/' + home: 'https://www.ncbi.nlm.nih.gov/genbank/table2asn' license: Public Domain summary: 'table2asn is a command-line program that creates sequence records for submission to GenBank - replaces tbl2asn.' doc_url: 'https://ftp.ncbi.nlm.nih.gov/asn1-converters/by_program/table2asn/DOCUMENTATION/table2asn_readme.txt' From dd60ecf3d1c2ef1a09f46099b1bb77a77fae27bc Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 4 Aug 2024 00:33:34 -0400 Subject: [PATCH 1031/1514] Update insurveyor to 1.1.3 (#49783) * Update insurveyor to 1.1.3 * add run_exports * edit build.sh * edit build.sh --------- Co-authored-by: mencian --- recipes/insurveyor/build.sh | 25 ++++++++++++++----------- recipes/insurveyor/meta.yaml | 18 ++++++++++++++---- 2 files changed, 28 insertions(+), 15 deletions(-) diff --git a/recipes/insurveyor/build.sh b/recipes/insurveyor/build.sh index ad41ce59ba618..f1d3689d0c241 100644 --- a/recipes/insurveyor/build.sh +++ b/recipes/insurveyor/build.sh @@ -1,4 +1,15 @@ -set -x +#!/bin/bash -ex + +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CXXFLAGS="${CXXFLAGS} -O3 -I{PREFIX}/include ${LDFLAGS}" + +mkdir -p ${PREFIX}/bin + +cmake -S . -B build \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ + -DCMAKE_CXX_COMPILER="${CXX}" \ + -DCMAKE_CXX_FLAGS="${CXXFLAGS}" ${CXX} ${CPPFLAGS} ${CXXFLAGS} ${LDFLAGS} reads_categorizer.cpp -o reads_categorizer -pthread -lhts ${CXX} ${CPPFLAGS} ${CXXFLAGS} ${LDFLAGS} clip_consensus_builder.cpp -o clip_consensus_builder -pthread -lhts @@ -8,13 +19,5 @@ ${CXX} ${CPPFLAGS} ${CXXFLAGS} ${LDFLAGS} add_filtering_info.cpp -o add_filterin ${CXX} ${CPPFLAGS} ${CXXFLAGS} ${LDFLAGS} filter.cpp -o filter -pthread -lhts ${CXX} ${CPPFLAGS} ${CXXFLAGS} ${LDFLAGS} normalise.cpp -o normalise -pthread -lhts -cp reads_categorizer $PREFIX/bin/ -cp clip_consensus_builder $PREFIX/bin/ -cp call_insertions $PREFIX/bin/ -cp dc_remapper $PREFIX/bin/ -cp add_filtering_info $PREFIX/bin/ -cp filter $PREFIX/bin/ -cp normalise $PREFIX/bin/ - -cp insurveyor.py $PREFIX/bin/ -cp random_pos_generator.py $PREFIX/bin/ +cp -rf reads_categorizer clip_consensus_builder call_insertions dc_remapper add_filtering_info \ + filter normalise insurveyor.py random_pos_generator.py ${PREFIX}/bin/ diff --git a/recipes/insurveyor/meta.yaml b/recipes/insurveyor/meta.yaml index e3699705f2464..d235d5fd03e7b 100644 --- a/recipes/insurveyor/meta.yaml +++ b/recipes/insurveyor/meta.yaml @@ -1,5 +1,5 @@ {% set name = "insurveyor" %} -{% set version = "1.1.2" %} +{% set version = "1.1.3" %} package: name: {{ name|lower }} @@ -7,19 +7,25 @@ package: source: url: https://github.com/kensung-lab/INSurVeyor/archive/refs/tags/{{ version }}.tar.gz - sha256: ac4d2e16f6f884e6da82a1090af744ba8b63657a1f2719b4f8ff266a26c73549 + sha256: 0099ce859dd1b61b726b87ca26d7b89dabb34cab27afc97a5696780260b27304 build: number: 0 + run_exports: + - {{ pin_subpackage('insurveyor', max_pin="x") }} requirements: build: - {{ compiler('cxx') }} + - cmake + - make + - autoconf host: - htslib >=1.13 + - zlib run: - - pysam >=0.16.0.1, <0.21 - - pyfaidx >=0.5.9.1, <0.8 + - pysam >=0.16.0.1 + - pyfaidx >=0.5.9.1 - numpy test: @@ -38,8 +44,12 @@ about: description: | INSurVeyor is a fast and accurate SV insertion caller for Illumina paired-end WGS data. license: GPL-3.0-only + license_family: GPL3 license_file: LICENSE + dev_url: https://github.com/kensung-lab/INSurVeyor extra: recipe-maintainers: - Mesh89 + identifiers: + - doi:10.1038/s41467-023-38870-2 From e40935cdcc5532461566f5953c6bbbc99e50786b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 4 Aug 2024 02:17:05 -0400 Subject: [PATCH 1032/1514] Update trinity to 2.15.2 (#49741) * Update trinity to 2.15.2 * edit patch * edit build.sh * edit build.sh * edit build.sh * edit build.sh --------- Co-authored-by: mencian Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/trinity/build.sh | 25 +++++++++++++------- recipes/trinity/makefile.patch | 42 ++++++++++++++-------------------- recipes/trinity/meta.yaml | 14 ++++++------ 3 files changed, 41 insertions(+), 40 deletions(-) diff --git a/recipes/trinity/build.sh b/recipes/trinity/build.sh index 453ee990e1564..ad90cf9dcaf75 100644 --- a/recipes/trinity/build.sh +++ b/recipes/trinity/build.sh @@ -1,5 +1,4 @@ -#!/bin/bash -set -x -e +#!/bin/bash -ex export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" @@ -10,7 +9,12 @@ export CXXFLAGS="${CXXFLAGS} -O3 -I${PREFIX}/include ${LDFLAGS}" export BINARY_HOME="${PREFIX}/bin" export TRINITY_HOME="${PREFIX}/opt/trinity-${PKG_VERSION}" -make CXX="${CXX}" CXXFLAGS="${CXXFLAGS}" -j4 plugins +if [ "$(uname)" == "Darwin" ]; then + # for Mac OSX + export CXXFLAGS="${CXXFLAGS} -std=c++14" +fi + +make CXX="${CXX}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}" plugins make CXX="${CXX}" CXXFLAGS="${CXXFLAGS}" # remove the sample data @@ -19,10 +23,10 @@ rm -rf ${SRC_DIR}/sample_data # reproduce make install without the wrapper script mkdir -p ${PREFIX}/bin mkdir -p ${TRINITY_HOME}/Butterfly -chmod +x Trinity -cp Trinity ${TRINITY_HOME}/ +chmod 0755 Trinity +cp -rf Trinity ${TRINITY_HOME}/ mv Analysis ${TRINITY_HOME}/ -cp Butterfly/Butterfly.jar ${TRINITY_HOME}/Butterfly +cp -rf Butterfly/Butterfly.jar ${TRINITY_HOME}/Butterfly mkdir -p ${TRINITY_HOME}/Chrysalis cp -LR Chrysalis/bin ${TRINITY_HOME}/Chrysalis mkdir -p ${TRINITY_HOME}/Inchworm @@ -32,7 +36,12 @@ cp -LR PyLib ${TRINITY_HOME}/ cp -LR trinity-plugins ${TRINITY_HOME}/ cp -LR util ${TRINITY_HOME}/ -sed -i.bak '1 s|^.*$|#!/usr/bin/env perl|g' ${TRINITY_HOME}/util/misc/fastq_stats.pl +sed -i.bak '1 s|^.*$|#!/usr/bin/env perl|g' ${TRINITY_HOME}/util/*.pl +rm -rf ${TRINITY_HOME}/util/*.bak +sed -i.bak '1 s|^.*$|#!/usr/bin/env perl|g' ${TRINITY_HOME}/util/misc/*.pl +rm -rf ${TRINITY_HOME}/util/misc/*.bak +sed -i.bak '1 s|^.*$|#!/usr/bin/env perl|g' ${TRINITY_HOME}/util/support_scripts/*.pl +rm -rf ${TRINITY_HOME}/util/support_scripts/*.bak # add link to Trinity from bin so in PATH cd ${BINARY_HOME} @@ -46,7 +55,7 @@ ln -sf ${TRINITY_HOME}/Analysis/SuperTranscripts/Trinity_gene_splice_modeler.py ln -sf ${TRINITY_HOME}/Analysis/SuperTranscripts/extract_supertranscript_from_reference.py ln -sf ${TRINITY_HOME}/util/support_scripts/get_Trinity_gene_to_trans_map.pl ln -sf ${TRINITY_HOME}/util/misc/contig_ExN50_statistic.pl -cp ${TRINITY_HOME}/trinity-plugins/BIN/seqtk-trinity . +cp -rf ${TRINITY_HOME}/trinity-plugins/BIN/seqtk-trinity . # Find real path when executing from a symlink export LC_ALL=C diff --git a/recipes/trinity/makefile.patch b/recipes/trinity/makefile.patch index 1dea4321e5686..86b29fc1ef473 100644 --- a/recipes/trinity/makefile.patch +++ b/recipes/trinity/makefile.patch @@ -98,36 +98,28 @@ htslib/version.h : --- a/trinity-plugins/bamsifter/build_htslib.sh +++ b/trinity-plugins/bamsifter/build_htslib.sh -@@ -2,14 +2,10 @@ - - set -e -v - --tar xvf htslib-1.16.tar.bz2 --mv htslib-1.16 htslib - cd htslib --mkdir -p build --#autoheader --#autoconf +@@ -6,9 +6,7 @@ cd htslib + git submodule init && git submodule update + mkdir -p build + autoheader +-autoconf -./configure --prefix=`pwd`/build/ -+autoheader +autoreconf -+./configure --prefix=`pwd`/build/ CXXFLAGS="-I${PREFIX}/include ${LDFLAGS}" CFLAGS="-I${PREFIX}/include ${LDFLAGS}" ++./configure --prefix=`pwd`/build/ CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" CFLAGS="${CFLAGS} ${LDFLAGS}" make make install - - - - +- --- a/trinity-plugins/bamsifter/sift_bam_max_cov.cpp +++ b/trinity-plugins/bamsifter/sift_bam_max_cov.cpp -@@ -2,6 +2,7 @@ - #include - // #include - #include -+#include - #include - #include - #include --- -2.40.0 +@@ -14,8 +14,8 @@ + #include + #include + +-#include "htslib/sam.h" +-#include "htslib/bgzf.h" ++#include "htslib/htslib/sam.h" ++#include "htslib/htslib/bgzf.h" + + enum test_op { diff --git a/recipes/trinity/meta.yaml b/recipes/trinity/meta.yaml index 721036e21f6e1..92c0c528bd138 100644 --- a/recipes/trinity/meta.yaml +++ b/recipes/trinity/meta.yaml @@ -1,6 +1,6 @@ {% set name = "Trinity" %} -{% set version = "2.15.1" %} -{% set sha256 = "ba37e5f696d3d54e8749c4ba439901a3e97e14a4314a5229d7a069ad7b1ee580" %} +{% set version = "2.15.2" %} +{% set sha256 = "baab87e4878ad097e265c46de121414629bf88fa9342022baae5cac12432a15c" %} package: name: {{ name|lower }} @@ -13,7 +13,7 @@ source: - makefile.patch build: - number: 4 + number: 0 run_exports: - {{ pin_subpackage('trinity', max_pin="x") }} @@ -71,13 +71,13 @@ test: - "Trinity_gene_splice_modeler.py --help" about: - home: https://github.com/trinityrnaseq/trinityrnaseq/ - license: BSD-3-Clause + home: "https://github.com/trinityrnaseq/trinityrnaseq" + license: "BSD-3-Clause" license_family: BSD license_file: LICENSE summary: "Trinity assembles transcript sequences from Illumina RNA-Seq data." - doc_url: https://github.com/trinityrnaseq/trinityrnaseq/wiki - dev_url: https://github.com/trinityrnaseq/trinityrnaseq/ + doc_url: "https://github.com/trinityrnaseq/trinityrnaseq/wiki" + dev_url: "https://github.com/trinityrnaseq/trinityrnaseq" extra: identifiers: From 6c72e6240094e81ea0c75052fe6f550131650ce9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 4 Aug 2024 13:19:24 -0400 Subject: [PATCH 1033/1514] Update lsabgc to 1.0.5 (#49787) * Update lsabgc to 1.0.5 * Update meta.yaml --------- Co-authored-by: Rauf Salamzade --- recipes/lsabgc/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/lsabgc/meta.yaml b/recipes/lsabgc/meta.yaml index 8752b995ee828..f55c6fb0d327f 100644 --- a/recipes/lsabgc/meta.yaml +++ b/recipes/lsabgc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "lsabgc" %} -{% set version = "1.0.4" %} +{% set version = "1.0.5" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Kalan-Lab/lsaBGC-Pan/archive/refs/tags/v{{ version }}.tar.gz - sha256: d04c6a3a9a562c6fb97e778032ae7148bc90dfa982a8cac3d6e4eb2269995b66 + sha256: c6354a39e64238d42c9f5d3e1464d78545f91d5231de2306d162cee6b36eb85f build: number: 0 @@ -25,7 +25,7 @@ requirements: - python >=3.10 - r-base - axel - - zol >=1.4.11 + - zol >=1.4.12 - orthofinder =2.5.5 - pyseer >=1.3 - gecco =0.9.6 From 52c6468e2800ea3fe83ad8b39086c9ab6b04bc06 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 4 Aug 2024 23:49:17 -0400 Subject: [PATCH 1034/1514] Update snakemake-storage-plugin-azure to 0.4.0 (#49788) --- recipes/snakemake-storage-plugin-azure/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-azure/meta.yaml b/recipes/snakemake-storage-plugin-azure/meta.yaml index f22cf394948c6..61f93de3b0722 100644 --- a/recipes/snakemake-storage-plugin-azure/meta.yaml +++ b/recipes/snakemake-storage-plugin-azure/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-azure" %} -{% set version = "0.3.0" %} +{% set version = "0.4.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_azure-{{ version }}.tar.gz - sha256: 95f58b2f355707a37fcf739a0e9172388acef8a1800242f2e0724154521a20e0 + sha256: 7b3fd1479d3a2f3447891dbd27b84aeb7380f526b68147d7d8f7aceda14bda62 build: noarch: python From b45bbdf3758bfb6bf2ff187ff8f5be6e45baa566 Mon Sep 17 00:00:00 2001 From: Li Song Date: Sun, 4 Aug 2024 23:50:51 -0400 Subject: [PATCH 1035/1514] Add osx-arm64 to centrifuger (#49789) --- recipes/centrifuger/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/centrifuger/meta.yaml b/recipes/centrifuger/meta.yaml index 25087132e9a81..dccd1d4dbe4d6 100644 --- a/recipes/centrifuger/meta.yaml +++ b/recipes/centrifuger/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} @@ -41,5 +41,6 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - doi:10.1101/2023.11.15.567129 From e3bf80fde3cf4be9810a81530968fbe7870099b0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 02:29:33 -0400 Subject: [PATCH 1036/1514] Update sdeper to 1.6.1 (#49781) * Update sdeper to 1.6.0 * Update sdeper to 1.6.1 * add extended-base --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Co-authored-by: mencian --- recipes/sdeper/meta.yaml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/recipes/sdeper/meta.yaml b/recipes/sdeper/meta.yaml index 11e612ac4b87f..394c27d640310 100755 --- a/recipes/sdeper/meta.yaml +++ b/recipes/sdeper/meta.yaml @@ -1,6 +1,5 @@ -# This is the recipe file to publish SDePER to Bioconda {% set name = "sdeper" %} -{% set version = "1.5.0" %} +{% set version = "1.6.1" %} package: name: "{{ name|lower }}" @@ -8,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 43ad2e10fc85aadb821aaf106deee6769de9d45f4b530e204e5f1e18398eb0f1 + sha256: 6d1777d13ba5253e762f007fcab22743f24d760adf07ebb7079cb2c652b2575a build: number: 0 @@ -39,7 +38,7 @@ requirements: - scikit-learn ==1.1.1 - scikit-misc ==0.1.4 - scipy ==1.8.1 - - seaborn ==0.11.2 + - seaborn-base ==0.11.2 - tensorflow-base 2.9.1 cpu_* # explicitly specify to use cpu version out from cpu_, cuda, eigen_, gpu_, or mkl_ in conda packages - umap-learn ==0.5.3 - libopencv ==4.6.0 # install opencv in conda requires installing these 3 packages, headless version is used @@ -52,15 +51,18 @@ test: - runImputation --help about: - home: "https://az7jh2.github.io/SDePER/" + home: "https://az7jh2.github.io/SDePER" license: MIT license_family: MIT license_file: LICENSE - summary: "Spatial Deconvolution method with Platform Effect Removal" - doc_url: "https://sdeper.readthedocs.io/en/latest/" + summary: "Spatial Deconvolution method with Platform Effect Removal." + doc_url: "https://sdeper.readthedocs.io/en/latest" dev_url: "https://github.com/az7jh2/SDePER" description: "SDePER (Spatial Deconvolution method with Platform Effect Removal) is a hybrid machine learning and regression method to deconvolve Spatial barcoding-based transcriptomic data using reference single-cell RNA sequencing data, considering platform effects removal, sparsity of cell types per capture spot and across-spots spatial correlation in cell type compositions. SDePER is also able to impute cell type compositions and gene expression at unmeasured locations in a tissue map with enhanced resolution." extra: recipe-maintainers: - az7jh2 + container: + # needs libGL.so.1 + extended-base: True From 44f02dbb56ed8c6a12fa123d3ca8d664b6ff9657 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 5 Aug 2024 01:43:36 -0500 Subject: [PATCH 1037/1514] bam-readcount: build on OSX (#49790) * bam-readcount: build on OSX * remove osx-arm64 --- recipes/bam-readcount/build.sh | 21 +++++++++++---------- recipes/bam-readcount/meta.yaml | 4 +--- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/recipes/bam-readcount/build.sh b/recipes/bam-readcount/build.sh index 7d754621bbd4d..e4eec512b3d21 100644 --- a/recipes/bam-readcount/build.sh +++ b/recipes/bam-readcount/build.sh @@ -1,6 +1,4 @@ -#!/bin/bash -euo - -set -x +#!/bin/bash -ex wget https://github.com/boostorg/boost/releases/download/boost-1.85.0/boost-1.85.0-cmake.tar.gz @@ -14,11 +12,12 @@ export LIBPATH="-L${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -pthread -L${PREFIX}/lib" export CXXFLAGS="${CXXFLAGS} -O3 -I${PREFIX}/include" -if [ `uname` == Darwin ]; then - export LDFLAGS="${LDFLAGS} -Wl,-rpath,${PREFIX}/lib -lz -lbz2" - export MACOSX_DEPLOYMENT_TARGET=10.13 - # See https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk for -D_LIBCPP_DISABLE_AVAILABILITY - # export CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" +if [[ `uname` == Darwin ]]; then + export LDFLAGS="${LDFLAGS} -Wl,-rpath,${PREFIX}/lib" + export CFLAGS="${CFLAGS} -Wno-unguarded-availability -Wdeprecated-non-prototype" + export CMAKE_EXTRA="-DCMAKE_FIND_FRAMEWORK=NEVER -DCMAKE_FIND_APPBUNDLE=NEVER" +else + export CMAKE_EXTRA="" fi mkdir -p build @@ -28,10 +27,12 @@ cmake -S .. -B . -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ -DCMAKE_CXX_COMPILER="${CXX}" \ -DCMAKE_C_COMPILER="${CC}" \ -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ - -Wno-dev -Wno-deprecated --no-warn-unused-cli + -DCMAKE_C_FLAGS="${CFLAGS}" \ + -Wno-dev -Wno-deprecated --no-warn-unused-cli \ + ${CMAKE_EXTRA} make clean -make CXX="${CXX} ${LDFLAGS}" CC="${CC}" CXXFLAGS="${CXXFLAGS}" +make CXX="${CXX} ${LDFLAGS}" CC="${CC}" CXXFLAGS="${CXXFLAGS}" CFLAGS="${CFLAGS}" chmod 755 bin/bam-readcount cp -f bin/bam-readcount "${PREFIX}/bin" diff --git a/recipes/bam-readcount/meta.yaml b/recipes/bam-readcount/meta.yaml index 5e80b8f2b7fd7..fa49a617952da 100644 --- a/recipes/bam-readcount/meta.yaml +++ b/recipes/bam-readcount/meta.yaml @@ -10,8 +10,7 @@ source: sha256: 8ebf84d9efee0f2d3b43f0452dbf16b27337c960e25128f6a7173119e62588b8 build: - number: 1 - skip: True # [osx] + number: 2 run_exports: - {{ pin_subpackage('bam-readcount', max_pin="x") }} @@ -28,7 +27,6 @@ requirements: - clangdev run: - python - - pthread-stubs test: commands: From ebe1de0c321709344801241d00903849df8b69e9 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 5 Aug 2024 02:35:30 -0500 Subject: [PATCH 1038/1514] Update cite-seq-count to 1.4.5 (#49792) --- recipes/cite-seq-count/0001-setup.py.patch | 841 ++++++++++++++++++ recipes/cite-seq-count/0002-pytest_deps.patch | 17 + recipes/cite-seq-count/meta.yaml | 30 +- recipes/cite-seq-count/pytest_deps.patch | 25 - 4 files changed, 872 insertions(+), 41 deletions(-) create mode 100644 recipes/cite-seq-count/0001-setup.py.patch create mode 100644 recipes/cite-seq-count/0002-pytest_deps.patch delete mode 100644 recipes/cite-seq-count/pytest_deps.patch diff --git a/recipes/cite-seq-count/0001-setup.py.patch b/recipes/cite-seq-count/0001-setup.py.patch new file mode 100644 index 0000000000000..77f379138ff94 --- /dev/null +++ b/recipes/cite-seq-count/0001-setup.py.patch @@ -0,0 +1,841 @@ +diff --git a/cite_seq_count/__main__.py b/cite_seq_count/__main__.py +index 519c391..bf1c3ba 100755 +--- a/cite_seq_count/__main__.py ++++ b/cite_seq_count/__main__.py +@@ -25,134 +25,263 @@ from cite_seq_count import secondsToText + + version = pkg_resources.require("cite_seq_count")[0].version + ++ + def get_args(): + """ + Get args. + """ + parser = ArgumentParser( +- prog='CITE-seq-Count', formatter_class=RawTextHelpFormatter, +- description=("This script counts matching antibody tags from paired fastq " +- "files. Version {}".format(version)), ++ prog="CITE-seq-Count", ++ formatter_class=RawTextHelpFormatter, ++ description=( ++ "This script counts matching antibody tags from paired fastq " ++ "files. Version {}".format(version) ++ ), + ) + + # REQUIRED INPUTS group. +- inputs = parser.add_argument_group('Inputs', +- description="Required input files.") +- inputs.add_argument('-R1', '--read1', dest='read1_path', required=True, +- help=("The path of Read1 in gz format, or a comma-separated list of paths to all Read1 files in" +- " gz format (E.g. A1.fq.gz,B1.fq,gz,...")) +- inputs.add_argument('-R2', '--read2', dest='read2_path', required=True, +- help=("The path of Read2 in gz format, or a comma-separated list of paths to all Read2 files in" +- " gz format (E.g. A2.fq.gz,B2.fq,gz,...")) ++ inputs = parser.add_argument_group("Inputs", description="Required input files.") ++ inputs.add_argument( ++ "-R1", ++ "--read1", ++ dest="read1_path", ++ required=True, ++ help=( ++ "The path of Read1 in gz format, or a comma-separated list of paths to all Read1 files in" ++ " gz format (E.g. A1.fq.gz,B1.fq,gz,..." ++ ), ++ ) ++ inputs.add_argument( ++ "-R2", ++ "--read2", ++ dest="read2_path", ++ required=True, ++ help=( ++ "The path of Read2 in gz format, or a comma-separated list of paths to all Read2 files in" ++ " gz format (E.g. A2.fq.gz,B2.fq,gz,..." ++ ), ++ ) + inputs.add_argument( +- '-t', '--tags', dest='tags', required=True, +- help=("The path to the csv file containing the antibody\n" +- "barcodes as well as their respective names.\n\n" +- "Example of an antibody barcode file structure:\n\n" +- "\tATGCGA,First_tag_name\n" +- "\tGTCATG,Second_tag_name") ++ "-t", ++ "--tags", ++ dest="tags", ++ required=True, ++ help=( ++ "The path to the csv file containing the antibody\n" ++ "barcodes as well as their respective names.\n\n" ++ "Example of an antibody barcode file structure:\n\n" ++ "\tATGCGA,First_tag_name\n" ++ "\tGTCATG,Second_tag_name" ++ ), + ) + + # BARCODES group. + barcodes = parser.add_argument_group( +- 'Barcodes', +- description=("Positions of the cellular barcodes and UMI. If your " +- "cellular barcodes and UMI\n are positioned as follows:\n" +- "\tBarcodes from 1 to 16 and UMI from 17 to 26\n" +- "then this is the input you need:\n" +- "\t-cbf 1 -cbl 16 -umif 17 -umil 26") +- ) +- barcodes.add_argument('-cbf', '--cell_barcode_first_base', dest='cb_first', +- required=True, type=int, +- help=("Postion of the first base of your cell " +- "barcodes.")) +- barcodes.add_argument('-cbl', '--cell_barcode_last_base', dest='cb_last', +- required=True, type=int, +- help=("Postion of the last base of your cell " +- "barcodes.")) +- barcodes.add_argument('-umif', '--umi_first_base', dest='umi_first', +- required=True, type=int, +- help="Postion of the first base of your UMI.") +- barcodes.add_argument('-umil', '--umi_last_base', dest='umi_last', +- required=True, type=int, +- help="Postion of the last base of your UMI.") +- barcodes.add_argument('--umi_collapsing_dist', dest='umi_threshold', +- required=False, type=int, default=2, +- help="threshold for umi collapsing.") +- barcodes.add_argument('--no_umi_correction', required=False, action='store_true', default=False, +- dest='no_umi_correction', help="Deactivate UMI collapsing") +- barcodes.add_argument('--bc_collapsing_dist', dest='bc_threshold', +- required=False, type=int, default=1, +- help="threshold for cellular barcode collapsing.") ++ "Barcodes", ++ description=( ++ "Positions of the cellular barcodes and UMI. If your " ++ "cellular barcodes and UMI\n are positioned as follows:\n" ++ "\tBarcodes from 1 to 16 and UMI from 17 to 26\n" ++ "then this is the input you need:\n" ++ "\t-cbf 1 -cbl 16 -umif 17 -umil 26" ++ ), ++ ) ++ barcodes.add_argument( ++ "-cbf", ++ "--cell_barcode_first_base", ++ dest="cb_first", ++ required=True, ++ type=int, ++ help=("Postion of the first base of your cell " "barcodes."), ++ ) ++ barcodes.add_argument( ++ "-cbl", ++ "--cell_barcode_last_base", ++ dest="cb_last", ++ required=True, ++ type=int, ++ help=("Postion of the last base of your cell " "barcodes."), ++ ) ++ barcodes.add_argument( ++ "-umif", ++ "--umi_first_base", ++ dest="umi_first", ++ required=True, ++ type=int, ++ help="Postion of the first base of your UMI.", ++ ) ++ barcodes.add_argument( ++ "-umil", ++ "--umi_last_base", ++ dest="umi_last", ++ required=True, ++ type=int, ++ help="Postion of the last base of your UMI.", ++ ) ++ barcodes.add_argument( ++ "--umi_collapsing_dist", ++ dest="umi_threshold", ++ required=False, ++ type=int, ++ default=2, ++ help="threshold for umi collapsing.", ++ ) ++ barcodes.add_argument( ++ "--no_umi_correction", ++ required=False, ++ action="store_true", ++ default=False, ++ dest="no_umi_correction", ++ help="Deactivate UMI collapsing", ++ ) ++ barcodes.add_argument( ++ "--bc_collapsing_dist", ++ dest="bc_threshold", ++ required=False, ++ type=int, ++ default=1, ++ help="threshold for cellular barcode collapsing.", ++ ) + cells = parser.add_argument_group( +- 'Cells', +- description=("Expected number of cells and potential whitelist") ++ "Cells", description=("Expected number of cells and potential whitelist") + ) + + cells.add_argument( +- '-cells', '--expected_cells', dest='expected_cells', required=True, type=int, +- help=("Number of expected cells from your run."), default=0 ++ "-cells", ++ "--expected_cells", ++ dest="expected_cells", ++ required=True, ++ type=int, ++ help=("Number of expected cells from your run."), ++ default=0, + ) + cells.add_argument( +- '-wl', '--whitelist', dest='whitelist', required=False, type=str, +- help=("A csv file containning a whitelist of barcodes produced" +- " by the mRNA data.\n\n" +- "\tExample:\n" +- "\tATGCTAGTGCTA\n\tGCTAGTCAGGAT\n\tCGACTGCTAACG\n\n" +- "Or 10X-style:\n" +- "\tATGCTAGTGCTA-1\n\tGCTAGTCAGGAT-1\n\tCGACTGCTAACG-1\n") ++ "-wl", ++ "--whitelist", ++ dest="whitelist", ++ required=False, ++ type=str, ++ help=( ++ "A csv file containning a whitelist of barcodes produced" ++ " by the mRNA data.\n\n" ++ "\tExample:\n" ++ "\tATGCTAGTGCTA\n\tGCTAGTCAGGAT\n\tCGACTGCTAACG\n\n" ++ "Or 10X-style:\n" ++ "\tATGCTAGTGCTA-1\n\tGCTAGTCAGGAT-1\n\tCGACTGCTAACG-1\n" ++ ), + ) + + # FILTERS group. + filters = parser.add_argument_group( +- 'TAG filters', +- description=("Filtering and trimming for read2.") ++ "TAG filters", description=("Filtering and trimming for read2.") + ) + filters.add_argument( +- '--max-errors', dest='max_error', +- required=False, type=int, default=2, +- help=("Maximum Levenshtein distance allowed for antibody barcodes.") ++ "--max-errors", ++ dest="max_error", ++ required=False, ++ type=int, ++ default=2, ++ help=("Maximum Levenshtein distance allowed for antibody barcodes."), + ) +- ++ + filters.add_argument( +- '-trim', '--start-trim', dest='start_trim', +- required=False, type=int, default=0, +- help=("Number of bases to discard from read2.") ++ "-trim", ++ "--start-trim", ++ dest="start_trim", ++ required=False, ++ type=int, ++ default=0, ++ help=("Number of bases to discard from read2."), + ) +- ++ + filters.add_argument( +- '--sliding-window', dest='sliding_window', +- required=False, default=False, action='store_true', +- help=("Allow for a sliding window when aligning.") ++ "--sliding-window", ++ dest="sliding_window", ++ required=False, ++ default=False, ++ action="store_true", ++ help=("Allow for a sliding window when aligning."), + ) +- + + # Remaining arguments. +- parser.add_argument('-T', '--threads', required=False, type=int, +- dest='n_threads', default=cpu_count(), +- help="How many threads are to be used for running the program") +- parser.add_argument('-n', '--first_n', required=False, type=int, +- dest='first_n', default=None, +- help="Select N reads to run on instead of all.") +- parser.add_argument('-o', '--output', required=False, type=str, default='Results', +- dest='outfolder', help="Results will be written to this folder") +- parser.add_argument('--dense', required=False, action='store_true', default=False, +- dest='dense', help="Add a dense output to the results folder") +- parser.add_argument('-u', '--unmapped-tags', required=False, type=str, +- dest='unmapped_file', default='unmapped.csv', +- help="Write table of unknown TAGs to file.") +- parser.add_argument('-ut', '--unknown-top-tags', required=False, +- dest='unknowns_top', type=int, default=100, +- help="Top n unmapped TAGs.") +- parser.add_argument('--debug', action='store_true', +- help="Print extra information for debugging.") +- parser.add_argument('--version', action='version', version='CITE-seq-Count v{}'.format(version), +- help="Print version number.") ++ parser.add_argument( ++ "-T", ++ "--threads", ++ required=False, ++ type=int, ++ dest="n_threads", ++ default=cpu_count(), ++ help="How many threads are to be used for running the program", ++ ) ++ parser.add_argument( ++ "-n", ++ "--first_n", ++ required=False, ++ type=int, ++ dest="first_n", ++ default=None, ++ help="Select N reads to run on instead of all.", ++ ) ++ parser.add_argument( ++ "-o", ++ "--output", ++ required=False, ++ type=str, ++ default="Results", ++ dest="outfolder", ++ help="Results will be written to this folder", ++ ) ++ parser.add_argument( ++ "--dense", ++ required=False, ++ action="store_true", ++ default=False, ++ dest="dense", ++ help="Add a dense output to the results folder", ++ ) ++ parser.add_argument( ++ "-u", ++ "--unmapped-tags", ++ required=False, ++ type=str, ++ dest="unmapped_file", ++ default="unmapped.csv", ++ help="Write table of unknown TAGs to file.", ++ ) ++ parser.add_argument( ++ "-ut", ++ "--unknown-top-tags", ++ required=False, ++ dest="unknowns_top", ++ type=int, ++ default=100, ++ help="Top n unmapped TAGs.", ++ ) ++ parser.add_argument( ++ "--debug", action="store_true", help="Print extra information for debugging." ++ ) ++ parser.add_argument( ++ "--version", ++ action="version", ++ version="CITE-seq-Count v{}".format(version), ++ help="Print version number.", ++ ) + # Finally! Too many options XD + return parser + + +-def create_report(n_reads, reads_per_cell, no_match, version, start_time, ordered_tags_map, umis_corrected, bcs_corrected, bad_cells, args): ++def create_report( ++ n_reads, ++ reads_per_cell, ++ no_match, ++ version, ++ start_time, ++ ordered_tags_map, ++ umis_corrected, ++ bcs_corrected, ++ bad_cells, ++ args, ++): + """ + Creates a report with details about the run in a yaml format. + +@@ -167,12 +296,12 @@ def create_report(n_reads, reads_per_cell, no_match, version, start_time, ordere + """ + total_unmapped = sum(no_match.values()) + total_mapped = sum(reads_per_cell.values()) - total_unmapped +- mapped_perc = round((total_mapped/n_reads)*100) +- unmapped_perc = round((total_unmapped/n_reads)*100) +- +- with open(os.path.join(args.outfolder, 'run_report.yaml'), 'w') as report_file: ++ mapped_perc = round((total_mapped / n_reads) * 100) ++ unmapped_perc = round((total_unmapped / n_reads) * 100) ++ ++ with open(os.path.join(args.outfolder, "run_report.yaml"), "w") as report_file: + report_file.write( +-"""Date: {} ++ """Date: {} + Running time: {} + CITE-seq-Count Version: {} + Reads processed: {} +@@ -197,34 +326,39 @@ Run parameters: + \tTags max errors: {} + \tStart trim: {} + """.format( +- datetime.datetime.today().strftime('%Y-%m-%d'), +- secondsToText.secondsToText(time.time()-start_time), +- version, +- n_reads, +- mapped_perc, +- unmapped_perc, +- len(bad_cells), +- args.bc_threshold, +- bcs_corrected, +- args.umi_threshold, +- umis_corrected, +- args.read1_path, +- args.read2_path, +- args.cb_first, +- args.cb_last, +- args.umi_first, +- args.umi_last, +- args.expected_cells, +- args.max_error, +- args.start_trim)) ++ datetime.datetime.today().strftime("%Y-%m-%d"), ++ secondsToText.secondsToText(time.time() - start_time), ++ version, ++ n_reads, ++ mapped_perc, ++ unmapped_perc, ++ len(bad_cells), ++ args.bc_threshold, ++ bcs_corrected, ++ args.umi_threshold, ++ umis_corrected, ++ args.read1_path, ++ args.read2_path, ++ args.cb_first, ++ args.cb_last, ++ args.umi_first, ++ args.umi_last, ++ args.expected_cells, ++ args.max_error, ++ args.start_trim, ++ ) ++ ) ++ + + def main(): +- #Create logger and stream handler +- logger = logging.getLogger('cite_seq_count') ++ # Create logger and stream handler ++ logger = logging.getLogger("cite_seq_count") + logger.setLevel(logging.CRITICAL) + ch = logging.StreamHandler() + ch.setLevel(logging.CRITICAL) +- formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') ++ formatter = logging.Formatter( ++ "%(asctime)s - %(name)s - %(levelname)s - %(message)s" ++ ) + ch.setFormatter(formatter) + logger.addHandler(ch) + +@@ -237,11 +371,12 @@ def main(): + # Parse arguments. + args = parser.parse_args() + if args.whitelist: +- print('Loading whitelist') ++ print("Loading whitelist") + (whitelist, args.bc_threshold) = preprocessing.parse_whitelist_csv( + filename=args.whitelist, + barcode_length=args.cb_last - args.cb_first + 1, +- collapsing_threshold=args.bc_threshold) ++ collapsing_threshold=args.bc_threshold, ++ ) + else: + whitelist = False + +@@ -250,7 +385,9 @@ def main(): + ab_map = preprocessing.check_tags(ab_map, args.max_error) + + # Identify input file(s) +- read1_paths, read2_paths = preprocessing.get_read_paths(args.read1_path, args.read2_path) ++ read1_paths, read2_paths = preprocessing.get_read_paths( ++ args.read1_path, args.read2_path ++ ) + + # preprocessing and processing occur in separate loops so the program can crash earlier if + # one of the inputs is not valid. +@@ -264,14 +401,16 @@ def main(): + ( + barcode_slice, + umi_slice, +- barcode_umi_length ++ barcode_umi_length, + ) = preprocessing.check_barcodes_lengths( +- read1_lengths[-1], +- args.cb_first, +- args.cb_last, +- args.umi_first, args.umi_last) ++ read1_lengths[-1], ++ args.cb_first, ++ args.cb_last, ++ args.umi_first, ++ args.umi_last, ++ ) + # Ensure all files have the same input length +- #if len(set(read1_lengths)) != 1: ++ # if len(set(read1_lengths)) != 1: + # sys.exit('Input barcode fastqs (read1) do not all have same length.\nExiting') + + # Initialize the counts dicts that will be generated from each input fastq pair +@@ -281,52 +420,54 @@ def main(): + merged_no_match = Counter() + number_of_samples = len(read1_paths) + n_reads = 0 +- +- #Print a statement if multiple files are run. ++ ++ # Print a statement if multiple files are run. + if number_of_samples != 1: +- print('Detected {} files to run on.'.format(number_of_samples)) +- ++ print("Detected {} files to run on.".format(number_of_samples)) ++ + for read1_path, read2_path in zip(read1_paths, read2_paths): + if args.first_n: +- n_lines = (args.first_n*4)/number_of_samples ++ n_lines = (args.first_n * 4) / number_of_samples + else: + n_lines = preprocessing.get_n_lines(read1_path) +- n_reads += int(n_lines/4) ++ n_reads += int(n_lines / 4) + n_threads = args.n_threads +- print('Started mapping') +- print('Processing {:,} reads'.format(n_reads)) +- #Run with one process ++ print("Started mapping") ++ print("Processing {:,} reads".format(n_reads)) ++ # Run with one process + if n_threads <= 1 or n_reads < 1000001: +- print('CITE-seq-Count is running with one core.') +- ( +- _final_results, +- _merged_no_match) = processing.map_reads( +- read1_path=read1_path, +- read2_path=read2_path, +- tags=ab_map, +- barcode_slice=barcode_slice, +- umi_slice=umi_slice, +- indexes=[0,n_reads], +- whitelist=whitelist, +- debug=args.debug, +- start_trim=args.start_trim, +- maximum_distance=args.max_error, +- sliding_window=args.sliding_window) +- print('Mapping done') ++ print("CITE-seq-Count is running with one core.") ++ (_final_results, _merged_no_match) = processing.map_reads( ++ read1_path=read1_path, ++ read2_path=read2_path, ++ tags=ab_map, ++ barcode_slice=barcode_slice, ++ umi_slice=umi_slice, ++ indexes=[0, n_reads], ++ whitelist=whitelist, ++ debug=args.debug, ++ start_trim=args.start_trim, ++ maximum_distance=args.max_error, ++ sliding_window=args.sliding_window, ++ ) ++ print("Mapping done") + _umis_per_cell = Counter() + _reads_per_cell = Counter() + for cell_barcode, counts in _final_results.items(): + _umis_per_cell[cell_barcode] = sum([len(counts[UMI]) for UMI in counts]) +- _reads_per_cell[cell_barcode] = sum([sum(counts[UMI].values()) for UMI in counts]) ++ _reads_per_cell[cell_barcode] = sum( ++ [sum(counts[UMI].values()) for UMI in counts] ++ ) + else: + # Run with multiple processes +- print('CITE-seq-Count is running with {} cores.'.format(n_threads)) ++ print("CITE-seq-Count is running with {} cores.".format(n_threads)) + p = Pool(processes=n_threads) + chunk_indexes = preprocessing.chunk_reads(n_reads, n_threads) + parallel_results = [] + + for indexes in chunk_indexes: +- p.apply_async(processing.map_reads, ++ p.apply_async( ++ processing.map_reads, + args=( + read1_path, + read2_path, +@@ -338,21 +479,23 @@ def main(): + args.debug, + args.start_trim, + args.max_error, +- args.sliding_window), ++ args.sliding_window, ++ ), + callback=parallel_results.append, +- error_callback=sys.stderr) ++ error_callback=sys.stderr, ++ ) + p.close() + p.join() +- print('Mapping done') +- print('Merging results') ++ print("Mapping done") ++ print("Merging results") + + ( + _final_results, + _umis_per_cell, + _reads_per_cell, +- _merged_no_match ++ _merged_no_match, + ) = processing.merge_results(parallel_results=parallel_results) +- del(parallel_results) ++ del parallel_results + + # Update the overall counts dicts + umis_per_cell.update(_umis_per_cell) +@@ -362,46 +505,56 @@ def main(): + for tag in _final_results[cell_barcode]: + if tag in final_results[cell_barcode]: + # Counter + Counter = Counter +- final_results[cell_barcode][tag] += _final_results[cell_barcode][tag] ++ final_results[cell_barcode][tag] += _final_results[cell_barcode][ ++ tag ++ ] + else: + # Explicitly save the counter to that tag + final_results[cell_barcode][tag] = _final_results[cell_barcode][tag] + ordered_tags_map = OrderedDict() +- for i,tag in enumerate(ab_map.values()): ++ for i, tag in enumerate(ab_map.values()): + ordered_tags_map[tag] = i +- ordered_tags_map['unmapped'] = i + 1 ++ ordered_tags_map["unmapped"] = i + 1 + + # Correct cell barcodes +- if(len(umis_per_cell) <= args.expected_cells): +- print("Number of expected cells, {}, is higher " \ +- "than number of cells found {}.\nNot performing" \ +- "cell barcode correction" \ +- "".format(args.expected_cells, len(umis_per_cell))) +- bcs_corrected = 0 +- else: +- print('Correcting cell barcodes') +- if not whitelist: +- ( +- final_results, +- umis_per_cell, +- bcs_corrected +- ) = processing.correct_cells( ++ if args.bc_threshold > 0: ++ if len(umis_per_cell) <= args.expected_cells: ++ print( ++ "Number of expected cells, {}, is higher " ++ "than number of cells found {}.\nNot performing" ++ "cell barcode correction" ++ "".format(args.expected_cells, len(umis_per_cell)) ++ ) ++ bcs_corrected = 0 ++ else: ++ print("Correcting cell barcodes") ++ if not whitelist: ++ ( ++ final_results, ++ umis_per_cell, ++ bcs_corrected, ++ ) = processing.correct_cells( + final_results=final_results, + reads_per_cell=reads_per_cell, + umis_per_cell=umis_per_cell, + expected_cells=args.expected_cells, + collapsing_threshold=args.bc_threshold, +- ab_map=ordered_tags_map) +- else: +- ( +- final_results, +- umis_per_cell, +- bcs_corrected) = processing.correct_cells_whitelist( ++ ab_map=ordered_tags_map, ++ ) ++ else: ++ ( ++ final_results, ++ umis_per_cell, ++ bcs_corrected, ++ ) = processing.correct_cells_whitelist( + final_results=final_results, + umis_per_cell=umis_per_cell, + whitelist=whitelist, + collapsing_threshold=args.bc_threshold, +- ab_map=ordered_tags_map) ++ ab_map=ordered_tags_map, ++ ) ++ else: ++ bcs_corrected = 0 + + # If given, use whitelist for top cells + if whitelist: +@@ -420,78 +573,75 @@ def main(): + top_cells_tuple = umis_per_cell.most_common(args.expected_cells) + top_cells = set([pair[0] for pair in top_cells_tuple]) + +- #UMI correction ++ # UMI correction + + if args.no_umi_correction: +- #Don't correct ++ # Don't correct + umis_corrected = 0 + aberrant_cells = set() + else: +- #Correct UMIS +- ( +- final_results, +- umis_corrected, +- aberrant_cells +- ) = processing.correct_umis( ++ # Correct UMIS ++ (final_results, umis_corrected, aberrant_cells) = processing.correct_umis( + final_results=final_results, + collapsing_threshold=args.umi_threshold, + top_cells=top_cells, +- max_umis=20000) ++ max_umis=20000, ++ ) + +- #Remove aberrant cells from the top cells ++ # Remove aberrant cells from the top cells + for cell_barcode in aberrant_cells: + top_cells.remove(cell_barcode) + +- #Create sparse aberrant cells matrix +- ( +- umi_aberrant_matrix, +- read_aberrant_matrix +- ) = processing.generate_sparse_matrices( ++ # Create sparse aberrant cells matrix ++ (umi_aberrant_matrix, read_aberrant_matrix) = processing.generate_sparse_matrices( + final_results=final_results, + ordered_tags_map=ordered_tags_map, +- top_cells=aberrant_cells) +- +- #Write uncorrected cells to dense output ++ top_cells=aberrant_cells, ++ ) ++ ++ # Write uncorrected cells to dense output + io.write_dense( +- sparse_matrix=umi_aberrant_matrix, +- index=list(ordered_tags_map.keys()), +- columns=aberrant_cells, +- outfolder=os.path.join(args.outfolder,'uncorrected_cells'), +- filename='dense_umis.tsv') +- +- #Create sparse matrices for results +- ( +- umi_results_matrix, +- read_results_matrix +- ) = processing.generate_sparse_matrices( ++ sparse_matrix=umi_aberrant_matrix, ++ index=list(ordered_tags_map.keys()), ++ columns=aberrant_cells, ++ outfolder=os.path.join(args.outfolder, "uncorrected_cells"), ++ filename="dense_umis.tsv", ++ ) ++ ++ # Create sparse matrices for results ++ (umi_results_matrix, read_results_matrix) = processing.generate_sparse_matrices( + final_results=final_results, + ordered_tags_map=ordered_tags_map, +- top_cells=top_cells) +- ++ top_cells=top_cells, ++ ) ++ + # Write umis to file + io.write_to_files( + sparse_matrix=umi_results_matrix, + top_cells=top_cells, + ordered_tags_map=ordered_tags_map, +- data_type='umi', +- outfolder=args.outfolder) +- ++ data_type="umi", ++ outfolder=args.outfolder, ++ ) ++ + # Write reads to file + io.write_to_files( + sparse_matrix=read_results_matrix, + top_cells=top_cells, + ordered_tags_map=ordered_tags_map, +- data_type='read', +- outfolder=args.outfolder) +- +- #Write unmapped sequences ++ data_type="read", ++ outfolder=args.outfolder, ++ ) ++ ++ # Write unmapped sequences + io.write_unmapped( + merged_no_match=merged_no_match, + top_unknowns=args.unknowns_top, + outfolder=args.outfolder, +- filename=args.unmapped_file) +- +- #Create report and write it to disk ++ filename=args.unmapped_file, ++ ) ++ ++ # Create report and write it to disk + create_report( + n_reads=n_reads, + reads_per_cell=reads_per_cell, +@@ -502,17 +652,20 @@ def main(): + umis_corrected=umis_corrected, + bcs_corrected=bcs_corrected, + bad_cells=aberrant_cells, +- args=args) +- +- #Write dense matrix to disk if requested ++ args=args, ++ ) ++ ++ # Write dense matrix to disk if requested + if args.dense: +- print('Writing dense format output') ++ print("Writing dense format output") + io.write_dense( + sparse_matrix=umi_results_matrix, + index=list(ordered_tags_map.keys()), + columns=top_cells, + outfolder=args.outfolder, +- filename='dense_umis.tsv') ++ filename="dense_umis.tsv", ++ ) ++ + +-if __name__ == '__main__': ++if __name__ == "__main__": + main() +diff --git a/setup.py b/setup.py +index 819e30c..6423bc3 100644 +--- a/setup.py ++++ b/setup.py +@@ -5,7 +5,7 @@ with open("README.md", "r") as fh: + + setuptools.setup( + name="CITE-seq-Count", +- version="1.4.4", ++ version="1.4.5", + author="Roelli Patrick", + author_email="patrick.roelli@gmail.com", + description="A python package to map reads from CITE-seq or hashing data for single cell experiments", diff --git a/recipes/cite-seq-count/0002-pytest_deps.patch b/recipes/cite-seq-count/0002-pytest_deps.patch new file mode 100644 index 0000000000000..08b5a7c38a9cd --- /dev/null +++ b/recipes/cite-seq-count/0002-pytest_deps.patch @@ -0,0 +1,17 @@ +diff --git a/setup.py b/setup.py +index 819e30c..832c108 100644 +--- a/setup.py ++++ b/setup.py +@@ -21,9 +21,9 @@ setuptools.setup( + "python-levenshtein>=0.12.0", + "scipy>=1.1.0", + "multiprocess>=0.70.6.1", +- "umi_tools==1.0.0", +- "pytest==4.1.0", +- "pytest-dependency==0.4.0", ++ "umi_tools>=1.1.5", ++ "pytest>=4.1.0", ++ "pytest-dependency>=0.4.0", + "pandas>=0.23.4", + "pybktree==1.1", + ], diff --git a/recipes/cite-seq-count/meta.yaml b/recipes/cite-seq-count/meta.yaml index 21c798bf66609..49f5676a7caa3 100644 --- a/recipes/cite-seq-count/meta.yaml +++ b/recipes/cite-seq-count/meta.yaml @@ -1,36 +1,32 @@ + {% set name = "CITE-seq-Count" %} {% set version = "1.4.4" %} {% set sha256 = "1245c0dabf2c2ee80f9afcac4c70bb97c2d8b5aea73adfcfc7062e3984d57e39" %} package: name: "{{ name|lower }}" - version: "{{ version }}" + version: "1.4.5" source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" sha256: {{ sha256 }} patches: - - pytest_deps.patch + - 0001-setup.py.patch + - 0002-pytest_deps.patch build: number: 0 noarch: python entry_points: - CITE-seq-Count = cite_seq_count.__main__:main - script: "{{ PYTHON }} -m pip install . -vv --no-deps" + script: "{{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir" + run_exports: + - {{ pin_subpackage('cite-seq-count', max_pin="x") }} requirements: host: - python >=3.6 - - multiprocess >=0.70.6.1 - - pandas >=0.23.4 - pip - - pybktree ==1.1 - - pytest - - pytest-dependency - - python-levenshtein >=0.12.0 - - scipy >=1.1.0 - - umi_tools ==1.0.0 run: - python >=3.6 - multiprocess >=0.70.6.1 @@ -39,8 +35,9 @@ requirements: - pytest - pytest-dependency - python-levenshtein >=0.12.0 + - regex - scipy >=1.1.0 - - umi_tools ==1.0.0 + - umi_tools >=1.1.5 test: imports: @@ -49,17 +46,18 @@ test: - CITE-seq-Count --help about: - home: "https://hoohm.github.io/CITE-seq-Count/" + home: "https://hoohm.github.io/CITE-seq-Count" license: MIT license_family: MIT license_file: LICENSE - summary: "A python package to map reads from CITE-seq or hashing data for single cell experiments" - doc_url: "https://hoohm.github.io/CITE-seq-Count/" - dev_url: "https://github.com/Hoohm/CITE-seq-Count/" + summary: "A python package to map reads from CITE-seq or hashing data for single cell experiments." + doc_url: "https://hoohm.github.io/CITE-seq-Count" + dev_url: "https://github.com/Hoohm/CITE-seq-Count" extra: recipe-maintainers: - acaprez identifiers: - biotools:CITE-seq-Count + - usegalaxy-eu:cite_seq_count - doi:10.5281/zenodo.2590196 diff --git a/recipes/cite-seq-count/pytest_deps.patch b/recipes/cite-seq-count/pytest_deps.patch deleted file mode 100644 index c60eb0a601bcd..0000000000000 --- a/recipes/cite-seq-count/pytest_deps.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- setup.py.org 2021-10-01 00:42:34.157107978 -0500 -+++ setup.py 2021-10-01 00:42:52.500079923 -0500 -@@ -22,8 +22,8 @@ - "scipy>=1.1.0", - "multiprocess>=0.70.6.1", - "umi_tools==1.0.0", -- "pytest==4.1.0", -- "pytest-dependency==0.4.0", -+ "pytest>=4.1.0", -+ "pytest-dependency>=0.4.0", - "pandas>=0.23.4", - "pybktree==1.1", - ], ---- CITE_seq_Count.egg-info/requires.txt.org 2021-10-01 00:43:01.952065465 -0500 -+++ CITE_seq_Count.egg-info/requires.txt 2021-10-01 00:43:10.664052138 -0500 -@@ -2,7 +2,7 @@ - scipy>=1.1.0 - multiprocess>=0.70.6.1 - umi_tools==1.0.0 --pytest==4.1.0 --pytest-dependency==0.4.0 -+pytest>=4.1.0 -+pytest-dependency>=0.4.0 - pandas>=0.23.4 - pybktree==1.1 From 5f2d85c2deed2e371d9cf7e27a686d1eaf3eea8c Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 5 Aug 2024 03:14:39 -0500 Subject: [PATCH 1039/1514] umi_tools: add arm64 build (#49793) --- recipes/umi_tools/meta.yaml | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/recipes/umi_tools/meta.yaml b/recipes/umi_tools/meta.yaml index 8176d7e0607eb..1226c60bb3b15 100644 --- a/recipes/umi_tools/meta.yaml +++ b/recipes/umi_tools/meta.yaml @@ -1,6 +1,6 @@ {% set name = "umi_tools" %} {% set version = "1.1.5" %} -{% set sha256hash = "2a87b75364ebe3e6ccf467d3b6d0501c458a48f3e6c8ab8b7c4dfb3fd7627fab" %} +{% set sha256 = "2a87b75364ebe3e6ccf467d3b6d0501c458a48f3e6c8ab8b7c4dfb3fd7627fab" %} package: name: {{ name }} @@ -8,13 +8,13 @@ package: source: url: https://github.com/CGATOxford/UMI-tools/archive/refs/tags/{{ version }}.tar.gz - sha256: {{ sha256hash }} + sha256: {{ sha256 }} build: - number: 2 - script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed --no-cache-dir -vvv" + number: 3 + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" # python 3.12: error: 'PyLongObject' {aka 'struct _longobject'} has no member named 'ob_digit' - skip: true # [py == 312 ] + skip: True # [py == 312 ] entry_points: - umi_tools = umi_tools.umi_tools:main run_exports: @@ -39,16 +39,26 @@ requirements: test: commands: - - umi_tools --help + - "umi_tools --help" about: - home: https://github.com/CGATOxford/UMI-tools - license: MIT License + home: "https://github.com/CGATOxford/UMI-tools" + license: MIT license_family: MIT - summary: 'Tools for dealing with Unique Molecular Identifiers - (UMIs) / Random Molecular Tags (RMTs)' - dev_url: https://github.com/CGATOxford/UMI-tools + license_file: LICENSE + summary: "Tools for dealing with Unique Molecular Identifiers + (UMIs) / Random Molecular Tags (RMTs)." + dev_url: "https://github.com/CGATOxford/UMI-tools" + doc_url: "https://umi-tools.readthedocs.io/en/latest" extra: additional-platforms: - linux-aarch64 + - osx-arm64 + identifiers: + - doi:10.1101/gr.209601.116 + - usegalaxy-eu:umi_tools_count + - usegalaxy-eu:umi_tools_extract + - usegalaxy-eu:umi_tools_group + - usegalaxy-eu:umi_tools_whitelist + - usegalaxy-eu:umi_tools_dedup From ee73481153fce989acac090ad3b09dabaac9764f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 05:11:12 -0400 Subject: [PATCH 1040/1514] Update nextpolish2 to 0.2.1 (#49795) * Update nextpolish2 to 0.2.1 * add run_exports --------- Co-authored-by: mencian --- recipes/nextpolish2/build.sh | 6 +----- recipes/nextpolish2/meta.yaml | 24 +++++++++++++++--------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/recipes/nextpolish2/build.sh b/recipes/nextpolish2/build.sh index 3662f6efb60db..5e20a67b60e44 100644 --- a/recipes/nextpolish2/build.sh +++ b/recipes/nextpolish2/build.sh @@ -1,8 +1,4 @@ #!/bin/bash -euo -# Add workaround for SSH-based Git connections from Rust/cargo. See https://github.com/rust-lang/cargo/issues/2078 for details. -# We set CARGO_HOME because we don't pass on HOME to conda-build, thus rendering the default "${HOME}/.cargo" defunct. -export CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_HOME="$(pwd)/.cargo" - # build statically linked binary with Rust -RUST_BACKTRACE=1 cargo install --verbose --path . --root $PREFIX +RUST_BACKTRACE=1 cargo install --verbose --path . --root "${PREFIX}" diff --git a/recipes/nextpolish2/meta.yaml b/recipes/nextpolish2/meta.yaml index 06e3cee601ab3..c90c5f20d41d2 100644 --- a/recipes/nextpolish2/meta.yaml +++ b/recipes/nextpolish2/meta.yaml @@ -1,24 +1,27 @@ -{% set version = "0.2.0" %} +{% set name = "nextpolish2" %} +{% set version = "0.2.1" %} package: - name: nextpolish2 + name: {{ name }} version: {{ version }} source: url: https://github.com/Nextomics/NextPolish2/archive/{{ version }}.tar.gz - sha256: 34fc7c5ce8e4ce2e1e2fd2252624b8f7d6cc81e2d4b2c8a7479053401bb50e04 + sha256: 5f94cfabae5d38397a33c118f572246070707aa23f7b2ab831fd255710f50280 build: number: 0 + run_exports: + - {{ pin_subpackage('nextpolish2', max_pin="x.x") }} requirements: build: - - rust >=1.64 + - {{ compiler('cxx') }} + - {{ compiler('rust') }} - make - cmake - - zlib - - {{ compiler('cxx') }} host: + - zlib run: - yak >=0.1 @@ -29,12 +32,15 @@ test: - nextPolish2 --help about: - home: https://github.com/Nextomics/NextPolish2 + home: "https://github.com/Nextomics/NextPolish2" license: GBPL license_file: LICENSE - summary: Repeat-aware polishing genomes assembled using HiFi long reads + summary: "Repeat-aware polishing genomes assembled using HiFi long reads." + dev_url: "https://github.com/Nextomics/NextPolish2" + doc_url: "https://github.com/Nextomics/NextPolish2/blob/{{ version }}/README.md" extra: recipe-maintainers: - moold - + identifiers: + - doi:10.1093/gpbjnl/qzad009 From 060926c44e25bf2fc77f29b296127fa245fb66a2 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 5 Aug 2024 04:25:21 -0500 Subject: [PATCH 1041/1514] Update cite-seq-count recipe (#49797) * Update cite-seq-count recipe * reset build number --- recipes/cite-seq-count/meta.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/recipes/cite-seq-count/meta.yaml b/recipes/cite-seq-count/meta.yaml index 49f5676a7caa3..dd1d6ffc1de9a 100644 --- a/recipes/cite-seq-count/meta.yaml +++ b/recipes/cite-seq-count/meta.yaml @@ -35,7 +35,6 @@ requirements: - pytest - pytest-dependency - python-levenshtein >=0.12.0 - - regex - scipy >=1.1.0 - umi_tools >=1.1.5 From 8db8ceffb23b2ae65fd2f570702155686990bcc2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 10:03:55 -0400 Subject: [PATCH 1042/1514] Update assembly_finder to 0.7.5 (#49798) --- recipes/assembly_finder/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/assembly_finder/meta.yaml b/recipes/assembly_finder/meta.yaml index 5abfbc3b3caa9..481c55de1362a 100644 --- a/recipes/assembly_finder/meta.yaml +++ b/recipes/assembly_finder/meta.yaml @@ -1,5 +1,5 @@ {% set name = "assembly_finder" %} -{% set version = "0.7.4" %} +{% set version = "0.7.5" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://github.com/metagenlab/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz - sha256: a883ea2ac4b70960bdd260de69fb53a33b52ec1fe0d975572fce5f45a7ebdfc4 + sha256: 5b5d6ec619775e419c6875215c71a3a1e8c4e745c4a7ddb6847a2c03313a1470 build: number: 0 From 38506c8e23d480898d903bc586c0bff9c805f3c0 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 5 Aug 2024 18:21:42 +0300 Subject: [PATCH 1043/1514] pybedlite & cgranges: add aarch64/arm64 builds (#49794) * pybedlite: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * cgranges: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/cgranges/meta.yaml | 6 ++++-- recipes/pybedlite/meta.yaml | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/recipes/cgranges/meta.yaml b/recipes/cgranges/meta.yaml index 1a43ace782623..cc8be36d7d0a4 100644 --- a/recipes/cgranges/meta.yaml +++ b/recipes/cgranges/meta.yaml @@ -11,8 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 - skip: True # [py27] + number: 2 script: {{ PYTHON }} -m pip install --no-deps --no-build-isolation -vvv . run_exports: - {{ pin_subpackage('cgranges', max_pin="x") }} @@ -38,5 +37,8 @@ about: summary: "cgranges is a small C library for genomic interval overlap queries" extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - nh13 diff --git a/recipes/pybedlite/meta.yaml b/recipes/pybedlite/meta.yaml index 16e6de9deda68..711845645471b 100644 --- a/recipes/pybedlite/meta.yaml +++ b/recipes/pybedlite/meta.yaml @@ -10,8 +10,7 @@ source: sha256: c87a246a673f69b929103176b744b6ad6978b63fae45f1ca6becc315a72d671c build: - skip: True # [py < 38] - number: 0 + number: 1 script: {{ PYTHON }} -m pip install . -vvv --no-deps run_exports: - {{ pin_subpackage('pybedlite', max_pin="x") }} @@ -45,6 +44,9 @@ about: doc_url: https://pybedlite.readthedocs.io/en/latest/ extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - NatPRoach - nh13 From 45d39a236b884add4b8b38a91d95f1a8123619b8 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 5 Aug 2024 18:22:18 +0300 Subject: [PATCH 1044/1514] insurveyor: add aarch64/arm64 builds (#49800) * insurveyor: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Add a patch to use sse2neon.h for aarch64/arm64 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/insurveyor/INSurVeyor-aarch64.patch | 9360 +++++++++++++++++++ recipes/insurveyor/build.sh | 2 +- recipes/insurveyor/meta.yaml | 7 +- 3 files changed, 9367 insertions(+), 2 deletions(-) create mode 100644 recipes/insurveyor/INSurVeyor-aarch64.patch diff --git a/recipes/insurveyor/INSurVeyor-aarch64.patch b/recipes/insurveyor/INSurVeyor-aarch64.patch new file mode 100644 index 0000000000000..b8fa54aa85460 --- /dev/null +++ b/recipes/insurveyor/INSurVeyor-aarch64.patch @@ -0,0 +1,9360 @@ +diff --git c/libs/ssw.c i/libs/ssw.c +index a45635c..4269776 100644 +--- c/libs/ssw.c ++++ i/libs/ssw.c +@@ -36,7 +36,13 @@ + */ + + //#include ++#ifdef __ARM_NEON ++#include "../sse2neon.h" ++#else + #include ++#endif ++ ++ + #include + #include + #include +diff --git c/libs/ssw.h i/libs/ssw.h +index 510f5f4..c0be73b 100644 +--- c/libs/ssw.h ++++ i/libs/ssw.h +@@ -14,7 +14,13 @@ + #include + #include + #include ++ ++#ifdef __ARM_NEON ++#include "../sse2neon.h" ++#else + #include ++#endif ++ + + #ifdef __cplusplus + extern "C" { +diff --git c/sse2neon.h i/sse2neon.h +new file mode 100644 +index 0000000..2b12721 +--- /dev/null ++++ i/sse2neon.h +@@ -0,0 +1,9301 @@ ++#ifndef SSE2NEON_H ++#define SSE2NEON_H ++ ++/* ++ * sse2neon is freely redistributable under the MIT License. ++ * ++ * Copyright (c) 2015-2024 SSE2NEON Contributors. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a copy ++ * of this software and associated documentation files (the "Software"), to deal ++ * in the Software without restriction, including without limitation the rights ++ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ++ * copies of the Software, and to permit persons to whom the Software is ++ * furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be included in ++ * all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++ * SOFTWARE. ++ */ ++ ++// This header file provides a simple API translation layer ++// between SSE intrinsics to their corresponding Arm/Aarch64 NEON versions ++// ++// Contributors to this work are: ++// John W. Ratcliff ++// Brandon Rowlett ++// Ken Fast ++// Eric van Beurden ++// Alexander Potylitsin ++// Hasindu Gamaarachchi ++// Jim Huang ++// Mark Cheng ++// Malcolm James MacLeod ++// Devin Hussey (easyaspi314) ++// Sebastian Pop ++// Developer Ecosystem Engineering ++// Danila Kutenin ++// François Turban (JishinMaster) ++// Pei-Hsuan Hung ++// Yang-Hao Yuan ++// Syoyo Fujita ++// Brecht Van Lommel ++// Jonathan Hue ++// Cuda Chen ++// Aymen Qader ++// Anthony Roberts ++ ++/* Tunable configurations */ ++ ++/* Enable precise implementation of math operations ++ * This would slow down the computation a bit, but gives consistent result with ++ * x86 SSE. (e.g. would solve a hole or NaN pixel in the rendering result) ++ */ ++/* _mm_min|max_ps|ss|pd|sd */ ++#ifndef SSE2NEON_PRECISE_MINMAX ++#define SSE2NEON_PRECISE_MINMAX (0) ++#endif ++/* _mm_rcp_ps */ ++#ifndef SSE2NEON_PRECISE_DIV ++#define SSE2NEON_PRECISE_DIV (0) ++#endif ++/* _mm_sqrt_ps and _mm_rsqrt_ps */ ++#ifndef SSE2NEON_PRECISE_SQRT ++#define SSE2NEON_PRECISE_SQRT (0) ++#endif ++/* _mm_dp_pd */ ++#ifndef SSE2NEON_PRECISE_DP ++#define SSE2NEON_PRECISE_DP (0) ++#endif ++ ++/* Enable inclusion of windows.h on MSVC platforms ++ * This makes _mm_clflush functional on windows, as there is no builtin. ++ */ ++#ifndef SSE2NEON_INCLUDE_WINDOWS_H ++#define SSE2NEON_INCLUDE_WINDOWS_H (0) ++#endif ++ ++/* compiler specific definitions */ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma push_macro("FORCE_INLINE") ++#pragma push_macro("ALIGN_STRUCT") ++#define FORCE_INLINE static inline __attribute__((always_inline)) ++#define ALIGN_STRUCT(x) __attribute__((aligned(x))) ++#define _sse2neon_likely(x) __builtin_expect(!!(x), 1) ++#define _sse2neon_unlikely(x) __builtin_expect(!!(x), 0) ++#elif defined(_MSC_VER) ++#if _MSVC_TRADITIONAL ++#error Using the traditional MSVC preprocessor is not supported! Use /Zc:preprocessor instead. ++#endif ++#ifndef FORCE_INLINE ++#define FORCE_INLINE static inline ++#endif ++#ifndef ALIGN_STRUCT ++#define ALIGN_STRUCT(x) __declspec(align(x)) ++#endif ++#define _sse2neon_likely(x) (x) ++#define _sse2neon_unlikely(x) (x) ++#else ++#pragma message("Macro name collisions may happen with unsupported compilers.") ++#endif ++ ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma push_macro("FORCE_INLINE_OPTNONE") ++#define FORCE_INLINE_OPTNONE static inline __attribute__((optimize("O0"))) ++#elif defined(__clang__) ++#pragma push_macro("FORCE_INLINE_OPTNONE") ++#define FORCE_INLINE_OPTNONE static inline __attribute__((optnone)) ++#else ++#define FORCE_INLINE_OPTNONE FORCE_INLINE ++#endif ++ ++#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ < 10 ++#warning "GCC versions earlier than 10 are not supported." ++#endif ++ ++/* C language does not allow initializing a variable with a function call. */ ++#ifdef __cplusplus ++#define _sse2neon_const static const ++#else ++#define _sse2neon_const const ++#endif ++ ++#include ++#include ++ ++#if defined(_WIN32) ++/* Definitions for _mm_{malloc,free} are provided by ++ * from both MinGW-w64 and MSVC. ++ */ ++#define SSE2NEON_ALLOC_DEFINED ++#endif ++ ++/* If using MSVC */ ++#ifdef _MSC_VER ++#include ++#if SSE2NEON_INCLUDE_WINDOWS_H ++#include ++#include ++#endif ++ ++#if !defined(__cplusplus) ++#error SSE2NEON only supports C++ compilation with this compiler ++#endif ++ ++#ifdef SSE2NEON_ALLOC_DEFINED ++#include ++#endif ++ ++#if (defined(_M_AMD64) || defined(__x86_64__)) || \ ++ (defined(_M_ARM64) || defined(__arm64__)) ++#define SSE2NEON_HAS_BITSCAN64 ++#endif ++#endif ++ ++#if defined(__GNUC__) || defined(__clang__) ++#define _sse2neon_define0(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define1(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define2(type, a, b, body) \ ++ __extension__({ \ ++ type _a = (a), _b = (b); \ ++ body \ ++ }) ++#define _sse2neon_return(ret) (ret) ++#else ++#define _sse2neon_define0(type, a, body) [=](type _a) { body }(a) ++#define _sse2neon_define1(type, a, body) [](type _a) { body }(a) ++#define _sse2neon_define2(type, a, b, body) \ ++ [](type _a, type _b) { body }((a), (b)) ++#define _sse2neon_return(ret) return ret ++#endif ++ ++#define _sse2neon_init(...) \ ++ { \ ++ __VA_ARGS__ \ ++ } ++ ++/* Compiler barrier */ ++#if defined(_MSC_VER) ++#define SSE2NEON_BARRIER() _ReadWriteBarrier() ++#else ++#define SSE2NEON_BARRIER() \ ++ do { \ ++ __asm__ __volatile__("" ::: "memory"); \ ++ (void) 0; \ ++ } while (0) ++#endif ++ ++/* Memory barriers ++ * __atomic_thread_fence does not include a compiler barrier; instead, ++ * the barrier is part of __atomic_load/__atomic_store's "volatile-like" ++ * semantics. ++ */ ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) ++#include ++#endif ++ ++FORCE_INLINE void _sse2neon_smp_mb(void) ++{ ++ SSE2NEON_BARRIER(); ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \ ++ !defined(__STDC_NO_ATOMICS__) ++ atomic_thread_fence(memory_order_seq_cst); ++#elif defined(__GNUC__) || defined(__clang__) ++ __atomic_thread_fence(__ATOMIC_SEQ_CST); ++#else /* MSVC */ ++ __dmb(_ARM64_BARRIER_ISH); ++#endif ++} ++ ++/* Architecture-specific build options */ ++/* FIXME: #pragma GCC push_options is only available on GCC */ ++#if defined(__GNUC__) ++#if defined(__arm__) && __ARM_ARCH == 7 ++/* According to ARM C Language Extensions Architecture specification, ++ * __ARM_NEON is defined to a value indicating the Advanced SIMD (NEON) ++ * architecture supported. ++ */ ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error "You must enable NEON instructions (e.g. -mfpu=neon) to use SSE2NEON." ++#endif ++#if !defined(__clang__) ++#pragma GCC push_options ++#pragma GCC target("fpu=neon") ++#endif ++#elif defined(__aarch64__) || defined(_M_ARM64) ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#pragma GCC target("+simd") ++#endif ++#elif __ARM_ARCH == 8 ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error \ ++ "You must enable NEON instructions (e.g. -mfpu=neon-fp-armv8) to use SSE2NEON." ++#endif ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#endif ++#else ++#error \ ++ "Unsupported target. Must be either ARMv7-A+NEON or ARMv8-A \ ++(you could try setting target explicitly with -march or -mcpu)" ++#endif ++#endif ++ ++#include ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) && (__ARM_ARCH == 8) ++#if defined __has_include && __has_include() ++#include ++#endif ++#endif ++ ++/* Apple Silicon cache lines are double of what is commonly used by Intel, AMD ++ * and other Arm microarchitectures use. ++ * From sysctl -a on Apple M1: ++ * hw.cachelinesize: 128 ++ */ ++#if defined(__APPLE__) && (defined(__aarch64__) || defined(__arm64__)) ++#define SSE2NEON_CACHELINE_SIZE 128 ++#else ++#define SSE2NEON_CACHELINE_SIZE 64 ++#endif ++ ++/* Rounding functions require either Aarch64 instructions or libm fallback */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#include ++#endif ++ ++/* On ARMv7, some registers, such as PMUSERENR and PMCCNTR, are read-only ++ * or even not accessible in user mode. ++ * To write or access to these registers in user mode, ++ * we have to perform syscall instead. ++ */ ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) ++#include ++#endif ++ ++/* "__has_builtin" can be used to query support for built-in functions ++ * provided by gcc/clang and other compilers that support it. ++ */ ++#ifndef __has_builtin /* GCC prior to 10 or non-clang compilers */ ++/* Compatibility with gcc <= 9 */ ++#if defined(__GNUC__) && (__GNUC__ <= 9) ++#define __has_builtin(x) HAS##x ++#define HAS__builtin_popcount 1 ++#define HAS__builtin_popcountll 1 ++ ++// __builtin_shuffle introduced in GCC 4.7.0 ++#if (__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) ++#define HAS__builtin_shuffle 1 ++#else ++#define HAS__builtin_shuffle 0 ++#endif ++ ++#define HAS__builtin_shufflevector 0 ++#define HAS__builtin_nontemporal_store 0 ++#else ++#define __has_builtin(x) 0 ++#endif ++#endif ++ ++/** ++ * MACRO for shuffle parameter for _mm_shuffle_ps(). ++ * Argument fp3 is a digit[0123] that represents the fp from argument "b" ++ * of mm_shuffle_ps that will be placed in fp3 of result. fp2 is the same ++ * for fp2 in result. fp1 is a digit[0123] that represents the fp from ++ * argument "a" of mm_shuffle_ps that will be places in fp1 of result. ++ * fp0 is the same for fp0 of result. ++ */ ++#define _MM_SHUFFLE(fp3, fp2, fp1, fp0) \ ++ (((fp3) << 6) | ((fp2) << 4) | ((fp1) << 2) | ((fp0))) ++ ++#if __has_builtin(__builtin_shufflevector) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __builtin_shufflevector(a, b, __VA_ARGS__) ++#elif __has_builtin(__builtin_shuffle) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __extension__({ \ ++ type tmp = {__VA_ARGS__}; \ ++ __builtin_shuffle(a, b, tmp); \ ++ }) ++#endif ++ ++#ifdef _sse2neon_shuffle ++#define vshuffle_s16(a, b, ...) _sse2neon_shuffle(int16x4_t, a, b, __VA_ARGS__) ++#define vshuffleq_s16(a, b, ...) _sse2neon_shuffle(int16x8_t, a, b, __VA_ARGS__) ++#define vshuffle_s32(a, b, ...) _sse2neon_shuffle(int32x2_t, a, b, __VA_ARGS__) ++#define vshuffleq_s32(a, b, ...) _sse2neon_shuffle(int32x4_t, a, b, __VA_ARGS__) ++#define vshuffle_s64(a, b, ...) _sse2neon_shuffle(int64x1_t, a, b, __VA_ARGS__) ++#define vshuffleq_s64(a, b, ...) _sse2neon_shuffle(int64x2_t, a, b, __VA_ARGS__) ++#endif ++ ++/* Rounding mode macros. */ ++#define _MM_FROUND_TO_NEAREST_INT 0x00 ++#define _MM_FROUND_TO_NEG_INF 0x01 ++#define _MM_FROUND_TO_POS_INF 0x02 ++#define _MM_FROUND_TO_ZERO 0x03 ++#define _MM_FROUND_CUR_DIRECTION 0x04 ++#define _MM_FROUND_NO_EXC 0x08 ++#define _MM_FROUND_RAISE_EXC 0x00 ++#define _MM_FROUND_NINT (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_FLOOR (_MM_FROUND_TO_NEG_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_CEIL (_MM_FROUND_TO_POS_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_TRUNC (_MM_FROUND_TO_ZERO | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_RINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_NEARBYINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_NO_EXC) ++#define _MM_ROUND_NEAREST 0x0000 ++#define _MM_ROUND_DOWN 0x2000 ++#define _MM_ROUND_UP 0x4000 ++#define _MM_ROUND_TOWARD_ZERO 0x6000 ++/* Flush zero mode macros. */ ++#define _MM_FLUSH_ZERO_MASK 0x8000 ++#define _MM_FLUSH_ZERO_ON 0x8000 ++#define _MM_FLUSH_ZERO_OFF 0x0000 ++/* Denormals are zeros mode macros. */ ++#define _MM_DENORMALS_ZERO_MASK 0x0040 ++#define _MM_DENORMALS_ZERO_ON 0x0040 ++#define _MM_DENORMALS_ZERO_OFF 0x0000 ++ ++/* indicate immediate constant argument in a given range */ ++#define __constrange(a, b) const ++ ++/* A few intrinsics accept traditional data types like ints or floats, but ++ * most operate on data types that are specific to SSE. ++ * If a vector type ends in d, it contains doubles, and if it does not have ++ * a suffix, it contains floats. An integer vector type can contain any type ++ * of integer, from chars to shorts to unsigned long longs. ++ */ ++typedef int64x1_t __m64; ++typedef float32x4_t __m128; /* 128-bit vector containing 4 floats */ ++// On ARM 32-bit architecture, the float64x2_t is not supported. ++// The data type __m128d should be represented in a different way for related ++// intrinsic conversion. ++#if defined(__aarch64__) || defined(_M_ARM64) ++typedef float64x2_t __m128d; /* 128-bit vector containing 2 doubles */ ++#else ++typedef float32x4_t __m128d; ++#endif ++typedef int64x2_t __m128i; /* 128-bit vector containing integers */ ++ ++// Some intrinsics operate on unaligned data types. ++typedef int16_t ALIGN_STRUCT(1) unaligned_int16_t; ++typedef int32_t ALIGN_STRUCT(1) unaligned_int32_t; ++typedef int64_t ALIGN_STRUCT(1) unaligned_int64_t; ++ ++// __int64 is defined in the Intrinsics Guide which maps to different datatype ++// in different data model ++#if !(defined(_WIN32) || defined(_WIN64) || defined(__int64)) ++#if (defined(__x86_64__) || defined(__i386__)) ++#define __int64 long long ++#else ++#define __int64 int64_t ++#endif ++#endif ++ ++/* type-safe casting between types */ ++ ++#define vreinterpretq_m128_f16(x) vreinterpretq_f32_f16(x) ++#define vreinterpretq_m128_f32(x) (x) ++#define vreinterpretq_m128_f64(x) vreinterpretq_f32_f64(x) ++ ++#define vreinterpretq_m128_u8(x) vreinterpretq_f32_u8(x) ++#define vreinterpretq_m128_u16(x) vreinterpretq_f32_u16(x) ++#define vreinterpretq_m128_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128_s8(x) vreinterpretq_f32_s8(x) ++#define vreinterpretq_m128_s16(x) vreinterpretq_f32_s16(x) ++#define vreinterpretq_m128_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_f16_m128(x) vreinterpretq_f16_f32(x) ++#define vreinterpretq_f32_m128(x) (x) ++#define vreinterpretq_f64_m128(x) vreinterpretq_f64_f32(x) ++ ++#define vreinterpretq_u8_m128(x) vreinterpretq_u8_f32(x) ++#define vreinterpretq_u16_m128(x) vreinterpretq_u16_f32(x) ++#define vreinterpretq_u32_m128(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_s8_m128(x) vreinterpretq_s8_f32(x) ++#define vreinterpretq_s16_m128(x) vreinterpretq_s16_f32(x) ++#define vreinterpretq_s32_m128(x) vreinterpretq_s32_f32(x) ++#define vreinterpretq_s64_m128(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_m128i_s8(x) vreinterpretq_s64_s8(x) ++#define vreinterpretq_m128i_s16(x) vreinterpretq_s64_s16(x) ++#define vreinterpretq_m128i_s32(x) vreinterpretq_s64_s32(x) ++#define vreinterpretq_m128i_s64(x) (x) ++ ++#define vreinterpretq_m128i_u8(x) vreinterpretq_s64_u8(x) ++#define vreinterpretq_m128i_u16(x) vreinterpretq_s64_u16(x) ++#define vreinterpretq_m128i_u32(x) vreinterpretq_s64_u32(x) ++#define vreinterpretq_m128i_u64(x) vreinterpretq_s64_u64(x) ++ ++#define vreinterpretq_f32_m128i(x) vreinterpretq_f32_s64(x) ++#define vreinterpretq_f64_m128i(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_s8_m128i(x) vreinterpretq_s8_s64(x) ++#define vreinterpretq_s16_m128i(x) vreinterpretq_s16_s64(x) ++#define vreinterpretq_s32_m128i(x) vreinterpretq_s32_s64(x) ++#define vreinterpretq_s64_m128i(x) (x) ++ ++#define vreinterpretq_u8_m128i(x) vreinterpretq_u8_s64(x) ++#define vreinterpretq_u16_m128i(x) vreinterpretq_u16_s64(x) ++#define vreinterpretq_u32_m128i(x) vreinterpretq_u32_s64(x) ++#define vreinterpretq_u64_m128i(x) vreinterpretq_u64_s64(x) ++ ++#define vreinterpret_m64_s8(x) vreinterpret_s64_s8(x) ++#define vreinterpret_m64_s16(x) vreinterpret_s64_s16(x) ++#define vreinterpret_m64_s32(x) vreinterpret_s64_s32(x) ++#define vreinterpret_m64_s64(x) (x) ++ ++#define vreinterpret_m64_u8(x) vreinterpret_s64_u8(x) ++#define vreinterpret_m64_u16(x) vreinterpret_s64_u16(x) ++#define vreinterpret_m64_u32(x) vreinterpret_s64_u32(x) ++#define vreinterpret_m64_u64(x) vreinterpret_s64_u64(x) ++ ++#define vreinterpret_m64_f16(x) vreinterpret_s64_f16(x) ++#define vreinterpret_m64_f32(x) vreinterpret_s64_f32(x) ++#define vreinterpret_m64_f64(x) vreinterpret_s64_f64(x) ++ ++#define vreinterpret_u8_m64(x) vreinterpret_u8_s64(x) ++#define vreinterpret_u16_m64(x) vreinterpret_u16_s64(x) ++#define vreinterpret_u32_m64(x) vreinterpret_u32_s64(x) ++#define vreinterpret_u64_m64(x) vreinterpret_u64_s64(x) ++ ++#define vreinterpret_s8_m64(x) vreinterpret_s8_s64(x) ++#define vreinterpret_s16_m64(x) vreinterpret_s16_s64(x) ++#define vreinterpret_s32_m64(x) vreinterpret_s32_s64(x) ++#define vreinterpret_s64_m64(x) (x) ++ ++#define vreinterpret_f32_m64(x) vreinterpret_f32_s64(x) ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f64_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f64_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) vreinterpretq_f64_f32(x) ++#define vreinterpretq_m128d_f64(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f64(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f64(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f64(x) ++ ++#define vreinterpretq_f64_m128d(x) (x) ++#define vreinterpretq_f32_m128d(x) vreinterpretq_f32_f64(x) ++#else ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_m128d_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_f32_m128d(x) (x) ++#endif ++ ++// A struct is defined in this header file called 'SIMDVec' which can be used ++// by applications which attempt to access the contents of an __m128 struct ++// directly. It is important to note that accessing the __m128 struct directly ++// is bad coding practice by Microsoft: @see: ++// https://learn.microsoft.com/en-us/cpp/cpp/m128 ++// ++// However, some legacy source code may try to access the contents of an __m128 ++// struct directly so the developer can use the SIMDVec as an alias for it. Any ++// casting must be done manually by the developer, as you cannot cast or ++// otherwise alias the base NEON data type for intrinsic operations. ++// ++// union intended to allow direct access to an __m128 variable using the names ++// that the MSVC compiler provides. This union should really only be used when ++// trying to access the members of the vector as integer values. GCC/clang ++// allow native access to the float members through a simple array access ++// operator (in C since 4.6, in C++ since 4.8). ++// ++// Ideally direct accesses to SIMD vectors should not be used since it can cause ++// a performance hit. If it really is needed however, the original __m128 ++// variable can be aliased with a pointer to this union and used to access ++// individual components. The use of this union should be hidden behind a macro ++// that is used throughout the codebase to access the members instead of always ++// declaring this type of variable. ++typedef union ALIGN_STRUCT(16) SIMDVec { ++ float m128_f32[4]; // as floats - DON'T USE. Added for convenience. ++ int8_t m128_i8[16]; // as signed 8-bit integers. ++ int16_t m128_i16[8]; // as signed 16-bit integers. ++ int32_t m128_i32[4]; // as signed 32-bit integers. ++ int64_t m128_i64[2]; // as signed 64-bit integers. ++ uint8_t m128_u8[16]; // as unsigned 8-bit integers. ++ uint16_t m128_u16[8]; // as unsigned 16-bit integers. ++ uint32_t m128_u32[4]; // as unsigned 32-bit integers. ++ uint64_t m128_u64[2]; // as unsigned 64-bit integers. ++} SIMDVec; ++ ++// casting using SIMDVec ++#define vreinterpretq_nth_u64_m128i(x, n) (((SIMDVec *) &x)->m128_u64[n]) ++#define vreinterpretq_nth_u32_m128i(x, n) (((SIMDVec *) &x)->m128_u32[n]) ++#define vreinterpretq_nth_u8_m128i(x, n) (((SIMDVec *) &x)->m128_u8[n]) ++ ++/* SSE macros */ ++#define _MM_GET_FLUSH_ZERO_MODE _sse2neon_mm_get_flush_zero_mode ++#define _MM_SET_FLUSH_ZERO_MODE _sse2neon_mm_set_flush_zero_mode ++#define _MM_GET_DENORMALS_ZERO_MODE _sse2neon_mm_get_denormals_zero_mode ++#define _MM_SET_DENORMALS_ZERO_MODE _sse2neon_mm_set_denormals_zero_mode ++ ++// Function declaration ++// SSE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void); ++FORCE_INLINE __m128 _mm_move_ss(__m128, __m128); ++FORCE_INLINE __m128 _mm_or_ps(__m128, __m128); ++FORCE_INLINE __m128 _mm_set_ps1(float); ++FORCE_INLINE __m128 _mm_setzero_ps(void); ++// SSE2 ++FORCE_INLINE __m128i _mm_and_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_castps_si128(__m128); ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128); ++FORCE_INLINE __m128d _mm_move_sd(__m128d, __m128d); ++FORCE_INLINE __m128i _mm_or_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_set_epi32(int, int, int, int); ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t, int64_t); ++FORCE_INLINE __m128d _mm_set_pd(double, double); ++FORCE_INLINE __m128i _mm_set1_epi32(int); ++FORCE_INLINE __m128i _mm_setzero_si128(void); ++// SSE4.1 ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d); ++FORCE_INLINE __m128 _mm_ceil_ps(__m128); ++FORCE_INLINE __m128d _mm_floor_pd(__m128d); ++FORCE_INLINE __m128 _mm_floor_ps(__m128); ++FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d, int); ++FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128, int); ++// SSE4.2 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t, uint8_t); ++ ++/* Backwards compatibility for compilers with lack of specific type support */ ++ ++// Older gcc does not define vld1q_u8_x4 type ++#if defined(__GNUC__) && !defined(__clang__) && \ ++ ((__GNUC__ <= 13 && defined(__arm__)) || \ ++ (__GNUC__ == 10 && __GNUC_MINOR__ < 3 && defined(__aarch64__)) || \ ++ (__GNUC__ <= 9 && defined(__aarch64__))) ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ uint8x16x4_t ret; ++ ret.val[0] = vld1q_u8(p + 0); ++ ret.val[1] = vld1q_u8(p + 16); ++ ret.val[2] = vld1q_u8(p + 32); ++ ret.val[3] = vld1q_u8(p + 48); ++ return ret; ++} ++#else ++// Wraps vld1q_u8_x4 ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ return vld1q_u8_x4(p); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddv u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ const uint64x1_t v1 = vpaddl_u32(vpaddl_u16(vpaddl_u8(v8))); ++ return vget_lane_u8(vreinterpret_u8_u64(v1), 0); ++} ++#else ++// Wraps vaddv_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ return vaddv_u8(v8); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ uint8x8_t tmp = vpadd_u8(vget_low_u8(a), vget_high_u8(a)); ++ uint8_t res = 0; ++ for (int i = 0; i < 8; ++i) ++ res += tmp[i]; ++ return res; ++} ++#else ++// Wraps vaddvq_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ return vaddvq_u8(a); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u16 variant */ ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ uint32x4_t m = vpaddlq_u16(a); ++ uint64x2_t n = vpaddlq_u32(m); ++ uint64x1_t o = vget_low_u64(n) + vget_high_u64(n); ++ ++ return vget_lane_u32((uint32x2_t) o, 0); ++} ++#else ++// Wraps vaddvq_u16 ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ return vaddvq_u16(a); ++} ++#endif ++ ++/* Function Naming Conventions ++ * The naming convention of SSE intrinsics is straightforward. A generic SSE ++ * intrinsic function is given as follows: ++ * _mm__ ++ * ++ * The parts of this format are given as follows: ++ * 1. describes the operation performed by the intrinsic ++ * 2. identifies the data type of the function's primary arguments ++ * ++ * This last part, , is a little complicated. It identifies the ++ * content of the input values, and can be set to any of the following values: ++ * + ps - vectors contain floats (ps stands for packed single-precision) ++ * + pd - vectors contain doubles (pd stands for packed double-precision) ++ * + epi8/epi16/epi32/epi64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * signed integers ++ * + epu8/epu16/epu32/epu64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * unsigned integers ++ * + si128 - unspecified 128-bit vector or 256-bit vector ++ * + m128/m128i/m128d - identifies input vector types when they are different ++ * than the type of the returned vector ++ * ++ * For example, _mm_setzero_ps. The _mm implies that the function returns ++ * a 128-bit vector. The _ps at the end implies that the argument vectors ++ * contain floats. ++ * ++ * A complete example: Byte Shuffle - pshufb (_mm_shuffle_epi8) ++ * // Set packed 16-bit integers. 128 bits, 8 short, per 16 bits ++ * __m128i v_in = _mm_setr_epi16(1, 2, 3, 4, 5, 6, 7, 8); ++ * // Set packed 8-bit integers ++ * // 128 bits, 16 chars, per 8 bits ++ * __m128i v_perm = _mm_setr_epi8(1, 0, 2, 3, 8, 9, 10, 11, ++ * 4, 5, 12, 13, 6, 7, 14, 15); ++ * // Shuffle packed 8-bit integers ++ * __m128i v_out = _mm_shuffle_epi8(v_in, v_perm); // pshufb ++ */ ++ ++/* Constants for use with _mm_prefetch. */ ++enum _mm_hint { ++ _MM_HINT_NTA = 0, /* load data to L1 and L2 cache, mark it as NTA */ ++ _MM_HINT_T0 = 1, /* load data to L1 and L2 cache */ ++ _MM_HINT_T1 = 2, /* load data to L2 cache only */ ++ _MM_HINT_T2 = 3, /* load data to L2 cache only, mark it as NTA */ ++}; ++ ++// The bit field mapping to the FPCR(floating-point control register) ++typedef struct { ++ uint16_t res0; ++ uint8_t res1 : 6; ++ uint8_t bit22 : 1; ++ uint8_t bit23 : 1; ++ uint8_t bit24 : 1; ++ uint8_t res2 : 7; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32_t res3; ++#endif ++} fpcr_bitfield; ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of b and places it into the high end of the result. ++FORCE_INLINE __m128 _mm_shuffle_ps_1032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in high ++// end of result takes the higher two 32 bit values from b and swaps them and ++// places in low end of result. ++FORCE_INLINE __m128 _mm_shuffle_ps_2301(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b23 = vrev64_f32(vget_high_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b23)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0321(__m128 a, __m128 b) ++{ ++ float32x2_t a21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a21, b03)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2103(__m128 a, __m128 b) ++{ ++ float32x2_t a03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a03, b21)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0101(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b01)); ++} ++ ++// keeps the low 64 bits of b in the low and puts the high 64 bits of a in the ++// high ++FORCE_INLINE __m128 _mm_shuffle_ps_3210(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0011(__m128 a, __m128 b) ++{ ++ float32x2_t a11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a11, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0022(__m128 a, __m128 b) ++{ ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a22, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2200(__m128 a, __m128 b) ++{ ++ float32x2_t a00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a00, b22)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_3202(__m128 a, __m128 b) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t a02 = vset_lane_f32(a0, a22, 1); /* TODO: use vzip ?*/ ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a02, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1133(__m128 a, __m128 b) ++{ ++ float32x2_t a33 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a33, b11)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b20)); ++} ++ ++// For MSVC, we check only if it is ARM64, as every single ARM64 processor ++// supported by WoA has crypto extensions. If this changes in the future, ++// this can be verified via the runtime-only method of: ++// IsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE) ++#if (defined(_M_ARM64) && !defined(__clang__)) || \ ++ (defined(__ARM_FEATURE_CRYPTO) && \ ++ (defined(__aarch64__) || __has_builtin(__builtin_arm_crypto_vmullp64))) ++// Wraps vmull_p64 ++FORCE_INLINE uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly64_t a = vget_lane_p64(vreinterpret_p64_u64(_a), 0); ++ poly64_t b = vget_lane_p64(vreinterpret_p64_u64(_b), 0); ++#if defined(_MSC_VER) ++ __n64 a1 = {a}, b1 = {b}; ++ return vreinterpretq_u64_p128(vmull_p64(a1, b1)); ++#else ++ return vreinterpretq_u64_p128(vmull_p64(a, b)); ++#endif ++} ++#else // ARMv7 polyfill ++// ARMv7/some A64 lacks vmull_p64, but it has vmull_p8. ++// ++// vmull_p8 calculates 8 8-bit->16-bit polynomial multiplies, but we need a ++// 64-bit->128-bit polynomial multiply. ++// ++// It needs some work and is somewhat slow, but it is still faster than all ++// known scalar methods. ++// ++// Algorithm adapted to C from ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/, which is adapted ++// from "Fast Software Polynomial Multiplication on ARM Processors Using the ++// NEON Engine" by Danilo Camara, Conrado Gouvea, Julio Lopez and Ricardo Dahab ++// (https://hal.inria.fr/hal-01506572) ++static uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly8x8_t a = vreinterpret_p8_u64(_a); ++ poly8x8_t b = vreinterpret_p8_u64(_b); ++ ++ // Masks ++ uint8x16_t k48_32 = vcombine_u8(vcreate_u8(0x0000ffffffffffff), ++ vcreate_u8(0x00000000ffffffff)); ++ uint8x16_t k16_00 = vcombine_u8(vcreate_u8(0x000000000000ffff), ++ vcreate_u8(0x0000000000000000)); ++ ++ // Do the multiplies, rotating with vext to get all combinations ++ uint8x16_t d = vreinterpretq_u8_p16(vmull_p8(a, b)); // D = A0 * B0 ++ uint8x16_t e = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 1))); // E = A0 * B1 ++ uint8x16_t f = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 1), b)); // F = A1 * B0 ++ uint8x16_t g = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 2))); // G = A0 * B2 ++ uint8x16_t h = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 2), b)); // H = A2 * B0 ++ uint8x16_t i = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 3))); // I = A0 * B3 ++ uint8x16_t j = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 3), b)); // J = A3 * B0 ++ uint8x16_t k = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 4))); // L = A0 * B4 ++ ++ // Add cross products ++ uint8x16_t l = veorq_u8(e, f); // L = E + F ++ uint8x16_t m = veorq_u8(g, h); // M = G + H ++ uint8x16_t n = veorq_u8(i, j); // N = I + J ++ ++ // Interleave. Using vzip1 and vzip2 prevents Clang from emitting TBL ++ // instructions. ++#if defined(__aarch64__) ++ uint8x16_t lm_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t lm_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t nk_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++ uint8x16_t nk_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++#else ++ uint8x16_t lm_p0 = vcombine_u8(vget_low_u8(l), vget_low_u8(m)); ++ uint8x16_t lm_p1 = vcombine_u8(vget_high_u8(l), vget_high_u8(m)); ++ uint8x16_t nk_p0 = vcombine_u8(vget_low_u8(n), vget_low_u8(k)); ++ uint8x16_t nk_p1 = vcombine_u8(vget_high_u8(n), vget_high_u8(k)); ++#endif ++ // t0 = (L) (P0 + P1) << 8 ++ // t1 = (M) (P2 + P3) << 16 ++ uint8x16_t t0t1_tmp = veorq_u8(lm_p0, lm_p1); ++ uint8x16_t t0t1_h = vandq_u8(lm_p1, k48_32); ++ uint8x16_t t0t1_l = veorq_u8(t0t1_tmp, t0t1_h); ++ ++ // t2 = (N) (P4 + P5) << 24 ++ // t3 = (K) (P6 + P7) << 32 ++ uint8x16_t t2t3_tmp = veorq_u8(nk_p0, nk_p1); ++ uint8x16_t t2t3_h = vandq_u8(nk_p1, k16_00); ++ uint8x16_t t2t3_l = veorq_u8(t2t3_tmp, t2t3_h); ++ ++ // De-interleave ++#if defined(__aarch64__) ++ uint8x16_t t0 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t1 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t2 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++ uint8x16_t t3 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++#else ++ uint8x16_t t1 = vcombine_u8(vget_high_u8(t0t1_l), vget_high_u8(t0t1_h)); ++ uint8x16_t t0 = vcombine_u8(vget_low_u8(t0t1_l), vget_low_u8(t0t1_h)); ++ uint8x16_t t3 = vcombine_u8(vget_high_u8(t2t3_l), vget_high_u8(t2t3_h)); ++ uint8x16_t t2 = vcombine_u8(vget_low_u8(t2t3_l), vget_low_u8(t2t3_h)); ++#endif ++ // Shift the cross products ++ uint8x16_t t0_shift = vextq_u8(t0, t0, 15); // t0 << 8 ++ uint8x16_t t1_shift = vextq_u8(t1, t1, 14); // t1 << 16 ++ uint8x16_t t2_shift = vextq_u8(t2, t2, 13); // t2 << 24 ++ uint8x16_t t3_shift = vextq_u8(t3, t3, 12); // t3 << 32 ++ ++ // Accumulate the products ++ uint8x16_t cross1 = veorq_u8(t0_shift, t1_shift); ++ uint8x16_t cross2 = veorq_u8(t2_shift, t3_shift); ++ uint8x16_t mix = veorq_u8(d, cross1); ++ uint8x16_t r = veorq_u8(mix, cross2); ++ return vreinterpretq_u64_u8(r); ++} ++#endif // ARMv7 polyfill ++ ++// C equivalent: ++// __m128i _mm_shuffle_epi32_default(__m128i a, ++// __constrange(0, 255) int imm) { ++// __m128i ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = a[(imm >> 4) & 0x03]; ret[3] = a[(imm >> 6) & 0x03]; ++// return ret; ++// } ++#define _mm_shuffle_epi32_default(a, imm) \ ++ vreinterpretq_m128i_s32(vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), \ ++ ((imm) >> 2) & 0x3), \ ++ vmovq_n_s32(vgetq_lane_s32( \ ++ vreinterpretq_s32_m128i(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of a and places it into the high end of the result. ++FORCE_INLINE __m128i _mm_shuffle_epi_1032(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in low end ++// of result takes the higher two 32 bit values from a and swaps them and places ++// in high end of result. ++FORCE_INLINE __m128i _mm_shuffle_epi_2301(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a23 = vrev64_s32(vget_high_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a23)); ++} ++ ++// rotates the least significant 32 bits into the most significant 32 bits, and ++// shifts the rest down ++FORCE_INLINE __m128i _mm_shuffle_epi_0321(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 1)); ++} ++ ++// rotates the most significant 32 bits into the least significant 32 bits, and ++// shifts the rest up ++FORCE_INLINE __m128i _mm_shuffle_epi_2103(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 3)); ++} ++ ++// gets the lower 64 bits of a, and places it in the upper 64 bits ++// gets the lower 64 bits of a and places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1010(__m128i a) ++{ ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a10, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements, and places it in the ++// lower 64 bits gets the lower 64 bits of a, and places it in the upper 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1001(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements and places it in the ++// upper 64 bits gets the lower 64 bits of a, swaps the 0 and 1 elements, and ++// places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_0101(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_2211(__m128i a) ++{ ++ int32x2_t a11 = vdup_lane_s32(vget_low_s32(vreinterpretq_s32_m128i(a)), 1); ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ return vreinterpretq_m128i_s32(vcombine_s32(a11, a22)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_0122(__m128i a) ++{ ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a22, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_3332(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a33 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 1); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a33)); ++} ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32(vdupq_laneq_s32(vreinterpretq_s32_m128i(a), (imm))) ++#else ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vdupq_n_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)))) ++#endif ++ ++// NEON does not support a general purpose permute intrinsic. ++// Shuffle single-precision (32-bit) floating-point elements in a using the ++// control in imm8, and store the results in dst. ++// ++// C equivalent: ++// __m128 _mm_shuffle_ps_default(__m128 a, __m128 b, ++// __constrange(0, 255) int imm) { ++// __m128 ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = b[(imm >> 4) & 0x03]; ret[3] = b[(imm >> 6) & 0x03]; ++// return ret; ++// } ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_ps ++#define _mm_shuffle_ps_default(a, b, imm) \ ++ vreinterpretq_m128_f32(vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), ((imm) >> 2) & 0x3), \ ++ vmovq_n_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Shuffle 16-bit integers in the low 64 bits of a using the control in imm8. ++// Store the results in the low 64 bits of dst, with the high 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflelo_epi16 ++#define _mm_shufflelo_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t lowBits = vget_low_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, (imm) & (0x3)), ret, 0); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++// Shuffle 16-bit integers in the high 64 bits of a using the control in imm8. ++// Store the results in the high 64 bits of dst, with the low 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflehi_epi16 ++#define _mm_shufflehi_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t highBits = vget_high_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, (imm) & (0x3)), ret, 4); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 2) & 0x3), ret, \ ++ 5); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 4) & 0x3), ret, \ ++ 6); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 6) & 0x3), ret, \ ++ 7); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++/* MMX */ ++ ++//_mm_empty is a no-op on arm ++FORCE_INLINE void _mm_empty(void) {} ++ ++/* SSE */ ++ ++// Add packed single-precision (32-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ps ++FORCE_INLINE __m128 _mm_add_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Add the lower single-precision (32-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ss ++FORCE_INLINE __m128 _mm_add_ss(__m128 a, __m128 b) ++{ ++ float32_t b0 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++ float32x4_t value = vsetq_lane_f32(b0, vdupq_n_f32(0), 0); ++ // the upper values in the result must be the remnants of . ++ return vreinterpretq_m128_f32(vaddq_f32(a, value)); ++} ++ ++// Compute the bitwise AND of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_ps ++FORCE_INLINE __m128 _mm_and_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vandq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Compute the bitwise NOT of packed single-precision (32-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_ps ++FORCE_INLINE __m128 _mm_andnot_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vbicq_s32(vreinterpretq_s32_m128(b), ++ vreinterpretq_s32_m128(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu16 ++FORCE_INLINE __m64 _mm_avg_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16( ++ vrhadd_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu8 ++FORCE_INLINE __m64 _mm_avg_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vrhadd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ps ++FORCE_INLINE __m128 _mm_cmpeq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ss ++FORCE_INLINE __m128 _mm_cmpeq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpeq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ps ++FORCE_INLINE __m128 _mm_cmpge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ss ++FORCE_INLINE __m128 _mm_cmpge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ps ++FORCE_INLINE __m128 _mm_cmpgt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ss ++FORCE_INLINE __m128 _mm_cmpgt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpgt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ps ++FORCE_INLINE __m128 _mm_cmple_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ss ++FORCE_INLINE __m128 _mm_cmple_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmple_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ps ++FORCE_INLINE __m128 _mm_cmplt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ss ++FORCE_INLINE __m128 _mm_cmplt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmplt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ps ++FORCE_INLINE __m128 _mm_cmpneq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ss ++FORCE_INLINE __m128 _mm_cmpneq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpneq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ps ++FORCE_INLINE __m128 _mm_cmpnge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ss ++FORCE_INLINE __m128 _mm_cmpnge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ps ++FORCE_INLINE __m128 _mm_cmpngt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ss ++FORCE_INLINE __m128 _mm_cmpngt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpngt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ps ++FORCE_INLINE __m128 _mm_cmpnle_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ss ++FORCE_INLINE __m128 _mm_cmpnle_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnle_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ps ++FORCE_INLINE __m128 _mm_cmpnlt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ss ++FORCE_INLINE __m128 _mm_cmpnlt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnlt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ps ++// ++// See also: ++// http://stackoverflow.com/questions/8627331/what-does-ordered-unordered-comparison-mean ++// http://stackoverflow.com/questions/29349621/neon-isnanval-intrinsics ++FORCE_INLINE __m128 _mm_cmpord_ps(__m128 a, __m128 b) ++{ ++ // Note: NEON does not have ordered compare builtin ++ // Need to compare a eq a and b eq b to check for NaN ++ // Do AND of results to get final ++ uint32x4_t ceqaa = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t ceqbb = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vandq_u32(ceqaa, ceqbb)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ss ++FORCE_INLINE __m128 _mm_cmpord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpord_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ps ++FORCE_INLINE __m128 _mm_cmpunord_ps(__m128 a, __m128 b) ++{ ++ uint32x4_t f32a = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t f32b = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vmvnq_u32(vandq_u32(f32a, f32b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ss ++FORCE_INLINE __m128 _mm_cmpunord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpunord_ps(a, b)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_ss ++FORCE_INLINE int _mm_comieq_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_eq_b = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_eq_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_ss ++FORCE_INLINE int _mm_comige_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_ge_b = ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_ge_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_ss ++FORCE_INLINE int _mm_comigt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_gt_b = ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_gt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_ss ++FORCE_INLINE int _mm_comile_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_le_b = ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_le_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_ss ++FORCE_INLINE int _mm_comilt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_lt_b = ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_lt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_ss ++FORCE_INLINE int _mm_comineq_ss(__m128 a, __m128 b) ++{ ++ return !_mm_comieq_ss(a, b); ++} ++ ++// Convert packed signed 32-bit integers in b to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, and copy the upper 2 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_pi2ps ++FORCE_INLINE __m128 _mm_cvt_pi2ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ps2pi ++FORCE_INLINE __m64 _mm_cvt_ps2pi(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))))); ++#else ++ return vreinterpret_m64_s32(vcvt_s32_f32(vget_low_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION))))); ++#endif ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_si2ss ++FORCE_INLINE __m128 _mm_cvt_si2ss(__m128 a, int b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ss2si ++FORCE_INLINE int _mm_cvt_ss2si(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vgetq_lane_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))), ++ 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int32_t) data; ++#endif ++} ++ ++// Convert packed 16-bit integers in a to packed single-precision (32-bit) ++// floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi16_ps ++FORCE_INLINE __m128 _mm_cvtpi16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vmovl_s16(vreinterpret_s16_m64(a)))); ++} ++ ++// Convert packed 32-bit integers in b to packed single-precision (32-bit) ++// floating-point elements, store the results in the lower 2 elements of dst, ++// and copy the upper 2 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_ps ++FORCE_INLINE __m128 _mm_cvtpi32_ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, then convert the packed signed 32-bit integers in b to ++// single-precision (32-bit) floating-point element, and store the results in ++// the upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32x2_ps ++FORCE_INLINE __m128 _mm_cvtpi32x2_ps(__m64 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vcombine_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b)))); ++} ++ ++// Convert the lower packed 8-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi8_ps ++FORCE_INLINE __m128 _mm_cvtpi8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vmovl_s16(vget_low_s16(vmovl_s8(vreinterpret_s8_m64(a)))))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 16-bit integers, and store the results in dst. Note: this intrinsic ++// will generate 0x7FFF, rather than 0x8000, for input values between 0x7FFF and ++// 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi16 ++FORCE_INLINE __m64 _mm_cvtps_pi16(__m128 a) ++{ ++ return vreinterpret_m64_s16( ++ vqmovn_s32(vreinterpretq_s32_m128i(_mm_cvtps_epi32(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi32 ++#define _mm_cvtps_pi32(a) _mm_cvt_ps2pi(a) ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 8-bit integers, and store the results in lower 4 elements of dst. ++// Note: this intrinsic will generate 0x7F, rather than 0x80, for input values ++// between 0x7F and 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi8 ++FORCE_INLINE __m64 _mm_cvtps_pi8(__m128 a) ++{ ++ return vreinterpret_m64_s8(vqmovn_s16( ++ vcombine_s16(vreinterpret_s16_m64(_mm_cvtps_pi16(a)), vdup_n_s16(0)))); ++} ++ ++// Convert packed unsigned 16-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu16_ps ++FORCE_INLINE __m128 _mm_cvtpu16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_u32(vmovl_u16(vreinterpret_u16_m64(a)))); ++} ++ ++// Convert the lower packed unsigned 8-bit integers in a to packed ++// single-precision (32-bit) floating-point elements, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu8_ps ++FORCE_INLINE __m128 _mm_cvtpu8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_u32( ++ vmovl_u16(vget_low_u16(vmovl_u8(vreinterpret_u8_m64(a)))))); ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_ss ++#define _mm_cvtsi32_ss(a, b) _mm_cvt_si2ss(a, b) ++ ++// Convert the signed 64-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_ss ++FORCE_INLINE __m128 _mm_cvtsi64_ss(__m128 a, int64_t b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Copy the lower single-precision (32-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_f32 ++FORCE_INLINE float _mm_cvtss_f32(__m128 a) ++{ ++ return vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si32 ++#define _mm_cvtss_si32(a) _mm_cvt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si64 ++FORCE_INLINE int64_t _mm_cvtss_si64(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return (int64_t) vgetq_lane_f32(vrndiq_f32(vreinterpretq_f32_m128(a)), 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int64_t) data; ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ps2pi ++FORCE_INLINE __m64 _mm_cvtt_ps2pi(__m128 a) ++{ ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ss2si ++FORCE_INLINE int _mm_cvtt_ss2si(__m128 a) ++{ ++ return vgetq_lane_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)), 0); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_pi32 ++#define _mm_cvttps_pi32(a) _mm_cvtt_ps2pi(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si32 ++#define _mm_cvttss_si32(a) _mm_cvtt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si64 ++FORCE_INLINE int64_t _mm_cvttss_si64(__m128 a) ++{ ++ return (int64_t) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Divide packed single-precision (32-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise division intrinsic, we implement ++// division by multiplying a by b's reciprocal before using the Newton-Raphson ++// method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ps ++FORCE_INLINE __m128 _mm_div_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vdivq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(b)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(a), recip)); ++#endif ++} ++ ++// Divide the lower single-precision (32-bit) floating-point element in a by the ++// lower single-precision (32-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper 3 packed elements from a to ++// the upper elements of dst. ++// Warning: ARMv7-A does not produce the same result compared to Intel and not ++// IEEE-compliant. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ss ++FORCE_INLINE __m128 _mm_div_ss(__m128 a, __m128 b) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_div_ps(a, b)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_pi16 ++#define _mm_extract_pi16(a, imm) \ ++ (int32_t) vget_lane_u16(vreinterpret_u16_m64(a), (imm)) ++ ++// Free aligned memory that was allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_free ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void _mm_free(void *addr) ++{ ++ free(addr); ++} ++#endif ++ ++FORCE_INLINE uint64_t _sse2neon_get_fpcr(void) ++{ ++ uint64_t value; ++#if defined(_MSC_VER) ++ value = _ReadStatusReg(ARM64_FPCR); ++#else ++ __asm__ __volatile__("mrs %0, FPCR" : "=r"(value)); /* read */ ++#endif ++ return value; ++} ++ ++FORCE_INLINE void _sse2neon_set_fpcr(uint64_t value) ++{ ++#if defined(_MSC_VER) ++ _WriteStatusReg(ARM64_FPCR, value); ++#else ++ __asm__ __volatile__("msr FPCR, %0" ::"r"(value)); /* write */ ++#endif ++} ++ ++// Macro: Get the flush zero bits from the MXCSR control and status register. ++// The flush zero may contain any of the following flags: _MM_FLUSH_ZERO_ON or ++// _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_FLUSH_ZERO_MODE ++FORCE_INLINE unsigned int _sse2neon_mm_get_flush_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_FLUSH_ZERO_ON : _MM_FLUSH_ZERO_OFF; ++} ++ ++// Macro: Get the rounding mode bits from the MXCSR control and status register. ++// The rounding mode may contain any of the following flags: _MM_ROUND_NEAREST, ++// _MM_ROUND_DOWN, _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_ROUNDING_MODE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ if (r.field.bit22) { ++ return r.field.bit23 ? _MM_ROUND_TOWARD_ZERO : _MM_ROUND_UP; ++ } else { ++ return r.field.bit23 ? _MM_ROUND_DOWN : _MM_ROUND_NEAREST; ++ } ++} ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_pi16 ++#define _mm_insert_pi16(a, b, imm) \ ++ vreinterpret_m64_s16(vset_lane_s16((b), vreinterpret_s16_m64(a), (imm))) ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps ++FORCE_INLINE __m128 _mm_load_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// ++// dst[31:0] := MEM[mem_addr+31:mem_addr] ++// dst[63:32] := MEM[mem_addr+31:mem_addr] ++// dst[95:64] := MEM[mem_addr+31:mem_addr] ++// dst[127:96] := MEM[mem_addr+31:mem_addr] ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps1 ++#define _mm_load_ps1 _mm_load1_ps ++ ++// Load a single-precision (32-bit) floating-point element from memory into the ++// lower of dst, and zero the upper 3 elements. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ss ++FORCE_INLINE __m128 _mm_load_ss(const float *p) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(*p, vdupq_n_f32(0), 0)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_ps ++FORCE_INLINE __m128 _mm_load1_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_dup_f32(p)); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// upper 2 elements of dst, and copy the lower 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pi ++FORCE_INLINE __m128 _mm_loadh_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vget_low_f32(a), vld1_f32((const float32_t *) p))); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// lower 2 elements of dst, and copy the upper 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pi ++FORCE_INLINE __m128 _mm_loadl_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vld1_f32((const float32_t *) p), vget_high_f32(a))); ++} ++ ++// Load 4 single-precision (32-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_ps ++FORCE_INLINE __m128 _mm_loadr_ps(const float *p) ++{ ++ float32x4_t v = vrev64q_f32(vld1q_f32(p)); ++ return vreinterpretq_m128_f32(vextq_f32(v, v, 2)); ++} ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_ps ++FORCE_INLINE __m128 _mm_loadu_ps(const float *p) ++{ ++ // for neon, alignment doesn't matter, so _mm_load_ps and _mm_loadu_ps are ++ // equivalent for neon ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load unaligned 16-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si16 ++FORCE_INLINE __m128i _mm_loadu_si16(const void *p) ++{ ++ return vreinterpretq_m128i_s16( ++ vsetq_lane_s16(*(const unaligned_int16_t *) p, vdupq_n_s16(0), 0)); ++} ++ ++// Load unaligned 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si64 ++FORCE_INLINE __m128i _mm_loadu_si64(const void *p) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(*(const unaligned_int64_t *) p, vdupq_n_s64(0), 0)); ++} ++ ++// Allocate size bytes of memory, aligned to the alignment specified in align, ++// and return a pointer to the allocated memory. _mm_free should be used to free ++// memory that is allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_malloc ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void *_mm_malloc(size_t size, size_t align) ++{ ++ void *ptr; ++ if (align == 1) ++ return malloc(size); ++ if (align == 2 || (sizeof(void *) == 8 && align == 4)) ++ align = sizeof(void *); ++ if (!posix_memalign(&ptr, align, size)) ++ return ptr; ++ return NULL; ++} ++#endif ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmove_si64 ++FORCE_INLINE void _mm_maskmove_si64(__m64 a, __m64 mask, char *mem_addr) ++{ ++ int8x8_t shr_mask = vshr_n_s8(vreinterpret_s8_m64(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x8_t masked = ++ vbsl_s8(vreinterpret_u8_s8(shr_mask), vreinterpret_s8_m64(a), ++ vreinterpret_s8_u64(vget_low_u64(vreinterpretq_u64_m128(b)))); ++ vst1_s8((int8_t *) mem_addr, masked); ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_maskmovq ++#define _m_maskmovq(a, mask, mem_addr) _mm_maskmove_si64(a, mask, mem_addr) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pi16 ++FORCE_INLINE __m64 _mm_max_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmax_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) maximum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ps ++FORCE_INLINE __m128 _mm_max_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcgtq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vmaxq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pu8 ++FORCE_INLINE __m64 _mm_max_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmax_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) maximum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ss ++FORCE_INLINE __m128 _mm_max_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_max_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pi16 ++FORCE_INLINE __m64 _mm_min_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmin_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) minimum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ps ++FORCE_INLINE __m128 _mm_min_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcltq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vminq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pu8 ++FORCE_INLINE __m64 _mm_min_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmin_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) minimum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ss ++FORCE_INLINE __m128 _mm_min_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_min_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the lower single-precision (32-bit) floating-point element from b to the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_ss ++FORCE_INLINE __m128 _mm_move_ss(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(vgetq_lane_f32(vreinterpretq_f32_m128(b), 0), ++ vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the upper 2 single-precision (32-bit) floating-point elements from b to ++// the lower 2 elements of dst, and copy the upper 2 elements from a to the ++// upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehl_ps ++FORCE_INLINE __m128 _mm_movehl_ps(__m128 a, __m128 b) ++{ ++#if defined(aarch64__) ++ return vreinterpretq_m128_u64( ++ vzip2q_u64(vreinterpretq_u64_m128(b), vreinterpretq_u64_m128(a))); ++#else ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(b32, a32)); ++#endif ++} ++ ++// Move the lower 2 single-precision (32-bit) floating-point elements from b to ++// the upper 2 elements of dst, and copy the lower 2 elements from a to the ++// lower 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movelh_ps ++FORCE_INLINE __m128 _mm_movelh_ps(__m128 __A, __m128 __B) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(__A)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(__B)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pi8 ++FORCE_INLINE int _mm_movemask_pi8(__m64 a) ++{ ++ uint8x8_t input = vreinterpret_u8_m64(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int8_t shift[8] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint8x8_t tmp = vshr_n_u8(input, 7); ++ return vaddv_u8(vshl_u8(tmp, vld1_s8(shift))); ++#else ++ // Refer the implementation of `_mm_movemask_epi8` ++ uint16x4_t high_bits = vreinterpret_u16_u8(vshr_n_u8(input, 7)); ++ uint32x2_t paired16 = ++ vreinterpret_u32_u16(vsra_n_u16(high_bits, high_bits, 7)); ++ uint8x8_t paired32 = ++ vreinterpret_u8_u32(vsra_n_u32(paired16, paired16, 14)); ++ return vget_lane_u8(paired32, 0) | ((int) vget_lane_u8(paired32, 4) << 4); ++#endif ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed single-precision (32-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_ps ++FORCE_INLINE int _mm_movemask_ps(__m128 a) ++{ ++ uint32x4_t input = vreinterpretq_u32_m128(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int32_t shift[4] = {0, 1, 2, 3}; ++ uint32x4_t tmp = vshrq_n_u32(input, 31); ++ return vaddvq_u32(vshlq_u32(tmp, vld1q_s32(shift))); ++#else ++ // Uses the exact same method as _mm_movemask_epi8, see that for details. ++ // Shift out everything but the sign bits with a 32-bit unsigned shift ++ // right. ++ uint64x2_t high_bits = vreinterpretq_u64_u32(vshrq_n_u32(input, 31)); ++ // Merge the two pairs together with a 64-bit unsigned shift right + add. ++ uint8x16_t paired = ++ vreinterpretq_u8_u64(vsraq_n_u64(high_bits, high_bits, 31)); ++ // Extract the result. ++ return vgetq_lane_u8(paired, 0) | (vgetq_lane_u8(paired, 8) << 2); ++#endif ++} ++ ++// Multiply packed single-precision (32-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ps ++FORCE_INLINE_OPTNONE __m128 _mm_mul_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vmulq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Multiply the lower single-precision (32-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ss ++FORCE_INLINE __m128 _mm_mul_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_mul_ps(a, b)); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_pu16 ++FORCE_INLINE __m64 _mm_mulhi_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16(vshrn_n_u32( ++ vmull_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b)), 16)); ++} ++ ++// Compute the bitwise OR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_ps ++FORCE_INLINE __m128 _mm_or_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vorrq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgb ++#define _m_pavgb(a, b) _mm_avg_pu8(a, b) ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgw ++#define _m_pavgw(a, b) _mm_avg_pu16(a, b) ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pextrw ++#define _m_pextrw(a, imm) _mm_extract_pi16(a, imm) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_pinsrw ++#define _m_pinsrw(a, i, imm) _mm_insert_pi16(a, i, imm) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxsw ++#define _m_pmaxsw(a, b) _mm_max_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxub ++#define _m_pmaxub(a, b) _mm_max_pu8(a, b) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminsw ++#define _m_pminsw(a, b) _mm_min_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminub ++#define _m_pminub(a, b) _mm_min_pu8(a, b) ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmovmskb ++#define _m_pmovmskb(a) _mm_movemask_pi8(a) ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmulhuw ++#define _m_pmulhuw(a, b) _mm_mulhi_pu16(a, b) ++ ++// Fetch the line of data from memory that contains address p to a location in ++// the cache hierarchy specified by the locality hint i. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_prefetch ++FORCE_INLINE void _mm_prefetch(char const *p, int i) ++{ ++ (void) i; ++#if defined(_MSC_VER) ++ switch (i) { ++ case _MM_HINT_NTA: ++ __prefetch2(p, 1); ++ break; ++ case _MM_HINT_T0: ++ __prefetch2(p, 0); ++ break; ++ case _MM_HINT_T1: ++ __prefetch2(p, 2); ++ break; ++ case _MM_HINT_T2: ++ __prefetch2(p, 4); ++ break; ++ } ++#else ++ switch (i) { ++ case _MM_HINT_NTA: ++ __builtin_prefetch(p, 0, 0); ++ break; ++ case _MM_HINT_T0: ++ __builtin_prefetch(p, 0, 3); ++ break; ++ case _MM_HINT_T1: ++ __builtin_prefetch(p, 0, 2); ++ break; ++ case _MM_HINT_T2: ++ __builtin_prefetch(p, 0, 1); ++ break; ++ } ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_psadbw ++#define _m_psadbw(a, b) _mm_sad_pu8(a, b) ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pshufw ++#define _m_pshufw(a, imm) _mm_shuffle_pi16(a, imm) ++ ++// Compute the approximate reciprocal of packed single-precision (32-bit) ++// floating-point elements in a, and store the results in dst. The maximum ++// relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ps ++FORCE_INLINE __m128 _mm_rcp_ps(__m128 in) ++{ ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(in)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#if SSE2NEON_PRECISE_DIV ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#endif ++ return vreinterpretq_m128_f32(recip); ++} ++ ++// Compute the approximate reciprocal of the lower single-precision (32-bit) ++// floating-point element in a, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ss ++FORCE_INLINE __m128 _mm_rcp_ss(__m128 a) ++{ ++ return _mm_move_ss(a, _mm_rcp_ps(a)); ++} ++ ++// Compute the approximate reciprocal square root of packed single-precision ++// (32-bit) floating-point elements in a, and store the results in dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ps ++FORCE_INLINE __m128 _mm_rsqrt_ps(__m128 in) ++{ ++ float32x4_t out = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Generate masks for detecting whether input has any 0.0f/-0.0f ++ // (which becomes positive/negative infinity by IEEE-754 arithmetic rules). ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t neg_inf = vdupq_n_u32(0xFF800000); ++ const uint32x4_t has_pos_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(out)); ++ const uint32x4_t has_neg_zero = ++ vceqq_u32(neg_inf, vreinterpretq_u32_f32(out)); ++ ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#if SSE2NEON_PRECISE_SQRT ++ // Additional Netwon-Raphson iteration for accuracy ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#endif ++ ++ // Set output vector element to infinity/negative-infinity if ++ // the corresponding input vector element is 0.0f/-0.0f. ++ out = vbslq_f32(has_pos_zero, (float32x4_t) pos_inf, out); ++ out = vbslq_f32(has_neg_zero, (float32x4_t) neg_inf, out); ++ ++ return vreinterpretq_m128_f32(out); ++} ++ ++// Compute the approximate reciprocal square root of the lower single-precision ++// (32-bit) floating-point element in a, store the result in the lower element ++// of dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ss ++FORCE_INLINE __m128 _mm_rsqrt_ss(__m128 in) ++{ ++ return vsetq_lane_f32(vgetq_lane_f32(_mm_rsqrt_ps(in), 0), in, 0); ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_pu8 ++FORCE_INLINE __m64 _mm_sad_pu8(__m64 a, __m64 b) ++{ ++ uint64x1_t t = vpaddl_u32(vpaddl_u16( ++ vpaddl_u8(vabd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))))); ++ return vreinterpret_m64_u16( ++ vset_lane_u16((int) vget_lane_u64(t, 0), vdup_n_u16(0), 0)); ++} ++ ++// Macro: Set the flush zero bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The flush zero may contain any of the ++// following flags: _MM_FLUSH_ZERO_ON or _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_FLUSH_ZERO_MODE ++FORCE_INLINE void _sse2neon_mm_set_flush_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_FLUSH_ZERO_MASK) == _MM_FLUSH_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps ++FORCE_INLINE __m128 _mm_set_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {x, y, z, w}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps1 ++FORCE_INLINE __m128 _mm_set_ps1(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Macro: Set the rounding mode bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The rounding mode may contain any of ++// the following flags: _MM_ROUND_NEAREST, _MM_ROUND_DOWN, _MM_ROUND_UP, ++// _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_ROUNDING_MODE ++FORCE_INLINE void _MM_SET_ROUNDING_MODE(int rounding) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ switch (rounding) { ++ case _MM_ROUND_TOWARD_ZERO: ++ r.field.bit22 = 1; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_DOWN: ++ r.field.bit22 = 0; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_UP: ++ r.field.bit22 = 1; ++ r.field.bit23 = 0; ++ break; ++ default: //_MM_ROUND_NEAREST ++ r.field.bit22 = 0; ++ r.field.bit23 = 0; ++ } ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Copy single-precision (32-bit) floating-point element a to the lower element ++// of dst, and zero the upper 3 elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ss ++FORCE_INLINE __m128 _mm_set_ss(float a) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(a, vdupq_n_f32(0), 0)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_ps ++FORCE_INLINE __m128 _mm_set1_ps(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Set the MXCSR control and status register with the value in unsigned 32-bit ++// integer a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setcsr ++// FIXME: _mm_setcsr() implementation supports changing the rounding mode only. ++FORCE_INLINE void _mm_setcsr(unsigned int a) ++{ ++ _MM_SET_ROUNDING_MODE(a); ++} ++ ++// Get the unsigned 32-bit value of the MXCSR control and status register. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_getcsr ++// FIXME: _mm_getcsr() implementation supports reading the rounding mode only. ++FORCE_INLINE unsigned int _mm_getcsr(void) ++{ ++ return _MM_GET_ROUNDING_MODE(); ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_ps ++FORCE_INLINE __m128 _mm_setr_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {w, z, y, x}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Return vector of type __m128 with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_ps ++FORCE_INLINE __m128 _mm_setzero_ps(void) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(0)); ++} ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi16 ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pi16(a, imm) \ ++ vreinterpret_m64_s16(vshuffle_s16( \ ++ vreinterpret_s16_m64(a), vreinterpret_s16_m64(a), (imm & 0x3), \ ++ ((imm >> 2) & 0x3), ((imm >> 4) & 0x3), ((imm >> 6) & 0x3))) ++#else ++#define _mm_shuffle_pi16(a, imm) \ ++ _sse2neon_define1( \ ++ __m64, a, int16x4_t ret; \ ++ ret = vmov_n_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), (imm) & (0x3))); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpret_m64_s16(ret));) ++#endif ++ ++// Perform a serializing operation on all store-to-memory instructions that were ++// issued prior to this instruction. Guarantees that every store instruction ++// that precedes, in program order, is globally visible before any store ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sfence ++FORCE_INLINE void _mm_sfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory and store-to-memory ++// instructions that were issued prior to this instruction. Guarantees that ++// every memory access that precedes, in program order, the memory fence ++// instruction is globally visible before any memory instruction which follows ++// the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mfence ++FORCE_INLINE void _mm_mfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory instructions that ++// were issued prior to this instruction. Guarantees that every load instruction ++// that precedes, in program order, is globally visible before any load ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lfence ++FORCE_INLINE void _mm_lfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// FORCE_INLINE __m128 _mm_shuffle_ps(__m128 a, __m128 b, __constrange(0,255) ++// int imm) ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_ps(a, b, imm) \ ++ __extension__({ \ ++ float32x4_t _input1 = vreinterpretq_f32_m128(a); \ ++ float32x4_t _input2 = vreinterpretq_f32_m128(b); \ ++ float32x4_t _shuf = \ ++ vshuffleq_s32(_input1, _input2, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ (((imm) >> 4) & 0x3) + 4, (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128_f32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_ps(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128, a, b, __m128 ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_1032(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_ps_2301(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_ps_0321(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_ps_2103(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_movelh_ps(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_1001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_ps_0101(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 1, 0): \ ++ ret = _mm_shuffle_ps_3210(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 1, 1): \ ++ ret = _mm_shuffle_ps_0011(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 2, 2): \ ++ ret = _mm_shuffle_ps_0022(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 0, 0): \ ++ ret = _mm_shuffle_ps_2200(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 0, 2): \ ++ ret = _mm_shuffle_ps_3202(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 3, 2): \ ++ ret = _mm_movehl_ps(_b, _a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 3, 3): \ ++ ret = _mm_shuffle_ps_1133(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 1, 0): \ ++ ret = _mm_shuffle_ps_2010(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_2001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_2032(_a, _b); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_ps_default(_a, _b, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Compute the square root of packed single-precision (32-bit) floating-point ++// elements in a, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise square root intrinsic, we implement ++// square root by multiplying input in with its reciprocal square root before ++// using the Newton-Raphson method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ps ++FORCE_INLINE __m128 _mm_sqrt_ps(__m128 in) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) && !SSE2NEON_PRECISE_SQRT ++ return vreinterpretq_m128_f32(vsqrtq_f32(vreinterpretq_f32_m128(in))); ++#else ++ float32x4_t recip = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Test for vrsqrteq_f32(0) -> positive infinity case. ++ // Change to zero, so that s * 1/sqrt(s) result is zero too. ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t div_by_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(recip)); ++ recip = vreinterpretq_f32_u32( ++ vandq_u32(vmvnq_u32(div_by_zero), vreinterpretq_u32_f32(recip))); ++ ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ ++ // sqrt(s) = s * 1/sqrt(s) ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(in), recip)); ++#endif ++} ++ ++// Compute the square root of the lower single-precision (32-bit) floating-point ++// element in a, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ss ++FORCE_INLINE __m128 _mm_sqrt_ss(__m128 in) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_sqrt_ps(in)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(in), 0)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps ++FORCE_INLINE void _mm_store_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps1 ++FORCE_INLINE void _mm_store_ps1(float *p, __m128 a) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ vst1q_f32(p, vdupq_n_f32(a0)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ss ++FORCE_INLINE void _mm_store_ss(float *p, __m128 a) ++{ ++ vst1q_lane_f32(p, vreinterpretq_f32_m128(a), 0); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store1_ps ++#define _mm_store1_ps _mm_store_ps1 ++ ++// Store the upper 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pi ++FORCE_INLINE void _mm_storeh_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_high_f32(a)); ++} ++ ++// Store the lower 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pi ++FORCE_INLINE void _mm_storel_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_low_f32(a)); ++} ++ ++// Store 4 single-precision (32-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_ps ++FORCE_INLINE void _mm_storer_ps(float *p, __m128 a) ++{ ++ float32x4_t tmp = vrev64q_f32(vreinterpretq_f32_m128(a)); ++ float32x4_t rev = vextq_f32(tmp, tmp, 2); ++ vst1q_f32(p, rev); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_ps ++FORCE_INLINE void _mm_storeu_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Stores 16-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si16 ++FORCE_INLINE void _mm_storeu_si16(void *p, __m128i a) ++{ ++ vst1q_lane_s16((int16_t *) p, vreinterpretq_s16_m128i(a), 0); ++} ++ ++// Stores 64-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si64 ++FORCE_INLINE void _mm_storeu_si64(void *p, __m128i a) ++{ ++ vst1q_lane_s64((int64_t *) p, vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Store 64-bits of integer data from a into memory using a non-temporal memory ++// hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pi ++FORCE_INLINE void _mm_stream_pi(__m64 *p, __m64 a) ++{ ++ vst1_s64((int64_t *) p, vreinterpret_s64_m64(a)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating- ++// point elements) from a into memory using a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_ps ++FORCE_INLINE void _mm_stream_ps(float *p, __m128 a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (float32x4_t *) p); ++#else ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++#endif ++} ++ ++// Subtract packed single-precision (32-bit) floating-point elements in b from ++// packed single-precision (32-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ps ++FORCE_INLINE __m128 _mm_sub_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Subtract the lower single-precision (32-bit) floating-point element in b from ++// the lower single-precision (32-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper 3 packed elements from ++// a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ss ++FORCE_INLINE __m128 _mm_sub_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_sub_ps(a, b)); ++} ++ ++// Macro: Transpose the 4x4 matrix formed by the 4 rows of single-precision ++// (32-bit) floating-point elements in row0, row1, row2, and row3, and store the ++// transposed matrix in these vectors (row0 now contains column 0, etc.). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=MM_TRANSPOSE4_PS ++#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \ ++ do { \ ++ float32x4x2_t ROW01 = vtrnq_f32(row0, row1); \ ++ float32x4x2_t ROW23 = vtrnq_f32(row2, row3); \ ++ row0 = vcombine_f32(vget_low_f32(ROW01.val[0]), \ ++ vget_low_f32(ROW23.val[0])); \ ++ row1 = vcombine_f32(vget_low_f32(ROW01.val[1]), \ ++ vget_low_f32(ROW23.val[1])); \ ++ row2 = vcombine_f32(vget_high_f32(ROW01.val[0]), \ ++ vget_high_f32(ROW23.val[0])); \ ++ row3 = vcombine_f32(vget_high_f32(ROW01.val[1]), \ ++ vget_high_f32(ROW23.val[1])); \ ++ } while (0) ++ ++// according to the documentation, these intrinsics behave the same as the ++// non-'u' versions. We'll just alias them here. ++#define _mm_ucomieq_ss _mm_comieq_ss ++#define _mm_ucomige_ss _mm_comige_ss ++#define _mm_ucomigt_ss _mm_comigt_ss ++#define _mm_ucomile_ss _mm_comile_ss ++#define _mm_ucomilt_ss _mm_comilt_ss ++#define _mm_ucomineq_ss _mm_comineq_ss ++ ++// Return vector of type __m128i with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_undefined_si128 ++FORCE_INLINE __m128i _mm_undefined_si128(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128i a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_si128(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Return vector of type __m128 with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_ps ++FORCE_INLINE __m128 _mm_undefined_ps(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128 a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_ps(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the high half a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_ps ++FORCE_INLINE __m128 _mm_unpackhi_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_ps ++FORCE_INLINE __m128 _mm_unpacklo_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Compute the bitwise XOR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_ps ++FORCE_INLINE __m128 _mm_xor_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ veorq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++/* SSE2 */ ++ ++// Add packed 16-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi16 ++FORCE_INLINE __m128i _mm_add_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed 32-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi32 ++FORCE_INLINE __m128i _mm_add_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vaddq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Add packed 64-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi64 ++FORCE_INLINE __m128i _mm_add_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vaddq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Add packed 8-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi8 ++FORCE_INLINE __m128i _mm_add_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed double-precision (64-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_pd ++FORCE_INLINE __m128d _mm_add_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1] + db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add the lower double-precision (64-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper element from ++// a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_sd ++FORCE_INLINE __m128d _mm_add_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_add_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add 64-bit integers a and b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_si64 ++FORCE_INLINE __m64 _mm_add_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vadd_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Add packed signed 16-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi16 ++FORCE_INLINE __m128i _mm_adds_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed signed 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi8 ++FORCE_INLINE __m128i _mm_adds_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed unsigned 16-bit integers in a and b using saturation, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu16 ++FORCE_INLINE __m128i _mm_adds_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqaddq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Add packed unsigned 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu8 ++FORCE_INLINE __m128i _mm_adds_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compute the bitwise AND of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_pd ++FORCE_INLINE __m128d _mm_and_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vandq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_si128 ++FORCE_INLINE __m128i _mm_and_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vandq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compute the bitwise NOT of packed double-precision (64-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_pd ++FORCE_INLINE __m128d _mm_andnot_pd(__m128d a, __m128d b) ++{ ++ // *NOTE* argument swap ++ return vreinterpretq_m128d_s64( ++ vbicq_s64(vreinterpretq_s64_m128d(b), vreinterpretq_s64_m128d(a))); ++} ++ ++// Compute the bitwise NOT of 128 bits (representing integer data) in a and then ++// AND with b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_si128 ++FORCE_INLINE __m128i _mm_andnot_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vbicq_s32(vreinterpretq_s32_m128i(b), ++ vreinterpretq_s32_m128i(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu16 ++FORCE_INLINE __m128i _mm_avg_epu16(__m128i a, __m128i b) ++{ ++ return (__m128i) vrhaddq_u16(vreinterpretq_u16_m128i(a), ++ vreinterpretq_u16_m128i(b)); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu8 ++FORCE_INLINE __m128i _mm_avg_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vrhaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bslli_si128 ++#define _mm_bslli_si128(a, imm) _mm_slli_si128(a, imm) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bsrli_si128 ++#define _mm_bsrli_si128(a, imm) _mm_srli_si128(a, imm) ++ ++// Cast vector of type __m128d to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_ps ++FORCE_INLINE __m128 _mm_castpd_ps(__m128d a) ++{ ++ return vreinterpretq_m128_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128d to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_si128 ++FORCE_INLINE __m128i _mm_castpd_si128(__m128d a) ++{ ++ return vreinterpretq_m128i_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128 to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_pd ++FORCE_INLINE __m128d _mm_castps_pd(__m128 a) ++{ ++ return vreinterpretq_m128d_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128 to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_si128 ++FORCE_INLINE __m128i _mm_castps_si128(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128i to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_pd ++FORCE_INLINE __m128d _mm_castsi128_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vreinterpretq_f64_m128i(a)); ++#else ++ return vreinterpretq_m128d_f32(vreinterpretq_f32_m128i(a)); ++#endif ++} ++ ++// Cast vector of type __m128i to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_ps ++FORCE_INLINE __m128 _mm_castsi128_ps(__m128i a) ++{ ++ return vreinterpretq_m128_s32(vreinterpretq_s32_m128i(a)); ++} ++ ++// Invalidate and flush the cache line that contains p from all levels of the ++// cache hierarchy. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clflush ++#if defined(__APPLE__) ++#include ++#endif ++FORCE_INLINE void _mm_clflush(void const *p) ++{ ++ (void) p; ++ ++ /* sys_icache_invalidate is supported since macOS 10.5. ++ * However, it does not work on non-jailbroken iOS devices, although the ++ * compilation is successful. ++ */ ++#if defined(__APPLE__) ++ sys_icache_invalidate((void *) (uintptr_t) p, SSE2NEON_CACHELINE_SIZE); ++#elif defined(__GNUC__) || defined(__clang__) ++ uintptr_t ptr = (uintptr_t) p; ++ __builtin___clear_cache((char *) ptr, ++ (char *) ptr + SSE2NEON_CACHELINE_SIZE); ++#elif (_MSC_VER) && SSE2NEON_INCLUDE_WINDOWS_H ++ FlushInstructionCache(GetCurrentProcess(), p, SSE2NEON_CACHELINE_SIZE); ++#endif ++} ++ ++// Compare packed 16-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi16 ++FORCE_INLINE __m128i _mm_cmpeq_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vceqq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed 32-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi32 ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vceqq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed 8-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi8 ++FORCE_INLINE __m128i _mm_cmpeq_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vceqq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_pd ++FORCE_INLINE __m128d _mm_cmpeq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_sd ++FORCE_INLINE __m128d _mm_cmpeq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpeq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_pd ++FORCE_INLINE __m128d _mm_cmpge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) >= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_sd ++FORCE_INLINE __m128d _mm_cmpge_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpge_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi16 ++FORCE_INLINE __m128i _mm_cmpgt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcgtq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi32 ++FORCE_INLINE __m128i _mm_cmpgt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcgtq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi8 ++FORCE_INLINE __m128i _mm_cmpgt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcgtq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_pd ++FORCE_INLINE __m128d _mm_cmpgt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_sd ++FORCE_INLINE __m128d _mm_cmpgt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpgt_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_pd ++FORCE_INLINE __m128d _mm_cmple_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) <= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_sd ++FORCE_INLINE __m128d _mm_cmple_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmple_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtw instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi16 ++FORCE_INLINE __m128i _mm_cmplt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcltq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtd instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi32 ++FORCE_INLINE __m128i _mm_cmplt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcltq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtb instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi8 ++FORCE_INLINE __m128i _mm_cmplt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcltq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_pd ++FORCE_INLINE __m128d _mm_cmplt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_sd ++FORCE_INLINE __m128d _mm_cmplt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmplt_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_pd ++FORCE_INLINE __m128d _mm_cmpneq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_s32(vmvnq_s32(vreinterpretq_s32_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vmvnq_u32(vandq_u32(cmp, swapped))); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_sd ++FORCE_INLINE __m128d _mm_cmpneq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpneq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_pd ++FORCE_INLINE __m128d _mm_cmpnge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) >= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) >= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_sd ++FORCE_INLINE __m128d _mm_cmpnge_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnge_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_cmpngt_pd ++FORCE_INLINE __m128d _mm_cmpngt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) > (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) > (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_sd ++FORCE_INLINE __m128d _mm_cmpngt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpngt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_pd ++FORCE_INLINE __m128d _mm_cmpnle_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) <= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) <= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_sd ++FORCE_INLINE __m128d _mm_cmpnle_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnle_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_pd ++FORCE_INLINE __m128d _mm_cmpnlt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) < (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) < (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_sd ++FORCE_INLINE __m128d _mm_cmpnlt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnlt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_pd ++FORCE_INLINE __m128d _mm_cmpord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Excluding NaNs, any two floating point numbers can be compared. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_u64(vandq_u64(not_nan_a, not_nan_b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_sd ++FORCE_INLINE __m128d _mm_cmpord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_pd ++FORCE_INLINE __m128d _mm_cmpunord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Two NaNs are not equal in comparison operation. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_s32( ++ vmvnq_s32(vreinterpretq_s32_u64(vandq_u64(not_nan_a, not_nan_b)))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_sd ++FORCE_INLINE __m128d _mm_cmpunord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpunord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_sd ++FORCE_INLINE int _mm_comige_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgeq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 >= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_sd ++FORCE_INLINE int _mm_comigt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgtq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 > *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_sd ++FORCE_INLINE int _mm_comile_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcleq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 <= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_sd ++FORCE_INLINE int _mm_comilt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcltq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 < *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_sd ++FORCE_INLINE int _mm_comieq_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vceqq_f64(a, b), 0) & 0x1; ++#else ++ uint32x4_t a_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(a)); ++ uint32x4_t b_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(b), vreinterpretq_u32_m128d(b)); ++ uint32x4_t a_and_b_not_nan = vandq_u32(a_not_nan, b_not_nan); ++ uint32x4_t a_eq_b = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint64x2_t and_results = vandq_u64(vreinterpretq_u64_u32(a_and_b_not_nan), ++ vreinterpretq_u64_u32(a_eq_b)); ++ return vgetq_lane_u64(and_results, 0) & 0x1; ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_sd ++FORCE_INLINE int _mm_comineq_sd(__m128d a, __m128d b) ++{ ++ return !_mm_comieq_sd(a, b); ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_pd ++FORCE_INLINE __m128d _mm_cvtepi32_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a))))); ++#else ++ double a0 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++ double a1 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_ps ++FORCE_INLINE __m128 _mm_cvtepi32_ps(__m128i a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_epi32 ++FORCE_INLINE_OPTNONE __m128i _mm_cvtpd_epi32(__m128d a) ++{ ++// vrnd32xq_f64 not supported on clang ++#if defined(__ARM_FEATURE_FRINT) && !defined(__clang__) ++ float64x2_t rounded = vrnd32xq_f64(vreinterpretq_f64_m128d(a)); ++ int64x2_t integers = vcvtq_s64_f64(rounded); ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vmovn_s64(integers), vdup_n_s32(0))); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) d1, (int32_t) d0); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_pi32 ++FORCE_INLINE_OPTNONE __m64 _mm_cvtpd_pi32(__m128d a) ++{ ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) d0, (int32_t) d1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed single-precision (32-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_ps ++FORCE_INLINE __m128 _mm_cvtpd_ps(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float32x2_t tmp = vcvt_f32_f64(vreinterpretq_f64_m128d(a)); ++ return vreinterpretq_m128_f32(vcombine_f32(tmp, vdup_n_f32(0))); ++#else ++ float a0 = (float) ((double *) &a)[0]; ++ float a1 = (float) ((double *) &a)[1]; ++ return _mm_set_ps(0, 0, a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_pd ++FORCE_INLINE __m128d _mm_cvtpi32_pd(__m64 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vreinterpret_s32_m64(a)))); ++#else ++ double a0 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 0); ++ double a1 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_epi32 ++// *NOTE*. The default rounding mode on SSE is 'round to even', which ARMv7-A ++// does not support! It is supported on ARMv8-A however. ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128 a) ++{ ++#if defined(__ARM_FEATURE_FRINT) ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vrnd32xq_f32(a))); ++#elif (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: ++ return vreinterpretq_m128i_s32(vcvtnq_s32_f32(a)); ++ case _MM_ROUND_DOWN: ++ return vreinterpretq_m128i_s32(vcvtmq_s32_f32(a)); ++ case _MM_ROUND_UP: ++ return vreinterpretq_m128i_s32(vcvtpq_s32_f32(a)); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(a)); ++ } ++#else ++ float *f = (float *) &a; ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128i_s32( ++ vbslq_s32(is_delta_half, r_even, r_normal)); ++ } ++ case _MM_ROUND_DOWN: ++ return _mm_set_epi32(floorf(f[3]), floorf(f[2]), floorf(f[1]), ++ floorf(f[0])); ++ case _MM_ROUND_UP: ++ return _mm_set_epi32(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ++ ceilf(f[0])); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return _mm_set_epi32((int32_t) f[3], (int32_t) f[2], (int32_t) f[1], ++ (int32_t) f[0]); ++ } ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed double-precision (64-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pd ++FORCE_INLINE __m128d _mm_cvtps_pd(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvt_f64_f32(vget_low_f32(vreinterpretq_f32_m128(a)))); ++#else ++ double a0 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ double a1 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Copy the lower double-precision (64-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_f64 ++FORCE_INLINE double _mm_cvtsd_f64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (double) vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0); ++#else ++ return ((double *) &a)[0]; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si32 ++FORCE_INLINE int32_t _mm_cvtsd_si32(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int32_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int32_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64 ++FORCE_INLINE int64_t _mm_cvtsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int64_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64x ++#define _mm_cvtsd_si64x _mm_cvtsd_si64 ++ ++// Convert the lower double-precision (64-bit) floating-point element in b to a ++// single-precision (32-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_ss ++FORCE_INLINE __m128 _mm_cvtsd_ss(__m128 a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32(vsetq_lane_f32( ++ vget_lane_f32(vcvt_f32_f64(vreinterpretq_f64_m128d(b)), 0), ++ vreinterpretq_f32_m128(a), 0)); ++#else ++ return vreinterpretq_m128_f32(vsetq_lane_f32((float) ((double *) &b)[0], ++ vreinterpretq_f32_m128(a), 0)); ++#endif ++} ++ ++// Copy the lower 32-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si32 ++FORCE_INLINE int _mm_cvtsi128_si32(__m128i a) ++{ ++ return vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64 ++FORCE_INLINE int64_t _mm_cvtsi128_si64(__m128i a) ++{ ++ return vgetq_lane_s64(vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Convert the signed 32-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_sd ++FORCE_INLINE __m128d _mm_cvtsi32_sd(__m128d a, int32_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Copy 32-bit integer a to the lower elements of dst, and zero the upper ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_si128 ++FORCE_INLINE __m128i _mm_cvtsi32_si128(int a) ++{ ++ return vreinterpretq_m128i_s32(vsetq_lane_s32(a, vdupq_n_s32(0), 0)); ++} ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_sd ++FORCE_INLINE __m128d _mm_cvtsi64_sd(__m128d a, int64_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_si128 ++FORCE_INLINE __m128i _mm_cvtsi64_si128(int64_t a) ++{ ++ return vreinterpretq_m128i_s64(vsetq_lane_s64(a, vdupq_n_s64(0), 0)); ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_si128 ++#define _mm_cvtsi64x_si128(a) _mm_cvtsi64_si128(a) ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_sd ++#define _mm_cvtsi64x_sd(a, b) _mm_cvtsi64_sd(a, b) ++ ++// Convert the lower single-precision (32-bit) floating-point element in b to a ++// double-precision (64-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_sd ++FORCE_INLINE __m128d _mm_cvtss_sd(__m128d a, __m128 b) ++{ ++ double d = (double) vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(d, vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &d, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_epi32 ++FORCE_INLINE __m128i _mm_cvttpd_epi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) a1, (int32_t) a0); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_pi32 ++FORCE_INLINE __m64 _mm_cvttpd_pi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) a0, (int32_t) a1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_epi32 ++FORCE_INLINE __m128i _mm_cvttps_epi32(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a))); ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si32 ++FORCE_INLINE int32_t _mm_cvttsd_si32(__m128d a) ++{ ++ double ret = *((double *) &a); ++ return (int32_t) ret; ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64 ++FORCE_INLINE int64_t _mm_cvttsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_s64(vcvtq_s64_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ double ret = *((double *) &a); ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64x ++#define _mm_cvttsd_si64x(a) _mm_cvttsd_si64(a) ++ ++// Divide packed double-precision (64-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_pd ++FORCE_INLINE __m128d _mm_div_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] / db[0]; ++ c[1] = da[1] / db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Divide the lower double-precision (64-bit) floating-point element in a by the ++// lower double-precision (64-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper element from a to the upper ++// element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_sd ++FORCE_INLINE __m128d _mm_div_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t tmp = ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1), tmp, 1)); ++#else ++ return _mm_move_sd(a, _mm_div_pd(a, b)); ++#endif ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi16 ++// FORCE_INLINE int _mm_extract_epi16(__m128i a, __constrange(0,8) int imm) ++#define _mm_extract_epi16(a, imm) \ ++ vgetq_lane_u16(vreinterpretq_u16_m128i(a), (imm)) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi16 ++// FORCE_INLINE __m128i _mm_insert_epi16(__m128i a, int b, ++// __constrange(0,8) int imm) ++#define _mm_insert_epi16(a, b, imm) \ ++ vreinterpretq_m128i_s16( \ ++ vsetq_lane_s16((b), vreinterpretq_s16_m128i(a), (imm))) ++ ++// Load 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd ++FORCE_INLINE __m128d _mm_load_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64(p)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], fp[2], fp[3]}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd1 ++#define _mm_load_pd1 _mm_load1_pd ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower of dst, and zero the upper element. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_sd ++FORCE_INLINE __m128d _mm_load_sd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(*p, vdupq_n_f64(0), 0)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], 0, 0}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_si128 ++FORCE_INLINE __m128i _mm_load_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const int32_t *) p)); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_pd ++FORCE_INLINE __m128d _mm_load1_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_dup_f64(p)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(const int64_t *) p)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// upper element of dst, and copy the lower element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pd ++FORCE_INLINE __m128d _mm_loadh_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vget_low_f64(vreinterpretq_f64_m128d(a)), vld1_f64(p))); ++#else ++ return vreinterpretq_m128d_f32(vcombine_f32( ++ vget_low_f32(vreinterpretq_f32_m128d(a)), vld1_f32((const float *) p))); ++#endif ++} ++ ++// Load 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_epi64 ++FORCE_INLINE __m128i _mm_loadl_epi64(__m128i const *p) ++{ ++ /* Load the lower 64 bits of the value pointed to by p into the ++ * lower 64 bits of the result, zeroing the upper 64 bits of the result. ++ */ ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vld1_s32((int32_t const *) p), vcreate_s32(0))); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower element of dst, and copy the upper element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pd ++FORCE_INLINE __m128d _mm_loadl_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vld1_f64(p), vget_high_f64(vreinterpretq_f64_m128d(a)))); ++#else ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vld1_f32((const float *) p), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++#endif ++} ++ ++// Load 2 double-precision (64-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_pd ++FORCE_INLINE __m128d _mm_loadr_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t v = vld1q_f64(p); ++ return vreinterpretq_m128d_f64(vextq_f64(v, v, 1)); ++#else ++ int64x2_t v = vld1q_s64((const int64_t *) p); ++ return vreinterpretq_m128d_s64(vextq_s64(v, v, 1)); ++#endif ++} ++ ++// Loads two double-precision from unaligned memory, floating-point values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_pd ++FORCE_INLINE __m128d _mm_loadu_pd(const double *p) ++{ ++ return _mm_load_pd(p); ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si128 ++FORCE_INLINE __m128i _mm_loadu_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const unaligned_int32_t *) p)); ++} ++ ++// Load unaligned 32-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si32 ++FORCE_INLINE __m128i _mm_loadu_si32(const void *p) ++{ ++ return vreinterpretq_m128i_s32( ++ vsetq_lane_s32(*(const unaligned_int32_t *) p, vdupq_n_s32(0), 0)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Horizontally add adjacent pairs of intermediate ++// 32-bit integers, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_madd_epi16 ++FORCE_INLINE __m128i _mm_madd_epi16(__m128i a, __m128i b) ++{ ++ int32x4_t low = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t high = ++ vmull_high_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)); ++ ++ return vreinterpretq_m128i_s32(vpaddq_s32(low, high)); ++#else ++ int32x4_t high = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ int32x2_t low_sum = vpadd_s32(vget_low_s32(low), vget_high_s32(low)); ++ int32x2_t high_sum = vpadd_s32(vget_low_s32(high), vget_high_s32(high)); ++ ++ return vreinterpretq_m128i_s32(vcombine_s32(low_sum, high_sum)); ++#endif ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. mem_addr does not need to be aligned ++// on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmoveu_si128 ++FORCE_INLINE void _mm_maskmoveu_si128(__m128i a, __m128i mask, char *mem_addr) ++{ ++ int8x16_t shr_mask = vshrq_n_s8(vreinterpretq_s8_m128i(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x16_t masked = ++ vbslq_s8(vreinterpretq_u8_s8(shr_mask), vreinterpretq_s8_m128i(a), ++ vreinterpretq_s8_m128(b)); ++ vst1q_s8((int8_t *) mem_addr, masked); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi16 ++FORCE_INLINE __m128i _mm_max_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmaxq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu8 ++FORCE_INLINE __m128i _mm_max_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vmaxq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pd ++FORCE_INLINE __m128d _mm_max_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcgtq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vmaxq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? a1 : b1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_sd ++FORCE_INLINE __m128d _mm_max_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_max_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] > db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi16 ++FORCE_INLINE __m128i _mm_min_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vminq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu8 ++FORCE_INLINE __m128i _mm_min_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vminq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pd ++FORCE_INLINE __m128d _mm_min_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcltq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vminq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? a1 : b1; ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_sd ++FORCE_INLINE __m128d _mm_min_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_min_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] < db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to the lower element of dst, and zero the ++// upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_epi64 ++FORCE_INLINE __m128i _mm_move_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(0, vreinterpretq_s64_m128i(a), 1)); ++} ++ ++// Move the lower double-precision (64-bit) floating-point element from b to the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_sd ++FORCE_INLINE __m128d _mm_move_sd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vget_low_f32(vreinterpretq_f32_m128d(b)), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_epi8 ++FORCE_INLINE int _mm_movemask_epi8(__m128i a) ++{ ++ // Use increasingly wide shifts+adds to collect the sign bits ++ // together. ++ // Since the widening shifts would be rather confusing to follow in little ++ // endian, everything will be illustrated in big endian order instead. This ++ // has a different result - the bits would actually be reversed on a big ++ // endian machine. ++ ++ // Starting input (only half the elements are shown): ++ // 89 ff 1d c0 00 10 99 33 ++ uint8x16_t input = vreinterpretq_u8_m128i(a); ++ ++ // Shift out everything but the sign bits with an unsigned shift right. ++ // ++ // Bytes of the vector:: ++ // 89 ff 1d c0 00 10 99 33 ++ // \ \ \ \ \ \ \ \ high_bits = (uint16x4_t)(input >> 7) ++ // | | | | | | | | ++ // 01 01 00 01 00 00 01 00 ++ // ++ // Bits of first important lane(s): ++ // 10001001 (89) ++ // \______ ++ // | ++ // 00000001 (01) ++ uint16x8_t high_bits = vreinterpretq_u16_u8(vshrq_n_u8(input, 7)); ++ ++ // Merge the even lanes together with a 16-bit unsigned shift right + add. ++ // 'xx' represents garbage data which will be ignored in the final result. ++ // In the important bytes, the add functions like a binary OR. ++ // ++ // 01 01 00 01 00 00 01 00 ++ // \_ | \_ | \_ | \_ | paired16 = (uint32x4_t)(input + (input >> 7)) ++ // \| \| \| \| ++ // xx 03 xx 01 xx 00 xx 02 ++ // ++ // 00000001 00000001 (01 01) ++ // \_______ | ++ // \| ++ // xxxxxxxx xxxxxx11 (xx 03) ++ uint32x4_t paired16 = ++ vreinterpretq_u32_u16(vsraq_n_u16(high_bits, high_bits, 7)); ++ ++ // Repeat with a wider 32-bit shift + add. ++ // xx 03 xx 01 xx 00 xx 02 ++ // \____ | \____ | paired32 = (uint64x1_t)(paired16 + (paired16 >> ++ // 14)) ++ // \| \| ++ // xx xx xx 0d xx xx xx 02 ++ // ++ // 00000011 00000001 (03 01) ++ // \\_____ || ++ // '----.\|| ++ // xxxxxxxx xxxx1101 (xx 0d) ++ uint64x2_t paired32 = ++ vreinterpretq_u64_u32(vsraq_n_u32(paired16, paired16, 14)); ++ ++ // Last, an even wider 64-bit shift + add to get our result in the low 8 bit ++ // lanes. xx xx xx 0d xx xx xx 02 ++ // \_________ | paired64 = (uint8x8_t)(paired32 + (paired32 >> ++ // 28)) ++ // \| ++ // xx xx xx xx xx xx xx d2 ++ // ++ // 00001101 00000010 (0d 02) ++ // \ \___ | | ++ // '---. \| | ++ // xxxxxxxx 11010010 (xx d2) ++ uint8x16_t paired64 = ++ vreinterpretq_u8_u64(vsraq_n_u64(paired32, paired32, 28)); ++ ++ // Extract the low 8 bits from each 64-bit lane with 2 8-bit extracts. ++ // xx xx xx xx xx xx xx d2 ++ // || return paired64[0] ++ // d2 ++ // Note: Little endian would return the correct value 4b (01001011) instead. ++ return vgetq_lane_u8(paired64, 0) | ((int) vgetq_lane_u8(paired64, 8) << 8); ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed double-precision (64-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pd ++FORCE_INLINE int _mm_movemask_pd(__m128d a) ++{ ++ uint64x2_t input = vreinterpretq_u64_m128d(a); ++ uint64x2_t high_bits = vshrq_n_u64(input, 63); ++ return (int) (vgetq_lane_u64(high_bits, 0) | ++ (vgetq_lane_u64(high_bits, 1) << 1)); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movepi64_pi64 ++FORCE_INLINE __m64 _mm_movepi64_pi64(__m128i a) ++{ ++ return vreinterpret_m64_s64(vget_low_s64(vreinterpretq_s64_m128i(a))); ++} ++ ++// Copy the 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movpi64_epi64 ++FORCE_INLINE __m128i _mm_movpi64_epi64(__m64 a) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vreinterpret_s64_m64(a), vdup_n_s64(0))); ++} ++ ++// Multiply the low unsigned 32-bit integers from each packed 64-bit element in ++// a and b, and store the unsigned 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epu32 ++FORCE_INLINE __m128i _mm_mul_epu32(__m128i a, __m128i b) ++{ ++ // vmull_u32 upcasts instead of masking, so we downcast. ++ uint32x2_t a_lo = vmovn_u64(vreinterpretq_u64_m128i(a)); ++ uint32x2_t b_lo = vmovn_u64(vreinterpretq_u64_m128i(b)); ++ return vreinterpretq_m128i_u64(vmull_u32(a_lo, b_lo)); ++} ++ ++// Multiply packed double-precision (64-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_pd ++FORCE_INLINE __m128d _mm_mul_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vmulq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] * db[0]; ++ c[1] = da[1] * db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Multiply the lower double-precision (64-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper element ++// from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_mul_sd ++FORCE_INLINE __m128d _mm_mul_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_mul_pd(a, b)); ++} ++ ++// Multiply the low unsigned 32-bit integers from a and b, and store the ++// unsigned 64-bit result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_su32 ++FORCE_INLINE __m64 _mm_mul_su32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u64(vget_low_u64( ++ vmull_u32(vreinterpret_u32_m64(a), vreinterpret_u32_m64(b)))); ++} ++ ++// Multiply the packed signed 16-bit integers in a and b, producing intermediate ++// 32-bit integers, and store the high 16 bits of the intermediate integers in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epi16 ++FORCE_INLINE __m128i _mm_mulhi_epi16(__m128i a, __m128i b) ++{ ++ /* FIXME: issue with large values because of result saturation */ ++ // int16x8_t ret = vqdmulhq_s16(vreinterpretq_s16_m128i(a), ++ // vreinterpretq_s16_m128i(b)); /* =2*a*b */ return ++ // vreinterpretq_m128i_s16(vshrq_n_s16(ret, 1)); ++ int16x4_t a3210 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b3210 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab3210 = vmull_s16(a3210, b3210); /* 3333222211110000 */ ++ int16x4_t a7654 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b7654 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab7654 = vmull_s16(a7654, b7654); /* 7777666655554444 */ ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_s32(ab3210), vreinterpretq_u16_s32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epu16 ++FORCE_INLINE __m128i _mm_mulhi_epu16(__m128i a, __m128i b) ++{ ++ uint16x4_t a3210 = vget_low_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b3210 = vget_low_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab3210 = vmull_u16(a3210, b3210); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32x4_t ab7654 = ++ vmull_high_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ uint16x8_t r = vuzp2q_u16(vreinterpretq_u16_u32(ab3210), ++ vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r); ++#else ++ uint16x4_t a7654 = vget_high_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b7654 = vget_high_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab7654 = vmull_u16(a7654, b7654); ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_u32(ab3210), vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++#endif ++} ++ ++// Multiply the packed 16-bit integers in a and b, producing intermediate 32-bit ++// integers, and store the low 16 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi16 ++FORCE_INLINE __m128i _mm_mullo_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmulq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compute the bitwise OR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_or_pd ++FORCE_INLINE __m128d _mm_or_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vorrq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise OR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_si128 ++FORCE_INLINE __m128i _mm_or_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vorrq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi16 ++FORCE_INLINE __m128i _mm_packs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vqmovn_s16(vreinterpretq_s16_m128i(a)), ++ vqmovn_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi32 ++FORCE_INLINE __m128i _mm_packs_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vqmovn_s32(vreinterpretq_s32_m128i(a)), ++ vqmovn_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi16 ++FORCE_INLINE __m128i _mm_packus_epi16(const __m128i a, const __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcombine_u8(vqmovun_s16(vreinterpretq_s16_m128i(a)), ++ vqmovun_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Pause the processor. This is typically used in spin-wait loops and depending ++// on the x86 processor typical values are in the 40-100 cycle range. The ++// 'yield' instruction isn't a good fit because it's effectively a nop on most ++// Arm cores. Experience with several databases has shown has shown an 'isb' is ++// a reasonable approximation. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_pause ++FORCE_INLINE void _mm_pause(void) ++{ ++#if defined(_MSC_VER) ++ __isb(_ARM64_BARRIER_SY); ++#else ++ __asm__ __volatile__("isb\n"); ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce two ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of 64-bit elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_epu8 ++FORCE_INLINE __m128i _mm_sad_epu8(__m128i a, __m128i b) ++{ ++ uint16x8_t t = vpaddlq_u8(vabdq_u8((uint8x16_t) a, (uint8x16_t) b)); ++ return vreinterpretq_m128i_u64(vpaddlq_u32(vpaddlq_u16(t))); ++} ++ ++// Set packed 16-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi16 ++FORCE_INLINE __m128i _mm_set_epi16(short i7, ++ short i6, ++ short i5, ++ short i4, ++ short i3, ++ short i2, ++ short i1, ++ short i0) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {i0, i1, i2, i3, i4, i5, i6, i7}; ++ return vreinterpretq_m128i_s16(vld1q_s16(data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi32 ++FORCE_INLINE __m128i _mm_set_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i0, i1, i2, i3}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64 ++FORCE_INLINE __m128i _mm_set_epi64(__m64 i1, __m64 i2) ++{ ++ return _mm_set_epi64x(vget_lane_s64(i1, 0), vget_lane_s64(i2, 0)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64x ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t i1, int64_t i2) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vcreate_s64(i2), vcreate_s64(i1))); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi8 ++FORCE_INLINE __m128i _mm_set_epi8(signed char b15, ++ signed char b14, ++ signed char b13, ++ signed char b12, ++ signed char b11, ++ signed char b10, ++ signed char b9, ++ signed char b8, ++ signed char b7, ++ signed char b6, ++ signed char b5, ++ signed char b4, ++ signed char b3, ++ signed char b2, ++ signed char b1, ++ signed char b0) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd ++FORCE_INLINE __m128d _mm_set_pd(double e1, double e0) ++{ ++ double ALIGN_STRUCT(16) data[2] = {e0, e1}; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64((float64_t *) data)); ++#else ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) data)); ++#endif ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd1 ++#define _mm_set_pd1 _mm_set1_pd ++ ++// Copy double-precision (64-bit) floating-point element a to the lower element ++// of dst, and zero the upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_sd ++FORCE_INLINE __m128d _mm_set_sd(double a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(a, vdupq_n_f64(0), 0)); ++#else ++ return _mm_set_pd(0, a); ++#endif ++} ++ ++// Broadcast 16-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi16 ++FORCE_INLINE __m128i _mm_set1_epi16(short w) ++{ ++ return vreinterpretq_m128i_s16(vdupq_n_s16(w)); ++} ++ ++// Broadcast 32-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi32 ++FORCE_INLINE __m128i _mm_set1_epi32(int _i) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(_i)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64 ++FORCE_INLINE __m128i _mm_set1_epi64(__m64 _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_lane_s64(_i, 0)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64x ++FORCE_INLINE __m128i _mm_set1_epi64x(int64_t _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_n_s64(_i)); ++} ++ ++// Broadcast 8-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi8 ++FORCE_INLINE __m128i _mm_set1_epi8(signed char w) ++{ ++ return vreinterpretq_m128i_s8(vdupq_n_s8(w)); ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_pd ++FORCE_INLINE __m128d _mm_set1_pd(double d) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(d)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(int64_t *) &d)); ++#endif ++} ++ ++// Set packed 16-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi16 ++FORCE_INLINE __m128i _mm_setr_epi16(short w0, ++ short w1, ++ short w2, ++ short w3, ++ short w4, ++ short w5, ++ short w6, ++ short w7) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {w0, w1, w2, w3, w4, w5, w6, w7}; ++ return vreinterpretq_m128i_s16(vld1q_s16((int16_t *) data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi32 ++FORCE_INLINE __m128i _mm_setr_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i3, i2, i1, i0}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi64 ++FORCE_INLINE __m128i _mm_setr_epi64(__m64 e1, __m64 e0) ++{ ++ return vreinterpretq_m128i_s64(vcombine_s64(e1, e0)); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi8 ++FORCE_INLINE __m128i _mm_setr_epi8(signed char b0, ++ signed char b1, ++ signed char b2, ++ signed char b3, ++ signed char b4, ++ signed char b5, ++ signed char b6, ++ signed char b7, ++ signed char b8, ++ signed char b9, ++ signed char b10, ++ signed char b11, ++ signed char b12, ++ signed char b13, ++ signed char b14, ++ signed char b15) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_pd ++FORCE_INLINE __m128d _mm_setr_pd(double e1, double e0) ++{ ++ return _mm_set_pd(e0, e1); ++} ++ ++// Return vector of type __m128d with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_pd ++FORCE_INLINE __m128d _mm_setzero_pd(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(0)); ++#else ++ return vreinterpretq_m128d_f32(vdupq_n_f32(0)); ++#endif ++} ++ ++// Return vector of type __m128i with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_si128 ++FORCE_INLINE __m128i _mm_setzero_si128(void) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(0)); ++} ++ ++// Shuffle 32-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi32 ++// FORCE_INLINE __m128i _mm_shuffle_epi32(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shuffle_epi32(a, imm) \ ++ __extension__({ \ ++ int32x4_t _input = vreinterpretq_s32_m128i(a); \ ++ int32x4_t _shuf = \ ++ vshuffleq_s32(_input, _input, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ ((imm) >> 4) & 0x3, ((imm) >> 6) & 0x3); \ ++ vreinterpretq_m128i_s32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_epi32(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, __m128i ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_epi_1032(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_epi_2301(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_epi_0321(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_epi_2103(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_shuffle_epi_1010(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_epi_1001(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_epi_0101(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 1, 1): \ ++ ret = _mm_shuffle_epi_2211(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 2, 2): \ ++ ret = _mm_shuffle_epi_0122(_a); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 2): \ ++ ret = _mm_shuffle_epi_3332(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 0, 0): \ ++ ret = _mm_shuffle_epi32_splat(_a, 0); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 1, 1): \ ++ ret = _mm_shuffle_epi32_splat(_a, 1); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 2, 2): \ ++ ret = _mm_shuffle_epi32_splat(_a, 2); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 3): \ ++ ret = _mm_shuffle_epi32_splat(_a, 3); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_epi32_default(_a, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Shuffle double-precision (64-bit) floating-point elements using the control ++// in imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pd ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pd(a, b, imm8) \ ++ vreinterpretq_m128d_s64( \ ++ vshuffleq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b), \ ++ imm8 & 0x1, ((imm8 & 0x2) >> 1) + 2)) ++#else ++#define _mm_shuffle_pd(a, b, imm8) \ ++ _mm_castsi128_pd(_mm_set_epi64x( \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(b), (imm8 & 0x2) >> 1), \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(a), imm8 & 0x1))) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflehi_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflehi_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = \ ++ vshuffleq_s16(_input, _input, 0, 1, 2, 3, ((imm) & (0x3)) + 4, \ ++ (((imm) >> 2) & 0x3) + 4, (((imm) >> 4) & 0x3) + 4, \ ++ (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflehi_epi16(a, imm) _mm_shufflehi_epi16_function((a), (imm)) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflelo_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflelo_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = vshuffleq_s16( \ ++ _input, _input, ((imm) & (0x3)), (((imm) >> 2) & 0x3), \ ++ (((imm) >> 4) & 0x3), (((imm) >> 6) & 0x3), 4, 5, 6, 7); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflelo_epi16(a, imm) _mm_shufflelo_epi16_function((a), (imm)) ++#endif ++ ++// Shift packed 16-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi16 ++FORCE_INLINE __m128i _mm_sll_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16((int16_t) c); ++ return vreinterpretq_m128i_s16(vshlq_s16(vreinterpretq_s16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi32 ++FORCE_INLINE __m128i _mm_sll_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32((int32_t) c); ++ return vreinterpretq_m128i_s32(vshlq_s32(vreinterpretq_s32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi64 ++FORCE_INLINE __m128i _mm_sll_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64((int64_t) c); ++ return vreinterpretq_m128i_s64(vshlq_s64(vreinterpretq_s64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi16 ++FORCE_INLINE __m128i _mm_slli_epi16(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~15)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16(vreinterpretq_s16_m128i(a), vdupq_n_s16(imm))); ++} ++ ++// Shift packed 32-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi32 ++FORCE_INLINE __m128i _mm_slli_epi32(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~31)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32(vreinterpretq_s32_m128i(a), vdupq_n_s32(imm))); ++} ++ ++// Shift packed 64-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi64 ++FORCE_INLINE __m128i _mm_slli_epi64(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~63)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s64( ++ vshlq_s64(vreinterpretq_s64_m128i(a), vdupq_n_s64(imm))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_si128 ++#define _mm_slli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely(imm == 0)) ret = vreinterpretq_s8_m128i(_a); \ ++ else if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vdupq_n_s8(0), vreinterpretq_s8_m128i(_a), \ ++ ((imm <= 0 || imm > 15) ? 0 : (16 - imm))); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Compute the square root of packed double-precision (64-bit) floating-point ++// elements in a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_pd ++FORCE_INLINE __m128d _mm_sqrt_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsqrtq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double a0 = sqrt(((double *) &a)[0]); ++ double a1 = sqrt(((double *) &a)[1]); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Compute the square root of the lower double-precision (64-bit) floating-point ++// element in b, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_sd ++FORCE_INLINE __m128d _mm_sqrt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_sqrt_pd(b)); ++#else ++ return _mm_set_pd(((double *) &a)[1], sqrt(((double *) &b)[0])); ++#endif ++} ++ ++// Shift packed 16-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi16 ++FORCE_INLINE __m128i _mm_sra_epi16(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_cmplt_epi16(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16((int16x8_t) a, vdupq_n_s16((int) -c))); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi32 ++FORCE_INLINE __m128i _mm_sra_epi32(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_cmplt_epi32(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32((int32x4_t) a, vdupq_n_s32((int) -c))); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in sign ++// bits, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi16 ++FORCE_INLINE __m128i _mm_srai_epi16(__m128i a, int imm) ++{ ++ const int count = (imm & ~15) ? 15 : imm; ++ return (__m128i) vshlq_s16((int16x8_t) a, vdupq_n_s16(-count)); ++} ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi32 ++// FORCE_INLINE __m128i _mm_srai_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srai_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) == 0)) { \ ++ ret = _a; \ ++ } else if (_sse2neon_likely(0 < (imm) && (imm) < 32)) { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshlq_s32(vreinterpretq_s32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } else { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshrq_n_s32(vreinterpretq_s32_m128i(_a), 31)); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 16-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi16 ++FORCE_INLINE __m128i _mm_srl_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16(-(int16_t) c); ++ return vreinterpretq_m128i_u16(vshlq_u16(vreinterpretq_u16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi32 ++FORCE_INLINE __m128i _mm_srl_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32(-(int32_t) c); ++ return vreinterpretq_m128i_u32(vshlq_u32(vreinterpretq_u32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi64 ++FORCE_INLINE __m128i _mm_srl_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64(-(int64_t) c); ++ return vreinterpretq_m128i_u64(vshlq_u64(vreinterpretq_u64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi16 ++#define _mm_srli_epi16(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~15)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u16( \ ++ vshlq_u16(vreinterpretq_u16_m128i(_a), vdupq_n_s16(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi32 ++// FORCE_INLINE __m128i _mm_srli_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srli_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~31)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u32( \ ++ vshlq_u32(vreinterpretq_u32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 64-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi64 ++#define _mm_srli_epi64(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~63)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u64( \ ++ vshlq_u64(vreinterpretq_u64_m128i(_a), vdupq_n_s64(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_si128 ++#define _mm_srli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vreinterpretq_s8_m128i(_a), vdupq_n_s8(0), \ ++ (imm > 15 ? 0 : imm)); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd ++FORCE_INLINE void _mm_store_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64((float64_t *) mem_addr, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_f32((float32_t *) mem_addr, vreinterpretq_f32_m128d(a)); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd1 ++FORCE_INLINE void _mm_store_pd1(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x1_t a_low = vget_low_f64(vreinterpretq_f64_m128d(a)); ++ vst1q_f64((float64_t *) mem_addr, ++ vreinterpretq_f64_m128d(vcombine_f64(a_low, a_low))); ++#else ++ float32x2_t a_low = vget_low_f32(vreinterpretq_f32_m128d(a)); ++ vst1q_f32((float32_t *) mem_addr, ++ vreinterpretq_f32_m128d(vcombine_f32(a_low, a_low))); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_store_sd ++FORCE_INLINE void _mm_store_sd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_u64((uint64_t *) mem_addr, vget_low_u64(vreinterpretq_u64_m128d(a))); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_si128 ++FORCE_INLINE void _mm_store_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#expand=9,526,5601&text=_mm_store1_pd ++#define _mm_store1_pd _mm_store_pd1 ++ ++// Store the upper double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pd ++FORCE_INLINE void _mm_storeh_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_high_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_high_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 64-bit integer from the first element of a into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_epi64 ++FORCE_INLINE void _mm_storel_epi64(__m128i *a, __m128i b) ++{ ++ vst1_u64((uint64_t *) a, vget_low_u64(vreinterpretq_u64_m128i(b))); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pd ++FORCE_INLINE void _mm_storel_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_low_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 2 double-precision (64-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_pd ++FORCE_INLINE void _mm_storer_pd(double *mem_addr, __m128d a) ++{ ++ float32x4_t f = vreinterpretq_f32_m128d(a); ++ _mm_store_pd(mem_addr, vreinterpretq_m128d_f32(vextq_f32(f, f, 2))); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_pd ++FORCE_INLINE void _mm_storeu_pd(double *mem_addr, __m128d a) ++{ ++ _mm_store_pd(mem_addr, a); ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si128 ++FORCE_INLINE void _mm_storeu_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store 32-bit integer from the first element of a into memory. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si32 ++FORCE_INLINE void _mm_storeu_si32(void *p, __m128i a) ++{ ++ vst1q_lane_s32((int32_t *) p, vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory using a non-temporal memory hint. mem_addr must ++// be aligned on a 16-byte boundary or a general-protection exception may be ++// generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pd ++FORCE_INLINE void _mm_stream_pd(double *p, __m128d a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (__m128d *) p); ++#elif defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64(p, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128d(a)); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory using a non-temporal memory ++// hint. mem_addr must be aligned on a 16-byte boundary or a general-protection ++// exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si128 ++FORCE_INLINE void _mm_stream_si128(__m128i *p, __m128i a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, p); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128i(a)); ++#endif ++} ++ ++// Store 32-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si32 ++FORCE_INLINE void _mm_stream_si32(int *p, int a) ++{ ++ vst1q_lane_s32((int32_t *) p, vdupq_n_s32(a), 0); ++} ++ ++// Store 64-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si64 ++FORCE_INLINE void _mm_stream_si64(__int64 *p, __int64 a) ++{ ++ vst1_s64((int64_t *) p, vdup_n_s64((int64_t) a)); ++} ++ ++// Subtract packed 16-bit integers in b from packed 16-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi16 ++FORCE_INLINE __m128i _mm_sub_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed 32-bit integers in b from packed 32-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi32 ++FORCE_INLINE __m128i _mm_sub_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Subtract packed 64-bit integers in b from packed 64-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi64 ++FORCE_INLINE __m128i _mm_sub_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vsubq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Subtract packed 8-bit integers in b from packed 8-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi8 ++FORCE_INLINE __m128i _mm_sub_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed double-precision (64-bit) floating-point elements in b from ++// packed double-precision (64-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_sub_pd ++FORCE_INLINE __m128d _mm_sub_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] - db[0]; ++ c[1] = da[1] - db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Subtract the lower double-precision (64-bit) floating-point element in b from ++// the lower double-precision (64-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_sd ++FORCE_INLINE __m128d _mm_sub_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_sub_pd(a, b)); ++} ++ ++// Subtract 64-bit integer b from 64-bit integer a, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_si64 ++FORCE_INLINE __m64 _mm_sub_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vsub_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Subtract packed signed 16-bit integers in b from packed 16-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi16 ++FORCE_INLINE __m128i _mm_subs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed signed 8-bit integers in b from packed 8-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi8 ++FORCE_INLINE __m128i _mm_subs_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed unsigned 16-bit integers in b from packed unsigned 16-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu16 ++FORCE_INLINE __m128i _mm_subs_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqsubq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Subtract packed unsigned 8-bit integers in b from packed unsigned 8-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu8 ++FORCE_INLINE __m128i _mm_subs_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqsubq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++#define _mm_ucomieq_sd _mm_comieq_sd ++#define _mm_ucomige_sd _mm_comige_sd ++#define _mm_ucomigt_sd _mm_comigt_sd ++#define _mm_ucomile_sd _mm_comile_sd ++#define _mm_ucomilt_sd _mm_comilt_sd ++#define _mm_ucomineq_sd _mm_comineq_sd ++ ++// Return vector of type __m128d with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_pd ++FORCE_INLINE __m128d _mm_undefined_pd(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128d a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_pd(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi16 ++FORCE_INLINE __m128i _mm_unpackhi_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip2q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi32 ++FORCE_INLINE __m128i _mm_unpackhi_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip2q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_high_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi64 ++FORCE_INLINE __m128i _mm_unpackhi_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip2q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_h = vget_high_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_h = vget_high_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_h, b_h)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the high half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi8 ++FORCE_INLINE __m128i _mm_unpackhi_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip2q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the high half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_pd ++FORCE_INLINE __m128d _mm_unpackhi_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip2q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_high_s64(vreinterpretq_s64_m128d(a)), ++ vget_high_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi16 ++FORCE_INLINE __m128i _mm_unpacklo_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip1q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi32 ++FORCE_INLINE __m128i _mm_unpacklo_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip1q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_low_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi64 ++FORCE_INLINE __m128i _mm_unpacklo_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip1q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_l = vget_low_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_l = vget_low_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_l, b_l)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi8 ++FORCE_INLINE __m128i _mm_unpacklo_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip1q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_pd ++FORCE_INLINE __m128d _mm_unpacklo_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip1q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_low_s64(vreinterpretq_s64_m128d(a)), ++ vget_low_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Compute the bitwise XOR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_pd ++FORCE_INLINE __m128d _mm_xor_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ veorq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise XOR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_si128 ++FORCE_INLINE __m128i _mm_xor_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ veorq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++/* SSE3 */ ++ ++// Alternatively add and subtract packed double-precision (64-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_addsub_pd ++FORCE_INLINE __m128d _mm_addsub_pd(__m128d a, __m128d b) ++{ ++ _sse2neon_const __m128d mask = _mm_set_pd(1.0f, -1.0f); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vfmaq_f64(vreinterpretq_f64_m128d(a), ++ vreinterpretq_f64_m128d(b), ++ vreinterpretq_f64_m128d(mask))); ++#else ++ return _mm_add_pd(_mm_mul_pd(b, mask), a); ++#endif ++} ++ ++// Alternatively add and subtract packed single-precision (32-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=addsub_ps ++FORCE_INLINE __m128 _mm_addsub_ps(__m128 a, __m128 b) ++{ ++ _sse2neon_const __m128 mask = _mm_setr_ps(-1.0f, 1.0f, -1.0f, 1.0f); ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_FMA) /* VFPv4+ */ ++ return vreinterpretq_m128_f32(vfmaq_f32(vreinterpretq_f32_m128(a), ++ vreinterpretq_f32_m128(mask), ++ vreinterpretq_f32_m128(b))); ++#else ++ return _mm_add_ps(_mm_mul_ps(b, mask), a); ++#endif ++} ++ ++// Horizontally add adjacent pairs of double-precision (64-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pd ++FORCE_INLINE __m128d _mm_hadd_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vpaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[] = {da[0] + da[1], db[0] + db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of single-precision (32-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_ps ++FORCE_INLINE __m128 _mm_hadd_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vpaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vpadd_f32(a10, a32), vpadd_f32(b10, b32))); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of double-precision (64-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pd ++FORCE_INLINE __m128d _mm_hsub_pd(__m128d _a, __m128d _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vuzp1q_f64(a, b), vuzp2q_f64(a, b))); ++#else ++ double *da = (double *) &_a; ++ double *db = (double *) &_b; ++ double c[] = {da[0] - da[1], db[0] - db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of single-precision (32-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_ps ++FORCE_INLINE __m128 _mm_hsub_ps(__m128 _a, __m128 _b) ++{ ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vuzp1q_f32(a, b), vuzp2q_f32(a, b))); ++#else ++ float32x4x2_t c = vuzpq_f32(a, b); ++ return vreinterpretq_m128_f32(vsubq_f32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Load 128-bits of integer data from unaligned memory into dst. This intrinsic ++// may perform better than _mm_loadu_si128 when the data crosses a cache line ++// boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lddqu_si128 ++#define _mm_lddqu_si128 _mm_loadu_si128 ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loaddup_pd ++#define _mm_loaddup_pd _mm_load1_pd ++ ++// Duplicate the low double-precision (64-bit) floating-point element from a, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movedup_pd ++FORCE_INLINE __m128d _mm_movedup_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdupq_laneq_f64(vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_u64( ++ vdupq_n_u64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0))); ++#endif ++} ++ ++// Duplicate odd-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehdup_ps ++FORCE_INLINE __m128 _mm_movehdup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 1, 1, 3, 3)); ++#else ++ float32_t a1 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ float32_t a3 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 3); ++ float ALIGN_STRUCT(16) data[4] = {a1, a1, a3, a3}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Duplicate even-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_moveldup_ps ++FORCE_INLINE __m128 _mm_moveldup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 0, 0, 2, 2)); ++#else ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32_t a2 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 2); ++ float ALIGN_STRUCT(16) data[4] = {a0, a0, a2, a2}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++/* SSSE3 */ ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi16 ++FORCE_INLINE __m128i _mm_abs_epi16(__m128i a) ++{ ++ return vreinterpretq_m128i_s16(vabsq_s16(vreinterpretq_s16_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi32 ++FORCE_INLINE __m128i _mm_abs_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32(vabsq_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi8 ++FORCE_INLINE __m128i _mm_abs_epi8(__m128i a) ++{ ++ return vreinterpretq_m128i_s8(vabsq_s8(vreinterpretq_s8_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi16 ++FORCE_INLINE __m64 _mm_abs_pi16(__m64 a) ++{ ++ return vreinterpret_m64_s16(vabs_s16(vreinterpret_s16_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi32 ++FORCE_INLINE __m64 _mm_abs_pi32(__m64 a) ++{ ++ return vreinterpret_m64_s32(vabs_s32(vreinterpret_s32_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi8 ++FORCE_INLINE __m64 _mm_abs_pi8(__m64 a) ++{ ++ return vreinterpret_m64_s8(vabs_s8(vreinterpret_s8_m64(a))); ++} ++ ++// Concatenate 16-byte blocks in a and b into a 32-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 16 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_epi8 ++#if defined(__GNUC__) && !defined(__clang__) ++#define _mm_alignr_epi8(a, b, imm) \ ++ __extension__({ \ ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); \ ++ uint8x16_t _b = vreinterpretq_u8_m128i(b); \ ++ __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) \ ++ ret = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) \ ++ ret = _mm_srli_si128(a, imm >= 16 ? imm - 16 : 0); \ ++ else \ ++ ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(_b, _a, imm < 16 ? imm : 0)); \ ++ ret; \ ++ }) ++ ++#else ++#define _mm_alignr_epi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, uint8x16_t __a = vreinterpretq_u8_m128i(_a); \ ++ uint8x16_t __b = vreinterpretq_u8_m128i(_b); __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) ret = \ ++ vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) ret = \ ++ _mm_srli_si128(_a, imm >= 16 ? imm - 16 : 0); \ ++ else ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(__b, __a, imm < 16 ? imm : 0)); \ ++ _sse2neon_return(ret);) ++ ++#endif ++ ++// Concatenate 8-byte blocks in a and b into a 16-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 8 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_pi8 ++#define _mm_alignr_pi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m64, a, b, __m64 ret; if (_sse2neon_unlikely((imm) >= 16)) { \ ++ ret = vreinterpret_m64_s8(vdup_n_s8(0)); \ ++ } else { \ ++ uint8x8_t tmp_low; \ ++ uint8x8_t tmp_high; \ ++ if ((imm) >= 8) { \ ++ const int idx = (imm) -8; \ ++ tmp_low = vreinterpret_u8_m64(_a); \ ++ tmp_high = vdup_n_u8(0); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } else { \ ++ const int idx = (imm); \ ++ tmp_low = vreinterpret_u8_m64(_b); \ ++ tmp_high = vreinterpret_u8_m64(_a); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } \ ++ } _sse2neon_return(ret);) ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi16 ++FORCE_INLINE __m128i _mm_hadd_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16(vpaddq_s16(a, b)); ++#else ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(vget_low_s16(a), vget_high_s16(a)), ++ vpadd_s16(vget_low_s16(b), vget_high_s16(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi32 ++FORCE_INLINE __m128i _mm_hadd_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32(vpaddq_s32(a, b)); ++#else ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vpadd_s32(vget_low_s32(a), vget_high_s32(a)), ++ vpadd_s32(vget_low_s32(b), vget_high_s32(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi16 ++FORCE_INLINE __m64 _mm_hadd_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vpadd_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi32 ++FORCE_INLINE __m64 _mm_hadd_pi32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s32( ++ vpadd_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_epi16 ++FORCE_INLINE __m128i _mm_hadds_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ return vreinterpretq_s64_s16( ++ vqaddq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ // Interleave using vshrn/vmovn ++ // [a0|a2|a4|a6|b0|b2|b4|b6] ++ // [a1|a3|a5|a7|b1|b3|b5|b7] ++ int16x8_t ab0246 = vcombine_s16(vmovn_s32(a), vmovn_s32(b)); ++ int16x8_t ab1357 = vcombine_s16(vshrn_n_s32(a, 16), vshrn_n_s32(b, 16)); ++ // Saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(ab0246, ab1357)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_pi16 ++FORCE_INLINE __m64 _mm_hadds_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_s64_s16(vqadd_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t res = vuzp_s16(a, b); ++ return vreinterpret_s64_s16(vqadd_s16(res.val[0], res.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi16 ++FORCE_INLINE __m128i _mm_hsub_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi32 ++FORCE_INLINE __m128i _mm_hsub_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vuzp1q_s32(a, b), vuzp2q_s32(a, b))); ++#else ++ int32x4x2_t c = vuzpq_s32(a, b); ++ return vreinterpretq_m128i_s32(vsubq_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pi16 ++FORCE_INLINE __m64 _mm_hsub_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_hsub_pi32 ++FORCE_INLINE __m64 _mm_hsub_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s32(vsub_s32(vuzp1_s32(a, b), vuzp2_s32(a, b))); ++#else ++ int32x2x2_t c = vuzp_s32(a, b); ++ return vreinterpret_m64_s32(vsub_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_epi16 ++FORCE_INLINE __m128i _mm_hsubs_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vqsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_pi16 ++FORCE_INLINE __m64 _mm_hsubs_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vqsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vqsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, ++// and pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_epi16 ++FORCE_INLINE __m128i _mm_maddubs_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ int16x8_t tl = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_low_u8(a))), ++ vmovl_s8(vget_low_s8(b))); ++ int16x8_t th = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_high_u8(a))), ++ vmovl_s8(vget_high_s8(b))); ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vuzp1q_s16(tl, th), vuzp2q_s16(tl, th))); ++#else ++ // This would be much simpler if x86 would choose to zero extend OR sign ++ // extend, not both. This could probably be optimized better. ++ uint16x8_t a = vreinterpretq_u16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // Zero extend a ++ int16x8_t a_odd = vreinterpretq_s16_u16(vshrq_n_u16(a, 8)); ++ int16x8_t a_even = vreinterpretq_s16_u16(vbicq_u16(a, vdupq_n_u16(0xff00))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x8_t b_even = vshrq_n_s16(vshlq_n_s16(b, 8), 8); ++ int16x8_t b_odd = vshrq_n_s16(b, 8); ++ ++ // multiply ++ int16x8_t prod1 = vmulq_s16(a_even, b_even); ++ int16x8_t prod2 = vmulq_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(prod1, prod2)); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, and ++// pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_pi16 ++FORCE_INLINE __m64 _mm_maddubs_pi16(__m64 _a, __m64 _b) ++{ ++ uint16x4_t a = vreinterpret_u16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // Zero extend a ++ int16x4_t a_odd = vreinterpret_s16_u16(vshr_n_u16(a, 8)); ++ int16x4_t a_even = vreinterpret_s16_u16(vand_u16(a, vdup_n_u16(0xff))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x4_t b_even = vshr_n_s16(vshl_n_s16(b, 8), 8); ++ int16x4_t b_odd = vshr_n_s16(b, 8); ++ ++ // multiply ++ int16x4_t prod1 = vmul_s16(a_even, b_even); ++ int16x4_t prod2 = vmul_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpret_m64_s16(vqadd_s16(prod1, prod2)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Shift right by 15 bits while rounding up, and store ++// the packed 16-bit integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_epi16 ++FORCE_INLINE __m128i _mm_mulhrs_epi16(__m128i a, __m128i b) ++{ ++ // Has issues due to saturation ++ // return vreinterpretq_m128i_s16(vqrdmulhq_s16(a, b)); ++ ++ // Multiply ++ int32x4_t mul_lo = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int32x4_t mul_hi = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ // Rounding narrowing shift right ++ // narrow = (int16_t)((mul + 16384) >> 15); ++ int16x4_t narrow_lo = vrshrn_n_s32(mul_lo, 15); ++ int16x4_t narrow_hi = vrshrn_n_s32(mul_hi, 15); ++ ++ // Join together ++ return vreinterpretq_m128i_s16(vcombine_s16(narrow_lo, narrow_hi)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Truncate each intermediate integer to the 18 most ++// significant bits, round by adding 1, and store bits [16:1] to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_pi16 ++FORCE_INLINE __m64 _mm_mulhrs_pi16(__m64 a, __m64 b) ++{ ++ int32x4_t mul_extend = ++ vmull_s16((vreinterpret_s16_m64(a)), (vreinterpret_s16_m64(b))); ++ ++ // Rounding narrowing shift right ++ return vreinterpret_m64_s16(vrshrn_n_s32(mul_extend, 15)); ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi8 ++FORCE_INLINE __m128i _mm_shuffle_epi8(__m128i a, __m128i b) ++{ ++ int8x16_t tbl = vreinterpretq_s8_m128i(a); // input a ++ uint8x16_t idx = vreinterpretq_u8_m128i(b); // input b ++ uint8x16_t idx_masked = ++ vandq_u8(idx, vdupq_n_u8(0x8F)); // avoid using meaningless bits ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8(vqtbl1q_s8(tbl, idx_masked)); ++#elif defined(__GNUC__) ++ int8x16_t ret; ++ // %e and %f represent the even and odd D registers ++ // respectively. ++ __asm__ __volatile__( ++ "vtbl.8 %e[ret], {%e[tbl], %f[tbl]}, %e[idx]\n" ++ "vtbl.8 %f[ret], {%e[tbl], %f[tbl]}, %f[idx]\n" ++ : [ret] "=&w"(ret) ++ : [tbl] "w"(tbl), [idx] "w"(idx_masked)); ++ return vreinterpretq_m128i_s8(ret); ++#else ++ // use this line if testing on aarch64 ++ int8x8x2_t a_split = {vget_low_s8(tbl), vget_high_s8(tbl)}; ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vtbl2_s8(a_split, vget_low_u8(idx_masked)), ++ vtbl2_s8(a_split, vget_high_u8(idx_masked)))); ++#endif ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi8 ++FORCE_INLINE __m64 _mm_shuffle_pi8(__m64 a, __m64 b) ++{ ++ const int8x8_t controlMask = ++ vand_s8(vreinterpret_s8_m64(b), vdup_n_s8((int8_t) (0x1 << 7 | 0x07))); ++ int8x8_t res = vtbl1_s8(vreinterpret_s8_m64(a), controlMask); ++ return vreinterpret_m64_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed ++// 16-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi16 ++FORCE_INLINE __m128i _mm_sign_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x8_t ltMask = vreinterpretq_u16_s16(vshrq_n_s16(b, 15)); ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqzq_s16(b)); ++#else ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqq_s16(b, vdupq_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s16(a) equals to negative ++ // 'a') based on ltMask ++ int16x8_t masked = vbslq_s16(ltMask, vnegq_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x8_t res = vbicq_s16(masked, zeroMask); ++ return vreinterpretq_m128i_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed ++// 32-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi32 ++FORCE_INLINE __m128i _mm_sign_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x4_t ltMask = vreinterpretq_u32_s32(vshrq_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqzq_s32(b)); ++#else ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqq_s32(b, vdupq_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s32(a) equals to negative ++ // 'a') based on ltMask ++ int32x4_t masked = vbslq_s32(ltMask, vnegq_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x4_t res = vbicq_s32(masked, zeroMask); ++ return vreinterpretq_m128i_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed ++// 8-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi8 ++FORCE_INLINE __m128i _mm_sign_epi8(__m128i _a, __m128i _b) ++{ ++ int8x16_t a = vreinterpretq_s8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x16_t ltMask = vreinterpretq_u8_s8(vshrq_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqzq_s8(b)); ++#else ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqq_s8(b, vdupq_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s8(a) return negative 'a') ++ // based on ltMask ++ int8x16_t masked = vbslq_s8(ltMask, vnegq_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x16_t res = vbicq_s8(masked, zeroMask); ++ ++ return vreinterpretq_m128i_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed 16-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi16 ++FORCE_INLINE __m64 _mm_sign_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x4_t ltMask = vreinterpret_u16_s16(vshr_n_s16(b, 15)); ++ ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceqz_s16(b)); ++#else ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceq_s16(b, vdup_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s16(a) return negative 'a') ++ // based on ltMask ++ int16x4_t masked = vbsl_s16(ltMask, vneg_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x4_t res = vbic_s16(masked, zeroMask); ++ ++ return vreinterpret_m64_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed 32-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi32 ++FORCE_INLINE __m64 _mm_sign_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x2_t ltMask = vreinterpret_u32_s32(vshr_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceqz_s32(b)); ++#else ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceq_s32(b, vdup_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s32(a) return negative 'a') ++ // based on ltMask ++ int32x2_t masked = vbsl_s32(ltMask, vneg_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x2_t res = vbic_s32(masked, zeroMask); ++ ++ return vreinterpret_m64_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed 8-bit integer ++// in b is negative, and store the results in dst. Element in dst are zeroed out ++// when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi8 ++FORCE_INLINE __m64 _mm_sign_pi8(__m64 _a, __m64 _b) ++{ ++ int8x8_t a = vreinterpret_s8_m64(_a); ++ int8x8_t b = vreinterpret_s8_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x8_t ltMask = vreinterpret_u8_s8(vshr_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceqz_s8(b)); ++#else ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceq_s8(b, vdup_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s8(a) return negative 'a') ++ // based on ltMask ++ int8x8_t masked = vbsl_s8(ltMask, vneg_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x8_t res = vbic_s8(masked, zeroMask); ++ ++ return vreinterpret_m64_s8(res); ++} ++ ++/* SSE4.1 */ ++ ++// Blend packed 16-bit integers from a and b using control mask imm8, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_epi16 ++// FORCE_INLINE __m128i _mm_blend_epi16(__m128i a, __m128i b, ++// __constrange(0,255) int imm) ++#define _mm_blend_epi16(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, \ ++ const uint16_t _mask[8] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 1)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 2)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 3)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 4)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 5)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 6)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 7)) ? (uint16_t) -1 : 0x0); \ ++ uint16x8_t _mask_vec = vld1q_u16(_mask); \ ++ uint16x8_t __a = vreinterpretq_u16_m128i(_a); \ ++ uint16x8_t __b = vreinterpretq_u16_m128i(_b); _sse2neon_return( \ ++ vreinterpretq_m128i_u16(vbslq_u16(_mask_vec, __b, __a)));) ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using control mask imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_pd ++#define _mm_blend_pd(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128d, a, b, \ ++ const uint64_t _mask[2] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? ~UINT64_C(0) : UINT64_C(0), \ ++ ((imm) & (1 << 1)) ? ~UINT64_C(0) : UINT64_C(0)); \ ++ uint64x2_t _mask_vec = vld1q_u64(_mask); \ ++ uint64x2_t __a = vreinterpretq_u64_m128d(_a); \ ++ uint64x2_t __b = vreinterpretq_u64_m128d(_b); _sse2neon_return( \ ++ vreinterpretq_m128d_u64(vbslq_u64(_mask_vec, __b, __a)));) ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_ps ++FORCE_INLINE __m128 _mm_blend_ps(__m128 _a, __m128 _b, const char imm8) ++{ ++ const uint32_t ALIGN_STRUCT(16) ++ data[4] = {((imm8) & (1 << 0)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0}; ++ uint32x4_t mask = vld1q_u32(data); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Blend packed 8-bit integers from a and b using mask, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_epi8 ++FORCE_INLINE __m128i _mm_blendv_epi8(__m128i _a, __m128i _b, __m128i _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint8x16_t mask = ++ vreinterpretq_u8_s8(vshrq_n_s8(vreinterpretq_s8_m128i(_mask), 7)); ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ uint8x16_t b = vreinterpretq_u8_m128i(_b); ++ return vreinterpretq_m128i_u8(vbslq_u8(mask, b, a)); ++} ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_pd ++FORCE_INLINE __m128d _mm_blendv_pd(__m128d _a, __m128d _b, __m128d _mask) ++{ ++ uint64x2_t mask = ++ vreinterpretq_u64_s64(vshrq_n_s64(vreinterpretq_s64_m128d(_mask), 63)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64(vbslq_f64(mask, b, a)); ++#else ++ uint64x2_t a = vreinterpretq_u64_m128d(_a); ++ uint64x2_t b = vreinterpretq_u64_m128d(_b); ++ return vreinterpretq_m128d_u64(vbslq_u64(mask, b, a)); ++#endif ++} ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_ps ++FORCE_INLINE __m128 _mm_blendv_ps(__m128 _a, __m128 _b, __m128 _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint32x4_t mask = ++ vreinterpretq_u32_s32(vshrq_n_s32(vreinterpretq_s32_m128(_mask), 31)); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a up ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_pd ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndpq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(ceil(f[1]), ceil(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a up to ++// an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ps ++FORCE_INLINE __m128 _mm_ceil_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndpq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ceilf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b up to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_sd ++FORCE_INLINE __m128d _mm_ceil_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_ceil_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b up to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ss ++FORCE_INLINE __m128 _mm_ceil_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_ceil_ps(b)); ++} ++ ++// Compare packed 64-bit integers in a and b for equality, and store the results ++// in dst ++FORCE_INLINE __m128i _mm_cmpeq_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vceqq_u64(vreinterpretq_u64_m128i(a), vreinterpretq_u64_m128i(b))); ++#else ++ // ARMv7 lacks vceqq_u64 ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128i_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Sign extend packed 16-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi32 ++FORCE_INLINE __m128i _mm_cvtepi16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vmovl_s16(vget_low_s16(vreinterpretq_s16_m128i(a)))); ++} ++ ++// Sign extend packed 16-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi64 ++FORCE_INLINE __m128i _mm_cvtepi16_epi64(__m128i a) ++{ ++ int16x8_t s16x8 = vreinterpretq_s16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Sign extend packed 32-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_epi64 ++FORCE_INLINE __m128i _mm_cvtepi32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a)))); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 16-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi16 ++FORCE_INLINE __m128i _mm_cvtepi8_epi16(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ return vreinterpretq_m128i_s16(s16x8); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi32 ++FORCE_INLINE __m128i _mm_cvtepi8_epi32(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_s32(s32x4); ++} ++ ++// Sign extend packed 8-bit integers in the low 8 bytes of a to packed 64-bit ++// integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi64 ++FORCE_INLINE __m128i _mm_cvtepi8_epi64(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi32 ++FORCE_INLINE __m128i _mm_cvtepu16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_u32( ++ vmovl_u16(vget_low_u16(vreinterpretq_u16_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi64 ++FORCE_INLINE __m128i _mm_cvtepu16_epi64(__m128i a) ++{ ++ uint16x8_t u16x8 = vreinterpretq_u16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Zero extend packed unsigned 32-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu32_epi64 ++FORCE_INLINE __m128i _mm_cvtepu32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_u64( ++ vmovl_u32(vget_low_u32(vreinterpretq_u32_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 16-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi16 ++FORCE_INLINE __m128i _mm_cvtepu8_epi16(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx HGFE DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0H0G 0F0E 0D0C 0B0A */ ++ return vreinterpretq_m128i_u16(u16x8); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi32 ++FORCE_INLINE __m128i _mm_cvtepu8_epi32(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_u32(u32x4); ++} ++ ++// Zero extend packed unsigned 8-bit integers in the low 8 bytes of a to packed ++// 64-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi64 ++FORCE_INLINE __m128i _mm_cvtepu8_epi64(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Conditionally multiply the packed double-precision (64-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, and ++// conditionally store the sum in dst using the low 4 bits of imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_pd ++FORCE_INLINE __m128d _mm_dp_pd(__m128d a, __m128d b, const int imm) ++{ ++ // Generate mask value from constant immediate bit value ++ const int64_t bit0Mask = imm & 0x01 ? UINT64_MAX : 0; ++ const int64_t bit1Mask = imm & 0x02 ? UINT64_MAX : 0; ++#if !SSE2NEON_PRECISE_DP ++ const int64_t bit4Mask = imm & 0x10 ? UINT64_MAX : 0; ++ const int64_t bit5Mask = imm & 0x20 ? UINT64_MAX : 0; ++#endif ++ // Conditional multiplication ++#if !SSE2NEON_PRECISE_DP ++ __m128d mul = _mm_mul_pd(a, b); ++ const __m128d mulMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit5Mask, bit4Mask)); ++ __m128d tmp = _mm_and_pd(mul, mulMask); ++#else ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double d0 = (imm & 0x10) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 0) ++ : 0; ++ double d1 = (imm & 0x20) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 1) ++ : 0; ++#else ++ double d0 = (imm & 0x10) ? ((double *) &a)[0] * ((double *) &b)[0] : 0; ++ double d1 = (imm & 0x20) ? ((double *) &a)[1] * ((double *) &b)[1] : 0; ++#endif ++ __m128d tmp = _mm_set_pd(d1, d0); ++#endif ++ // Sum the products ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double sum = vpaddd_f64(vreinterpretq_f64_m128d(tmp)); ++#else ++ double sum = *((double *) &tmp) + *(((double *) &tmp) + 1); ++#endif ++ // Conditionally store the sum ++ const __m128d sumMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit1Mask, bit0Mask)); ++ __m128d res = _mm_and_pd(_mm_set_pd1(sum), sumMask); ++ return res; ++} ++ ++// Conditionally multiply the packed single-precision (32-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, ++// and conditionally store the sum in dst using the low 4 bits of imm. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_ps ++FORCE_INLINE __m128 _mm_dp_ps(__m128 a, __m128 b, const int imm) ++{ ++ float32x4_t elementwise_prod = _mm_mul_ps(a, b); ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ /* shortcuts */ ++ if (imm == 0xFF) { ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++ ++ if ((imm & 0x0F) == 0x0F) { ++ if (!(imm & (1 << 4))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 0); ++ if (!(imm & (1 << 5))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 1); ++ if (!(imm & (1 << 6))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 2); ++ if (!(imm & (1 << 7))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 3); ++ ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++#endif ++ ++ float s = 0.0f; ++ ++ if (imm & (1 << 4)) ++ s += vgetq_lane_f32(elementwise_prod, 0); ++ if (imm & (1 << 5)) ++ s += vgetq_lane_f32(elementwise_prod, 1); ++ if (imm & (1 << 6)) ++ s += vgetq_lane_f32(elementwise_prod, 2); ++ if (imm & (1 << 7)) ++ s += vgetq_lane_f32(elementwise_prod, 3); ++ ++ const float32_t res[4] = { ++ (imm & 0x1) ? s : 0.0f, ++ (imm & 0x2) ? s : 0.0f, ++ (imm & 0x4) ? s : 0.0f, ++ (imm & 0x8) ? s : 0.0f, ++ }; ++ return vreinterpretq_m128_f32(vld1q_f32(res)); ++} ++ ++// Extract a 32-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi32 ++// FORCE_INLINE int _mm_extract_epi32(__m128i a, __constrange(0,4) int imm) ++#define _mm_extract_epi32(a, imm) \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)) ++ ++// Extract a 64-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi64 ++// FORCE_INLINE __int64 _mm_extract_epi64(__m128i a, __constrange(0,2) int imm) ++#define _mm_extract_epi64(a, imm) \ ++ vgetq_lane_s64(vreinterpretq_s64_m128i(a), (imm)) ++ ++// Extract an 8-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. FORCE_INLINE int _mm_extract_epi8(__m128i a, ++// __constrange(0,16) int imm) ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi8 ++#define _mm_extract_epi8(a, imm) vgetq_lane_u8(vreinterpretq_u8_m128i(a), (imm)) ++ ++// Extracts the selected single-precision (32-bit) floating-point from a. ++// FORCE_INLINE int _mm_extract_ps(__m128 a, __constrange(0,4) int imm) ++#define _mm_extract_ps(a, imm) vgetq_lane_s32(vreinterpretq_s32_m128(a), (imm)) ++ ++// Round the packed double-precision (64-bit) floating-point elements in a down ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_pd ++FORCE_INLINE __m128d _mm_floor_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndmq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(floor(f[1]), floor(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a down ++// to an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ps ++FORCE_INLINE __m128 _mm_floor_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndmq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(floorf(f[3]), floorf(f[2]), floorf(f[1]), floorf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b down to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_sd ++FORCE_INLINE __m128d _mm_floor_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_floor_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b down to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ss ++FORCE_INLINE __m128 _mm_floor_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_floor_ps(b)); ++} ++ ++// Copy a to dst, and insert the 32-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi32 ++// FORCE_INLINE __m128i _mm_insert_epi32(__m128i a, int b, ++// __constrange(0,4) int imm) ++#define _mm_insert_epi32(a, b, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vsetq_lane_s32((b), vreinterpretq_s32_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the 64-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi64 ++// FORCE_INLINE __m128i _mm_insert_epi64(__m128i a, __int64 b, ++// __constrange(0,2) int imm) ++#define _mm_insert_epi64(a, b, imm) \ ++ vreinterpretq_m128i_s64( \ ++ vsetq_lane_s64((b), vreinterpretq_s64_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the lower 8-bit integer from i into dst at the ++// location specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi8 ++// FORCE_INLINE __m128i _mm_insert_epi8(__m128i a, int b, ++// __constrange(0,16) int imm) ++#define _mm_insert_epi8(a, b, imm) \ ++ vreinterpretq_m128i_s8(vsetq_lane_s8((b), vreinterpretq_s8_m128i(a), (imm))) ++ ++// Copy a to tmp, then insert a single-precision (32-bit) floating-point ++// element from b into tmp using the control in imm8. Store tmp to dst using ++// the mask in imm8 (elements are zeroed out when the corresponding bit is set). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=insert_ps ++#define _mm_insert_ps(a, b, imm8) \ ++ _sse2neon_define2( \ ++ __m128, a, b, \ ++ float32x4_t tmp1 = \ ++ vsetq_lane_f32(vgetq_lane_f32(_b, (imm8 >> 6) & 0x3), \ ++ vreinterpretq_f32_m128(_a), 0); \ ++ float32x4_t tmp2 = \ ++ vsetq_lane_f32(vgetq_lane_f32(tmp1, 0), \ ++ vreinterpretq_f32_m128(_a), ((imm8 >> 4) & 0x3)); \ ++ const uint32_t data[4] = \ ++ _sse2neon_init(((imm8) & (1 << 0)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0); \ ++ uint32x4_t mask = vld1q_u32(data); \ ++ float32x4_t all_zeros = vdupq_n_f32(0); \ ++ \ ++ _sse2neon_return(vreinterpretq_m128_f32( \ ++ vbslq_f32(mask, all_zeros, vreinterpretq_f32_m128(tmp2))));) ++ ++// Compare packed signed 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi32 ++FORCE_INLINE __m128i _mm_max_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmaxq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi8 ++FORCE_INLINE __m128i _mm_max_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vmaxq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu16 ++FORCE_INLINE __m128i _mm_max_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vmaxq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_max_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vmaxq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi32 ++FORCE_INLINE __m128i _mm_min_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vminq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi8 ++FORCE_INLINE __m128i _mm_min_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vminq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu16 ++FORCE_INLINE __m128i _mm_min_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vminq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_min_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vminq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Horizontally compute the minimum amongst the packed unsigned 16-bit integers ++// in a, store the minimum and index in dst, and zero the remaining bits in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_minpos_epu16 ++FORCE_INLINE __m128i _mm_minpos_epu16(__m128i a) ++{ ++ __m128i dst; ++ uint16_t min, idx = 0; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Find the minimum value ++ min = vminvq_u16(vreinterpretq_u16_m128i(a)); ++ ++ // Get the index of the minimum value ++ static const uint16_t idxv[] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint16x8_t minv = vdupq_n_u16(min); ++ uint16x8_t cmeq = vceqq_u16(minv, vreinterpretq_u16_m128i(a)); ++ idx = vminvq_u16(vornq_u16(vld1q_u16(idxv), cmeq)); ++#else ++ // Find the minimum value ++ __m64 tmp; ++ tmp = vreinterpret_m64_u16( ++ vmin_u16(vget_low_u16(vreinterpretq_u16_m128i(a)), ++ vget_high_u16(vreinterpretq_u16_m128i(a)))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ min = vget_lane_u16(vreinterpret_u16_m64(tmp), 0); ++ // Get the index of the minimum value ++ int i; ++ for (i = 0; i < 8; i++) { ++ if (min == vgetq_lane_u16(vreinterpretq_u16_m128i(a), 0)) { ++ idx = (uint16_t) i; ++ break; ++ } ++ a = _mm_srli_si128(a, 2); ++ } ++#endif ++ // Generate result ++ dst = _mm_setzero_si128(); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(min, vreinterpretq_u16_m128i(dst), 0)); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(idx, vreinterpretq_u16_m128i(dst), 1)); ++ return dst; ++} ++ ++// Compute the sum of absolute differences (SADs) of quadruplets of unsigned ++// 8-bit integers in a compared to those in b, and store the 16-bit results in ++// dst. Eight SADs are performed using one quadruplet from b and eight ++// quadruplets from a. One quadruplet is selected from b starting at on the ++// offset specified in imm8. Eight quadruplets are formed from sequential 8-bit ++// integers selected from a starting at the offset specified in imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mpsadbw_epu8 ++FORCE_INLINE __m128i _mm_mpsadbw_epu8(__m128i a, __m128i b, const int imm) ++{ ++ uint8x16_t _a, _b; ++ ++ switch (imm & 0x4) { ++ case 0: ++ // do nothing ++ _a = vreinterpretq_u8_m128i(a); ++ break; ++ case 4: ++ _a = vreinterpretq_u8_u32(vextq_u32(vreinterpretq_u32_m128i(a), ++ vreinterpretq_u32_m128i(a), 1)); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ switch (imm & 0x3) { ++ case 0: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 0))); ++ break; ++ case 1: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 1))); ++ break; ++ case 2: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 2))); ++ break; ++ case 3: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 3))); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ int16x8_t c04, c15, c26, c37; ++ uint8x8_t low_b = vget_low_u8(_b); ++ c04 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a), low_b)); ++ uint8x16_t _a_1 = vextq_u8(_a, _a, 1); ++ c15 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_1), low_b)); ++ uint8x16_t _a_2 = vextq_u8(_a, _a, 2); ++ c26 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_2), low_b)); ++ uint8x16_t _a_3 = vextq_u8(_a, _a, 3); ++ c37 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_3), low_b)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // |0|4|2|6| ++ c04 = vpaddq_s16(c04, c26); ++ // |1|5|3|7| ++ c15 = vpaddq_s16(c15, c37); ++ ++ int32x4_t trn1_c = ++ vtrn1q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ int32x4_t trn2_c = ++ vtrn2q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ return vreinterpretq_m128i_s16(vpaddq_s16(vreinterpretq_s16_s32(trn1_c), ++ vreinterpretq_s16_s32(trn2_c))); ++#else ++ int16x4_t c01, c23, c45, c67; ++ c01 = vpadd_s16(vget_low_s16(c04), vget_low_s16(c15)); ++ c23 = vpadd_s16(vget_low_s16(c26), vget_low_s16(c37)); ++ c45 = vpadd_s16(vget_high_s16(c04), vget_high_s16(c15)); ++ c67 = vpadd_s16(vget_high_s16(c26), vget_high_s16(c37)); ++ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(c01, c23), vpadd_s16(c45, c67))); ++#endif ++} ++ ++// Multiply the low signed 32-bit integers from each packed 64-bit element in ++// a and b, and store the signed 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epi32 ++FORCE_INLINE __m128i _mm_mul_epi32(__m128i a, __m128i b) ++{ ++ // vmull_s32 upcasts instead of masking, so we downcast. ++ int32x2_t a_lo = vmovn_s64(vreinterpretq_s64_m128i(a)); ++ int32x2_t b_lo = vmovn_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vmull_s32(a_lo, b_lo)); ++} ++ ++// Multiply the packed 32-bit integers in a and b, producing intermediate 64-bit ++// integers, and store the low 32 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi32 ++FORCE_INLINE __m128i _mm_mullo_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmulq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi32 ++FORCE_INLINE __m128i _mm_packus_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcombine_u16(vqmovun_s32(vreinterpretq_s32_m128i(a)), ++ vqmovun_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_pd ++FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d a, int rounding) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndnq_f64(vreinterpretq_f64_m128d(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_pd(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_pd(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndq_f64(vreinterpretq_f64_m128d(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128d_f64(vrndiq_f64(vreinterpretq_f64_m128d(a))); ++ } ++#else ++ double *v_double = (double *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ double res[2], tmp; ++ for (int i = 0; i < 2; i++) { ++ tmp = (v_double[i] < 0) ? -v_double[i] : v_double[i]; ++ double roundDown = floor(tmp); // Round down value ++ double roundUp = ceil(tmp); // Round up value ++ double diffDown = tmp - roundDown; ++ double diffUp = roundUp - tmp; ++ if (diffDown < diffUp) { ++ /* If it's closer to the round down value, then use it */ ++ res[i] = roundDown; ++ } else if (diffDown > diffUp) { ++ /* If it's closer to the round up value, then use it */ ++ res[i] = roundUp; ++ } else { ++ /* If it's equidistant between round up and round down value, ++ * pick the one which is an even number */ ++ double half = roundDown / 2; ++ if (half != floor(half)) { ++ /* If the round down value is odd, return the round up value ++ */ ++ res[i] = roundUp; ++ } else { ++ /* If the round up value is odd, return the round down value ++ */ ++ res[i] = roundDown; ++ } ++ } ++ res[i] = (v_double[i] < 0) ? -res[i] : res[i]; ++ } ++ return _mm_set_pd(res[1], res[0]); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_pd(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_pd(a); ++ } ++ return _mm_set_pd(v_double[1] > 0 ? floor(v_double[1]) : ceil(v_double[1]), ++ v_double[0] > 0 ? floor(v_double[0]) : ceil(v_double[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed single-precision ++// floating-point elements in dst. ++// software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_round_ps ++FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128 a, int rounding) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndnq_f32(vreinterpretq_f32_m128(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_ps(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_ps(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndq_f32(vreinterpretq_f32_m128(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128_f32(vrndiq_f32(vreinterpretq_f32_m128(a))); ++ } ++#else ++ float *v_float = (float *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vbslq_s32(is_delta_half, r_even, r_normal))); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_ps(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_ps(a); ++ } ++ return _mm_set_ps(v_float[3] > 0 ? floorf(v_float[3]) : ceilf(v_float[3]), ++ v_float[2] > 0 ? floorf(v_float[2]) : ceilf(v_float[2]), ++ v_float[1] > 0 ? floorf(v_float[1]) : ceilf(v_float[1]), ++ v_float[0] > 0 ? floorf(v_float[0]) : ceilf(v_float[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b using ++// the rounding parameter, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_sd ++FORCE_INLINE __m128d _mm_round_sd(__m128d a, __m128d b, int rounding) ++{ ++ return _mm_move_sd(a, _mm_round_pd(b, rounding)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b using ++// the rounding parameter, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. Rounding is done according to the ++// rounding[3:0] parameter, which can be one of: ++// (_MM_FROUND_TO_NEAREST_INT |_MM_FROUND_NO_EXC) // round to nearest, and ++// suppress exceptions ++// (_MM_FROUND_TO_NEG_INF |_MM_FROUND_NO_EXC) // round down, and ++// suppress exceptions ++// (_MM_FROUND_TO_POS_INF |_MM_FROUND_NO_EXC) // round up, and suppress ++// exceptions ++// (_MM_FROUND_TO_ZERO |_MM_FROUND_NO_EXC) // truncate, and suppress ++// exceptions _MM_FROUND_CUR_DIRECTION // use MXCSR.RC; see ++// _MM_SET_ROUNDING_MODE ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_ss ++FORCE_INLINE __m128 _mm_round_ss(__m128 a, __m128 b, int rounding) ++{ ++ return _mm_move_ss(a, _mm_round_ps(b, rounding)); ++} ++ ++// Load 128-bits of integer data from memory into dst using a non-temporal ++// memory hint. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_load_si128 ++FORCE_INLINE __m128i _mm_stream_load_si128(__m128i *p) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ return __builtin_nontemporal_load(p); ++#else ++ return vreinterpretq_m128i_s64(vld1q_s64((int64_t *) p)); ++#endif ++} ++ ++// Compute the bitwise NOT of a and then AND with a 128-bit vector containing ++// all 1's, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_ones ++FORCE_INLINE int _mm_test_all_ones(__m128i a) ++{ ++ return (uint64_t) (vgetq_lane_s64(a, 0) & vgetq_lane_s64(a, 1)) == ++ ~(uint64_t) 0; ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_zeros ++FORCE_INLINE int _mm_test_all_zeros(__m128i a, __m128i mask) ++{ ++ int64x2_t a_and_mask = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(mask)); ++ return !(vgetq_lane_s64(a_and_mask, 0) | vgetq_lane_s64(a_and_mask, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute ++// the bitwise NOT of a and then AND with mask, and set CF to 1 if the result is ++// zero, otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_test_mix_ones_zero ++// Note: Argument names may be wrong in the Intel intrinsics guide. ++FORCE_INLINE int _mm_test_mix_ones_zeros(__m128i a, __m128i mask) ++{ ++ uint64x2_t v = vreinterpretq_u64_m128i(a); ++ uint64x2_t m = vreinterpretq_u64_m128i(mask); ++ ++ // find ones (set-bits) and zeros (clear-bits) under clip mask ++ uint64x2_t ones = vandq_u64(m, v); ++ uint64x2_t zeros = vbicq_u64(m, v); ++ ++ // If both 128-bit variables are populated (non-zero) then return 1. ++ // For comparison purposes, first compact each var down to 32-bits. ++ uint32x2_t reduced = vpmax_u32(vqmovn_u64(ones), vqmovn_u64(zeros)); ++ ++ // if folding minimum is non-zero then both vars must be non-zero ++ return (vget_lane_u32(vpmin_u32(reduced, reduced), 0) != 0); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the CF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testc_si128 ++FORCE_INLINE int _mm_testc_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vbicq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testnzc_si128 ++#define _mm_testnzc_si128(a, b) _mm_test_mix_ones_zeros(a, b) ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the ZF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testz_si128 ++FORCE_INLINE int _mm_testz_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++/* SSE4.2 */ ++ ++static const uint16_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask16b[8] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++static const uint8_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask8b[16] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++ ++/* specify the source data format */ ++#define _SIDD_UBYTE_OPS 0x00 /* unsigned 8-bit characters */ ++#define _SIDD_UWORD_OPS 0x01 /* unsigned 16-bit characters */ ++#define _SIDD_SBYTE_OPS 0x02 /* signed 8-bit characters */ ++#define _SIDD_SWORD_OPS 0x03 /* signed 16-bit characters */ ++ ++/* specify the comparison operation */ ++#define _SIDD_CMP_EQUAL_ANY 0x00 /* compare equal any: strchr */ ++#define _SIDD_CMP_RANGES 0x04 /* compare ranges */ ++#define _SIDD_CMP_EQUAL_EACH 0x08 /* compare equal each: strcmp */ ++#define _SIDD_CMP_EQUAL_ORDERED 0x0C /* compare equal ordered */ ++ ++/* specify the polarity */ ++#define _SIDD_POSITIVE_POLARITY 0x00 ++#define _SIDD_MASKED_POSITIVE_POLARITY 0x20 ++#define _SIDD_NEGATIVE_POLARITY 0x10 /* negate results */ ++#define _SIDD_MASKED_NEGATIVE_POLARITY \ ++ 0x30 /* negate results only before end of string */ ++ ++/* specify the output selection in _mm_cmpXstri */ ++#define _SIDD_LEAST_SIGNIFICANT 0x00 ++#define _SIDD_MOST_SIGNIFICANT 0x40 ++ ++/* specify the output selection in _mm_cmpXstrm */ ++#define _SIDD_BIT_MASK 0x00 ++#define _SIDD_UNIT_MASK 0x40 ++ ++/* Pattern Matching for C macros. ++ * https://github.com/pfultz2/Cloak/wiki/C-Preprocessor-tricks,-tips,-and-idioms ++ */ ++ ++/* catenate */ ++#define SSE2NEON_PRIMITIVE_CAT(a, ...) a##__VA_ARGS__ ++#define SSE2NEON_CAT(a, b) SSE2NEON_PRIMITIVE_CAT(a, b) ++ ++#define SSE2NEON_IIF(c) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_IIF_, c) ++/* run the 2nd parameter */ ++#define SSE2NEON_IIF_0(t, ...) __VA_ARGS__ ++/* run the 1st parameter */ ++#define SSE2NEON_IIF_1(t, ...) t ++ ++#define SSE2NEON_COMPL(b) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_COMPL_, b) ++#define SSE2NEON_COMPL_0 1 ++#define SSE2NEON_COMPL_1 0 ++ ++#define SSE2NEON_DEC(x) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_DEC_, x) ++#define SSE2NEON_DEC_1 0 ++#define SSE2NEON_DEC_2 1 ++#define SSE2NEON_DEC_3 2 ++#define SSE2NEON_DEC_4 3 ++#define SSE2NEON_DEC_5 4 ++#define SSE2NEON_DEC_6 5 ++#define SSE2NEON_DEC_7 6 ++#define SSE2NEON_DEC_8 7 ++#define SSE2NEON_DEC_9 8 ++#define SSE2NEON_DEC_10 9 ++#define SSE2NEON_DEC_11 10 ++#define SSE2NEON_DEC_12 11 ++#define SSE2NEON_DEC_13 12 ++#define SSE2NEON_DEC_14 13 ++#define SSE2NEON_DEC_15 14 ++#define SSE2NEON_DEC_16 15 ++ ++/* detection */ ++#define SSE2NEON_CHECK_N(x, n, ...) n ++#define SSE2NEON_CHECK(...) SSE2NEON_CHECK_N(__VA_ARGS__, 0, ) ++#define SSE2NEON_PROBE(x) x, 1, ++ ++#define SSE2NEON_NOT(x) SSE2NEON_CHECK(SSE2NEON_PRIMITIVE_CAT(SSE2NEON_NOT_, x)) ++#define SSE2NEON_NOT_0 SSE2NEON_PROBE(~) ++ ++#define SSE2NEON_BOOL(x) SSE2NEON_COMPL(SSE2NEON_NOT(x)) ++#define SSE2NEON_IF(c) SSE2NEON_IIF(SSE2NEON_BOOL(c)) ++ ++#define SSE2NEON_EAT(...) ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++#define SSE2NEON_WHEN(c) SSE2NEON_IF(c)(SSE2NEON_EXPAND, SSE2NEON_EAT) ++ ++/* recursion */ ++/* deferred expression */ ++#define SSE2NEON_EMPTY() ++#define SSE2NEON_DEFER(id) id SSE2NEON_EMPTY() ++#define SSE2NEON_OBSTRUCT(...) __VA_ARGS__ SSE2NEON_DEFER(SSE2NEON_EMPTY)() ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++ ++#define SSE2NEON_EVAL(...) \ ++ SSE2NEON_EVAL1(SSE2NEON_EVAL1(SSE2NEON_EVAL1(__VA_ARGS__))) ++#define SSE2NEON_EVAL1(...) \ ++ SSE2NEON_EVAL2(SSE2NEON_EVAL2(SSE2NEON_EVAL2(__VA_ARGS__))) ++#define SSE2NEON_EVAL2(...) \ ++ SSE2NEON_EVAL3(SSE2NEON_EVAL3(SSE2NEON_EVAL3(__VA_ARGS__))) ++#define SSE2NEON_EVAL3(...) __VA_ARGS__ ++ ++#define SSE2NEON_REPEAT(count, macro, ...) \ ++ SSE2NEON_WHEN(count) \ ++ (SSE2NEON_OBSTRUCT(SSE2NEON_REPEAT_INDIRECT)()( \ ++ SSE2NEON_DEC(count), macro, \ ++ __VA_ARGS__) SSE2NEON_OBSTRUCT(macro)(SSE2NEON_DEC(count), \ ++ __VA_ARGS__)) ++#define SSE2NEON_REPEAT_INDIRECT() SSE2NEON_REPEAT ++ ++#define SSE2NEON_SIZE_OF_byte 8 ++#define SSE2NEON_NUMBER_OF_LANES_byte 16 ++#define SSE2NEON_SIZE_OF_word 16 ++#define SSE2NEON_NUMBER_OF_LANES_word 8 ++ ++#define SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE(i, type) \ ++ mtx[i] = vreinterpretq_m128i_##type(vceqq_##type( \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)), \ ++ vreinterpretq_##type##_m128i(a))); ++ ++#define SSE2NEON_FILL_LANE(i, type) \ ++ vec_b[i] = \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)); ++ ++#define PCMPSTR_RANGES(a, b, mtx, data_type_prefix, type_prefix, size, \ ++ number_of_lanes, byte_or_word) \ ++ do { \ ++ SSE2NEON_CAT( \ ++ data_type_prefix, \ ++ SSE2NEON_CAT(size, \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(number_of_lanes, _t)))) \ ++ vec_b[number_of_lanes]; \ ++ __m128i mask = SSE2NEON_IIF(byte_or_word)( \ ++ vreinterpretq_m128i_u16(vdupq_n_u16(0xff)), \ ++ vreinterpretq_m128i_u32(vdupq_n_u32(0xffff))); \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, SSE2NEON_FILL_LANE, \ ++ SSE2NEON_CAT(type_prefix, size))) \ ++ for (int i = 0; i < number_of_lanes; i++) { \ ++ mtx[i] = SSE2NEON_CAT(vreinterpretq_m128i_u, \ ++ size)(SSE2NEON_CAT(vbslq_u, size)( \ ++ SSE2NEON_CAT(vreinterpretq_u, \ ++ SSE2NEON_CAT(size, _m128i))(mask), \ ++ SSE2NEON_CAT(vcgeq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))), \ ++ SSE2NEON_CAT(vcleq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))))); \ ++ } \ ++ } while (0) ++ ++#define PCMPSTR_EQ(a, b, mtx, size, number_of_lanes) \ ++ do { \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, \ ++ SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE, \ ++ SSE2NEON_CAT(u, size))) \ ++ } while (0) ++ ++#define SSE2NEON_CMP_EQUAL_ANY_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_any(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_any_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_RANGES_IMPL(type, data_type, us, byte_or_word) \ ++ static int _sse2neon_cmp_##us##type##_ranges(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_RANGES( \ ++ a, b, mtx, data_type, us, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), byte_or_word); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_ranges_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_EQUAL_ORDERED_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_ordered(__m128i a, int la, \ ++ __m128i b, int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_ordered_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type))))( \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), la, lb, mtx); \ ++ } ++ ++static int _sse2neon_aggregate_equal_any_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ int tmp = _sse2neon_vaddvq_u8(vreinterpretq_u8_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_equal_any_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ int tmp = _sse2neon_vaddvq_u16(vreinterpretq_u16_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ANY(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ANY(SSE2NEON_CMP_EQUAL_ANY_) ++ ++static int _sse2neon_aggregate_ranges_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ __m128i tmp = vreinterpretq_m128i_u32( ++ vshrq_n_u32(vreinterpretq_u32_m128i(mtx[j]), 16)); ++ uint32x4_t vec_res = vandq_u32(vreinterpretq_u32_m128i(mtx[j]), ++ vreinterpretq_u32_m128i(tmp)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int t = vaddvq_u32(vec_res) ? 1 : 0; ++#else ++ uint64x2_t sumh = vpaddlq_u32(vec_res); ++ int t = vgetq_lane_u64(sumh, 0) + vgetq_lane_u64(sumh, 1); ++#endif ++ res |= (t << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_ranges_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ __m128i tmp = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 8)); ++ uint16x8_t vec_res = vandq_u16(vreinterpretq_u16_m128i(mtx[j]), ++ vreinterpretq_u16_m128i(tmp)); ++ int t = _sse2neon_vaddvq_u16(vec_res) ? 1 : 0; ++ res |= (t << j); ++ } ++ return res; ++} ++ ++#define SSE2NEON_CMP_RANGES_IS_BYTE 1 ++#define SSE2NEON_CMP_RANGES_IS_WORD 0 ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_RANGES(prefix) \ ++ prefix##IMPL(byte, uint, u, prefix##IS_BYTE) \ ++ prefix##IMPL(byte, int, s, prefix##IS_BYTE) \ ++ prefix##IMPL(word, uint, u, prefix##IS_WORD) \ ++ prefix##IMPL(word, int, s, prefix##IS_WORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_RANGES(SSE2NEON_CMP_RANGES_) ++ ++#undef SSE2NEON_CMP_RANGES_IS_BYTE ++#undef SSE2NEON_CMP_RANGES_IS_WORD ++ ++static int _sse2neon_cmp_byte_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint8x16_t mtx = ++ vceqq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x10000 - (1 << la); ++ int tb = 0x10000 - (1 << lb); ++ uint8x8_t vec_mask, vec0_lo, vec0_hi, vec1_lo, vec1_hi; ++ uint8x8_t tmp_lo, tmp_hi, res_lo, res_hi; ++ vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ vec0_lo = vtst_u8(vdup_n_u8(m0), vec_mask); ++ vec0_hi = vtst_u8(vdup_n_u8(m0 >> 8), vec_mask); ++ vec1_lo = vtst_u8(vdup_n_u8(m1), vec_mask); ++ vec1_hi = vtst_u8(vdup_n_u8(m1 >> 8), vec_mask); ++ tmp_lo = vtst_u8(vdup_n_u8(tb), vec_mask); ++ tmp_hi = vtst_u8(vdup_n_u8(tb >> 8), vec_mask); ++ ++ res_lo = vbsl_u8(vec0_lo, vdup_n_u8(0), vget_low_u8(mtx)); ++ res_hi = vbsl_u8(vec0_hi, vdup_n_u8(0), vget_high_u8(mtx)); ++ res_lo = vbsl_u8(vec1_lo, tmp_lo, res_lo); ++ res_hi = vbsl_u8(vec1_hi, tmp_hi, res_hi); ++ res_lo = vand_u8(res_lo, vec_mask); ++ res_hi = vand_u8(res_hi, vec_mask); ++ ++ int res = _sse2neon_vaddv_u8(res_lo) + (_sse2neon_vaddv_u8(res_hi) << 8); ++ return res; ++} ++ ++static int _sse2neon_cmp_word_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint16x8_t mtx = ++ vceqq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x100 - (1 << la); ++ int tb = 0x100 - (1 << lb); ++ uint16x8_t vec_mask = vld1q_u16(_sse2neon_cmpestr_mask16b); ++ uint16x8_t vec0 = vtstq_u16(vdupq_n_u16(m0), vec_mask); ++ uint16x8_t vec1 = vtstq_u16(vdupq_n_u16(m1), vec_mask); ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(tb), vec_mask); ++ mtx = vbslq_u16(vec0, vdupq_n_u16(0), mtx); ++ mtx = vbslq_u16(vec1, tmp, mtx); ++ mtx = vandq_u16(mtx, vec_mask); ++ return _sse2neon_vaddvq_u16(mtx); ++} ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE 1 ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD 0 ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IMPL(size, number_of_lanes, data_type) \ ++ static int _sse2neon_aggregate_equal_ordered_##size##x##number_of_lanes( \ ++ int bound, int la, int lb, __m128i mtx[16]) \ ++ { \ ++ int res = 0; \ ++ int m1 = SSE2NEON_IIF(data_type)(0x10000, 0x100) - (1 << la); \ ++ uint##size##x8_t vec_mask = SSE2NEON_IIF(data_type)( \ ++ vld1_u##size(_sse2neon_cmpestr_mask##size##b), \ ++ vld1q_u##size(_sse2neon_cmpestr_mask##size##b)); \ ++ uint##size##x##number_of_lanes##_t vec1 = SSE2NEON_IIF(data_type)( \ ++ vcombine_u##size(vtst_u##size(vdup_n_u##size(m1), vec_mask), \ ++ vtst_u##size(vdup_n_u##size(m1 >> 8), vec_mask)), \ ++ vtstq_u##size(vdupq_n_u##size(m1), vec_mask)); \ ++ uint##size##x##number_of_lanes##_t vec_minusone = vdupq_n_u##size(-1); \ ++ uint##size##x##number_of_lanes##_t vec_zero = vdupq_n_u##size(0); \ ++ for (int j = 0; j < lb; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size(vbslq_u##size( \ ++ vec1, vec_minusone, vreinterpretq_u##size##_m128i(mtx[j]))); \ ++ } \ ++ for (int j = lb; j < bound; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size( \ ++ vbslq_u##size(vec1, vec_minusone, vec_zero)); \ ++ } \ ++ unsigned SSE2NEON_IIF(data_type)(char, short) *ptr = \ ++ (unsigned SSE2NEON_IIF(data_type)(char, short) *) mtx; \ ++ for (int i = 0; i < bound; i++) { \ ++ int val = 1; \ ++ for (int j = 0, k = i; j < bound - i && k < bound; j++, k++) \ ++ val &= ptr[k * bound + j]; \ ++ res += val << i; \ ++ } \ ++ return res; \ ++ } ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(prefix) \ ++ prefix##IMPL(8, 16, prefix##IS_UBYTE) \ ++ prefix##IMPL(16, 8, prefix##IS_UWORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(SSE2NEON_AGGREGATE_EQUAL_ORDER_) ++ ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(SSE2NEON_CMP_EQUAL_ORDERED_) ++ ++#define SSE2NEON_CMPESTR_LIST \ ++ _(CMP_UBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_UWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_SBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_SWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_UBYTE_RANGES, cmp_ubyte_ranges) \ ++ _(CMP_UWORD_RANGES, cmp_uword_ranges) \ ++ _(CMP_SBYTE_RANGES, cmp_sbyte_ranges) \ ++ _(CMP_SWORD_RANGES, cmp_sword_ranges) \ ++ _(CMP_UBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_UWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_SBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_SWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_UBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_UWORD_EQUAL_ORDERED, cmp_word_equal_ordered) \ ++ _(CMP_SBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_SWORD_EQUAL_ORDERED, cmp_word_equal_ordered) ++ ++enum { ++#define _(name, func_suffix) name, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++typedef int (*cmpestr_func_t)(__m128i a, int la, __m128i b, int lb); ++static cmpestr_func_t _sse2neon_cmpfunc_table[] = { ++#define _(name, func_suffix) _sse2neon_##func_suffix, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++ ++FORCE_INLINE int _sse2neon_sido_negative(int res, int lb, int imm8, int bound) ++{ ++ switch (imm8 & 0x30) { ++ case _SIDD_NEGATIVE_POLARITY: ++ res ^= 0xffffffff; ++ break; ++ case _SIDD_MASKED_NEGATIVE_POLARITY: ++ res ^= (1 << lb) - 1; ++ break; ++ default: ++ break; ++ } ++ ++ return res & ((bound == 8) ? 0xFF : 0xFFFF); ++} ++ ++FORCE_INLINE int _sse2neon_clz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanReverse(&cnt, x)) ++ return 31 - cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_clz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanForward(&cnt, x)) ++ return cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_ctz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctzll(unsigned long long x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt; ++#if defined(SSE2NEON_HAS_BITSCAN64) ++ if (_BitScanForward64(&cnt, x)) ++ return (int) (cnt); ++#else ++ if (_BitScanForward(&cnt, (unsigned long) (x))) ++ return (int) cnt; ++ if (_BitScanForward(&cnt, (unsigned long) (x >> 32))) ++ return (int) (cnt + 32); ++#endif /* SSE2NEON_HAS_BITSCAN64 */ ++ return 64; ++#else /* assume GNU compatible compilers */ ++ return x != 0 ? __builtin_ctzll(x) : 64; ++#endif ++} ++ ++#define SSE2NEON_MIN(x, y) (x) < (y) ? (x) : (y) ++ ++#define SSE2NEON_CMPSTR_SET_UPPER(var, imm) \ ++ const int var = (imm & 0x01) ? 8 : 16 ++ ++#define SSE2NEON_CMPESTRX_LEN_PAIR(a, b, la, lb) \ ++ int tmp1 = la ^ (la >> 31); \ ++ la = tmp1 - (la >> 31); \ ++ int tmp2 = lb ^ (lb >> 31); \ ++ lb = tmp2 - (lb >> 31); \ ++ la = SSE2NEON_MIN(la, bound); \ ++ lb = SSE2NEON_MIN(lb, bound) ++ ++// Compare all pairs of character in string a and b, ++// then aggregate the result. ++// As the only difference of PCMPESTR* and PCMPISTR* is the way to calculate the ++// length of string, we use SSE2NEON_CMP{I,E}STRX_GET_LEN to get the length of ++// string a and b. ++#define SSE2NEON_COMP_AGG(a, b, la, lb, imm8, IE) \ ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); \ ++ SSE2NEON_##IE##_LEN_PAIR(a, b, la, lb); \ ++ int r2 = (_sse2neon_cmpfunc_table[imm8 & 0x0f])(a, la, b, lb); \ ++ r2 = _sse2neon_sido_negative(r2, lb, imm8, bound) ++ ++#define SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8) \ ++ return (r2 == 0) ? bound \ ++ : ((imm8 & 0x40) ? (31 - _sse2neon_clz(r2)) \ ++ : _sse2neon_ctz(r2)) ++ ++#define SSE2NEON_CMPSTR_GENERATE_MASK(dst) \ ++ __m128i dst = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ if (imm8 & 0x40) { \ ++ if (bound == 8) { \ ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(r2), \ ++ vld1q_u16(_sse2neon_cmpestr_mask16b)); \ ++ dst = vreinterpretq_m128i_u16(vbslq_u16( \ ++ tmp, vdupq_n_u16(-1), vreinterpretq_u16_m128i(dst))); \ ++ } else { \ ++ uint8x16_t vec_r2 = \ ++ vcombine_u8(vdup_n_u8(r2), vdup_n_u8(r2 >> 8)); \ ++ uint8x16_t tmp = \ ++ vtstq_u8(vec_r2, vld1q_u8(_sse2neon_cmpestr_mask8b)); \ ++ dst = vreinterpretq_m128i_u8( \ ++ vbslq_u8(tmp, vdupq_n_u8(-1), vreinterpretq_u8_m128i(dst))); \ ++ } \ ++ } else { \ ++ if (bound == 16) { \ ++ dst = vreinterpretq_m128i_u16( \ ++ vsetq_lane_u16(r2 & 0xffff, vreinterpretq_u16_m128i(dst), 0)); \ ++ } else { \ ++ dst = vreinterpretq_m128i_u8( \ ++ vsetq_lane_u8(r2 & 0xff, vreinterpretq_u8_m128i(dst), 0)); \ ++ } \ ++ } \ ++ return dst ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and returns 1 if b did not contain a null character and the ++// resulting mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestra ++FORCE_INLINE int _mm_cmpestra(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ int lb_cpy = lb; ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return !r2 & (lb_cpy > bound); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrc ++FORCE_INLINE int _mm_cmpestrc(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestri ++FORCE_INLINE int _mm_cmpestri(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrm ++FORCE_INLINE __m128i ++_mm_cmpestrm(__m128i a, int la, __m128i b, int lb, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestro ++FORCE_INLINE int _mm_cmpestro(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrs ++FORCE_INLINE int _mm_cmpestrs(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) lb; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrz ++FORCE_INLINE int _mm_cmpestrz(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) la; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return lb <= (bound - 1); ++} ++ ++#define SSE2NEON_CMPISTRX_LENGTH(str, len, imm8) \ ++ do { \ ++ if (imm8 & 0x01) { \ ++ uint16x8_t equal_mask_##str = \ ++ vceqq_u16(vreinterpretq_u16_m128i(str), vdupq_n_u16(0)); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 3; \ ++ } else { \ ++ uint16x8_t equal_mask_##str = vreinterpretq_u16_u8( \ ++ vceqq_u8(vreinterpretq_u8_m128i(str), vdupq_n_u8(0))); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 2; \ ++ } \ ++ } while (0) ++ ++#define SSE2NEON_CMPISTRX_LEN_PAIR(a, b, la, lb) \ ++ int la, lb; \ ++ do { \ ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); \ ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); \ ++ } while (0) ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if b did not contain a null character and the resulting ++// mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistra ++FORCE_INLINE int _mm_cmpistra(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return !r2 & (lb >= bound); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrc ++FORCE_INLINE int _mm_cmpistrc(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistri ++FORCE_INLINE int _mm_cmpistri(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrm ++FORCE_INLINE __m128i _mm_cmpistrm(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistro ++FORCE_INLINE int _mm_cmpistro(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrs ++FORCE_INLINE int _mm_cmpistrs(__m128i a, __m128i b, const int imm8) ++{ ++ (void) b; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int la; ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrz ++FORCE_INLINE int _mm_cmpistrz(__m128i a, __m128i b, const int imm8) ++{ ++ (void) a; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int lb; ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); ++ return lb <= (bound - 1); ++} ++ ++// Compares the 2 signed 64-bit integers in a and the 2 signed 64-bit integers ++// in b for greater than. ++FORCE_INLINE __m128i _mm_cmpgt_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vcgtq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ return vreinterpretq_m128i_s64(vshrq_n_s64( ++ vqsubq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)), ++ 63)); ++#endif ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 16-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u16 ++FORCE_INLINE uint32_t _mm_crc32_u16(uint32_t crc, uint16_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32ch %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32ch(crc, v); ++#else ++ crc = _mm_crc32_u8(crc, v & 0xff); ++ crc = _mm_crc32_u8(crc, (v >> 8) & 0xff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 32-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u32 ++FORCE_INLINE uint32_t _mm_crc32_u32(uint32_t crc, uint32_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cw %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cw(crc, v); ++#else ++ crc = _mm_crc32_u16(crc, v & 0xffff); ++ crc = _mm_crc32_u16(crc, (v >> 16) & 0xffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 64-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u64 ++FORCE_INLINE uint64_t _mm_crc32_u64(uint64_t crc, uint64_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cx %w[c], %w[c], %x[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cd((uint32_t) crc, v); ++#else ++ crc = _mm_crc32_u32((uint32_t) (crc), v & 0xffffffff); ++ crc = _mm_crc32_u32((uint32_t) (crc), (v >> 32) & 0xffffffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 8-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u8 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t crc, uint8_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cb %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cb(crc, v); ++#else ++ crc ^= v; ++#if defined(__ARM_FEATURE_CRYPTO) ++ // Adapted from: https://mary.rs/lab/crc32/ ++ // Barrent reduction ++ uint64x2_t orig = ++ vcombine_u64(vcreate_u64((uint64_t) (crc) << 24), vcreate_u64(0x0)); ++ uint64x2_t tmp = orig; ++ ++ // Polynomial P(x) of CRC32C ++ uint64_t p = 0x105EC76F1; ++ // Barrett Reduction (in bit-reflected form) constant mu_{64} = \lfloor ++ // 2^{64} / P(x) \rfloor = 0x11f91caf6 ++ uint64_t mu = 0x1dea713f1; ++ ++ // Multiply by mu_{64} ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(mu)); ++ // Divide by 2^{64} (mask away the unnecessary bits) ++ tmp = ++ vandq_u64(tmp, vcombine_u64(vcreate_u64(0xFFFFFFFF), vcreate_u64(0x0))); ++ // Multiply by P(x) (shifted left by 1 for alignment reasons) ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(p)); ++ // Subtract original from result ++ tmp = veorq_u64(tmp, orig); ++ ++ // Extract the 'lower' (in bit-reflected sense) 32 bits ++ crc = vgetq_lane_u32(vreinterpretq_u32_u64(tmp), 1); ++#else // Fall back to the generic table lookup approach ++ // Adapted from: https://create.stephan-brumme.com/crc32/ ++ // Apply half-byte comparison algorithm for the best ratio between ++ // performance and lookup table. ++ ++ // The lookup table just needs to store every 16th entry ++ // of the standard look-up table. ++ static const uint32_t crc32_half_byte_tbl[] = { ++ 0x00000000, 0x105ec76f, 0x20bd8ede, 0x30e349b1, 0x417b1dbc, 0x5125dad3, ++ 0x61c69362, 0x7198540d, 0x82f63b78, 0x92a8fc17, 0xa24bb5a6, 0xb21572c9, ++ 0xc38d26c4, 0xd3d3e1ab, 0xe330a81a, 0xf36e6f75, ++ }; ++ ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++#endif ++#endif ++ return crc; ++} ++ ++/* AES */ ++ ++#if !defined(__ARM_FEATURE_CRYPTO) && (!defined(_M_ARM64) || defined(__clang__)) ++/* clang-format off */ ++#define SSE2NEON_AES_SBOX(w) \ ++ { \ ++ w(0x63), w(0x7c), w(0x77), w(0x7b), w(0xf2), w(0x6b), w(0x6f), \ ++ w(0xc5), w(0x30), w(0x01), w(0x67), w(0x2b), w(0xfe), w(0xd7), \ ++ w(0xab), w(0x76), w(0xca), w(0x82), w(0xc9), w(0x7d), w(0xfa), \ ++ w(0x59), w(0x47), w(0xf0), w(0xad), w(0xd4), w(0xa2), w(0xaf), \ ++ w(0x9c), w(0xa4), w(0x72), w(0xc0), w(0xb7), w(0xfd), w(0x93), \ ++ w(0x26), w(0x36), w(0x3f), w(0xf7), w(0xcc), w(0x34), w(0xa5), \ ++ w(0xe5), w(0xf1), w(0x71), w(0xd8), w(0x31), w(0x15), w(0x04), \ ++ w(0xc7), w(0x23), w(0xc3), w(0x18), w(0x96), w(0x05), w(0x9a), \ ++ w(0x07), w(0x12), w(0x80), w(0xe2), w(0xeb), w(0x27), w(0xb2), \ ++ w(0x75), w(0x09), w(0x83), w(0x2c), w(0x1a), w(0x1b), w(0x6e), \ ++ w(0x5a), w(0xa0), w(0x52), w(0x3b), w(0xd6), w(0xb3), w(0x29), \ ++ w(0xe3), w(0x2f), w(0x84), w(0x53), w(0xd1), w(0x00), w(0xed), \ ++ w(0x20), w(0xfc), w(0xb1), w(0x5b), w(0x6a), w(0xcb), w(0xbe), \ ++ w(0x39), w(0x4a), w(0x4c), w(0x58), w(0xcf), w(0xd0), w(0xef), \ ++ w(0xaa), w(0xfb), w(0x43), w(0x4d), w(0x33), w(0x85), w(0x45), \ ++ w(0xf9), w(0x02), w(0x7f), w(0x50), w(0x3c), w(0x9f), w(0xa8), \ ++ w(0x51), w(0xa3), w(0x40), w(0x8f), w(0x92), w(0x9d), w(0x38), \ ++ w(0xf5), w(0xbc), w(0xb6), w(0xda), w(0x21), w(0x10), w(0xff), \ ++ w(0xf3), w(0xd2), w(0xcd), w(0x0c), w(0x13), w(0xec), w(0x5f), \ ++ w(0x97), w(0x44), w(0x17), w(0xc4), w(0xa7), w(0x7e), w(0x3d), \ ++ w(0x64), w(0x5d), w(0x19), w(0x73), w(0x60), w(0x81), w(0x4f), \ ++ w(0xdc), w(0x22), w(0x2a), w(0x90), w(0x88), w(0x46), w(0xee), \ ++ w(0xb8), w(0x14), w(0xde), w(0x5e), w(0x0b), w(0xdb), w(0xe0), \ ++ w(0x32), w(0x3a), w(0x0a), w(0x49), w(0x06), w(0x24), w(0x5c), \ ++ w(0xc2), w(0xd3), w(0xac), w(0x62), w(0x91), w(0x95), w(0xe4), \ ++ w(0x79), w(0xe7), w(0xc8), w(0x37), w(0x6d), w(0x8d), w(0xd5), \ ++ w(0x4e), w(0xa9), w(0x6c), w(0x56), w(0xf4), w(0xea), w(0x65), \ ++ w(0x7a), w(0xae), w(0x08), w(0xba), w(0x78), w(0x25), w(0x2e), \ ++ w(0x1c), w(0xa6), w(0xb4), w(0xc6), w(0xe8), w(0xdd), w(0x74), \ ++ w(0x1f), w(0x4b), w(0xbd), w(0x8b), w(0x8a), w(0x70), w(0x3e), \ ++ w(0xb5), w(0x66), w(0x48), w(0x03), w(0xf6), w(0x0e), w(0x61), \ ++ w(0x35), w(0x57), w(0xb9), w(0x86), w(0xc1), w(0x1d), w(0x9e), \ ++ w(0xe1), w(0xf8), w(0x98), w(0x11), w(0x69), w(0xd9), w(0x8e), \ ++ w(0x94), w(0x9b), w(0x1e), w(0x87), w(0xe9), w(0xce), w(0x55), \ ++ w(0x28), w(0xdf), w(0x8c), w(0xa1), w(0x89), w(0x0d), w(0xbf), \ ++ w(0xe6), w(0x42), w(0x68), w(0x41), w(0x99), w(0x2d), w(0x0f), \ ++ w(0xb0), w(0x54), w(0xbb), w(0x16) \ ++ } ++#define SSE2NEON_AES_RSBOX(w) \ ++ { \ ++ w(0x52), w(0x09), w(0x6a), w(0xd5), w(0x30), w(0x36), w(0xa5), \ ++ w(0x38), w(0xbf), w(0x40), w(0xa3), w(0x9e), w(0x81), w(0xf3), \ ++ w(0xd7), w(0xfb), w(0x7c), w(0xe3), w(0x39), w(0x82), w(0x9b), \ ++ w(0x2f), w(0xff), w(0x87), w(0x34), w(0x8e), w(0x43), w(0x44), \ ++ w(0xc4), w(0xde), w(0xe9), w(0xcb), w(0x54), w(0x7b), w(0x94), \ ++ w(0x32), w(0xa6), w(0xc2), w(0x23), w(0x3d), w(0xee), w(0x4c), \ ++ w(0x95), w(0x0b), w(0x42), w(0xfa), w(0xc3), w(0x4e), w(0x08), \ ++ w(0x2e), w(0xa1), w(0x66), w(0x28), w(0xd9), w(0x24), w(0xb2), \ ++ w(0x76), w(0x5b), w(0xa2), w(0x49), w(0x6d), w(0x8b), w(0xd1), \ ++ w(0x25), w(0x72), w(0xf8), w(0xf6), w(0x64), w(0x86), w(0x68), \ ++ w(0x98), w(0x16), w(0xd4), w(0xa4), w(0x5c), w(0xcc), w(0x5d), \ ++ w(0x65), w(0xb6), w(0x92), w(0x6c), w(0x70), w(0x48), w(0x50), \ ++ w(0xfd), w(0xed), w(0xb9), w(0xda), w(0x5e), w(0x15), w(0x46), \ ++ w(0x57), w(0xa7), w(0x8d), w(0x9d), w(0x84), w(0x90), w(0xd8), \ ++ w(0xab), w(0x00), w(0x8c), w(0xbc), w(0xd3), w(0x0a), w(0xf7), \ ++ w(0xe4), w(0x58), w(0x05), w(0xb8), w(0xb3), w(0x45), w(0x06), \ ++ w(0xd0), w(0x2c), w(0x1e), w(0x8f), w(0xca), w(0x3f), w(0x0f), \ ++ w(0x02), w(0xc1), w(0xaf), w(0xbd), w(0x03), w(0x01), w(0x13), \ ++ w(0x8a), w(0x6b), w(0x3a), w(0x91), w(0x11), w(0x41), w(0x4f), \ ++ w(0x67), w(0xdc), w(0xea), w(0x97), w(0xf2), w(0xcf), w(0xce), \ ++ w(0xf0), w(0xb4), w(0xe6), w(0x73), w(0x96), w(0xac), w(0x74), \ ++ w(0x22), w(0xe7), w(0xad), w(0x35), w(0x85), w(0xe2), w(0xf9), \ ++ w(0x37), w(0xe8), w(0x1c), w(0x75), w(0xdf), w(0x6e), w(0x47), \ ++ w(0xf1), w(0x1a), w(0x71), w(0x1d), w(0x29), w(0xc5), w(0x89), \ ++ w(0x6f), w(0xb7), w(0x62), w(0x0e), w(0xaa), w(0x18), w(0xbe), \ ++ w(0x1b), w(0xfc), w(0x56), w(0x3e), w(0x4b), w(0xc6), w(0xd2), \ ++ w(0x79), w(0x20), w(0x9a), w(0xdb), w(0xc0), w(0xfe), w(0x78), \ ++ w(0xcd), w(0x5a), w(0xf4), w(0x1f), w(0xdd), w(0xa8), w(0x33), \ ++ w(0x88), w(0x07), w(0xc7), w(0x31), w(0xb1), w(0x12), w(0x10), \ ++ w(0x59), w(0x27), w(0x80), w(0xec), w(0x5f), w(0x60), w(0x51), \ ++ w(0x7f), w(0xa9), w(0x19), w(0xb5), w(0x4a), w(0x0d), w(0x2d), \ ++ w(0xe5), w(0x7a), w(0x9f), w(0x93), w(0xc9), w(0x9c), w(0xef), \ ++ w(0xa0), w(0xe0), w(0x3b), w(0x4d), w(0xae), w(0x2a), w(0xf5), \ ++ w(0xb0), w(0xc8), w(0xeb), w(0xbb), w(0x3c), w(0x83), w(0x53), \ ++ w(0x99), w(0x61), w(0x17), w(0x2b), w(0x04), w(0x7e), w(0xba), \ ++ w(0x77), w(0xd6), w(0x26), w(0xe1), w(0x69), w(0x14), w(0x63), \ ++ w(0x55), w(0x21), w(0x0c), w(0x7d) \ ++ } ++/* clang-format on */ ++ ++/* X Macro trick. See https://en.wikipedia.org/wiki/X_Macro */ ++#define SSE2NEON_AES_H0(x) (x) ++static const uint8_t _sse2neon_sbox[256] = SSE2NEON_AES_SBOX(SSE2NEON_AES_H0); ++static const uint8_t _sse2neon_rsbox[256] = SSE2NEON_AES_RSBOX(SSE2NEON_AES_H0); ++#undef SSE2NEON_AES_H0 ++ ++/* x_time function and matrix multiply function */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#define SSE2NEON_XT(x) (((x) << 1) ^ ((((x) >> 7) & 1) * 0x1b)) ++#define SSE2NEON_MULTIPLY(x, y) \ ++ (((y & 1) * x) ^ ((y >> 1 & 1) * SSE2NEON_XT(x)) ^ \ ++ ((y >> 2 & 1) * SSE2NEON_XT(SSE2NEON_XT(x))) ^ \ ++ ((y >> 3 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))) ^ \ ++ ((y >> 4 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))))) ++#endif ++ ++// In the absence of crypto extensions, implement aesenc using regular NEON ++// intrinsics instead. See: ++// https://www.workofard.com/2017/01/accelerated-aes-for-the-arm64-linux-kernel/ ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/ and ++// for more information. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ /* shift rows */ ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ /* sub bytes */ ++ // Here, we separate the whole 256-bytes table into 4 64-bytes tables, and ++ // look up each of the table. After each lookup, we load the next table ++ // which locates at the next 64-bytes. In the meantime, the index in the ++ // table would be smaller than it was, so the index parameters of ++ // `vqtbx4q_u8()` need to be added the same constant as the loaded tables. ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ // 'w-0x40' equals to 'vsubq_u8(w, vdupq_n_u8(0x40))' ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ /* mix columns */ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ /* add round key */ ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A implementation for a table-based AES */ ++#define SSE2NEON_AES_B2W(b0, b1, b2, b3) \ ++ (((uint32_t) (b3) << 24) | ((uint32_t) (b2) << 16) | \ ++ ((uint32_t) (b1) << 8) | (uint32_t) (b0)) ++// multiplying 'x' by 2 in GF(2^8) ++#define SSE2NEON_AES_F2(x) ((x << 1) ^ (((x >> 7) & 1) * 0x011b /* WPOLY */)) ++// multiplying 'x' by 3 in GF(2^8) ++#define SSE2NEON_AES_F3(x) (SSE2NEON_AES_F2(x) ^ x) ++#define SSE2NEON_AES_U0(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F2(p), p, p, SSE2NEON_AES_F3(p)) ++#define SSE2NEON_AES_U1(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p, p) ++#define SSE2NEON_AES_U2(p) \ ++ SSE2NEON_AES_B2W(p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p) ++#define SSE2NEON_AES_U3(p) \ ++ SSE2NEON_AES_B2W(p, p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p)) ++ ++ // this generates a table containing every possible permutation of ++ // shift_rows() and sub_bytes() with mix_columns(). ++ static const uint32_t ALIGN_STRUCT(16) aes_table[4][256] = { ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U0), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U1), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U2), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U3), ++ }; ++#undef SSE2NEON_AES_B2W ++#undef SSE2NEON_AES_F2 ++#undef SSE2NEON_AES_F3 ++#undef SSE2NEON_AES_U0 ++#undef SSE2NEON_AES_U1 ++#undef SSE2NEON_AES_U2 ++#undef SSE2NEON_AES_U3 ++ ++ uint32_t x0 = _mm_cvtsi128_si32(a); // get a[31:0] ++ uint32_t x1 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); // get a[63:32] ++ uint32_t x2 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xAA)); // get a[95:64] ++ uint32_t x3 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); // get a[127:96] ++ ++ // finish the modulo addition step in mix_columns() ++ __m128i out = _mm_set_epi32( ++ (aes_table[0][x3 & 0xff] ^ aes_table[1][(x0 >> 8) & 0xff] ^ ++ aes_table[2][(x1 >> 16) & 0xff] ^ aes_table[3][x2 >> 24]), ++ (aes_table[0][x2 & 0xff] ^ aes_table[1][(x3 >> 8) & 0xff] ^ ++ aes_table[2][(x0 >> 16) & 0xff] ^ aes_table[3][x1 >> 24]), ++ (aes_table[0][x1 & 0xff] ^ aes_table[1][(x2 >> 8) & 0xff] ^ ++ aes_table[2][(x3 >> 16) & 0xff] ^ aes_table[3][x0 >> 24]), ++ (aes_table[0][x0 & 0xff] ^ aes_table[1][(x1 >> 8) & 0xff] ^ ++ aes_table[2][(x2 >> 16) & 0xff] ^ aes_table[3][x3 >> 24])); ++ ++ return _mm_xor_si128(out, RoundKey); ++#endif ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // inverse mix columns ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & ++ 0x1b); // multiplying 'v' by 2 in GF(2^8) ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ // inverse mix columns ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ // sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A implementation */ ++ uint8_t v[16] = { ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 0)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 5)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 10)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 15)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 4)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 9)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 14)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 3)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 8)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 13)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 2)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 7)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 12)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 1)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 6)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 11)], ++ }; ++ ++ return vreinterpretq_m128i_u8(vld1q_u8(v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (int i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++#if defined(__aarch64__) ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ uint8x16_t v = vreinterpretq_u8_m128i(a); ++ uint8x16_t w; ++ ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ // multiplying 'v' by 2 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ return vreinterpretq_m128i_u8(w); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ vst1q_u8((uint8_t *) v, vreinterpretq_u8_m128i(a)); ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)); ++#endif ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++// ++// Emits the Advanced Encryption Standard (AES) instruction aeskeygenassist. ++// This instruction generates a round key for AES encryption. See ++// https://kazakov.life/2017/11/01/cryptocurrency-mining-on-ios-devices/ ++// for details. ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++#if defined(__aarch64__) ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); ++ uint8x16_t v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), _a); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), _a - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), _a - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), _a - 0xc0); ++ ++ uint32x4_t v_u32 = vreinterpretq_u32_u8(v); ++ uint32x4_t ror_v = vorrq_u32(vshrq_n_u32(v_u32, 8), vshlq_n_u32(v_u32, 24)); ++ uint32x4_t ror_xor_v = veorq_u32(ror_v, vdupq_n_u32(rcon)); ++ ++ return vreinterpretq_m128i_u32(vtrn2q_u32(v_u32, ror_xor_v)); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint32_t X1 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); ++ uint32_t X3 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); ++ for (int i = 0; i < 4; ++i) { ++ ((uint8_t *) &X1)[i] = _sse2neon_sbox[((uint8_t *) &X1)[i]]; ++ ((uint8_t *) &X3)[i] = _sse2neon_sbox[((uint8_t *) &X3)[i]]; ++ } ++ return _mm_set_epi32(((X3 >> 8) | (X3 << 24)) ^ rcon, X3, ++ ((X1 >> 8) | (X1 << 24)) ^ rcon, X1); ++#endif ++} ++#undef SSE2NEON_AES_SBOX ++#undef SSE2NEON_AES_RSBOX ++ ++#if defined(__aarch64__) ++#undef SSE2NEON_XT ++#undef SSE2NEON_MULTIPLY ++#endif ++ ++#else /* __ARM_FEATURE_CRYPTO */ ++// Implements equivalent of 'aesenc' by combining AESE (with an empty key) and ++// AESMC and then manually applying the real key as an xor operation. This ++// unfortunately means an additional xor op; the compiler should be able to ++// optimize this away for repeated calls however. See ++// https://blog.michaelbrase.com/2018/05/08/emulating-x86-aes-intrinsics-on-armv8-a ++// for more details. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesmcq_u8(vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(b))); ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesimcq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return _mm_xor_si128(vreinterpretq_m128i_u8(vaeseq_u8( ++ vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ RoundKey); ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8( ++ veorq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++ return vreinterpretq_m128i_u8(vaesimcq_u8(vreinterpretq_u8_m128i(a))); ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst." ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++ // AESE does ShiftRows and SubBytes on A ++ uint8x16_t u8 = vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)); ++ ++#ifndef _MSC_VER ++ uint8x16_t dest = { ++ // Undo ShiftRows step from AESE and extract X1 and X3 ++ u8[0x4], u8[0x1], u8[0xE], u8[0xB], // SubBytes(X1) ++ u8[0x1], u8[0xE], u8[0xB], u8[0x4], // ROT(SubBytes(X1)) ++ u8[0xC], u8[0x9], u8[0x6], u8[0x3], // SubBytes(X3) ++ u8[0x9], u8[0x6], u8[0x3], u8[0xC], // ROT(SubBytes(X3)) ++ }; ++ uint32x4_t r = {0, (unsigned) rcon, 0, (unsigned) rcon}; ++ return vreinterpretq_m128i_u8(dest) ^ vreinterpretq_m128i_u32(r); ++#else ++ // We have to do this hack because MSVC is strictly adhering to the CPP ++ // standard, in particular C++03 8.5.1 sub-section 15, which states that ++ // unions must be initialized by their first member type. ++ ++ // As per the Windows ARM64 ABI, it is always little endian, so this works ++ __n128 dest{ ++ ((uint64_t) u8.n128_u8[0x4] << 0) | ((uint64_t) u8.n128_u8[0x1] << 8) | ++ ((uint64_t) u8.n128_u8[0xE] << 16) | ++ ((uint64_t) u8.n128_u8[0xB] << 24) | ++ ((uint64_t) u8.n128_u8[0x1] << 32) | ++ ((uint64_t) u8.n128_u8[0xE] << 40) | ++ ((uint64_t) u8.n128_u8[0xB] << 48) | ++ ((uint64_t) u8.n128_u8[0x4] << 56), ++ ((uint64_t) u8.n128_u8[0xC] << 0) | ((uint64_t) u8.n128_u8[0x9] << 8) | ++ ((uint64_t) u8.n128_u8[0x6] << 16) | ++ ((uint64_t) u8.n128_u8[0x3] << 24) | ++ ((uint64_t) u8.n128_u8[0x9] << 32) | ++ ((uint64_t) u8.n128_u8[0x6] << 40) | ++ ((uint64_t) u8.n128_u8[0x3] << 48) | ++ ((uint64_t) u8.n128_u8[0xC] << 56)}; ++ ++ dest.n128_u32[1] = dest.n128_u32[1] ^ rcon; ++ dest.n128_u32[3] = dest.n128_u32[3] ^ rcon; ++ ++ return dest; ++#endif ++} ++#endif ++ ++/* Others */ ++ ++// Perform a carry-less multiplication of two 64-bit integers, selected from a ++// and b according to imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clmulepi64_si128 ++FORCE_INLINE __m128i _mm_clmulepi64_si128(__m128i _a, __m128i _b, const int imm) ++{ ++ uint64x2_t a = vreinterpretq_u64_m128i(_a); ++ uint64x2_t b = vreinterpretq_u64_m128i(_b); ++ switch (imm & 0x11) { ++ case 0x00: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_low_u64(b))); ++ case 0x01: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_low_u64(b))); ++ case 0x10: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_high_u64(b))); ++ case 0x11: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_high_u64(b))); ++ default: ++ abort(); ++ } ++} ++ ++FORCE_INLINE unsigned int _sse2neon_mm_get_denormals_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_DENORMALS_ZERO_ON : _MM_DENORMALS_ZERO_OFF; ++} ++ ++// Count the number of bits set to 1 in unsigned 32-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u32 ++FORCE_INLINE int _mm_popcnt_u32(unsigned int a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcount) ++ return __builtin_popcount(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits(a); ++#else ++ return (int) vaddlv_u8(vcnt_u8(vcreate_u8((uint64_t) a))); ++#endif ++#else ++ uint32_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ ++ vst1_u32(&count, count32x2_val); ++ return count; ++#endif ++} ++ ++// Count the number of bits set to 1 in unsigned 64-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u64 ++FORCE_INLINE int64_t _mm_popcnt_u64(uint64_t a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcountll) ++ return __builtin_popcountll(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits64(a); ++#else ++ return (int64_t) vaddlv_u8(vcnt_u8(vcreate_u8(a))); ++#endif ++#else ++ uint64_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ uint64x1_t count64x1_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ count64x1_val = vpaddl_u32(count32x2_val); ++ vst1_u64(&count, count64x1_val); ++ return count; ++#endif ++} ++ ++FORCE_INLINE void _sse2neon_mm_set_denormals_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_DENORMALS_ZERO_MASK) == _MM_DENORMALS_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Return the current 64-bit value of the processor's time-stamp counter. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=rdtsc ++FORCE_INLINE uint64_t _rdtsc(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t val; ++ ++ /* According to ARM DDI 0487F.c, from Armv8.0 to Armv8.5 inclusive, the ++ * system counter is at least 56 bits wide; from Armv8.6, the counter ++ * must be 64 bits wide. So the system counter could be less than 64 ++ * bits wide and it is attributed with the flag 'cap_user_time_short' ++ * is true. ++ */ ++#if defined(_MSC_VER) ++ val = _ReadStatusReg(ARM64_SYSREG(3, 3, 14, 0, 2)); ++#else ++ __asm__ __volatile__("mrs %0, cntvct_el0" : "=r"(val)); ++#endif ++ ++ return val; ++#else ++ uint32_t pmccntr, pmuseren, pmcntenset; ++ // Read the user mode Performance Monitoring Unit (PMU) ++ // User Enable Register (PMUSERENR) access permissions. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c14, 0" : "=r"(pmuseren)); ++ if (pmuseren & 1) { // Allows reading PMUSERENR for user mode code. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c12, 1" : "=r"(pmcntenset)); ++ if (pmcntenset & 0x80000000UL) { // Is it counting? ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c13, 0" : "=r"(pmccntr)); ++ // The counter is set up to count every 64th cycle ++ return (uint64_t) (pmccntr) << 6; ++ } ++ } ++ ++ // Fallback to syscall as we can't enable PMUSERENR in user mode. ++ struct timeval tv; ++ gettimeofday(&tv, NULL); ++ return (uint64_t) (tv.tv_sec) * 1000000 + tv.tv_usec; ++#endif ++} ++ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma pop_macro("ALIGN_STRUCT") ++#pragma pop_macro("FORCE_INLINE") ++#pragma pop_macro("FORCE_INLINE_OPTNONE") ++#endif ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma GCC pop_options ++#endif ++ ++#endif +diff --git c/utils.h i/utils.h +index a86747e..9449dfa 100644 +--- c/utils.h ++++ i/utils.h +@@ -6,7 +6,12 @@ + #include + #include + #include ++ ++#ifdef __ARM_NEON ++#include "sse2neon.h" ++#else + #include ++#endif + + #include "libs/ssw.h" + #include "libs/ssw_cpp.h" diff --git a/recipes/insurveyor/build.sh b/recipes/insurveyor/build.sh index f1d3689d0c241..8223fd07e1f8f 100644 --- a/recipes/insurveyor/build.sh +++ b/recipes/insurveyor/build.sh @@ -1,7 +1,7 @@ #!/bin/bash -ex export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" -export CXXFLAGS="${CXXFLAGS} -O3 -I{PREFIX}/include ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -O3 -I${PREFIX}/include ${LDFLAGS}" mkdir -p ${PREFIX}/bin diff --git a/recipes/insurveyor/meta.yaml b/recipes/insurveyor/meta.yaml index d235d5fd03e7b..8db223d4c12d2 100644 --- a/recipes/insurveyor/meta.yaml +++ b/recipes/insurveyor/meta.yaml @@ -8,9 +8,11 @@ package: source: url: https://github.com/kensung-lab/INSurVeyor/archive/refs/tags/{{ version }}.tar.gz sha256: 0099ce859dd1b61b726b87ca26d7b89dabb34cab27afc97a5696780260b27304 + patches: + - INSurVeyor-aarch64.patch # [aarch64 or arm64] build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('insurveyor', max_pin="x") }} @@ -49,6 +51,9 @@ about: dev_url: https://github.com/kensung-lab/INSurVeyor extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - Mesh89 identifiers: From b57cd279d0e8dffd12c02b4ffe2b4fb069dd5a91 Mon Sep 17 00:00:00 2001 From: Ningshan Li <50506882+az7jh2@users.noreply.github.com> Date: Tue, 6 Aug 2024 00:10:34 +0800 Subject: [PATCH 1045/1514] Update sdeper to 1.6.2 (#49802) --- recipes/sdeper/meta.yaml | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/recipes/sdeper/meta.yaml b/recipes/sdeper/meta.yaml index 394c27d640310..864ce86a9107a 100755 --- a/recipes/sdeper/meta.yaml +++ b/recipes/sdeper/meta.yaml @@ -1,5 +1,7 @@ +# This is the recipe file to publish SDePER to Bioconda + {% set name = "sdeper" %} -{% set version = "1.6.1" %} +{% set version = "1.6.2" %} package: name: "{{ name|lower }}" @@ -7,43 +9,42 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 6d1777d13ba5253e762f007fcab22743f24d760adf07ebb7079cb2c652b2575a + sha256: 271371a6cdd717244c96ce7ba0c6e282f9cd85112048aac3a0ab40975724a1e4 build: number: 0 entry_points: - runDeconvolution = cvaeglrm:main - runImputation = imputation:main - script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" + script: "{{ PYTHON }} -m pip install . -vv" noarch: python run_exports: - - {{ pin_subpackage('sdeper', max_pin="x") }} + - {{ pin_subpackage('sdeper', max_pin="x.x") }} requirements: host: - - python >=3.9.12,<3.11 + - python >=3.9,<=3.10 - pip - - twine >=4.0 run: - distinctipy ==1.2.2 - matplotlib-base ==3.5.2 - networkx ==2.8.4 - - numba ==0.55.2 - - numpy ==1.22.4 + - numba ==0.59.1 + - numpy ==1.26.4 - openpyxl ==3.0.10 - pandas ==1.4.3 - - python >=3.9.12,<3.11 + - python >=3.9,<=3.10 - reportlab ==4.1.0 - scanpy ==1.9.1 - scikit-learn ==1.1.1 - scikit-misc ==0.1.4 - - scipy ==1.8.1 - - seaborn-base ==0.11.2 - - tensorflow-base 2.9.1 cpu_* # explicitly specify to use cpu version out from cpu_, cuda, eigen_, gpu_, or mkl_ in conda packages + - scipy ==1.11.4 + - seaborn ==0.13.2 + - tensorflow-base 2.15.0 cpu_* # explicitly specify to use cpu version out from cpu_, cuda, eigen_, gpu_, or mkl_ in conda packages - umap-learn ==0.5.3 - - libopencv ==4.6.0 # install opencv in conda requires installing these 3 packages, headless version is used - - opencv ==4.6.0 - - py-opencv ==4.6.0 + - libopencv ==4.9.0 headless_* # install opencv in conda requires installing these 3 packages, headless version is used + - opencv ==4.9.0 + - py-opencv ==4.9.0 test: commands: @@ -51,18 +52,15 @@ test: - runImputation --help about: - home: "https://az7jh2.github.io/SDePER" + home: "https://az7jh2.github.io/SDePER/" license: MIT license_family: MIT license_file: LICENSE - summary: "Spatial Deconvolution method with Platform Effect Removal." - doc_url: "https://sdeper.readthedocs.io/en/latest" + summary: "Spatial Deconvolution method with Platform Effect Removal" + doc_url: "https://sdeper.readthedocs.io/en/latest/" dev_url: "https://github.com/az7jh2/SDePER" description: "SDePER (Spatial Deconvolution method with Platform Effect Removal) is a hybrid machine learning and regression method to deconvolve Spatial barcoding-based transcriptomic data using reference single-cell RNA sequencing data, considering platform effects removal, sparsity of cell types per capture spot and across-spots spatial correlation in cell type compositions. SDePER is also able to impute cell type compositions and gene expression at unmeasured locations in a tissue map with enhanced resolution." extra: recipe-maintainers: - az7jh2 - container: - # needs libGL.so.1 - extended-base: True From f82edb1a371fae953d434307956596ee62164d55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABtan=20BENOIT?= <79975313+GaetanBenoitDev@users.noreply.github.com> Date: Mon, 5 Aug 2024 18:11:37 +0200 Subject: [PATCH 1046/1514] Update metaMDBG to 1.0 (#49801) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build 1.0 * fixed lint errors * remove osx build --------- Co-authored-by: Gaëtan BENOIT --- recipes/metamdbg/0.3/build.sh | 14 ++++++++++++ recipes/metamdbg/0.3/meta.yaml | 41 ++++++++++++++++++++++++++++++++++ recipes/metamdbg/meta.yaml | 8 +++---- 3 files changed, 58 insertions(+), 5 deletions(-) create mode 100644 recipes/metamdbg/0.3/build.sh create mode 100644 recipes/metamdbg/0.3/meta.yaml diff --git a/recipes/metamdbg/0.3/build.sh b/recipes/metamdbg/0.3/build.sh new file mode 100644 index 0000000000000..6ca4ef93a91f9 --- /dev/null +++ b/recipes/metamdbg/0.3/build.sh @@ -0,0 +1,14 @@ +#!/bin/bash + + +mkdir -p $PREFIX/bin + +export CPATH=${PREFIX}/include + +mkdir build +cd build +cmake .. + +make + +cp ./bin/metaMDBG $PREFIX/bin diff --git a/recipes/metamdbg/0.3/meta.yaml b/recipes/metamdbg/0.3/meta.yaml new file mode 100644 index 0000000000000..7316c6c86c897 --- /dev/null +++ b/recipes/metamdbg/0.3/meta.yaml @@ -0,0 +1,41 @@ +{% set version = "0.3" %} + +package: + name: metamdbg + version: {{ version }} + +source: + url: https://github.com/GaetanBenoitDev/metaMDBG/archive/refs/tags/metaMDBG-{{ version }}.tar.gz + sha256: 24b34fcc7416b44081963a470059209c7f0592bd597a25388a94dae5edb2b09d + +build: + skip: True # [osx] + number: 0 + run_exports: + - {{ pin_subpackage('metamdbg', max_pin="x.x") }} + +requirements: + build: + - {{ compiler('cxx') }} + - cmake + - make + host: + - zlib + - openmp + run: + - zlib + - openmp + - wfmash =0.8.2 + - samtools =1.6 + - minimap2 =2.24 + - gsl =2.7 =he838d99_0 + +test: + commands: + - metaMDBG 2>&1 | grep 'Usage' + +about: + home: https://github.com/GaetanBenoitDev/metaMDBG + license: MIT + summary: 'MetaMDBG: a lightweight assembler for long and accurate metagenomics reads.' + diff --git a/recipes/metamdbg/meta.yaml b/recipes/metamdbg/meta.yaml index 7316c6c86c897..3d46090812f17 100644 --- a/recipes/metamdbg/meta.yaml +++ b/recipes/metamdbg/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.3" %} +{% set version = "1.0" %} package: name: metamdbg @@ -6,7 +6,7 @@ package: source: url: https://github.com/GaetanBenoitDev/metaMDBG/archive/refs/tags/metaMDBG-{{ version }}.tar.gz - sha256: 24b34fcc7416b44081963a470059209c7f0592bd597a25388a94dae5edb2b09d + sha256: 6e759e1bed8977e5c44ad0314eecb328747e11cb0546510d23e8802862fd2d36 build: skip: True # [osx] @@ -25,10 +25,8 @@ requirements: run: - zlib - openmp - - wfmash =0.8.2 - - samtools =1.6 - minimap2 =2.24 - - gsl =2.7 =he838d99_0 + - time =1.8 test: commands: From 078dfd6a6940e7f8f05d50ededf4ca15a7654e45 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 13:38:01 -0400 Subject: [PATCH 1047/1514] Update wfmash to 0.18.0 (#49807) --- recipes/wfmash/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/wfmash/meta.yaml b/recipes/wfmash/meta.yaml index c973a63f23d8c..cc440afd74bf9 100644 --- a/recipes/wfmash/meta.yaml +++ b/recipes/wfmash/meta.yaml @@ -1,5 +1,5 @@ {% set name = "wfmash" %} -{% set version = "0.17.0" %} +{% set version = "0.18.0" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: https://github.com/waveygang/{{ name }}/releases/download/v{{ version }}/{{ name }}-v{{ version }}.tar.gz - sha256: 9d1a9c7c2635fdd617360746d0bd2b5cdf9f775c42247ecf80a81ba585bd54d4 + sha256: 8a86254dec1fa972cf4f15aa8eb2a21a8c241c1d28df4bcc8c6b10cce77cd510 build: skip: True # [osx] From c4682abc78fafa7d86004b602a09b614e2556f66 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 15:01:06 -0400 Subject: [PATCH 1048/1514] Update sdrf-pipelines to 0.0.29 (#49810) --- recipes/sdrf-pipelines/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sdrf-pipelines/meta.yaml b/recipes/sdrf-pipelines/meta.yaml index 19d25a6692e31..bd2ce8164a5f2 100644 --- a/recipes/sdrf-pipelines/meta.yaml +++ b/recipes/sdrf-pipelines/meta.yaml @@ -1,6 +1,6 @@ {% set name = "sdrf-pipelines" %} {% set pypi_name = "sdrf_pipelines" %} -{% set version = "0.0.28" %} +{% set version = "0.0.29" %} package: name: "{{ name|lower }}" @@ -8,7 +8,7 @@ package: source: url: "https://pypi.io/packages/source/{{ pypi_name[0] }}/{{ pypi_name }}/{{ pypi_name }}-{{ version }}.tar.gz" - sha256: b9978c4599a0e04e157392a2adc35a8a613ce40d88f6b89eee592af667d088dd + sha256: 730d198ce879f864181aa5e567c51273ce95212c9394df84840a0e1896d644f1 build: number: 0 From 46bc45b905dccb7f5eb235bbd049f6aabe7d8225 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 15:34:19 -0400 Subject: [PATCH 1049/1514] Update pgscatalog.match to 0.3.1 (#49808) --- recipes/pgscatalog.match/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pgscatalog.match/meta.yaml b/recipes/pgscatalog.match/meta.yaml index fbf8c49332f44..7b5debb7c3471 100644 --- a/recipes/pgscatalog.match/meta.yaml +++ b/recipes/pgscatalog.match/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pgscatalog.match" %} -{% set version = "0.3.0" %} +{% set version = "0.3.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pgscatalog_match-{{ version }}.tar.gz - sha256: ebebc432448559f7bc9a543acc029e3aa6944eef98f5d735f6750ef3aeb79e6f + sha256: 316feb3337298ac54a2b8aa5baa68bb9144acc1f38795cce628d8cd9b2e3b7c1 build: number: 0 From 97fab06f8dcc97226d70cbeb893883c119656803 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 15:34:25 -0400 Subject: [PATCH 1050/1514] Update pgscatalog-utils to 1.3.1 (#49809) --- recipes/pgscatalog-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pgscatalog-utils/meta.yaml b/recipes/pgscatalog-utils/meta.yaml index 6208f5eea7eac..f75bb5bdd2eca 100644 --- a/recipes/pgscatalog-utils/meta.yaml +++ b/recipes/pgscatalog-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pgscatalog-utils" %} -{% set version = "1.3.0" %} +{% set version = "1.3.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pgscatalog_utils-{{ version }}.tar.gz - sha256: ec6a397a81891860256707d3b25d6615ddee705dd744822f886fbadf16419ab3 + sha256: 7816a0de184e385a1afeec153a5079f751ccda578d702af91391be389c0f09a7 build: noarch: python From e572f92a927d8ca35a23e6b6c8c4b7712db49f75 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 15:34:35 -0400 Subject: [PATCH 1051/1514] Update mycotools to 0.31.45 (#49811) --- recipes/mycotools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index 76525f003da4e..13bac43437c45 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mycotools" %} -{% set version = "0.31.44" %} +{% set version = "0.31.45" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mycotools-{{ version }}.tar.gz - sha256: 48eb2b467fffbf8e4c681378b3a17d2ca127e0ed122dc41d8f2ef9b52984cc29 + sha256: 6754e065060db21fb68296bbe3ab008010eaf3b5c464664db737dd37e3fc02c5 build: entry_points: From c93672ca0cdf846d92d1a56bf6f8e03478d3fd24 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 15:34:52 -0400 Subject: [PATCH 1052/1514] Update allo to 1.1.2 (#49812) --- recipes/allo/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/allo/meta.yaml b/recipes/allo/meta.yaml index 3fa7b1a6eed24..f87b34e141165 100644 --- a/recipes/allo/meta.yaml +++ b/recipes/allo/meta.yaml @@ -1,5 +1,5 @@ {% set name = "allo" %} -{% set version = "1.1.1" %} +{% set version = "1.1.2" %} package: name: {{ name }} @@ -7,12 +7,12 @@ package: source: url: https://pypi.io/packages/source/b/bio-{{ name }}/bio_allo-{{ version }}.tar.gz - sha256: b72bcbd900965e8b2fbbc17b174b44a8938994a4aeb8d532fb6f6a52b115b69e + sha256: 116390a306d76ae8986762292b51e85de710a36e56d532ae7e3cc4df5796befc build: run_exports: - {{ pin_subpackage('allo', max_pin="x") }} - number: 1 + number: 0 noarch: python script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv From c683040770bfa7c6664a986c95fd14b2b4740242 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 15:35:09 -0400 Subject: [PATCH 1053/1514] Update easypqp to 0.1.49 (#49813) --- recipes/easypqp/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/easypqp/meta.yaml b/recipes/easypqp/meta.yaml index 69f9dba6117d2..d4de88853b783 100644 --- a/recipes/easypqp/meta.yaml +++ b/recipes/easypqp/meta.yaml @@ -1,6 +1,6 @@ {% set name = "easypqp" %} -{% set version = "0.1.48" %} -{% set sha256 = "417dd35c421d1d61cade8e6989777c6ef93823da6a53c1c2c540a0a2676a0db6" %} +{% set version = "0.1.49" %} +{% set sha256 = "96fffd59e617de0007f1fbe88ab223d605a7d4a4e94a7b4f4d4a94b4016e327c" %} package: name: {{ name|lower }} From 7bfcb274559f6e0665c26b0a97e3566e866bcc7e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 15:37:27 -0400 Subject: [PATCH 1054/1514] Update snakemake-storage-plugin-azure to 0.4.1 (#49815) --- recipes/snakemake-storage-plugin-azure/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-azure/meta.yaml b/recipes/snakemake-storage-plugin-azure/meta.yaml index 61f93de3b0722..1dbea32c465a1 100644 --- a/recipes/snakemake-storage-plugin-azure/meta.yaml +++ b/recipes/snakemake-storage-plugin-azure/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-azure" %} -{% set version = "0.4.0" %} +{% set version = "0.4.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_azure-{{ version }}.tar.gz - sha256: 7b3fd1479d3a2f3447891dbd27b84aeb7380f526b68147d7d8f7aceda14bda62 + sha256: 5200670ee317a572aa8fe843847a3b9810da1584543b84f69b804b54802db11b build: noarch: python From 5e19e3f89e9c13c8fc994ded35619c096cd1e406 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 15:37:40 -0400 Subject: [PATCH 1055/1514] Update harpy to 1.4.2 (#49814) --- recipes/harpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index 6d9987bb12a93..7447eeb08d075 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.4.1" %} -{% set sha256 = "389f391f1510e4fbaf582f8be32fe762fe792ea65f8c83cca4cf1e7237e442ef" %} +{% set version = "1.4.2" %} +{% set sha256 = "8e8beb3e0782fb9eac2bdeba4896ecdd46a690b8472ff8699684e65c77f6043d" %} package: name: harpy From 297bb6920b3f8275a2faa6a45b9d4b82e22f355d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 17:30:57 -0400 Subject: [PATCH 1056/1514] Update camlhmp to 0.3.0 (#49819) --- recipes/camlhmp/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/camlhmp/meta.yaml b/recipes/camlhmp/meta.yaml index b9cb984c17da0..470d2e32536d3 100644 --- a/recipes/camlhmp/meta.yaml +++ b/recipes/camlhmp/meta.yaml @@ -1,5 +1,5 @@ {% set name = "camlhmp" %} -{% set version = "0.2.2" %} +{% set version = "0.3.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/camlhmp/camlhmp-{{ version }}.tar.gz - sha256: 564b1bc900ce6d3474a66ae6e357733971a61620be79ddf566f36ac51b74e3c1 + sha256: c1b8d99bfc44396342169764c5240578da222e20ba4cbc4df79de59e77dc5936 build: noarch: python From 5878f33141c3597db015052b0609248750c42d03 Mon Sep 17 00:00:00 2001 From: John Marshall Date: Tue, 6 Aug 2024 10:09:38 +1200 Subject: [PATCH 1057/1514] Bump bioconda-repodata-patches for new libdeflate release (#49818) --- recipes/bioconda-repodata-patches/gen_patch_json.py | 2 +- recipes/bioconda-repodata-patches/meta.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/bioconda-repodata-patches/gen_patch_json.py b/recipes/bioconda-repodata-patches/gen_patch_json.py index cf04659f9a5d9..a6413dcc044c4 100755 --- a/recipes/bioconda-repodata-patches/gen_patch_json.py +++ b/recipes/bioconda-repodata-patches/gen_patch_json.py @@ -175,7 +175,7 @@ def _gen_new_index(repodata, subdir): if record_name in ['htslib', 'staden_io_lib', 'fastp', 'pysam'] and has_dep(record, 'libdeflate'): # skip deps that allow anything <1.3, which contained an incompatible library filename # TODO adjust the replacement (exclusive) upper bound each time a compatible new libdeflate is released - _pin_looser(fn, record, 'libdeflate', min_lower_bound='1.3', upper_bound='1.21') + _pin_looser(fn, record, 'libdeflate', min_lower_bound='1.3', upper_bound='1.22') # nanosim <=3.1.0 requires scikit-learn<=0.22.1 if record_name.startswith('nanosim') and has_dep(record, "scikit-learn") and version <= "3.1.0": diff --git a/recipes/bioconda-repodata-patches/meta.yaml b/recipes/bioconda-repodata-patches/meta.yaml index f269b23ddd758..dfacdaf368a45 100644 --- a/recipes/bioconda-repodata-patches/meta.yaml +++ b/recipes/bioconda-repodata-patches/meta.yaml @@ -1,6 +1,6 @@ package: name: bioconda-repodata-patches - version: 20240525 # ensure that this is the "current" date, and always higher than the latest version in master + version: 20240805 # ensure that this is the "current" date, and always higher than the latest version in master source: path: . From 49c67a8af08b21a9d77cec330e4384e3421f6e65 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 18:46:00 -0400 Subject: [PATCH 1058/1514] Update pyfaidx to 0.8.1.2 (#49820) --- recipes/pyfaidx/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pyfaidx/meta.yaml b/recipes/pyfaidx/meta.yaml index eb721ce14f0d7..f4b6ae4cbf1ca 100644 --- a/recipes/pyfaidx/meta.yaml +++ b/recipes/pyfaidx/meta.yaml @@ -1,12 +1,12 @@ -{% set version = "0.8.1.1" %} +{% set version = "0.8.1.2" %} package: name: pyfaidx version: {{ version }} source: - url: https://files.pythonhosted.org/packages/0e/32/a89e956d4f27bd8ab4d92f6b27e46386975add4ad13e54504012afa3d025/pyfaidx-0.8.1.1.tar.gz - sha256: 6f0482352619f2cc56003ca22321bdb0d0764b656795bc1e4062b1fa9b08686b + url: https://files.pythonhosted.org/packages/e0/36/68bfd77bcf675ccdc97d10e69ab2b52d43642301360fa8a55707916f1528/pyfaidx-0.8.1.2.tar.gz + sha256: d8452470455b1e778f93969447db8ea24deb4624c7c40769516459cb6f87bc33 build: number: 0 From 86c50c06667f669d5d9a0f467fb335fca8cbf5a8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 19:52:53 -0400 Subject: [PATCH 1059/1514] Update camlhmp to 0.3.1 (#49821) --- recipes/camlhmp/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/camlhmp/meta.yaml b/recipes/camlhmp/meta.yaml index 470d2e32536d3..4a40b11a65bb0 100644 --- a/recipes/camlhmp/meta.yaml +++ b/recipes/camlhmp/meta.yaml @@ -1,5 +1,5 @@ {% set name = "camlhmp" %} -{% set version = "0.3.0" %} +{% set version = "0.3.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/camlhmp/camlhmp-{{ version }}.tar.gz - sha256: c1b8d99bfc44396342169764c5240578da222e20ba4cbc4df79de59e77dc5936 + sha256: 5add4f82f4cc70bb5192a0bbe4fc3a6263aaa51353ddd0eb17833ec75ec1d008 build: noarch: python From a3bd052216d970eb037706b8801e7aec9891e085 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 5 Aug 2024 20:58:07 -0400 Subject: [PATCH 1060/1514] Update oarfish to 0.5.1 (#49825) --- recipes/oarfish/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/oarfish/meta.yaml b/recipes/oarfish/meta.yaml index 3cc1e8a8739a8..ad46a7b90f03d 100644 --- a/recipes/oarfish/meta.yaml +++ b/recipes/oarfish/meta.yaml @@ -1,17 +1,17 @@ -{% set version = "0.5.0" %} +{% set version = "0.5.1" %} package: name: oarfish version: {{ version }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage("oarfish", max_pin="x.x") }} source: url: https://github.com/COMBINE-lab/oarfish/archive/v{{ version }}.tar.gz - sha256: 2fcaeca31f7e1c9870dd200ce0fd4163b58e8e945015ad00d06e8a98cf4921f6 + sha256: 83fe964065c1068be8085eaf36ce436d8199577d2647fa52138046ccc253d62b requirements: build: @@ -32,4 +32,4 @@ about: extra: additional-platforms: - linux-aarch64 - - osx-arm64 \ No newline at end of file + - osx-arm64 From 5a91a642ec8241ac1eff8c4de75d051806e5fc50 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 00:26:39 -0400 Subject: [PATCH 1061/1514] Update pytaxonkit to 0.9.1 (#49828) --- recipes/pytaxonkit/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pytaxonkit/meta.yaml b/recipes/pytaxonkit/meta.yaml index 8da2b003b8ae3..09bd980293a67 100644 --- a/recipes/pytaxonkit/meta.yaml +++ b/recipes/pytaxonkit/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.9" %} -{% set sha256 = "539ae750fef3d213b669645359dbd4758e28950981a72a35755a852cd8f50358" %} +{% set version = "0.9.1" %} +{% set sha256 = "68d004622a506cc65c634b57c0b27adec475b0532fbf3a6075a0ecdad3ff5f85" %} package: name: pytaxonkit From f44db059a839afa2217cb42b0f44fab7ecbaf1d6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 00:27:07 -0400 Subject: [PATCH 1062/1514] Update segul to 0.22.0 (#49827) --- recipes/segul/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/segul/meta.yaml b/recipes/segul/meta.yaml index 533dbc3be7fad..a64eb2fd5a37c 100644 --- a/recipes/segul/meta.yaml +++ b/recipes/segul/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.21.3" %} +{% set version = "0.22.0" %} package: name: segul @@ -6,7 +6,7 @@ package: source: url: https://github.com/hhandika/segul/archive/refs/tags/v{{ version }}.tar.gz - sha256: 099ce274900bddadac4cf6a917ad34712551f11f6412ca89b315dec881462b47 + sha256: aa50dcfda557262f0a29a8e6be915c327392a10944492b21b42467306d53ed24 build: number: 0 From 250ac9cbafdfd61aa7ec165a7bc8a0cb80a14c64 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 00:32:21 -0400 Subject: [PATCH 1063/1514] Update orthanq to 1.7.1 (#49822) --- recipes/orthanq/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/orthanq/meta.yaml b/recipes/orthanq/meta.yaml index 0b9d61c3201e0..61374a7b9a177 100644 --- a/recipes/orthanq/meta.yaml +++ b/recipes/orthanq/meta.yaml @@ -1,18 +1,18 @@ -{% set version = "1.7.0" %} +{% set version = "1.7.1" %} package: name: orthanq version: {{ version }} build: - number: 2 + number: 0 skip: True # [osx] run_exports: - {{ pin_subpackage("orthanq", max_pin="x") }} source: url: https://github.com/orthanq/orthanq/archive/v{{ version }}.tar.gz - sha256: 7c6c93c47f31bb357210103573e38bed762a3435bdf44bccb0a8740dd15d427c + sha256: 1e918960bd307cdd7d21ef341d1f0827abe8bb243bb4c15266c957dc5b70c07b requirements: build: From 962eacae95f10984e3334c3140e0948a078f2f4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bertrand=20N=C3=A9ron?= Date: Tue, 6 Aug 2024 06:43:54 +0200 Subject: [PATCH 1064/1514] Update Macsyfinder to 2.1.4 (#49806) --- recipes/macsyfinder/meta.yaml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/recipes/macsyfinder/meta.yaml b/recipes/macsyfinder/meta.yaml index 6e61954c4f6c9..e8304f673014b 100644 --- a/recipes/macsyfinder/meta.yaml +++ b/recipes/macsyfinder/meta.yaml @@ -1,5 +1,5 @@ -{% set name = "MacSyFinder" %} -{% set version = "2.1.3" %} +{% set name = "macsyfinder" %} +{% set version = "2.1.4" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 28078e2e742598124aa216b7767db473290257dd265dbd9deafa687a9dbdf91a + sha256: 93af563a81cc33f7593fa145bb9def76d51e3ef500a073531685d642f77da1a5 build: noarch: python @@ -26,17 +26,19 @@ build: requirements: host: - pip - - python >=3.7 + - python >=3.10 run: - - python >=3.7 + - python >=3.10 - colorlog - PyYAML >=5.1.1 - packaging >=18.0 - networkx >=2.4 - - pandas >=1.1.5,<=1.4.3 + - pandas >=1.1.5,<=1.5.1 - colorama >=0.4.4 - certifi - hmmer >=3.1b2,<=3.3.2 + - git >1.7.0 + - gitpython >=3.1.30 test: commands: @@ -56,4 +58,4 @@ extra: - bneron identifiers: - biotools:macsyfinder - - doi:10.1371/journal/pone.0110726 + - doi:10.24072/pcjournal.250 From 6741b0af2804a5add0ddc3fec4eb2bd39c7bbd1d Mon Sep 17 00:00:00 2001 From: sverre-branders <154252137+sverre-branders@users.noreply.github.com> Date: Tue, 6 Aug 2024 06:45:45 +0200 Subject: [PATCH 1065/1514] Update voyager (#49803) --- recipes/voyager/build.sh | 4 ++-- recipes/voyager/meta.yaml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/recipes/voyager/build.sh b/recipes/voyager/build.sh index 110e53095ec3f..e2ebb55accdc9 100755 --- a/recipes/voyager/build.sh +++ b/recipes/voyager/build.sh @@ -7,8 +7,8 @@ cp voyager-combine-cli $PREFIX/bin/ cp voyager-debug-index $PREFIX/bin/ mkdir -p "$PREFIX/lib" -cp voyager-monitor-0.1.0-SNAPSHOT.jar $PREFIX/lib/ +cp voyager-monitor-$PKG_VERSION-SNAPSHOT.jar $PREFIX/lib/ echo '#!/bin/bash' > ${PREFIX}/bin/voyager-monitor -echo 'java -jar "'$PREFIX'/lib/voyager-monitor-1.0.00-SNAPSHOT.jar" "$@"' >> $PREFIX/bin/voyager-monitor +echo 'java -jar "'$PREFIX'/lib/voyager-monitor-'$PKG_VERSION'-SNAPSHOT.jar" "$@"' >> $PREFIX/bin/voyager-monitor chmod +x "${PREFIX}/bin/voyager-monitor" diff --git a/recipes/voyager/meta.yaml b/recipes/voyager/meta.yaml index dc5947046d51d..9fc6c50e7f52c 100755 --- a/recipes/voyager/meta.yaml +++ b/recipes/voyager/meta.yaml @@ -1,13 +1,13 @@ -{% set version = "0.1.0" %} +{% set version = "0.1.1" %} {% set base = "https://bitbucket.org/sverre-phd-work/voyager/downloads" %} -{% set sha256 = "57a87fb9878a25a3848c1bde6f6f873fd154ff6f1b229b09afccf602d3ea82a9" %} +{% set sha256 = "912bf5998095095faa291d504946763e8b31da3bf3bff3a250ac51f5f214948e" %} package: name: voyager version: '{{version}}' source: - url: {{base}}/voyager-linux64-v{{version}}.tar.gz + url: {{base}}/voyager-noarch64-v{{version}}.tar.gz sha256: '{{sha256}}' build: From 477ff1d845b135e52138aa1d27dff216122b3e75 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 01:34:07 -0400 Subject: [PATCH 1066/1514] Update pbptyper to 2.0.0 (#49830) * Update pbptyper to 2.0.0 * update depends * add run_exports --------- Co-authored-by: Robert A. Petit III --- recipes/pbptyper/build.sh | 20 ++++++++++---------- recipes/pbptyper/meta.yaml | 13 +++++-------- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/recipes/pbptyper/build.sh b/recipes/pbptyper/build.sh index 88bd3103facb5..5c332818d61da 100644 --- a/recipes/pbptyper/build.sh +++ b/recipes/pbptyper/build.sh @@ -1,12 +1,12 @@ -#! /bin/bash +#!/bin/bash -# Set up defaults -PBPTYPER_SHARE="share/${PKG_NAME}-${PKG_VERSION}" -mkdir -p ${PREFIX}/${PBPTYPER_SHARE} -mkdir -p ${PREFIX}/bin +mkdir -p $PREFIX/bin ${PREFIX}/share/pbptyper -# Make Bioconda compatible -cp db/*.faa ${PREFIX}/${PBPTYPER_SHARE}/ -cp db/GCF_000006885.fna.gz ${PREFIX}/${PBPTYPER_SHARE}/ -sed "s=\"bin\", \"db\"=\"bin\", \"$PBPTYPER_SHARE\"=" bin/pbptyper > ${PREFIX}/bin/pbptyper -chmod 755 ${PREFIX}/bin/pbptyper +# Copy wrapper +chmod 755 bin/pbptyper bin/pbptyper-bioconda +cp -f bin/pbptyper $PREFIX/bin/pbptyper-main +cp -f bin/pbptyper-bioconda $PREFIX/bin/pbptyper + +# Copy schema (~100kb) +cp -f data/pbptyper.yaml ${PREFIX}/share/pbptyper +cp -f data/pbptyper.fasta ${PREFIX}/share/pbptyper diff --git a/recipes/pbptyper/meta.yaml b/recipes/pbptyper/meta.yaml index 56ec838faad24..76adfdc4e82ae 100644 --- a/recipes/pbptyper/meta.yaml +++ b/recipes/pbptyper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pbptyper" %} -{% set version = "1.0.4" %} +{% set version = "2.0.0" %} package: name: {{ name | lower }} @@ -7,25 +7,22 @@ package: source: url: https://github.com/rpetit3/pbptyper/archive/v{{ version }}.tar.gz - sha256: d112637db40212d87217ee18e692c4d5d5be6ab10845d658165a1c8fc83b03b3 + sha256: a51de405ff4a64687cba129096b0e67fb8388cb932f66858a1c5745393df0441 build: number: 0 noarch: generic + run_exports: + - {{ pin_subpackage(name, max_pin='x.x') }} requirements: run: - - blast - - executor - - fastani - - python >=3.7 - - rich-click + - camlhmp >=0.3.1 test: commands: - pbptyper --version - pbptyper --help - - pbptyper --check about: home: "https://github.com/rpetit3/pbptyper" From cf45bc6abb800ce3fbf19b271fd1854bea4acd97 Mon Sep 17 00:00:00 2001 From: Vijini Mallawaarachchi Date: Tue, 6 Aug 2024 16:17:10 +0930 Subject: [PATCH 1067/1514] Add graphbin2 v1.3.1 (#49829) * Add graphbin2 v1.3.1 * Update meta.yaml * Update meta.yaml * Update meta.yaml --- recipes/graphbin2/meta.yaml | 52 +++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 recipes/graphbin2/meta.yaml diff --git a/recipes/graphbin2/meta.yaml b/recipes/graphbin2/meta.yaml new file mode 100644 index 0000000000000..e1976a97ce5e1 --- /dev/null +++ b/recipes/graphbin2/meta.yaml @@ -0,0 +1,52 @@ +{% set name = "GraphBin2" %} +{% set version = "1.3.1" %} + +package: + name: "{{ name|lower }}" + version: "{{ version }}" + +source: + url: "https://github.com/metagentools/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz" + sha256: 4086cc93980a4c964da2b9d0ae84eaf3aa4a6b9c01aa23b2c2d965bf85cef5f2 + +build: + number: 0 + noarch: python + run_exports: + - {{ pin_subpackage('graphbin2', max_pin="x.x") }} + script: + - "{{ PYTHON }} -m pip install . -vv" + +requirements: + host: + - pip + - python + - flit-core + run: + - cairocffi + - python >=3.9 + - python-igraph + - cogent3 + - tqdm + - click + - scipy + +test: + commands: + - graphbin2 --help + +about: + home: "https://github.com/metagentools/GraphBin2" + license: BSD-3 + license_file: LICENSE + summary: "GraphBin2: Refined and Overlapped Binning of Metagenomic Contigs Using Assembly Graphs" + description: | + GraphBin2 is a metagenomic contig bin-refinement tool that makes use of assembly graphs and can assign contigs to multiple bins. + doc_url: "https://graphbin2.readthedocs.io/" + dev_url: "https://github.com/metagentools/GraphBin2" + +extra: + recipe-maintainers: + - Vini2 + identifiers: + - doi:10.1186/s13015-021-00185-6 From bc18b23e5fbd84bcb536ec8650d585aea5d581de Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 05:06:59 -0400 Subject: [PATCH 1068/1514] Update mehari to 0.26.0 (#48552) * Update mehari to 0.26.0 * Add linux-aarch64 build. Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: mencian Co-authored-by: Till Hartmann Co-authored-by: Martin Tzvetanov Grigorov Co-authored-by: Till Hartmann --- recipes/mehari/build.sh | 4 ++-- recipes/mehari/fix-release-profile.patch | 14 ++++++++++++++ recipes/mehari/meta.yaml | 23 +++++++++++++++-------- 3 files changed, 31 insertions(+), 10 deletions(-) create mode 100644 recipes/mehari/fix-release-profile.patch diff --git a/recipes/mehari/build.sh b/recipes/mehari/build.sh index 62fe997e4df96..4bbfddb620755 100644 --- a/recipes/mehari/build.sh +++ b/recipes/mehari/build.sh @@ -1,6 +1,6 @@ -#!/bin/bash -eu +#!/bin/bash -xeuo # Make sure bindgen passes on our compiler flags. export BINDGEN_EXTRA_CLANG_ARGS="${CPPFLAGS} ${CFLAGS} ${LDFLAGS}" -cargo install --no-track --locked --verbose --root "${PREFIX}" --path . +cargo install --no-track --locked --root "${PREFIX}" --path . diff --git a/recipes/mehari/fix-release-profile.patch b/recipes/mehari/fix-release-profile.patch new file mode 100644 index 0000000000000..78f2c5e59cc6d --- /dev/null +++ b/recipes/mehari/fix-release-profile.patch @@ -0,0 +1,14 @@ +diff --git a/Cargo.toml b/Cargo.toml +index 58c9882..c1ac205 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -111,8 +111,7 @@ opt-level = 3 + + [profile.release] + debug = false +-lto = "fat" +-codegen-units = 1 ++codegen-units = 8 + + [profile.dev] + debug = true diff --git a/recipes/mehari/meta.yaml b/recipes/mehari/meta.yaml index 4dce1d8acc046..407cffb19171f 100644 --- a/recipes/mehari/meta.yaml +++ b/recipes/mehari/meta.yaml @@ -1,33 +1,34 @@ -{% set version = "0.25.5" %} -{% set sha256 = "4986b6249fdc4e726e9494c55340234f50307fc4442e4683ecf18c1bd6ace8fd" %} +{% set version = "0.26.0" %} +{% set sha256 = "b70c46074b8b2cadf20664cbea7f4c1e4628db531068d0f08c955c747540be32" %} package: name: mehari version: {{ version }} +source: + url: https://github.com/varfish-org/mehari/archive/v{{ version }}.tar.gz + sha256: {{ sha256 }} + patches: + - fix-release-profile.patch + build: skip: True # [osx] number: 0 run_exports: - {{ pin_subpackage("mehari", max_pin="x.x") }} -source: - url: https://github.com/varfish-org/mehari/archive/v{{ version }}.tar.gz - sha256: {{ sha256 }} - requirements: build: - {{ compiler('c') }} - {{ compiler('cxx') }} - {{ compiler('rust') }} - cmake - - protobuf - make - pkg-config - - rust >=1.64 host: - clangdev - openssl + - protobuf - sqlite - zlib run: @@ -40,4 +41,10 @@ test: about: home: https://github.com/varfish-org/mehari license: MIT + license_family: MIT summary: VEP-like tool for sequence ontology and HGVS annotation of VCF files written in Rust. + dev_url: https://github.com/varfish-org/mehari + +extra: + additional-platforms: + - linux-aarch64 From 18894bfbf7753344a8a3ba2f5cae02dbc1e31f10 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 05:33:33 -0400 Subject: [PATCH 1069/1514] Update virheat to 0.7.1 (#49834) --- recipes/virheat/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/virheat/meta.yaml b/recipes/virheat/meta.yaml index b760fed750475..6b485917f485d 100644 --- a/recipes/virheat/meta.yaml +++ b/recipes/virheat/meta.yaml @@ -1,5 +1,5 @@ {% set name = "virheat" %} -{% set version = "0.7" %} +{% set version = "0.7.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/virheat-{{ version }}.tar.gz - sha256: 9f50dc2b7517c5e1bc1c1ee7170395147e06fb08016d7c99b30d3271d366f463 + sha256: 142b62f05dfe91b9d04a8fe3e7b27d0d20e502dbfa3163d839666262143f67d6 build: entry_points: From 46d7f01e956961bf0504d143eabf49838524cdcc Mon Sep 17 00:00:00 2001 From: Anna Zhukova Date: Tue, 6 Aug 2024 11:39:42 +0200 Subject: [PATCH 1070/1514] phylodeep_data_bdss package (needed for phylodeep) (#49824) * phylodeep_data_bdss * Update recipes/phylodeep_data_bdss/meta.yaml Co-authored-by: Martin Grigorov --------- Co-authored-by: Martin Grigorov --- recipes/phylodeep_data_bdss/meta.yaml | 42 +++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 recipes/phylodeep_data_bdss/meta.yaml diff --git a/recipes/phylodeep_data_bdss/meta.yaml b/recipes/phylodeep_data_bdss/meta.yaml new file mode 100644 index 0000000000000..7116090176840 --- /dev/null +++ b/recipes/phylodeep_data_bdss/meta.yaml @@ -0,0 +1,42 @@ +{% set name = "phylodeep_data_bdss" %} +{% set version = "0.3" %} + +package: + name: "{{ name|lower }}" + version: "{{ version }}" + +source: + url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" + sha256: 2af2db81208ac169ace415d0b4e68405a680283b744c450115f340e4bfa7071e + +build: + number: 0 + noarch: python + script: "{{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation" + run_exports: + - {{ pin_subpackage('phylodeep_data_bdss', max_pin="x.x") }} + +requirements: + host: + - pip + - python >=3 + run: + - python >=3 + - pandas >=1.0.0 + +test: + imports: + - phylodeep_data_bdss + commands: + - bdss_ci_paths --help + +about: + home: "https://github.com/evolbioinfo/phylodeep_data_bdss" + summary: "Package containing data for the phylodeep package." + license: GPL-3.0-or-later + license_family: GPL3 + license_file: LICENSE + +extra: + recipe-maintainers: + - annazhukova From 002196e7298c70f6ea61f005f06dcc6bc53c8313 Mon Sep 17 00:00:00 2001 From: Anna Zhukova Date: Tue, 6 Aug 2024 12:22:21 +0200 Subject: [PATCH 1071/1514] phylodeep_data_bd package (needed for phylodeep) (#49746) * phylodeep_data_bd package (needed for phylodeep) * Added pandas requirement * Update recipes/phylodeep_data_bd/meta.yaml Co-authored-by: Martin Grigorov --------- Co-authored-by: Martin Grigorov --- recipes/phylodeep_data_bd/meta.yaml | 42 +++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 recipes/phylodeep_data_bd/meta.yaml diff --git a/recipes/phylodeep_data_bd/meta.yaml b/recipes/phylodeep_data_bd/meta.yaml new file mode 100644 index 0000000000000..424be8df088a7 --- /dev/null +++ b/recipes/phylodeep_data_bd/meta.yaml @@ -0,0 +1,42 @@ +{% set name = "phylodeep_data_bd" %} +{% set version = "0.6" %} + +package: + name: "{{ name|lower }}" + version: "{{ version }}" + +source: + url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" + sha256: ca0f0b48e743c1600c455596a6d5d11fea9e0a2ea94a3f116f421d753b6f0731 + +build: + number: 0 + noarch: python + script: "{{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation" + run_exports: + - {{ pin_subpackage('phylodeep_data_bd', max_pin="x.x") }} + +requirements: + host: + - pip + - python >=3 + run: + - python >=3 + - pandas >=1.0.0 + +test: + imports: + - phylodeep_data_bd + commands: + - bd_ci_paths --help + +about: + home: "https://github.com/evolbioinfo/phylodeep_data_bd" + summary: "Package containing data for the phylodeep package." + license: GPL-3.0-or-later + license_family: GPL3 + license_file: LICENSE + +extra: + recipe-maintainers: + - annazhukova From 4780ba6a9024a71b718b3788d804e23850a92d06 Mon Sep 17 00:00:00 2001 From: Anna Zhukova Date: Tue, 6 Aug 2024 12:23:04 +0200 Subject: [PATCH 1072/1514] phylodeep_data_bdei package (needed for phylodeep) (#49823) * phylodeep-data-bdei * fixed sha256 --- recipes/phylodeep_data_bdei/meta.yaml | 42 +++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 recipes/phylodeep_data_bdei/meta.yaml diff --git a/recipes/phylodeep_data_bdei/meta.yaml b/recipes/phylodeep_data_bdei/meta.yaml new file mode 100644 index 0000000000000..1095bf5354102 --- /dev/null +++ b/recipes/phylodeep_data_bdei/meta.yaml @@ -0,0 +1,42 @@ +{% set name = "phylodeep_data_bdei" %} +{% set version = "0.4" %} + +package: + name: "{{ name|lower }}" + version: "{{ version }}" + +source: + url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" + sha256: 59098286f611e21b264ccf0265351c27b3e51d1861f66d4fe9638136fd2828c3 + +build: + number: 0 + noarch: python + script: "{{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation" + run_exports: + - {{ pin_subpackage('phylodeep_data_bdei', max_pin="x.x") }} + +requirements: + host: + - pip + - python >=3 + run: + - python >=3 + - pandas >=1.0.0 + +test: + imports: + - phylodeep_data_bdei + commands: + - bdei_ci_paths --help + +about: + home: "https://github.com/evolbioinfo/phylodeep_data_bdei" + summary: "Package containing data for the phylodeep package." + license: GPL-3.0-or-later + license_family: GPL3 + license_file: LICENSE + +extra: + recipe-maintainers: + - annazhukova From df0f8d4298520841b75f5355e18be6274fd724df Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 06:23:28 -0400 Subject: [PATCH 1073/1514] Update snakemake-executor-plugin-slurm to 0.9.0 (#49835) --- recipes/snakemake-executor-plugin-slurm/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-executor-plugin-slurm/meta.yaml b/recipes/snakemake-executor-plugin-slurm/meta.yaml index e8990b4fa0189..dcd161f2ac530 100644 --- a/recipes/snakemake-executor-plugin-slurm/meta.yaml +++ b/recipes/snakemake-executor-plugin-slurm/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-executor-plugin-slurm" %} -{% set version = "0.8.0" %} +{% set version = "0.9.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_executor_plugin_slurm-{{ version }}.tar.gz - sha256: 7d097267484a306de45db5bbc5d499f8cc044fd1b661d5af3f179f1e0318fe41 + sha256: 1d527dc8d09daa194b4ced3360d06bce61001bfa78471ff35bd421c818fa4101 build: noarch: python From f4ebcbf4c4bc7c19d531d44f1e3eeccd027bb661 Mon Sep 17 00:00:00 2001 From: Max Date: Tue, 6 Aug 2024 14:51:21 +0200 Subject: [PATCH 1074/1514] Update mpra-data-access-portal to 0.1.9 (#49838) * upgrading mpra-data-access-portal to 0.1.9 * adding run_exports * remove not necessary libraries --------- Co-authored-by: Max Schubach --- recipes/mpra-data-access-portal/meta.yaml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/recipes/mpra-data-access-portal/meta.yaml b/recipes/mpra-data-access-portal/meta.yaml index a817b60e07d5f..a823556a22a5f 100644 --- a/recipes/mpra-data-access-portal/meta.yaml +++ b/recipes/mpra-data-access-portal/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.1.8" %} -{% set sha256 = "d505aa70ab9ed1bd60e031d98462b3eb187d4bca881dfec1b265c4d46840d3f1" %} +{% set version = "0.1.9" %} +{% set sha256 = "5ad25bbbe111b3ae96b324da69fa5799893401a7f280462871c18a13509c6164" %} package: name: mpra-data-access-portal @@ -10,7 +10,9 @@ source: sha256: {{ sha256 }} build: - number: 3 + run_exports: + - {{ pin_subpackage('mpra-data-access-portal', max_pin="x.x") }} + number: 0 noarch: generic requirements: @@ -24,7 +26,7 @@ requirements: - r-readr - r-stringr - r-plotly - - r-shinytest + - r-shinyvalidate - r-markdown test: From d6da18c7ff73e2acb0ef84b628cd76c791c7ffa6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 08:51:47 -0400 Subject: [PATCH 1075/1514] Update comparem2 to 2.11.1 (#49840) --- recipes/comparem2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/comparem2/meta.yaml b/recipes/comparem2/meta.yaml index 60d0db2a6c5fa..087cb1fc1f3c6 100644 --- a/recipes/comparem2/meta.yaml +++ b/recipes/comparem2/meta.yaml @@ -1,6 +1,6 @@ {% set name = "comparem2" %} -{% set version = "2.10.1" %} -{% set sha256 = "6689d7b7cd82fecf74a63a7f5cb014b5f3baac797445cce9957bc13e563f3cb8" %} +{% set version = "2.11.1" %} +{% set sha256 = "cc0979068e06490aca1582fe0590a14519307f82e14872ceece3be1555702ee4" %} package: name: {{ name }} From 8201f5e20a07c8872feef00b19b9166ebd3b129a Mon Sep 17 00:00:00 2001 From: "Thiseas C. Lamnidis" Date: Tue, 6 Aug 2024 14:52:35 +0200 Subject: [PATCH 1076/1514] Add KIN (#48200) * add kin recipe * typo * Linting * add latest dependencies from main * testing * cp and rename executables in bin * add host section * edit tests * Fixing python to 3.8 seems to fix argparse issue * reactivate KINgaroo test * try pinning python in host to 3.8 as well * Bump version. fixes empty metavar issues --------- Co-authored-by: mencian --- recipes/kin/meta.yaml | 56 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 recipes/kin/meta.yaml diff --git a/recipes/kin/meta.yaml b/recipes/kin/meta.yaml new file mode 100644 index 0000000000000..c54807c8b0640 --- /dev/null +++ b/recipes/kin/meta.yaml @@ -0,0 +1,56 @@ +{% set name = "KIN" %} +{% set version = "3.1.4" %} + +package: + name: "{{ name|lower }}" + version: "{{ version }}" + +source: + url: https://github.com/DivyaratanPopli/Kinship_Inference/archive/refs/tags/v{{ version }}.tar.gz + sha256: 29dbac786a863561b61d1773f75bbf5f2791c75751c798a327f9106ab20ad839 + +build: + number: 0 + noarch: python + script: + - "mkdir -p ${PREFIX}/bin" + - "{{ PYTHON }} -m pip install ./pypackage/kin -vvv --no-deps --no-build-isolation --no-cache-dir" + - "{{ PYTHON }} -m pip install ./pypackage/kingaroo -vvv --no-deps --no-build-isolation --no-cache-dir" + - "cp -f $(which KINgaroo) ${PREFIX}/bin/kingaroo" + - "cp -f $(which KIN) ${PREFIX}/bin/kin" + - "chmod 755 ${PREFIX}/bin/kingaroo ${PREFIX}/bin/kin" + run_exports: + - {{ pin_subpackage("kin", max_pin="x") }} + +requirements: + host: + - python =3.8 + - pip + run: + - python =3.8 + - scipy >=1.8.0 + - numpy >=1.21.1 + - pandas >=1.3.1 + - numba >=0.55.1 + - pysam >=0.19.0 + - pybedtools >=0.9.0 + - samtools >=1.15 + - bcftools >=1.15 + +test: + commands: + - kin --help + - kingaroo --help + +about: + home: "https://github.com/DivyaratanPopli/Kinship_Inference" + license: "GPL-3.0-only" + license_family: GPL3 + license_file: LICENCE + summary: "A tool to estimate pairwise relatedness from ancient DNA, taking in account contamination, ROH, ascertainment bias." + doc_url: "https://github.com/DivyaratanPopli/Kinship_Inference/blob/main/README.md" + dev_url: "https://github.com/DivyaratanPopli/Kinship_Inference" + +extra: + recipe-maintainers: + - TCLamnidis From e1d1ac97aedc7af50b247635a78f1e8873557995 Mon Sep 17 00:00:00 2001 From: Daniel Standage Date: Tue, 6 Aug 2024 08:54:12 -0400 Subject: [PATCH 1077/1514] Pin taxonkit>=0.17 (#49841) --- recipes/pytaxonkit/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pytaxonkit/meta.yaml b/recipes/pytaxonkit/meta.yaml index 09bd980293a67..b2e49cc2dd84e 100644 --- a/recipes/pytaxonkit/meta.yaml +++ b/recipes/pytaxonkit/meta.yaml @@ -14,7 +14,7 @@ build: - {{ pin_subpackage("pytaxonkit", max_pin="x.x") }} noarch: python script: {{ PYTHON }} -m pip install --no-deps --no-build-isolation . -vvv - number: 0 + number: 1 requirements: host: @@ -24,7 +24,7 @@ requirements: - python >=3,<3.12 - pandas >=1.0 - pytest >=5.4 - - taxonkit >=0.16 + - taxonkit >=0.17 test: imports: From 4638865e193eb3d38afa451df3fec47b241d45fd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 08:54:36 -0400 Subject: [PATCH 1078/1514] Update bamdash to 0.3 (#49842) --- recipes/bamdash/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/bamdash/meta.yaml b/recipes/bamdash/meta.yaml index 2a77d75331151..c245a749ceb5c 100644 --- a/recipes/bamdash/meta.yaml +++ b/recipes/bamdash/meta.yaml @@ -1,5 +1,5 @@ {% set name = "bamdash" %} -{% set version = "0.2.4" %} +{% set version = "0.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/bamdash-{{ version }}.tar.gz - sha256: 9e9d81cb5cefbb2f356d1a1e05ffc84bcaee0cfbfd16b5e92d905817337ea4e8 + sha256: aca6cf247961b7d1e50afa7fe121056ed6039c918d68d8c816f60bc331a7d876 build: entry_points: From 38f7325a4d9dd2e68a3d0274ab652b081e1d1e0d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 08:55:04 -0400 Subject: [PATCH 1079/1514] Update ebi-eva-common-pyutils to 0.6.10 (#49843) --- recipes/ebi-eva-common-pyutils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ebi-eva-common-pyutils/meta.yaml b/recipes/ebi-eva-common-pyutils/meta.yaml index 98e6fd2a8d6d6..f06b115b8bb5c 100644 --- a/recipes/ebi-eva-common-pyutils/meta.yaml +++ b/recipes/ebi-eva-common-pyutils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ebi-eva-common-pyutils" %} -{% set version = "0.6.9" %} +{% set version = "0.6.10" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/ebi_eva_common_pyutils-{{ version }}.tar.gz - sha256: 073b60a4349d3ad540453ee1983bcbbe200cf744242f421bb4ba019cd60eb9a7 + sha256: f143c703e31f40c94ebe366ba5f8a8247b6c825590ac157a7f5495f36aa7accb build: script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation From 7b8af24fa241ccc0f34095f4c08b162f7e13b577 Mon Sep 17 00:00:00 2001 From: Kez Cleal <42997789+kcleal@users.noreply.github.com> Date: Tue, 6 Aug 2024 13:55:58 +0100 Subject: [PATCH 1080/1514] GW - Fixing missing libs for mamba build (#49844) --- recipes/gw/meta.yaml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/recipes/gw/meta.yaml b/recipes/gw/meta.yaml index 919a9ab11e2f2..d91101eaef266 100644 --- a/recipes/gw/meta.yaml +++ b/recipes/gw/meta.yaml @@ -16,7 +16,7 @@ source: build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('gw', max_pin="x") }} @@ -47,12 +47,20 @@ requirements: - xorg-libxcb # [linux] - expat # [linux] run: + - {{ cdt('xorg-x11-proto-devel') }} # [linux] + - {{ cdt('mesa-libgl-devel') }} # [linux] + - {{ cdt('mesa-dri-drivers') }} # [linux] + - {{ cdt('libselinux') }} # [linux] + - {{ cdt('libxdamage') }} # [linux] + - {{ cdt('libxxf86vm') }} # [linux] + - {{ cdt('libxfixes') }} # [linux] + - {{ cdt('libxext') }} # [linux] - glfw >=3.3 - htslib >=1.12 test: commands: - - gw --version + - gw hg19 -b https://github.com/kcleal/gw/releases/download/v1.0.0/demo1.bam -r chr8:37047270-37055161 -n > test.png; ls -lh test.png about: home: https://github.com/kcleal/gw From 54eae884586e36e5065876787ca9e6a4c000a3d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gr=C3=BCning?= Date: Tue, 6 Aug 2024 16:18:46 +0200 Subject: [PATCH 1081/1514] add flexynesis (#49433) * add flexynesis * Apply suggestions from code review * Update meta.yaml * Update meta.yaml * Apply suggestions from code review Co-authored-by: Amirhossein <66441226+nilchia@users.noreply.github.com> --------- Co-authored-by: Amirhossein <66441226+nilchia@users.noreply.github.com> --- recipes/flexynesis/meta.yaml | 69 ++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 recipes/flexynesis/meta.yaml diff --git a/recipes/flexynesis/meta.yaml b/recipes/flexynesis/meta.yaml new file mode 100644 index 0000000000000..ffa6b599019c7 --- /dev/null +++ b/recipes/flexynesis/meta.yaml @@ -0,0 +1,69 @@ +{% set name = "flexynesis" %} +{% set version = "0.2.10" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/flexynesis-{{ version }}.tar.gz + sha256: e6faea383272ee0bdd2792a2d11e4c1682d898eea09008990aa1132a93e72b34 + +build: + entry_points: + - flexynesis = flexynesis.__main__:main + - flexynesis-cli = flexynesis.cli:main + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + run_exports: + - {{ pin_subpackage("flexynesis", max_pin="x.x.x") }} + +requirements: + host: + - python >=3.11,<3.12 + - setuptools + - pip + run: + - python >=3.11,<3.12 + - matplotlib-base + - numpy + - pandas + - lightning + - pyyaml + - scikit-optimize + - scipy + - seaborn + - pytorch + - torchvision + - tqdm + - umap-learn + - rich + - captum + - ipywidgets + - pytorch_geometric + - ipykernel + - lifelines + - papermill + - scikit-survival + - python-louvain + +test: + imports: + - flexynesis + commands: + - pip check + - flexynesis --help + requires: + - pip + +about: + home: https://github.com/BIMSBbioinfo/flexynesis + summary: "A deep-learning-based multi-omics bulk sequencing data integration suite with a focus on (pre-)clinical endpoint prediction." + license: OTHER + license_file: LICENSE + description: "This is a deep-learning based multi-omics bulk sequencing data integration suite with a focus on (pre-)clinical endpoint prediction." + +extra: + recipe-maintainers: + - bgruening From f04b4d6947bc85cda511b810599933fd8be2db02 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 6 Aug 2024 17:20:12 +0300 Subject: [PATCH 1082/1514] fastool: add aarch64/arm64 builds (#49850) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/fastool/build.sh | 5 ++++- recipes/fastool/meta.yaml | 7 ++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/recipes/fastool/build.sh b/recipes/fastool/build.sh index ac5ab35baba29..362baa4a9cd7e 100644 --- a/recipes/fastool/build.sh +++ b/recipes/fastool/build.sh @@ -1,4 +1,7 @@ #!/bin/bash -make CC="${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" + +set -xe + +make -j ${CPU_COUNT} CC="${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" install -d "${PREFIX}/bin" install fastool "${PREFIX}/bin/" diff --git a/recipes/fastool/meta.yaml b/recipes/fastool/meta.yaml index 70c066b830b35..c630514e19130 100644 --- a/recipes/fastool/meta.yaml +++ b/recipes/fastool/meta.yaml @@ -7,7 +7,9 @@ source: sha256: f86f02fced9479b77d6d27a442b66e66f0c55d40d5ad2ddd91a752de57024540 build: - number: 8 + number: 9 + run_exports: + - {{ pin_subpackage("fastool", max_pin="x.x") }} requirements: build: @@ -28,5 +30,8 @@ about: summary: A simple and quick tool to read huge FastQ and FastA files (both normal and gzipped) and manipulate them. extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 identifiers: - biotools:Fastool From d873ed1cecae0c25950b19f33ae6c171a965f746 Mon Sep 17 00:00:00 2001 From: raymond-u <36328498+raymond-u@users.noreply.github.com> Date: Tue, 6 Aug 2024 22:22:12 +0800 Subject: [PATCH 1083/1514] Update cospar to 0.4.1 (#49846) * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml --- recipes/cospar/meta.yaml | 60 ++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 33 deletions(-) diff --git a/recipes/cospar/meta.yaml b/recipes/cospar/meta.yaml index 01194971282e4..fda23a345219d 100644 --- a/recipes/cospar/meta.yaml +++ b/recipes/cospar/meta.yaml @@ -1,5 +1,5 @@ {% set name = "cospar" %} -{% set version = "0.3.3" %} +{% set version = "0.4.1" %} package: name: {{ name|lower }} @@ -7,59 +7,53 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/cospar-{{ version }}.tar.gz - sha256: 881ee97be1b1d7ecb6e642a91cc3f2f2d569bd410cc2d48a117ea48cde0ec345 + sha256: 36adadb839053189298a30b48e4726ba81efbc42d089e13d80da6b9001aac384 build: noarch: python - script: {{ PYTHON }} -m pip install . -vv + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation number: 0 run_exports: - {{ pin_subpackage('cospar', max_pin='x.x') }} requirements: host: - - python >=3.8 - - setuptools >=40.6.0 - - wheel + - python >=3.9,<3.12 + - poetry-core - pip - - matplotlib-base <3.8.0 - - scanpy >=1.6.0 - - fastcluster >=1.1.26 - - scikit-misc >=0.1.3 - - plotnine >=0.7.1 - - leidenalg >=0.7.0 - - ete3 >=3.1.2 - - ipywidgets - - gseapy >=0.9.13 run: - - python >=3.8 - - numpy >=1.19.4 - - scipy >=1.5.4 - - scikit-learn >=1.1.1 - - scanpy >=1.6.0 - - pandas >=1.1.4 - - statsmodels >=0.14.0 - - plotnine >=0.7.1 - - matplotlib-base <3.8.0 - - fastcluster >=1.1.26 - - anndata >=0.7.5 - - numba >=0.52.0 - - scikit-misc >=0.1.3 - - leidenalg >=0.7.0 - - ete3 >=3.1.2 - - ipywidgets - - gseapy >=0.9.13 + - python >=3.9,<3.12 + - anndata >=0.9.2,<0.10.0 + - ete3 >=3.1.3,<4.0.0 + - fastcluster >=1.2.6,<2.0.0 + - gseapy >=1.1.3,<2.0.0 + - leidenalg >=0.10.2,<0.11.0 + - matplotlib-base >=3.7.3,<3.8.0 + - numpy >=1.24.4,<2.0.0 + - pandas >=2.0.3,<3.0.0 + - plotnine >=0.12.4,<0.13.0 + - scanpy >=1.9.8,<2.0.0 + - scikit-learn >=1.1.3,<1.2.0 + - scikit-misc >=0.1.4,<0.3.0 + - scipy >=1.10.1,<2.0.0 + - statsmodels >=0.14.2,<0.15.0 + - tqdm >=4.66.5,<5.0.0 test: imports: - cospar + commands: + - pip check + requires: + - pip about: home: https://github.com/ShouWenWang-Lab/cospar - summary: 'CoSpar: integrating state and lineage information for dynamic inference' + summary: A toolkit for dynamic inference of cell fate by integrating state and lineage information. license: MIT license_file: LICENSE extra: recipe-maintainers: + - raymond-u - ShouWenWang From 2b164b2ad93222587a74a457fa5431f3f1429194 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 10:34:32 -0400 Subject: [PATCH 1084/1514] Update micom to 0.36.3 (#49848) --- recipes/micom/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/micom/meta.yaml b/recipes/micom/meta.yaml index 19788fb22ba0a..952d0e627826a 100644 --- a/recipes/micom/meta.yaml +++ b/recipes/micom/meta.yaml @@ -1,5 +1,5 @@ {% set name = "micom" %} -{% set version = "0.36.2" %} +{% set version = "0.36.3" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 0d046c51eb73c86d1f694853f99e7f4c86f1f3938af2932871412fea01fc9613 + sha256: 7fca46cd7886683d1e19587703b0f8ac80deea051f0d010c824e99e1c21b695d build: number: 0 From 8027d14dbba2d3159a8221dfe37b1381457cc97a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 12:01:12 -0400 Subject: [PATCH 1085/1514] Update tracegroomer to 0.1.4 (#49856) --- recipes/tracegroomer/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/tracegroomer/meta.yaml b/recipes/tracegroomer/meta.yaml index b85ee45217450..cba5bd1371551 100644 --- a/recipes/tracegroomer/meta.yaml +++ b/recipes/tracegroomer/meta.yaml @@ -1,5 +1,5 @@ {% set name = "tracegroomer" %} -{% set version = "0.1.3" %} +{% set version = "0.1.4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/tracegroomer-{{ version }}.tar.gz - sha256: d81c872e9ca5f52d10413c4b9c0aff3aa54cc977125b531229dd8a1e4e6a5cdf + sha256: be87034d1ac14622ff361c39e363a842ace6d40ab3a70be62a9a38e29a593c70 build: entry_points: From 83d387d1e11890ee315cecb0c179b2ff95b76c4b Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 6 Aug 2024 19:02:24 +0300 Subject: [PATCH 1086/1514] sage-proteomics: add aarch64/arm64 builds (#49854) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/sage-proteomics/build.sh | 4 +++- recipes/sage-proteomics/meta.yaml | 7 +++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/recipes/sage-proteomics/build.sh b/recipes/sage-proteomics/build.sh index 0d6a1d40a3126..7e288ae106038 100644 --- a/recipes/sage-proteomics/build.sh +++ b/recipes/sage-proteomics/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 -fcommon -I${PREFIX}/include ${LDFLAGS}" @@ -8,4 +10,4 @@ export CXXFLAGS="${CXXFLAGS} -O3 -fcommon -I${PREFIX}/include ${LDFLAGS}" export CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_HOME="$(pwd)/.cargo" # build statically linked binary with sage -RUST_BACKTRACE=1 cargo install --verbose -j 4 --root ${PREFIX} --path crates/sage-cli +RUST_BACKTRACE=1 cargo install --verbose -j ${CPU_COUNT} --root ${PREFIX} --path crates/sage-cli diff --git a/recipes/sage-proteomics/meta.yaml b/recipes/sage-proteomics/meta.yaml index 2e26967970fd3..185875e7a26e2 100644 --- a/recipes/sage-proteomics/meta.yaml +++ b/recipes/sage-proteomics/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('sage-proteomics', max_pin="x") }} @@ -18,8 +18,8 @@ source: requirements: build: - {{ compiler('c') }} + - {{ compiler('rust') }} host: - - rust >=1.70.0 test: commands: @@ -35,6 +35,9 @@ about: summary: "Proteomics searching so fast it feels like magic." extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - ypriverol - lazear From 75cf4c7bfa60bbd03738e08d365312b1b3f40970 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 6 Aug 2024 19:02:40 +0300 Subject: [PATCH 1087/1514] irfinder: add aarch64/arm64 builds (#49853) * irfinder: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * irfinder: update the github repo Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/irfinder/build.sh | 8 +++++--- recipes/irfinder/meta.yaml | 15 ++++++++++++--- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/recipes/irfinder/build.sh b/recipes/irfinder/build.sh index 1a87af2d43087..be08c698e0e13 100644 --- a/recipes/irfinder/build.sh +++ b/recipes/irfinder/build.sh @@ -1,8 +1,10 @@ #!/bin/sh -cd $SRC_DIR/src/irfinder && make && mv irfinder $SRC_DIR/bin/util -cd $SRC_DIR/src/trim && make && mv trim $SRC_DIR/bin/util -cd $SRC_DIR/src/winflat && make && mv winflat $SRC_DIR/bin/util +set -xe + +cd $SRC_DIR/src/irfinder && make -j ${CPU_COUNT} && mv irfinder $SRC_DIR/bin/util +cd $SRC_DIR/src/trim && make -j ${CPU_COUNT} && mv trim $SRC_DIR/bin/util +cd $SRC_DIR/src/winflat && make -j ${CPU_COUNT} && mv winflat $SRC_DIR/bin/util irfinder_home=$PREFIX/opt/irfinder-$PKG_VERSION mkdir -p $irfinder_home diff --git a/recipes/irfinder/meta.yaml b/recipes/irfinder/meta.yaml index b041a98420745..7066b218a6a5e 100644 --- a/recipes/irfinder/meta.yaml +++ b/recipes/irfinder/meta.yaml @@ -5,11 +5,13 @@ package: version: '{{ version }}' source: - url: https://github.com/williamritchie/IRFinder/archive/v{{ version }}.tar.gz + url: https://github.com/dgaolab/IRFinder/archive/refs/tags/v{{version}}.tar.gz sha256: 94fee8fdac37a5d51ae459d1b06c8d6ed0107752bf2535f207f787e3246ba8b2 build: - number: 4 + number: 5 + run_exports: + - {{ pin_subpackage("irfinder", max_pin="x") }} requirements: build: @@ -24,7 +26,14 @@ test: - IRFinder -v about: - home: https://github.com/williamritchie/IRFinder + home: https://github.com/dgaolab/IRFinder license: MIT license_family: MIT summary: Intron Retention Finder + dev_url: https://github.com/dgaolab/IRFinder + doc_url: https://github.com/williamritchie/IRFinder/wiki + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From d985ee3cb12c138f190e1963e48da53ce186db8f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 16:50:08 -0400 Subject: [PATCH 1088/1514] Update perl-term-table to 0.022 (#43014) --- recipes/perl-term-table/meta.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recipes/perl-term-table/meta.yaml b/recipes/perl-term-table/meta.yaml index f2e5c6f439f5b..90c7601d8941b 100644 --- a/recipes/perl-term-table/meta.yaml +++ b/recipes/perl-term-table/meta.yaml @@ -1,18 +1,20 @@ {% set name = "perl-term-table" %} -{% set version = "0.016" %} -{% set sha256 = "8fb4fbb8e96a2d6c514949eb8cfd7e66319bcb1cbf7cea0ab19af887a72d97bf" %} +{% set version = "0.022" %} +{% set sha256 = "b9dbdacfa7362846e3c4a100081832db9da74b7356828ef9d92869c44642e0b8" %} package: name: {{ name }} version: {{ version }} source: - url: https://cpan.metacpan.org/authors/id/E/EX/EXODIST/Term-Table-0.016.tar.gz + url: https://cpan.metacpan.org/authors/id/E/EX/EXODIST/Term-Table-0.022.tar.gz sha256: {{ sha256 }} build: noarch: generic number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} requirements: build: From 1e9e9e038de4204990c698b3ac11022951e29ee9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 16:54:36 -0400 Subject: [PATCH 1089/1514] Update ms2query to 1.5.1 (#49858) --- recipes/ms2query/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ms2query/meta.yaml b/recipes/ms2query/meta.yaml index 7e0654830d053..d7cc514c1073a 100644 --- a/recipes/ms2query/meta.yaml +++ b/recipes/ms2query/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ms2query" %} -{% set version = "1.5.0" %} -{% set sha256 = "7f72a7b2f4a6bf4b8d73e99e6708184decf34d36afe359fc38b3678561a44772" %} +{% set version = "1.5.1" %} +{% set sha256 = "cb1e46a18fa9bc75530975512f1e9fba40d1199d4e7203a4562261afd7b3f9bd" %} package: name: {{ name|lower }} From 33672b9b7a381d9d1d6fdfb25f047343d4d5cbdb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 16:55:23 -0400 Subject: [PATCH 1090/1514] Update chewbbaca to 3.3.10 (#49860) --- recipes/chewbbaca/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/chewbbaca/meta.yaml b/recipes/chewbbaca/meta.yaml index 0e07a8938b6ad..6b0161564da8c 100644 --- a/recipes/chewbbaca/meta.yaml +++ b/recipes/chewbbaca/meta.yaml @@ -1,5 +1,5 @@ {% set name = 'chewBBACA' %} -{% set version = '3.3.9' %} +{% set version = '3.3.10' %} package: name: {{ name|lower }} @@ -8,7 +8,7 @@ package: source: url: https://github.com/B-UMMI/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz # url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 7afef83a3e2bd7e451443073ce6f08bc2a9c2149ec9b23bc2be488553bc62169 + sha256: bb3f3bbc81d3469c36d2038302ee32964c630d261dd9e5954aa3fdcb46728c0c # sha256: b54c5f4fb2f3c943f9ec51e5b81f4fb9a312fcc87fdea6e0a9f3edbebdf62308 build: From b8898e1cc4e422295b0e4ab02c11d619ee406c3d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 16:58:10 -0400 Subject: [PATCH 1091/1514] Update phylodeep_data_bdss to 0.4 (#49859) --- recipes/phylodeep_data_bdss/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/phylodeep_data_bdss/meta.yaml b/recipes/phylodeep_data_bdss/meta.yaml index 7116090176840..e38d67480cc16 100644 --- a/recipes/phylodeep_data_bdss/meta.yaml +++ b/recipes/phylodeep_data_bdss/meta.yaml @@ -1,5 +1,5 @@ {% set name = "phylodeep_data_bdss" %} -{% set version = "0.3" %} +{% set version = "0.4" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 2af2db81208ac169ace415d0b4e68405a680283b744c450115f340e4bfa7071e + sha256: 2b97fb01e3babb969e786ba85074ab6799466903bbd351b3675b7099c3e17277 build: number: 0 From 70f29b274698f77aec82e011cf78aece35c98772 Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Tue, 6 Aug 2024 17:17:44 -0400 Subject: [PATCH 1092/1514] bump build number (#49847) --- recipes/blast/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/blast/meta.yaml b/recipes/blast/meta.yaml index a637fdd91d09e..da0a582f155e8 100644 --- a/recipes/blast/meta.yaml +++ b/recipes/blast/meta.yaml @@ -16,7 +16,7 @@ source: - update_configsub.patch build: - number: 1 + number: 2 run_exports: # Now, the point releases seem to be only bugfixes at least (but this definitely was not the # case up to v2.2.31) From 284abafd524622e96b90da1584047234e19c2b5b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 6 Aug 2024 19:25:59 -0400 Subject: [PATCH 1093/1514] Update snakemake-storage-plugin-azure to 0.4.2 (#49862) --- recipes/snakemake-storage-plugin-azure/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-azure/meta.yaml b/recipes/snakemake-storage-plugin-azure/meta.yaml index 1dbea32c465a1..09d9cb959f74e 100644 --- a/recipes/snakemake-storage-plugin-azure/meta.yaml +++ b/recipes/snakemake-storage-plugin-azure/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-azure" %} -{% set version = "0.4.1" %} +{% set version = "0.4.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_azure-{{ version }}.tar.gz - sha256: 5200670ee317a572aa8fe843847a3b9810da1584543b84f69b804b54802db11b + sha256: f1b0395e466fa2f6a20247a23c240b418240dbd6eaf7a55af3b34714594891f0 build: noarch: python From e5e9d1964cc129c691e5ea510f6d16cf30b394eb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 7 Aug 2024 02:14:04 -0400 Subject: [PATCH 1094/1514] Update seqerakit to 0.4.9 (#49863) --- recipes/seqerakit/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/seqerakit/meta.yaml b/recipes/seqerakit/meta.yaml index 1c05abe525a1c..115b311960b83 100644 --- a/recipes/seqerakit/meta.yaml +++ b/recipes/seqerakit/meta.yaml @@ -1,5 +1,5 @@ {% set name = "seqerakit" %} -{% set version = "0.4.8" %} +{% set version = "0.4.9" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/seqerakit-{{ version }}.tar.gz - sha256: 4d80b3e5230b1fbb29d191d36927fc59c696718447616cc9447cdf7bb5dafbbf + sha256: ecca8afc49498226a8c9ad81723a609ae324993e4352fd9561dd2ab657eff378 build: entry_points: From 3568a6aa33fec33d00329be357e33485089ddebf Mon Sep 17 00:00:00 2001 From: Anna Zhukova Date: Wed, 7 Aug 2024 09:12:03 +0200 Subject: [PATCH 1095/1514] Pybdei (#49526) * PyBDEI recipe * Added doi * Fixed name * fixing requirements > build * fixing requirements > build * fixing requirements > build * fixing requirements > build * package version constraints space-separated * added run_exports * version restriction formatting * version restriction formatting * avoiding wheel * added setuptools as build requirement * specified g++-10 * specified g++-10 * specified g++-10 * specified g++-10 * removed noarch * gxx * gxx * gxx * version 0.9 * numpy version * v0.10 * version 0.12 with the LICENCE file * gxx on linux * Update recipes/pybdei/meta.yaml Co-authored-by: Martin Grigorov * Update recipes/pybdei/meta.yaml Co-authored-by: Martin Grigorov * Update recipes/pybdei/meta.yaml Co-authored-by: Martin Grigorov * v0.13 * Update recipes/pybdei/meta.yaml Co-authored-by: Martin Grigorov --------- Co-authored-by: Martin Grigorov --- recipes/pybdei/meta.yaml | 68 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 recipes/pybdei/meta.yaml diff --git a/recipes/pybdei/meta.yaml b/recipes/pybdei/meta.yaml new file mode 100644 index 0000000000000..8b263e9ba7d22 --- /dev/null +++ b/recipes/pybdei/meta.yaml @@ -0,0 +1,68 @@ +{% set name = "pybdei" %} +{% set version = "0.13" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybdei-{{ version }}.tar.gz + sha256: 4fcd3950aa60a25538bb8716a88ed5d5b24f63b1deebf1828e2e0ea9ac45441f + +build: + script_env: + - CC=$CXX + entry_points: + - bdei_infer = pybdei.inference:main + - bdei_loglikelihood = pybdei.loglikelihood:main + - bdei_u = pybdei.u_calculator:main + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation --no-binary=pybdei + number: 0 + run_exports: + - {{ pin_subpackage('pybdei', max_pin="x.x") }} + +requirements: + build: + - {{ compiler('cxx') }} + host: + - python >=3.9 + - setuptools + - numpy >=1.24.0 + - pip + - nlopt + run: + - python >=3.9 + - ete3 >=3.1.3 + - scipy >=1.11.1 + - six >=1.16.0 + - treesimulator >=0.1.22 + - {{ pin_compatible('numpy >=1.24.0') }} + +test: + imports: + - pybdei + commands: + - pip check + - bdei_infer --help + - bdei_loglikelihood --help + - bdei_u --help + requires: + - pip + +about: + home: "https://github.com/evolbioinfo/bdei" + summary: "Maximum likelihood estimation of Birth-Death Exposed-Infectious (BDEI) epidemiological model parameters from phylogenetic trees." + description: | + PyBDEI provides tools for fast and accurate maximum likelihood estimation + of Birth-Death Exposed-Infectious (BDEI) epidemiological model parameters + from phylogenetic trees. + license: LGPL-2.1 + license_file: LICENSE + license_family: GPL2 + dev_url: https://github.com/evolbioinfo/bdei + +extra: + recipe-maintainers: + - annazhukova + identifiers: + - doi:10.1093/sysbio/syad059 \ No newline at end of file From c3adeb3de25843781a6194169838771f6a255fcd Mon Sep 17 00:00:00 2001 From: RolandFaure <64131971+RolandFaure@users.noreply.github.com> Date: Wed, 7 Aug 2024 10:38:30 +0200 Subject: [PATCH 1096/1514] Update Hairsplitter (#49855) * updated harisplitter * Pin libcxx to <18 for OSX Signed-off-by: Martin Tzvetanov Grigorov * Update SHA --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Grigorov --- recipes/hairsplitter/build.sh | 3 +++ recipes/hairsplitter/meta.yaml | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/recipes/hairsplitter/build.sh b/recipes/hairsplitter/build.sh index 978ddf0265bd8..98c511dc2b5c4 100644 --- a/recipes/hairsplitter/build.sh +++ b/recipes/hairsplitter/build.sh @@ -25,5 +25,8 @@ cp -r ../GraphUnzip/repolish.py $PREFIX/bin cp -r ../GraphUnzip/transform_gfa.py $PREFIX/bin cp -r ../GraphUnzip/input_output.py $PREFIX/bin cp -r ../GraphUnzip/determine_multiplicity.py $PREFIX/bin +cp -r ../GraphUnzip/solve_with_long_reads.py $PREFIX/bin +cp -r ../GraphUnzip/solve_with_HiC.py $PREFIX/bin +cp -r ../GraphUnzip/contig_DBG.py $PREFIX/bin chmod +x $PREFIX/bin/determine_multiplicity.py diff --git a/recipes/hairsplitter/meta.yaml b/recipes/hairsplitter/meta.yaml index a6711415add34..2b8fcd0ec6156 100644 --- a/recipes/hairsplitter/meta.yaml +++ b/recipes/hairsplitter/meta.yaml @@ -1,6 +1,6 @@ {% set name = "HairSplitter" %} -{% set version = "1.9.5" %} -{% set sha256 = "b05e9e6681056c18af7e136b3d537dac18a5ed24402612ca2173a4cced115c0b" %} +{% set version = "1.9.9" %} +{% set sha256 = "1eacdd1bf6a97a223c7a969ff9b77f1791e2866b1619c74f7badc89a9ce46dfe" %} package: name: {{ name|lower }} @@ -21,6 +21,7 @@ requirements: - make - openmp - {{ compiler('cxx') }} + - libcxx <18 # [osx] run: - python - scipy From 09970534e6e69f777a8d36c3edde84b7de0f7fa6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 7 Aug 2024 04:39:04 -0400 Subject: [PATCH 1097/1514] Update bamdash to 0.3.1 (#49865) --- recipes/bamdash/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/bamdash/meta.yaml b/recipes/bamdash/meta.yaml index c245a749ceb5c..e583fa3f821fc 100644 --- a/recipes/bamdash/meta.yaml +++ b/recipes/bamdash/meta.yaml @@ -1,5 +1,5 @@ {% set name = "bamdash" %} -{% set version = "0.3" %} +{% set version = "0.3.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/bamdash-{{ version }}.tar.gz - sha256: aca6cf247961b7d1e50afa7fe121056ed6039c918d68d8c816f60bc331a7d876 + sha256: db8ff295b8e16bb290e3cd53fa04aa86d9a2cfd18c053f62a6379bb6c8272b26 build: entry_points: From f87b3f95a8b6b19c7a4b4a4c8f59744ff813420b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20P=C5=99=C3=ADhoda?= Date: Wed, 7 Aug 2024 10:39:27 +0200 Subject: [PATCH 1098/1514] Bump up abnumber to 0.3.7 (#49864) --- recipes/abnumber/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/abnumber/meta.yaml b/recipes/abnumber/meta.yaml index bf1cba8ad94cf..e0f38f1c54682 100644 --- a/recipes/abnumber/meta.yaml +++ b/recipes/abnumber/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.3.6" %} # Remember to update sha256 below +{% set version = "0.3.7" %} # Remember to update sha256 below package: name: abnumber @@ -6,7 +6,7 @@ package: source: url: https://github.com/prihoda/abnumber/archive/v{{ version }}.tar.gz - sha256: 'a3120224ca340c224085a8311ee9d5515fccdbadb156d769918bf86e06890d7d' + sha256: '4c99804745202ddf7bdf3da1add8d043035aabb5064ee69c8ef7b734d925e2ae' build: noarch: python From 7bcd5951af40d0a7f7bb9eb0d8b749770341ea2a Mon Sep 17 00:00:00 2001 From: James Abbott Date: Wed, 7 Aug 2024 09:54:47 +0100 Subject: [PATCH 1099/1514] Add new recipe for bcgtree (#49757) * Add new recipe for bcgtree * Fix linting errors * Fix pinning syntax * Fix shebang lines and add python/bash as prereqs for helper scripts * Reduce pinnings - the muscle CLI has changed with V5 so this is the latest version supported by bcgTree * Update recipes/bcgtree/meta.yaml with subpackage pinning as recommended Co-authored-by: Martin Grigorov * Correct license details --------- Co-authored-by: Martin Grigorov --- recipes/bcgtree/build.sh | 18 +++++++++++++++++ recipes/bcgtree/meta.yaml | 42 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100755 recipes/bcgtree/build.sh create mode 100755 recipes/bcgtree/meta.yaml diff --git a/recipes/bcgtree/build.sh b/recipes/bcgtree/build.sh new file mode 100755 index 0000000000000..76615afda3810 --- /dev/null +++ b/recipes/bcgtree/build.sh @@ -0,0 +1,18 @@ +#!/bin/sh +set -e + +mkdir -pv "$PREFIX/bin" +mkdir -pv "$PREFIX/SeqFilter" +mkdir -pv "$PREFIX/data" +mkdir -pv "$PREFIX/lib" + +sed -i 's/\/usr\/bin\/perl/\/bin\/env perl/' bin/*.pl +sed -i 's/\/usr\/bin\/python/\/bin\/env python/' bin/*.py +sed -i 's/\/bin\/bash/\/bin\/env bash/' bin/*.sh + +cp bin/* "$PREFIX/bin/" +cp -R SeqFilter/* "$PREFIX/SeqFilter/" +cp -R data/* "$PREFIX/data/" +cp -R lib/* "$PREFIX/lib" + + diff --git a/recipes/bcgtree/meta.yaml b/recipes/bcgtree/meta.yaml new file mode 100755 index 0000000000000..b6650dcf4cf90 --- /dev/null +++ b/recipes/bcgtree/meta.yaml @@ -0,0 +1,42 @@ +{% set name = "bcgtree" %} +{% set version = "1.2.1" %} +{% set sha256 = "7739da7bf8e36933a45ee62e72cdf5988626595223baab96ec24a657a814b4a2" %} + +package: + name: '{{ name }}' + version: '{{ version }}' + +source: + url: https://github.com/molbiodiv/{{ name }}/archive/v{{ version }}.tar.gz + sha256: '{{ sha256 }}' + +build: + number: 0 + noarch: generic + run_exports: + - {{ pin_subpackage('bcgtree', max_pin="x") }} + +requirements: + host: + - perl + run: + - perl + - python + - bash + - prodigal + - hmmer + - muscle =3.8.1551 + - gblocks + - raxml + +test: + commands: + - bcgTree.pl --version + +about: + home: https://github.com/molbiodiv/{{ name }} + summary: Automatized phylogenetic tree building from bacterial core genomes + license: MIT + license_family: MIT + license_file: LICENSE + From 4ec4d33c8336740ac4363096deab5e998886c306 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 7 Aug 2024 06:02:54 -0400 Subject: [PATCH 1100/1514] Update mehari to 0.26.1 (#49867) --- recipes/mehari/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mehari/meta.yaml b/recipes/mehari/meta.yaml index 407cffb19171f..9f32745c748c1 100644 --- a/recipes/mehari/meta.yaml +++ b/recipes/mehari/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.26.0" %} -{% set sha256 = "b70c46074b8b2cadf20664cbea7f4c1e4628db531068d0f08c955c747540be32" %} +{% set version = "0.26.1" %} +{% set sha256 = "98d3aa2e219c9e6091c7e76a0bffd74d8ae2d4a96696984cb62739b0e718e537" %} package: name: mehari From ca14f8e6ff35d16711b029294649967d6129a4d2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 7 Aug 2024 08:11:18 -0400 Subject: [PATCH 1101/1514] Update crisprme to 2.1.5 (#49871) --- recipes/crisprme/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/crisprme/meta.yaml b/recipes/crisprme/meta.yaml index 6997ee9a682b8..77d798dc99338 100644 --- a/recipes/crisprme/meta.yaml +++ b/recipes/crisprme/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.1.4" %} +{% set version = "2.1.5" %} package: name: crisprme @@ -6,7 +6,7 @@ package: source: url: https://github.com/pinellolab/CRISPRme/archive/refs/tags/v{{ version }}.tar.gz - sha256: a2d8d374365ba90eeb81548b16b589f23bc9ee184cca447306efc12b3d1a97f8 + sha256: 788cca9caff4d9c3a3c7ace21a62891d052bd23513addd72c34dc577dde1e375 build: run_exports: From 21a49316a7221f3ba7c210d91a768da0c0d95e19 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 7 Aug 2024 08:11:45 -0400 Subject: [PATCH 1102/1514] Update r-oncopharmadb to 1.7.0 (#49872) --- recipes/r-oncopharmadb/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/r-oncopharmadb/meta.yaml b/recipes/r-oncopharmadb/meta.yaml index bbfbdc7933bbf..999f9600bc26a 100644 --- a/recipes/r-oncopharmadb/meta.yaml +++ b/recipes/r-oncopharmadb/meta.yaml @@ -1,5 +1,5 @@ {% set name = "r-oncopharmadb" %} -{% set version = "1.5.1" %} +{% set version = "1.7.0" %} {% set github = "https://github.com/sigven/oncoPharmaDB" %} package: @@ -8,7 +8,7 @@ package: source: url: https://github.com/sigven/pharmOncoX/archive/refs/tags/{{ version }}.tar.gz - sha256: 7765b9122063aeacd96db0c536141ab2e23a116a84e313b7264d707a09c92316 + sha256: 001e9b133028b00df90fa7081ad315fcb28be671ac7477cf6b689f0e0ca539fb build: number: 0 From 7478d57aa04e42ed438f2d3d66e2a77b63fd0a1e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 7 Aug 2024 10:37:58 -0400 Subject: [PATCH 1103/1514] Update sonicparanoid to 2.0.8 (#49866) --- recipes/sonicparanoid/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sonicparanoid/meta.yaml b/recipes/sonicparanoid/meta.yaml index bbcd6ab1811bf..8a7c121c39ac8 100644 --- a/recipes/sonicparanoid/meta.yaml +++ b/recipes/sonicparanoid/meta.yaml @@ -1,6 +1,6 @@ {% set name = "sonicparanoid" %} -{% set version = "2.0.7" %} -{% set sha256 = "634f4fa00d65c6c1c83a2bee35acaeabc097463d7b58099e523725b71e6d1a1b" %} +{% set version = "2.0.8" %} +{% set sha256 = "3649ca513f3ad72f495ccd3aa9871ca9e7bdc0bef21b4efa9e93eeae405c24c2" %} package: name: {{ name|lower }} From c6ffe3f80cc463ce1c104436490d8a4bef8427e9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 7 Aug 2024 10:39:30 -0400 Subject: [PATCH 1104/1514] Update hybkit to 0.3.6 (#49873) --- recipes/hybkit/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/hybkit/meta.yaml b/recipes/hybkit/meta.yaml index e350da1a32f29..ccf29b84b5449 100644 --- a/recipes/hybkit/meta.yaml +++ b/recipes/hybkit/meta.yaml @@ -1,5 +1,5 @@ {% set name = "hybkit" %} -{% set version = "0.3.4" %} +{% set version = "0.3.6" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/RenneLab/hybkit/archive/v{{ version }}.tar.gz - sha256: 6f42b1e116dd668b5fd2847691bc6b78cf641f9c1aae91ca752e6df6d18022cd + sha256: 8b977039da3c6f915215111f9f9c591734f8a18aa447a23c7c3b442caacface8 build: noarch: python From 01850fb9302f3649cc8b6bed3a3a75a8cb695eaa Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 7 Aug 2024 18:25:58 +0300 Subject: [PATCH 1105/1514] metamdbg: add linux-aarch64 support (#49833) * metamdbg: add linux-aarch64 support Signed-off-by: Martin Tzvetanov Grigorov * Use libgomp instead of openmp for Linux Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/metamdbg/build.sh | 3 ++- recipes/metamdbg/meta.yaml | 11 +++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/recipes/metamdbg/build.sh b/recipes/metamdbg/build.sh index 6ca4ef93a91f9..70ccacb85cb1e 100644 --- a/recipes/metamdbg/build.sh +++ b/recipes/metamdbg/build.sh @@ -1,5 +1,6 @@ #!/bin/bash +set -xe mkdir -p $PREFIX/bin @@ -9,6 +10,6 @@ mkdir build cd build cmake .. -make +make -j ${CPU_COUNT} cp ./bin/metaMDBG $PREFIX/bin diff --git a/recipes/metamdbg/meta.yaml b/recipes/metamdbg/meta.yaml index 3d46090812f17..1465c0636bde5 100644 --- a/recipes/metamdbg/meta.yaml +++ b/recipes/metamdbg/meta.yaml @@ -10,7 +10,7 @@ source: build: skip: True # [osx] - number: 0 + number: 1 run_exports: - {{ pin_subpackage('metamdbg', max_pin="x.x") }} @@ -21,11 +21,11 @@ requirements: - make host: - zlib - - openmp + - libgomp run: - zlib - - openmp - - minimap2 =2.24 + - libgomp + - minimap2 =2.28 - time =1.8 test: @@ -37,3 +37,6 @@ about: license: MIT summary: 'MetaMDBG: a lightweight assembler for long and accurate metagenomics reads.' +extra: + additional-platforms: + - linux-aarch64 From ee027f14dc21a4d227fa3a742f5224939655e692 Mon Sep 17 00:00:00 2001 From: Li Song Date: Wed, 7 Aug 2024 11:26:10 -0400 Subject: [PATCH 1106/1514] Add arm64 support to Chromap (#49816) * Add arm64 to Chromap * chromap: Use sse2neon.h for aarch64/arm64 support Signed-off-by: Martin Tzvetanov Grigorov * Fix the path to the patch * Update recipes/chromap/build.sh --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Grigorov --- recipes/chromap/build.sh | 14 +- recipes/chromap/chromap-aarch64.patch | 9339 +++++++++++++++++++++++++ recipes/chromap/meta.yaml | 9 +- 3 files changed, 9359 insertions(+), 3 deletions(-) create mode 100644 recipes/chromap/chromap-aarch64.patch diff --git a/recipes/chromap/build.sh b/recipes/chromap/build.sh index 85c7748feac5e..fd60e56ba057e 100644 --- a/recipes/chromap/build.sh +++ b/recipes/chromap/build.sh @@ -1,5 +1,15 @@ #!/bin/bash -# -msse4.1 needed for _mm_min_epi32 -make CXX=$CXX CXXFLAGS="-O3 -Wall -I$PREFIX/include -std=c++11 -msse4.1 -fopenmp" LDFLAGS="-L$PREFIX/lib -lm -lz" + +set -xe +case $(uname -m) in + x86_64) + # -msse4.1 needed for _mm_min_epi32 + ARCH_OPTS="-msse4.1" + ;; + *) + ;; +esac + +make -j ${CPU_COUNT} CXX=$CXX CXXFLAGS="-O3 -Wall -I$PREFIX/include -std=c++11 ${ARCH_OPTS} -fopenmp" LDFLAGS="-L$PREFIX/lib -lm -lz" mkdir -p $PREFIX/bin mv chromap $PREFIX/bin diff --git a/recipes/chromap/chromap-aarch64.patch b/recipes/chromap/chromap-aarch64.patch new file mode 100644 index 0000000000000..f7683e7c8badc --- /dev/null +++ b/recipes/chromap/chromap-aarch64.patch @@ -0,0 +1,9339 @@ +diff --git c/src/alignment.cc i/src/alignment.cc +index 8abb4a6..a71f434 100644 +--- c/src/alignment.cc ++++ i/src/alignment.cc +@@ -1,6 +1,10 @@ + #include "alignment.h" + ++#ifdef __ARM_NEON ++#include "sse2neon.h" ++#else + #include ++#endif + + namespace chromap { + +diff --git c/src/ksw.cc i/src/ksw.cc +index 26cdb04..a5b7432 100644 +--- c/src/ksw.cc ++++ i/src/ksw.cc +@@ -26,7 +26,12 @@ + #include + #include + #include ++#ifdef __ARM_NEON ++#include "sse2neon.h" ++#else + #include ++#endif ++ + #include "ksw.h" + #include "sequence_batch.h" + +diff --git c/src/sse2neon.h i/src/sse2neon.h +new file mode 100644 +index 0000000..2b12721 +--- /dev/null ++++ i/src/sse2neon.h +@@ -0,0 +1,9301 @@ ++#ifndef SSE2NEON_H ++#define SSE2NEON_H ++ ++/* ++ * sse2neon is freely redistributable under the MIT License. ++ * ++ * Copyright (c) 2015-2024 SSE2NEON Contributors. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a copy ++ * of this software and associated documentation files (the "Software"), to deal ++ * in the Software without restriction, including without limitation the rights ++ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ++ * copies of the Software, and to permit persons to whom the Software is ++ * furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be included in ++ * all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++ * SOFTWARE. ++ */ ++ ++// This header file provides a simple API translation layer ++// between SSE intrinsics to their corresponding Arm/Aarch64 NEON versions ++// ++// Contributors to this work are: ++// John W. Ratcliff ++// Brandon Rowlett ++// Ken Fast ++// Eric van Beurden ++// Alexander Potylitsin ++// Hasindu Gamaarachchi ++// Jim Huang ++// Mark Cheng ++// Malcolm James MacLeod ++// Devin Hussey (easyaspi314) ++// Sebastian Pop ++// Developer Ecosystem Engineering ++// Danila Kutenin ++// François Turban (JishinMaster) ++// Pei-Hsuan Hung ++// Yang-Hao Yuan ++// Syoyo Fujita ++// Brecht Van Lommel ++// Jonathan Hue ++// Cuda Chen ++// Aymen Qader ++// Anthony Roberts ++ ++/* Tunable configurations */ ++ ++/* Enable precise implementation of math operations ++ * This would slow down the computation a bit, but gives consistent result with ++ * x86 SSE. (e.g. would solve a hole or NaN pixel in the rendering result) ++ */ ++/* _mm_min|max_ps|ss|pd|sd */ ++#ifndef SSE2NEON_PRECISE_MINMAX ++#define SSE2NEON_PRECISE_MINMAX (0) ++#endif ++/* _mm_rcp_ps */ ++#ifndef SSE2NEON_PRECISE_DIV ++#define SSE2NEON_PRECISE_DIV (0) ++#endif ++/* _mm_sqrt_ps and _mm_rsqrt_ps */ ++#ifndef SSE2NEON_PRECISE_SQRT ++#define SSE2NEON_PRECISE_SQRT (0) ++#endif ++/* _mm_dp_pd */ ++#ifndef SSE2NEON_PRECISE_DP ++#define SSE2NEON_PRECISE_DP (0) ++#endif ++ ++/* Enable inclusion of windows.h on MSVC platforms ++ * This makes _mm_clflush functional on windows, as there is no builtin. ++ */ ++#ifndef SSE2NEON_INCLUDE_WINDOWS_H ++#define SSE2NEON_INCLUDE_WINDOWS_H (0) ++#endif ++ ++/* compiler specific definitions */ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma push_macro("FORCE_INLINE") ++#pragma push_macro("ALIGN_STRUCT") ++#define FORCE_INLINE static inline __attribute__((always_inline)) ++#define ALIGN_STRUCT(x) __attribute__((aligned(x))) ++#define _sse2neon_likely(x) __builtin_expect(!!(x), 1) ++#define _sse2neon_unlikely(x) __builtin_expect(!!(x), 0) ++#elif defined(_MSC_VER) ++#if _MSVC_TRADITIONAL ++#error Using the traditional MSVC preprocessor is not supported! Use /Zc:preprocessor instead. ++#endif ++#ifndef FORCE_INLINE ++#define FORCE_INLINE static inline ++#endif ++#ifndef ALIGN_STRUCT ++#define ALIGN_STRUCT(x) __declspec(align(x)) ++#endif ++#define _sse2neon_likely(x) (x) ++#define _sse2neon_unlikely(x) (x) ++#else ++#pragma message("Macro name collisions may happen with unsupported compilers.") ++#endif ++ ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma push_macro("FORCE_INLINE_OPTNONE") ++#define FORCE_INLINE_OPTNONE static inline __attribute__((optimize("O0"))) ++#elif defined(__clang__) ++#pragma push_macro("FORCE_INLINE_OPTNONE") ++#define FORCE_INLINE_OPTNONE static inline __attribute__((optnone)) ++#else ++#define FORCE_INLINE_OPTNONE FORCE_INLINE ++#endif ++ ++#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ < 10 ++#warning "GCC versions earlier than 10 are not supported." ++#endif ++ ++/* C language does not allow initializing a variable with a function call. */ ++#ifdef __cplusplus ++#define _sse2neon_const static const ++#else ++#define _sse2neon_const const ++#endif ++ ++#include ++#include ++ ++#if defined(_WIN32) ++/* Definitions for _mm_{malloc,free} are provided by ++ * from both MinGW-w64 and MSVC. ++ */ ++#define SSE2NEON_ALLOC_DEFINED ++#endif ++ ++/* If using MSVC */ ++#ifdef _MSC_VER ++#include ++#if SSE2NEON_INCLUDE_WINDOWS_H ++#include ++#include ++#endif ++ ++#if !defined(__cplusplus) ++#error SSE2NEON only supports C++ compilation with this compiler ++#endif ++ ++#ifdef SSE2NEON_ALLOC_DEFINED ++#include ++#endif ++ ++#if (defined(_M_AMD64) || defined(__x86_64__)) || \ ++ (defined(_M_ARM64) || defined(__arm64__)) ++#define SSE2NEON_HAS_BITSCAN64 ++#endif ++#endif ++ ++#if defined(__GNUC__) || defined(__clang__) ++#define _sse2neon_define0(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define1(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define2(type, a, b, body) \ ++ __extension__({ \ ++ type _a = (a), _b = (b); \ ++ body \ ++ }) ++#define _sse2neon_return(ret) (ret) ++#else ++#define _sse2neon_define0(type, a, body) [=](type _a) { body }(a) ++#define _sse2neon_define1(type, a, body) [](type _a) { body }(a) ++#define _sse2neon_define2(type, a, b, body) \ ++ [](type _a, type _b) { body }((a), (b)) ++#define _sse2neon_return(ret) return ret ++#endif ++ ++#define _sse2neon_init(...) \ ++ { \ ++ __VA_ARGS__ \ ++ } ++ ++/* Compiler barrier */ ++#if defined(_MSC_VER) ++#define SSE2NEON_BARRIER() _ReadWriteBarrier() ++#else ++#define SSE2NEON_BARRIER() \ ++ do { \ ++ __asm__ __volatile__("" ::: "memory"); \ ++ (void) 0; \ ++ } while (0) ++#endif ++ ++/* Memory barriers ++ * __atomic_thread_fence does not include a compiler barrier; instead, ++ * the barrier is part of __atomic_load/__atomic_store's "volatile-like" ++ * semantics. ++ */ ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) ++#include ++#endif ++ ++FORCE_INLINE void _sse2neon_smp_mb(void) ++{ ++ SSE2NEON_BARRIER(); ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \ ++ !defined(__STDC_NO_ATOMICS__) ++ atomic_thread_fence(memory_order_seq_cst); ++#elif defined(__GNUC__) || defined(__clang__) ++ __atomic_thread_fence(__ATOMIC_SEQ_CST); ++#else /* MSVC */ ++ __dmb(_ARM64_BARRIER_ISH); ++#endif ++} ++ ++/* Architecture-specific build options */ ++/* FIXME: #pragma GCC push_options is only available on GCC */ ++#if defined(__GNUC__) ++#if defined(__arm__) && __ARM_ARCH == 7 ++/* According to ARM C Language Extensions Architecture specification, ++ * __ARM_NEON is defined to a value indicating the Advanced SIMD (NEON) ++ * architecture supported. ++ */ ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error "You must enable NEON instructions (e.g. -mfpu=neon) to use SSE2NEON." ++#endif ++#if !defined(__clang__) ++#pragma GCC push_options ++#pragma GCC target("fpu=neon") ++#endif ++#elif defined(__aarch64__) || defined(_M_ARM64) ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#pragma GCC target("+simd") ++#endif ++#elif __ARM_ARCH == 8 ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error \ ++ "You must enable NEON instructions (e.g. -mfpu=neon-fp-armv8) to use SSE2NEON." ++#endif ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#endif ++#else ++#error \ ++ "Unsupported target. Must be either ARMv7-A+NEON or ARMv8-A \ ++(you could try setting target explicitly with -march or -mcpu)" ++#endif ++#endif ++ ++#include ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) && (__ARM_ARCH == 8) ++#if defined __has_include && __has_include() ++#include ++#endif ++#endif ++ ++/* Apple Silicon cache lines are double of what is commonly used by Intel, AMD ++ * and other Arm microarchitectures use. ++ * From sysctl -a on Apple M1: ++ * hw.cachelinesize: 128 ++ */ ++#if defined(__APPLE__) && (defined(__aarch64__) || defined(__arm64__)) ++#define SSE2NEON_CACHELINE_SIZE 128 ++#else ++#define SSE2NEON_CACHELINE_SIZE 64 ++#endif ++ ++/* Rounding functions require either Aarch64 instructions or libm fallback */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#include ++#endif ++ ++/* On ARMv7, some registers, such as PMUSERENR and PMCCNTR, are read-only ++ * or even not accessible in user mode. ++ * To write or access to these registers in user mode, ++ * we have to perform syscall instead. ++ */ ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) ++#include ++#endif ++ ++/* "__has_builtin" can be used to query support for built-in functions ++ * provided by gcc/clang and other compilers that support it. ++ */ ++#ifndef __has_builtin /* GCC prior to 10 or non-clang compilers */ ++/* Compatibility with gcc <= 9 */ ++#if defined(__GNUC__) && (__GNUC__ <= 9) ++#define __has_builtin(x) HAS##x ++#define HAS__builtin_popcount 1 ++#define HAS__builtin_popcountll 1 ++ ++// __builtin_shuffle introduced in GCC 4.7.0 ++#if (__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) ++#define HAS__builtin_shuffle 1 ++#else ++#define HAS__builtin_shuffle 0 ++#endif ++ ++#define HAS__builtin_shufflevector 0 ++#define HAS__builtin_nontemporal_store 0 ++#else ++#define __has_builtin(x) 0 ++#endif ++#endif ++ ++/** ++ * MACRO for shuffle parameter for _mm_shuffle_ps(). ++ * Argument fp3 is a digit[0123] that represents the fp from argument "b" ++ * of mm_shuffle_ps that will be placed in fp3 of result. fp2 is the same ++ * for fp2 in result. fp1 is a digit[0123] that represents the fp from ++ * argument "a" of mm_shuffle_ps that will be places in fp1 of result. ++ * fp0 is the same for fp0 of result. ++ */ ++#define _MM_SHUFFLE(fp3, fp2, fp1, fp0) \ ++ (((fp3) << 6) | ((fp2) << 4) | ((fp1) << 2) | ((fp0))) ++ ++#if __has_builtin(__builtin_shufflevector) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __builtin_shufflevector(a, b, __VA_ARGS__) ++#elif __has_builtin(__builtin_shuffle) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __extension__({ \ ++ type tmp = {__VA_ARGS__}; \ ++ __builtin_shuffle(a, b, tmp); \ ++ }) ++#endif ++ ++#ifdef _sse2neon_shuffle ++#define vshuffle_s16(a, b, ...) _sse2neon_shuffle(int16x4_t, a, b, __VA_ARGS__) ++#define vshuffleq_s16(a, b, ...) _sse2neon_shuffle(int16x8_t, a, b, __VA_ARGS__) ++#define vshuffle_s32(a, b, ...) _sse2neon_shuffle(int32x2_t, a, b, __VA_ARGS__) ++#define vshuffleq_s32(a, b, ...) _sse2neon_shuffle(int32x4_t, a, b, __VA_ARGS__) ++#define vshuffle_s64(a, b, ...) _sse2neon_shuffle(int64x1_t, a, b, __VA_ARGS__) ++#define vshuffleq_s64(a, b, ...) _sse2neon_shuffle(int64x2_t, a, b, __VA_ARGS__) ++#endif ++ ++/* Rounding mode macros. */ ++#define _MM_FROUND_TO_NEAREST_INT 0x00 ++#define _MM_FROUND_TO_NEG_INF 0x01 ++#define _MM_FROUND_TO_POS_INF 0x02 ++#define _MM_FROUND_TO_ZERO 0x03 ++#define _MM_FROUND_CUR_DIRECTION 0x04 ++#define _MM_FROUND_NO_EXC 0x08 ++#define _MM_FROUND_RAISE_EXC 0x00 ++#define _MM_FROUND_NINT (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_FLOOR (_MM_FROUND_TO_NEG_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_CEIL (_MM_FROUND_TO_POS_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_TRUNC (_MM_FROUND_TO_ZERO | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_RINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_NEARBYINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_NO_EXC) ++#define _MM_ROUND_NEAREST 0x0000 ++#define _MM_ROUND_DOWN 0x2000 ++#define _MM_ROUND_UP 0x4000 ++#define _MM_ROUND_TOWARD_ZERO 0x6000 ++/* Flush zero mode macros. */ ++#define _MM_FLUSH_ZERO_MASK 0x8000 ++#define _MM_FLUSH_ZERO_ON 0x8000 ++#define _MM_FLUSH_ZERO_OFF 0x0000 ++/* Denormals are zeros mode macros. */ ++#define _MM_DENORMALS_ZERO_MASK 0x0040 ++#define _MM_DENORMALS_ZERO_ON 0x0040 ++#define _MM_DENORMALS_ZERO_OFF 0x0000 ++ ++/* indicate immediate constant argument in a given range */ ++#define __constrange(a, b) const ++ ++/* A few intrinsics accept traditional data types like ints or floats, but ++ * most operate on data types that are specific to SSE. ++ * If a vector type ends in d, it contains doubles, and if it does not have ++ * a suffix, it contains floats. An integer vector type can contain any type ++ * of integer, from chars to shorts to unsigned long longs. ++ */ ++typedef int64x1_t __m64; ++typedef float32x4_t __m128; /* 128-bit vector containing 4 floats */ ++// On ARM 32-bit architecture, the float64x2_t is not supported. ++// The data type __m128d should be represented in a different way for related ++// intrinsic conversion. ++#if defined(__aarch64__) || defined(_M_ARM64) ++typedef float64x2_t __m128d; /* 128-bit vector containing 2 doubles */ ++#else ++typedef float32x4_t __m128d; ++#endif ++typedef int64x2_t __m128i; /* 128-bit vector containing integers */ ++ ++// Some intrinsics operate on unaligned data types. ++typedef int16_t ALIGN_STRUCT(1) unaligned_int16_t; ++typedef int32_t ALIGN_STRUCT(1) unaligned_int32_t; ++typedef int64_t ALIGN_STRUCT(1) unaligned_int64_t; ++ ++// __int64 is defined in the Intrinsics Guide which maps to different datatype ++// in different data model ++#if !(defined(_WIN32) || defined(_WIN64) || defined(__int64)) ++#if (defined(__x86_64__) || defined(__i386__)) ++#define __int64 long long ++#else ++#define __int64 int64_t ++#endif ++#endif ++ ++/* type-safe casting between types */ ++ ++#define vreinterpretq_m128_f16(x) vreinterpretq_f32_f16(x) ++#define vreinterpretq_m128_f32(x) (x) ++#define vreinterpretq_m128_f64(x) vreinterpretq_f32_f64(x) ++ ++#define vreinterpretq_m128_u8(x) vreinterpretq_f32_u8(x) ++#define vreinterpretq_m128_u16(x) vreinterpretq_f32_u16(x) ++#define vreinterpretq_m128_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128_s8(x) vreinterpretq_f32_s8(x) ++#define vreinterpretq_m128_s16(x) vreinterpretq_f32_s16(x) ++#define vreinterpretq_m128_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_f16_m128(x) vreinterpretq_f16_f32(x) ++#define vreinterpretq_f32_m128(x) (x) ++#define vreinterpretq_f64_m128(x) vreinterpretq_f64_f32(x) ++ ++#define vreinterpretq_u8_m128(x) vreinterpretq_u8_f32(x) ++#define vreinterpretq_u16_m128(x) vreinterpretq_u16_f32(x) ++#define vreinterpretq_u32_m128(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_s8_m128(x) vreinterpretq_s8_f32(x) ++#define vreinterpretq_s16_m128(x) vreinterpretq_s16_f32(x) ++#define vreinterpretq_s32_m128(x) vreinterpretq_s32_f32(x) ++#define vreinterpretq_s64_m128(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_m128i_s8(x) vreinterpretq_s64_s8(x) ++#define vreinterpretq_m128i_s16(x) vreinterpretq_s64_s16(x) ++#define vreinterpretq_m128i_s32(x) vreinterpretq_s64_s32(x) ++#define vreinterpretq_m128i_s64(x) (x) ++ ++#define vreinterpretq_m128i_u8(x) vreinterpretq_s64_u8(x) ++#define vreinterpretq_m128i_u16(x) vreinterpretq_s64_u16(x) ++#define vreinterpretq_m128i_u32(x) vreinterpretq_s64_u32(x) ++#define vreinterpretq_m128i_u64(x) vreinterpretq_s64_u64(x) ++ ++#define vreinterpretq_f32_m128i(x) vreinterpretq_f32_s64(x) ++#define vreinterpretq_f64_m128i(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_s8_m128i(x) vreinterpretq_s8_s64(x) ++#define vreinterpretq_s16_m128i(x) vreinterpretq_s16_s64(x) ++#define vreinterpretq_s32_m128i(x) vreinterpretq_s32_s64(x) ++#define vreinterpretq_s64_m128i(x) (x) ++ ++#define vreinterpretq_u8_m128i(x) vreinterpretq_u8_s64(x) ++#define vreinterpretq_u16_m128i(x) vreinterpretq_u16_s64(x) ++#define vreinterpretq_u32_m128i(x) vreinterpretq_u32_s64(x) ++#define vreinterpretq_u64_m128i(x) vreinterpretq_u64_s64(x) ++ ++#define vreinterpret_m64_s8(x) vreinterpret_s64_s8(x) ++#define vreinterpret_m64_s16(x) vreinterpret_s64_s16(x) ++#define vreinterpret_m64_s32(x) vreinterpret_s64_s32(x) ++#define vreinterpret_m64_s64(x) (x) ++ ++#define vreinterpret_m64_u8(x) vreinterpret_s64_u8(x) ++#define vreinterpret_m64_u16(x) vreinterpret_s64_u16(x) ++#define vreinterpret_m64_u32(x) vreinterpret_s64_u32(x) ++#define vreinterpret_m64_u64(x) vreinterpret_s64_u64(x) ++ ++#define vreinterpret_m64_f16(x) vreinterpret_s64_f16(x) ++#define vreinterpret_m64_f32(x) vreinterpret_s64_f32(x) ++#define vreinterpret_m64_f64(x) vreinterpret_s64_f64(x) ++ ++#define vreinterpret_u8_m64(x) vreinterpret_u8_s64(x) ++#define vreinterpret_u16_m64(x) vreinterpret_u16_s64(x) ++#define vreinterpret_u32_m64(x) vreinterpret_u32_s64(x) ++#define vreinterpret_u64_m64(x) vreinterpret_u64_s64(x) ++ ++#define vreinterpret_s8_m64(x) vreinterpret_s8_s64(x) ++#define vreinterpret_s16_m64(x) vreinterpret_s16_s64(x) ++#define vreinterpret_s32_m64(x) vreinterpret_s32_s64(x) ++#define vreinterpret_s64_m64(x) (x) ++ ++#define vreinterpret_f32_m64(x) vreinterpret_f32_s64(x) ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f64_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f64_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) vreinterpretq_f64_f32(x) ++#define vreinterpretq_m128d_f64(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f64(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f64(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f64(x) ++ ++#define vreinterpretq_f64_m128d(x) (x) ++#define vreinterpretq_f32_m128d(x) vreinterpretq_f32_f64(x) ++#else ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_m128d_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_f32_m128d(x) (x) ++#endif ++ ++// A struct is defined in this header file called 'SIMDVec' which can be used ++// by applications which attempt to access the contents of an __m128 struct ++// directly. It is important to note that accessing the __m128 struct directly ++// is bad coding practice by Microsoft: @see: ++// https://learn.microsoft.com/en-us/cpp/cpp/m128 ++// ++// However, some legacy source code may try to access the contents of an __m128 ++// struct directly so the developer can use the SIMDVec as an alias for it. Any ++// casting must be done manually by the developer, as you cannot cast or ++// otherwise alias the base NEON data type for intrinsic operations. ++// ++// union intended to allow direct access to an __m128 variable using the names ++// that the MSVC compiler provides. This union should really only be used when ++// trying to access the members of the vector as integer values. GCC/clang ++// allow native access to the float members through a simple array access ++// operator (in C since 4.6, in C++ since 4.8). ++// ++// Ideally direct accesses to SIMD vectors should not be used since it can cause ++// a performance hit. If it really is needed however, the original __m128 ++// variable can be aliased with a pointer to this union and used to access ++// individual components. The use of this union should be hidden behind a macro ++// that is used throughout the codebase to access the members instead of always ++// declaring this type of variable. ++typedef union ALIGN_STRUCT(16) SIMDVec { ++ float m128_f32[4]; // as floats - DON'T USE. Added for convenience. ++ int8_t m128_i8[16]; // as signed 8-bit integers. ++ int16_t m128_i16[8]; // as signed 16-bit integers. ++ int32_t m128_i32[4]; // as signed 32-bit integers. ++ int64_t m128_i64[2]; // as signed 64-bit integers. ++ uint8_t m128_u8[16]; // as unsigned 8-bit integers. ++ uint16_t m128_u16[8]; // as unsigned 16-bit integers. ++ uint32_t m128_u32[4]; // as unsigned 32-bit integers. ++ uint64_t m128_u64[2]; // as unsigned 64-bit integers. ++} SIMDVec; ++ ++// casting using SIMDVec ++#define vreinterpretq_nth_u64_m128i(x, n) (((SIMDVec *) &x)->m128_u64[n]) ++#define vreinterpretq_nth_u32_m128i(x, n) (((SIMDVec *) &x)->m128_u32[n]) ++#define vreinterpretq_nth_u8_m128i(x, n) (((SIMDVec *) &x)->m128_u8[n]) ++ ++/* SSE macros */ ++#define _MM_GET_FLUSH_ZERO_MODE _sse2neon_mm_get_flush_zero_mode ++#define _MM_SET_FLUSH_ZERO_MODE _sse2neon_mm_set_flush_zero_mode ++#define _MM_GET_DENORMALS_ZERO_MODE _sse2neon_mm_get_denormals_zero_mode ++#define _MM_SET_DENORMALS_ZERO_MODE _sse2neon_mm_set_denormals_zero_mode ++ ++// Function declaration ++// SSE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void); ++FORCE_INLINE __m128 _mm_move_ss(__m128, __m128); ++FORCE_INLINE __m128 _mm_or_ps(__m128, __m128); ++FORCE_INLINE __m128 _mm_set_ps1(float); ++FORCE_INLINE __m128 _mm_setzero_ps(void); ++// SSE2 ++FORCE_INLINE __m128i _mm_and_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_castps_si128(__m128); ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128); ++FORCE_INLINE __m128d _mm_move_sd(__m128d, __m128d); ++FORCE_INLINE __m128i _mm_or_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_set_epi32(int, int, int, int); ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t, int64_t); ++FORCE_INLINE __m128d _mm_set_pd(double, double); ++FORCE_INLINE __m128i _mm_set1_epi32(int); ++FORCE_INLINE __m128i _mm_setzero_si128(void); ++// SSE4.1 ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d); ++FORCE_INLINE __m128 _mm_ceil_ps(__m128); ++FORCE_INLINE __m128d _mm_floor_pd(__m128d); ++FORCE_INLINE __m128 _mm_floor_ps(__m128); ++FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d, int); ++FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128, int); ++// SSE4.2 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t, uint8_t); ++ ++/* Backwards compatibility for compilers with lack of specific type support */ ++ ++// Older gcc does not define vld1q_u8_x4 type ++#if defined(__GNUC__) && !defined(__clang__) && \ ++ ((__GNUC__ <= 13 && defined(__arm__)) || \ ++ (__GNUC__ == 10 && __GNUC_MINOR__ < 3 && defined(__aarch64__)) || \ ++ (__GNUC__ <= 9 && defined(__aarch64__))) ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ uint8x16x4_t ret; ++ ret.val[0] = vld1q_u8(p + 0); ++ ret.val[1] = vld1q_u8(p + 16); ++ ret.val[2] = vld1q_u8(p + 32); ++ ret.val[3] = vld1q_u8(p + 48); ++ return ret; ++} ++#else ++// Wraps vld1q_u8_x4 ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ return vld1q_u8_x4(p); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddv u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ const uint64x1_t v1 = vpaddl_u32(vpaddl_u16(vpaddl_u8(v8))); ++ return vget_lane_u8(vreinterpret_u8_u64(v1), 0); ++} ++#else ++// Wraps vaddv_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ return vaddv_u8(v8); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ uint8x8_t tmp = vpadd_u8(vget_low_u8(a), vget_high_u8(a)); ++ uint8_t res = 0; ++ for (int i = 0; i < 8; ++i) ++ res += tmp[i]; ++ return res; ++} ++#else ++// Wraps vaddvq_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ return vaddvq_u8(a); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u16 variant */ ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ uint32x4_t m = vpaddlq_u16(a); ++ uint64x2_t n = vpaddlq_u32(m); ++ uint64x1_t o = vget_low_u64(n) + vget_high_u64(n); ++ ++ return vget_lane_u32((uint32x2_t) o, 0); ++} ++#else ++// Wraps vaddvq_u16 ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ return vaddvq_u16(a); ++} ++#endif ++ ++/* Function Naming Conventions ++ * The naming convention of SSE intrinsics is straightforward. A generic SSE ++ * intrinsic function is given as follows: ++ * _mm__ ++ * ++ * The parts of this format are given as follows: ++ * 1. describes the operation performed by the intrinsic ++ * 2. identifies the data type of the function's primary arguments ++ * ++ * This last part, , is a little complicated. It identifies the ++ * content of the input values, and can be set to any of the following values: ++ * + ps - vectors contain floats (ps stands for packed single-precision) ++ * + pd - vectors contain doubles (pd stands for packed double-precision) ++ * + epi8/epi16/epi32/epi64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * signed integers ++ * + epu8/epu16/epu32/epu64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * unsigned integers ++ * + si128 - unspecified 128-bit vector or 256-bit vector ++ * + m128/m128i/m128d - identifies input vector types when they are different ++ * than the type of the returned vector ++ * ++ * For example, _mm_setzero_ps. The _mm implies that the function returns ++ * a 128-bit vector. The _ps at the end implies that the argument vectors ++ * contain floats. ++ * ++ * A complete example: Byte Shuffle - pshufb (_mm_shuffle_epi8) ++ * // Set packed 16-bit integers. 128 bits, 8 short, per 16 bits ++ * __m128i v_in = _mm_setr_epi16(1, 2, 3, 4, 5, 6, 7, 8); ++ * // Set packed 8-bit integers ++ * // 128 bits, 16 chars, per 8 bits ++ * __m128i v_perm = _mm_setr_epi8(1, 0, 2, 3, 8, 9, 10, 11, ++ * 4, 5, 12, 13, 6, 7, 14, 15); ++ * // Shuffle packed 8-bit integers ++ * __m128i v_out = _mm_shuffle_epi8(v_in, v_perm); // pshufb ++ */ ++ ++/* Constants for use with _mm_prefetch. */ ++enum _mm_hint { ++ _MM_HINT_NTA = 0, /* load data to L1 and L2 cache, mark it as NTA */ ++ _MM_HINT_T0 = 1, /* load data to L1 and L2 cache */ ++ _MM_HINT_T1 = 2, /* load data to L2 cache only */ ++ _MM_HINT_T2 = 3, /* load data to L2 cache only, mark it as NTA */ ++}; ++ ++// The bit field mapping to the FPCR(floating-point control register) ++typedef struct { ++ uint16_t res0; ++ uint8_t res1 : 6; ++ uint8_t bit22 : 1; ++ uint8_t bit23 : 1; ++ uint8_t bit24 : 1; ++ uint8_t res2 : 7; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32_t res3; ++#endif ++} fpcr_bitfield; ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of b and places it into the high end of the result. ++FORCE_INLINE __m128 _mm_shuffle_ps_1032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in high ++// end of result takes the higher two 32 bit values from b and swaps them and ++// places in low end of result. ++FORCE_INLINE __m128 _mm_shuffle_ps_2301(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b23 = vrev64_f32(vget_high_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b23)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0321(__m128 a, __m128 b) ++{ ++ float32x2_t a21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a21, b03)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2103(__m128 a, __m128 b) ++{ ++ float32x2_t a03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a03, b21)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0101(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b01)); ++} ++ ++// keeps the low 64 bits of b in the low and puts the high 64 bits of a in the ++// high ++FORCE_INLINE __m128 _mm_shuffle_ps_3210(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0011(__m128 a, __m128 b) ++{ ++ float32x2_t a11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a11, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0022(__m128 a, __m128 b) ++{ ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a22, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2200(__m128 a, __m128 b) ++{ ++ float32x2_t a00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a00, b22)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_3202(__m128 a, __m128 b) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t a02 = vset_lane_f32(a0, a22, 1); /* TODO: use vzip ?*/ ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a02, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1133(__m128 a, __m128 b) ++{ ++ float32x2_t a33 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a33, b11)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b20)); ++} ++ ++// For MSVC, we check only if it is ARM64, as every single ARM64 processor ++// supported by WoA has crypto extensions. If this changes in the future, ++// this can be verified via the runtime-only method of: ++// IsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE) ++#if (defined(_M_ARM64) && !defined(__clang__)) || \ ++ (defined(__ARM_FEATURE_CRYPTO) && \ ++ (defined(__aarch64__) || __has_builtin(__builtin_arm_crypto_vmullp64))) ++// Wraps vmull_p64 ++FORCE_INLINE uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly64_t a = vget_lane_p64(vreinterpret_p64_u64(_a), 0); ++ poly64_t b = vget_lane_p64(vreinterpret_p64_u64(_b), 0); ++#if defined(_MSC_VER) ++ __n64 a1 = {a}, b1 = {b}; ++ return vreinterpretq_u64_p128(vmull_p64(a1, b1)); ++#else ++ return vreinterpretq_u64_p128(vmull_p64(a, b)); ++#endif ++} ++#else // ARMv7 polyfill ++// ARMv7/some A64 lacks vmull_p64, but it has vmull_p8. ++// ++// vmull_p8 calculates 8 8-bit->16-bit polynomial multiplies, but we need a ++// 64-bit->128-bit polynomial multiply. ++// ++// It needs some work and is somewhat slow, but it is still faster than all ++// known scalar methods. ++// ++// Algorithm adapted to C from ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/, which is adapted ++// from "Fast Software Polynomial Multiplication on ARM Processors Using the ++// NEON Engine" by Danilo Camara, Conrado Gouvea, Julio Lopez and Ricardo Dahab ++// (https://hal.inria.fr/hal-01506572) ++static uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly8x8_t a = vreinterpret_p8_u64(_a); ++ poly8x8_t b = vreinterpret_p8_u64(_b); ++ ++ // Masks ++ uint8x16_t k48_32 = vcombine_u8(vcreate_u8(0x0000ffffffffffff), ++ vcreate_u8(0x00000000ffffffff)); ++ uint8x16_t k16_00 = vcombine_u8(vcreate_u8(0x000000000000ffff), ++ vcreate_u8(0x0000000000000000)); ++ ++ // Do the multiplies, rotating with vext to get all combinations ++ uint8x16_t d = vreinterpretq_u8_p16(vmull_p8(a, b)); // D = A0 * B0 ++ uint8x16_t e = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 1))); // E = A0 * B1 ++ uint8x16_t f = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 1), b)); // F = A1 * B0 ++ uint8x16_t g = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 2))); // G = A0 * B2 ++ uint8x16_t h = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 2), b)); // H = A2 * B0 ++ uint8x16_t i = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 3))); // I = A0 * B3 ++ uint8x16_t j = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 3), b)); // J = A3 * B0 ++ uint8x16_t k = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 4))); // L = A0 * B4 ++ ++ // Add cross products ++ uint8x16_t l = veorq_u8(e, f); // L = E + F ++ uint8x16_t m = veorq_u8(g, h); // M = G + H ++ uint8x16_t n = veorq_u8(i, j); // N = I + J ++ ++ // Interleave. Using vzip1 and vzip2 prevents Clang from emitting TBL ++ // instructions. ++#if defined(__aarch64__) ++ uint8x16_t lm_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t lm_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t nk_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++ uint8x16_t nk_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++#else ++ uint8x16_t lm_p0 = vcombine_u8(vget_low_u8(l), vget_low_u8(m)); ++ uint8x16_t lm_p1 = vcombine_u8(vget_high_u8(l), vget_high_u8(m)); ++ uint8x16_t nk_p0 = vcombine_u8(vget_low_u8(n), vget_low_u8(k)); ++ uint8x16_t nk_p1 = vcombine_u8(vget_high_u8(n), vget_high_u8(k)); ++#endif ++ // t0 = (L) (P0 + P1) << 8 ++ // t1 = (M) (P2 + P3) << 16 ++ uint8x16_t t0t1_tmp = veorq_u8(lm_p0, lm_p1); ++ uint8x16_t t0t1_h = vandq_u8(lm_p1, k48_32); ++ uint8x16_t t0t1_l = veorq_u8(t0t1_tmp, t0t1_h); ++ ++ // t2 = (N) (P4 + P5) << 24 ++ // t3 = (K) (P6 + P7) << 32 ++ uint8x16_t t2t3_tmp = veorq_u8(nk_p0, nk_p1); ++ uint8x16_t t2t3_h = vandq_u8(nk_p1, k16_00); ++ uint8x16_t t2t3_l = veorq_u8(t2t3_tmp, t2t3_h); ++ ++ // De-interleave ++#if defined(__aarch64__) ++ uint8x16_t t0 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t1 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t2 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++ uint8x16_t t3 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++#else ++ uint8x16_t t1 = vcombine_u8(vget_high_u8(t0t1_l), vget_high_u8(t0t1_h)); ++ uint8x16_t t0 = vcombine_u8(vget_low_u8(t0t1_l), vget_low_u8(t0t1_h)); ++ uint8x16_t t3 = vcombine_u8(vget_high_u8(t2t3_l), vget_high_u8(t2t3_h)); ++ uint8x16_t t2 = vcombine_u8(vget_low_u8(t2t3_l), vget_low_u8(t2t3_h)); ++#endif ++ // Shift the cross products ++ uint8x16_t t0_shift = vextq_u8(t0, t0, 15); // t0 << 8 ++ uint8x16_t t1_shift = vextq_u8(t1, t1, 14); // t1 << 16 ++ uint8x16_t t2_shift = vextq_u8(t2, t2, 13); // t2 << 24 ++ uint8x16_t t3_shift = vextq_u8(t3, t3, 12); // t3 << 32 ++ ++ // Accumulate the products ++ uint8x16_t cross1 = veorq_u8(t0_shift, t1_shift); ++ uint8x16_t cross2 = veorq_u8(t2_shift, t3_shift); ++ uint8x16_t mix = veorq_u8(d, cross1); ++ uint8x16_t r = veorq_u8(mix, cross2); ++ return vreinterpretq_u64_u8(r); ++} ++#endif // ARMv7 polyfill ++ ++// C equivalent: ++// __m128i _mm_shuffle_epi32_default(__m128i a, ++// __constrange(0, 255) int imm) { ++// __m128i ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = a[(imm >> 4) & 0x03]; ret[3] = a[(imm >> 6) & 0x03]; ++// return ret; ++// } ++#define _mm_shuffle_epi32_default(a, imm) \ ++ vreinterpretq_m128i_s32(vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), \ ++ ((imm) >> 2) & 0x3), \ ++ vmovq_n_s32(vgetq_lane_s32( \ ++ vreinterpretq_s32_m128i(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of a and places it into the high end of the result. ++FORCE_INLINE __m128i _mm_shuffle_epi_1032(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in low end ++// of result takes the higher two 32 bit values from a and swaps them and places ++// in high end of result. ++FORCE_INLINE __m128i _mm_shuffle_epi_2301(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a23 = vrev64_s32(vget_high_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a23)); ++} ++ ++// rotates the least significant 32 bits into the most significant 32 bits, and ++// shifts the rest down ++FORCE_INLINE __m128i _mm_shuffle_epi_0321(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 1)); ++} ++ ++// rotates the most significant 32 bits into the least significant 32 bits, and ++// shifts the rest up ++FORCE_INLINE __m128i _mm_shuffle_epi_2103(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 3)); ++} ++ ++// gets the lower 64 bits of a, and places it in the upper 64 bits ++// gets the lower 64 bits of a and places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1010(__m128i a) ++{ ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a10, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements, and places it in the ++// lower 64 bits gets the lower 64 bits of a, and places it in the upper 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1001(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements and places it in the ++// upper 64 bits gets the lower 64 bits of a, swaps the 0 and 1 elements, and ++// places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_0101(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_2211(__m128i a) ++{ ++ int32x2_t a11 = vdup_lane_s32(vget_low_s32(vreinterpretq_s32_m128i(a)), 1); ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ return vreinterpretq_m128i_s32(vcombine_s32(a11, a22)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_0122(__m128i a) ++{ ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a22, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_3332(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a33 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 1); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a33)); ++} ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32(vdupq_laneq_s32(vreinterpretq_s32_m128i(a), (imm))) ++#else ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vdupq_n_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)))) ++#endif ++ ++// NEON does not support a general purpose permute intrinsic. ++// Shuffle single-precision (32-bit) floating-point elements in a using the ++// control in imm8, and store the results in dst. ++// ++// C equivalent: ++// __m128 _mm_shuffle_ps_default(__m128 a, __m128 b, ++// __constrange(0, 255) int imm) { ++// __m128 ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = b[(imm >> 4) & 0x03]; ret[3] = b[(imm >> 6) & 0x03]; ++// return ret; ++// } ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_ps ++#define _mm_shuffle_ps_default(a, b, imm) \ ++ vreinterpretq_m128_f32(vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), ((imm) >> 2) & 0x3), \ ++ vmovq_n_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Shuffle 16-bit integers in the low 64 bits of a using the control in imm8. ++// Store the results in the low 64 bits of dst, with the high 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflelo_epi16 ++#define _mm_shufflelo_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t lowBits = vget_low_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, (imm) & (0x3)), ret, 0); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++// Shuffle 16-bit integers in the high 64 bits of a using the control in imm8. ++// Store the results in the high 64 bits of dst, with the low 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflehi_epi16 ++#define _mm_shufflehi_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t highBits = vget_high_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, (imm) & (0x3)), ret, 4); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 2) & 0x3), ret, \ ++ 5); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 4) & 0x3), ret, \ ++ 6); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 6) & 0x3), ret, \ ++ 7); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++/* MMX */ ++ ++//_mm_empty is a no-op on arm ++FORCE_INLINE void _mm_empty(void) {} ++ ++/* SSE */ ++ ++// Add packed single-precision (32-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ps ++FORCE_INLINE __m128 _mm_add_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Add the lower single-precision (32-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ss ++FORCE_INLINE __m128 _mm_add_ss(__m128 a, __m128 b) ++{ ++ float32_t b0 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++ float32x4_t value = vsetq_lane_f32(b0, vdupq_n_f32(0), 0); ++ // the upper values in the result must be the remnants of . ++ return vreinterpretq_m128_f32(vaddq_f32(a, value)); ++} ++ ++// Compute the bitwise AND of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_ps ++FORCE_INLINE __m128 _mm_and_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vandq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Compute the bitwise NOT of packed single-precision (32-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_ps ++FORCE_INLINE __m128 _mm_andnot_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vbicq_s32(vreinterpretq_s32_m128(b), ++ vreinterpretq_s32_m128(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu16 ++FORCE_INLINE __m64 _mm_avg_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16( ++ vrhadd_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu8 ++FORCE_INLINE __m64 _mm_avg_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vrhadd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ps ++FORCE_INLINE __m128 _mm_cmpeq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ss ++FORCE_INLINE __m128 _mm_cmpeq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpeq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ps ++FORCE_INLINE __m128 _mm_cmpge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ss ++FORCE_INLINE __m128 _mm_cmpge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ps ++FORCE_INLINE __m128 _mm_cmpgt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ss ++FORCE_INLINE __m128 _mm_cmpgt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpgt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ps ++FORCE_INLINE __m128 _mm_cmple_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ss ++FORCE_INLINE __m128 _mm_cmple_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmple_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ps ++FORCE_INLINE __m128 _mm_cmplt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ss ++FORCE_INLINE __m128 _mm_cmplt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmplt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ps ++FORCE_INLINE __m128 _mm_cmpneq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ss ++FORCE_INLINE __m128 _mm_cmpneq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpneq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ps ++FORCE_INLINE __m128 _mm_cmpnge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ss ++FORCE_INLINE __m128 _mm_cmpnge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ps ++FORCE_INLINE __m128 _mm_cmpngt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ss ++FORCE_INLINE __m128 _mm_cmpngt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpngt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ps ++FORCE_INLINE __m128 _mm_cmpnle_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ss ++FORCE_INLINE __m128 _mm_cmpnle_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnle_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ps ++FORCE_INLINE __m128 _mm_cmpnlt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ss ++FORCE_INLINE __m128 _mm_cmpnlt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnlt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ps ++// ++// See also: ++// http://stackoverflow.com/questions/8627331/what-does-ordered-unordered-comparison-mean ++// http://stackoverflow.com/questions/29349621/neon-isnanval-intrinsics ++FORCE_INLINE __m128 _mm_cmpord_ps(__m128 a, __m128 b) ++{ ++ // Note: NEON does not have ordered compare builtin ++ // Need to compare a eq a and b eq b to check for NaN ++ // Do AND of results to get final ++ uint32x4_t ceqaa = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t ceqbb = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vandq_u32(ceqaa, ceqbb)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ss ++FORCE_INLINE __m128 _mm_cmpord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpord_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ps ++FORCE_INLINE __m128 _mm_cmpunord_ps(__m128 a, __m128 b) ++{ ++ uint32x4_t f32a = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t f32b = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vmvnq_u32(vandq_u32(f32a, f32b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ss ++FORCE_INLINE __m128 _mm_cmpunord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpunord_ps(a, b)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_ss ++FORCE_INLINE int _mm_comieq_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_eq_b = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_eq_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_ss ++FORCE_INLINE int _mm_comige_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_ge_b = ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_ge_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_ss ++FORCE_INLINE int _mm_comigt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_gt_b = ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_gt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_ss ++FORCE_INLINE int _mm_comile_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_le_b = ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_le_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_ss ++FORCE_INLINE int _mm_comilt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_lt_b = ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_lt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_ss ++FORCE_INLINE int _mm_comineq_ss(__m128 a, __m128 b) ++{ ++ return !_mm_comieq_ss(a, b); ++} ++ ++// Convert packed signed 32-bit integers in b to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, and copy the upper 2 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_pi2ps ++FORCE_INLINE __m128 _mm_cvt_pi2ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ps2pi ++FORCE_INLINE __m64 _mm_cvt_ps2pi(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))))); ++#else ++ return vreinterpret_m64_s32(vcvt_s32_f32(vget_low_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION))))); ++#endif ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_si2ss ++FORCE_INLINE __m128 _mm_cvt_si2ss(__m128 a, int b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ss2si ++FORCE_INLINE int _mm_cvt_ss2si(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vgetq_lane_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))), ++ 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int32_t) data; ++#endif ++} ++ ++// Convert packed 16-bit integers in a to packed single-precision (32-bit) ++// floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi16_ps ++FORCE_INLINE __m128 _mm_cvtpi16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vmovl_s16(vreinterpret_s16_m64(a)))); ++} ++ ++// Convert packed 32-bit integers in b to packed single-precision (32-bit) ++// floating-point elements, store the results in the lower 2 elements of dst, ++// and copy the upper 2 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_ps ++FORCE_INLINE __m128 _mm_cvtpi32_ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, then convert the packed signed 32-bit integers in b to ++// single-precision (32-bit) floating-point element, and store the results in ++// the upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32x2_ps ++FORCE_INLINE __m128 _mm_cvtpi32x2_ps(__m64 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vcombine_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b)))); ++} ++ ++// Convert the lower packed 8-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi8_ps ++FORCE_INLINE __m128 _mm_cvtpi8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vmovl_s16(vget_low_s16(vmovl_s8(vreinterpret_s8_m64(a)))))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 16-bit integers, and store the results in dst. Note: this intrinsic ++// will generate 0x7FFF, rather than 0x8000, for input values between 0x7FFF and ++// 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi16 ++FORCE_INLINE __m64 _mm_cvtps_pi16(__m128 a) ++{ ++ return vreinterpret_m64_s16( ++ vqmovn_s32(vreinterpretq_s32_m128i(_mm_cvtps_epi32(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi32 ++#define _mm_cvtps_pi32(a) _mm_cvt_ps2pi(a) ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 8-bit integers, and store the results in lower 4 elements of dst. ++// Note: this intrinsic will generate 0x7F, rather than 0x80, for input values ++// between 0x7F and 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi8 ++FORCE_INLINE __m64 _mm_cvtps_pi8(__m128 a) ++{ ++ return vreinterpret_m64_s8(vqmovn_s16( ++ vcombine_s16(vreinterpret_s16_m64(_mm_cvtps_pi16(a)), vdup_n_s16(0)))); ++} ++ ++// Convert packed unsigned 16-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu16_ps ++FORCE_INLINE __m128 _mm_cvtpu16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_u32(vmovl_u16(vreinterpret_u16_m64(a)))); ++} ++ ++// Convert the lower packed unsigned 8-bit integers in a to packed ++// single-precision (32-bit) floating-point elements, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu8_ps ++FORCE_INLINE __m128 _mm_cvtpu8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_u32( ++ vmovl_u16(vget_low_u16(vmovl_u8(vreinterpret_u8_m64(a)))))); ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_ss ++#define _mm_cvtsi32_ss(a, b) _mm_cvt_si2ss(a, b) ++ ++// Convert the signed 64-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_ss ++FORCE_INLINE __m128 _mm_cvtsi64_ss(__m128 a, int64_t b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Copy the lower single-precision (32-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_f32 ++FORCE_INLINE float _mm_cvtss_f32(__m128 a) ++{ ++ return vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si32 ++#define _mm_cvtss_si32(a) _mm_cvt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si64 ++FORCE_INLINE int64_t _mm_cvtss_si64(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return (int64_t) vgetq_lane_f32(vrndiq_f32(vreinterpretq_f32_m128(a)), 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int64_t) data; ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ps2pi ++FORCE_INLINE __m64 _mm_cvtt_ps2pi(__m128 a) ++{ ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ss2si ++FORCE_INLINE int _mm_cvtt_ss2si(__m128 a) ++{ ++ return vgetq_lane_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)), 0); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_pi32 ++#define _mm_cvttps_pi32(a) _mm_cvtt_ps2pi(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si32 ++#define _mm_cvttss_si32(a) _mm_cvtt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si64 ++FORCE_INLINE int64_t _mm_cvttss_si64(__m128 a) ++{ ++ return (int64_t) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Divide packed single-precision (32-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise division intrinsic, we implement ++// division by multiplying a by b's reciprocal before using the Newton-Raphson ++// method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ps ++FORCE_INLINE __m128 _mm_div_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vdivq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(b)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(a), recip)); ++#endif ++} ++ ++// Divide the lower single-precision (32-bit) floating-point element in a by the ++// lower single-precision (32-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper 3 packed elements from a to ++// the upper elements of dst. ++// Warning: ARMv7-A does not produce the same result compared to Intel and not ++// IEEE-compliant. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ss ++FORCE_INLINE __m128 _mm_div_ss(__m128 a, __m128 b) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_div_ps(a, b)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_pi16 ++#define _mm_extract_pi16(a, imm) \ ++ (int32_t) vget_lane_u16(vreinterpret_u16_m64(a), (imm)) ++ ++// Free aligned memory that was allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_free ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void _mm_free(void *addr) ++{ ++ free(addr); ++} ++#endif ++ ++FORCE_INLINE uint64_t _sse2neon_get_fpcr(void) ++{ ++ uint64_t value; ++#if defined(_MSC_VER) ++ value = _ReadStatusReg(ARM64_FPCR); ++#else ++ __asm__ __volatile__("mrs %0, FPCR" : "=r"(value)); /* read */ ++#endif ++ return value; ++} ++ ++FORCE_INLINE void _sse2neon_set_fpcr(uint64_t value) ++{ ++#if defined(_MSC_VER) ++ _WriteStatusReg(ARM64_FPCR, value); ++#else ++ __asm__ __volatile__("msr FPCR, %0" ::"r"(value)); /* write */ ++#endif ++} ++ ++// Macro: Get the flush zero bits from the MXCSR control and status register. ++// The flush zero may contain any of the following flags: _MM_FLUSH_ZERO_ON or ++// _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_FLUSH_ZERO_MODE ++FORCE_INLINE unsigned int _sse2neon_mm_get_flush_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_FLUSH_ZERO_ON : _MM_FLUSH_ZERO_OFF; ++} ++ ++// Macro: Get the rounding mode bits from the MXCSR control and status register. ++// The rounding mode may contain any of the following flags: _MM_ROUND_NEAREST, ++// _MM_ROUND_DOWN, _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_ROUNDING_MODE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ if (r.field.bit22) { ++ return r.field.bit23 ? _MM_ROUND_TOWARD_ZERO : _MM_ROUND_UP; ++ } else { ++ return r.field.bit23 ? _MM_ROUND_DOWN : _MM_ROUND_NEAREST; ++ } ++} ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_pi16 ++#define _mm_insert_pi16(a, b, imm) \ ++ vreinterpret_m64_s16(vset_lane_s16((b), vreinterpret_s16_m64(a), (imm))) ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps ++FORCE_INLINE __m128 _mm_load_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// ++// dst[31:0] := MEM[mem_addr+31:mem_addr] ++// dst[63:32] := MEM[mem_addr+31:mem_addr] ++// dst[95:64] := MEM[mem_addr+31:mem_addr] ++// dst[127:96] := MEM[mem_addr+31:mem_addr] ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps1 ++#define _mm_load_ps1 _mm_load1_ps ++ ++// Load a single-precision (32-bit) floating-point element from memory into the ++// lower of dst, and zero the upper 3 elements. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ss ++FORCE_INLINE __m128 _mm_load_ss(const float *p) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(*p, vdupq_n_f32(0), 0)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_ps ++FORCE_INLINE __m128 _mm_load1_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_dup_f32(p)); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// upper 2 elements of dst, and copy the lower 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pi ++FORCE_INLINE __m128 _mm_loadh_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vget_low_f32(a), vld1_f32((const float32_t *) p))); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// lower 2 elements of dst, and copy the upper 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pi ++FORCE_INLINE __m128 _mm_loadl_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vld1_f32((const float32_t *) p), vget_high_f32(a))); ++} ++ ++// Load 4 single-precision (32-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_ps ++FORCE_INLINE __m128 _mm_loadr_ps(const float *p) ++{ ++ float32x4_t v = vrev64q_f32(vld1q_f32(p)); ++ return vreinterpretq_m128_f32(vextq_f32(v, v, 2)); ++} ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_ps ++FORCE_INLINE __m128 _mm_loadu_ps(const float *p) ++{ ++ // for neon, alignment doesn't matter, so _mm_load_ps and _mm_loadu_ps are ++ // equivalent for neon ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load unaligned 16-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si16 ++FORCE_INLINE __m128i _mm_loadu_si16(const void *p) ++{ ++ return vreinterpretq_m128i_s16( ++ vsetq_lane_s16(*(const unaligned_int16_t *) p, vdupq_n_s16(0), 0)); ++} ++ ++// Load unaligned 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si64 ++FORCE_INLINE __m128i _mm_loadu_si64(const void *p) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(*(const unaligned_int64_t *) p, vdupq_n_s64(0), 0)); ++} ++ ++// Allocate size bytes of memory, aligned to the alignment specified in align, ++// and return a pointer to the allocated memory. _mm_free should be used to free ++// memory that is allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_malloc ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void *_mm_malloc(size_t size, size_t align) ++{ ++ void *ptr; ++ if (align == 1) ++ return malloc(size); ++ if (align == 2 || (sizeof(void *) == 8 && align == 4)) ++ align = sizeof(void *); ++ if (!posix_memalign(&ptr, align, size)) ++ return ptr; ++ return NULL; ++} ++#endif ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmove_si64 ++FORCE_INLINE void _mm_maskmove_si64(__m64 a, __m64 mask, char *mem_addr) ++{ ++ int8x8_t shr_mask = vshr_n_s8(vreinterpret_s8_m64(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x8_t masked = ++ vbsl_s8(vreinterpret_u8_s8(shr_mask), vreinterpret_s8_m64(a), ++ vreinterpret_s8_u64(vget_low_u64(vreinterpretq_u64_m128(b)))); ++ vst1_s8((int8_t *) mem_addr, masked); ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_maskmovq ++#define _m_maskmovq(a, mask, mem_addr) _mm_maskmove_si64(a, mask, mem_addr) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pi16 ++FORCE_INLINE __m64 _mm_max_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmax_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) maximum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ps ++FORCE_INLINE __m128 _mm_max_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcgtq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vmaxq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pu8 ++FORCE_INLINE __m64 _mm_max_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmax_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) maximum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ss ++FORCE_INLINE __m128 _mm_max_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_max_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pi16 ++FORCE_INLINE __m64 _mm_min_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmin_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) minimum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ps ++FORCE_INLINE __m128 _mm_min_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcltq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vminq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pu8 ++FORCE_INLINE __m64 _mm_min_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmin_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) minimum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ss ++FORCE_INLINE __m128 _mm_min_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_min_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the lower single-precision (32-bit) floating-point element from b to the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_ss ++FORCE_INLINE __m128 _mm_move_ss(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(vgetq_lane_f32(vreinterpretq_f32_m128(b), 0), ++ vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the upper 2 single-precision (32-bit) floating-point elements from b to ++// the lower 2 elements of dst, and copy the upper 2 elements from a to the ++// upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehl_ps ++FORCE_INLINE __m128 _mm_movehl_ps(__m128 a, __m128 b) ++{ ++#if defined(aarch64__) ++ return vreinterpretq_m128_u64( ++ vzip2q_u64(vreinterpretq_u64_m128(b), vreinterpretq_u64_m128(a))); ++#else ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(b32, a32)); ++#endif ++} ++ ++// Move the lower 2 single-precision (32-bit) floating-point elements from b to ++// the upper 2 elements of dst, and copy the lower 2 elements from a to the ++// lower 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movelh_ps ++FORCE_INLINE __m128 _mm_movelh_ps(__m128 __A, __m128 __B) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(__A)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(__B)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pi8 ++FORCE_INLINE int _mm_movemask_pi8(__m64 a) ++{ ++ uint8x8_t input = vreinterpret_u8_m64(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int8_t shift[8] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint8x8_t tmp = vshr_n_u8(input, 7); ++ return vaddv_u8(vshl_u8(tmp, vld1_s8(shift))); ++#else ++ // Refer the implementation of `_mm_movemask_epi8` ++ uint16x4_t high_bits = vreinterpret_u16_u8(vshr_n_u8(input, 7)); ++ uint32x2_t paired16 = ++ vreinterpret_u32_u16(vsra_n_u16(high_bits, high_bits, 7)); ++ uint8x8_t paired32 = ++ vreinterpret_u8_u32(vsra_n_u32(paired16, paired16, 14)); ++ return vget_lane_u8(paired32, 0) | ((int) vget_lane_u8(paired32, 4) << 4); ++#endif ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed single-precision (32-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_ps ++FORCE_INLINE int _mm_movemask_ps(__m128 a) ++{ ++ uint32x4_t input = vreinterpretq_u32_m128(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int32_t shift[4] = {0, 1, 2, 3}; ++ uint32x4_t tmp = vshrq_n_u32(input, 31); ++ return vaddvq_u32(vshlq_u32(tmp, vld1q_s32(shift))); ++#else ++ // Uses the exact same method as _mm_movemask_epi8, see that for details. ++ // Shift out everything but the sign bits with a 32-bit unsigned shift ++ // right. ++ uint64x2_t high_bits = vreinterpretq_u64_u32(vshrq_n_u32(input, 31)); ++ // Merge the two pairs together with a 64-bit unsigned shift right + add. ++ uint8x16_t paired = ++ vreinterpretq_u8_u64(vsraq_n_u64(high_bits, high_bits, 31)); ++ // Extract the result. ++ return vgetq_lane_u8(paired, 0) | (vgetq_lane_u8(paired, 8) << 2); ++#endif ++} ++ ++// Multiply packed single-precision (32-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ps ++FORCE_INLINE_OPTNONE __m128 _mm_mul_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vmulq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Multiply the lower single-precision (32-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ss ++FORCE_INLINE __m128 _mm_mul_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_mul_ps(a, b)); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_pu16 ++FORCE_INLINE __m64 _mm_mulhi_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16(vshrn_n_u32( ++ vmull_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b)), 16)); ++} ++ ++// Compute the bitwise OR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_ps ++FORCE_INLINE __m128 _mm_or_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vorrq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgb ++#define _m_pavgb(a, b) _mm_avg_pu8(a, b) ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgw ++#define _m_pavgw(a, b) _mm_avg_pu16(a, b) ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pextrw ++#define _m_pextrw(a, imm) _mm_extract_pi16(a, imm) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_pinsrw ++#define _m_pinsrw(a, i, imm) _mm_insert_pi16(a, i, imm) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxsw ++#define _m_pmaxsw(a, b) _mm_max_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxub ++#define _m_pmaxub(a, b) _mm_max_pu8(a, b) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminsw ++#define _m_pminsw(a, b) _mm_min_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminub ++#define _m_pminub(a, b) _mm_min_pu8(a, b) ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmovmskb ++#define _m_pmovmskb(a) _mm_movemask_pi8(a) ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmulhuw ++#define _m_pmulhuw(a, b) _mm_mulhi_pu16(a, b) ++ ++// Fetch the line of data from memory that contains address p to a location in ++// the cache hierarchy specified by the locality hint i. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_prefetch ++FORCE_INLINE void _mm_prefetch(char const *p, int i) ++{ ++ (void) i; ++#if defined(_MSC_VER) ++ switch (i) { ++ case _MM_HINT_NTA: ++ __prefetch2(p, 1); ++ break; ++ case _MM_HINT_T0: ++ __prefetch2(p, 0); ++ break; ++ case _MM_HINT_T1: ++ __prefetch2(p, 2); ++ break; ++ case _MM_HINT_T2: ++ __prefetch2(p, 4); ++ break; ++ } ++#else ++ switch (i) { ++ case _MM_HINT_NTA: ++ __builtin_prefetch(p, 0, 0); ++ break; ++ case _MM_HINT_T0: ++ __builtin_prefetch(p, 0, 3); ++ break; ++ case _MM_HINT_T1: ++ __builtin_prefetch(p, 0, 2); ++ break; ++ case _MM_HINT_T2: ++ __builtin_prefetch(p, 0, 1); ++ break; ++ } ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_psadbw ++#define _m_psadbw(a, b) _mm_sad_pu8(a, b) ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pshufw ++#define _m_pshufw(a, imm) _mm_shuffle_pi16(a, imm) ++ ++// Compute the approximate reciprocal of packed single-precision (32-bit) ++// floating-point elements in a, and store the results in dst. The maximum ++// relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ps ++FORCE_INLINE __m128 _mm_rcp_ps(__m128 in) ++{ ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(in)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#if SSE2NEON_PRECISE_DIV ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#endif ++ return vreinterpretq_m128_f32(recip); ++} ++ ++// Compute the approximate reciprocal of the lower single-precision (32-bit) ++// floating-point element in a, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ss ++FORCE_INLINE __m128 _mm_rcp_ss(__m128 a) ++{ ++ return _mm_move_ss(a, _mm_rcp_ps(a)); ++} ++ ++// Compute the approximate reciprocal square root of packed single-precision ++// (32-bit) floating-point elements in a, and store the results in dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ps ++FORCE_INLINE __m128 _mm_rsqrt_ps(__m128 in) ++{ ++ float32x4_t out = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Generate masks for detecting whether input has any 0.0f/-0.0f ++ // (which becomes positive/negative infinity by IEEE-754 arithmetic rules). ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t neg_inf = vdupq_n_u32(0xFF800000); ++ const uint32x4_t has_pos_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(out)); ++ const uint32x4_t has_neg_zero = ++ vceqq_u32(neg_inf, vreinterpretq_u32_f32(out)); ++ ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#if SSE2NEON_PRECISE_SQRT ++ // Additional Netwon-Raphson iteration for accuracy ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#endif ++ ++ // Set output vector element to infinity/negative-infinity if ++ // the corresponding input vector element is 0.0f/-0.0f. ++ out = vbslq_f32(has_pos_zero, (float32x4_t) pos_inf, out); ++ out = vbslq_f32(has_neg_zero, (float32x4_t) neg_inf, out); ++ ++ return vreinterpretq_m128_f32(out); ++} ++ ++// Compute the approximate reciprocal square root of the lower single-precision ++// (32-bit) floating-point element in a, store the result in the lower element ++// of dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ss ++FORCE_INLINE __m128 _mm_rsqrt_ss(__m128 in) ++{ ++ return vsetq_lane_f32(vgetq_lane_f32(_mm_rsqrt_ps(in), 0), in, 0); ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_pu8 ++FORCE_INLINE __m64 _mm_sad_pu8(__m64 a, __m64 b) ++{ ++ uint64x1_t t = vpaddl_u32(vpaddl_u16( ++ vpaddl_u8(vabd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))))); ++ return vreinterpret_m64_u16( ++ vset_lane_u16((int) vget_lane_u64(t, 0), vdup_n_u16(0), 0)); ++} ++ ++// Macro: Set the flush zero bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The flush zero may contain any of the ++// following flags: _MM_FLUSH_ZERO_ON or _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_FLUSH_ZERO_MODE ++FORCE_INLINE void _sse2neon_mm_set_flush_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_FLUSH_ZERO_MASK) == _MM_FLUSH_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps ++FORCE_INLINE __m128 _mm_set_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {x, y, z, w}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps1 ++FORCE_INLINE __m128 _mm_set_ps1(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Macro: Set the rounding mode bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The rounding mode may contain any of ++// the following flags: _MM_ROUND_NEAREST, _MM_ROUND_DOWN, _MM_ROUND_UP, ++// _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_ROUNDING_MODE ++FORCE_INLINE void _MM_SET_ROUNDING_MODE(int rounding) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ switch (rounding) { ++ case _MM_ROUND_TOWARD_ZERO: ++ r.field.bit22 = 1; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_DOWN: ++ r.field.bit22 = 0; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_UP: ++ r.field.bit22 = 1; ++ r.field.bit23 = 0; ++ break; ++ default: //_MM_ROUND_NEAREST ++ r.field.bit22 = 0; ++ r.field.bit23 = 0; ++ } ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Copy single-precision (32-bit) floating-point element a to the lower element ++// of dst, and zero the upper 3 elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ss ++FORCE_INLINE __m128 _mm_set_ss(float a) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(a, vdupq_n_f32(0), 0)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_ps ++FORCE_INLINE __m128 _mm_set1_ps(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Set the MXCSR control and status register with the value in unsigned 32-bit ++// integer a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setcsr ++// FIXME: _mm_setcsr() implementation supports changing the rounding mode only. ++FORCE_INLINE void _mm_setcsr(unsigned int a) ++{ ++ _MM_SET_ROUNDING_MODE(a); ++} ++ ++// Get the unsigned 32-bit value of the MXCSR control and status register. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_getcsr ++// FIXME: _mm_getcsr() implementation supports reading the rounding mode only. ++FORCE_INLINE unsigned int _mm_getcsr(void) ++{ ++ return _MM_GET_ROUNDING_MODE(); ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_ps ++FORCE_INLINE __m128 _mm_setr_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {w, z, y, x}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Return vector of type __m128 with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_ps ++FORCE_INLINE __m128 _mm_setzero_ps(void) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(0)); ++} ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi16 ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pi16(a, imm) \ ++ vreinterpret_m64_s16(vshuffle_s16( \ ++ vreinterpret_s16_m64(a), vreinterpret_s16_m64(a), (imm & 0x3), \ ++ ((imm >> 2) & 0x3), ((imm >> 4) & 0x3), ((imm >> 6) & 0x3))) ++#else ++#define _mm_shuffle_pi16(a, imm) \ ++ _sse2neon_define1( \ ++ __m64, a, int16x4_t ret; \ ++ ret = vmov_n_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), (imm) & (0x3))); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpret_m64_s16(ret));) ++#endif ++ ++// Perform a serializing operation on all store-to-memory instructions that were ++// issued prior to this instruction. Guarantees that every store instruction ++// that precedes, in program order, is globally visible before any store ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sfence ++FORCE_INLINE void _mm_sfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory and store-to-memory ++// instructions that were issued prior to this instruction. Guarantees that ++// every memory access that precedes, in program order, the memory fence ++// instruction is globally visible before any memory instruction which follows ++// the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mfence ++FORCE_INLINE void _mm_mfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory instructions that ++// were issued prior to this instruction. Guarantees that every load instruction ++// that precedes, in program order, is globally visible before any load ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lfence ++FORCE_INLINE void _mm_lfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// FORCE_INLINE __m128 _mm_shuffle_ps(__m128 a, __m128 b, __constrange(0,255) ++// int imm) ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_ps(a, b, imm) \ ++ __extension__({ \ ++ float32x4_t _input1 = vreinterpretq_f32_m128(a); \ ++ float32x4_t _input2 = vreinterpretq_f32_m128(b); \ ++ float32x4_t _shuf = \ ++ vshuffleq_s32(_input1, _input2, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ (((imm) >> 4) & 0x3) + 4, (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128_f32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_ps(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128, a, b, __m128 ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_1032(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_ps_2301(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_ps_0321(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_ps_2103(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_movelh_ps(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_1001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_ps_0101(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 1, 0): \ ++ ret = _mm_shuffle_ps_3210(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 1, 1): \ ++ ret = _mm_shuffle_ps_0011(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 2, 2): \ ++ ret = _mm_shuffle_ps_0022(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 0, 0): \ ++ ret = _mm_shuffle_ps_2200(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 0, 2): \ ++ ret = _mm_shuffle_ps_3202(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 3, 2): \ ++ ret = _mm_movehl_ps(_b, _a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 3, 3): \ ++ ret = _mm_shuffle_ps_1133(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 1, 0): \ ++ ret = _mm_shuffle_ps_2010(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_2001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_2032(_a, _b); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_ps_default(_a, _b, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Compute the square root of packed single-precision (32-bit) floating-point ++// elements in a, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise square root intrinsic, we implement ++// square root by multiplying input in with its reciprocal square root before ++// using the Newton-Raphson method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ps ++FORCE_INLINE __m128 _mm_sqrt_ps(__m128 in) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) && !SSE2NEON_PRECISE_SQRT ++ return vreinterpretq_m128_f32(vsqrtq_f32(vreinterpretq_f32_m128(in))); ++#else ++ float32x4_t recip = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Test for vrsqrteq_f32(0) -> positive infinity case. ++ // Change to zero, so that s * 1/sqrt(s) result is zero too. ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t div_by_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(recip)); ++ recip = vreinterpretq_f32_u32( ++ vandq_u32(vmvnq_u32(div_by_zero), vreinterpretq_u32_f32(recip))); ++ ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ ++ // sqrt(s) = s * 1/sqrt(s) ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(in), recip)); ++#endif ++} ++ ++// Compute the square root of the lower single-precision (32-bit) floating-point ++// element in a, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ss ++FORCE_INLINE __m128 _mm_sqrt_ss(__m128 in) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_sqrt_ps(in)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(in), 0)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps ++FORCE_INLINE void _mm_store_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps1 ++FORCE_INLINE void _mm_store_ps1(float *p, __m128 a) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ vst1q_f32(p, vdupq_n_f32(a0)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ss ++FORCE_INLINE void _mm_store_ss(float *p, __m128 a) ++{ ++ vst1q_lane_f32(p, vreinterpretq_f32_m128(a), 0); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store1_ps ++#define _mm_store1_ps _mm_store_ps1 ++ ++// Store the upper 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pi ++FORCE_INLINE void _mm_storeh_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_high_f32(a)); ++} ++ ++// Store the lower 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pi ++FORCE_INLINE void _mm_storel_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_low_f32(a)); ++} ++ ++// Store 4 single-precision (32-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_ps ++FORCE_INLINE void _mm_storer_ps(float *p, __m128 a) ++{ ++ float32x4_t tmp = vrev64q_f32(vreinterpretq_f32_m128(a)); ++ float32x4_t rev = vextq_f32(tmp, tmp, 2); ++ vst1q_f32(p, rev); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_ps ++FORCE_INLINE void _mm_storeu_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Stores 16-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si16 ++FORCE_INLINE void _mm_storeu_si16(void *p, __m128i a) ++{ ++ vst1q_lane_s16((int16_t *) p, vreinterpretq_s16_m128i(a), 0); ++} ++ ++// Stores 64-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si64 ++FORCE_INLINE void _mm_storeu_si64(void *p, __m128i a) ++{ ++ vst1q_lane_s64((int64_t *) p, vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Store 64-bits of integer data from a into memory using a non-temporal memory ++// hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pi ++FORCE_INLINE void _mm_stream_pi(__m64 *p, __m64 a) ++{ ++ vst1_s64((int64_t *) p, vreinterpret_s64_m64(a)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating- ++// point elements) from a into memory using a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_ps ++FORCE_INLINE void _mm_stream_ps(float *p, __m128 a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (float32x4_t *) p); ++#else ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++#endif ++} ++ ++// Subtract packed single-precision (32-bit) floating-point elements in b from ++// packed single-precision (32-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ps ++FORCE_INLINE __m128 _mm_sub_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Subtract the lower single-precision (32-bit) floating-point element in b from ++// the lower single-precision (32-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper 3 packed elements from ++// a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ss ++FORCE_INLINE __m128 _mm_sub_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_sub_ps(a, b)); ++} ++ ++// Macro: Transpose the 4x4 matrix formed by the 4 rows of single-precision ++// (32-bit) floating-point elements in row0, row1, row2, and row3, and store the ++// transposed matrix in these vectors (row0 now contains column 0, etc.). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=MM_TRANSPOSE4_PS ++#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \ ++ do { \ ++ float32x4x2_t ROW01 = vtrnq_f32(row0, row1); \ ++ float32x4x2_t ROW23 = vtrnq_f32(row2, row3); \ ++ row0 = vcombine_f32(vget_low_f32(ROW01.val[0]), \ ++ vget_low_f32(ROW23.val[0])); \ ++ row1 = vcombine_f32(vget_low_f32(ROW01.val[1]), \ ++ vget_low_f32(ROW23.val[1])); \ ++ row2 = vcombine_f32(vget_high_f32(ROW01.val[0]), \ ++ vget_high_f32(ROW23.val[0])); \ ++ row3 = vcombine_f32(vget_high_f32(ROW01.val[1]), \ ++ vget_high_f32(ROW23.val[1])); \ ++ } while (0) ++ ++// according to the documentation, these intrinsics behave the same as the ++// non-'u' versions. We'll just alias them here. ++#define _mm_ucomieq_ss _mm_comieq_ss ++#define _mm_ucomige_ss _mm_comige_ss ++#define _mm_ucomigt_ss _mm_comigt_ss ++#define _mm_ucomile_ss _mm_comile_ss ++#define _mm_ucomilt_ss _mm_comilt_ss ++#define _mm_ucomineq_ss _mm_comineq_ss ++ ++// Return vector of type __m128i with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_undefined_si128 ++FORCE_INLINE __m128i _mm_undefined_si128(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128i a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_si128(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Return vector of type __m128 with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_ps ++FORCE_INLINE __m128 _mm_undefined_ps(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128 a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_ps(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the high half a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_ps ++FORCE_INLINE __m128 _mm_unpackhi_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_ps ++FORCE_INLINE __m128 _mm_unpacklo_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Compute the bitwise XOR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_ps ++FORCE_INLINE __m128 _mm_xor_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ veorq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++/* SSE2 */ ++ ++// Add packed 16-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi16 ++FORCE_INLINE __m128i _mm_add_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed 32-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi32 ++FORCE_INLINE __m128i _mm_add_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vaddq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Add packed 64-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi64 ++FORCE_INLINE __m128i _mm_add_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vaddq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Add packed 8-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi8 ++FORCE_INLINE __m128i _mm_add_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed double-precision (64-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_pd ++FORCE_INLINE __m128d _mm_add_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1] + db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add the lower double-precision (64-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper element from ++// a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_sd ++FORCE_INLINE __m128d _mm_add_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_add_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] + db[0]; ++ c[1] = da[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add 64-bit integers a and b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_si64 ++FORCE_INLINE __m64 _mm_add_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vadd_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Add packed signed 16-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi16 ++FORCE_INLINE __m128i _mm_adds_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed signed 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi8 ++FORCE_INLINE __m128i _mm_adds_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed unsigned 16-bit integers in a and b using saturation, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu16 ++FORCE_INLINE __m128i _mm_adds_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqaddq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Add packed unsigned 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu8 ++FORCE_INLINE __m128i _mm_adds_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compute the bitwise AND of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_pd ++FORCE_INLINE __m128d _mm_and_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vandq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_si128 ++FORCE_INLINE __m128i _mm_and_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vandq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compute the bitwise NOT of packed double-precision (64-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_pd ++FORCE_INLINE __m128d _mm_andnot_pd(__m128d a, __m128d b) ++{ ++ // *NOTE* argument swap ++ return vreinterpretq_m128d_s64( ++ vbicq_s64(vreinterpretq_s64_m128d(b), vreinterpretq_s64_m128d(a))); ++} ++ ++// Compute the bitwise NOT of 128 bits (representing integer data) in a and then ++// AND with b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_si128 ++FORCE_INLINE __m128i _mm_andnot_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vbicq_s32(vreinterpretq_s32_m128i(b), ++ vreinterpretq_s32_m128i(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu16 ++FORCE_INLINE __m128i _mm_avg_epu16(__m128i a, __m128i b) ++{ ++ return (__m128i) vrhaddq_u16(vreinterpretq_u16_m128i(a), ++ vreinterpretq_u16_m128i(b)); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu8 ++FORCE_INLINE __m128i _mm_avg_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vrhaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bslli_si128 ++#define _mm_bslli_si128(a, imm) _mm_slli_si128(a, imm) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bsrli_si128 ++#define _mm_bsrli_si128(a, imm) _mm_srli_si128(a, imm) ++ ++// Cast vector of type __m128d to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_ps ++FORCE_INLINE __m128 _mm_castpd_ps(__m128d a) ++{ ++ return vreinterpretq_m128_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128d to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_si128 ++FORCE_INLINE __m128i _mm_castpd_si128(__m128d a) ++{ ++ return vreinterpretq_m128i_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128 to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_pd ++FORCE_INLINE __m128d _mm_castps_pd(__m128 a) ++{ ++ return vreinterpretq_m128d_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128 to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_si128 ++FORCE_INLINE __m128i _mm_castps_si128(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128i to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_pd ++FORCE_INLINE __m128d _mm_castsi128_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vreinterpretq_f64_m128i(a)); ++#else ++ return vreinterpretq_m128d_f32(vreinterpretq_f32_m128i(a)); ++#endif ++} ++ ++// Cast vector of type __m128i to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_ps ++FORCE_INLINE __m128 _mm_castsi128_ps(__m128i a) ++{ ++ return vreinterpretq_m128_s32(vreinterpretq_s32_m128i(a)); ++} ++ ++// Invalidate and flush the cache line that contains p from all levels of the ++// cache hierarchy. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clflush ++#if defined(__APPLE__) ++#include ++#endif ++FORCE_INLINE void _mm_clflush(void const *p) ++{ ++ (void) p; ++ ++ /* sys_icache_invalidate is supported since macOS 10.5. ++ * However, it does not work on non-jailbroken iOS devices, although the ++ * compilation is successful. ++ */ ++#if defined(__APPLE__) ++ sys_icache_invalidate((void *) (uintptr_t) p, SSE2NEON_CACHELINE_SIZE); ++#elif defined(__GNUC__) || defined(__clang__) ++ uintptr_t ptr = (uintptr_t) p; ++ __builtin___clear_cache((char *) ptr, ++ (char *) ptr + SSE2NEON_CACHELINE_SIZE); ++#elif (_MSC_VER) && SSE2NEON_INCLUDE_WINDOWS_H ++ FlushInstructionCache(GetCurrentProcess(), p, SSE2NEON_CACHELINE_SIZE); ++#endif ++} ++ ++// Compare packed 16-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi16 ++FORCE_INLINE __m128i _mm_cmpeq_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vceqq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed 32-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi32 ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vceqq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed 8-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi8 ++FORCE_INLINE __m128i _mm_cmpeq_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vceqq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_pd ++FORCE_INLINE __m128d _mm_cmpeq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_sd ++FORCE_INLINE __m128d _mm_cmpeq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpeq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_pd ++FORCE_INLINE __m128d _mm_cmpge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) >= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_sd ++FORCE_INLINE __m128d _mm_cmpge_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpge_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi16 ++FORCE_INLINE __m128i _mm_cmpgt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcgtq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi32 ++FORCE_INLINE __m128i _mm_cmpgt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcgtq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi8 ++FORCE_INLINE __m128i _mm_cmpgt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcgtq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_pd ++FORCE_INLINE __m128d _mm_cmpgt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_sd ++FORCE_INLINE __m128d _mm_cmpgt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpgt_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_pd ++FORCE_INLINE __m128d _mm_cmple_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) <= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_sd ++FORCE_INLINE __m128d _mm_cmple_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmple_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtw instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi16 ++FORCE_INLINE __m128i _mm_cmplt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcltq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtd instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi32 ++FORCE_INLINE __m128i _mm_cmplt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcltq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtb instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi8 ++FORCE_INLINE __m128i _mm_cmplt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcltq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_pd ++FORCE_INLINE __m128d _mm_cmplt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_sd ++FORCE_INLINE __m128d _mm_cmplt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmplt_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_pd ++FORCE_INLINE __m128d _mm_cmpneq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_s32(vmvnq_s32(vreinterpretq_s32_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vmvnq_u32(vandq_u32(cmp, swapped))); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_sd ++FORCE_INLINE __m128d _mm_cmpneq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpneq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_pd ++FORCE_INLINE __m128d _mm_cmpnge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) >= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) >= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_sd ++FORCE_INLINE __m128d _mm_cmpnge_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnge_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_cmpngt_pd ++FORCE_INLINE __m128d _mm_cmpngt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) > (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) > (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_sd ++FORCE_INLINE __m128d _mm_cmpngt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpngt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_pd ++FORCE_INLINE __m128d _mm_cmpnle_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) <= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) <= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_sd ++FORCE_INLINE __m128d _mm_cmpnle_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnle_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_pd ++FORCE_INLINE __m128d _mm_cmpnlt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ++ !((*(double *) &a0) < (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = ++ !((*(double *) &a1) < (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_sd ++FORCE_INLINE __m128d _mm_cmpnlt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnlt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_pd ++FORCE_INLINE __m128d _mm_cmpord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Excluding NaNs, any two floating point numbers can be compared. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_u64(vandq_u64(not_nan_a, not_nan_b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_sd ++FORCE_INLINE __m128d _mm_cmpord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? ~UINT64_C(0) ++ : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_pd ++FORCE_INLINE __m128d _mm_cmpunord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Two NaNs are not equal in comparison operation. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_s32( ++ vmvnq_s32(vreinterpretq_s32_u64(vandq_u64(not_nan_a, not_nan_b)))); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = ((*(double *) &a1) == (*(double *) &a1) && ++ (*(double *) &b1) == (*(double *) &b1)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_sd ++FORCE_INLINE __m128d _mm_cmpunord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpunord_pd(a, b)); ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t d[2]; ++ d[0] = ((*(double *) &a0) == (*(double *) &a0) && ++ (*(double *) &b0) == (*(double *) &b0)) ++ ? UINT64_C(0) ++ : ~UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_sd ++FORCE_INLINE int _mm_comige_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgeq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 >= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_sd ++FORCE_INLINE int _mm_comigt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgtq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 > *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_sd ++FORCE_INLINE int _mm_comile_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcleq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 <= *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_sd ++FORCE_INLINE int _mm_comilt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcltq_f64(a, b), 0) & 0x1; ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ ++ return (*(double *) &a0 < *(double *) &b0); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_sd ++FORCE_INLINE int _mm_comieq_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vceqq_f64(a, b), 0) & 0x1; ++#else ++ uint32x4_t a_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(a)); ++ uint32x4_t b_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(b), vreinterpretq_u32_m128d(b)); ++ uint32x4_t a_and_b_not_nan = vandq_u32(a_not_nan, b_not_nan); ++ uint32x4_t a_eq_b = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint64x2_t and_results = vandq_u64(vreinterpretq_u64_u32(a_and_b_not_nan), ++ vreinterpretq_u64_u32(a_eq_b)); ++ return vgetq_lane_u64(and_results, 0) & 0x1; ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_sd ++FORCE_INLINE int _mm_comineq_sd(__m128d a, __m128d b) ++{ ++ return !_mm_comieq_sd(a, b); ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_pd ++FORCE_INLINE __m128d _mm_cvtepi32_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a))))); ++#else ++ double a0 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++ double a1 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_ps ++FORCE_INLINE __m128 _mm_cvtepi32_ps(__m128i a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_epi32 ++FORCE_INLINE_OPTNONE __m128i _mm_cvtpd_epi32(__m128d a) ++{ ++// vrnd32xq_f64 not supported on clang ++#if defined(__ARM_FEATURE_FRINT) && !defined(__clang__) ++ float64x2_t rounded = vrnd32xq_f64(vreinterpretq_f64_m128d(a)); ++ int64x2_t integers = vcvtq_s64_f64(rounded); ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vmovn_s64(integers), vdup_n_s32(0))); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) d1, (int32_t) d0); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_pi32 ++FORCE_INLINE_OPTNONE __m64 _mm_cvtpd_pi32(__m128d a) ++{ ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0 = ((double *) &rnd)[0]; ++ double d1 = ((double *) &rnd)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) d0, (int32_t) d1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed single-precision (32-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_ps ++FORCE_INLINE __m128 _mm_cvtpd_ps(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float32x2_t tmp = vcvt_f32_f64(vreinterpretq_f64_m128d(a)); ++ return vreinterpretq_m128_f32(vcombine_f32(tmp, vdup_n_f32(0))); ++#else ++ float a0 = (float) ((double *) &a)[0]; ++ float a1 = (float) ((double *) &a)[1]; ++ return _mm_set_ps(0, 0, a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_pd ++FORCE_INLINE __m128d _mm_cvtpi32_pd(__m64 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vreinterpret_s32_m64(a)))); ++#else ++ double a0 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 0); ++ double a1 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_epi32 ++// *NOTE*. The default rounding mode on SSE is 'round to even', which ARMv7-A ++// does not support! It is supported on ARMv8-A however. ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128 a) ++{ ++#if defined(__ARM_FEATURE_FRINT) ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vrnd32xq_f32(a))); ++#elif (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: ++ return vreinterpretq_m128i_s32(vcvtnq_s32_f32(a)); ++ case _MM_ROUND_DOWN: ++ return vreinterpretq_m128i_s32(vcvtmq_s32_f32(a)); ++ case _MM_ROUND_UP: ++ return vreinterpretq_m128i_s32(vcvtpq_s32_f32(a)); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(a)); ++ } ++#else ++ float *f = (float *) &a; ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128i_s32( ++ vbslq_s32(is_delta_half, r_even, r_normal)); ++ } ++ case _MM_ROUND_DOWN: ++ return _mm_set_epi32(floorf(f[3]), floorf(f[2]), floorf(f[1]), ++ floorf(f[0])); ++ case _MM_ROUND_UP: ++ return _mm_set_epi32(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ++ ceilf(f[0])); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return _mm_set_epi32((int32_t) f[3], (int32_t) f[2], (int32_t) f[1], ++ (int32_t) f[0]); ++ } ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed double-precision (64-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pd ++FORCE_INLINE __m128d _mm_cvtps_pd(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvt_f64_f32(vget_low_f32(vreinterpretq_f32_m128(a)))); ++#else ++ double a0 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ double a1 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Copy the lower double-precision (64-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_f64 ++FORCE_INLINE double _mm_cvtsd_f64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (double) vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0); ++#else ++ return ((double *) &a)[0]; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si32 ++FORCE_INLINE int32_t _mm_cvtsd_si32(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int32_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int32_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64 ++FORCE_INLINE int64_t _mm_cvtsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int64_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = ((double *) &rnd)[0]; ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64x ++#define _mm_cvtsd_si64x _mm_cvtsd_si64 ++ ++// Convert the lower double-precision (64-bit) floating-point element in b to a ++// single-precision (32-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_ss ++FORCE_INLINE __m128 _mm_cvtsd_ss(__m128 a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32(vsetq_lane_f32( ++ vget_lane_f32(vcvt_f32_f64(vreinterpretq_f64_m128d(b)), 0), ++ vreinterpretq_f32_m128(a), 0)); ++#else ++ return vreinterpretq_m128_f32(vsetq_lane_f32((float) ((double *) &b)[0], ++ vreinterpretq_f32_m128(a), 0)); ++#endif ++} ++ ++// Copy the lower 32-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si32 ++FORCE_INLINE int _mm_cvtsi128_si32(__m128i a) ++{ ++ return vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64 ++FORCE_INLINE int64_t _mm_cvtsi128_si64(__m128i a) ++{ ++ return vgetq_lane_s64(vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Convert the signed 32-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_sd ++FORCE_INLINE __m128d _mm_cvtsi32_sd(__m128d a, int32_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Copy 32-bit integer a to the lower elements of dst, and zero the upper ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_si128 ++FORCE_INLINE __m128i _mm_cvtsi32_si128(int a) ++{ ++ return vreinterpretq_m128i_s32(vsetq_lane_s32(a, vdupq_n_s32(0), 0)); ++} ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_sd ++FORCE_INLINE __m128d _mm_cvtsi64_sd(__m128d a, int64_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ double bf = (double) b; ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_si128 ++FORCE_INLINE __m128i _mm_cvtsi64_si128(int64_t a) ++{ ++ return vreinterpretq_m128i_s64(vsetq_lane_s64(a, vdupq_n_s64(0), 0)); ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_si128 ++#define _mm_cvtsi64x_si128(a) _mm_cvtsi64_si128(a) ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_sd ++#define _mm_cvtsi64x_sd(a, b) _mm_cvtsi64_sd(a, b) ++ ++// Convert the lower single-precision (32-bit) floating-point element in b to a ++// double-precision (64-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_sd ++FORCE_INLINE __m128d _mm_cvtss_sd(__m128d a, __m128 b) ++{ ++ double d = (double) vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(d, vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(*(int64_t *) &d, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_epi32 ++FORCE_INLINE __m128i _mm_cvttpd_epi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ return _mm_set_epi32(0, 0, (int32_t) a1, (int32_t) a0); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_pi32 ++FORCE_INLINE __m64 _mm_cvttpd_pi32(__m128d a) ++{ ++ double a0 = ((double *) &a)[0]; ++ double a1 = ((double *) &a)[1]; ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) a0, (int32_t) a1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_epi32 ++FORCE_INLINE __m128i _mm_cvttps_epi32(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a))); ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si32 ++FORCE_INLINE int32_t _mm_cvttsd_si32(__m128d a) ++{ ++ double ret = *((double *) &a); ++ return (int32_t) ret; ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64 ++FORCE_INLINE int64_t _mm_cvttsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_s64(vcvtq_s64_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ double ret = *((double *) &a); ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64x ++#define _mm_cvttsd_si64x(a) _mm_cvttsd_si64(a) ++ ++// Divide packed double-precision (64-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_pd ++FORCE_INLINE __m128d _mm_div_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] / db[0]; ++ c[1] = da[1] / db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Divide the lower double-precision (64-bit) floating-point element in a by the ++// lower double-precision (64-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper element from a to the upper ++// element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_sd ++FORCE_INLINE __m128d _mm_div_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t tmp = ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1), tmp, 1)); ++#else ++ return _mm_move_sd(a, _mm_div_pd(a, b)); ++#endif ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi16 ++// FORCE_INLINE int _mm_extract_epi16(__m128i a, __constrange(0,8) int imm) ++#define _mm_extract_epi16(a, imm) \ ++ vgetq_lane_u16(vreinterpretq_u16_m128i(a), (imm)) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi16 ++// FORCE_INLINE __m128i _mm_insert_epi16(__m128i a, int b, ++// __constrange(0,8) int imm) ++#define _mm_insert_epi16(a, b, imm) \ ++ vreinterpretq_m128i_s16( \ ++ vsetq_lane_s16((b), vreinterpretq_s16_m128i(a), (imm))) ++ ++// Load 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd ++FORCE_INLINE __m128d _mm_load_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64(p)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], fp[2], fp[3]}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd1 ++#define _mm_load_pd1 _mm_load1_pd ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower of dst, and zero the upper element. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_sd ++FORCE_INLINE __m128d _mm_load_sd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(*p, vdupq_n_f64(0), 0)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], 0, 0}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_si128 ++FORCE_INLINE __m128i _mm_load_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const int32_t *) p)); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_pd ++FORCE_INLINE __m128d _mm_load1_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_dup_f64(p)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(const int64_t *) p)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// upper element of dst, and copy the lower element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pd ++FORCE_INLINE __m128d _mm_loadh_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vget_low_f64(vreinterpretq_f64_m128d(a)), vld1_f64(p))); ++#else ++ return vreinterpretq_m128d_f32(vcombine_f32( ++ vget_low_f32(vreinterpretq_f32_m128d(a)), vld1_f32((const float *) p))); ++#endif ++} ++ ++// Load 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_epi64 ++FORCE_INLINE __m128i _mm_loadl_epi64(__m128i const *p) ++{ ++ /* Load the lower 64 bits of the value pointed to by p into the ++ * lower 64 bits of the result, zeroing the upper 64 bits of the result. ++ */ ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vld1_s32((int32_t const *) p), vcreate_s32(0))); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower element of dst, and copy the upper element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pd ++FORCE_INLINE __m128d _mm_loadl_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vld1_f64(p), vget_high_f64(vreinterpretq_f64_m128d(a)))); ++#else ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vld1_f32((const float *) p), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++#endif ++} ++ ++// Load 2 double-precision (64-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_pd ++FORCE_INLINE __m128d _mm_loadr_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t v = vld1q_f64(p); ++ return vreinterpretq_m128d_f64(vextq_f64(v, v, 1)); ++#else ++ int64x2_t v = vld1q_s64((const int64_t *) p); ++ return vreinterpretq_m128d_s64(vextq_s64(v, v, 1)); ++#endif ++} ++ ++// Loads two double-precision from unaligned memory, floating-point values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_pd ++FORCE_INLINE __m128d _mm_loadu_pd(const double *p) ++{ ++ return _mm_load_pd(p); ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si128 ++FORCE_INLINE __m128i _mm_loadu_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const unaligned_int32_t *) p)); ++} ++ ++// Load unaligned 32-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si32 ++FORCE_INLINE __m128i _mm_loadu_si32(const void *p) ++{ ++ return vreinterpretq_m128i_s32( ++ vsetq_lane_s32(*(const unaligned_int32_t *) p, vdupq_n_s32(0), 0)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Horizontally add adjacent pairs of intermediate ++// 32-bit integers, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_madd_epi16 ++FORCE_INLINE __m128i _mm_madd_epi16(__m128i a, __m128i b) ++{ ++ int32x4_t low = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t high = ++ vmull_high_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)); ++ ++ return vreinterpretq_m128i_s32(vpaddq_s32(low, high)); ++#else ++ int32x4_t high = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ int32x2_t low_sum = vpadd_s32(vget_low_s32(low), vget_high_s32(low)); ++ int32x2_t high_sum = vpadd_s32(vget_low_s32(high), vget_high_s32(high)); ++ ++ return vreinterpretq_m128i_s32(vcombine_s32(low_sum, high_sum)); ++#endif ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. mem_addr does not need to be aligned ++// on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmoveu_si128 ++FORCE_INLINE void _mm_maskmoveu_si128(__m128i a, __m128i mask, char *mem_addr) ++{ ++ int8x16_t shr_mask = vshrq_n_s8(vreinterpretq_s8_m128i(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x16_t masked = ++ vbslq_s8(vreinterpretq_u8_s8(shr_mask), vreinterpretq_s8_m128i(a), ++ vreinterpretq_s8_m128(b)); ++ vst1q_s8((int8_t *) mem_addr, masked); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi16 ++FORCE_INLINE __m128i _mm_max_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmaxq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu8 ++FORCE_INLINE __m128i _mm_max_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vmaxq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pd ++FORCE_INLINE __m128d _mm_max_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcgtq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vmaxq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) > (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) > (*(double *) &b1) ? a1 : b1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_sd ++FORCE_INLINE __m128d _mm_max_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_max_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] > db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi16 ++FORCE_INLINE __m128i _mm_min_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vminq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu8 ++FORCE_INLINE __m128i _mm_min_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vminq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pd ++FORCE_INLINE __m128d _mm_min_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcltq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vminq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); ++ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); ++ uint64_t d[2]; ++ d[0] = (*(double *) &a0) < (*(double *) &b0) ? a0 : b0; ++ d[1] = (*(double *) &a1) < (*(double *) &b1) ? a1 : b1; ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_sd ++FORCE_INLINE __m128d _mm_min_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_min_pd(a, b)); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2] = {da[0] < db[0] ? da[0] : db[0], da[1]}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to the lower element of dst, and zero the ++// upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_epi64 ++FORCE_INLINE __m128i _mm_move_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(0, vreinterpretq_s64_m128i(a), 1)); ++} ++ ++// Move the lower double-precision (64-bit) floating-point element from b to the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_sd ++FORCE_INLINE __m128d _mm_move_sd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vget_low_f32(vreinterpretq_f32_m128d(b)), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_epi8 ++FORCE_INLINE int _mm_movemask_epi8(__m128i a) ++{ ++ // Use increasingly wide shifts+adds to collect the sign bits ++ // together. ++ // Since the widening shifts would be rather confusing to follow in little ++ // endian, everything will be illustrated in big endian order instead. This ++ // has a different result - the bits would actually be reversed on a big ++ // endian machine. ++ ++ // Starting input (only half the elements are shown): ++ // 89 ff 1d c0 00 10 99 33 ++ uint8x16_t input = vreinterpretq_u8_m128i(a); ++ ++ // Shift out everything but the sign bits with an unsigned shift right. ++ // ++ // Bytes of the vector:: ++ // 89 ff 1d c0 00 10 99 33 ++ // \ \ \ \ \ \ \ \ high_bits = (uint16x4_t)(input >> 7) ++ // | | | | | | | | ++ // 01 01 00 01 00 00 01 00 ++ // ++ // Bits of first important lane(s): ++ // 10001001 (89) ++ // \______ ++ // | ++ // 00000001 (01) ++ uint16x8_t high_bits = vreinterpretq_u16_u8(vshrq_n_u8(input, 7)); ++ ++ // Merge the even lanes together with a 16-bit unsigned shift right + add. ++ // 'xx' represents garbage data which will be ignored in the final result. ++ // In the important bytes, the add functions like a binary OR. ++ // ++ // 01 01 00 01 00 00 01 00 ++ // \_ | \_ | \_ | \_ | paired16 = (uint32x4_t)(input + (input >> 7)) ++ // \| \| \| \| ++ // xx 03 xx 01 xx 00 xx 02 ++ // ++ // 00000001 00000001 (01 01) ++ // \_______ | ++ // \| ++ // xxxxxxxx xxxxxx11 (xx 03) ++ uint32x4_t paired16 = ++ vreinterpretq_u32_u16(vsraq_n_u16(high_bits, high_bits, 7)); ++ ++ // Repeat with a wider 32-bit shift + add. ++ // xx 03 xx 01 xx 00 xx 02 ++ // \____ | \____ | paired32 = (uint64x1_t)(paired16 + (paired16 >> ++ // 14)) ++ // \| \| ++ // xx xx xx 0d xx xx xx 02 ++ // ++ // 00000011 00000001 (03 01) ++ // \\_____ || ++ // '----.\|| ++ // xxxxxxxx xxxx1101 (xx 0d) ++ uint64x2_t paired32 = ++ vreinterpretq_u64_u32(vsraq_n_u32(paired16, paired16, 14)); ++ ++ // Last, an even wider 64-bit shift + add to get our result in the low 8 bit ++ // lanes. xx xx xx 0d xx xx xx 02 ++ // \_________ | paired64 = (uint8x8_t)(paired32 + (paired32 >> ++ // 28)) ++ // \| ++ // xx xx xx xx xx xx xx d2 ++ // ++ // 00001101 00000010 (0d 02) ++ // \ \___ | | ++ // '---. \| | ++ // xxxxxxxx 11010010 (xx d2) ++ uint8x16_t paired64 = ++ vreinterpretq_u8_u64(vsraq_n_u64(paired32, paired32, 28)); ++ ++ // Extract the low 8 bits from each 64-bit lane with 2 8-bit extracts. ++ // xx xx xx xx xx xx xx d2 ++ // || return paired64[0] ++ // d2 ++ // Note: Little endian would return the correct value 4b (01001011) instead. ++ return vgetq_lane_u8(paired64, 0) | ((int) vgetq_lane_u8(paired64, 8) << 8); ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed double-precision (64-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pd ++FORCE_INLINE int _mm_movemask_pd(__m128d a) ++{ ++ uint64x2_t input = vreinterpretq_u64_m128d(a); ++ uint64x2_t high_bits = vshrq_n_u64(input, 63); ++ return (int) (vgetq_lane_u64(high_bits, 0) | ++ (vgetq_lane_u64(high_bits, 1) << 1)); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movepi64_pi64 ++FORCE_INLINE __m64 _mm_movepi64_pi64(__m128i a) ++{ ++ return vreinterpret_m64_s64(vget_low_s64(vreinterpretq_s64_m128i(a))); ++} ++ ++// Copy the 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movpi64_epi64 ++FORCE_INLINE __m128i _mm_movpi64_epi64(__m64 a) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vreinterpret_s64_m64(a), vdup_n_s64(0))); ++} ++ ++// Multiply the low unsigned 32-bit integers from each packed 64-bit element in ++// a and b, and store the unsigned 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epu32 ++FORCE_INLINE __m128i _mm_mul_epu32(__m128i a, __m128i b) ++{ ++ // vmull_u32 upcasts instead of masking, so we downcast. ++ uint32x2_t a_lo = vmovn_u64(vreinterpretq_u64_m128i(a)); ++ uint32x2_t b_lo = vmovn_u64(vreinterpretq_u64_m128i(b)); ++ return vreinterpretq_m128i_u64(vmull_u32(a_lo, b_lo)); ++} ++ ++// Multiply packed double-precision (64-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_pd ++FORCE_INLINE __m128d _mm_mul_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vmulq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] * db[0]; ++ c[1] = da[1] * db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Multiply the lower double-precision (64-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper element ++// from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_mul_sd ++FORCE_INLINE __m128d _mm_mul_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_mul_pd(a, b)); ++} ++ ++// Multiply the low unsigned 32-bit integers from a and b, and store the ++// unsigned 64-bit result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_su32 ++FORCE_INLINE __m64 _mm_mul_su32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u64(vget_low_u64( ++ vmull_u32(vreinterpret_u32_m64(a), vreinterpret_u32_m64(b)))); ++} ++ ++// Multiply the packed signed 16-bit integers in a and b, producing intermediate ++// 32-bit integers, and store the high 16 bits of the intermediate integers in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epi16 ++FORCE_INLINE __m128i _mm_mulhi_epi16(__m128i a, __m128i b) ++{ ++ /* FIXME: issue with large values because of result saturation */ ++ // int16x8_t ret = vqdmulhq_s16(vreinterpretq_s16_m128i(a), ++ // vreinterpretq_s16_m128i(b)); /* =2*a*b */ return ++ // vreinterpretq_m128i_s16(vshrq_n_s16(ret, 1)); ++ int16x4_t a3210 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b3210 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab3210 = vmull_s16(a3210, b3210); /* 3333222211110000 */ ++ int16x4_t a7654 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b7654 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab7654 = vmull_s16(a7654, b7654); /* 7777666655554444 */ ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_s32(ab3210), vreinterpretq_u16_s32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epu16 ++FORCE_INLINE __m128i _mm_mulhi_epu16(__m128i a, __m128i b) ++{ ++ uint16x4_t a3210 = vget_low_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b3210 = vget_low_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab3210 = vmull_u16(a3210, b3210); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32x4_t ab7654 = ++ vmull_high_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ uint16x8_t r = vuzp2q_u16(vreinterpretq_u16_u32(ab3210), ++ vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r); ++#else ++ uint16x4_t a7654 = vget_high_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b7654 = vget_high_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab7654 = vmull_u16(a7654, b7654); ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_u32(ab3210), vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++#endif ++} ++ ++// Multiply the packed 16-bit integers in a and b, producing intermediate 32-bit ++// integers, and store the low 16 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi16 ++FORCE_INLINE __m128i _mm_mullo_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmulq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compute the bitwise OR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_or_pd ++FORCE_INLINE __m128d _mm_or_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vorrq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise OR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_si128 ++FORCE_INLINE __m128i _mm_or_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vorrq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi16 ++FORCE_INLINE __m128i _mm_packs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vqmovn_s16(vreinterpretq_s16_m128i(a)), ++ vqmovn_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi32 ++FORCE_INLINE __m128i _mm_packs_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vqmovn_s32(vreinterpretq_s32_m128i(a)), ++ vqmovn_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi16 ++FORCE_INLINE __m128i _mm_packus_epi16(const __m128i a, const __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcombine_u8(vqmovun_s16(vreinterpretq_s16_m128i(a)), ++ vqmovun_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Pause the processor. This is typically used in spin-wait loops and depending ++// on the x86 processor typical values are in the 40-100 cycle range. The ++// 'yield' instruction isn't a good fit because it's effectively a nop on most ++// Arm cores. Experience with several databases has shown has shown an 'isb' is ++// a reasonable approximation. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_pause ++FORCE_INLINE void _mm_pause(void) ++{ ++#if defined(_MSC_VER) ++ __isb(_ARM64_BARRIER_SY); ++#else ++ __asm__ __volatile__("isb\n"); ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce two ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of 64-bit elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_epu8 ++FORCE_INLINE __m128i _mm_sad_epu8(__m128i a, __m128i b) ++{ ++ uint16x8_t t = vpaddlq_u8(vabdq_u8((uint8x16_t) a, (uint8x16_t) b)); ++ return vreinterpretq_m128i_u64(vpaddlq_u32(vpaddlq_u16(t))); ++} ++ ++// Set packed 16-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi16 ++FORCE_INLINE __m128i _mm_set_epi16(short i7, ++ short i6, ++ short i5, ++ short i4, ++ short i3, ++ short i2, ++ short i1, ++ short i0) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {i0, i1, i2, i3, i4, i5, i6, i7}; ++ return vreinterpretq_m128i_s16(vld1q_s16(data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi32 ++FORCE_INLINE __m128i _mm_set_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i0, i1, i2, i3}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64 ++FORCE_INLINE __m128i _mm_set_epi64(__m64 i1, __m64 i2) ++{ ++ return _mm_set_epi64x(vget_lane_s64(i1, 0), vget_lane_s64(i2, 0)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64x ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t i1, int64_t i2) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vcreate_s64(i2), vcreate_s64(i1))); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi8 ++FORCE_INLINE __m128i _mm_set_epi8(signed char b15, ++ signed char b14, ++ signed char b13, ++ signed char b12, ++ signed char b11, ++ signed char b10, ++ signed char b9, ++ signed char b8, ++ signed char b7, ++ signed char b6, ++ signed char b5, ++ signed char b4, ++ signed char b3, ++ signed char b2, ++ signed char b1, ++ signed char b0) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd ++FORCE_INLINE __m128d _mm_set_pd(double e1, double e0) ++{ ++ double ALIGN_STRUCT(16) data[2] = {e0, e1}; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64((float64_t *) data)); ++#else ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) data)); ++#endif ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd1 ++#define _mm_set_pd1 _mm_set1_pd ++ ++// Copy double-precision (64-bit) floating-point element a to the lower element ++// of dst, and zero the upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_sd ++FORCE_INLINE __m128d _mm_set_sd(double a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(a, vdupq_n_f64(0), 0)); ++#else ++ return _mm_set_pd(0, a); ++#endif ++} ++ ++// Broadcast 16-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi16 ++FORCE_INLINE __m128i _mm_set1_epi16(short w) ++{ ++ return vreinterpretq_m128i_s16(vdupq_n_s16(w)); ++} ++ ++// Broadcast 32-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi32 ++FORCE_INLINE __m128i _mm_set1_epi32(int _i) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(_i)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64 ++FORCE_INLINE __m128i _mm_set1_epi64(__m64 _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_lane_s64(_i, 0)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64x ++FORCE_INLINE __m128i _mm_set1_epi64x(int64_t _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_n_s64(_i)); ++} ++ ++// Broadcast 8-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi8 ++FORCE_INLINE __m128i _mm_set1_epi8(signed char w) ++{ ++ return vreinterpretq_m128i_s8(vdupq_n_s8(w)); ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_pd ++FORCE_INLINE __m128d _mm_set1_pd(double d) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(d)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(int64_t *) &d)); ++#endif ++} ++ ++// Set packed 16-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi16 ++FORCE_INLINE __m128i _mm_setr_epi16(short w0, ++ short w1, ++ short w2, ++ short w3, ++ short w4, ++ short w5, ++ short w6, ++ short w7) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {w0, w1, w2, w3, w4, w5, w6, w7}; ++ return vreinterpretq_m128i_s16(vld1q_s16((int16_t *) data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi32 ++FORCE_INLINE __m128i _mm_setr_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i3, i2, i1, i0}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi64 ++FORCE_INLINE __m128i _mm_setr_epi64(__m64 e1, __m64 e0) ++{ ++ return vreinterpretq_m128i_s64(vcombine_s64(e1, e0)); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi8 ++FORCE_INLINE __m128i _mm_setr_epi8(signed char b0, ++ signed char b1, ++ signed char b2, ++ signed char b3, ++ signed char b4, ++ signed char b5, ++ signed char b6, ++ signed char b7, ++ signed char b8, ++ signed char b9, ++ signed char b10, ++ signed char b11, ++ signed char b12, ++ signed char b13, ++ signed char b14, ++ signed char b15) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_pd ++FORCE_INLINE __m128d _mm_setr_pd(double e1, double e0) ++{ ++ return _mm_set_pd(e0, e1); ++} ++ ++// Return vector of type __m128d with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_pd ++FORCE_INLINE __m128d _mm_setzero_pd(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(0)); ++#else ++ return vreinterpretq_m128d_f32(vdupq_n_f32(0)); ++#endif ++} ++ ++// Return vector of type __m128i with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_si128 ++FORCE_INLINE __m128i _mm_setzero_si128(void) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(0)); ++} ++ ++// Shuffle 32-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi32 ++// FORCE_INLINE __m128i _mm_shuffle_epi32(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shuffle_epi32(a, imm) \ ++ __extension__({ \ ++ int32x4_t _input = vreinterpretq_s32_m128i(a); \ ++ int32x4_t _shuf = \ ++ vshuffleq_s32(_input, _input, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ ((imm) >> 4) & 0x3, ((imm) >> 6) & 0x3); \ ++ vreinterpretq_m128i_s32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_epi32(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, __m128i ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_epi_1032(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_epi_2301(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_epi_0321(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_epi_2103(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_shuffle_epi_1010(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_epi_1001(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_epi_0101(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 1, 1): \ ++ ret = _mm_shuffle_epi_2211(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 2, 2): \ ++ ret = _mm_shuffle_epi_0122(_a); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 2): \ ++ ret = _mm_shuffle_epi_3332(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 0, 0): \ ++ ret = _mm_shuffle_epi32_splat(_a, 0); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 1, 1): \ ++ ret = _mm_shuffle_epi32_splat(_a, 1); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 2, 2): \ ++ ret = _mm_shuffle_epi32_splat(_a, 2); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 3): \ ++ ret = _mm_shuffle_epi32_splat(_a, 3); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_epi32_default(_a, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Shuffle double-precision (64-bit) floating-point elements using the control ++// in imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pd ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pd(a, b, imm8) \ ++ vreinterpretq_m128d_s64( \ ++ vshuffleq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b), \ ++ imm8 & 0x1, ((imm8 & 0x2) >> 1) + 2)) ++#else ++#define _mm_shuffle_pd(a, b, imm8) \ ++ _mm_castsi128_pd(_mm_set_epi64x( \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(b), (imm8 & 0x2) >> 1), \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(a), imm8 & 0x1))) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflehi_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflehi_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = \ ++ vshuffleq_s16(_input, _input, 0, 1, 2, 3, ((imm) & (0x3)) + 4, \ ++ (((imm) >> 2) & 0x3) + 4, (((imm) >> 4) & 0x3) + 4, \ ++ (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflehi_epi16(a, imm) _mm_shufflehi_epi16_function((a), (imm)) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflelo_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflelo_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = vshuffleq_s16( \ ++ _input, _input, ((imm) & (0x3)), (((imm) >> 2) & 0x3), \ ++ (((imm) >> 4) & 0x3), (((imm) >> 6) & 0x3), 4, 5, 6, 7); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflelo_epi16(a, imm) _mm_shufflelo_epi16_function((a), (imm)) ++#endif ++ ++// Shift packed 16-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi16 ++FORCE_INLINE __m128i _mm_sll_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16((int16_t) c); ++ return vreinterpretq_m128i_s16(vshlq_s16(vreinterpretq_s16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi32 ++FORCE_INLINE __m128i _mm_sll_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32((int32_t) c); ++ return vreinterpretq_m128i_s32(vshlq_s32(vreinterpretq_s32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi64 ++FORCE_INLINE __m128i _mm_sll_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64((int64_t) c); ++ return vreinterpretq_m128i_s64(vshlq_s64(vreinterpretq_s64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi16 ++FORCE_INLINE __m128i _mm_slli_epi16(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~15)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16(vreinterpretq_s16_m128i(a), vdupq_n_s16(imm))); ++} ++ ++// Shift packed 32-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi32 ++FORCE_INLINE __m128i _mm_slli_epi32(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~31)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32(vreinterpretq_s32_m128i(a), vdupq_n_s32(imm))); ++} ++ ++// Shift packed 64-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi64 ++FORCE_INLINE __m128i _mm_slli_epi64(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~63)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s64( ++ vshlq_s64(vreinterpretq_s64_m128i(a), vdupq_n_s64(imm))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_si128 ++#define _mm_slli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely(imm == 0)) ret = vreinterpretq_s8_m128i(_a); \ ++ else if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vdupq_n_s8(0), vreinterpretq_s8_m128i(_a), \ ++ ((imm <= 0 || imm > 15) ? 0 : (16 - imm))); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Compute the square root of packed double-precision (64-bit) floating-point ++// elements in a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_pd ++FORCE_INLINE __m128d _mm_sqrt_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsqrtq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double a0 = sqrt(((double *) &a)[0]); ++ double a1 = sqrt(((double *) &a)[1]); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Compute the square root of the lower double-precision (64-bit) floating-point ++// element in b, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_sd ++FORCE_INLINE __m128d _mm_sqrt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_sqrt_pd(b)); ++#else ++ return _mm_set_pd(((double *) &a)[1], sqrt(((double *) &b)[0])); ++#endif ++} ++ ++// Shift packed 16-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi16 ++FORCE_INLINE __m128i _mm_sra_epi16(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_cmplt_epi16(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16((int16x8_t) a, vdupq_n_s16((int) -c))); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi32 ++FORCE_INLINE __m128i _mm_sra_epi32(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_cmplt_epi32(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32((int32x4_t) a, vdupq_n_s32((int) -c))); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in sign ++// bits, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi16 ++FORCE_INLINE __m128i _mm_srai_epi16(__m128i a, int imm) ++{ ++ const int count = (imm & ~15) ? 15 : imm; ++ return (__m128i) vshlq_s16((int16x8_t) a, vdupq_n_s16(-count)); ++} ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi32 ++// FORCE_INLINE __m128i _mm_srai_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srai_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) == 0)) { \ ++ ret = _a; \ ++ } else if (_sse2neon_likely(0 < (imm) && (imm) < 32)) { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshlq_s32(vreinterpretq_s32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } else { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshrq_n_s32(vreinterpretq_s32_m128i(_a), 31)); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 16-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi16 ++FORCE_INLINE __m128i _mm_srl_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16(-(int16_t) c); ++ return vreinterpretq_m128i_u16(vshlq_u16(vreinterpretq_u16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi32 ++FORCE_INLINE __m128i _mm_srl_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32(-(int32_t) c); ++ return vreinterpretq_m128i_u32(vshlq_u32(vreinterpretq_u32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi64 ++FORCE_INLINE __m128i _mm_srl_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64(-(int64_t) c); ++ return vreinterpretq_m128i_u64(vshlq_u64(vreinterpretq_u64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi16 ++#define _mm_srli_epi16(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~15)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u16( \ ++ vshlq_u16(vreinterpretq_u16_m128i(_a), vdupq_n_s16(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi32 ++// FORCE_INLINE __m128i _mm_srli_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srli_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~31)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u32( \ ++ vshlq_u32(vreinterpretq_u32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 64-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi64 ++#define _mm_srli_epi64(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~63)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u64( \ ++ vshlq_u64(vreinterpretq_u64_m128i(_a), vdupq_n_s64(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_si128 ++#define _mm_srli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vreinterpretq_s8_m128i(_a), vdupq_n_s8(0), \ ++ (imm > 15 ? 0 : imm)); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd ++FORCE_INLINE void _mm_store_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64((float64_t *) mem_addr, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_f32((float32_t *) mem_addr, vreinterpretq_f32_m128d(a)); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd1 ++FORCE_INLINE void _mm_store_pd1(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x1_t a_low = vget_low_f64(vreinterpretq_f64_m128d(a)); ++ vst1q_f64((float64_t *) mem_addr, ++ vreinterpretq_f64_m128d(vcombine_f64(a_low, a_low))); ++#else ++ float32x2_t a_low = vget_low_f32(vreinterpretq_f32_m128d(a)); ++ vst1q_f32((float32_t *) mem_addr, ++ vreinterpretq_f32_m128d(vcombine_f32(a_low, a_low))); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_store_sd ++FORCE_INLINE void _mm_store_sd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_u64((uint64_t *) mem_addr, vget_low_u64(vreinterpretq_u64_m128d(a))); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_si128 ++FORCE_INLINE void _mm_store_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#expand=9,526,5601&text=_mm_store1_pd ++#define _mm_store1_pd _mm_store_pd1 ++ ++// Store the upper double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pd ++FORCE_INLINE void _mm_storeh_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_high_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_high_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 64-bit integer from the first element of a into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_epi64 ++FORCE_INLINE void _mm_storel_epi64(__m128i *a, __m128i b) ++{ ++ vst1_u64((uint64_t *) a, vget_low_u64(vreinterpretq_u64_m128i(b))); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pd ++FORCE_INLINE void _mm_storel_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_low_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 2 double-precision (64-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_pd ++FORCE_INLINE void _mm_storer_pd(double *mem_addr, __m128d a) ++{ ++ float32x4_t f = vreinterpretq_f32_m128d(a); ++ _mm_store_pd(mem_addr, vreinterpretq_m128d_f32(vextq_f32(f, f, 2))); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_pd ++FORCE_INLINE void _mm_storeu_pd(double *mem_addr, __m128d a) ++{ ++ _mm_store_pd(mem_addr, a); ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si128 ++FORCE_INLINE void _mm_storeu_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store 32-bit integer from the first element of a into memory. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si32 ++FORCE_INLINE void _mm_storeu_si32(void *p, __m128i a) ++{ ++ vst1q_lane_s32((int32_t *) p, vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory using a non-temporal memory hint. mem_addr must ++// be aligned on a 16-byte boundary or a general-protection exception may be ++// generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pd ++FORCE_INLINE void _mm_stream_pd(double *p, __m128d a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (__m128d *) p); ++#elif defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64(p, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128d(a)); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory using a non-temporal memory ++// hint. mem_addr must be aligned on a 16-byte boundary or a general-protection ++// exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si128 ++FORCE_INLINE void _mm_stream_si128(__m128i *p, __m128i a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, p); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128i(a)); ++#endif ++} ++ ++// Store 32-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si32 ++FORCE_INLINE void _mm_stream_si32(int *p, int a) ++{ ++ vst1q_lane_s32((int32_t *) p, vdupq_n_s32(a), 0); ++} ++ ++// Store 64-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si64 ++FORCE_INLINE void _mm_stream_si64(__int64 *p, __int64 a) ++{ ++ vst1_s64((int64_t *) p, vdup_n_s64((int64_t) a)); ++} ++ ++// Subtract packed 16-bit integers in b from packed 16-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi16 ++FORCE_INLINE __m128i _mm_sub_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed 32-bit integers in b from packed 32-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi32 ++FORCE_INLINE __m128i _mm_sub_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Subtract packed 64-bit integers in b from packed 64-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi64 ++FORCE_INLINE __m128i _mm_sub_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vsubq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Subtract packed 8-bit integers in b from packed 8-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi8 ++FORCE_INLINE __m128i _mm_sub_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed double-precision (64-bit) floating-point elements in b from ++// packed double-precision (64-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_sub_pd ++FORCE_INLINE __m128d _mm_sub_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[2]; ++ c[0] = da[0] - db[0]; ++ c[1] = da[1] - db[1]; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Subtract the lower double-precision (64-bit) floating-point element in b from ++// the lower double-precision (64-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_sd ++FORCE_INLINE __m128d _mm_sub_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_sub_pd(a, b)); ++} ++ ++// Subtract 64-bit integer b from 64-bit integer a, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_si64 ++FORCE_INLINE __m64 _mm_sub_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vsub_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Subtract packed signed 16-bit integers in b from packed 16-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi16 ++FORCE_INLINE __m128i _mm_subs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed signed 8-bit integers in b from packed 8-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi8 ++FORCE_INLINE __m128i _mm_subs_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed unsigned 16-bit integers in b from packed unsigned 16-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu16 ++FORCE_INLINE __m128i _mm_subs_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqsubq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Subtract packed unsigned 8-bit integers in b from packed unsigned 8-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu8 ++FORCE_INLINE __m128i _mm_subs_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqsubq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++#define _mm_ucomieq_sd _mm_comieq_sd ++#define _mm_ucomige_sd _mm_comige_sd ++#define _mm_ucomigt_sd _mm_comigt_sd ++#define _mm_ucomile_sd _mm_comile_sd ++#define _mm_ucomilt_sd _mm_comilt_sd ++#define _mm_ucomineq_sd _mm_comineq_sd ++ ++// Return vector of type __m128d with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_pd ++FORCE_INLINE __m128d _mm_undefined_pd(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128d a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_pd(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi16 ++FORCE_INLINE __m128i _mm_unpackhi_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip2q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi32 ++FORCE_INLINE __m128i _mm_unpackhi_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip2q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_high_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi64 ++FORCE_INLINE __m128i _mm_unpackhi_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip2q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_h = vget_high_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_h = vget_high_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_h, b_h)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the high half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi8 ++FORCE_INLINE __m128i _mm_unpackhi_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip2q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the high half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_pd ++FORCE_INLINE __m128d _mm_unpackhi_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip2q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_high_s64(vreinterpretq_s64_m128d(a)), ++ vget_high_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi16 ++FORCE_INLINE __m128i _mm_unpacklo_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip1q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi32 ++FORCE_INLINE __m128i _mm_unpacklo_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip1q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_low_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi64 ++FORCE_INLINE __m128i _mm_unpacklo_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip1q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_l = vget_low_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_l = vget_low_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_l, b_l)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi8 ++FORCE_INLINE __m128i _mm_unpacklo_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip1q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_pd ++FORCE_INLINE __m128d _mm_unpacklo_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip1q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_low_s64(vreinterpretq_s64_m128d(a)), ++ vget_low_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Compute the bitwise XOR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_pd ++FORCE_INLINE __m128d _mm_xor_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ veorq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise XOR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_si128 ++FORCE_INLINE __m128i _mm_xor_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ veorq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++/* SSE3 */ ++ ++// Alternatively add and subtract packed double-precision (64-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_addsub_pd ++FORCE_INLINE __m128d _mm_addsub_pd(__m128d a, __m128d b) ++{ ++ _sse2neon_const __m128d mask = _mm_set_pd(1.0f, -1.0f); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vfmaq_f64(vreinterpretq_f64_m128d(a), ++ vreinterpretq_f64_m128d(b), ++ vreinterpretq_f64_m128d(mask))); ++#else ++ return _mm_add_pd(_mm_mul_pd(b, mask), a); ++#endif ++} ++ ++// Alternatively add and subtract packed single-precision (32-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=addsub_ps ++FORCE_INLINE __m128 _mm_addsub_ps(__m128 a, __m128 b) ++{ ++ _sse2neon_const __m128 mask = _mm_setr_ps(-1.0f, 1.0f, -1.0f, 1.0f); ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_FMA) /* VFPv4+ */ ++ return vreinterpretq_m128_f32(vfmaq_f32(vreinterpretq_f32_m128(a), ++ vreinterpretq_f32_m128(mask), ++ vreinterpretq_f32_m128(b))); ++#else ++ return _mm_add_ps(_mm_mul_ps(b, mask), a); ++#endif ++} ++ ++// Horizontally add adjacent pairs of double-precision (64-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pd ++FORCE_INLINE __m128d _mm_hadd_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vpaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double *da = (double *) &a; ++ double *db = (double *) &b; ++ double c[] = {da[0] + da[1], db[0] + db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of single-precision (32-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_ps ++FORCE_INLINE __m128 _mm_hadd_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vpaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vpadd_f32(a10, a32), vpadd_f32(b10, b32))); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of double-precision (64-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pd ++FORCE_INLINE __m128d _mm_hsub_pd(__m128d _a, __m128d _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vuzp1q_f64(a, b), vuzp2q_f64(a, b))); ++#else ++ double *da = (double *) &_a; ++ double *db = (double *) &_b; ++ double c[] = {da[0] - da[1], db[0] - db[1]}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of single-precision (32-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_ps ++FORCE_INLINE __m128 _mm_hsub_ps(__m128 _a, __m128 _b) ++{ ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vuzp1q_f32(a, b), vuzp2q_f32(a, b))); ++#else ++ float32x4x2_t c = vuzpq_f32(a, b); ++ return vreinterpretq_m128_f32(vsubq_f32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Load 128-bits of integer data from unaligned memory into dst. This intrinsic ++// may perform better than _mm_loadu_si128 when the data crosses a cache line ++// boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lddqu_si128 ++#define _mm_lddqu_si128 _mm_loadu_si128 ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loaddup_pd ++#define _mm_loaddup_pd _mm_load1_pd ++ ++// Duplicate the low double-precision (64-bit) floating-point element from a, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movedup_pd ++FORCE_INLINE __m128d _mm_movedup_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdupq_laneq_f64(vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_u64( ++ vdupq_n_u64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0))); ++#endif ++} ++ ++// Duplicate odd-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehdup_ps ++FORCE_INLINE __m128 _mm_movehdup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 1, 1, 3, 3)); ++#else ++ float32_t a1 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ float32_t a3 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 3); ++ float ALIGN_STRUCT(16) data[4] = {a1, a1, a3, a3}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Duplicate even-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_moveldup_ps ++FORCE_INLINE __m128 _mm_moveldup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 0, 0, 2, 2)); ++#else ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32_t a2 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 2); ++ float ALIGN_STRUCT(16) data[4] = {a0, a0, a2, a2}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++/* SSSE3 */ ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi16 ++FORCE_INLINE __m128i _mm_abs_epi16(__m128i a) ++{ ++ return vreinterpretq_m128i_s16(vabsq_s16(vreinterpretq_s16_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi32 ++FORCE_INLINE __m128i _mm_abs_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32(vabsq_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi8 ++FORCE_INLINE __m128i _mm_abs_epi8(__m128i a) ++{ ++ return vreinterpretq_m128i_s8(vabsq_s8(vreinterpretq_s8_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi16 ++FORCE_INLINE __m64 _mm_abs_pi16(__m64 a) ++{ ++ return vreinterpret_m64_s16(vabs_s16(vreinterpret_s16_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi32 ++FORCE_INLINE __m64 _mm_abs_pi32(__m64 a) ++{ ++ return vreinterpret_m64_s32(vabs_s32(vreinterpret_s32_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi8 ++FORCE_INLINE __m64 _mm_abs_pi8(__m64 a) ++{ ++ return vreinterpret_m64_s8(vabs_s8(vreinterpret_s8_m64(a))); ++} ++ ++// Concatenate 16-byte blocks in a and b into a 32-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 16 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_epi8 ++#if defined(__GNUC__) && !defined(__clang__) ++#define _mm_alignr_epi8(a, b, imm) \ ++ __extension__({ \ ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); \ ++ uint8x16_t _b = vreinterpretq_u8_m128i(b); \ ++ __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) \ ++ ret = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) \ ++ ret = _mm_srli_si128(a, imm >= 16 ? imm - 16 : 0); \ ++ else \ ++ ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(_b, _a, imm < 16 ? imm : 0)); \ ++ ret; \ ++ }) ++ ++#else ++#define _mm_alignr_epi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, uint8x16_t __a = vreinterpretq_u8_m128i(_a); \ ++ uint8x16_t __b = vreinterpretq_u8_m128i(_b); __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) ret = \ ++ vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) ret = \ ++ _mm_srli_si128(_a, imm >= 16 ? imm - 16 : 0); \ ++ else ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(__b, __a, imm < 16 ? imm : 0)); \ ++ _sse2neon_return(ret);) ++ ++#endif ++ ++// Concatenate 8-byte blocks in a and b into a 16-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 8 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_pi8 ++#define _mm_alignr_pi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m64, a, b, __m64 ret; if (_sse2neon_unlikely((imm) >= 16)) { \ ++ ret = vreinterpret_m64_s8(vdup_n_s8(0)); \ ++ } else { \ ++ uint8x8_t tmp_low; \ ++ uint8x8_t tmp_high; \ ++ if ((imm) >= 8) { \ ++ const int idx = (imm) -8; \ ++ tmp_low = vreinterpret_u8_m64(_a); \ ++ tmp_high = vdup_n_u8(0); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } else { \ ++ const int idx = (imm); \ ++ tmp_low = vreinterpret_u8_m64(_b); \ ++ tmp_high = vreinterpret_u8_m64(_a); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } \ ++ } _sse2neon_return(ret);) ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi16 ++FORCE_INLINE __m128i _mm_hadd_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16(vpaddq_s16(a, b)); ++#else ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(vget_low_s16(a), vget_high_s16(a)), ++ vpadd_s16(vget_low_s16(b), vget_high_s16(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi32 ++FORCE_INLINE __m128i _mm_hadd_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32(vpaddq_s32(a, b)); ++#else ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vpadd_s32(vget_low_s32(a), vget_high_s32(a)), ++ vpadd_s32(vget_low_s32(b), vget_high_s32(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi16 ++FORCE_INLINE __m64 _mm_hadd_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vpadd_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi32 ++FORCE_INLINE __m64 _mm_hadd_pi32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s32( ++ vpadd_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_epi16 ++FORCE_INLINE __m128i _mm_hadds_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ return vreinterpretq_s64_s16( ++ vqaddq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ // Interleave using vshrn/vmovn ++ // [a0|a2|a4|a6|b0|b2|b4|b6] ++ // [a1|a3|a5|a7|b1|b3|b5|b7] ++ int16x8_t ab0246 = vcombine_s16(vmovn_s32(a), vmovn_s32(b)); ++ int16x8_t ab1357 = vcombine_s16(vshrn_n_s32(a, 16), vshrn_n_s32(b, 16)); ++ // Saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(ab0246, ab1357)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_pi16 ++FORCE_INLINE __m64 _mm_hadds_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_s64_s16(vqadd_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t res = vuzp_s16(a, b); ++ return vreinterpret_s64_s16(vqadd_s16(res.val[0], res.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi16 ++FORCE_INLINE __m128i _mm_hsub_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi32 ++FORCE_INLINE __m128i _mm_hsub_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vuzp1q_s32(a, b), vuzp2q_s32(a, b))); ++#else ++ int32x4x2_t c = vuzpq_s32(a, b); ++ return vreinterpretq_m128i_s32(vsubq_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pi16 ++FORCE_INLINE __m64 _mm_hsub_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_hsub_pi32 ++FORCE_INLINE __m64 _mm_hsub_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s32(vsub_s32(vuzp1_s32(a, b), vuzp2_s32(a, b))); ++#else ++ int32x2x2_t c = vuzp_s32(a, b); ++ return vreinterpret_m64_s32(vsub_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_epi16 ++FORCE_INLINE __m128i _mm_hsubs_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vqsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_pi16 ++FORCE_INLINE __m64 _mm_hsubs_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vqsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vqsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, ++// and pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_epi16 ++FORCE_INLINE __m128i _mm_maddubs_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ int16x8_t tl = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_low_u8(a))), ++ vmovl_s8(vget_low_s8(b))); ++ int16x8_t th = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_high_u8(a))), ++ vmovl_s8(vget_high_s8(b))); ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vuzp1q_s16(tl, th), vuzp2q_s16(tl, th))); ++#else ++ // This would be much simpler if x86 would choose to zero extend OR sign ++ // extend, not both. This could probably be optimized better. ++ uint16x8_t a = vreinterpretq_u16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // Zero extend a ++ int16x8_t a_odd = vreinterpretq_s16_u16(vshrq_n_u16(a, 8)); ++ int16x8_t a_even = vreinterpretq_s16_u16(vbicq_u16(a, vdupq_n_u16(0xff00))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x8_t b_even = vshrq_n_s16(vshlq_n_s16(b, 8), 8); ++ int16x8_t b_odd = vshrq_n_s16(b, 8); ++ ++ // multiply ++ int16x8_t prod1 = vmulq_s16(a_even, b_even); ++ int16x8_t prod2 = vmulq_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(prod1, prod2)); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, and ++// pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_pi16 ++FORCE_INLINE __m64 _mm_maddubs_pi16(__m64 _a, __m64 _b) ++{ ++ uint16x4_t a = vreinterpret_u16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // Zero extend a ++ int16x4_t a_odd = vreinterpret_s16_u16(vshr_n_u16(a, 8)); ++ int16x4_t a_even = vreinterpret_s16_u16(vand_u16(a, vdup_n_u16(0xff))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x4_t b_even = vshr_n_s16(vshl_n_s16(b, 8), 8); ++ int16x4_t b_odd = vshr_n_s16(b, 8); ++ ++ // multiply ++ int16x4_t prod1 = vmul_s16(a_even, b_even); ++ int16x4_t prod2 = vmul_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpret_m64_s16(vqadd_s16(prod1, prod2)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Shift right by 15 bits while rounding up, and store ++// the packed 16-bit integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_epi16 ++FORCE_INLINE __m128i _mm_mulhrs_epi16(__m128i a, __m128i b) ++{ ++ // Has issues due to saturation ++ // return vreinterpretq_m128i_s16(vqrdmulhq_s16(a, b)); ++ ++ // Multiply ++ int32x4_t mul_lo = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int32x4_t mul_hi = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ // Rounding narrowing shift right ++ // narrow = (int16_t)((mul + 16384) >> 15); ++ int16x4_t narrow_lo = vrshrn_n_s32(mul_lo, 15); ++ int16x4_t narrow_hi = vrshrn_n_s32(mul_hi, 15); ++ ++ // Join together ++ return vreinterpretq_m128i_s16(vcombine_s16(narrow_lo, narrow_hi)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Truncate each intermediate integer to the 18 most ++// significant bits, round by adding 1, and store bits [16:1] to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_pi16 ++FORCE_INLINE __m64 _mm_mulhrs_pi16(__m64 a, __m64 b) ++{ ++ int32x4_t mul_extend = ++ vmull_s16((vreinterpret_s16_m64(a)), (vreinterpret_s16_m64(b))); ++ ++ // Rounding narrowing shift right ++ return vreinterpret_m64_s16(vrshrn_n_s32(mul_extend, 15)); ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi8 ++FORCE_INLINE __m128i _mm_shuffle_epi8(__m128i a, __m128i b) ++{ ++ int8x16_t tbl = vreinterpretq_s8_m128i(a); // input a ++ uint8x16_t idx = vreinterpretq_u8_m128i(b); // input b ++ uint8x16_t idx_masked = ++ vandq_u8(idx, vdupq_n_u8(0x8F)); // avoid using meaningless bits ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8(vqtbl1q_s8(tbl, idx_masked)); ++#elif defined(__GNUC__) ++ int8x16_t ret; ++ // %e and %f represent the even and odd D registers ++ // respectively. ++ __asm__ __volatile__( ++ "vtbl.8 %e[ret], {%e[tbl], %f[tbl]}, %e[idx]\n" ++ "vtbl.8 %f[ret], {%e[tbl], %f[tbl]}, %f[idx]\n" ++ : [ret] "=&w"(ret) ++ : [tbl] "w"(tbl), [idx] "w"(idx_masked)); ++ return vreinterpretq_m128i_s8(ret); ++#else ++ // use this line if testing on aarch64 ++ int8x8x2_t a_split = {vget_low_s8(tbl), vget_high_s8(tbl)}; ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vtbl2_s8(a_split, vget_low_u8(idx_masked)), ++ vtbl2_s8(a_split, vget_high_u8(idx_masked)))); ++#endif ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi8 ++FORCE_INLINE __m64 _mm_shuffle_pi8(__m64 a, __m64 b) ++{ ++ const int8x8_t controlMask = ++ vand_s8(vreinterpret_s8_m64(b), vdup_n_s8((int8_t) (0x1 << 7 | 0x07))); ++ int8x8_t res = vtbl1_s8(vreinterpret_s8_m64(a), controlMask); ++ return vreinterpret_m64_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed ++// 16-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi16 ++FORCE_INLINE __m128i _mm_sign_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x8_t ltMask = vreinterpretq_u16_s16(vshrq_n_s16(b, 15)); ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqzq_s16(b)); ++#else ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqq_s16(b, vdupq_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s16(a) equals to negative ++ // 'a') based on ltMask ++ int16x8_t masked = vbslq_s16(ltMask, vnegq_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x8_t res = vbicq_s16(masked, zeroMask); ++ return vreinterpretq_m128i_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed ++// 32-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi32 ++FORCE_INLINE __m128i _mm_sign_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x4_t ltMask = vreinterpretq_u32_s32(vshrq_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqzq_s32(b)); ++#else ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqq_s32(b, vdupq_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s32(a) equals to negative ++ // 'a') based on ltMask ++ int32x4_t masked = vbslq_s32(ltMask, vnegq_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x4_t res = vbicq_s32(masked, zeroMask); ++ return vreinterpretq_m128i_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed ++// 8-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi8 ++FORCE_INLINE __m128i _mm_sign_epi8(__m128i _a, __m128i _b) ++{ ++ int8x16_t a = vreinterpretq_s8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x16_t ltMask = vreinterpretq_u8_s8(vshrq_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqzq_s8(b)); ++#else ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqq_s8(b, vdupq_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s8(a) return negative 'a') ++ // based on ltMask ++ int8x16_t masked = vbslq_s8(ltMask, vnegq_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x16_t res = vbicq_s8(masked, zeroMask); ++ ++ return vreinterpretq_m128i_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed 16-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi16 ++FORCE_INLINE __m64 _mm_sign_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x4_t ltMask = vreinterpret_u16_s16(vshr_n_s16(b, 15)); ++ ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceqz_s16(b)); ++#else ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceq_s16(b, vdup_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s16(a) return negative 'a') ++ // based on ltMask ++ int16x4_t masked = vbsl_s16(ltMask, vneg_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x4_t res = vbic_s16(masked, zeroMask); ++ ++ return vreinterpret_m64_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed 32-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi32 ++FORCE_INLINE __m64 _mm_sign_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x2_t ltMask = vreinterpret_u32_s32(vshr_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceqz_s32(b)); ++#else ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceq_s32(b, vdup_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s32(a) return negative 'a') ++ // based on ltMask ++ int32x2_t masked = vbsl_s32(ltMask, vneg_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x2_t res = vbic_s32(masked, zeroMask); ++ ++ return vreinterpret_m64_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed 8-bit integer ++// in b is negative, and store the results in dst. Element in dst are zeroed out ++// when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi8 ++FORCE_INLINE __m64 _mm_sign_pi8(__m64 _a, __m64 _b) ++{ ++ int8x8_t a = vreinterpret_s8_m64(_a); ++ int8x8_t b = vreinterpret_s8_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x8_t ltMask = vreinterpret_u8_s8(vshr_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceqz_s8(b)); ++#else ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceq_s8(b, vdup_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s8(a) return negative 'a') ++ // based on ltMask ++ int8x8_t masked = vbsl_s8(ltMask, vneg_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x8_t res = vbic_s8(masked, zeroMask); ++ ++ return vreinterpret_m64_s8(res); ++} ++ ++/* SSE4.1 */ ++ ++// Blend packed 16-bit integers from a and b using control mask imm8, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_epi16 ++// FORCE_INLINE __m128i _mm_blend_epi16(__m128i a, __m128i b, ++// __constrange(0,255) int imm) ++#define _mm_blend_epi16(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, \ ++ const uint16_t _mask[8] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 1)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 2)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 3)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 4)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 5)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 6)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 7)) ? (uint16_t) -1 : 0x0); \ ++ uint16x8_t _mask_vec = vld1q_u16(_mask); \ ++ uint16x8_t __a = vreinterpretq_u16_m128i(_a); \ ++ uint16x8_t __b = vreinterpretq_u16_m128i(_b); _sse2neon_return( \ ++ vreinterpretq_m128i_u16(vbslq_u16(_mask_vec, __b, __a)));) ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using control mask imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_pd ++#define _mm_blend_pd(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128d, a, b, \ ++ const uint64_t _mask[2] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? ~UINT64_C(0) : UINT64_C(0), \ ++ ((imm) & (1 << 1)) ? ~UINT64_C(0) : UINT64_C(0)); \ ++ uint64x2_t _mask_vec = vld1q_u64(_mask); \ ++ uint64x2_t __a = vreinterpretq_u64_m128d(_a); \ ++ uint64x2_t __b = vreinterpretq_u64_m128d(_b); _sse2neon_return( \ ++ vreinterpretq_m128d_u64(vbslq_u64(_mask_vec, __b, __a)));) ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_ps ++FORCE_INLINE __m128 _mm_blend_ps(__m128 _a, __m128 _b, const char imm8) ++{ ++ const uint32_t ALIGN_STRUCT(16) ++ data[4] = {((imm8) & (1 << 0)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0}; ++ uint32x4_t mask = vld1q_u32(data); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Blend packed 8-bit integers from a and b using mask, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_epi8 ++FORCE_INLINE __m128i _mm_blendv_epi8(__m128i _a, __m128i _b, __m128i _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint8x16_t mask = ++ vreinterpretq_u8_s8(vshrq_n_s8(vreinterpretq_s8_m128i(_mask), 7)); ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ uint8x16_t b = vreinterpretq_u8_m128i(_b); ++ return vreinterpretq_m128i_u8(vbslq_u8(mask, b, a)); ++} ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_pd ++FORCE_INLINE __m128d _mm_blendv_pd(__m128d _a, __m128d _b, __m128d _mask) ++{ ++ uint64x2_t mask = ++ vreinterpretq_u64_s64(vshrq_n_s64(vreinterpretq_s64_m128d(_mask), 63)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64(vbslq_f64(mask, b, a)); ++#else ++ uint64x2_t a = vreinterpretq_u64_m128d(_a); ++ uint64x2_t b = vreinterpretq_u64_m128d(_b); ++ return vreinterpretq_m128d_u64(vbslq_u64(mask, b, a)); ++#endif ++} ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_ps ++FORCE_INLINE __m128 _mm_blendv_ps(__m128 _a, __m128 _b, __m128 _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint32x4_t mask = ++ vreinterpretq_u32_s32(vshrq_n_s32(vreinterpretq_s32_m128(_mask), 31)); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a up ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_pd ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndpq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(ceil(f[1]), ceil(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a up to ++// an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ps ++FORCE_INLINE __m128 _mm_ceil_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndpq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ceilf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b up to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_sd ++FORCE_INLINE __m128d _mm_ceil_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_ceil_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b up to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ss ++FORCE_INLINE __m128 _mm_ceil_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_ceil_ps(b)); ++} ++ ++// Compare packed 64-bit integers in a and b for equality, and store the results ++// in dst ++FORCE_INLINE __m128i _mm_cmpeq_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vceqq_u64(vreinterpretq_u64_m128i(a), vreinterpretq_u64_m128i(b))); ++#else ++ // ARMv7 lacks vceqq_u64 ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128i_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Sign extend packed 16-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi32 ++FORCE_INLINE __m128i _mm_cvtepi16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vmovl_s16(vget_low_s16(vreinterpretq_s16_m128i(a)))); ++} ++ ++// Sign extend packed 16-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi64 ++FORCE_INLINE __m128i _mm_cvtepi16_epi64(__m128i a) ++{ ++ int16x8_t s16x8 = vreinterpretq_s16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Sign extend packed 32-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_epi64 ++FORCE_INLINE __m128i _mm_cvtepi32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a)))); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 16-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi16 ++FORCE_INLINE __m128i _mm_cvtepi8_epi16(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ return vreinterpretq_m128i_s16(s16x8); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi32 ++FORCE_INLINE __m128i _mm_cvtepi8_epi32(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_s32(s32x4); ++} ++ ++// Sign extend packed 8-bit integers in the low 8 bytes of a to packed 64-bit ++// integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi64 ++FORCE_INLINE __m128i _mm_cvtepi8_epi64(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi32 ++FORCE_INLINE __m128i _mm_cvtepu16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_u32( ++ vmovl_u16(vget_low_u16(vreinterpretq_u16_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi64 ++FORCE_INLINE __m128i _mm_cvtepu16_epi64(__m128i a) ++{ ++ uint16x8_t u16x8 = vreinterpretq_u16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Zero extend packed unsigned 32-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu32_epi64 ++FORCE_INLINE __m128i _mm_cvtepu32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_u64( ++ vmovl_u32(vget_low_u32(vreinterpretq_u32_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 16-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi16 ++FORCE_INLINE __m128i _mm_cvtepu8_epi16(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx HGFE DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0H0G 0F0E 0D0C 0B0A */ ++ return vreinterpretq_m128i_u16(u16x8); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi32 ++FORCE_INLINE __m128i _mm_cvtepu8_epi32(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_u32(u32x4); ++} ++ ++// Zero extend packed unsigned 8-bit integers in the low 8 bytes of a to packed ++// 64-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi64 ++FORCE_INLINE __m128i _mm_cvtepu8_epi64(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Conditionally multiply the packed double-precision (64-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, and ++// conditionally store the sum in dst using the low 4 bits of imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_pd ++FORCE_INLINE __m128d _mm_dp_pd(__m128d a, __m128d b, const int imm) ++{ ++ // Generate mask value from constant immediate bit value ++ const int64_t bit0Mask = imm & 0x01 ? UINT64_MAX : 0; ++ const int64_t bit1Mask = imm & 0x02 ? UINT64_MAX : 0; ++#if !SSE2NEON_PRECISE_DP ++ const int64_t bit4Mask = imm & 0x10 ? UINT64_MAX : 0; ++ const int64_t bit5Mask = imm & 0x20 ? UINT64_MAX : 0; ++#endif ++ // Conditional multiplication ++#if !SSE2NEON_PRECISE_DP ++ __m128d mul = _mm_mul_pd(a, b); ++ const __m128d mulMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit5Mask, bit4Mask)); ++ __m128d tmp = _mm_and_pd(mul, mulMask); ++#else ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double d0 = (imm & 0x10) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 0) ++ : 0; ++ double d1 = (imm & 0x20) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 1) ++ : 0; ++#else ++ double d0 = (imm & 0x10) ? ((double *) &a)[0] * ((double *) &b)[0] : 0; ++ double d1 = (imm & 0x20) ? ((double *) &a)[1] * ((double *) &b)[1] : 0; ++#endif ++ __m128d tmp = _mm_set_pd(d1, d0); ++#endif ++ // Sum the products ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double sum = vpaddd_f64(vreinterpretq_f64_m128d(tmp)); ++#else ++ double sum = *((double *) &tmp) + *(((double *) &tmp) + 1); ++#endif ++ // Conditionally store the sum ++ const __m128d sumMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit1Mask, bit0Mask)); ++ __m128d res = _mm_and_pd(_mm_set_pd1(sum), sumMask); ++ return res; ++} ++ ++// Conditionally multiply the packed single-precision (32-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, ++// and conditionally store the sum in dst using the low 4 bits of imm. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_ps ++FORCE_INLINE __m128 _mm_dp_ps(__m128 a, __m128 b, const int imm) ++{ ++ float32x4_t elementwise_prod = _mm_mul_ps(a, b); ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ /* shortcuts */ ++ if (imm == 0xFF) { ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++ ++ if ((imm & 0x0F) == 0x0F) { ++ if (!(imm & (1 << 4))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 0); ++ if (!(imm & (1 << 5))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 1); ++ if (!(imm & (1 << 6))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 2); ++ if (!(imm & (1 << 7))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 3); ++ ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++#endif ++ ++ float s = 0.0f; ++ ++ if (imm & (1 << 4)) ++ s += vgetq_lane_f32(elementwise_prod, 0); ++ if (imm & (1 << 5)) ++ s += vgetq_lane_f32(elementwise_prod, 1); ++ if (imm & (1 << 6)) ++ s += vgetq_lane_f32(elementwise_prod, 2); ++ if (imm & (1 << 7)) ++ s += vgetq_lane_f32(elementwise_prod, 3); ++ ++ const float32_t res[4] = { ++ (imm & 0x1) ? s : 0.0f, ++ (imm & 0x2) ? s : 0.0f, ++ (imm & 0x4) ? s : 0.0f, ++ (imm & 0x8) ? s : 0.0f, ++ }; ++ return vreinterpretq_m128_f32(vld1q_f32(res)); ++} ++ ++// Extract a 32-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi32 ++// FORCE_INLINE int _mm_extract_epi32(__m128i a, __constrange(0,4) int imm) ++#define _mm_extract_epi32(a, imm) \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)) ++ ++// Extract a 64-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi64 ++// FORCE_INLINE __int64 _mm_extract_epi64(__m128i a, __constrange(0,2) int imm) ++#define _mm_extract_epi64(a, imm) \ ++ vgetq_lane_s64(vreinterpretq_s64_m128i(a), (imm)) ++ ++// Extract an 8-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. FORCE_INLINE int _mm_extract_epi8(__m128i a, ++// __constrange(0,16) int imm) ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi8 ++#define _mm_extract_epi8(a, imm) vgetq_lane_u8(vreinterpretq_u8_m128i(a), (imm)) ++ ++// Extracts the selected single-precision (32-bit) floating-point from a. ++// FORCE_INLINE int _mm_extract_ps(__m128 a, __constrange(0,4) int imm) ++#define _mm_extract_ps(a, imm) vgetq_lane_s32(vreinterpretq_s32_m128(a), (imm)) ++ ++// Round the packed double-precision (64-bit) floating-point elements in a down ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_pd ++FORCE_INLINE __m128d _mm_floor_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndmq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double *f = (double *) &a; ++ return _mm_set_pd(floor(f[1]), floor(f[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a down ++// to an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ps ++FORCE_INLINE __m128 _mm_floor_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndmq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(floorf(f[3]), floorf(f[2]), floorf(f[1]), floorf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b down to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_sd ++FORCE_INLINE __m128d _mm_floor_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_floor_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b down to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ss ++FORCE_INLINE __m128 _mm_floor_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_floor_ps(b)); ++} ++ ++// Copy a to dst, and insert the 32-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi32 ++// FORCE_INLINE __m128i _mm_insert_epi32(__m128i a, int b, ++// __constrange(0,4) int imm) ++#define _mm_insert_epi32(a, b, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vsetq_lane_s32((b), vreinterpretq_s32_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the 64-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi64 ++// FORCE_INLINE __m128i _mm_insert_epi64(__m128i a, __int64 b, ++// __constrange(0,2) int imm) ++#define _mm_insert_epi64(a, b, imm) \ ++ vreinterpretq_m128i_s64( \ ++ vsetq_lane_s64((b), vreinterpretq_s64_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the lower 8-bit integer from i into dst at the ++// location specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi8 ++// FORCE_INLINE __m128i _mm_insert_epi8(__m128i a, int b, ++// __constrange(0,16) int imm) ++#define _mm_insert_epi8(a, b, imm) \ ++ vreinterpretq_m128i_s8(vsetq_lane_s8((b), vreinterpretq_s8_m128i(a), (imm))) ++ ++// Copy a to tmp, then insert a single-precision (32-bit) floating-point ++// element from b into tmp using the control in imm8. Store tmp to dst using ++// the mask in imm8 (elements are zeroed out when the corresponding bit is set). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=insert_ps ++#define _mm_insert_ps(a, b, imm8) \ ++ _sse2neon_define2( \ ++ __m128, a, b, \ ++ float32x4_t tmp1 = \ ++ vsetq_lane_f32(vgetq_lane_f32(_b, (imm8 >> 6) & 0x3), \ ++ vreinterpretq_f32_m128(_a), 0); \ ++ float32x4_t tmp2 = \ ++ vsetq_lane_f32(vgetq_lane_f32(tmp1, 0), \ ++ vreinterpretq_f32_m128(_a), ((imm8 >> 4) & 0x3)); \ ++ const uint32_t data[4] = \ ++ _sse2neon_init(((imm8) & (1 << 0)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0); \ ++ uint32x4_t mask = vld1q_u32(data); \ ++ float32x4_t all_zeros = vdupq_n_f32(0); \ ++ \ ++ _sse2neon_return(vreinterpretq_m128_f32( \ ++ vbslq_f32(mask, all_zeros, vreinterpretq_f32_m128(tmp2))));) ++ ++// Compare packed signed 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi32 ++FORCE_INLINE __m128i _mm_max_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmaxq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi8 ++FORCE_INLINE __m128i _mm_max_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vmaxq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu16 ++FORCE_INLINE __m128i _mm_max_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vmaxq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_max_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vmaxq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi32 ++FORCE_INLINE __m128i _mm_min_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vminq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi8 ++FORCE_INLINE __m128i _mm_min_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vminq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu16 ++FORCE_INLINE __m128i _mm_min_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vminq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_min_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vminq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Horizontally compute the minimum amongst the packed unsigned 16-bit integers ++// in a, store the minimum and index in dst, and zero the remaining bits in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_minpos_epu16 ++FORCE_INLINE __m128i _mm_minpos_epu16(__m128i a) ++{ ++ __m128i dst; ++ uint16_t min, idx = 0; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Find the minimum value ++ min = vminvq_u16(vreinterpretq_u16_m128i(a)); ++ ++ // Get the index of the minimum value ++ static const uint16_t idxv[] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint16x8_t minv = vdupq_n_u16(min); ++ uint16x8_t cmeq = vceqq_u16(minv, vreinterpretq_u16_m128i(a)); ++ idx = vminvq_u16(vornq_u16(vld1q_u16(idxv), cmeq)); ++#else ++ // Find the minimum value ++ __m64 tmp; ++ tmp = vreinterpret_m64_u16( ++ vmin_u16(vget_low_u16(vreinterpretq_u16_m128i(a)), ++ vget_high_u16(vreinterpretq_u16_m128i(a)))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ min = vget_lane_u16(vreinterpret_u16_m64(tmp), 0); ++ // Get the index of the minimum value ++ int i; ++ for (i = 0; i < 8; i++) { ++ if (min == vgetq_lane_u16(vreinterpretq_u16_m128i(a), 0)) { ++ idx = (uint16_t) i; ++ break; ++ } ++ a = _mm_srli_si128(a, 2); ++ } ++#endif ++ // Generate result ++ dst = _mm_setzero_si128(); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(min, vreinterpretq_u16_m128i(dst), 0)); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(idx, vreinterpretq_u16_m128i(dst), 1)); ++ return dst; ++} ++ ++// Compute the sum of absolute differences (SADs) of quadruplets of unsigned ++// 8-bit integers in a compared to those in b, and store the 16-bit results in ++// dst. Eight SADs are performed using one quadruplet from b and eight ++// quadruplets from a. One quadruplet is selected from b starting at on the ++// offset specified in imm8. Eight quadruplets are formed from sequential 8-bit ++// integers selected from a starting at the offset specified in imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mpsadbw_epu8 ++FORCE_INLINE __m128i _mm_mpsadbw_epu8(__m128i a, __m128i b, const int imm) ++{ ++ uint8x16_t _a, _b; ++ ++ switch (imm & 0x4) { ++ case 0: ++ // do nothing ++ _a = vreinterpretq_u8_m128i(a); ++ break; ++ case 4: ++ _a = vreinterpretq_u8_u32(vextq_u32(vreinterpretq_u32_m128i(a), ++ vreinterpretq_u32_m128i(a), 1)); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ switch (imm & 0x3) { ++ case 0: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 0))); ++ break; ++ case 1: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 1))); ++ break; ++ case 2: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 2))); ++ break; ++ case 3: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 3))); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ int16x8_t c04, c15, c26, c37; ++ uint8x8_t low_b = vget_low_u8(_b); ++ c04 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a), low_b)); ++ uint8x16_t _a_1 = vextq_u8(_a, _a, 1); ++ c15 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_1), low_b)); ++ uint8x16_t _a_2 = vextq_u8(_a, _a, 2); ++ c26 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_2), low_b)); ++ uint8x16_t _a_3 = vextq_u8(_a, _a, 3); ++ c37 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_3), low_b)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // |0|4|2|6| ++ c04 = vpaddq_s16(c04, c26); ++ // |1|5|3|7| ++ c15 = vpaddq_s16(c15, c37); ++ ++ int32x4_t trn1_c = ++ vtrn1q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ int32x4_t trn2_c = ++ vtrn2q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ return vreinterpretq_m128i_s16(vpaddq_s16(vreinterpretq_s16_s32(trn1_c), ++ vreinterpretq_s16_s32(trn2_c))); ++#else ++ int16x4_t c01, c23, c45, c67; ++ c01 = vpadd_s16(vget_low_s16(c04), vget_low_s16(c15)); ++ c23 = vpadd_s16(vget_low_s16(c26), vget_low_s16(c37)); ++ c45 = vpadd_s16(vget_high_s16(c04), vget_high_s16(c15)); ++ c67 = vpadd_s16(vget_high_s16(c26), vget_high_s16(c37)); ++ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(c01, c23), vpadd_s16(c45, c67))); ++#endif ++} ++ ++// Multiply the low signed 32-bit integers from each packed 64-bit element in ++// a and b, and store the signed 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epi32 ++FORCE_INLINE __m128i _mm_mul_epi32(__m128i a, __m128i b) ++{ ++ // vmull_s32 upcasts instead of masking, so we downcast. ++ int32x2_t a_lo = vmovn_s64(vreinterpretq_s64_m128i(a)); ++ int32x2_t b_lo = vmovn_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vmull_s32(a_lo, b_lo)); ++} ++ ++// Multiply the packed 32-bit integers in a and b, producing intermediate 64-bit ++// integers, and store the low 32 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi32 ++FORCE_INLINE __m128i _mm_mullo_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmulq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi32 ++FORCE_INLINE __m128i _mm_packus_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcombine_u16(vqmovun_s32(vreinterpretq_s32_m128i(a)), ++ vqmovun_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_pd ++FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d a, int rounding) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndnq_f64(vreinterpretq_f64_m128d(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_pd(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_pd(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndq_f64(vreinterpretq_f64_m128d(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128d_f64(vrndiq_f64(vreinterpretq_f64_m128d(a))); ++ } ++#else ++ double *v_double = (double *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ double res[2], tmp; ++ for (int i = 0; i < 2; i++) { ++ tmp = (v_double[i] < 0) ? -v_double[i] : v_double[i]; ++ double roundDown = floor(tmp); // Round down value ++ double roundUp = ceil(tmp); // Round up value ++ double diffDown = tmp - roundDown; ++ double diffUp = roundUp - tmp; ++ if (diffDown < diffUp) { ++ /* If it's closer to the round down value, then use it */ ++ res[i] = roundDown; ++ } else if (diffDown > diffUp) { ++ /* If it's closer to the round up value, then use it */ ++ res[i] = roundUp; ++ } else { ++ /* If it's equidistant between round up and round down value, ++ * pick the one which is an even number */ ++ double half = roundDown / 2; ++ if (half != floor(half)) { ++ /* If the round down value is odd, return the round up value ++ */ ++ res[i] = roundUp; ++ } else { ++ /* If the round up value is odd, return the round down value ++ */ ++ res[i] = roundDown; ++ } ++ } ++ res[i] = (v_double[i] < 0) ? -res[i] : res[i]; ++ } ++ return _mm_set_pd(res[1], res[0]); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_pd(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_pd(a); ++ } ++ return _mm_set_pd(v_double[1] > 0 ? floor(v_double[1]) : ceil(v_double[1]), ++ v_double[0] > 0 ? floor(v_double[0]) : ceil(v_double[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed single-precision ++// floating-point elements in dst. ++// software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_round_ps ++FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128 a, int rounding) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndnq_f32(vreinterpretq_f32_m128(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_ps(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_ps(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndq_f32(vreinterpretq_f32_m128(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128_f32(vrndiq_f32(vreinterpretq_f32_m128(a))); ++ } ++#else ++ float *v_float = (float *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vbslq_s32(is_delta_half, r_even, r_normal))); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_ps(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_ps(a); ++ } ++ return _mm_set_ps(v_float[3] > 0 ? floorf(v_float[3]) : ceilf(v_float[3]), ++ v_float[2] > 0 ? floorf(v_float[2]) : ceilf(v_float[2]), ++ v_float[1] > 0 ? floorf(v_float[1]) : ceilf(v_float[1]), ++ v_float[0] > 0 ? floorf(v_float[0]) : ceilf(v_float[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b using ++// the rounding parameter, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_sd ++FORCE_INLINE __m128d _mm_round_sd(__m128d a, __m128d b, int rounding) ++{ ++ return _mm_move_sd(a, _mm_round_pd(b, rounding)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b using ++// the rounding parameter, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. Rounding is done according to the ++// rounding[3:0] parameter, which can be one of: ++// (_MM_FROUND_TO_NEAREST_INT |_MM_FROUND_NO_EXC) // round to nearest, and ++// suppress exceptions ++// (_MM_FROUND_TO_NEG_INF |_MM_FROUND_NO_EXC) // round down, and ++// suppress exceptions ++// (_MM_FROUND_TO_POS_INF |_MM_FROUND_NO_EXC) // round up, and suppress ++// exceptions ++// (_MM_FROUND_TO_ZERO |_MM_FROUND_NO_EXC) // truncate, and suppress ++// exceptions _MM_FROUND_CUR_DIRECTION // use MXCSR.RC; see ++// _MM_SET_ROUNDING_MODE ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_ss ++FORCE_INLINE __m128 _mm_round_ss(__m128 a, __m128 b, int rounding) ++{ ++ return _mm_move_ss(a, _mm_round_ps(b, rounding)); ++} ++ ++// Load 128-bits of integer data from memory into dst using a non-temporal ++// memory hint. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_load_si128 ++FORCE_INLINE __m128i _mm_stream_load_si128(__m128i *p) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ return __builtin_nontemporal_load(p); ++#else ++ return vreinterpretq_m128i_s64(vld1q_s64((int64_t *) p)); ++#endif ++} ++ ++// Compute the bitwise NOT of a and then AND with a 128-bit vector containing ++// all 1's, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_ones ++FORCE_INLINE int _mm_test_all_ones(__m128i a) ++{ ++ return (uint64_t) (vgetq_lane_s64(a, 0) & vgetq_lane_s64(a, 1)) == ++ ~(uint64_t) 0; ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_zeros ++FORCE_INLINE int _mm_test_all_zeros(__m128i a, __m128i mask) ++{ ++ int64x2_t a_and_mask = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(mask)); ++ return !(vgetq_lane_s64(a_and_mask, 0) | vgetq_lane_s64(a_and_mask, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute ++// the bitwise NOT of a and then AND with mask, and set CF to 1 if the result is ++// zero, otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_test_mix_ones_zero ++// Note: Argument names may be wrong in the Intel intrinsics guide. ++FORCE_INLINE int _mm_test_mix_ones_zeros(__m128i a, __m128i mask) ++{ ++ uint64x2_t v = vreinterpretq_u64_m128i(a); ++ uint64x2_t m = vreinterpretq_u64_m128i(mask); ++ ++ // find ones (set-bits) and zeros (clear-bits) under clip mask ++ uint64x2_t ones = vandq_u64(m, v); ++ uint64x2_t zeros = vbicq_u64(m, v); ++ ++ // If both 128-bit variables are populated (non-zero) then return 1. ++ // For comparison purposes, first compact each var down to 32-bits. ++ uint32x2_t reduced = vpmax_u32(vqmovn_u64(ones), vqmovn_u64(zeros)); ++ ++ // if folding minimum is non-zero then both vars must be non-zero ++ return (vget_lane_u32(vpmin_u32(reduced, reduced), 0) != 0); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the CF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testc_si128 ++FORCE_INLINE int _mm_testc_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vbicq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testnzc_si128 ++#define _mm_testnzc_si128(a, b) _mm_test_mix_ones_zeros(a, b) ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the ZF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testz_si128 ++FORCE_INLINE int _mm_testz_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++/* SSE4.2 */ ++ ++static const uint16_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask16b[8] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++static const uint8_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask8b[16] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++ ++/* specify the source data format */ ++#define _SIDD_UBYTE_OPS 0x00 /* unsigned 8-bit characters */ ++#define _SIDD_UWORD_OPS 0x01 /* unsigned 16-bit characters */ ++#define _SIDD_SBYTE_OPS 0x02 /* signed 8-bit characters */ ++#define _SIDD_SWORD_OPS 0x03 /* signed 16-bit characters */ ++ ++/* specify the comparison operation */ ++#define _SIDD_CMP_EQUAL_ANY 0x00 /* compare equal any: strchr */ ++#define _SIDD_CMP_RANGES 0x04 /* compare ranges */ ++#define _SIDD_CMP_EQUAL_EACH 0x08 /* compare equal each: strcmp */ ++#define _SIDD_CMP_EQUAL_ORDERED 0x0C /* compare equal ordered */ ++ ++/* specify the polarity */ ++#define _SIDD_POSITIVE_POLARITY 0x00 ++#define _SIDD_MASKED_POSITIVE_POLARITY 0x20 ++#define _SIDD_NEGATIVE_POLARITY 0x10 /* negate results */ ++#define _SIDD_MASKED_NEGATIVE_POLARITY \ ++ 0x30 /* negate results only before end of string */ ++ ++/* specify the output selection in _mm_cmpXstri */ ++#define _SIDD_LEAST_SIGNIFICANT 0x00 ++#define _SIDD_MOST_SIGNIFICANT 0x40 ++ ++/* specify the output selection in _mm_cmpXstrm */ ++#define _SIDD_BIT_MASK 0x00 ++#define _SIDD_UNIT_MASK 0x40 ++ ++/* Pattern Matching for C macros. ++ * https://github.com/pfultz2/Cloak/wiki/C-Preprocessor-tricks,-tips,-and-idioms ++ */ ++ ++/* catenate */ ++#define SSE2NEON_PRIMITIVE_CAT(a, ...) a##__VA_ARGS__ ++#define SSE2NEON_CAT(a, b) SSE2NEON_PRIMITIVE_CAT(a, b) ++ ++#define SSE2NEON_IIF(c) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_IIF_, c) ++/* run the 2nd parameter */ ++#define SSE2NEON_IIF_0(t, ...) __VA_ARGS__ ++/* run the 1st parameter */ ++#define SSE2NEON_IIF_1(t, ...) t ++ ++#define SSE2NEON_COMPL(b) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_COMPL_, b) ++#define SSE2NEON_COMPL_0 1 ++#define SSE2NEON_COMPL_1 0 ++ ++#define SSE2NEON_DEC(x) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_DEC_, x) ++#define SSE2NEON_DEC_1 0 ++#define SSE2NEON_DEC_2 1 ++#define SSE2NEON_DEC_3 2 ++#define SSE2NEON_DEC_4 3 ++#define SSE2NEON_DEC_5 4 ++#define SSE2NEON_DEC_6 5 ++#define SSE2NEON_DEC_7 6 ++#define SSE2NEON_DEC_8 7 ++#define SSE2NEON_DEC_9 8 ++#define SSE2NEON_DEC_10 9 ++#define SSE2NEON_DEC_11 10 ++#define SSE2NEON_DEC_12 11 ++#define SSE2NEON_DEC_13 12 ++#define SSE2NEON_DEC_14 13 ++#define SSE2NEON_DEC_15 14 ++#define SSE2NEON_DEC_16 15 ++ ++/* detection */ ++#define SSE2NEON_CHECK_N(x, n, ...) n ++#define SSE2NEON_CHECK(...) SSE2NEON_CHECK_N(__VA_ARGS__, 0, ) ++#define SSE2NEON_PROBE(x) x, 1, ++ ++#define SSE2NEON_NOT(x) SSE2NEON_CHECK(SSE2NEON_PRIMITIVE_CAT(SSE2NEON_NOT_, x)) ++#define SSE2NEON_NOT_0 SSE2NEON_PROBE(~) ++ ++#define SSE2NEON_BOOL(x) SSE2NEON_COMPL(SSE2NEON_NOT(x)) ++#define SSE2NEON_IF(c) SSE2NEON_IIF(SSE2NEON_BOOL(c)) ++ ++#define SSE2NEON_EAT(...) ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++#define SSE2NEON_WHEN(c) SSE2NEON_IF(c)(SSE2NEON_EXPAND, SSE2NEON_EAT) ++ ++/* recursion */ ++/* deferred expression */ ++#define SSE2NEON_EMPTY() ++#define SSE2NEON_DEFER(id) id SSE2NEON_EMPTY() ++#define SSE2NEON_OBSTRUCT(...) __VA_ARGS__ SSE2NEON_DEFER(SSE2NEON_EMPTY)() ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++ ++#define SSE2NEON_EVAL(...) \ ++ SSE2NEON_EVAL1(SSE2NEON_EVAL1(SSE2NEON_EVAL1(__VA_ARGS__))) ++#define SSE2NEON_EVAL1(...) \ ++ SSE2NEON_EVAL2(SSE2NEON_EVAL2(SSE2NEON_EVAL2(__VA_ARGS__))) ++#define SSE2NEON_EVAL2(...) \ ++ SSE2NEON_EVAL3(SSE2NEON_EVAL3(SSE2NEON_EVAL3(__VA_ARGS__))) ++#define SSE2NEON_EVAL3(...) __VA_ARGS__ ++ ++#define SSE2NEON_REPEAT(count, macro, ...) \ ++ SSE2NEON_WHEN(count) \ ++ (SSE2NEON_OBSTRUCT(SSE2NEON_REPEAT_INDIRECT)()( \ ++ SSE2NEON_DEC(count), macro, \ ++ __VA_ARGS__) SSE2NEON_OBSTRUCT(macro)(SSE2NEON_DEC(count), \ ++ __VA_ARGS__)) ++#define SSE2NEON_REPEAT_INDIRECT() SSE2NEON_REPEAT ++ ++#define SSE2NEON_SIZE_OF_byte 8 ++#define SSE2NEON_NUMBER_OF_LANES_byte 16 ++#define SSE2NEON_SIZE_OF_word 16 ++#define SSE2NEON_NUMBER_OF_LANES_word 8 ++ ++#define SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE(i, type) \ ++ mtx[i] = vreinterpretq_m128i_##type(vceqq_##type( \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)), \ ++ vreinterpretq_##type##_m128i(a))); ++ ++#define SSE2NEON_FILL_LANE(i, type) \ ++ vec_b[i] = \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)); ++ ++#define PCMPSTR_RANGES(a, b, mtx, data_type_prefix, type_prefix, size, \ ++ number_of_lanes, byte_or_word) \ ++ do { \ ++ SSE2NEON_CAT( \ ++ data_type_prefix, \ ++ SSE2NEON_CAT(size, \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(number_of_lanes, _t)))) \ ++ vec_b[number_of_lanes]; \ ++ __m128i mask = SSE2NEON_IIF(byte_or_word)( \ ++ vreinterpretq_m128i_u16(vdupq_n_u16(0xff)), \ ++ vreinterpretq_m128i_u32(vdupq_n_u32(0xffff))); \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, SSE2NEON_FILL_LANE, \ ++ SSE2NEON_CAT(type_prefix, size))) \ ++ for (int i = 0; i < number_of_lanes; i++) { \ ++ mtx[i] = SSE2NEON_CAT(vreinterpretq_m128i_u, \ ++ size)(SSE2NEON_CAT(vbslq_u, size)( \ ++ SSE2NEON_CAT(vreinterpretq_u, \ ++ SSE2NEON_CAT(size, _m128i))(mask), \ ++ SSE2NEON_CAT(vcgeq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))), \ ++ SSE2NEON_CAT(vcleq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))))); \ ++ } \ ++ } while (0) ++ ++#define PCMPSTR_EQ(a, b, mtx, size, number_of_lanes) \ ++ do { \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, \ ++ SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE, \ ++ SSE2NEON_CAT(u, size))) \ ++ } while (0) ++ ++#define SSE2NEON_CMP_EQUAL_ANY_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_any(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_any_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_RANGES_IMPL(type, data_type, us, byte_or_word) \ ++ static int _sse2neon_cmp_##us##type##_ranges(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_RANGES( \ ++ a, b, mtx, data_type, us, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), byte_or_word); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_ranges_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_EQUAL_ORDERED_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_ordered(__m128i a, int la, \ ++ __m128i b, int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_ordered_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type))))( \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), la, lb, mtx); \ ++ } ++ ++static int _sse2neon_aggregate_equal_any_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ int tmp = _sse2neon_vaddvq_u8(vreinterpretq_u8_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_equal_any_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ int tmp = _sse2neon_vaddvq_u16(vreinterpretq_u16_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ANY(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ANY(SSE2NEON_CMP_EQUAL_ANY_) ++ ++static int _sse2neon_aggregate_ranges_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ __m128i tmp = vreinterpretq_m128i_u32( ++ vshrq_n_u32(vreinterpretq_u32_m128i(mtx[j]), 16)); ++ uint32x4_t vec_res = vandq_u32(vreinterpretq_u32_m128i(mtx[j]), ++ vreinterpretq_u32_m128i(tmp)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int t = vaddvq_u32(vec_res) ? 1 : 0; ++#else ++ uint64x2_t sumh = vpaddlq_u32(vec_res); ++ int t = vgetq_lane_u64(sumh, 0) + vgetq_lane_u64(sumh, 1); ++#endif ++ res |= (t << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_ranges_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ __m128i tmp = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 8)); ++ uint16x8_t vec_res = vandq_u16(vreinterpretq_u16_m128i(mtx[j]), ++ vreinterpretq_u16_m128i(tmp)); ++ int t = _sse2neon_vaddvq_u16(vec_res) ? 1 : 0; ++ res |= (t << j); ++ } ++ return res; ++} ++ ++#define SSE2NEON_CMP_RANGES_IS_BYTE 1 ++#define SSE2NEON_CMP_RANGES_IS_WORD 0 ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_RANGES(prefix) \ ++ prefix##IMPL(byte, uint, u, prefix##IS_BYTE) \ ++ prefix##IMPL(byte, int, s, prefix##IS_BYTE) \ ++ prefix##IMPL(word, uint, u, prefix##IS_WORD) \ ++ prefix##IMPL(word, int, s, prefix##IS_WORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_RANGES(SSE2NEON_CMP_RANGES_) ++ ++#undef SSE2NEON_CMP_RANGES_IS_BYTE ++#undef SSE2NEON_CMP_RANGES_IS_WORD ++ ++static int _sse2neon_cmp_byte_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint8x16_t mtx = ++ vceqq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x10000 - (1 << la); ++ int tb = 0x10000 - (1 << lb); ++ uint8x8_t vec_mask, vec0_lo, vec0_hi, vec1_lo, vec1_hi; ++ uint8x8_t tmp_lo, tmp_hi, res_lo, res_hi; ++ vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ vec0_lo = vtst_u8(vdup_n_u8(m0), vec_mask); ++ vec0_hi = vtst_u8(vdup_n_u8(m0 >> 8), vec_mask); ++ vec1_lo = vtst_u8(vdup_n_u8(m1), vec_mask); ++ vec1_hi = vtst_u8(vdup_n_u8(m1 >> 8), vec_mask); ++ tmp_lo = vtst_u8(vdup_n_u8(tb), vec_mask); ++ tmp_hi = vtst_u8(vdup_n_u8(tb >> 8), vec_mask); ++ ++ res_lo = vbsl_u8(vec0_lo, vdup_n_u8(0), vget_low_u8(mtx)); ++ res_hi = vbsl_u8(vec0_hi, vdup_n_u8(0), vget_high_u8(mtx)); ++ res_lo = vbsl_u8(vec1_lo, tmp_lo, res_lo); ++ res_hi = vbsl_u8(vec1_hi, tmp_hi, res_hi); ++ res_lo = vand_u8(res_lo, vec_mask); ++ res_hi = vand_u8(res_hi, vec_mask); ++ ++ int res = _sse2neon_vaddv_u8(res_lo) + (_sse2neon_vaddv_u8(res_hi) << 8); ++ return res; ++} ++ ++static int _sse2neon_cmp_word_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint16x8_t mtx = ++ vceqq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x100 - (1 << la); ++ int tb = 0x100 - (1 << lb); ++ uint16x8_t vec_mask = vld1q_u16(_sse2neon_cmpestr_mask16b); ++ uint16x8_t vec0 = vtstq_u16(vdupq_n_u16(m0), vec_mask); ++ uint16x8_t vec1 = vtstq_u16(vdupq_n_u16(m1), vec_mask); ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(tb), vec_mask); ++ mtx = vbslq_u16(vec0, vdupq_n_u16(0), mtx); ++ mtx = vbslq_u16(vec1, tmp, mtx); ++ mtx = vandq_u16(mtx, vec_mask); ++ return _sse2neon_vaddvq_u16(mtx); ++} ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE 1 ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD 0 ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IMPL(size, number_of_lanes, data_type) \ ++ static int _sse2neon_aggregate_equal_ordered_##size##x##number_of_lanes( \ ++ int bound, int la, int lb, __m128i mtx[16]) \ ++ { \ ++ int res = 0; \ ++ int m1 = SSE2NEON_IIF(data_type)(0x10000, 0x100) - (1 << la); \ ++ uint##size##x8_t vec_mask = SSE2NEON_IIF(data_type)( \ ++ vld1_u##size(_sse2neon_cmpestr_mask##size##b), \ ++ vld1q_u##size(_sse2neon_cmpestr_mask##size##b)); \ ++ uint##size##x##number_of_lanes##_t vec1 = SSE2NEON_IIF(data_type)( \ ++ vcombine_u##size(vtst_u##size(vdup_n_u##size(m1), vec_mask), \ ++ vtst_u##size(vdup_n_u##size(m1 >> 8), vec_mask)), \ ++ vtstq_u##size(vdupq_n_u##size(m1), vec_mask)); \ ++ uint##size##x##number_of_lanes##_t vec_minusone = vdupq_n_u##size(-1); \ ++ uint##size##x##number_of_lanes##_t vec_zero = vdupq_n_u##size(0); \ ++ for (int j = 0; j < lb; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size(vbslq_u##size( \ ++ vec1, vec_minusone, vreinterpretq_u##size##_m128i(mtx[j]))); \ ++ } \ ++ for (int j = lb; j < bound; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size( \ ++ vbslq_u##size(vec1, vec_minusone, vec_zero)); \ ++ } \ ++ unsigned SSE2NEON_IIF(data_type)(char, short) *ptr = \ ++ (unsigned SSE2NEON_IIF(data_type)(char, short) *) mtx; \ ++ for (int i = 0; i < bound; i++) { \ ++ int val = 1; \ ++ for (int j = 0, k = i; j < bound - i && k < bound; j++, k++) \ ++ val &= ptr[k * bound + j]; \ ++ res += val << i; \ ++ } \ ++ return res; \ ++ } ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(prefix) \ ++ prefix##IMPL(8, 16, prefix##IS_UBYTE) \ ++ prefix##IMPL(16, 8, prefix##IS_UWORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(SSE2NEON_AGGREGATE_EQUAL_ORDER_) ++ ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(SSE2NEON_CMP_EQUAL_ORDERED_) ++ ++#define SSE2NEON_CMPESTR_LIST \ ++ _(CMP_UBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_UWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_SBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_SWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_UBYTE_RANGES, cmp_ubyte_ranges) \ ++ _(CMP_UWORD_RANGES, cmp_uword_ranges) \ ++ _(CMP_SBYTE_RANGES, cmp_sbyte_ranges) \ ++ _(CMP_SWORD_RANGES, cmp_sword_ranges) \ ++ _(CMP_UBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_UWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_SBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_SWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_UBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_UWORD_EQUAL_ORDERED, cmp_word_equal_ordered) \ ++ _(CMP_SBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_SWORD_EQUAL_ORDERED, cmp_word_equal_ordered) ++ ++enum { ++#define _(name, func_suffix) name, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++typedef int (*cmpestr_func_t)(__m128i a, int la, __m128i b, int lb); ++static cmpestr_func_t _sse2neon_cmpfunc_table[] = { ++#define _(name, func_suffix) _sse2neon_##func_suffix, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++ ++FORCE_INLINE int _sse2neon_sido_negative(int res, int lb, int imm8, int bound) ++{ ++ switch (imm8 & 0x30) { ++ case _SIDD_NEGATIVE_POLARITY: ++ res ^= 0xffffffff; ++ break; ++ case _SIDD_MASKED_NEGATIVE_POLARITY: ++ res ^= (1 << lb) - 1; ++ break; ++ default: ++ break; ++ } ++ ++ return res & ((bound == 8) ? 0xFF : 0xFFFF); ++} ++ ++FORCE_INLINE int _sse2neon_clz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanReverse(&cnt, x)) ++ return 31 - cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_clz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctz(unsigned int x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt = 0; ++ if (_BitScanForward(&cnt, x)) ++ return cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_ctz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctzll(unsigned long long x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt; ++#if defined(SSE2NEON_HAS_BITSCAN64) ++ if (_BitScanForward64(&cnt, x)) ++ return (int) (cnt); ++#else ++ if (_BitScanForward(&cnt, (unsigned long) (x))) ++ return (int) cnt; ++ if (_BitScanForward(&cnt, (unsigned long) (x >> 32))) ++ return (int) (cnt + 32); ++#endif /* SSE2NEON_HAS_BITSCAN64 */ ++ return 64; ++#else /* assume GNU compatible compilers */ ++ return x != 0 ? __builtin_ctzll(x) : 64; ++#endif ++} ++ ++#define SSE2NEON_MIN(x, y) (x) < (y) ? (x) : (y) ++ ++#define SSE2NEON_CMPSTR_SET_UPPER(var, imm) \ ++ const int var = (imm & 0x01) ? 8 : 16 ++ ++#define SSE2NEON_CMPESTRX_LEN_PAIR(a, b, la, lb) \ ++ int tmp1 = la ^ (la >> 31); \ ++ la = tmp1 - (la >> 31); \ ++ int tmp2 = lb ^ (lb >> 31); \ ++ lb = tmp2 - (lb >> 31); \ ++ la = SSE2NEON_MIN(la, bound); \ ++ lb = SSE2NEON_MIN(lb, bound) ++ ++// Compare all pairs of character in string a and b, ++// then aggregate the result. ++// As the only difference of PCMPESTR* and PCMPISTR* is the way to calculate the ++// length of string, we use SSE2NEON_CMP{I,E}STRX_GET_LEN to get the length of ++// string a and b. ++#define SSE2NEON_COMP_AGG(a, b, la, lb, imm8, IE) \ ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); \ ++ SSE2NEON_##IE##_LEN_PAIR(a, b, la, lb); \ ++ int r2 = (_sse2neon_cmpfunc_table[imm8 & 0x0f])(a, la, b, lb); \ ++ r2 = _sse2neon_sido_negative(r2, lb, imm8, bound) ++ ++#define SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8) \ ++ return (r2 == 0) ? bound \ ++ : ((imm8 & 0x40) ? (31 - _sse2neon_clz(r2)) \ ++ : _sse2neon_ctz(r2)) ++ ++#define SSE2NEON_CMPSTR_GENERATE_MASK(dst) \ ++ __m128i dst = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ if (imm8 & 0x40) { \ ++ if (bound == 8) { \ ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(r2), \ ++ vld1q_u16(_sse2neon_cmpestr_mask16b)); \ ++ dst = vreinterpretq_m128i_u16(vbslq_u16( \ ++ tmp, vdupq_n_u16(-1), vreinterpretq_u16_m128i(dst))); \ ++ } else { \ ++ uint8x16_t vec_r2 = \ ++ vcombine_u8(vdup_n_u8(r2), vdup_n_u8(r2 >> 8)); \ ++ uint8x16_t tmp = \ ++ vtstq_u8(vec_r2, vld1q_u8(_sse2neon_cmpestr_mask8b)); \ ++ dst = vreinterpretq_m128i_u8( \ ++ vbslq_u8(tmp, vdupq_n_u8(-1), vreinterpretq_u8_m128i(dst))); \ ++ } \ ++ } else { \ ++ if (bound == 16) { \ ++ dst = vreinterpretq_m128i_u16( \ ++ vsetq_lane_u16(r2 & 0xffff, vreinterpretq_u16_m128i(dst), 0)); \ ++ } else { \ ++ dst = vreinterpretq_m128i_u8( \ ++ vsetq_lane_u8(r2 & 0xff, vreinterpretq_u8_m128i(dst), 0)); \ ++ } \ ++ } \ ++ return dst ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and returns 1 if b did not contain a null character and the ++// resulting mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestra ++FORCE_INLINE int _mm_cmpestra(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ int lb_cpy = lb; ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return !r2 & (lb_cpy > bound); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrc ++FORCE_INLINE int _mm_cmpestrc(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestri ++FORCE_INLINE int _mm_cmpestri(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrm ++FORCE_INLINE __m128i ++_mm_cmpestrm(__m128i a, int la, __m128i b, int lb, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestro ++FORCE_INLINE int _mm_cmpestro(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrs ++FORCE_INLINE int _mm_cmpestrs(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) lb; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrz ++FORCE_INLINE int _mm_cmpestrz(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) la; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return lb <= (bound - 1); ++} ++ ++#define SSE2NEON_CMPISTRX_LENGTH(str, len, imm8) \ ++ do { \ ++ if (imm8 & 0x01) { \ ++ uint16x8_t equal_mask_##str = \ ++ vceqq_u16(vreinterpretq_u16_m128i(str), vdupq_n_u16(0)); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 3; \ ++ } else { \ ++ uint16x8_t equal_mask_##str = vreinterpretq_u16_u8( \ ++ vceqq_u8(vreinterpretq_u8_m128i(str), vdupq_n_u8(0))); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 2; \ ++ } \ ++ } while (0) ++ ++#define SSE2NEON_CMPISTRX_LEN_PAIR(a, b, la, lb) \ ++ int la, lb; \ ++ do { \ ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); \ ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); \ ++ } while (0) ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if b did not contain a null character and the resulting ++// mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistra ++FORCE_INLINE int _mm_cmpistra(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return !r2 & (lb >= bound); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrc ++FORCE_INLINE int _mm_cmpistrc(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistri ++FORCE_INLINE int _mm_cmpistri(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrm ++FORCE_INLINE __m128i _mm_cmpistrm(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistro ++FORCE_INLINE int _mm_cmpistro(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrs ++FORCE_INLINE int _mm_cmpistrs(__m128i a, __m128i b, const int imm8) ++{ ++ (void) b; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int la; ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrz ++FORCE_INLINE int _mm_cmpistrz(__m128i a, __m128i b, const int imm8) ++{ ++ (void) a; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int lb; ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); ++ return lb <= (bound - 1); ++} ++ ++// Compares the 2 signed 64-bit integers in a and the 2 signed 64-bit integers ++// in b for greater than. ++FORCE_INLINE __m128i _mm_cmpgt_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vcgtq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ return vreinterpretq_m128i_s64(vshrq_n_s64( ++ vqsubq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)), ++ 63)); ++#endif ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 16-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u16 ++FORCE_INLINE uint32_t _mm_crc32_u16(uint32_t crc, uint16_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32ch %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32ch(crc, v); ++#else ++ crc = _mm_crc32_u8(crc, v & 0xff); ++ crc = _mm_crc32_u8(crc, (v >> 8) & 0xff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 32-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u32 ++FORCE_INLINE uint32_t _mm_crc32_u32(uint32_t crc, uint32_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cw %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cw(crc, v); ++#else ++ crc = _mm_crc32_u16(crc, v & 0xffff); ++ crc = _mm_crc32_u16(crc, (v >> 16) & 0xffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 64-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u64 ++FORCE_INLINE uint64_t _mm_crc32_u64(uint64_t crc, uint64_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cx %w[c], %w[c], %x[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cd((uint32_t) crc, v); ++#else ++ crc = _mm_crc32_u32((uint32_t) (crc), v & 0xffffffff); ++ crc = _mm_crc32_u32((uint32_t) (crc), (v >> 32) & 0xffffffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 8-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u8 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t crc, uint8_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cb %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cb(crc, v); ++#else ++ crc ^= v; ++#if defined(__ARM_FEATURE_CRYPTO) ++ // Adapted from: https://mary.rs/lab/crc32/ ++ // Barrent reduction ++ uint64x2_t orig = ++ vcombine_u64(vcreate_u64((uint64_t) (crc) << 24), vcreate_u64(0x0)); ++ uint64x2_t tmp = orig; ++ ++ // Polynomial P(x) of CRC32C ++ uint64_t p = 0x105EC76F1; ++ // Barrett Reduction (in bit-reflected form) constant mu_{64} = \lfloor ++ // 2^{64} / P(x) \rfloor = 0x11f91caf6 ++ uint64_t mu = 0x1dea713f1; ++ ++ // Multiply by mu_{64} ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(mu)); ++ // Divide by 2^{64} (mask away the unnecessary bits) ++ tmp = ++ vandq_u64(tmp, vcombine_u64(vcreate_u64(0xFFFFFFFF), vcreate_u64(0x0))); ++ // Multiply by P(x) (shifted left by 1 for alignment reasons) ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(p)); ++ // Subtract original from result ++ tmp = veorq_u64(tmp, orig); ++ ++ // Extract the 'lower' (in bit-reflected sense) 32 bits ++ crc = vgetq_lane_u32(vreinterpretq_u32_u64(tmp), 1); ++#else // Fall back to the generic table lookup approach ++ // Adapted from: https://create.stephan-brumme.com/crc32/ ++ // Apply half-byte comparison algorithm for the best ratio between ++ // performance and lookup table. ++ ++ // The lookup table just needs to store every 16th entry ++ // of the standard look-up table. ++ static const uint32_t crc32_half_byte_tbl[] = { ++ 0x00000000, 0x105ec76f, 0x20bd8ede, 0x30e349b1, 0x417b1dbc, 0x5125dad3, ++ 0x61c69362, 0x7198540d, 0x82f63b78, 0x92a8fc17, 0xa24bb5a6, 0xb21572c9, ++ 0xc38d26c4, 0xd3d3e1ab, 0xe330a81a, 0xf36e6f75, ++ }; ++ ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++#endif ++#endif ++ return crc; ++} ++ ++/* AES */ ++ ++#if !defined(__ARM_FEATURE_CRYPTO) && (!defined(_M_ARM64) || defined(__clang__)) ++/* clang-format off */ ++#define SSE2NEON_AES_SBOX(w) \ ++ { \ ++ w(0x63), w(0x7c), w(0x77), w(0x7b), w(0xf2), w(0x6b), w(0x6f), \ ++ w(0xc5), w(0x30), w(0x01), w(0x67), w(0x2b), w(0xfe), w(0xd7), \ ++ w(0xab), w(0x76), w(0xca), w(0x82), w(0xc9), w(0x7d), w(0xfa), \ ++ w(0x59), w(0x47), w(0xf0), w(0xad), w(0xd4), w(0xa2), w(0xaf), \ ++ w(0x9c), w(0xa4), w(0x72), w(0xc0), w(0xb7), w(0xfd), w(0x93), \ ++ w(0x26), w(0x36), w(0x3f), w(0xf7), w(0xcc), w(0x34), w(0xa5), \ ++ w(0xe5), w(0xf1), w(0x71), w(0xd8), w(0x31), w(0x15), w(0x04), \ ++ w(0xc7), w(0x23), w(0xc3), w(0x18), w(0x96), w(0x05), w(0x9a), \ ++ w(0x07), w(0x12), w(0x80), w(0xe2), w(0xeb), w(0x27), w(0xb2), \ ++ w(0x75), w(0x09), w(0x83), w(0x2c), w(0x1a), w(0x1b), w(0x6e), \ ++ w(0x5a), w(0xa0), w(0x52), w(0x3b), w(0xd6), w(0xb3), w(0x29), \ ++ w(0xe3), w(0x2f), w(0x84), w(0x53), w(0xd1), w(0x00), w(0xed), \ ++ w(0x20), w(0xfc), w(0xb1), w(0x5b), w(0x6a), w(0xcb), w(0xbe), \ ++ w(0x39), w(0x4a), w(0x4c), w(0x58), w(0xcf), w(0xd0), w(0xef), \ ++ w(0xaa), w(0xfb), w(0x43), w(0x4d), w(0x33), w(0x85), w(0x45), \ ++ w(0xf9), w(0x02), w(0x7f), w(0x50), w(0x3c), w(0x9f), w(0xa8), \ ++ w(0x51), w(0xa3), w(0x40), w(0x8f), w(0x92), w(0x9d), w(0x38), \ ++ w(0xf5), w(0xbc), w(0xb6), w(0xda), w(0x21), w(0x10), w(0xff), \ ++ w(0xf3), w(0xd2), w(0xcd), w(0x0c), w(0x13), w(0xec), w(0x5f), \ ++ w(0x97), w(0x44), w(0x17), w(0xc4), w(0xa7), w(0x7e), w(0x3d), \ ++ w(0x64), w(0x5d), w(0x19), w(0x73), w(0x60), w(0x81), w(0x4f), \ ++ w(0xdc), w(0x22), w(0x2a), w(0x90), w(0x88), w(0x46), w(0xee), \ ++ w(0xb8), w(0x14), w(0xde), w(0x5e), w(0x0b), w(0xdb), w(0xe0), \ ++ w(0x32), w(0x3a), w(0x0a), w(0x49), w(0x06), w(0x24), w(0x5c), \ ++ w(0xc2), w(0xd3), w(0xac), w(0x62), w(0x91), w(0x95), w(0xe4), \ ++ w(0x79), w(0xe7), w(0xc8), w(0x37), w(0x6d), w(0x8d), w(0xd5), \ ++ w(0x4e), w(0xa9), w(0x6c), w(0x56), w(0xf4), w(0xea), w(0x65), \ ++ w(0x7a), w(0xae), w(0x08), w(0xba), w(0x78), w(0x25), w(0x2e), \ ++ w(0x1c), w(0xa6), w(0xb4), w(0xc6), w(0xe8), w(0xdd), w(0x74), \ ++ w(0x1f), w(0x4b), w(0xbd), w(0x8b), w(0x8a), w(0x70), w(0x3e), \ ++ w(0xb5), w(0x66), w(0x48), w(0x03), w(0xf6), w(0x0e), w(0x61), \ ++ w(0x35), w(0x57), w(0xb9), w(0x86), w(0xc1), w(0x1d), w(0x9e), \ ++ w(0xe1), w(0xf8), w(0x98), w(0x11), w(0x69), w(0xd9), w(0x8e), \ ++ w(0x94), w(0x9b), w(0x1e), w(0x87), w(0xe9), w(0xce), w(0x55), \ ++ w(0x28), w(0xdf), w(0x8c), w(0xa1), w(0x89), w(0x0d), w(0xbf), \ ++ w(0xe6), w(0x42), w(0x68), w(0x41), w(0x99), w(0x2d), w(0x0f), \ ++ w(0xb0), w(0x54), w(0xbb), w(0x16) \ ++ } ++#define SSE2NEON_AES_RSBOX(w) \ ++ { \ ++ w(0x52), w(0x09), w(0x6a), w(0xd5), w(0x30), w(0x36), w(0xa5), \ ++ w(0x38), w(0xbf), w(0x40), w(0xa3), w(0x9e), w(0x81), w(0xf3), \ ++ w(0xd7), w(0xfb), w(0x7c), w(0xe3), w(0x39), w(0x82), w(0x9b), \ ++ w(0x2f), w(0xff), w(0x87), w(0x34), w(0x8e), w(0x43), w(0x44), \ ++ w(0xc4), w(0xde), w(0xe9), w(0xcb), w(0x54), w(0x7b), w(0x94), \ ++ w(0x32), w(0xa6), w(0xc2), w(0x23), w(0x3d), w(0xee), w(0x4c), \ ++ w(0x95), w(0x0b), w(0x42), w(0xfa), w(0xc3), w(0x4e), w(0x08), \ ++ w(0x2e), w(0xa1), w(0x66), w(0x28), w(0xd9), w(0x24), w(0xb2), \ ++ w(0x76), w(0x5b), w(0xa2), w(0x49), w(0x6d), w(0x8b), w(0xd1), \ ++ w(0x25), w(0x72), w(0xf8), w(0xf6), w(0x64), w(0x86), w(0x68), \ ++ w(0x98), w(0x16), w(0xd4), w(0xa4), w(0x5c), w(0xcc), w(0x5d), \ ++ w(0x65), w(0xb6), w(0x92), w(0x6c), w(0x70), w(0x48), w(0x50), \ ++ w(0xfd), w(0xed), w(0xb9), w(0xda), w(0x5e), w(0x15), w(0x46), \ ++ w(0x57), w(0xa7), w(0x8d), w(0x9d), w(0x84), w(0x90), w(0xd8), \ ++ w(0xab), w(0x00), w(0x8c), w(0xbc), w(0xd3), w(0x0a), w(0xf7), \ ++ w(0xe4), w(0x58), w(0x05), w(0xb8), w(0xb3), w(0x45), w(0x06), \ ++ w(0xd0), w(0x2c), w(0x1e), w(0x8f), w(0xca), w(0x3f), w(0x0f), \ ++ w(0x02), w(0xc1), w(0xaf), w(0xbd), w(0x03), w(0x01), w(0x13), \ ++ w(0x8a), w(0x6b), w(0x3a), w(0x91), w(0x11), w(0x41), w(0x4f), \ ++ w(0x67), w(0xdc), w(0xea), w(0x97), w(0xf2), w(0xcf), w(0xce), \ ++ w(0xf0), w(0xb4), w(0xe6), w(0x73), w(0x96), w(0xac), w(0x74), \ ++ w(0x22), w(0xe7), w(0xad), w(0x35), w(0x85), w(0xe2), w(0xf9), \ ++ w(0x37), w(0xe8), w(0x1c), w(0x75), w(0xdf), w(0x6e), w(0x47), \ ++ w(0xf1), w(0x1a), w(0x71), w(0x1d), w(0x29), w(0xc5), w(0x89), \ ++ w(0x6f), w(0xb7), w(0x62), w(0x0e), w(0xaa), w(0x18), w(0xbe), \ ++ w(0x1b), w(0xfc), w(0x56), w(0x3e), w(0x4b), w(0xc6), w(0xd2), \ ++ w(0x79), w(0x20), w(0x9a), w(0xdb), w(0xc0), w(0xfe), w(0x78), \ ++ w(0xcd), w(0x5a), w(0xf4), w(0x1f), w(0xdd), w(0xa8), w(0x33), \ ++ w(0x88), w(0x07), w(0xc7), w(0x31), w(0xb1), w(0x12), w(0x10), \ ++ w(0x59), w(0x27), w(0x80), w(0xec), w(0x5f), w(0x60), w(0x51), \ ++ w(0x7f), w(0xa9), w(0x19), w(0xb5), w(0x4a), w(0x0d), w(0x2d), \ ++ w(0xe5), w(0x7a), w(0x9f), w(0x93), w(0xc9), w(0x9c), w(0xef), \ ++ w(0xa0), w(0xe0), w(0x3b), w(0x4d), w(0xae), w(0x2a), w(0xf5), \ ++ w(0xb0), w(0xc8), w(0xeb), w(0xbb), w(0x3c), w(0x83), w(0x53), \ ++ w(0x99), w(0x61), w(0x17), w(0x2b), w(0x04), w(0x7e), w(0xba), \ ++ w(0x77), w(0xd6), w(0x26), w(0xe1), w(0x69), w(0x14), w(0x63), \ ++ w(0x55), w(0x21), w(0x0c), w(0x7d) \ ++ } ++/* clang-format on */ ++ ++/* X Macro trick. See https://en.wikipedia.org/wiki/X_Macro */ ++#define SSE2NEON_AES_H0(x) (x) ++static const uint8_t _sse2neon_sbox[256] = SSE2NEON_AES_SBOX(SSE2NEON_AES_H0); ++static const uint8_t _sse2neon_rsbox[256] = SSE2NEON_AES_RSBOX(SSE2NEON_AES_H0); ++#undef SSE2NEON_AES_H0 ++ ++/* x_time function and matrix multiply function */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#define SSE2NEON_XT(x) (((x) << 1) ^ ((((x) >> 7) & 1) * 0x1b)) ++#define SSE2NEON_MULTIPLY(x, y) \ ++ (((y & 1) * x) ^ ((y >> 1 & 1) * SSE2NEON_XT(x)) ^ \ ++ ((y >> 2 & 1) * SSE2NEON_XT(SSE2NEON_XT(x))) ^ \ ++ ((y >> 3 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))) ^ \ ++ ((y >> 4 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))))) ++#endif ++ ++// In the absence of crypto extensions, implement aesenc using regular NEON ++// intrinsics instead. See: ++// https://www.workofard.com/2017/01/accelerated-aes-for-the-arm64-linux-kernel/ ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/ and ++// for more information. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ /* shift rows */ ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ /* sub bytes */ ++ // Here, we separate the whole 256-bytes table into 4 64-bytes tables, and ++ // look up each of the table. After each lookup, we load the next table ++ // which locates at the next 64-bytes. In the meantime, the index in the ++ // table would be smaller than it was, so the index parameters of ++ // `vqtbx4q_u8()` need to be added the same constant as the loaded tables. ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ // 'w-0x40' equals to 'vsubq_u8(w, vdupq_n_u8(0x40))' ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ /* mix columns */ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ /* add round key */ ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A implementation for a table-based AES */ ++#define SSE2NEON_AES_B2W(b0, b1, b2, b3) \ ++ (((uint32_t) (b3) << 24) | ((uint32_t) (b2) << 16) | \ ++ ((uint32_t) (b1) << 8) | (uint32_t) (b0)) ++// multiplying 'x' by 2 in GF(2^8) ++#define SSE2NEON_AES_F2(x) ((x << 1) ^ (((x >> 7) & 1) * 0x011b /* WPOLY */)) ++// multiplying 'x' by 3 in GF(2^8) ++#define SSE2NEON_AES_F3(x) (SSE2NEON_AES_F2(x) ^ x) ++#define SSE2NEON_AES_U0(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F2(p), p, p, SSE2NEON_AES_F3(p)) ++#define SSE2NEON_AES_U1(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p, p) ++#define SSE2NEON_AES_U2(p) \ ++ SSE2NEON_AES_B2W(p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p) ++#define SSE2NEON_AES_U3(p) \ ++ SSE2NEON_AES_B2W(p, p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p)) ++ ++ // this generates a table containing every possible permutation of ++ // shift_rows() and sub_bytes() with mix_columns(). ++ static const uint32_t ALIGN_STRUCT(16) aes_table[4][256] = { ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U0), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U1), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U2), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U3), ++ }; ++#undef SSE2NEON_AES_B2W ++#undef SSE2NEON_AES_F2 ++#undef SSE2NEON_AES_F3 ++#undef SSE2NEON_AES_U0 ++#undef SSE2NEON_AES_U1 ++#undef SSE2NEON_AES_U2 ++#undef SSE2NEON_AES_U3 ++ ++ uint32_t x0 = _mm_cvtsi128_si32(a); // get a[31:0] ++ uint32_t x1 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); // get a[63:32] ++ uint32_t x2 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xAA)); // get a[95:64] ++ uint32_t x3 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); // get a[127:96] ++ ++ // finish the modulo addition step in mix_columns() ++ __m128i out = _mm_set_epi32( ++ (aes_table[0][x3 & 0xff] ^ aes_table[1][(x0 >> 8) & 0xff] ^ ++ aes_table[2][(x1 >> 16) & 0xff] ^ aes_table[3][x2 >> 24]), ++ (aes_table[0][x2 & 0xff] ^ aes_table[1][(x3 >> 8) & 0xff] ^ ++ aes_table[2][(x0 >> 16) & 0xff] ^ aes_table[3][x1 >> 24]), ++ (aes_table[0][x1 & 0xff] ^ aes_table[1][(x2 >> 8) & 0xff] ^ ++ aes_table[2][(x3 >> 16) & 0xff] ^ aes_table[3][x0 >> 24]), ++ (aes_table[0][x0 & 0xff] ^ aes_table[1][(x1 >> 8) & 0xff] ^ ++ aes_table[2][(x2 >> 16) & 0xff] ^ aes_table[3][x3 >> 24])); ++ ++ return _mm_xor_si128(out, RoundKey); ++#endif ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // inverse mix columns ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & ++ 0x1b); // multiplying 'v' by 2 in GF(2^8) ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ // inverse mix columns ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ // sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A implementation */ ++ uint8_t v[16] = { ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 0)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 5)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 10)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 15)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 4)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 9)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 14)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 3)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 8)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 13)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 2)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 7)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 12)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 1)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 6)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 11)], ++ }; ++ ++ return vreinterpretq_m128i_u8(vld1q_u8(v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (int i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++#if defined(__aarch64__) ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ uint8x16_t v = vreinterpretq_u8_m128i(a); ++ uint8x16_t w; ++ ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ // multiplying 'v' by 2 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ return vreinterpretq_m128i_u8(w); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ vst1q_u8((uint8_t *) v, vreinterpretq_u8_m128i(a)); ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)); ++#endif ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++// ++// Emits the Advanced Encryption Standard (AES) instruction aeskeygenassist. ++// This instruction generates a round key for AES encryption. See ++// https://kazakov.life/2017/11/01/cryptocurrency-mining-on-ios-devices/ ++// for details. ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++#if defined(__aarch64__) ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); ++ uint8x16_t v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), _a); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), _a - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), _a - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), _a - 0xc0); ++ ++ uint32x4_t v_u32 = vreinterpretq_u32_u8(v); ++ uint32x4_t ror_v = vorrq_u32(vshrq_n_u32(v_u32, 8), vshlq_n_u32(v_u32, 24)); ++ uint32x4_t ror_xor_v = veorq_u32(ror_v, vdupq_n_u32(rcon)); ++ ++ return vreinterpretq_m128i_u32(vtrn2q_u32(v_u32, ror_xor_v)); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint32_t X1 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); ++ uint32_t X3 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); ++ for (int i = 0; i < 4; ++i) { ++ ((uint8_t *) &X1)[i] = _sse2neon_sbox[((uint8_t *) &X1)[i]]; ++ ((uint8_t *) &X3)[i] = _sse2neon_sbox[((uint8_t *) &X3)[i]]; ++ } ++ return _mm_set_epi32(((X3 >> 8) | (X3 << 24)) ^ rcon, X3, ++ ((X1 >> 8) | (X1 << 24)) ^ rcon, X1); ++#endif ++} ++#undef SSE2NEON_AES_SBOX ++#undef SSE2NEON_AES_RSBOX ++ ++#if defined(__aarch64__) ++#undef SSE2NEON_XT ++#undef SSE2NEON_MULTIPLY ++#endif ++ ++#else /* __ARM_FEATURE_CRYPTO */ ++// Implements equivalent of 'aesenc' by combining AESE (with an empty key) and ++// AESMC and then manually applying the real key as an xor operation. This ++// unfortunately means an additional xor op; the compiler should be able to ++// optimize this away for repeated calls however. See ++// https://blog.michaelbrase.com/2018/05/08/emulating-x86-aes-intrinsics-on-armv8-a ++// for more details. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesmcq_u8(vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(b))); ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesimcq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return _mm_xor_si128(vreinterpretq_m128i_u8(vaeseq_u8( ++ vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ RoundKey); ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8( ++ veorq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++ return vreinterpretq_m128i_u8(vaesimcq_u8(vreinterpretq_u8_m128i(a))); ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst." ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++ // AESE does ShiftRows and SubBytes on A ++ uint8x16_t u8 = vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)); ++ ++#ifndef _MSC_VER ++ uint8x16_t dest = { ++ // Undo ShiftRows step from AESE and extract X1 and X3 ++ u8[0x4], u8[0x1], u8[0xE], u8[0xB], // SubBytes(X1) ++ u8[0x1], u8[0xE], u8[0xB], u8[0x4], // ROT(SubBytes(X1)) ++ u8[0xC], u8[0x9], u8[0x6], u8[0x3], // SubBytes(X3) ++ u8[0x9], u8[0x6], u8[0x3], u8[0xC], // ROT(SubBytes(X3)) ++ }; ++ uint32x4_t r = {0, (unsigned) rcon, 0, (unsigned) rcon}; ++ return vreinterpretq_m128i_u8(dest) ^ vreinterpretq_m128i_u32(r); ++#else ++ // We have to do this hack because MSVC is strictly adhering to the CPP ++ // standard, in particular C++03 8.5.1 sub-section 15, which states that ++ // unions must be initialized by their first member type. ++ ++ // As per the Windows ARM64 ABI, it is always little endian, so this works ++ __n128 dest{ ++ ((uint64_t) u8.n128_u8[0x4] << 0) | ((uint64_t) u8.n128_u8[0x1] << 8) | ++ ((uint64_t) u8.n128_u8[0xE] << 16) | ++ ((uint64_t) u8.n128_u8[0xB] << 24) | ++ ((uint64_t) u8.n128_u8[0x1] << 32) | ++ ((uint64_t) u8.n128_u8[0xE] << 40) | ++ ((uint64_t) u8.n128_u8[0xB] << 48) | ++ ((uint64_t) u8.n128_u8[0x4] << 56), ++ ((uint64_t) u8.n128_u8[0xC] << 0) | ((uint64_t) u8.n128_u8[0x9] << 8) | ++ ((uint64_t) u8.n128_u8[0x6] << 16) | ++ ((uint64_t) u8.n128_u8[0x3] << 24) | ++ ((uint64_t) u8.n128_u8[0x9] << 32) | ++ ((uint64_t) u8.n128_u8[0x6] << 40) | ++ ((uint64_t) u8.n128_u8[0x3] << 48) | ++ ((uint64_t) u8.n128_u8[0xC] << 56)}; ++ ++ dest.n128_u32[1] = dest.n128_u32[1] ^ rcon; ++ dest.n128_u32[3] = dest.n128_u32[3] ^ rcon; ++ ++ return dest; ++#endif ++} ++#endif ++ ++/* Others */ ++ ++// Perform a carry-less multiplication of two 64-bit integers, selected from a ++// and b according to imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clmulepi64_si128 ++FORCE_INLINE __m128i _mm_clmulepi64_si128(__m128i _a, __m128i _b, const int imm) ++{ ++ uint64x2_t a = vreinterpretq_u64_m128i(_a); ++ uint64x2_t b = vreinterpretq_u64_m128i(_b); ++ switch (imm & 0x11) { ++ case 0x00: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_low_u64(b))); ++ case 0x01: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_low_u64(b))); ++ case 0x10: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_high_u64(b))); ++ case 0x11: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_high_u64(b))); ++ default: ++ abort(); ++ } ++} ++ ++FORCE_INLINE unsigned int _sse2neon_mm_get_denormals_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_DENORMALS_ZERO_ON : _MM_DENORMALS_ZERO_OFF; ++} ++ ++// Count the number of bits set to 1 in unsigned 32-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u32 ++FORCE_INLINE int _mm_popcnt_u32(unsigned int a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcount) ++ return __builtin_popcount(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits(a); ++#else ++ return (int) vaddlv_u8(vcnt_u8(vcreate_u8((uint64_t) a))); ++#endif ++#else ++ uint32_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ ++ vst1_u32(&count, count32x2_val); ++ return count; ++#endif ++} ++ ++// Count the number of bits set to 1 in unsigned 64-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u64 ++FORCE_INLINE int64_t _mm_popcnt_u64(uint64_t a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcountll) ++ return __builtin_popcountll(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits64(a); ++#else ++ return (int64_t) vaddlv_u8(vcnt_u8(vcreate_u8(a))); ++#endif ++#else ++ uint64_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ uint64x1_t count64x1_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ count64x1_val = vpaddl_u32(count32x2_val); ++ vst1_u64(&count, count64x1_val); ++ return count; ++#endif ++} ++ ++FORCE_INLINE void _sse2neon_mm_set_denormals_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_DENORMALS_ZERO_MASK) == _MM_DENORMALS_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Return the current 64-bit value of the processor's time-stamp counter. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=rdtsc ++FORCE_INLINE uint64_t _rdtsc(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t val; ++ ++ /* According to ARM DDI 0487F.c, from Armv8.0 to Armv8.5 inclusive, the ++ * system counter is at least 56 bits wide; from Armv8.6, the counter ++ * must be 64 bits wide. So the system counter could be less than 64 ++ * bits wide and it is attributed with the flag 'cap_user_time_short' ++ * is true. ++ */ ++#if defined(_MSC_VER) ++ val = _ReadStatusReg(ARM64_SYSREG(3, 3, 14, 0, 2)); ++#else ++ __asm__ __volatile__("mrs %0, cntvct_el0" : "=r"(val)); ++#endif ++ ++ return val; ++#else ++ uint32_t pmccntr, pmuseren, pmcntenset; ++ // Read the user mode Performance Monitoring Unit (PMU) ++ // User Enable Register (PMUSERENR) access permissions. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c14, 0" : "=r"(pmuseren)); ++ if (pmuseren & 1) { // Allows reading PMUSERENR for user mode code. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c12, 1" : "=r"(pmcntenset)); ++ if (pmcntenset & 0x80000000UL) { // Is it counting? ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c13, 0" : "=r"(pmccntr)); ++ // The counter is set up to count every 64th cycle ++ return (uint64_t) (pmccntr) << 6; ++ } ++ } ++ ++ // Fallback to syscall as we can't enable PMUSERENR in user mode. ++ struct timeval tv; ++ gettimeofday(&tv, NULL); ++ return (uint64_t) (tv.tv_sec) * 1000000 + tv.tv_usec; ++#endif ++} ++ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma pop_macro("ALIGN_STRUCT") ++#pragma pop_macro("FORCE_INLINE") ++#pragma pop_macro("FORCE_INLINE_OPTNONE") ++#endif ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma GCC pop_options ++#endif ++ ++#endif diff --git a/recipes/chromap/meta.yaml b/recipes/chromap/meta.yaml index 05010a6f787c2..db405e9472056 100644 --- a/recipes/chromap/meta.yaml +++ b/recipes/chromap/meta.yaml @@ -5,13 +5,15 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('chromap', max_pin="x.x") }} source: url: https://github.com/haowenz/chromap/archive/refs/tags/v{{ version }}.tar.gz sha256: bea2fc76bd7d8931f69db0b63aef19e50070b24c0ab1415569b59d490fff42e8 + patches: + - chromap-aarch64.patch # [aarch64 or arm64] requirements: build: @@ -35,3 +37,8 @@ about: license_file: LICENSE summary: Fast alignment and preprocessing of chromatin profiles doc_url: https://zhanghaowen.com/chromap/ + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From b33e9c32707f401076f5d1f25a99d15473b32c3d Mon Sep 17 00:00:00 2001 From: Anna Zhukova Date: Wed, 7 Aug 2024 19:48:40 +0200 Subject: [PATCH 1107/1514] phylodeep recipe (#49595) * phylodeep recipe * clean up recipe * v0.4 using conda-available packages * fixed dependencies * matplotlib-base * changed tensorflow version * matplotlib version * matplotlib version * tensorflow, scikit-learn and matplot-lib versions * v0.6 with the README * add python to run section too --------- Co-authored-by: mencian --- recipes/phylodeep/meta.yaml | 63 +++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 recipes/phylodeep/meta.yaml diff --git a/recipes/phylodeep/meta.yaml b/recipes/phylodeep/meta.yaml new file mode 100644 index 0000000000000..ac320200a67f7 --- /dev/null +++ b/recipes/phylodeep/meta.yaml @@ -0,0 +1,63 @@ +{% set name = "phylodeep" %} +{% set version = "0.6" %} + +package: + name: "{{ name|lower }}" + version: "{{ version }}" + +source: + url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" + sha256: 9c8adff003651de7656f690c930a6e969c9f9e685b08e926d0f6263847ac4323 + +build: + number: 0 + noarch: python + entry_points: + - checkdeep = phylodeep.checkdeep:main + - modeldeep = phylodeep.modeldeep:main + - paramdeep = phylodeep.paramdeep:main + - subtree_picker = phylodeep.tree_utilities:subtree_picker_main + script: "{{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir" + run_exports: + - {{ pin_subpackage('phylodeep', max_pin="x.x") }} + +requirements: + host: + - pip + - python >=3.6 + run: + - python >=3.6 + - scikit-learn >=1.0,<1.3.0 + - tensorflow >=2.0.0 + - ete3 >=3.1.1,<=3.1.3 + - pandas >=1.0.0,<1.4.0 + - matplotlib-base >=3.0.2,<3.7.0 + - keras ==2.2.4 + - phylodeep_data_bd >=0.6 + - phylodeep_data_bdei >=0.4 + - phylodeep_data_bdss >=0.4 + +test: + imports: + - phylodeep + commands: + - checkdeep --help + - modeldeep --help + - paramdeep --help + - subtree_picker --help + +about: + home: "https://github.com/evolbioinfo/phylodeep" + summary: "Deep-learning parameter estimation and model selection from phylogenetic trees." + description: | + PhyloDeep is a python library for parameter estimation and model selection from phylogenetic trees, + based on deep learning. + license: "GPL-3.0-or-later" + license_family: GPL3 + license_file: LICENSE + doc_url: "https://github.com/evolbioinfo/phylodeep/blob/{{ version }}/README.md" + dev_url: "https://github.com/evolbioinfo/phylodeep" + +extra: + recipe-maintainers: + - annazhukova From 4104f15e5c1ea6764e2a722645fa3b9e68c808dd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 7 Aug 2024 13:48:49 -0400 Subject: [PATCH 1108/1514] Update get_homologues to 3.7.1 (#49876) * Update get_homologues to 3.7 * Update get_homologues to 3.7.1 --- recipes/get_homologues/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/get_homologues/meta.yaml b/recipes/get_homologues/meta.yaml index 989cdb036468d..0528198c7538b 100644 --- a/recipes/get_homologues/meta.yaml +++ b/recipes/get_homologues/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "3.6.3" %} -{% set sha256 = "b2f35bffae497ac764159a4786af820573c436a43ccd67b7ded8ac7e8d4a1a6f" %} +{% set version = "3.7.1" %} +{% set sha256 = "eeb9361695cafc35a1b92b29b647874713f85641218b1de5cddca551d334fe9d" %} package: name: get_homologues From 9fb7caa6cd7be8ee92391a2191b5cca3232c1046 Mon Sep 17 00:00:00 2001 From: Roberto Rossini <71787608+robomics@users.noreply.github.com> Date: Wed, 7 Aug 2024 19:51:09 +0200 Subject: [PATCH 1109/1514] hictkpy: enable osx-arm64 build (#49200) * Enable osx-arm64 build * Debugging --- recipes/hictkpy/build_failure.osx-64.yaml | 104 ---------------------- recipes/hictkpy/meta.yaml | 4 +- 2 files changed, 3 insertions(+), 105 deletions(-) delete mode 100644 recipes/hictkpy/build_failure.osx-64.yaml diff --git a/recipes/hictkpy/build_failure.osx-64.yaml b/recipes/hictkpy/build_failure.osx-64.yaml deleted file mode 100644 index 2edc9b8a419d3..0000000000000 --- a/recipes/hictkpy/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: c5aa91b5b109d0c9a825beb2ef6338e94f047a845e5424de084fb12467d9ada6 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - pysocks: 1.7.1-pyha2e5f31_6 conda-forge - python: 3.12.3-h1411813_0_cpython conda-forge - python-dateutil: 2.9.0-pyhd8ed1ab_0 conda-forge - python_abi: 3.12-4_cp312 conda-forge - pyyaml: 6.0.1-py312h104f124_1 conda-forge - readline: 8.2-h9e318b2_1 conda-forge - requests: 2.32.3-pyhd8ed1ab_0 conda-forge - rhash: 1.4.4-h0dc2134_0 conda-forge - sigtool: 0.1.3-h88f4db0_0 conda-forge - six: 1.16.0-pyh6c4a22f_0 conda-forge - spdlog: 1.13.0-h1a4aec9_0 conda-forge - tapi: 1100.0.11-h9ce4665_0 conda-forge - tk: 8.6.13-h1abcd95_1 conda-forge - tzdata: 2024a-h0c530f3_0 conda-forge - urllib3: 1.26.18-pyhd8ed1ab_0 conda-forge - xz: 5.2.6-h775f41a_0 conda-forge - yaml: 0.2.5-h0d85af4_2 conda-forge - zstd: 1.5.6-h915ae27_0 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache - Downloading source to cache: v0.0.5_e9576a1a71.tar.gz - Downloading https://github.com/paulsengroup/hictkpy/archive/refs/tags/v0.0.5.tar.gz - Success - /opt/mambaforge/envs/bioconda/conda-bld/hictkpy_1717517114516/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/bin/python: No module named pip - Extracting download - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - source tree in: /opt/mambaforge/envs/bioconda/conda-bld/hictkpy_1717517114516/work - export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/hictkpy_1717517114516/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/hictkpy_1717517114516/_build_env - export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/hictkpy_1717517114516/work - INFO: activate_clang_osx-64.sh made the following environmental changes: - AR=x86_64-apple-darwin13.4.0-ar - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - AS=x86_64-apple-darwin13.4.0-as - CC=x86_64-apple-darwin13.4.0-clang - CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hictkpy-0.0.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms - CLANG=x86_64-apple-darwin13.4.0-clang - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/hictkpy_1717517114516/work/conda_build.sh']' returned non-zero exit status 1. - CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin - CMAKE_PREFIX_PATH=:$PREFIX - CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 - CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 - CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 - DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hictkpy-0.0.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - HOST=x86_64-apple-darwin13.4.0 - INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool - LD=x86_64-apple-darwin13.4.0-ld - LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib - LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib - LIBTOOL=x86_64-apple-darwin13.4.0-libtool - LIPO=x86_64-apple-darwin13.4.0-lipo - MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib - NM=x86_64-apple-darwin13.4.0-nm - NMEDIT=x86_64-apple-darwin13.4.0-nmedit - OBJC=x86_64-apple-darwin13.4.0-clang - OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - OTOOL=x86_64-apple-darwin13.4.0-otool - PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff - RANLIB=x86_64-apple-darwin13.4.0-ranlib - REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding - SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk - SEGEDIT=x86_64-apple-darwin13.4.0-segedit - SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table - SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack - SIZE=x86_64-apple-darwin13.4.0-size - STRINGS=x86_64-apple-darwin13.4.0-strings - STRIP=x86_64-apple-darwin13.4.0-strip - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 - ac_cv_func_malloc_0_nonnull=yes - ac_cv_func_realloc_0_nonnull=yes - build_alias=x86_64-apple-darwin13.4.0 - host_alias=x86_64-apple-darwin13.4.0 - INFO: activate_clangxx_osx-64.sh made the following environmental changes: - CLANGXX=x86_64-apple-darwin13.4.0-clang - CXX=x86_64-apple-darwin13.4.0-clang - CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hictkpy-0.0.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hictkpy-0.0.5 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - patching file CMakeLists.txt - patching file conanfile.txt - patching file pyproject.toml - -DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin -DPython_EXECUTABLE=$PREFIX/bin/python -# Last 100 lines of the build log. diff --git a/recipes/hictkpy/meta.yaml b/recipes/hictkpy/meta.yaml index 86e219bae94e2..084412b76ff50 100644 --- a/recipes/hictkpy/meta.yaml +++ b/recipes/hictkpy/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 1 + number: 2 skip: True # [py < 39] run_exports: - {{ pin_subpackage('hictkpy', max_pin='x.x') }} @@ -29,6 +29,7 @@ requirements: - spdlog >=1.12 host: - python + - pip - hdf5 >=1.12 - libdeflate - scikit-build-core @@ -69,3 +70,4 @@ extra: - doi:10.5281/zenodo.8220300 additional-platforms: - linux-aarch64 + - osx-arm64 From 0ec72420512cbc3fe736f1c339b6d0b5aae4ebea Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 7 Aug 2024 13:58:26 -0400 Subject: [PATCH 1110/1514] Update quantms-utils to 0.0.3 (#49879) --- recipes/quantms-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/quantms-utils/meta.yaml b/recipes/quantms-utils/meta.yaml index 5f5a7c9d3c17c..9cfcdd6318d2a 100644 --- a/recipes/quantms-utils/meta.yaml +++ b/recipes/quantms-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "quantms-utils" %} -{% set version = "0.0.2" %} +{% set version = "0.0.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/quantms_utils-{{ version }}.tar.gz - sha256: 295e4947e2cb3a4dc084854081d5e16255d422d03a7e41def531daf98317882a + sha256: d7b0ed0ea1ed83bc0095c59090368e3146561d14efcc3f9c61288741c9f46b78 build: entry_points: From efb58d0c2df855c5358dce72c695efb530a283fe Mon Sep 17 00:00:00 2001 From: Peter Cock Date: Wed, 7 Aug 2024 21:29:08 +0100 Subject: [PATCH 1111/1514] Fix mummer hashbang and build on macOS including ARM (#49870) * Fix perl hashbang (shebang) Closes #28209 * Build on osx again, plus osx-arm64 * Patch mummer to add explicit function declarations [osx] Aims to fix this error compiling on macOS (intel and arm) seen on the CI system: error: call to undeclared function 'getbranchinfostree'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration Tested locally by running make locally on macOS ARM64. * Use suggested sed syntax See https://bioconda.github.io/contributor/troubleshooting.html#perl-or-python-not-found * Avoid sed editing binary files In this case some of the files are Perl scripts (editing first line is intended), but others are compiled code. * Ensure only try sed on Perl scripts --- recipes/mummer/build.sh | 6 ++++ recipes/mummer/meta.yaml | 13 ++++--- .../patches/addleafcount_explicit.patch | 19 +++++++++++ .../mummer/patches/findmaxmat_explicit.patch | 34 +++++++++++++++++++ .../mummer/patches/findmumcand_explicit.patch | 19 +++++++++++ recipes/mummer/patches/linkloc_explicit.patch | 12 +++++++ .../mummer/patches/procmaxmat_explicit.patch | 19 +++++++++++ 7 files changed, 118 insertions(+), 4 deletions(-) create mode 100644 recipes/mummer/patches/addleafcount_explicit.patch create mode 100644 recipes/mummer/patches/findmaxmat_explicit.patch create mode 100644 recipes/mummer/patches/findmumcand_explicit.patch create mode 100644 recipes/mummer/patches/linkloc_explicit.patch create mode 100644 recipes/mummer/patches/procmaxmat_explicit.patch diff --git a/recipes/mummer/build.sh b/recipes/mummer/build.sh index 4b86465dad6b2..9fadf907e0146 100644 --- a/recipes/mummer/build.sh +++ b/recipes/mummer/build.sh @@ -48,6 +48,12 @@ for i in exact-tandems dnadiff mapview mummerplot nucmer promer run-mummer1 run- done for i in $binaries; do + if file $MUMMER_HOME/$i | grep "Perl script"; then + # fix hashbang lines to use conda's perl + sed -i.bak '1 s|^#!/.*/perl$|#!/usr/bin/env perl|g' $MUMMER_HOME/$i + rm -rf $MUMMER_HOME/$i.bak + fi + # ensure executable and setup symlink for binary chmod +x $MUMMER_HOME/$i ln -s "$MUMMER_HOME/$i" "$BINARY_HOME/$i" done diff --git a/recipes/mummer/meta.yaml b/recipes/mummer/meta.yaml index 9c8ecd737d370..99c3dee120de2 100644 --- a/recipes/mummer/meta.yaml +++ b/recipes/mummer/meta.yaml @@ -11,10 +11,14 @@ source: sha256: {{ sha256 }} patches: - patches/gnuplot_mouse_clipboardformat.patch + - patches/linkloc_explicit.patch # [osx] + - patches/addleafcount_explicit.patch # [osx] + - patches/findmumcand_explicit.patch # [osx] + - patches/findmaxmat_explicit.patch # [osx] + - patches/procmaxmat_explicit.patch # [osx] build: - number: 18 - skip: True # [osx] + number: 19 run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} @@ -24,9 +28,9 @@ requirements: - {{ compiler('c') }} - {{ compiler('cxx') }} host: - - perl # [not osx] + - perl run: - - perl # [not osx] + - perl test: commands: @@ -52,5 +56,6 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:mummer diff --git a/recipes/mummer/patches/addleafcount_explicit.patch b/recipes/mummer/patches/addleafcount_explicit.patch new file mode 100644 index 0000000000000..c697f885c4361 --- /dev/null +++ b/recipes/mummer/patches/addleafcount_explicit.patch @@ -0,0 +1,19 @@ +--- MUMmer3.23/src/kurtz/streesrc/addleafcount.c.old 2024-08-07 13:34:49 ++++ MUMmer3.23/src/kurtz/streesrc/addleafcount.c 2024-08-07 13:48:50 +@@ -13,6 +13,16 @@ + #include "spacedef.h" + #include "arraydef.h" + ++void getbranchinfostree(Suffixtree *stree,Uint whichinfo, ++ Branchinfo *branchinfo,Bref btptr); ++ ++Sint depthfirststree(Suffixtree *stree,Reference *startnode, ++ Sint (*processleaf)(Uint,Bref,void *), ++ BOOL (*processbranch1)(Bref,void *), ++ Sint (*processbranch2)(Bref,void *), ++ BOOL (*stoptraversal)(void *), ++ void *stopinfo,void *info); ++ + typedef struct + { + Suffixtree *stree; // suffix tree info diff --git a/recipes/mummer/patches/findmaxmat_explicit.patch b/recipes/mummer/patches/findmaxmat_explicit.patch new file mode 100644 index 0000000000000..78ceb0e257981 --- /dev/null +++ b/recipes/mummer/patches/findmaxmat_explicit.patch @@ -0,0 +1,34 @@ +--- MUMmer3.23/src/kurtz/mm3src/findmaxmat.c.old 2024-08-07 13:55:45 ++++ MUMmer3.23/src/kurtz/mm3src/findmaxmat.c 2024-08-07 14:03:39 +@@ -14,7 +14,31 @@ + #include "debugdef.h" + #include "spacedef.h" + #include "maxmatdef.h" ++ ++void linklocstree(Suffixtree *stree,Location *outloc,Location *inloc); ++ ++SYMBOL *scanprefixstree(Suffixtree *stree,Location *outloc, ++ Location *inloc,SYMBOL *left, ++ SYMBOL *right,Uint rescanlength); ++ ++SYMBOL *findprefixpathstree(Suffixtree *stree, ++ ArrayPathinfo *path, ++ Location *outloc, ++ Location *inloc, ++ SYMBOL *left,SYMBOL *right, ++ Uint rescanlength); + ++Sint depthfirststree(Suffixtree *stree,Reference *startnode, ++ Sint (*processleaf)(Uint,Bref,void *), ++ BOOL (*processbranch1)(Bref,void *), ++ Sint (*processbranch2)(Bref,void *), ++ BOOL (*stoptraversal)(void *), ++ void *stopinfo,void *info); ++ ++SYMBOL *scanprefixfromnodestree(Suffixtree *stree,Location *loc, ++ Bref btptr,SYMBOL *left, ++ SYMBOL *right,Uint rescanlength); ++ + //} + + /*EE diff --git a/recipes/mummer/patches/findmumcand_explicit.patch b/recipes/mummer/patches/findmumcand_explicit.patch new file mode 100644 index 0000000000000..141b3164973c4 --- /dev/null +++ b/recipes/mummer/patches/findmumcand_explicit.patch @@ -0,0 +1,19 @@ +--- MUMmer3.23/src/kurtz/mm3src/findmumcand.c.old 2024-08-07 13:42:47 ++++ MUMmer3.23/src/kurtz/mm3src/findmumcand.c 2024-08-07 13:54:04 +@@ -15,6 +15,16 @@ + #include "spacedef.h" + #include "maxmatdef.h" + ++void linklocstree(Suffixtree *stree,Location *outloc,Location *inloc); ++ ++SYMBOL *scanprefixfromnodestree(Suffixtree *stree,Location *loc, ++ Bref btptr,SYMBOL *left, ++ SYMBOL *right,Uint rescanlength); ++ ++SYMBOL *scanprefixstree(Suffixtree *stree,Location *outloc, ++ Location *inloc,SYMBOL *left, ++ SYMBOL *right,Uint rescanlength); ++ + //} + + /*EE diff --git a/recipes/mummer/patches/linkloc_explicit.patch b/recipes/mummer/patches/linkloc_explicit.patch new file mode 100644 index 0000000000000..96ad6ea4cb176 --- /dev/null +++ b/recipes/mummer/patches/linkloc_explicit.patch @@ -0,0 +1,12 @@ +--- MUMmer3.23/src/kurtz/streesrc/linkloc.c.old 2024-08-07 12:45:16 ++++ MUMmer3.23/src/kurtz/streesrc/linkloc.c 2024-08-07 13:48:38 +@@ -11,6 +11,9 @@ + #include "debugdef.h" + #include "streeacc.h" + ++void getbranchinfostree(Suffixtree *stree,Uint whichinfo, ++ Branchinfo *branchinfo,Bref btptr); ++ + void rescanstree(Suffixtree *stree,Location *loc, + Bref btptr,SYMBOL *left,SYMBOL *right) + { diff --git a/recipes/mummer/patches/procmaxmat_explicit.patch b/recipes/mummer/patches/procmaxmat_explicit.patch new file mode 100644 index 0000000000000..87252e37230ba --- /dev/null +++ b/recipes/mummer/patches/procmaxmat_explicit.patch @@ -0,0 +1,19 @@ +--- MUMmer3.23/src/kurtz/mm3src/procmaxmat.c.old 2024-08-07 14:05:17 ++++ MUMmer3.23/src/kurtz/mm3src/procmaxmat.c 2024-08-07 14:07:03 +@@ -19,6 +19,16 @@ + #include "spacedef.h" + #include "streedef.h" + #include "maxmatdef.h" ++ ++Uint getmaxtextlenstree(void); ++ ++Sint constructprogressstree(Suffixtree *stree,SYMBOL *text, ++ Uint textlen, ++ void (*progress)(Uint,void *), ++ void (*finalprogress)(void *), ++ void *info); ++ ++void freestree(Suffixtree *stree); + + //} + From 2025b21140a2fec791bff65e41736e8288de25e0 Mon Sep 17 00:00:00 2001 From: Roberto Rossini <71787608+robomics@users.noreply.github.com> Date: Wed, 7 Aug 2024 22:33:36 +0200 Subject: [PATCH 1112/1514] Remove stale build failure logs (#49878) --- .../hictk/build_failure.linux-aarch64.yaml | 104 ------------------ recipes/hictk/build_failure.osx-64.yaml | 104 ------------------ recipes/hictk/meta.yaml | 2 +- 3 files changed, 1 insertion(+), 209 deletions(-) delete mode 100644 recipes/hictk/build_failure.linux-aarch64.yaml delete mode 100644 recipes/hictk/build_failure.osx-64.yaml diff --git a/recipes/hictk/build_failure.linux-aarch64.yaml b/recipes/hictk/build_failure.linux-aarch64.yaml deleted file mode 100644 index 49cb43e2fe9a7..0000000000000 --- a/recipes/hictk/build_failure.linux-aarch64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 5def4a5bc1369a463033268d7ed2b6dc19d35b7407bb8c10c74902b523d2b014 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-aarch64: {MatchSpec("pysam"), MatchSpec("cooler==0.10.0=pyhdfd78af_0")} - Encountered problems while solving: - - package cooler-0.10.0-pyhdfd78af_0 requires pysam, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - [32mcooler >=0.9.3 [0m is installable and it requires - [32mpysam [ |>0.8 ][0m, which requires - [32mlibdeflate >=1.18,<1.19.0a0 [0m, which can be installed; - [31mlibdeflate >=1.20,<1.21.0a0 [0m is not installable because it conflicts with any installable versions previously reported. - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions - precs = _install_actions(prefix, index, specs)["LINK"] - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions - txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction - unlink_precs, link_precs = self.solve_for_diff( - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff - final_precs = self.solve_final_state( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state - out_state = self._solving_loop(in_state, out_state, index) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop - solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-aarch64: {MatchSpec("pysam"), MatchSpec("cooler==0.10.0=pyhdfd78af_0")} - Encountered problems while solving: - - package cooler-0.10.0-pyhdfd78af_0 requires pysam, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - [32mcooler >=0.9.3 [0m is installable and it requires - [32mpysam [ |>0.8 ][0m, which requires - [32mlibdeflate >=1.18,<1.19.0a0 [0m, which can be installed; - [31mlibdeflate >=1.20,<1.21.0a0 [0m is not installable because it conflicts with any installable versions previously reported. - - During handling of the above exception, another exception occurred: - - Traceback (most recent call last): - File "/opt/conda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build - create_build_envs(top_level_pkg, notest) - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs - raise e - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs - environ.get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions - precs = _install_actions(prefix, index, specs)["LINK"] - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions - txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction - unlink_precs, link_precs = self.solve_for_diff( - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff - final_precs = self.solve_final_state( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state - out_state = self._solving_loop(in_state, out_state, index) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop - solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-aarch64: {MatchSpec("pysam"), MatchSpec("cooler==0.10.0=pyhdfd78af_0")} - Encountered problems while solving: - - package cooler-0.10.0-pyhdfd78af_0 requires pysam, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - [32mcooler >=0.9.3 [0m is installable and it requires - [32mpysam [ |>0.8 ][0m, which requires - [32mlibdeflate >=1.18,<1.19.0a0 [0m, which can be installed; - [31mlibdeflate >=1.20,<1.21.0a0 [0m is not installable because it conflicts with any installable versions previously reported. -# Last 100 lines of the build log. diff --git a/recipes/hictk/build_failure.osx-64.yaml b/recipes/hictk/build_failure.osx-64.yaml deleted file mode 100644 index 9f4bd89807a52..0000000000000 --- a/recipes/hictk/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 5def4a5bc1369a463033268d7ed2b6dc19d35b7407bb8c10c74902b523d2b014 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |- - ac_cv_func_malloc_0_nonnull=yes - ac_cv_func_realloc_0_nonnull=yes - build_alias=x86_64-apple-darwin13.4.0 - host_alias=x86_64-apple-darwin13.4.0 - INFO: activate_clangxx_osx-64.sh made the following environmental changes: - CLANGXX=x86_64-apple-darwin13.4.0-clang - CXX=x86_64-apple-darwin13.4.0-clang - CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hictk-0.0.12 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/hictk-0.0.12 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - patching file conanfile.txt - -- The C compiler identification is Clang 16.0.6 - -- The CXX compiler identification is Clang 16.0.6 - -- Detecting C compiler ABI info - -- Detecting C compiler ABI info - done - -- Check for working C compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped - -- Detecting C compile features - -- Detecting C compile features - done - -- Detecting CXX compiler ABI info - -- Detecting CXX compiler ABI info - done - -- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - skipped - -- Detecting CXX compile features - -- Detecting CXX compile features - done - -- Developer mode is OFF. For developement, use -DENABLE_DEVELOPER_MODE:BOOL=ON. Building the project for the end-user... - -- Conan: Target declared 'bshoshany-thread-pool::bshoshany-thread-pool' - -- Conan: Target declared 'phmap' - -- Conan: Component target declared 'nonstd::span-lite' - -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success - -- Found Threads: TRUE - -- HIGHFIVE 2.9.0: (Re)Detecting Highfive dependencies (HIGHFIVE_USE_INSTALL_DEPS=NO) - -- Conan: Target declared 'phmap' - packages_from_this = build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - -- Conan: Target declared 'phmap' - -- Conan: Target declared 'phmap' - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - -- Conan: Target declared 'bshoshany-thread-pool::bshoshany-thread-pool' - -- Conan: Target declared 'concurrentqueue::concurrentqueue' - -- Conan: Target declared 'phmap' - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/hictk_1717508836832/work/conda_build.sh']' returned non-zero exit status 2. - -- Conan: Target declared 'readerwriterqueue::readerwriterqueue' - -- Conan: Target declared 'phmap' - -- Building cli tools. - -- Conan: Target declared 'readerwriterqueue::readerwriterqueue' - -- Looking for C include filesystem - -- Looking for C include filesystem - found - -- Performing Test CXX_FILESYSTEM_NO_LINK_NEEDED - -- Performing Test CXX_FILESYSTEM_NO_LINK_NEEDED - Success - -- Building unit tests. - -- Downloading test dataset... - -- Configuring done (71.5s) - -- Generating done (0.3s) - -- Build files have been written to: $SRC_DIR/build - [ 1%] Building CXX object src/hictk/CMakeFiles/hictk.dir/main.cpp.o - [ 2%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli.cpp.o - [ 3%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli_balance.cpp.o - [ 4%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli_convert.cpp.o - [ 5%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli_dump.cpp.o - [ 6%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli_fix_mcool.cpp.o - [ 8%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli_load.cpp.o - [ 9%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli_merge.cpp.o - [ 10%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli_rename_chromosomes.cpp.o - [ 11%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli_validate.cpp.o - [ 12%] Building CXX object src/hictk/CMakeFiles/hictk.dir/cli/cli_zoomify.cpp.o - [ 13%] Building CXX object src/hictk/CMakeFiles/hictk.dir/balance/balance.cpp.o - [ 15%] Building CXX object src/hictk/CMakeFiles/hictk.dir/convert/convert.cpp.o - [ 16%] Building CXX object src/hictk/CMakeFiles/hictk.dir/convert/cool_to_hic.cpp.o - [ 17%] Building CXX object src/hictk/CMakeFiles/hictk.dir/convert/hic_to_cool.cpp.o - [ 18%] Building CXX object src/hictk/CMakeFiles/hictk.dir/dump/dump.cpp.o - [ 19%] Building CXX object src/hictk/CMakeFiles/hictk.dir/dump/dump_common.cpp.o - [ 20%] Building CXX object src/hictk/CMakeFiles/hictk.dir/fix_mcool/fix_mcool.cpp.o - [ 22%] Building CXX object src/hictk/CMakeFiles/hictk.dir/load/load.cpp.o - [ 23%] Building CXX object src/hictk/CMakeFiles/hictk.dir/merge/merge.cpp.o - [ 24%] Building CXX object src/hictk/CMakeFiles/hictk.dir/rename_chromosomes/rename_chromosomes.cpp.o - [ 25%] Building CXX object src/hictk/CMakeFiles/hictk.dir/validate/validate.cpp.o - [ 26%] Building CXX object src/hictk/CMakeFiles/hictk.dir/zoomify/zoomify.cpp.o - [ 27%] Linking CXX executable hictk - [ 27%] Built target hictk - [ 29%] Building CXX object test/units/balancing/CMakeFiles/hictk_balancing_tests.dir/balancing_test.cpp.o - [ 30%] Linking CXX executable hictk_balancing_tests - [ 30%] Built target hictk_balancing_tests - [ 31%] Building CXX object test/units/bin_table/CMakeFiles/bin_table_tests.dir/bin_test.cpp.o - [ 32%] Building CXX object test/units/bin_table/CMakeFiles/bin_table_tests.dir/bin_table_test.cpp.o - [ 33%] Linking CXX executable bin_table_tests - [ 33%] Built target bin_table_tests - [ 34%] Building CXX object test/units/binary_buffer/CMakeFiles/hictk_binary_buffer_tests.dir/binary_buffer_test.cpp.o - [ 36%] Linking CXX executable hictk_binary_buffer_tests - [ 36%] Built target hictk_binary_buffer_tests - [ 37%] Building CXX object test/units/chromosome/CMakeFiles/hictk_chromosome_tests.dir/chromosome_test.cpp.o - [ 38%] Linking CXX executable hictk_chromosome_tests - [ 38%] Built target hictk_chromosome_tests - [ 39%] Building CXX object test/units/cooler/CMakeFiles/hictk_cooler_tests.dir/attribute_numeric_conversions_test.cpp.o - [ 40%] Building CXX object test/units/cooler/CMakeFiles/hictk_cooler_tests.dir/attribute_read_test.cpp.o -# Last 100 lines of the build log. diff --git a/recipes/hictk/meta.yaml b/recipes/hictk/meta.yaml index e0bfbfc37556e..42a5eb4d57b4a 100644 --- a/recipes/hictk/meta.yaml +++ b/recipes/hictk/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('hictk', max_pin='x') }} From de2f78548bba8ccc9284c5d7ac2c964e17ab2c75 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 7 Aug 2024 17:51:19 -0400 Subject: [PATCH 1113/1514] Update lsabgc to 1.0.6 (#49884) --- recipes/lsabgc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/lsabgc/meta.yaml b/recipes/lsabgc/meta.yaml index f55c6fb0d327f..97513540544b9 100644 --- a/recipes/lsabgc/meta.yaml +++ b/recipes/lsabgc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "lsabgc" %} -{% set version = "1.0.5" %} +{% set version = "1.0.6" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Kalan-Lab/lsaBGC-Pan/archive/refs/tags/v{{ version }}.tar.gz - sha256: c6354a39e64238d42c9f5d3e1464d78545f91d5231de2306d162cee6b36eb85f + sha256: d8511975151b5ed53c6268bdbca915bb4398e216be84e8a91729db2f13a422e8 build: number: 0 From 1e83d561cba96c1daf0bffead7047efb3bcda839 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 7 Aug 2024 20:18:25 -0400 Subject: [PATCH 1114/1514] Update gempipe to 1.34.0 (#49882) --- recipes/gempipe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gempipe/meta.yaml b/recipes/gempipe/meta.yaml index 80aaf1acc33f4..343b9cd4741a9 100755 --- a/recipes/gempipe/meta.yaml +++ b/recipes/gempipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.33.4" %} +{% set version = "1.34.0" %} package: name: "gempipe" @@ -7,7 +7,7 @@ package: source: url: https://github.com/lazzarigioele/gempipe/archive/v{{ version }}.tar.gz - sha256: ff9a7f7ab4faa2ac1ed0e77d3e9051034f6f5a98dea347bebdb978727ccb73ea + sha256: 59e71c796c348cef7de9a1c1db3eefef994e2e6e03a8cb686a66df43f002b67f build: From cbef086ebdbb4cc42c082b545d0f1825924cc887 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 7 Aug 2024 20:18:36 -0400 Subject: [PATCH 1115/1514] Update fwdpy11 to 0.24.1 (#49880) --- recipes/fwdpy11/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/fwdpy11/meta.yaml b/recipes/fwdpy11/meta.yaml index 6729780e4e7e6..848cd1006671e 100644 --- a/recipes/fwdpy11/meta.yaml +++ b/recipes/fwdpy11/meta.yaml @@ -1,5 +1,5 @@ {% set name = "fwdpy11" %} -{% set version = "0.24.0" %} +{% set version = "0.24.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/fwdpy11-{{ version }}.tar.gz - sha256: 1b7b0ad6a78ccb43ebc1d5dee43ae6542dc254543aad6aad3462165204afe3a0 + sha256: d0d0d3b9b504d47bd23cfedab39bc4978d2fb21a73e8645140a8c25e211e5800 build: skip: True # [py < 39 or py > 312] From d0f389f03021c0e876bd26b1408572af64c7f533 Mon Sep 17 00:00:00 2001 From: Kez Cleal <42997789+kcleal@users.noreply.github.com> Date: Thu, 8 Aug 2024 01:19:01 +0100 Subject: [PATCH 1116/1514] GW recipe update (#49874) * GW recipe update This is to try and fix missing EGL libs * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml --- recipes/gw/meta.yaml | 53 ++++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 27 deletions(-) diff --git a/recipes/gw/meta.yaml b/recipes/gw/meta.yaml index d91101eaef266..914bd1e2fe317 100644 --- a/recipes/gw/meta.yaml +++ b/recipes/gw/meta.yaml @@ -1,37 +1,34 @@ - {% set version = "1.0.1" %} {% set sha256 = "aacd161bb7131d7874a75b2ed409ee22109be3f87dd062c5590c6d30d1503e68" %} - package: name: gw version: {{ version }} - source: url: https://github.com/kcleal/gw/archive/refs/tags/v{{ version }}.tar.gz sha256: {{ sha256 }} patches: - fix-linker-issues.patch # [linux] - build: - number: 1 + number: 2 run_exports: - - {{ pin_subpackage('gw', max_pin="x") }} + - {{ pin_subpackage('gw', max_pin="x") }} requirements: build: - make - {{ compiler('cxx') }} - - {{ cdt('xorg-x11-proto-devel') }} # [linux] - - {{ cdt('mesa-libgl-devel') }} # [linux] - - {{ cdt('mesa-dri-drivers') }} # [linux] - - {{ cdt('libselinux') }} # [linux] - - {{ cdt('libxdamage') }} # [linux] - - {{ cdt('libxxf86vm') }} # [linux] - - {{ cdt('libxfixes') }} # [linux] - - {{ cdt('libxext') }} # [linux] + # - sysroot_linux-64 >=2.17 + - {{ cdt('mesa-libgl-devel') }} # [linux] + - {{ cdt('mesa-libegl-devel') }} # [linux] + - {{ cdt('mesa-dri-drivers') }} # [linux] + - {{ cdt('libselinux') }} # [linux] + - {{ cdt('libxdamage') }} # [linux] + - {{ cdt('libxxf86vm') }} # [linux] + - {{ cdt('libxext') }} # [linux] + host: - fontconfig - libuuid @@ -42,19 +39,21 @@ requirements: - wget - unzip - freetype - - xorg-libxfixes # [linux] - - xorg-libx11 # [linux] - - xorg-libxcb # [linux] - - expat # [linux] + - xorg-libxfixes # [linux] + - xorg-libx11 # [linux] + - xorg-libxcb # [linux] + - expat # [linux] + run: - - {{ cdt('xorg-x11-proto-devel') }} # [linux] - - {{ cdt('mesa-libgl-devel') }} # [linux] - - {{ cdt('mesa-dri-drivers') }} # [linux] - - {{ cdt('libselinux') }} # [linux] - - {{ cdt('libxdamage') }} # [linux] - - {{ cdt('libxxf86vm') }} # [linux] - - {{ cdt('libxfixes') }} # [linux] - - {{ cdt('libxext') }} # [linux] + - xorg-libxfixes # [linux] + - xorg-libx11 # [linux] + - xorg-libxcb # [linux] + - {{ cdt('mesa-libgl-devel') }} # [linux] + - {{ cdt('mesa-libegl-devel') }} # [linux] + - {{ cdt('mesa-dri-drivers') }} # [linux] + #- mesa-libgl # [linux] + #- mesa-libegl # [linux] + #- mesa-dri-drivers # [linux] - glfw >=3.3 - htslib >=1.12 @@ -70,6 +69,6 @@ about: extra: container: - extended-base: True + extended-base: True recipe-maintainers: - kcleal From 85a7f6c9623eb0a02299064c38fc795c2a081d89 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 7 Aug 2024 19:54:40 -0500 Subject: [PATCH 1117/1514] Update sigProfilerPlotting (#49886) --- recipes/sigprofilerplotting/meta.yaml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/recipes/sigprofilerplotting/meta.yaml b/recipes/sigprofilerplotting/meta.yaml index 26a637ebc5fb5..efe1357184a46 100644 --- a/recipes/sigprofilerplotting/meta.yaml +++ b/recipes/sigprofilerplotting/meta.yaml @@ -1,29 +1,29 @@ -{% set name = "SigProfilerPlotting" %} -{% set version = "1.3.23" %} +{% set name = "sigProfilerPlotting" %} +{% set version = "1.3.24" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/sigProfilerPlotting-{{ version }}.tar.gz - sha256: 867201902893dbca89444309229731b2294fdbf254dbd76ebd970ca36198b825 + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/sigprofilerplotting-{{ version }}.tar.gz + sha256: 99be52760ff9cac55d075035580d256a28e99e8dbd5a7c67f45f1451d4d8ffcd build: entry_points: - SigProfilerPlotting=sigProfilerPlotting.sigProfilerPlotting_CLI:main_function noarch: python - script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir number: 0 run_exports: - {{ pin_subpackage(name|lower, max_pin="x") }} requirements: host: - - python + - python >=3.7 - pip run: - - python + - python >=3.7 - matplotlib-base >=3.4.3 - pandas >=1.2.4,<2.0.0 - scikit-learn >=1.1.3 @@ -33,13 +33,13 @@ test: imports: - sigProfilerPlotting commands: - - pip check - SigProfilerPlotting plotSBS --help - requires: - - pip about: home: https://github.com/alexandrovlab/SigProfilerPlotting - summary: SigProfiler plotting tool + summary: "SigProfiler plotting tool." license: BSD-2-Clause + license_family: BSD license_file: LICENSE + dev_url: https://github.com/alexandrovlab/SigProfilerPlotting + doc_url: https://osf.io/2aj6t/wiki/home From 61032ca10143ed20fada57cecfcbec4229d9a1a6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 7 Aug 2024 20:54:47 -0400 Subject: [PATCH 1118/1514] Update sigprofilermatrixgenerator to 1.2.28 (#49881) * Update sigprofilermatrixgenerator to 1.2.28 * clean up recipe --------- Co-authored-by: mencian --- recipes/sigprofilermatrixgenerator/meta.yaml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/recipes/sigprofilermatrixgenerator/meta.yaml b/recipes/sigprofilermatrixgenerator/meta.yaml index feea8811d72e4..b1cb0a1741cbc 100644 --- a/recipes/sigprofilermatrixgenerator/meta.yaml +++ b/recipes/sigprofilermatrixgenerator/meta.yaml @@ -1,5 +1,5 @@ {% set name = "SigProfilerMatrixGenerator" %} -{% set version = "1.2.27" %} +{% set version = "1.2.28" %} package: name: {{ name|lower }} @@ -7,13 +7,13 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/SigProfilerMatrixGenerator-{{ version }}.tar.gz - sha256: c25d3e4c3de14b7a758da8c5a54e53d591899938e71234b1ea44d66c4eec744b + sha256: 4b909790ba1a284b4261b433839335868664da30f29ecf7c574f4ed969e673b9 build: entry_points: - SigProfilerMatrixGenerator=SigProfilerMatrixGenerator.scripts.SigProfilerMatrixGenerator_CLI:main_function noarch: python - script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir number: 0 run_exports: - {{ pin_subpackage(name|lower, max_pin="x") }} @@ -35,13 +35,12 @@ test: imports: - SigProfilerMatrixGenerator commands: - - pip check - SigProfilerMatrixGenerator install --help - requires: - - pip about: - home: https://github.com/AlexandrovLab/SigProfilerMatrixGenerator.git - summary: SigProfiler matrix generator tool + home: https://github.com/AlexandrovLab/SigProfilerMatrixGenerator + summary: "SigProfiler matrix generator tool." license: BSD-2-Clause + license_family: BSD license_file: LICENSE + dev_url: https://github.com/AlexandrovLab/SigProfilerMatrixGenerator From 0914a5baa04448099eb78a7f5ac8106e47aa92eb Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 7 Aug 2024 20:40:07 -0500 Subject: [PATCH 1119/1514] Update meme to 5.5.6 (#49887) --- recipes/meme/build.sh | 12 ++++-------- recipes/meme/meta.yaml | 18 +++++++++--------- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/recipes/meme/build.sh b/recipes/meme/build.sh index d421c84749228..7873b96820409 100644 --- a/recipes/meme/build.sh +++ b/recipes/meme/build.sh @@ -1,9 +1,6 @@ -#!/bin/bash -set -e +#!/bin/bash -ex -export MEME_ETC_DIR=${PREFIX}/etc -#HOME=/tmp cpanm CGI::Application -#HOME=/tmp cpanm XML::Parser::Expat --configure-args "EXPATLIBPATH=$PREFIX/lib" --configure-args "EXPATHINCPATH=$PREFIX/include" +export MEME_ETC_DIR="${PREFIX}/etc" autoreconf -i @@ -16,7 +13,7 @@ perl scripts/dependencies.pl --enable-build-libxml2 \ --enable-build-libxslt -make AM_CFLAGS='-DNAN="(0.0/0.0)"' -j4 +make AM_CFLAGS='-DNAN="(0.0/0.0)"' -j"${CPU_COUNT}" # tests will only work inside the build dir, but # https://github.com/conda/conda-build/issues/1453 @@ -35,6 +32,5 @@ if [ ${PY3K}==1 ]; then sed -i.bak '994s/dreme/dreme-py3/' ${PREFIX}/bin/meme-chip rm ${PREFIX}/bin/meme-chip.bak # Fix for dreme - cp scripts/*py3.py ${PREFIX}/lib/${PKG_NAME}-${PKG_VERSION}/python/ + cp -rf scripts/*py3.py ${PREFIX}/lib/${PKG_NAME}-${PKG_VERSION}/python/ fi - diff --git a/recipes/meme/meta.yaml b/recipes/meme/meta.yaml index 5e542248cf755..5e8ace3b3461a 100644 --- a/recipes/meme/meta.yaml +++ b/recipes/meme/meta.yaml @@ -1,6 +1,6 @@ {% set name = "MEME" %} -{% set version = "5.5.5" %} -{% set sha256 = "bebb4a176e72d62e3a2d5ba5f22439185bbc4bbf4769604fbca12dff8e1f739f" %} +{% set version = "5.5.6" %} +{% set sha256 = "8f719002c3a2177f6bb9da6861098ccf4f08b3006f002a88bb3afe9473596c67" %} package: name: {{ name|lower }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 detect_binary_files_with_prefix: True run_exports: - {{ pin_subpackage("meme", max_pin="x") }} @@ -25,7 +25,8 @@ requirements: - libtool host: - nodejs >=16.4.1 - - openmpi + - libgomp # [linux] + - llvm-openmp # [osx] - yaml - icu >=72.1,<73.0a0 - ghostscript @@ -74,15 +75,14 @@ test: - dreme -version about: - home: https://meme-suite.org + home: "https://meme-suite.org" license: Custom license_file: COPYING - summary: Motif-based sequence analysis tools + summary: "Motif-based sequence analysis tools." + doc_url: "https://meme-suite.org/meme/doc/overview.html" extra: - container: - # openmpi needs ssh/rsh - extended-base: true identifiers: - biotools:meme_suite - usegalaxy-eu:meme_dreme + - doi:10.1093/nar/gkv416 From 8334efeefb1eab1fc20e2527d09e29077cf99704 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 7 Aug 2024 20:42:16 -0500 Subject: [PATCH 1120/1514] yak: add aarch64/arm64 build (#49796) * yak: add aarch64/arm64 build * edit build.sh * edit build.sh * edit build.sh --- recipes/yak/build.sh | 14 +- recipes/yak/meta.yaml | 21 +- recipes/yak/yak.patch | 760 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 786 insertions(+), 9 deletions(-) create mode 100644 recipes/yak/yak.patch diff --git a/recipes/yak/build.sh b/recipes/yak/build.sh index c5001f0f716ee..f5b7e2bdc2652 100644 --- a/recipes/yak/build.sh +++ b/recipes/yak/build.sh @@ -1,6 +1,12 @@ -#!/bin/bash +#!/bin/bash -ex -mkdir -p $PREFIX/bin +mkdir -p ${PREFIX}/bin -make INCLUDES="-I$PREFIX/include" CFLAGS="-g -Wall -O2 -L$PREFIX/lib" -cp yak $PREFIX/bin +#install_name_tool error fix +if [[ "$(uname)" == Darwin ]]; then + export LDFLAGS="${LDFLAGS} -Wl,-rpath,${PREFIX}/lib -headerpad_max_install_names" +fi + +make INCLUDES="-I${PREFIX}/include" CFLAGS="${CFLAGS} -g -Wall -O3 -L${PREFIX}/lib" +cp -rf yak ${PREFIX}/bin +chmod 755 ${PREFIX}/bin/yak diff --git a/recipes/yak/meta.yaml b/recipes/yak/meta.yaml index a4147c53a2141..f44283997a96a 100644 --- a/recipes/yak/meta.yaml +++ b/recipes/yak/meta.yaml @@ -7,9 +7,13 @@ package: source: url: https://github.com/lh3/yak/archive/v{{ version }}.tar.gz sha256: a4237af25005eb8e7e721519c62d6bbcf203bf0a572506af63c3f6ecb6b11836 + patches: + - yak.patch build: - number: 4 + number: 5 + run_exports: + - {{ pin_subpackage('yak', max_pin="x.x") }} requirements: build: @@ -17,14 +21,21 @@ requirements: - {{ compiler('c') }} host: - zlib - run: - - zlib test: commands: - yak 2>&1 | grep 'Usage' about: - home: https://github.com/lh3/yak + home: "https://github.com/lh3/yak" license: MIT - summary: 'Yet another k-mer analyzer' + license_family: MIT + license_file: LICENSE.txt + summary: 'Yet another k-mer analyzer.' + dev_url: "https://github.com/lh3/yak" + doc_url: "https://github.com/lh3/yak/blob/v{{ version }}/README.md" + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 diff --git a/recipes/yak/yak.patch b/recipes/yak/yak.patch new file mode 100644 index 0000000000000..6343f0d11db87 --- /dev/null +++ b/recipes/yak/yak.patch @@ -0,0 +1,760 @@ +diff --git a/LICENSE.txt b/LICENSE.txt +new file mode 100644 +index 0000000..d7ac24e +--- /dev/null ++++ b/LICENSE.txt +@@ -0,0 +1,23 @@ ++The MIT License ++ ++Copyright (c) 2019- Dana-Farber Cancer Institute ++ ++Permission is hereby granted, free of charge, to any person obtaining ++a copy of this software and associated documentation files (the ++"Software"), to deal in the Software without restriction, including ++without limitation the rights to use, copy, modify, merge, publish, ++distribute, sublicense, and/or sell copies of the Software, and to ++permit persons to whom the Software is furnished to do so, subject to ++the following conditions: ++ ++The above copyright notice and this permission notice shall be ++included in all copies or substantial portions of the Software. ++ ++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS ++BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ++ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN ++CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++SOFTWARE. +diff --git a/Makefile b/Makefile +index 41c92f7..540b080 100644 +--- a/Makefile ++++ b/Makefile +@@ -2,7 +2,7 @@ CFLAGS= -g -Wall -O2 + CPPFLAGS= + INCLUDES= + OBJS= kthread.o bbf.o htab.o bseq.o misc.o sys.o 6gjdn.o \ +- count.o qv.o triobin.o trioeval.o inspect.o ++ count.o qv.o triobin.o trioeval.o inspect.o chkerr.o sexchr.o + PROG= yak + LIBS= -lm -lz -lpthread + +@@ -32,6 +32,7 @@ depend: + + bbf.o: yak.h + bseq.o: bseq.h kseq.h ++chkerr.o: kthread.h ketopt.h bseq.h yak-priv.h yak.h + count.o: kthread.h yak-priv.h yak.h kseq.h + htab.o: kthread.h yak-priv.h yak.h khashl.h + inspect.o: ketopt.h yak-priv.h yak.h +@@ -39,6 +40,7 @@ kthread.o: kthread.h + main.o: ketopt.h yak-priv.h yak.h + misc.o: yak-priv.h yak.h + qv.o: kthread.h yak-priv.h yak.h bseq.h ++sexchr.o: kthread.h ketopt.h bseq.h yak-priv.h yak.h + sys.o: yak-priv.h yak.h + triobin.o: kthread.h ketopt.h bseq.h yak-priv.h yak.h + trioeval.o: kthread.h ketopt.h bseq.h yak-priv.h yak.h +diff --git a/README.md b/README.md +index a467de7..f0c3c99 100644 +--- a/README.md ++++ b/README.md +@@ -26,8 +26,12 @@ cd yak && make + + # print k-mer histogram + ./yak inspect sr.yak > sr.hist +-# print k-mers (warning: large output) +-./yak inspect -p sr.yak > sr.kmers ++ ++# partition chrX/Y in human de novo assembly ++wget -O- 'https://zenodo.org/record/7882299/files/human-chrXY-yak.tar?download=1' | tar tf - ++./yak sexchr -K2g -t16 chrY-no-par.yak chrX-no-par.yak par.yak hap1.fa hap2.fa > cnt.txt ++./groupxy.pl cnt.txt|awk '$4==1'|cut -f2|seqtk subseq -l80 <(cat hap1.fa hap2.fa) - > new-hap1.fa ++./groupxy.pl cnt.txt|awk '$4==2'|cut -f2|seqtk subseq -l80 <(cat hap1.fa hap2.fa) - > new-hap2.fa + ``` + + ## Introduction +diff --git a/chkerr.c b/chkerr.c +new file mode 100644 +index 0000000..ed777f0 +--- /dev/null ++++ b/chkerr.c +@@ -0,0 +1,133 @@ ++#include ++#include ++#include ++#include "kthread.h" ++#include "ketopt.h" ++#include "bseq.h" ++#include "yak-priv.h" ++ ++typedef struct { ++ int k, n_threads, min_cnt, min_streak; ++ int64_t chunk_size; ++ bseq_file_t *fp; ++ const yak_ch_t *ch; ++} ce_shared_t; ++ ++typedef struct { ++ int n_seq; ++ ce_shared_t *aux; ++ bseq1_t *seq; ++} ce_step_t; ++ ++static void te_worker(void *_data, long k, int tid) ++{ ++ ce_step_t *t = (ce_step_t*)_data; ++ ce_shared_t *aux = t->aux; ++ bseq1_t *s = &t->seq[k]; ++ uint64_t x[4], mask; ++ int i, l, last, streak, shift; ++ if (aux->ch->k < 32) { ++ mask = (1ULL<<2*aux->ch->k) - 1; ++ shift = 2 * (aux->ch->k - 1); ++ } else { ++ mask = (1ULL<ch->k) - 1; ++ shift = aux->ch->k - 1; ++ } ++ last = -1, streak = 0; ++ for (i = l = 0, x[0] = x[1] = x[2] = x[3] = 0; i < s->l_seq; ++i) { ++ int cnt, c = seq_nt4_table[(uint8_t)s->seq[i]]; ++ if (c < 4) { ++ if (aux->ch->k < 32) { ++ x[0] = (x[0] << 2 | c) & mask; ++ x[1] = x[1] >> 2 | (uint64_t)(3 - c) << shift; ++ } else { ++ x[0] = (x[0] << 1 | (c&1)) & mask; ++ x[1] = (x[1] << 1 | (c>>1)) & mask; ++ x[2] = x[2] >> 1 | (uint64_t)(1 - (c&1)) << shift; ++ x[3] = x[3] >> 1 | (uint64_t)(1 - (c>>1)) << shift; ++ } ++ if (++l >= aux->k) { ++ uint64_t y; ++ if (aux->ch->k < 32) ++ y = yak_hash64(x[0] < x[1]? x[0] : x[1], mask); ++ else ++ y = yak_hash_long(x); ++ cnt = yak_ch_get(aux->ch, y); ++ if (cnt < aux->min_cnt) { ++ if (i != last + 1) { ++ if (streak > aux->min_streak) ++ printf("%s\t%d\t%d\t%d\n", s->name, last + 1 - aux->k - (streak - 1), last + 1, streak); ++ streak = 1; ++ } else ++streak; ++ last = i; ++ } ++ } ++ } else l = 0, x[0] = x[1] = x[2] = x[3] = 0; ++ } ++ if (streak > aux->min_streak) ++ printf("%s\t%d\t%d\t%d\n", s->name, last + 1 - aux->k - (streak - 1), last + 1, streak); ++} ++ ++static void *ce_pipeline(void *shared, int step, void *_data) ++{ ++ ce_shared_t *aux = (ce_shared_t*)shared; ++ if (step == 0) { ++ ce_step_t *s; ++ s = (ce_step_t*)calloc(1, sizeof(ce_step_t)); ++ s->seq = bseq_read(aux->fp, aux->chunk_size, 0, &s->n_seq); ++ s->aux = aux; ++ if (s->n_seq) { ++ fprintf(stderr, "[M::%s] read %d sequences\n", __func__, s->n_seq); ++ return s; ++ } else free(s); ++ } else if (step == 1) { ++ int i; ++ ce_step_t *s = (ce_step_t*)_data; ++ kt_for(aux->n_threads, te_worker, s, s->n_seq); ++ for (i = 0; i < s->n_seq; ++i) { ++ free(s->seq[i].name); free(s->seq[i].seq); free(s->seq[i].qual); ++ free(s->seq[i].comment); ++ } ++ free(s->seq); free(s); ++ } ++ return 0; ++} ++ ++int main_chkerr(int argc, char *argv[]) ++{ ++ ketopt_t o = KETOPT_INIT; ++ int c; ++ yak_ch_t *ch; ++ ce_shared_t aux; ++ ++ memset(&aux, 0, sizeof(ce_shared_t)); ++ aux.chunk_size = 1000000000; ++ aux.n_threads = 8, aux.min_cnt = 3, aux.min_streak = 5; ++ while ((c = ketopt(&o, argc, argv, 1, "t:c:s:", 0)) >= 0) { ++ if (c == 't') aux.n_threads = atoi(o.arg); ++ else if (c == 'c') aux.min_cnt = atoi(o.arg); ++ else if (c == 's') aux.min_streak = atoi(o.arg); ++ } ++ if (argc - o.ind < 2) { ++ fprintf(stderr, "Usage: yak chkerr [options] \n"); ++ fprintf(stderr, "Options:\n"); ++ fprintf(stderr, " -t INT number of threads [%d]\n", aux.n_threads); ++ fprintf(stderr, " -c INT min k-mer count [%d]\n", aux.min_cnt); ++ fprintf(stderr, " -s INT min k-mer streak [%d]\n", aux.min_streak); ++ return 1; ++ } ++ ++ ch = yak_ch_restore(argv[o.ind]); ++ ++ aux.k = ch->k; ++ aux.fp = bseq_open(argv[o.ind+1]); ++ if (aux.fp == 0) { ++ fprintf(stderr, "ERROR: fail to open file '%s'\n", argv[o.ind+1]); ++ exit(1); ++ } ++ aux.ch = ch; ++ kt_pipeline(2, ce_pipeline, &aux, 2); ++ bseq_close(aux.fp); ++ yak_ch_destroy(ch); ++ return 0; ++} +diff --git a/groupxy.pl b/groupxy.pl +new file mode 100755 +index 0000000..55a41f9 +--- /dev/null ++++ b/groupxy.pl +@@ -0,0 +1,48 @@ ++#!/usr/bin/perl ++ ++use strict; ++use warnings; ++use Getopt::Std; ++ ++my %opts = (s=>.7, c=>.3, r=>.9); ++getopts('s:c:r:', \%opts); ++die("Usage: sexchr.pl [-s $opts{s}] [-c $opts{c}] [-r $opts{r}] in.sexchr\n") if @ARGV == 0; ++ ++# read data ++my @a = (); ++while (<>) { ++ chomp; ++ my @t = split("\t"); ++ next if $t[0] ne 'S'; ++ push(@a, \@t); ++} ++ ++# assign sex chromosome for individual contigs ++my @c = (0, 0, 0, 0); ++for (@a) { ++ next if $_->[5] < $_->[4] * $opts{s}; ++ next if $_->[6] + $_->[7] < $_->[5] * $opts{c}; ++ $_->[3] = $_->[6] > ($_->[6] + $_->[7]) * $opts{r}? 3 : $_->[7] > ($_->[6] + $_->[7]) * $opts{r}? 4 : 0; ++ next if $_->[3] == 0; ++ my $hap = $_->[2] - 1; ++ $c[$hap<<1|0] += $_->[6]; ++ $c[$hap<<1|1] += $_->[7]; ++} ++ ++# determine which partition correspond to sexchr1 or sexchr2 ++my $max_chr = $c[0] + $c[2] > $c[1] + $c[3]? 0 : 1; ++my $type = ($c[0<<1|$max_chr] > $c[1<<1|$max_chr]? 0 : 1) ^ $max_chr; ++ ++# update partition ++for (@a) { ++ if ($_->[3] >= 3) { ++ $_->[3] -= 2; ++ } else { ++ $_->[3] = $type == 0? $_->[2] : 3 - $_->[2]; ++ } ++} ++ ++# print out ++for (@a) { ++ print join("\t", @$_), "\n"; ++} +diff --git a/htab.c b/htab.c +index 5075e54..1112816 100644 +--- a/htab.c ++++ b/htab.c +@@ -228,6 +228,10 @@ yak_ch_t *yak_ch_restore_core(yak_ch_t *ch0, const char *fn, int mode, ...) + mid_cnt = va_arg(ap, int); + if (ch0 == 0 && mode == YAK_LOAD_TRIOBIN2) + mode_err = 1; ++ } else if (mode == YAK_LOAD_SEXCHR1 || mode == YAK_LOAD_SEXCHR2 || mode == YAK_LOAD_SEXCHR3) { ++ assert(YAK_COUNTER_BITS >= 3); ++ if (ch0 == 0 && (mode == YAK_LOAD_SEXCHR2 || mode == YAK_LOAD_SEXCHR3)) ++ mode_err = 1; + } else mode_err = 1; + va_end(ap); + if (mode_err) return 0; +@@ -251,7 +255,7 @@ yak_ch_t *yak_ch_restore_core(yak_ch_t *ch0, const char *fn, int mode, ...) + for (i = 0; i < 1<pre; ++i) { + yak_ht_t *h = ch->h[i].h; + fread(t, 4, 2, fp); +- if (ch0 == 0) yak_ht_resize(h, t[0]); ++ yak_ht_resize(h, t[0]); + for (j = 0; j < t[1]; ++j) { + uint64_t key; + fread(&key, 8, 1, fp); +@@ -272,6 +276,14 @@ yak_ch_t *yak_ch_restore_core(yak_ch_t *ch0, const char *fn, int mode, ...) + if (absent) ++n_new; + else kh_key(h, k) = kh_key(h, k) | x; + } ++ } else if (mode == YAK_LOAD_SEXCHR1 || mode == YAK_LOAD_SEXCHR2 || mode == YAK_LOAD_SEXCHR3) { ++ int shift = mode == YAK_LOAD_SEXCHR1? 0 : mode == YAK_LOAD_SEXCHR2? 1 : 2, x = 1<= 0) { + if (c == 'k') opt.k = atoi(o.arg); + else if (c == 'p') opt.pre = atoi(o.arg); +- else if (c == 'K') opt.chunk_size = atoi(o.arg); ++ else if (c == 'K') opt.chunk_size = mm_parse_num(o.arg); + else if (c == 't') opt.n_thread = atoi(o.arg); + else if (c == 'b') opt.bf_shift = atoi(o.arg); + else if (c == 'H') opt.bf_n_hash = mm_parse_num(o.arg); +@@ -84,12 +73,13 @@ int main_qv(int argc, char *argv[]) + yak_qstat_t qs; + + yak_qopt_init(&opt); +- while ((c = ketopt(&o, argc, argv, 1, "K:t:l:f:pe:", 0)) >= 0) { ++ while ((c = ketopt(&o, argc, argv, 1, "K:t:l:f:pe:E", 0)) >= 0) { + if (c == 'K') opt.chunk_size = mm_parse_num(o.arg); + else if (c == 'l') opt.min_len = mm_parse_num(o.arg); + else if (c == 'f') opt.min_frac = atof(o.arg); + else if (c == 't') opt.n_threads = atoi(o.arg); + else if (c == 'p') opt.print_each = 1; ++ else if (c == 'E') opt.print_err_kmer = 1; + else if (c == 'e') opt.fpr = atof(o.arg); + } + if (argc - o.ind < 2) { +@@ -99,6 +89,7 @@ int main_qv(int argc, char *argv[]) + fprintf(stderr, " -f FLOAT min k-mer fraction [%g]\n", opt.min_frac); + fprintf(stderr, " -e FLOAT false positive rate [%g]\n", opt.fpr); + fprintf(stderr, " -p print QV for each sequence\n"); ++ fprintf(stderr, " -E print the positions of wrong k-mers\n"); + fprintf(stderr, " -t INT number of threads [%d]\n", opt.n_threads); + fprintf(stderr, " -K NUM batch size [1g]\n"); + return 1; +@@ -131,6 +122,8 @@ int main(int argc, char *argv[]) + extern int main_triobin(int argc, char *argv[]); + extern int main_trioeval(int argc, char *argv[]); + extern int main_inspect(int argc, char *argv[]); ++ extern int main_chkerr(int argc, char *argv[]); ++ extern int main_sexchr(int argc, char *argv[]); + int ret = 0, i; + yak_reset_realtime(); + if (argc == 1) { +@@ -141,6 +134,8 @@ int main(int argc, char *argv[]) + fprintf(stderr, " triobin trio binning\n"); + fprintf(stderr, " trioeval evaluate phasing accuracy with trio\n"); + fprintf(stderr, " inspect k-mer hash tables\n"); ++ fprintf(stderr, " chkerr check errors\n"); ++ fprintf(stderr, " sexchr count sex-chromosome-specific k-mers\n"); + fprintf(stderr, " version print version number\n"); + return 1; + } +@@ -149,6 +144,8 @@ int main(int argc, char *argv[]) + else if (strcmp(argv[1], "triobin") == 0) ret = main_triobin(argc-1, argv+1); + else if (strcmp(argv[1], "trioeval") == 0) ret = main_trioeval(argc-1, argv+1); + else if (strcmp(argv[1], "inspect") == 0) ret = main_inspect(argc-1, argv+1); ++ else if (strcmp(argv[1], "chkerr") == 0) ret = main_chkerr(argc-1, argv+1); ++ else if (strcmp(argv[1], "sexchr") == 0) ret = main_sexchr(argc-1, argv+1); + else if (strcmp(argv[1], "version") == 0) { + puts(YAKS_VERSION); + return 0; +diff --git a/qv.c b/qv.c +index 6fdf73b..12e25a0 100644 +--- a/qv.c ++++ b/qv.c +@@ -59,6 +59,9 @@ static void worker_qv(void *_data, long k, int tid) + t = yak_ch_get(qs->ch, y); + if (t < 0) t = 0; + if (t > 0) ++non0; ++ else if (qs->opt->print_err_kmer) { ++ printf("EK\t%s\t%d\n", s->name, i + 1 - qs->k); ++ } + b->s[tot++] = (uint64_t)i<<32 | t; + } + } else l = 0, x[0] = x[1] = 0; +@@ -229,8 +232,13 @@ int yak_qv_solve(const int64_t *hist, const int64_t *cnt, int kmer, double fpr, + // compute adjusted qv + for (c = 0, adj_sum = 0.0; c < n_cnt; ++c) + adj_sum += qs->adj_cnt[c]; +- assert(adj_sum <= (double)qs->tot); +- qs->err = qs->tot - adj_sum; +- qs->qv = -4.3429448190325175 * log(log(qs->tot / adj_sum) / kmer); ++ if (adj_sum <= (double)qs->tot) { ++ qs->err = qs->tot - adj_sum; ++ qs->qv = -4.3429448190325175 * log(log(qs->tot / adj_sum) / kmer); ++ } else { ++ fprintf(stderr, "WARNING: failed to estimate the calibrated QV\n"); ++ qs->err = 0; ++ qs->qv = qs->qv_raw; ++ } + return 0; + } +diff --git a/sexchr.c b/sexchr.c +new file mode 100644 +index 0000000..acf80e9 +--- /dev/null ++++ b/sexchr.c +@@ -0,0 +1,140 @@ ++#include ++#include ++#include ++#include "kthread.h" ++#include "ketopt.h" ++#include "bseq.h" ++#include "yak-priv.h" ++ ++#ifndef kroundup32 ++#define kroundup32(x) (--(x), (x)|=(x)>>1, (x)|=(x)>>2, (x)|=(x)>>4, (x)|=(x)>>8, (x)|=(x)>>16, ++(x)) ++#endif ++ ++static long sc_chunk_size = 1000000000L; ++ ++typedef struct { ++ int k, n_threads, hap; ++ bseq_file_t *fp; ++ const yak_ch_t *ch; ++ uint32_t m_info, n_info; ++} sc_shared_t; ++ ++typedef struct { ++ int n_seq; ++ sc_shared_t *aux; ++ bseq1_t *seq; ++} sc_step_t; ++ ++static void sc_worker(void *_data, long k, int tid) ++{ ++ sc_step_t *t = (sc_step_t*)_data; ++ sc_shared_t *aux = t->aux; ++ bseq1_t *s = &t->seq[k]; ++ uint64_t x[4], mask; ++ long n_k = 0, n_sexchr = 0, n_sex1 = 0, n_sex2 = 0; ++ int i, l, shift; ++ if (aux->ch->k < 32) { ++ mask = (1ULL<<2*aux->ch->k) - 1; ++ shift = 2 * (aux->ch->k - 1); ++ } else { ++ mask = (1ULL<ch->k) - 1; ++ shift = aux->ch->k - 1; ++ } ++ for (i = l = 0, x[0] = x[1] = x[2] = x[3] = 0; i < s->l_seq; ++i) { ++ int flag, c = seq_nt4_table[(uint8_t)s->seq[i]]; ++ if (c < 4) { ++ if (aux->ch->k < 32) { ++ x[0] = (x[0] << 2 | c) & mask; ++ x[1] = x[1] >> 2 | (uint64_t)(3 - c) << shift; ++ } else { ++ x[0] = (x[0] << 1 | (c&1)) & mask; ++ x[1] = (x[1] << 1 | (c>>1)) & mask; ++ x[2] = x[2] >> 1 | (uint64_t)(1 - (c&1)) << shift; ++ x[3] = x[3] >> 1 | (uint64_t)(1 - (c>>1)) << shift; ++ } ++ if (++l >= aux->k) { ++ uint64_t y; ++ if (aux->ch->k < 32) ++ y = yak_hash64(x[0] < x[1]? x[0] : x[1], mask); ++ else ++ y = yak_hash_long(x); ++ ++n_k; ++ flag = yak_ch_get(aux->ch, y); ++ if (flag > 0) { ++ ++n_sexchr; ++ if (flag == 1) ++n_sex1; ++ if (flag == 2) ++n_sex2; ++ } ++ } ++ } else l = 0, x[0] = x[1] = x[2] = x[3] = 0; ++ } ++ printf("S\t%s\t%d\t0\t%ld\t%ld\t%ld\t%ld\n", s->name, aux->hap, n_k, n_sexchr, n_sex1, n_sex2); ++} ++ ++static void *sc_pipeline(void *shared, int step, void *_data) ++{ ++ sc_shared_t *aux = (sc_shared_t*)shared; ++ if (step == 0) { ++ sc_step_t *s; ++ s = (sc_step_t*)calloc(1, sizeof(sc_step_t)); ++ s->seq = bseq_read(aux->fp, sc_chunk_size, 0, &s->n_seq); ++ s->aux = aux; ++ if (s->n_seq) { ++ fprintf(stderr, "[M::%s] read %d sequences\n", __func__, s->n_seq); ++ return s; ++ } else free(s); ++ } else if (step == 1) { ++ int i; ++ sc_step_t *s = (sc_step_t*)_data; ++ kt_for(aux->n_threads, sc_worker, s, s->n_seq); ++ for (i = 0; i < s->n_seq; ++i) { ++ free(s->seq[i].name); free(s->seq[i].seq); free(s->seq[i].qual); free(s->seq[i].comment); ++ } ++ free(s->seq); free(s); ++ } ++ return 0; ++} ++ ++int main_sexchr(int argc, char *argv[]) ++{ ++ ketopt_t o = KETOPT_INIT; ++ int i, c; ++ yak_ch_t *ch; ++ sc_shared_t aux; ++ ++ memset(&aux, 0, sizeof(sc_shared_t)); ++ aux.n_threads = 8; ++ while ((c = ketopt(&o, argc, argv, 1, "t:K:", 0)) >= 0) { ++ if (c == 't') aux.n_threads = atoi(o.arg); ++ else if (c == 'K') sc_chunk_size = mm_parse_num(o.arg); ++ } ++ if (argc - o.ind < 5) { ++ fprintf(stderr, "Usage: yak sexchr [options] \n"); ++ fprintf(stderr, "Options:\n"); ++ fprintf(stderr, " -t INT number of threads [%d]\n", aux.n_threads); ++ fprintf(stderr, " -K NUM chunk size [1g]\n"); ++ return 1; ++ } ++ ++ ch = yak_ch_restore_core(0, argv[o.ind], YAK_LOAD_SEXCHR1); ++ ch = yak_ch_restore_core(ch, argv[o.ind + 1], YAK_LOAD_SEXCHR2); ++ ch = yak_ch_restore_core(ch, argv[o.ind + 2], YAK_LOAD_SEXCHR3); ++ ++ printf("C\tS seqName originalHap 0 #k-mer #sexchr #sex1-specifc #sex2-specific\n"); ++ printf("C\n"); ++ ++ aux.k = ch->k; ++ aux.ch = ch; ++ for (i = 1; i <= 2; ++i) { ++ aux.hap = i; ++ aux.fp = bseq_open(argv[o.ind+i+2]); ++ if (aux.fp == 0) { ++ fprintf(stderr, "ERROR: fail to open file '%s'\n", argv[o.ind+i+2]); ++ exit(1); ++ } ++ kt_pipeline(2, sc_pipeline, &aux, 2); ++ bseq_close(aux.fp); ++ } ++ yak_ch_destroy(ch); ++ return 0; ++} +diff --git a/trioeval.c b/trioeval.c +index 02c6622..dbdde34 100644 +--- a/trioeval.c ++++ b/trioeval.c +@@ -10,7 +10,7 @@ + #define kroundup32(x) (--(x), (x)|=(x)>>1, (x)|=(x)>>2, (x)|=(x)>>4, (x)|=(x)>>8, (x)|=(x)>>16, ++(x)) + #endif + +-#define CHUNK_SIZE 200000000 ++#define CHUNK_SIZE 1000000000 + + typedef struct { + int nk, c[4], d[2]; +@@ -22,11 +22,12 @@ typedef struct { + } te_buf_t; + + typedef struct { +- int k, n_threads, min_n; ++ int k, n_threads, min_n, print_err, print_frag; + bseq_file_t *fp; + const yak_ch_t *ch; + te_buf_t *buf; + int64_t n_pair, n_site, n_switch, n_err; ++ int64_t n_par[2]; + } te_shared_t; + + typedef struct { +@@ -44,6 +45,7 @@ static void te_worker(void *_data, long k, int tid) + te_buf_t *b = &aux->buf[tid]; + uint64_t x[4], mask; + int i, l, shift, last; ++ int f_st, f_en, f_type, f_cnt; + if (aux->ch->k < 32) { + mask = (1ULL<<2*aux->ch->k) - 1; + shift = 2 * (aux->ch->k - 1); +@@ -86,20 +88,32 @@ static void te_worker(void *_data, long k, int tid) + } + } else l = 0, x[0] = x[1] = x[2] = x[3] = 0; + } ++ f_type = f_st = f_en = f_cnt = 0; + for (l = 0, i = 1, last = 0; i <= s->l_seq; ++i) { +- if (i == s->l_seq || b->s[i] != b->s[l]) { ++ if (i == s->l_seq || b->s[i] != b->s[l]) { // found a streak + if (b->s[l] > 0 && i - l >= aux->min_n) { // skip singletons + int n = (i - l + aux->k - 1) / aux->k; + int c = b->s[l] - 1; + t->cnt[k].c[c << 1 | c] += n - 1; + t->cnt[k].d[c] += n; +- if (last > 0) ++ if (last > 0) { + ++t->cnt[k].c[(last - 1) << 1 | c]; ++ if (aux->print_err && last - 1 != c) ++ printf("E\t%s\t%d\t%d\t%d\n", s->name, i, last, c+1); ++ } ++ if (f_type != b->s[l]) { ++ if (f_type > 0 && aux->print_frag) ++ printf("F\t%s\t%d\t%d\t%d\t%d\n", s->name, f_type, f_st, f_en, f_cnt); ++ f_type = b->s[l], f_st = l + 1 - aux->ch->k, f_cnt = 0; ++ } ++ ++f_cnt, f_en = i + 1; + last = b->s[l]; + } + l = i; + } + } ++ if (f_type > 0 && aux->print_frag) ++ printf("F\t%s\t%d\t%d\t%d\t%d\n", s->name, f_type, f_st, f_en, f_cnt); + } + + static void *te_pipeline(void *shared, int step, void *_data) +@@ -121,13 +135,15 @@ static void *te_pipeline(void *shared, int step, void *_data) + kt_for(aux->n_threads, te_worker, s, s->n_seq); + for (i = 0; i < s->n_seq; ++i) { + int *c = s->cnt[i].c, *d = s->cnt[i].d; ++ aux->n_par[0] += d[0]; ++ aux->n_par[1] += d[1]; + if (d[0] + d[1] >= 2) { + aux->n_pair += c[0] + c[1] + c[2] + c[3]; + aux->n_switch += c[1] + c[2]; + aux->n_site += d[0] + d[1]; + aux->n_err += d[0] < d[1]? d[0] : d[1]; + } +- printf("S\t%s\t%d\t%d\t%d\t%d\t%d\t%d\n", s->seq[i].name, d[0], d[1], c[0], c[1], c[2], c[3]); ++ printf("S\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n", s->seq[i].name, d[0], d[1], c[0], c[1], c[2], c[3], s->seq[i].l_seq); + free(s->seq[i].name); free(s->seq[i].seq); free(s->seq[i].qual); free(s->seq[i].comment); + } + free(s->seq); free(s->cnt); free(s); +@@ -144,12 +160,14 @@ int main_trioeval(int argc, char *argv[]) + te_shared_t aux; + + memset(&aux, 0, sizeof(te_shared_t)); +- aux.n_threads = 8, aux.min_n = 2; +- while ((c = ketopt(&o, argc, argv, 1, "c:d:t:n:", 0)) >= 0) { ++ aux.n_threads = 8, aux.min_n = 2, aux.print_frag = 1; ++ while ((c = ketopt(&o, argc, argv, 1, "c:d:t:n:eF", 0)) >= 0) { + if (c == 'c') min_cnt = atoi(o.arg); + else if (c == 'd') mid_cnt = atoi(o.arg); + else if (c == 't') aux.n_threads = atoi(o.arg); + else if (c == 'n') aux.min_n = atoi(o.arg); ++ else if (c == 'e') aux.print_err = 1; ++ else if (c == 'F') aux.print_frag = 0; + } + if (argc - o.ind < 2) { + fprintf(stderr, "Usage: yak trioeval [options] \n"); +@@ -158,6 +176,7 @@ int main_trioeval(int argc, char *argv[]) + fprintf(stderr, " -d INT mid occurrence [%d]\n", mid_cnt); + fprintf(stderr, " -n INT min streak [%d]\n", aux.min_n); + fprintf(stderr, " -t INT number of threads [%d]\n", aux.n_threads); ++ fprintf(stderr, " -e print error positions (out of order)\n"); + return 1; + } + +@@ -173,6 +192,12 @@ int main_trioeval(int argc, char *argv[]) + fprintf(stderr, "ERROR: fail to open file '%s'\n", argv[o.ind+2]); + exit(1); + } ++ printf("C\tS seqName #patKmer #matKmer #pat-pat #pat-mat #mat-pat #mat-mat seqLen\n"); ++ printf("C\tF seqName type startPos endPos count\n"); ++ printf("C\tW #switchErr denominator switchErrRate\n"); ++ printf("C\tH #hammingErr denominator hammingErrRate\n"); ++ printf("C\tN #totPatKmer #totMatKmer errRate\n"); ++ printf("C\n"); + aux.ch = ch; + aux.buf = (te_buf_t*)calloc(aux.n_threads, sizeof(te_buf_t)); + kt_pipeline(2, te_pipeline, &aux, 2); +@@ -181,6 +206,7 @@ int main_trioeval(int argc, char *argv[]) + for (i = 0; i < aux.n_threads; ++i) free(aux.buf[i].s); + printf("W\t%ld\t%ld\t%.6f\n", (long)aux.n_switch, (long)aux.n_pair, (double)aux.n_switch/aux.n_pair); + printf("H\t%ld\t%ld\t%.6f\n", (long)aux.n_err, (long)aux.n_site, (double)aux.n_err/aux.n_site); ++ printf("N\t%ld\t%ld\t%.6f\n", (long)aux.n_par[0], (long)aux.n_par[1], (double)(aux.n_par[0] < aux.n_par[1]? aux.n_par[0] : aux.n_par[1]) / (aux.n_par[0] + aux.n_par[1])); + free(aux.buf); + return 0; + } +diff --git a/yak-priv.h b/yak-priv.h +index f6a3af7..ee7569b 100644 +--- a/yak-priv.h ++++ b/yak-priv.h +@@ -1,6 +1,7 @@ + #ifndef YAK_PRIV_H + #define YAK_PRIV_H + ++#include + #include "yak.h" + + #define CALLOC(ptr, len) ((ptr) = (__typeof__(ptr))calloc((len), sizeof(*(ptr)))) +@@ -42,4 +43,15 @@ void yak_reset_realtime(void); + double yak_realtime(void); + long yak_peakrss(void); + ++static inline int64_t mm_parse_num(const char *str) ++{ ++ double x; ++ char *p; ++ x = strtod(str, &p); ++ if (*p == 'G' || *p == 'g') x *= 1e9; ++ else if (*p == 'M' || *p == 'm') x *= 1e6; ++ else if (*p == 'K' || *p == 'k') x *= 1e3; ++ return (int64_t)(x + .499); ++} ++ + #endif +diff --git a/yak.h b/yak.h +index e71dacc..ab3d8ed 100644 +--- a/yak.h ++++ b/yak.h +@@ -1,7 +1,7 @@ + #ifndef YAK_H + #define YAK_H + +-#define YAKS_VERSION "0.1-r56" ++#define YAKS_VERSION "0.1-r69-dirty" + + #include + +@@ -16,6 +16,9 @@ + #define YAK_LOAD_ALL 1 + #define YAK_LOAD_TRIOBIN1 2 + #define YAK_LOAD_TRIOBIN2 3 ++#define YAK_LOAD_SEXCHR1 4 ++#define YAK_LOAD_SEXCHR2 5 ++#define YAK_LOAD_SEXCHR3 6 + + #define YAK_MAGIC "YAK\2" + +@@ -28,7 +31,7 @@ typedef struct { + } yak_copt_t; + + typedef struct { +- int32_t print_each; ++ int32_t print_each, print_err_kmer; + int32_t min_len; + int32_t n_threads; + double min_frac; From 4b3a8972d1ddf897f97959fa5832cf57fff425c3 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 7 Aug 2024 22:04:33 -0500 Subject: [PATCH 1121/1514] Add recipe for cytotrace2-python v0.0.1 (#49888) * Add recipe for cytotrace2-python v0.0.1 * add license_file * edit license --- recipes/cytotrace2-python/meta.yaml | 55 +++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 recipes/cytotrace2-python/meta.yaml diff --git a/recipes/cytotrace2-python/meta.yaml b/recipes/cytotrace2-python/meta.yaml new file mode 100644 index 0000000000000..a0e51187a6d66 --- /dev/null +++ b/recipes/cytotrace2-python/meta.yaml @@ -0,0 +1,55 @@ +{% set name = "cytotrace2-python" %} +{% set version = "0.0.1" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/digitalcytometry/cytotrace2/archive/refs/tags/v1.0.0.tar.gz + sha256: a0e238320fc0f310f6c16b1d2ad3fd2cc556e5ee3a04d24c490c4e46c34053e1 + +build: + number: 0 + entry_points: + - cytotrace2=cytotrace2_py.cytotrace2_py:run_cytotrace2 + noarch: python + script: cd cytotrace2_python && {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + run_exports: + - {{ pin_subpackage('cytotrace2-python', max_pin="x.x") }} + +requirements: + host: + - python >=3.9 + - pip + run: + - python >=3.9 + - anndata + - numpy + - pandas + - scanpy + - scipy + - scikit-learn + - pytorch + - r-rann + - r-seurat + - r-seuratobject + - r-matrix + - r-ggplot2 + - r-data.table + - r-dplyr + - r-argparse + +test: + imports: + - cytotrace2_py + commands: + - cytotrace2 --help + +about: + license: Custom + license_file: LICENSE + summary: "CytoTRACE 2 is an interpretable AI method for predicting cellular potency and absolute developmental potential from scRNA-seq data." + home: "https://github.com/digitalcytometry/cytotrace2" + dev_url: "https://github.com/digitalcytometry/cytotrace2" + doc_url: "https://github.com/digitalcytometry/cytotrace2/blob/v{{ version }}/cytotrace2_python/README.md" From 458e89fbcc0de1fe2f6f92b47e5dc5ba2ce44446 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 02:35:45 -0400 Subject: [PATCH 1122/1514] Update fgpyo to 0.6.0 (#49892) --- recipes/fgpyo/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/fgpyo/meta.yaml b/recipes/fgpyo/meta.yaml index 63a3a10fe4ea2..31d0d8e75cebd 100644 --- a/recipes/fgpyo/meta.yaml +++ b/recipes/fgpyo/meta.yaml @@ -1,5 +1,5 @@ {% set name = "fgpyo" %} -{% set version = "0.5.0" %} +{% set version = "0.6.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/fulcrumgenomics/{{ name }}/archive/refs/tags/{{ version }}.tar.gz - sha256: 875a189a0db739bd150b677a3b1c5a48489c83bc7da2cc405aee02a137ab7a04 + sha256: d9fce324aac3c932cd9253ded6d91c95f09f68729b203cbf9c5dfc429d46cd3a build: noarch: python From 89bf55f304479893c8572bf083b7064676f1ed2e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 05:35:03 -0400 Subject: [PATCH 1123/1514] Update piranha-polio to 1.3 (#49896) --- recipes/piranha-polio/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/piranha-polio/meta.yaml b/recipes/piranha-polio/meta.yaml index 679fe76aa8c46..d86440e1fc31c 100644 --- a/recipes/piranha-polio/meta.yaml +++ b/recipes/piranha-polio/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.2.5" %} +{% set version = "1.3" %} package: name: piranha-polio @@ -6,7 +6,7 @@ package: source: url: https://github.com/polio-nanopore/piranha/archive/refs/tags/{{ version }}.tar.gz - sha256: c6b9f8fdaab085bfbe75b2839d29dceb3e40c8af100379123f40eeebeb83c8fb + sha256: 99f845059fa92a87476d1e0d661459548b69c02921e3c397d5362b469a0f58ba build: number: 0 From ec250d3a51c2682cad3f74e13c7cbfc3adb72e6e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 05:35:54 -0400 Subject: [PATCH 1124/1514] Update vembrane to 1.0.6 (#49898) --- recipes/vembrane/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/vembrane/meta.yaml b/recipes/vembrane/meta.yaml index 5b3851289ab76..5081f8ba543dd 100644 --- a/recipes/vembrane/meta.yaml +++ b/recipes/vembrane/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.0.5" %} +{% set version = "1.0.6" %} package: name: vembrane @@ -6,7 +6,7 @@ package: source: url: https://pypi.io/packages/source/v/vembrane/vembrane-{{ version }}.tar.gz - sha256: c0afc7dc69dd32ac95c45ba679b5751c2d63170e4876dbc0ce860d44f6b6c18e + sha256: 941fcb10cc61c3d3fcaa87d1ab7e230c87f1ce625975402a0139eef0acc03fc2 build: number: 0 From 5a3d6cbc3cfe6f3c430492046f9b1280edf28886 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 05:47:26 -0400 Subject: [PATCH 1125/1514] Update locityper to 0.16.9 (#49897) --- recipes/locityper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/locityper/meta.yaml b/recipes/locityper/meta.yaml index 444882115ee1a..c8646c29778e6 100644 --- a/recipes/locityper/meta.yaml +++ b/recipes/locityper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "locityper" %} -{% set version = "0.16.8" %} +{% set version = "0.16.9" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/tprodanov/locityper/archive/refs/tags/v{{ version }}.tar.gz - sha256: 45676912a3a7a8d164f0e6c0c71697d21878baa476cd45b8bf4a2c9d9e5f018f + sha256: 388ebea85f9259f284b7b9215e28786c676aa89da57c2c78b74a76ad2506a14a build: number: 0 From 77557026bf9c792b2ef53c417d943b3f41eb2f98 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 06:45:09 -0400 Subject: [PATCH 1126/1514] Update fastqc-rs to 0.3.4 (#49895) * Update fastqc-rs to 0.3.4 * fastqc-rs: Fix linting issues and add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov --- recipes/fastqc-rs/meta.yaml | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/recipes/fastqc-rs/meta.yaml b/recipes/fastqc-rs/meta.yaml index e7049ad4f89f4..3a05e9698633c 100644 --- a/recipes/fastqc-rs/meta.yaml +++ b/recipes/fastqc-rs/meta.yaml @@ -1,24 +1,26 @@ -{% set version = "0.3.2" %} +{% set version = "0.3.4" %} package: name: fastqc-rs version: {{version}} build: - number: 2 + number: 0 + run_exports: + - {{ pin_subpackage('fastqc-rs', max_pin="x.x") }} source: url: https://github.com/fastqc-rs/fastqc-rs/archive/v{{ version }}.tar.gz - sha256: f2dc917e71d3408d88aa2372dc485dc58b5fb0d0af940f9f48fbecb8a34ca78d + sha256: 02b789b7194a56aeb529413462dc693f747847c7e2481a093e2f56d1eeb7e780 requirements: build: - - rust >=1.30 - clangdev - cmake - make - {{ compiler('c') }} - {{ compiler('cxx') }} + - {{ compiler('rust') }} - pkg-config host: - clangdev @@ -36,9 +38,13 @@ test: about: home: https://fastqc-rs.github.io license: MIT - summary: | - A fast quality control tool for FASTQ files written in rust. + license_file: LICENSE + summary: A fast quality control tool for FASTQ files written in rust. + dev_url: https://github.com/fastqc-rs/fastqc-rs extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - fxwiegand From 3a2eca38b7616ec674c052b76ae33d4388450cf1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 06:45:51 -0400 Subject: [PATCH 1127/1514] Update strainr2 to 2.1.0 (#49889) * Update strainr2 to 2.1.0 * Update strainr2 (#49891) * update file paths and include zlib in dependencies * specify library path for zlib * reorder linker flags in gcc * Remove zlib as a build dependency --------- Co-authored-by: Martin Grigorov --------- Co-authored-by: Kerim Heber <122597229+kheber@users.noreply.github.com> Co-authored-by: Martin Grigorov --- recipes/strainr2/build.sh | 16 ++++++++-------- recipes/strainr2/meta.yaml | 7 ++++--- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/recipes/strainr2/build.sh b/recipes/strainr2/build.sh index 1e72ed4dfcb40..ff3d646a151fa 100644 --- a/recipes/strainr2/build.sh +++ b/recipes/strainr2/build.sh @@ -2,17 +2,17 @@ mkdir -p "${PREFIX}/bin" -${CC} ${SRC_DIR}/subcontig.c -o subcontig -${CC} ${SRC_DIR}/hashcounter.c -o hashcounter +${CC} ${SRC_DIR}/src/subcontig.c -O3 -o subcontig +${CC} ${SRC_DIR}/src/hashcounter.c -I$PREFIX/include -L$PREFIX/lib -O3 -o hashcounter -lz -chmod +x $SRC_DIR/PreProcessR +chmod +x $SRC_DIR/src/PreProcessR chmod +x $SRC_DIR/subcontig chmod +x $SRC_DIR/hashcounter -chmod +x $SRC_DIR/Plot.R -chmod +x $SRC_DIR/StrainR +chmod +x $SRC_DIR/src/Plot.R +chmod +x $SRC_DIR/src/StrainR -cp $SRC_DIR/PreProcessR ${PREFIX}/bin/ +cp $SRC_DIR/src/PreProcessR ${PREFIX}/bin/ cp $SRC_DIR/subcontig ${PREFIX}/bin/ cp $SRC_DIR/hashcounter ${PREFIX}/bin/ -cp $SRC_DIR/Plot.R ${PREFIX}/bin/ -cp $SRC_DIR/StrainR ${PREFIX}/bin/ +cp $SRC_DIR/src/Plot.R ${PREFIX}/bin/ +cp $SRC_DIR/src/StrainR ${PREFIX}/bin/ diff --git a/recipes/strainr2/meta.yaml b/recipes/strainr2/meta.yaml index d92319912b1b0..fb508093f4d78 100644 --- a/recipes/strainr2/meta.yaml +++ b/recipes/strainr2/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.0.0" %} +{% set version = "2.1.0" %} package: name: strainr2 @@ -6,10 +6,10 @@ package: source: url: https://github.com/BisanzLab/StrainR2/archive/v{{ version }}.tar.gz - sha256: 00ddd426e6d27e461c806282107503d93472a93c71c24e82069bf78be1d31a89 + sha256: 4683de73b3a6cb1c764a0e3adfd92e0eca61aa14dee09e87b9a75af5053e1eb0 build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage("strainr2", max_pin="x") }} @@ -20,6 +20,7 @@ requirements: - r-base >=4.2.0 - r-optparse - r-tidyverse + - zlib run: - bbmap - fastp From 9890c78f3efb56829cb3faacb3c73a3f6f095ed0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 08:54:31 -0400 Subject: [PATCH 1128/1514] Update deeplc to 3.0.2 (#49900) --- recipes/deeplc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/deeplc/meta.yaml b/recipes/deeplc/meta.yaml index eab5e428730fa..48ccf93f12be5 100644 --- a/recipes/deeplc/meta.yaml +++ b/recipes/deeplc/meta.yaml @@ -1,6 +1,6 @@ {% set name = "DeepLC" %} -{% set version = "2.2.38" %} -{% set sha256 = "9c66dd629246ce422ca57a8628c122765770c8eeebdc2f6a71a8f88d9a9193a5" %} +{% set version = "3.0.2" %} +{% set sha256 = "35f8f25503896241febcdd92a3a93ddecc53ad9b8ec3992afec220586ff445f4" %} package: name: {{ name|lower }} From b6882ae238522ff3fe04e361e668c2aea45f89d3 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 09:40:35 -0400 Subject: [PATCH 1129/1514] Update monsda to 1.2.8 (#49909) --- recipes/monsda/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/monsda/meta.yaml b/recipes/monsda/meta.yaml index c6342c5d30b90..a0454d15ae606 100644 --- a/recipes/monsda/meta.yaml +++ b/recipes/monsda/meta.yaml @@ -1,6 +1,6 @@ {% set name = "MONSDA" %} -{% set version = "1.2.7" %} -{% set sha256 = "6a3b15a4c5eb3ab74d7bad0313cfbc59bb7af22b02994de38c6440a0e0071cba" %} +{% set version = "1.2.8" %} +{% set sha256 = "dcfb363649328568fef304d25bb0278155f94e954b207d8f841a452fdaf67024" %} package: name: "{{ name|lower }}" From 34ee79806678285580cbb09711e60d3972d4dd5f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 09:49:13 -0400 Subject: [PATCH 1130/1514] Update apscale to 2.0.0 (#49907) --- recipes/apscale/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/apscale/meta.yaml b/recipes/apscale/meta.yaml index 35804d0fc32bf..a4de9ccb2f8b3 100644 --- a/recipes/apscale/meta.yaml +++ b/recipes/apscale/meta.yaml @@ -1,5 +1,5 @@ {% set name = "apscale" %} -{% set version = "1.7.1" %} +{% set version = "2.0.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/apscale-{{ version }}.tar.gz - sha256: 99ea723823313e33ee69373fbb9b12d7a62765fe6d74c9f69d61a2d4dc2ea69f + sha256: b35420dcee33578d16b5762341f8cf4726bfb58eccb91b6ace17fdef11664923 build: entry_points: From 230ec088234de0221c3c0b9d0293f842e4c1a0ec Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 09:49:39 -0400 Subject: [PATCH 1131/1514] Update deeplc to 3.0.4 (#49908) --- recipes/deeplc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/deeplc/meta.yaml b/recipes/deeplc/meta.yaml index 48ccf93f12be5..919c9d54b1ae7 100644 --- a/recipes/deeplc/meta.yaml +++ b/recipes/deeplc/meta.yaml @@ -1,6 +1,6 @@ {% set name = "DeepLC" %} -{% set version = "3.0.2" %} -{% set sha256 = "35f8f25503896241febcdd92a3a93ddecc53ad9b8ec3992afec220586ff445f4" %} +{% set version = "3.0.4" %} +{% set sha256 = "8d139190c1a9fee692f595d8fdff889b52a1f61da87c7a1cfc6e8997dbd3a93c" %} package: name: {{ name|lower }} From fb6903b4246879082dbcd993ff8dc8c34e2c0fef Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 09:50:04 -0400 Subject: [PATCH 1132/1514] Update fraposa-pgsc to 1.0.1 (#49910) --- recipes/fraposa-pgsc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/fraposa-pgsc/meta.yaml b/recipes/fraposa-pgsc/meta.yaml index 5babab25225b0..5bd517ff1f269 100644 --- a/recipes/fraposa-pgsc/meta.yaml +++ b/recipes/fraposa-pgsc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "fraposa-pgsc" %} -{% set version = "1.0.0" %} +{% set version = "1.0.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/fraposa_pgsc-{{ version }}.tar.gz - sha256: a21ce6c8d90752f23d3694dbbd69060a7dabaeb6ac29d0ecc27c0435b7fce0a7 + sha256: 385508f2ebb25d1cf6a27811011c3771121863f6f90b613913e473eab5ce7383 build: entry_points: From 605a055562252bd4c4f33b6d15b390be6137e669 Mon Sep 17 00:00:00 2001 From: Peter Cock Date: Thu, 8 Aug 2024 16:01:25 +0100 Subject: [PATCH 1133/1514] Update fastani to build osx-arm64 (#49911) * Build fastani on max osx-arm64 * MacOS wasn't finding M4 --- recipes/fastani/build.sh | 2 ++ recipes/fastani/meta.yaml | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/recipes/fastani/build.sh b/recipes/fastani/build.sh index 8008be92c6a0a..a52e240621bd5 100644 --- a/recipes/fastani/build.sh +++ b/recipes/fastani/build.sh @@ -7,6 +7,8 @@ export CPP_INCLUDE_PATH=${PREFIX}/include export CPLUS_INCLUDE_PATH=${PREFIX}/include export CXX_INCLUDE_PATH=${PREFIX}/include +export M4=${BUILD_PREFIX}/bin/m4 + mkdir -p $PREFIX/bin ./bootstrap.sh diff --git a/recipes/fastani/meta.yaml b/recipes/fastani/meta.yaml index 82c05c4c98336..eb471a88b27f4 100644 --- a/recipes/fastani/meta.yaml +++ b/recipes/fastani/meta.yaml @@ -7,7 +7,7 @@ package: version: {{ version }} build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage('fastani', max_pin="x") }} @@ -49,4 +49,5 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 + - osx-arm64 From 7fed02622d074ea2b7786af12ac003b6a3f0f3fc Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 14:22:13 -0400 Subject: [PATCH 1134/1514] Update zdb to 1.3.3 (#49918) --- recipes/zdb/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/zdb/meta.yaml b/recipes/zdb/meta.yaml index 007604596b270..cdfd987fa4d37 100644 --- a/recipes/zdb/meta.yaml +++ b/recipes/zdb/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.3.2" %} +{% set version = "1.3.3" %} package: name: zdb @@ -11,8 +11,8 @@ build: - {{ pin_subpackage('zdb', max_pin="x.x") }} source: - url: https://github.com/metagenlab/zDB/archive/refs/tags/v1.3.2.tar.gz - sha256: bd2f4e132376f78e6fe0a28f9be003dd35a0b0d86d2880a39e5a25d9778e0d3e + url: https://github.com/metagenlab/zDB/archive/refs/tags/v1.3.3.tar.gz + sha256: 9f5e29d3730740c2e60fb275db709916ef54d3a2c3e4cf54ae448e9add14bb49 requirements: run: From 73380c36f35e81e348b9c210cc009381912b5cba Mon Sep 17 00:00:00 2001 From: Gavin Douglas Date: Thu, 8 Aug 2024 14:22:27 -0400 Subject: [PATCH 1135/1514] Update Picrust2 v2.5.3 (#49920) * Bump to v2.5.3 * lint error fixes --- recipes/picrust2/meta.yaml | 20 ++++++++++++-------- recipes/picrust2/post-link.sh | 8 ++++---- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/recipes/picrust2/meta.yaml b/recipes/picrust2/meta.yaml index 0a197f6654f6b..f2b495f7e56f6 100644 --- a/recipes/picrust2/meta.yaml +++ b/recipes/picrust2/meta.yaml @@ -1,15 +1,17 @@ {% set name = "picrust2" %} -{% set version = "2.5.2" %} +{% set version = "2.5.3" %} package: name: "{{ name|lower }}" version: "{{ version | replace('-', '_') }}" source: - url: https://github.com/picrust/picrust2/archive/refs/tags/v2.5.2.tar.gz - sha256: a8c3832bf759233b52b41c56a0ffef72491e431fee347a7c05695596c76a1a4c + url: https://github.com/picrust/picrust2/archive/refs/tags/v2.5.3.tar.gz + sha256: b8dfab3b961d7bafd9ceafaeb3ce95cc66c61d3c5e51325e79574d6e0c2b1e40 build: + run_exports: + - {{ pin_subpackage('picrust2', max_pin="x.x") }} number: 0 noarch: python script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv " @@ -18,26 +20,28 @@ requirements: host: - cython - pip - - python >=3.5,<3.9 + - python >=3.5 run: - biom-format >=2.1.10 + - dendropy 4.5.2 - epa-ng 0.3.8 - - gappa 0.8.0 + - gappa >=0.8.0,<=0.8.5 - glpk >=4.65 - h5py >=2.10.0 - hmmer >=3.1b2,<=3.2.1 + - jinja2 >=2.11.3 - joblib >=1.0.1 - numpy >=1.19.5 - pandas >=1.1.5 - - python >=3.5,<3.9 + - python >=3.5 - pytest >=4.4.1 - pytest-cov >=2.6.1 - r-base >=3.5.1 - r-castor >=1.7.2 - scipy >=1.2.1 - - sepp 4.3.10 + - sepp 4.4.0 - wget - + test: commands: - add_descriptions.py -h > /dev/null diff --git a/recipes/picrust2/post-link.sh b/recipes/picrust2/post-link.sh index c84fa20b56125..e7ffd8b392170 100644 --- a/recipes/picrust2/post-link.sh +++ b/recipes/picrust2/post-link.sh @@ -1,9 +1,9 @@ #!/bin/bash -FN="v2.5.2.tar.gz" -TARBALL_DIR="picrust2-2.5.2" -URL="https://github.com/picrust/picrust2/archive/v2.5.2.tar.gz" -SHA256="a8c3832bf759233b52b41c56a0ffef72491e431fee347a7c05695596c76a1a4c" +FN="v2.5.3.tar.gz" +TARBALL_DIR="picrust2-2.5.3" +URL="https://github.com/picrust/picrust2/archive/v2.5.3.tar.gz" +SHA256="b8dfab3b961d7bafd9ceafaeb3ce95cc66c61d3c5e51325e79574d6e0c2b1e40" # Create staging area. STAGING=$PREFIX/staging From 19fffe6d75e633ec0cc48b5f09ca95fef58e9c78 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 8 Aug 2024 21:30:41 +0300 Subject: [PATCH 1136/1514] fastme: add aarch64/arm64 builds (#49905) * fastme: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Reset the build number * Export M4 for osx-arm64 --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/fastme/build.sh | 5 ++++- recipes/fastme/meta.yaml | 21 ++++++++++++++------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/recipes/fastme/build.sh b/recipes/fastme/build.sh index 2817a50021413..43ffe694346e6 100644 --- a/recipes/fastme/build.sh +++ b/recipes/fastme/build.sh @@ -1,6 +1,9 @@ #!/bin/bash +set -xe + +export M4=${BUILD_PREFIX}/bin/m4 autoreconf -ifv ./configure --prefix=${PREFIX} -make -j4 +make -j ${CPU_COUNT} make install diff --git a/recipes/fastme/meta.yaml b/recipes/fastme/meta.yaml index 04aa30baef6a7..fa70f80f4d49e 100644 --- a/recipes/fastme/meta.yaml +++ b/recipes/fastme/meta.yaml @@ -1,16 +1,18 @@ {% set name = "fastme" %} -{% set version = "2.1.6.1" %} -{% set sha256 = "fae0609576873cb137ad4f63529b3ccba8f747b857c23c7870236aba440076ca" %} +{% set version = "2.1.6.3" %} +{% set sha256 = "d49ff78cca7b76eadf8443efb33f071a7e8a152618ffa3d8e790f167d0a0b176" %} package: name: {{ name|lower }} version: {{ version }} build: - number: 3 + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} source: - url: https://gite.lirmm.fr/atgc/FastME/-/archive/v2.1.6.1/FastME-v2.1.6.1.tar.gz + url: https://gite.lirmm.fr/atgc/FastME/-/archive/v{{ version }}/FastME-v{{ version }}.tar.gz sha256: {{ sha256 }} requirements: @@ -28,11 +30,16 @@ test: about: home: http://www.atgc-montpellier.fr/fastme/binaries.php summary: a comprehensive, accurate and fast distance-based phylogeny inference program. - license: GPLv3 - license_family: GPL - license_file: '{{ environ["RECIPE_DIR"] }}/LICENSE' + license: GPL-3.0-only + license_family: GPL3 + license_file: LICENSE + dev_url: https://gite.lirmm.fr/atgc/FastME/ + doc_url: http://www.atgc-montpellier.fr/fastme/usersguide.php extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 identifiers: - biotools:fastme - doi:10.1093/molbev/msv150 From aa036951193d3049907ce772ffb02fd3579d1438 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 15:24:29 -0400 Subject: [PATCH 1137/1514] Update quantms-utils to 0.0.4 (#49922) --- recipes/quantms-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/quantms-utils/meta.yaml b/recipes/quantms-utils/meta.yaml index 9cfcdd6318d2a..e327ae907a0f9 100644 --- a/recipes/quantms-utils/meta.yaml +++ b/recipes/quantms-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "quantms-utils" %} -{% set version = "0.0.3" %} +{% set version = "0.0.4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/quantms_utils-{{ version }}.tar.gz - sha256: d7b0ed0ea1ed83bc0095c59090368e3146561d14efcc3f9c61288741c9f46b78 + sha256: 627a5eac7b32f6fc2fcdbaf64459eec2d55ddff5bbe573a0f86e44c7f986ba35 build: entry_points: From 823032a14a61a65ad94d48fc1a73bc4d80dacb1a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 16:10:51 -0400 Subject: [PATCH 1138/1514] Update deeplc to 3.0.6 (#49913) --- recipes/deeplc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/deeplc/meta.yaml b/recipes/deeplc/meta.yaml index 919c9d54b1ae7..149359954cb97 100644 --- a/recipes/deeplc/meta.yaml +++ b/recipes/deeplc/meta.yaml @@ -1,6 +1,6 @@ {% set name = "DeepLC" %} -{% set version = "3.0.4" %} -{% set sha256 = "8d139190c1a9fee692f595d8fdff889b52a1f61da87c7a1cfc6e8997dbd3a93c" %} +{% set version = "3.0.6" %} +{% set sha256 = "54ae9ec71cdddb6793c00b18ea72552e5cf5066c1759cd969b73a54f6b910bfa" %} package: name: {{ name|lower }} From 68058b36998ab1648841c939c4c5df7fe0f16b36 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 16:11:17 -0400 Subject: [PATCH 1139/1514] Update apscale to 2.0.2 (#49914) --- recipes/apscale/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/apscale/meta.yaml b/recipes/apscale/meta.yaml index a4de9ccb2f8b3..d94036e9d34ce 100644 --- a/recipes/apscale/meta.yaml +++ b/recipes/apscale/meta.yaml @@ -1,5 +1,5 @@ {% set name = "apscale" %} -{% set version = "2.0.0" %} +{% set version = "2.0.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/apscale-{{ version }}.tar.gz - sha256: b35420dcee33578d16b5762341f8cf4726bfb58eccb91b6ace17fdef11664923 + sha256: 13d32ad87c1cf2d161bd577421e848006de8bcbb831aab15e5ecd3a5b6fc4563 build: entry_points: From f17453a6e1a2ed34fc0278ff1199ac8f78b36f13 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 16:12:10 -0400 Subject: [PATCH 1140/1514] Update im2deep to 0.1.9 (#49915) --- recipes/im2deep/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/im2deep/meta.yaml b/recipes/im2deep/meta.yaml index 80ba742c8e0f8..f06f10a404b31 100644 --- a/recipes/im2deep/meta.yaml +++ b/recipes/im2deep/meta.yaml @@ -1,6 +1,6 @@ {% set name = "im2deep" %} -{% set version = "0.1.8" %} -{% set sha256 = "cd671e843c850f8deb8682872890f0555e9d250ef5351239e4f29f2b49d519ee" %} +{% set version = "0.1.9" %} +{% set sha256 = "713d6ef509f91367607f64e8cba95987062730101a314932a2f01a632e1d35aa" %} package: name: {{ name|lower }} From 251a3c4648a44c2905c7d98e657a56c1cecf2a27 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 16:12:35 -0400 Subject: [PATCH 1141/1514] Update fraposa-pgsc to 1.0.2 (#49916) --- recipes/fraposa-pgsc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/fraposa-pgsc/meta.yaml b/recipes/fraposa-pgsc/meta.yaml index 5bd517ff1f269..111722c775d10 100644 --- a/recipes/fraposa-pgsc/meta.yaml +++ b/recipes/fraposa-pgsc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "fraposa-pgsc" %} -{% set version = "1.0.1" %} +{% set version = "1.0.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/fraposa_pgsc-{{ version }}.tar.gz - sha256: 385508f2ebb25d1cf6a27811011c3771121863f6f90b613913e473eab5ce7383 + sha256: 227fd14a7b82859597dd484828de74c7ab8f22d08ea51a7dc7cf6ca1a4827033 build: entry_points: From 3b195e6f0051ad87f7afe50e767af25e0c4c579f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 16:13:05 -0400 Subject: [PATCH 1142/1514] Update cgpbigwig to 1.7.0 (#49917) --- recipes/cgpbigwig/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/cgpbigwig/meta.yaml b/recipes/cgpbigwig/meta.yaml index d2bfb03682261..6b1022168b253 100644 --- a/recipes/cgpbigwig/meta.yaml +++ b/recipes/cgpbigwig/meta.yaml @@ -1,18 +1,18 @@ -{% set version = "1.6.0" %} +{% set version = "1.7.0" %} package: name: cgpbigwig version: {{ version }} build: - number: 9 + number: 0 skip: True # [osx] run_exports: - {{ pin_subpackage('cgpbigwig', max_pin="x") }} source: url: https://github.com/cancerit/cgpBigWig/archive/{{ version }}.tar.gz - sha256: d92a27f34a7a58cc16adc7244a97d53d98e0efd5fac1f676ef18181e47fc7b0d + sha256: d1dff8cdf35b8ffa231b999e79c44f8a4897e469224652da50d2a116c45b2b8b requirements: build: @@ -44,4 +44,4 @@ test: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 From 6cf9a85cde282d2f3867941660450b9fae5713c7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 16:18:00 -0400 Subject: [PATCH 1143/1514] Update hiphase to 1.4.3 (#49925) --- recipes/hiphase/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/hiphase/meta.yaml b/recipes/hiphase/meta.yaml index 20a752dc5fa27..e87bc330fe6a5 100644 --- a/recipes/hiphase/meta.yaml +++ b/recipes/hiphase/meta.yaml @@ -1,6 +1,6 @@ {% set name = "hiphase" %} -{% set version = "1.4.2" %} -{% set hiphase_sha256 = "8e57dda28458286a8991be1e9466371c37d28557985fb3af160e3dd16388e925" %} +{% set version = "1.4.3" %} +{% set hiphase_sha256 = "e573cae2d0f90cbbf99171b1a9aa9e8e06104f54ccc93e40898354257b7f16c5" %} package: name: {{ name }} From 2a8f35af67f2f01f50fa2892ae6b2d004ce391bb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 20:24:54 -0400 Subject: [PATCH 1144/1514] Update mycotools to 0.31.46 (#49931) --- recipes/mycotools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index 13bac43437c45..300daef358a6b 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mycotools" %} -{% set version = "0.31.45" %} +{% set version = "0.31.46" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mycotools-{{ version }}.tar.gz - sha256: 6754e065060db21fb68296bbe3ab008010eaf3b5c464664db737dd37e3fc02c5 + sha256: 54aa3ee22d7ee95fbc3826681f54a18f33bab7d1e1fd34471085dcff39804991 build: entry_points: From dba7ee1bcccca2b32adaf3b3cd6b21e84c1de75e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 20:25:03 -0400 Subject: [PATCH 1145/1514] Update segul to 0.22.1 (#49927) --- recipes/segul/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/segul/meta.yaml b/recipes/segul/meta.yaml index a64eb2fd5a37c..98e5f7721f857 100644 --- a/recipes/segul/meta.yaml +++ b/recipes/segul/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.22.0" %} +{% set version = "0.22.1" %} package: name: segul @@ -6,7 +6,7 @@ package: source: url: https://github.com/hhandika/segul/archive/refs/tags/v{{ version }}.tar.gz - sha256: aa50dcfda557262f0a29a8e6be915c327392a10944492b21b42467306d53ed24 + sha256: 5d33058149e00551f219e6d92a9156d89643551c47fac18ed688aec022b8afdd build: number: 0 From 31868c5ed47134f4d1fd00b98537236bf2368258 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 20:26:58 -0400 Subject: [PATCH 1146/1514] Update deeplcretrainer to 1.0.0 (#49901) --- recipes/deeplcretrainer/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/deeplcretrainer/meta.yaml b/recipes/deeplcretrainer/meta.yaml index 635792b35745b..27dd7f6bf8b00 100644 --- a/recipes/deeplcretrainer/meta.yaml +++ b/recipes/deeplcretrainer/meta.yaml @@ -1,6 +1,6 @@ {% set name = "DeepLCRetrainer" %} -{% set version = "0.2.12" %} -{% set sha256 = "bd31124518f6b5d1f1ec2f0983c0885b44e235b93134cc61c5eab52e2519bdff" %} +{% set version = "1.0.0" %} +{% set sha256 = "a12d46baec788b46437692f941260ec8956aaa55618030c26ebf2d1681f69954" %} package: name: {{ name|lower }} From 88af89d32daf83e5ad8d1c5ffa93cdb6bdede508 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 9 Aug 2024 03:27:39 +0300 Subject: [PATCH 1147/1514] nextpolish2: add aarch64/arm64 builds (#49893) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/nextpolish2/build.sh | 2 +- recipes/nextpolish2/meta.yaml | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/recipes/nextpolish2/build.sh b/recipes/nextpolish2/build.sh index 5e20a67b60e44..4c85d7f615175 100644 --- a/recipes/nextpolish2/build.sh +++ b/recipes/nextpolish2/build.sh @@ -1,4 +1,4 @@ -#!/bin/bash -euo +#!/bin/bash -exuo # build statically linked binary with Rust RUST_BACKTRACE=1 cargo install --verbose --path . --root "${PREFIX}" diff --git a/recipes/nextpolish2/meta.yaml b/recipes/nextpolish2/meta.yaml index c90c5f20d41d2..714e5aab5d652 100644 --- a/recipes/nextpolish2/meta.yaml +++ b/recipes/nextpolish2/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 5f94cfabae5d38397a33c118f572246070707aa23f7b2ab831fd255710f50280 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('nextpolish2', max_pin="x.x") }} @@ -40,6 +40,9 @@ about: doc_url: "https://github.com/Nextomics/NextPolish2/blob/{{ version }}/README.md" extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - moold identifiers: From 799d6dba8f4753c8097ac2f544076ca85a90e944 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 9 Aug 2024 03:27:49 +0300 Subject: [PATCH 1148/1514] rust-ncbitaxonomy: add aarch64/arm64 builds (#49902) * rust-ncbitaxonomy: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Update recipes/rust-ncbitaxonomy/meta.yaml --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/rust-ncbitaxonomy/build.sh | 4 +++- recipes/rust-ncbitaxonomy/meta.yaml | 12 ++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/recipes/rust-ncbitaxonomy/build.sh b/recipes/rust-ncbitaxonomy/build.sh index bfdd53f18dd16..07f397dca273a 100755 --- a/recipes/rust-ncbitaxonomy/build.sh +++ b/recipes/rust-ncbitaxonomy/build.sh @@ -1,4 +1,6 @@ -#!/bin/bash -euo +#!/bin/bash + +set -xeuo if [ "$(uname)" == "Darwin" ]; then # Apparently the Home variable isn't set correctly diff --git a/recipes/rust-ncbitaxonomy/meta.yaml b/recipes/rust-ncbitaxonomy/meta.yaml index 7d66502eb9824..103f0d6352d75 100644 --- a/recipes/rust-ncbitaxonomy/meta.yaml +++ b/recipes/rust-ncbitaxonomy/meta.yaml @@ -7,7 +7,9 @@ package: version: "{{ version }}" build: - number: 4 + number: 5 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} source: url: "https://github.com/pvanheus/ncbitaxonomy/archive/{{ version }}.tar.gz" @@ -16,7 +18,7 @@ source: requirements: build: - {{ compiler('c') }} - - rust >=1.43 + - {{ compiler('rust') }} host: - sqlite run: @@ -32,5 +34,11 @@ about: home: https://github.com/pvanheus/ncbitaxonomy doc_url: "https://docs.rs/crate/ncbitaxonomy/{{ version }}" license: MIT + license_file: LICENSE summary: | A Rust crate for working with a local copy of the NCBI Taxonomy database, which provides utilities for taxonomic filtering. + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 \ No newline at end of file From d48ac3abb557f1580854d279128810b0c864efdb Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 9 Aug 2024 03:28:18 +0300 Subject: [PATCH 1149/1514] parafly: add linux-aarch64 build (#49851) * parafly: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * parafly: The recipe needs CXX, not CC Signed-off-by: Martin Tzvetanov Grigorov * parafly: remove `-m64` for aarch64/arm64 Signed-off-by: Martin Tzvetanov Grigorov * parafly: Add -fopenmp to CXXFLAGS Signed-off-by: Martin Tzvetanov Grigorov * Add llvm-openmp for osx and libgomp for linux Signed-off-by: Martin Tzvetanov Grigorov * Use libcxx 16.* for OSX builds Signed-off-by: Martin Tzvetanov Grigorov * parafly: Do not build osx-arm64. It still breaks Signed-off-by: Martin Tzvetanov Grigorov * Skip OSX altogether It does not build Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/parafly/build.sh | 5 ++++- recipes/parafly/meta.yaml | 15 +++++++++++++-- recipes/parafly/parafly-aarch64.patch | 11 +++++++++++ 4 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 recipes/parafly/parafly-aarch64.patch diff --git a/build-fail-blacklist b/build-fail-blacklist index f9e833ba2f1ce..b5321fddab0a4 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -359,7 +359,6 @@ recipes/megagta # Unknown issues recipes/cmv recipes/fwdpp -recipes/parafly recipes/smashbenchmarking recipes/saffrontree diff --git a/recipes/parafly/build.sh b/recipes/parafly/build.sh index 14413e4aa02ca..11933133c32cf 100644 --- a/recipes/parafly/build.sh +++ b/recipes/parafly/build.sh @@ -1,4 +1,7 @@ #!/bin/bash + +set -xe + ./configure --prefix=$PREFIX -make install +make -j ${CPU_COUNT} CXX="${CXX}" CXXFLAGS="${CXXFLAGS} -pedantic -fopenmp -Wall -Wextra -Wno-long-long -Wno-deprecated" install cp $PREFIX/bin/ParaFly $PREFIX diff --git a/recipes/parafly/meta.yaml b/recipes/parafly/meta.yaml index 8ed8685215b79..bb7fa4c6d6d1b 100644 --- a/recipes/parafly/meta.yaml +++ b/recipes/parafly/meta.yaml @@ -5,15 +5,22 @@ package: source: url: http://downloads.sourceforge.net/project/parafly/parafly-r2013-01-21.tgz sha256: 64cf7ac2d4af0801b78d58f4057a1489d76b2b8ae59c78997f434d1239fa4abe + patches: + - parafly-aarch64.patch # [aarch64 or arm64] build: - number: 2 + skip: True # [osx] + number: 3 + run_exports: + - {{ pin_subpackage("parafly", max_pin=None) }} requirements: build: - make - - {{ compiler('c') }} + - {{ compiler('cxx') }} host: + - llvm-openmp # [osx] + - libgomp # [linux] - zlib run: - zlib @@ -26,3 +33,7 @@ about: home: http://parafly.sourceforge.net/ license: The Broad Institute (own license thingy) summary: Given a file containing a list of unix commands, multithreading is used to process the commands in parallel on a single server. Success/failure is captured, and failed commands are retained and reported. + +extra: + additional-platforms: + - linux-aarch64 diff --git a/recipes/parafly/parafly-aarch64.patch b/recipes/parafly/parafly-aarch64.patch new file mode 100644 index 0000000000000..d6336c05dcde2 --- /dev/null +++ b/recipes/parafly/parafly-aarch64.patch @@ -0,0 +1,11 @@ +--- a/configure 2024-08-06 18:16:49.448814938 +0300 ++++ b/configure 2024-08-06 18:17:03.665713668 +0300 +@@ -3016,7 +3016,7 @@ + + + #AC_OPENMP # requires autoconf >= 2.62 +-AM_CXXFLAGS=-m64 ++AM_CXXFLAGS= + + case $CXX in + g++*) AM_CXXFLAGS="-pedantic -fopenmp -Wall -Wextra -Wno-long-long -Wno-deprecated $AM_CXXFLAGS" From ed89debf0750b66eb86f455084f96e719749f916 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 21:10:13 -0400 Subject: [PATCH 1150/1514] Update pyani to 0.2.13 (#49924) * Update pyani to 0.2.13 * add run_exports --------- Co-authored-by: mencian --- recipes/pyani/meta.yaml | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/recipes/pyani/meta.yaml b/recipes/pyani/meta.yaml index b615cc7c9b19b..f1f82a9ce5b49 100644 --- a/recipes/pyani/meta.yaml +++ b/recipes/pyani/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pyani" %} -{% set version = "0.2.12" %} +{% set version = "0.2.13" %} package: name: {{ name|lower }} @@ -7,24 +7,25 @@ package: source: url: https://github.com/widdowquinn/{{ name|lower }}/archive/v{{ version }}.tar.gz - sha256: 31bac50843d3af54cf273a4388f4f87bffb0688082e4e3179ea1640aa208626d + sha256: e8dc2f7ece2e0788c7a61e9d5814d137849d722ee25dfa556d25f35d7bdd8b76 build: number: 0 noarch: python - script: "{{ PYTHON }} -m pip install . --no-deps -vv" + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" + run_exports: + - {{ pin_subpackage('pyani', max_pin="x.x") }} requirements: host: - - python >3 - - setuptools - + - python >=3.7 + - pip run: - - python >3 + - python >=3.7 - biopython - matplotlib-base - pandas - - seaborn + - seaborn-base - scipy - numpy - mummer @@ -39,8 +40,15 @@ test: - genbank_get_genomes_by_taxon.py -h about: - home: http://widdowquinn.github.io/pyani/ + home: "https://github.com/widdowquinn/pyani" license: MIT license_file: LICENSE summary: 'pyani provides a package and script for calculation of genome-scale average nucleotide identity.' license_family: MIT + dev_url: "https://github.com/widdowquinn/pyani" + doc_url: "https://widdowquinn.github.io/pyani" + +extra: + identifiers: + - doi:10.1039/C5AY02550H + - biotools:pyani From 1cf54da0298a866dbd28ef1c040d325dab288389 Mon Sep 17 00:00:00 2001 From: Arjun Prasad Date: Thu, 8 Aug 2024 21:11:16 -0400 Subject: [PATCH 1151/1514] Add NCBI StxTyper (#49883) * bug fix release * Updated to fix database issues * Update ncbi-amrfinderplus to 3.6.4 * Fix for missing python3.7 issue Fix for issue https://github.com/bioconda/bioconda-utils/issues/642 Suggested by @thermokarst https://github.com/bioconda/bioconda-utils/issues/642#issuecomment-600884997 * Initial commit for ncbi-stxtyper * Update sha256sum * Fix run_exports versioning * pin_compatible -> pin_subpackage * Update sha256sum * Handle that test_stxtyper.sh was not u+x * Attempt to fix / debug tests * Another attempt to fix tests by directory change * Add some debugging code * Gave up trying to get a realistic test to run Couldn't figure out where the distribution was to run tests included with the distribution --------- Co-authored-by: BiocondaBot <47040946+BiocondaBot@users.noreply.github.com> --- recipes/ncbi-stxtyper/build.sh | 23 +++++++++++++++++ recipes/ncbi-stxtyper/meta.yaml | 44 +++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100755 recipes/ncbi-stxtyper/build.sh create mode 100644 recipes/ncbi-stxtyper/meta.yaml diff --git a/recipes/ncbi-stxtyper/build.sh b/recipes/ncbi-stxtyper/build.sh new file mode 100755 index 0000000000000..34aa84ada3b2d --- /dev/null +++ b/recipes/ncbi-stxtyper/build.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +# fix error because of gnu++17 features. Suggested by https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk +# CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" + +echo +echo "Starting build.sh" +echo +echo "SRC_DIR=$SRC_DIR" +echo "pwd -P" +pwd -P +echo "ls -l" +ls -l + +# note that for version 3.7 the make command should be: +make CXX="$CXX $LDFLAGS" CPPFLAGS="$CXXFLAGS" PREFIX="$PREFIX" + +#echo "make CXX=\"$CXX $LDFLAGS\" CPPFLAGS=\"$CXXFLAGS\" PREFIX=\"$PREFIX\" DEFAULT_DB_DIR=\"$PREFIX/share/amrfinderplus/data\"" + +#make CXX="$CXX $LDFLAGS" CPPFLAGS="$CXXFLAGS" PREFIX=$PREFIX DEFAULT_DB_DIR="$PREFIX/share/amrfinderplus/data" +make install bindir=$PREFIX/bin + +echo "build.sh done" diff --git a/recipes/ncbi-stxtyper/meta.yaml b/recipes/ncbi-stxtyper/meta.yaml new file mode 100644 index 0000000000000..22955929e7a18 --- /dev/null +++ b/recipes/ncbi-stxtyper/meta.yaml @@ -0,0 +1,44 @@ +{% set version = "1.0.24" %} +{% set sha256 = "54ddeb7ec1a052c141c32eea402c816f0515f47b7f0a5afeb054e410f9a4576f" %} + +package: + name: ncbi-stxtyper + version: {{ version }} + +source: + url: https://github.com/ncbi/stxtyper/archive/v{{ version }}.tar.gz + sha256: {{ sha256 }} + +build: + number: 0 + run_exports: + - {{ pin_compatible('ncbi-amrfinderplus', max_pin="x.x") }} + +requirements: + build: + - make + - {{ compiler('cxx') }} + host: + - coreutils + run: + - blast >=2.9 + +test: + commands: + - echo "PREFIX=$PREFIX CONDA_PREFIX=$CONDA_PREFIX SRC_DIR=$SRC_DIR" # for debugging + - stxtyper --help + - fasta_check -help + - fasta_extract -help + +about: + home: https://github.com/ncbi/stxtyper + license: Public Domain + license_file: LICENSE + summary: StxTyper identifies and types Stx operons from assembled genomic sequence. + description: | + This software and the included database use a standardized algorithm to accurately type both known and unknown Shiga toxin operons from assembled genomic sequence + doc_url: https://github.com/ncbi/stxtyper + +extra: + recipe-maintainers: + - evolarjun From 3a0d41dc32684a1c027cbd98138505ea149f8f5a Mon Sep 17 00:00:00 2001 From: Cameron Roots <38054423+croots@users.noreply.github.com> Date: Thu, 8 Aug 2024 20:40:17 -0500 Subject: [PATCH 1152/1514] Add Promoter-Calculator (#49929) * Add recipe (grayskull + pinning) * Fix pin naming * Fix summary and license * clean up recipe --------- Co-authored-by: mencian --- recipes/promotercalculator/meta.yaml | 48 ++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 recipes/promotercalculator/meta.yaml diff --git a/recipes/promotercalculator/meta.yaml b/recipes/promotercalculator/meta.yaml new file mode 100644 index 0000000000000..ef929a32415d8 --- /dev/null +++ b/recipes/promotercalculator/meta.yaml @@ -0,0 +1,48 @@ +{% set name = "promotercalculator" %} +{% set version = "1.2.4" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/promotercalculator-{{ version }}.tar.gz + sha256: 8ab36fa50266b5e1fa958a7e331e6c352a68d09d255931dfa9c319fc3e856b49 + +build: + entry_points: + - promoter-calculator = promoter_calculator.cli:main + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + number: 0 + run_exports: + - {{ pin_subpackage("promotercalculator", max_pin="x") }} + +requirements: + host: + - python + - pip + run: + - python + - biopython + - numpy + - scikit-learn + - scipy + +test: + imports: + - promoter_calculator + commands: + - promoter-calculator --help + +about: + home: https://github.com/barricklab/promoter-calculator + summary: "Promoter-Calculator (Barrick Lab Fork)" + license: GPL-3.0-or-later + license_family: GPL3 + license_file: LICENSE + dev_url: https://github.com/barricklab/promoter-calculator + +extra: + recipe-maintainers: + - croots From dd9fb4523c81483b5963ba98d2e4c143706b4144 Mon Sep 17 00:00:00 2001 From: Cameron Roots <38054423+croots@users.noreply.github.com> Date: Thu, 8 Aug 2024 20:40:25 -0500 Subject: [PATCH 1153/1514] Add RhoTermPredict (#49926) * Add RhoTermPredict (Grayskull generated) * Run-exports semantic versioning * Fix duplicate key * clean up recipe --------- Co-authored-by: mencian --- recipes/rhotermpredict/meta.yaml | 46 ++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 recipes/rhotermpredict/meta.yaml diff --git a/recipes/rhotermpredict/meta.yaml b/recipes/rhotermpredict/meta.yaml new file mode 100644 index 0000000000000..3a12f2a870cd3 --- /dev/null +++ b/recipes/rhotermpredict/meta.yaml @@ -0,0 +1,46 @@ +{% set name = "rhotermpredict" %} +{% set version = "3.4" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/rhotermpredict-{{ version }}.tar.gz + sha256: 15a45581595e647e0f9dca31df45a5820144d2d5a5097bb61102bc57134acc36 + +build: + entry_points: + - rhotermpredict = rhotermpredict.algorithm:main + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + number: 0 + run_exports: + - {{ pin_subpackage("rhotermpredict", max_pin="x") }} + +requirements: + host: + - python + - pip + run: + - python + - numpy >=1.15.4 + - biopython >=0.1.0 + +test: + imports: + - rhotermpredict + commands: + - rhotermpredict --help + +about: + home: https://github.com/barricklab/RhoTermPredict + summary: "RhoTermPredict (Barrick Lab Fork)" + license: AGPL-3.0-or-later + license_family: AGPL + license_file: LICENSE + dev_url: https://github.com/barricklab/RhoTermPredict + +extra: + recipe-maintainers: + - croots From d4c829c3280b2a02b9697b3849393a562a2512d8 Mon Sep 17 00:00:00 2001 From: Michael Michael Date: Fri, 9 Aug 2024 13:40:41 +1200 Subject: [PATCH 1154/1514] Add build recipe for commec (#49890) * Added build recipe for commec * remove unecessary build section --------- Co-authored-by: mencian --- recipes/commec/meta.yaml | 55 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 recipes/commec/meta.yaml diff --git a/recipes/commec/meta.yaml b/recipes/commec/meta.yaml new file mode 100644 index 0000000000000..676f15e6479c5 --- /dev/null +++ b/recipes/commec/meta.yaml @@ -0,0 +1,55 @@ +{% set name = "commec" %} +{% set version = "0.1.2" %} +{% set sha256 = "33e99060dca151cb9d5481f47e02f1b5276b2cdf61804e7093f0cfc32bef1188" %} + +package: + name: "{{ name }}" + version: "{{ version }}" + +source: + url: https://github.com/ibbis-screening/common-mechanism/archive/refs/tags/v{{version}}.tar.gz + sha256: {{ sha256 }} + +build: + number: 0 + noarch: python + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" + run_exports: + # consider using "x.x.x" rather than "x.x", or "x" considering alpha software and liklihood of change. + - {{ pin_subpackage('commec', max_pin="x.x") }} + +requirements: + host: + - python >=3.1 + - pip >=24 + run: + - python >=3.1 + # Runtime Python dependencies + - biopython >=1.8 + - numpy >=2.0.0 + - pandas >=2.2 + - pytaxonkit >=0.8 + # Runtime non-Python dependencies + - bedtools >=2.31 + - blast >=2.16 + - emboss >=6.6 + - diamond >=0.9 + - hmmer >=3.4 + - infernal >=1.1 + - parallel >=20240722 + - perl-list-moreutils >=0.430 + - taxonkit >=0.17 + +test: + commands: + - commec screen --help + - commec flag --help + - commec split --help + +about: + home: https://github.com/ibbis-screening/common-mechanism + license: MIT + license_family: MIT + doc_url: https://github.com/ibbis-screening/common-mechanism/wiki + summary: "commec: a free, open-source, globally available tool for DNA sequence screening" + dev_url: https://github.com/ibbis-screening/common-mechanism From 5523fb992e217dd0ec324594dd5574a70721ee58 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 21:57:31 -0400 Subject: [PATCH 1155/1514] Update resfinder to 4.6.0 (#49903) * Update resfinder to 4.6.0 * add pdm-backend * clean up recipe * clean up recipe --------- Co-authored-by: mencian --- recipes/resfinder/build.sh | 13 +++++++++---- recipes/resfinder/meta.yaml | 17 +++++++++-------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/recipes/resfinder/build.sh b/recipes/resfinder/build.sh index 3c65803ffd5ac..db6efb53eddcb 100644 --- a/recipes/resfinder/build.sh +++ b/recipes/resfinder/build.sh @@ -1,6 +1,8 @@ -#!/bin/bash +#!/bin/bash -ex -${PYTHON} -m pip install . -vvv --no-deps --no-build-isolation +mkdir -p ${PREFIX}/bin + +${PYTHON} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir # create folder for database download target=${PREFIX}/share/${PKG_NAME}-${PKG_VERSION} @@ -8,8 +10,8 @@ mkdir -p ${target}/db/ touch ${target}/db/.empty # copy script to download database -cp ${RECIPE_DIR}/download-db.sh ${PREFIX}/bin -chmod +x ${PREFIX}/bin/download-db.sh +cp -rf ${RECIPE_DIR}/download-db.sh ${PREFIX}/bin +chmod 0755 ${PREFIX}/bin/download-db.sh # set RESFINDER_DB variable on env activation mkdir -p ${PREFIX}/etc/conda/activate.d ${PREFIX}/etc/conda/deactivate.d @@ -20,3 +22,6 @@ EOF cat <> ${PREFIX}/etc/conda/deactivate.d/resfinder.sh unset RESFINDER_DB EOF + +chmod 0755 ${SP_DIR}/resfinder/run_resfinder.py +cp -rf ${SP_DIR}/resfinder/run_resfinder.py ${PREFIX}/bin/ diff --git a/recipes/resfinder/meta.yaml b/recipes/resfinder/meta.yaml index 6614f72cec293..b05f847f72c98 100644 --- a/recipes/resfinder/meta.yaml +++ b/recipes/resfinder/meta.yaml @@ -1,5 +1,5 @@ {% set name = "resfinder" %} -{% set version = "4.5.0" %} +{% set version = "4.6.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/resfinder-{{ version }}.tar.gz - sha256: 7c2ad096c2f5f746607c4433d327f890776aba996f86112dc4527fc3c2bc0ec4 + sha256: ca682ad8760c9cfbb1163235ce5bdb7c018d5b910937ac8f747d605309ce3c40 patches: - python_path.patch @@ -19,12 +19,11 @@ build: requirements: host: - - python >=3.8 + - python >=3.9 - pip - - pdm-pep517 >=0.12.0 + - pdm-backend run: - - python >=3.8 - # Needs cgelib in conda-forge/bioconda + - python >=3.9 - cgelib >=0.7.3 - cgecore ==1.5.6 - tabulate >=0.8.9 @@ -39,14 +38,16 @@ test: imports: - resfinder commands: - - python -m resfinder --help + - "run_resfinder.py --help" about: - home: https://bitbucket.org/genomicepidemiology/resfinder + home: "https://bitbucket.org/genomicepidemiology/resfinder" summary: "ResFinder identifies acquired antimicrobial resistance genes in total or partial sequenced isolates of bacteria." license: Apache-2.0 license_family: APACHE license_file: LICENSE + dev_url: "https://bitbucket.org/genomicepidemiology/resfinder" + doc_url: "https://bitbucket.org/genomicepidemiology/resfinder/src/master/README.md" extra: notes: "ResFinder requires databases that can be downloaded with download-db.sh." From e446597817d8985784f2759bf413606cf50c6949 Mon Sep 17 00:00:00 2001 From: Daniel Anderson <43540934+Danderson123@users.noreply.github.com> Date: Fri, 9 Aug 2024 04:12:58 +0200 Subject: [PATCH 1156/1514] Recipe for dingII (#49923) * ding recipe * Create recipe for dingII * Delete recipes/ding directory * Rename dingII to ding * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Rename meta.yaml to meta.yaml * Update meta.yaml * Update meta.yaml * Rename meta.yaml to meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * clean up recipe --------- Co-authored-by: mencian --- recipes/dingii/meta.yaml | 49 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 recipes/dingii/meta.yaml diff --git a/recipes/dingii/meta.yaml b/recipes/dingii/meta.yaml new file mode 100644 index 0000000000000..bc78c1938465d --- /dev/null +++ b/recipes/dingii/meta.yaml @@ -0,0 +1,49 @@ +{% set version = "0.0.1" %} +{% set name = "dingII" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/Danderson123/{{ name|lower }}/archive/v{{ version }}.tar.gz + sha256: 60a35ad2b5cf04b50ac0723d3841e903b23e7dbe071f483ebe0afb1192106140 + +build: + number: 0 + noarch: python + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv + entry_points: + - dingII = dingII.__main__:main + run_exports: + - {{ pin_subpackage("dingii", max_pin="x.x") }} + +requirements: + host: + - python >=3.8 + - poetry-core >=1.0.0 + - pip + run: + - python >=3.8 + - networkx >=3.1 + +test: + imports: + - dingII + commands: + - dingII --help + +about: + home: "https://gitlab.ub.uni-bielefeld.de/gi/dingiiofficial" + summary: 'Computing the Rearrangement Distance of Natural Genomes.' + license: MIT + license_family: MIT + license_file: LICENSE + dev_url: "https://gitlab.ub.uni-bielefeld.de/gi/dingiiofficial" + doc_url: "https://gitlab.ub.uni-bielefeld.de/gi/dingiiofficial/-/blob/main/README.md" + +extra: + recipe-maintainers: + - leobkmer + identifiers: + - doi:10.48550/arXiv.2001.02139 From f945fa0aa0edf1255e5cdda16c721c4a0c7ef777 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 22:24:39 -0400 Subject: [PATCH 1157/1514] Update cogent3 to 2024.7.19a3 (#49932) * Update cogent3 to 2024.7.19a3 * clean up recipe * clean up recipe --------- Co-authored-by: mencian --- recipes/cogent3/meta.yaml | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/recipes/cogent3/meta.yaml b/recipes/cogent3/meta.yaml index d475b58bcaa0b..c9a318f6eb0fc 100644 --- a/recipes/cogent3/meta.yaml +++ b/recipes/cogent3/meta.yaml @@ -1,5 +1,5 @@ {% set name = "cogent3" %} -{% set version = "2024.7.19a1" %} +{% set version = "2024.7.19a3" %} package: name: {{ name|lower }} @@ -7,22 +7,23 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: fdf62233b60eb28e16a7aa8a58abdc6b98b594a596b220316875cb3d31f34dda + sha256: 9a022315e02b4f5febe01f3377a921fdadcfce2bf85c85e7a69aaeeddfe98c59 build: noarch: python - script: {{ PYTHON }} -m pip install . -vv + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv number: 0 run_exports: - {{ pin_subpackage(name, max_pin=None) }} requirements: host: - - python >=3.9, <3.12 + - python >=3.9,<3.13 - pip - - flit-core >=3.2, <4 + - flit-core >=3.2,<4 run: - - python >=3.9, <3.12 + - python >=3.9,<3.13 + - charset-normalizer - scipy - chardet - numpy @@ -38,10 +39,13 @@ test: - cogent3 about: - home: https://pypi.org/project/cogent3/ + home: "https://github.com/cogent3/cogent3" summary: 'COmparative GENomics Toolkit 3: genomic sequence analysis within notebooks or on compute systems with 1000s of CPUs.' - license: BSD-3-Clause + license: "BSD-3-Clause" + license_family: BSD license_file: LICENSE + dev_url: "https://github.com/cogent3/cogent3" + doc_url: "https://github.com/cogent3/cogent3/blob/{{ version }}/README.md" extra: recipe-maintainers: From 05053c90163b1ac804e2ec51346b41200ae505b4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 8 Aug 2024 23:28:51 -0400 Subject: [PATCH 1158/1514] Update harpy to 1.5 (#49930) * Update harpy to 1.5 * clean up recipe * clean up recipe * edit meta.yaml * revert apptainer --------- Co-authored-by: mencian --- recipes/harpy/meta.yaml | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index 7447eeb08d075..700b7f7c6c316 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.4.2" %} -{% set sha256 = "8e8beb3e0782fb9eac2bdeba4896ecdd46a690b8472ff8699684e65c77f6043d" %} +{% set version = "1.5" %} +{% set sha256 = "ae5aa811bff42620f5b8adb1d39f41a9d7e63f332b846b5f6b389e55892c9552" %} package: name: harpy @@ -10,32 +10,34 @@ source: sha256: '{{ sha256 }}' build: - skip: True # [osx] number: 0 - missing_dso_whitelist: - - /lib64/libstdc++.so.6 - - /lib64/libc.so.6 + skip: True # [osx or py < 39] + script_env: + - SETUPTOOLS_SCM_PRETEND_VERSION={{ version }} run_exports: - - {{ pin_subpackage('harpy', max_pin="x.x") }} + - {{ pin_subpackage('harpy', max_pin="x") }} script: | mkdir -p ${PREFIX}/bin - "${CXX}" src/harpy/bin/extractReads.cpp -O3 -o ${PREFIX}/bin/extractReads - ${PYTHON} -m pip install . --no-deps -vvv - chmod +x src/harpy/bin/* - cp src/harpy/bin/* ${PREFIX}/bin/ + "${CXX}" harpy/bin/extractReads.cpp -O3 -o ${PREFIX}/bin/extractReads + ${PYTHON} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv + chmod 0755 harpy/bin/* + cp -rf harpy/bin/* ${PREFIX}/bin/ + entry_points: + - harpy = harpy.__main__:cli requirements: build: - {{ compiler('cxx') }} host: - - python =3.12 + - python - pip + - setuptools-scm >=3.4 run: - apptainer - bcftools =1.20 - pandas - pysam - - python >3.10 + - python - rich-click - snakemake-minimal >7 - samtools =1.20 @@ -48,7 +50,7 @@ test: - "harpy --version" about: - home: "https://github.com/pdimens/harpy/" + home: "https://github.com/pdimens/harpy" license: GPL-3.0-or-later license_family: GPL3 license_file: LICENSE @@ -60,13 +62,11 @@ about: to Snakemake directly. With an emphasis on user-friendliness, parallelization, transparency, and reproducibility, Harpy aims to quickly handle data processing so that you can focus more on analyzing your data. - doc_url: https://pdimens.github.io/harpy/ - dev_url: https://github.com/pdimens/harpy + doc_url: "https://pdimens.github.io/harpy" + dev_url: "https://github.com/pdimens/harpy" extra: additional-platforms: - linux-aarch64 recipe-maintainers: - pdimens - skip-lints: - - should_be_noarch_generic From 5bcc61c9d33110ea300fcd93a5be59a7be781ae9 Mon Sep 17 00:00:00 2001 From: Mariia Zelenskaia <102167492+mariia-zelenskaia@users.noreply.github.com> Date: Fri, 9 Aug 2024 06:02:43 +0200 Subject: [PATCH 1159/1514] use semantic nomenclature for the TransAnnot versions (#49875) * use semantic nomenclature for the TransAnnot versions * Use 3.0.0 as a version Signed-off-by: Martin Tzvetanov Grigorov * Use 3-e15e316 for the package url Signed-off-by: Martin Tzvetanov Grigorov * clean up recipe * clean up recipe * clean up recipe --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov Co-authored-by: mencian --- recipes/transannot/build.sh | 28 ++++++++++++++++++------- recipes/transannot/meta.yaml | 40 ++++++++++++++++++------------------ 2 files changed, 41 insertions(+), 27 deletions(-) diff --git a/recipes/transannot/build.sh b/recipes/transannot/build.sh index ae429591a47eb..8f7d428ac11e6 100644 --- a/recipes/transannot/build.sh +++ b/recipes/transannot/build.sh @@ -1,6 +1,11 @@ -#!/bin/bash -e +#!/bin/bash -ex -set -xe +mkdir -p build && pushd build + +export INCLUDES="-I${PREFIX}/include" +export LIBPATH="-L${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CXXFLAGS="${CXXFLAGS} -O3 -I${PREFIX}/include" case $(uname -m) in aarch64) @@ -11,8 +16,17 @@ case $(uname -m) in ;; esac -mkdir build -cd build -cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DHAVE_TESTS=0 -DHAVE_MPI=0 "${ARCH_OPTS}" -DVERSION_OVERRIDE="${PKG_VERSION}" .. -make -j${CPU_COUNT} ${VERBOSE_CM} -make install +if [ "$(uname)" == "Darwin" ]; then + export CMAKE_EXTRA="-DCMAKE_FIND_FRAMEWORK=NEVER -DCMAKE_FIND_APPBUNDLE=NEVER -Wno-dev" +else + export CMAKE_EXTRA="-Wno-dev" +fi + +cmake -S .. -B . -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ + -DCMAKE_BUILD_TYPE=RELEASE \ + -DHAVE_TESTS=0 -DHAVE_MPI=0 "${ARCH_OPTS}" \ + -DVERSION_OVERRIDE="${PKG_VERSION}" \ + "${CMAKE_EXTRA}" + +cmake --build . --target install -j ${CPU_COUNT} -v +popd diff --git a/recipes/transannot/meta.yaml b/recipes/transannot/meta.yaml index 068bb67a93dbe..315da17189512 100644 --- a/recipes/transannot/meta.yaml +++ b/recipes/transannot/meta.yaml @@ -1,49 +1,49 @@ -{% set version = "3-70b2a60" %} -{% set sha256 = "3b1d2f28362004378528755b8b4e0b8dc45b51cc60562816258bdf16d9cda08d" %} +{% set name = "transannot" %} +{% set version = "3.0.0" %} +{% set sha256 = "6835fc3cc77aafd273abc8f2b4d8213b251b199ff7dd5ae9fa7e1dd19579ae41" %} package: - name: transannot - version: {{ version|replace("-", ".") }} + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/soedinglab/{{ name }}/archive/refs/tags/3-e15e316.tar.gz + sha256: {{ sha256 }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('transannot', max_pin="x") }} -source: - url: https://github.com/soedinglab/transannot/archive/{{ version }}.tar.gz - sha256: {{ sha256 }} - requirements: build: - {{ compiler('c') }} - {{ compiler('cxx') }} - cmake - make + host: - llvm-openmp # [osx] - libgomp # [linux] - host: - - perl - gawk - zlib - bzip2 run: - aria2 - wget - - gawk - - zlib - - bzip2 + - perl test: commands: - - transannot > /dev/null + - "transannot > /dev/null" about: - home: https://github.com/soedinglab/transannot - summary: "TransAnnot: a fast transcriptome annotation pipeline" - license: GPL-3.0-or-later - license_family: GPL - license_file: LICENSE.md + home: "https://github.com/soedinglab/transannot" + summary: "TransAnnot: a fast transcriptome annotation pipeline." + license: "GPL-3.0-or-later" + license_family: GPL3 + license_file: "LICENSE.md" + dev_url: "https://github.com/soedinglab/transannot" + doc_url: "https://github.com/soedinglab/transannot/blob/master/README.md" extra: identifiers: From e4422e24ba90678ee177f8908f90abc11c2db26e Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Thu, 8 Aug 2024 23:52:20 -0500 Subject: [PATCH 1160/1514] bifrost: add aarch64/arm64 build (#49933) * bifrost: add aarch64/arm64 build * add additional platforms * edit build.sh --- recipes/bifrost/build.sh | 35 +++++++++++++++++++++++++---------- recipes/bifrost/meta.yaml | 18 ++++++++++-------- 2 files changed, 35 insertions(+), 18 deletions(-) diff --git a/recipes/bifrost/build.sh b/recipes/bifrost/build.sh index 7e8ce5cc81850..eb160feeb9e96 100644 --- a/recipes/bifrost/build.sh +++ b/recipes/bifrost/build.sh @@ -1,16 +1,31 @@ -#!/bin/bash +#!/bin/bash -ex -mkdir build -pushd build +export INCLUDES="-I${PREFIX}/include" +export LIBPATH="-L${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" -# Cmake is having trouble finding the sysroot with conda so we're giving it a little help... -if [[ ${HOST} =~ .*darwin.* ]]; then - cmake -DCMAKE_BUILD_TYPE=Release -DCOMPILATION_ARCH=OFF -DCMAKE_INSTALL_PREFIX=${PREFIX} -DCMAKE_OSX_SYSROOT="${CONDA_BUILD_SYSROOT}" .. +export CXXFLAGS="${CXXFLAGS} -O3 -D_FILE_OFFSET_BITS=64 -I${PREFIX}/include" + +ARCH=$(uname -m) +case ${ARCH} in + x86_64) ARCH_FLAGS="-DCOMPILATION_ARCH=OFF" ;; + aarch64) ARCH_FLAGS="-DCOMPILATION_ARCH=OFF" ;; + *) ARCH_FLAGS="-DCOMPILATION_ARCH=ON" ;; +esac + +if [ `uname` == Darwin ]; then + export CONFIG_ARGS="-DCMAKE_OSX_SYSROOT=${CONDA_BUILD_SYSROOT} -DCMAKE_FIND_FRAMEWORK=NEVER -DCMAKE_FIND_APPBUNDLE=NEVER" + export LDFLAGS="${LDFLAGS} -Wl,-rpath,${PREFIX}/lib" else - cmake -DCMAKE_BUILD_TYPE=Release -DCOMPILATION_ARCH=OFF -DCMAKE_INSTALL_PREFIX=${PREFIX} -DCMAKE_TOOLCHAIN_FILE="${RECIPE_DIR}/cross-linux.cmake" .. + export CONFIG_ARGS="-DCMAKE_TOOLCHAIN_FILE=${RECIPE_DIR}/cross-linux.cmake" fi -make VERBOSE=1 -make install +cmake -S . -B build \ + -DCMAKE_INSTALL_PREFIX=${PREFIX} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_CXX_COMPILER="${CXX}" \ + -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ + "${CONFIG_ARGS}" \ + "${ARCH_FLAGS}" -popd +cmake --build build --target install -j "${CPU_COUNT}" -v diff --git a/recipes/bifrost/meta.yaml b/recipes/bifrost/meta.yaml index 8ee624077f1c1..1dc9bb202eea2 100644 --- a/recipes/bifrost/meta.yaml +++ b/recipes/bifrost/meta.yaml @@ -10,7 +10,7 @@ source: sha256: e1b2491328b0cc1a32e433a8a9780f05547fa4b8d674b58abdda9ac8809f5341 build: - number: 0 + number: 1 # v1.3.0 breaks Bifrost Index File (.bfi) compatibility with previous Bifrost versions run_exports: - {{ pin_subpackage('bifrost', max_pin="x.x") }} @@ -24,22 +24,24 @@ requirements: host: - zlib - pthread-stubs - run: - - zlib - - pthread-stubs test: commands: - - Bifrost --version + - "Bifrost --version" about: - home: https://github.com/pmelsted/bifrost - license: BSD-2-Clause + home: "https://github.com/pmelsted/bifrost" + license: "BSD-2-Clause" license_family: BSD license_file: LICENSE - summary: Highly parallel construction and indexing of colored and compacted de Bruijn graphs + summary: "Highly parallel construction and indexing of colored and compacted de Bruijn graphs." + dev_url: "https://github.com/pmelsted/bifrost" + doc_url: "https://github.com/pmelsted/bifrost/blob/v{{ version }}/README.md" extra: identifiers: - doi:10.1101/695338 - biotools:bifrost + additional-platforms: + - linux-aarch64 + - osx-arm64 From e95e09bb92914fb03e9b0fda68f7b645999e66ed Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Fri, 9 Aug 2024 00:41:58 -0500 Subject: [PATCH 1161/1514] ratatosk: add aarch64 build (#49935) --- recipes/ratatosk/build.sh | 32 +++++++++++++++----------------- recipes/ratatosk/meta.yaml | 19 +++++++++++++------ 2 files changed, 28 insertions(+), 23 deletions(-) diff --git a/recipes/ratatosk/build.sh b/recipes/ratatosk/build.sh index de6321ef19764..b9db46d931856 100644 --- a/recipes/ratatosk/build.sh +++ b/recipes/ratatosk/build.sh @@ -1,27 +1,25 @@ -#!/bin/bash -set -x +#!/bin/bash -ex -export INCLUDE_PATH="${PREFIX}/include" -export LIBRARY_PATH="${PREFIX}/lib" +mkdir -p "${PREFIX}/bin" + +export INCLUDES="-I${PREFIX}/include" +export LIBPATH="-L${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" -export CXXFLAGS="${CXXFLAGS} -O3 -D_FILE_OFFSET_BITS=64" +export CXXFLAGS="${CXXFLAGS} -O3 -D_FILE_OFFSET_BITS=64 -I${PREFIX}/include" -if [ `uname` == Darwin ]; then - # See https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk for -D_LIBCPP_DISABLE_AVAILABILITY - export CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" - export CONFIG_ARGS="-DCMAKE_INSTALL_PREFIX=${PREFIX} -DCMAKE_FIND_FRAMEWORK=NEVER -DCMAKE_FIND_APPBUNDLE=NEVER" - else - export CONFIG_ARGS="-DCMAKE_INSTALL_PREFIX=${PREFIX}" +if [[ `uname` == Darwin ]]; then + export CONFIG_ARGS="-DCMAKE_FIND_FRAMEWORK=NEVER -DCMAKE_FIND_APPBUNDLE=NEVER" + export LDFLAGS="${LDFLAGS} -Wl,-rpath,${PREFIX}/lib" +else + export CONFIG_ARGS="" fi -mkdir -p "${PREFIX}/bin" - cmake -S . -B build \ - "${CONFIG_ARGS}" \ + -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_C_COMPILER="${CC}" \ -DCMAKE_CXX_COMPILER="${CXX}" \ - -DCMAKE_CXX_FLAGS="${CXXFLAGS}" + -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ + "${CONFIG_ARGS}" -cmake --build build/ --target install -j "${CPU_COUNT}" +cmake --build build/ --target install -j "${CPU_COUNT}" -v diff --git a/recipes/ratatosk/meta.yaml b/recipes/ratatosk/meta.yaml index bb8c9634d72bd..1a89715c74931 100644 --- a/recipes/ratatosk/meta.yaml +++ b/recipes/ratatosk/meta.yaml @@ -11,13 +11,15 @@ source: sha256: {{ sha256 }} patches: - cmakelists.patch -- url: https://github.com/pmelsted/bifrost/archive/refs/tags/v1.2.1.tar.gz - sha256: fe93080ef3ea71ff009fc206b5c17dd40fbfd18293000621a83d7d947dfedf1a +- url: https://github.com/pmelsted/bifrost/archive/refs/tags/v1.3.5.tar.gz + sha256: e1b2491328b0cc1a32e433a8a9780f05547fa4b8d674b58abdda9ac8809f5341 folder: Bifrost build: - number: 0 + number: 1 skip: True # [osx] + run_exports: + - {{ pin_subpackage('ratatosk', max_pin="x.x") }} requirements: build: @@ -34,12 +36,17 @@ test: - 'Ratatosk index --help' about: - home: https://github.com/DecodeGenetics/Ratatosk - license: BSD-2-Clause + home: "https://github.com/DecodeGenetics/Ratatosk" + license: "BSD-2-Clause" + license_family: BSD license_file: LICENSE - summary: "Hybrid error correction of long reads using colored de Bruijn graphs" + summary: "Hybrid error correction of long reads using colored de Bruijn graphs." + dev_url: "https://github.com/DecodeGenetics/Ratatosk" + doc_url: "https://github.com/DecodeGenetics/Ratatosk/blob/v{{ version }}/README.md" extra: identifiers: - biotools:ratatosk - doi:10.1186/s13059-020-02244-4 + additional-platforms: + - linux-aarch64 From 0ca9885238b6f4573444c73d90429c088fd853b7 Mon Sep 17 00:00:00 2001 From: Ruben Vorderman Date: Fri, 9 Aug 2024 10:13:40 +0200 Subject: [PATCH 1162/1514] Update NanoPlot to 1.43.0 (#49936) * Update NanoPlot to 1.43.0 * provide the correct URL --- recipes/nanoplot/meta.yaml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/recipes/nanoplot/meta.yaml b/recipes/nanoplot/meta.yaml index b40260be1a127..203e3d77fef6d 100644 --- a/recipes/nanoplot/meta.yaml +++ b/recipes/nanoplot/meta.yaml @@ -1,12 +1,12 @@ -{% set version = "1.42.0" %} +{% set version = "1.43.0" %} package: name: nanoplot version: {{ version }} source: - url: https://pypi.io/packages/source/n/nanoplot/NanoPlot-{{ version }}.tar.gz - sha256: 0f8fd2cffd33a346b3306716058c6cb4091c931e8ab502f10b17a28749e8b6d9 + url: https://files.pythonhosted.org/packages/5f/95/8db2c1dfa964fdf85f708e8986a0f49ed6e8f0787c4a24ad01a84dded3c8/nanoplot-{{ version }}.tar.gz + sha256: 0f94096d689b552c32fd7246ad87cb6d5e5e2499dad5acc551091e0ff67f48df build: entry_points: @@ -28,8 +28,7 @@ requirements: - scipy - python-dateutil - libpng - - nanoget >=1.18.1 - - nanomath >=1.0.0 + - nanoget >=1.19.1 - plotly >=5.4.0 - pyarrow - python-kaleido From 85a8f505a0a252fa45b50972946055bce002852b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 9 Aug 2024 07:12:58 -0400 Subject: [PATCH 1163/1514] Update ms2query to 1.5.2 (#49938) --- recipes/ms2query/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ms2query/meta.yaml b/recipes/ms2query/meta.yaml index d7cc514c1073a..85bdb718e29af 100644 --- a/recipes/ms2query/meta.yaml +++ b/recipes/ms2query/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ms2query" %} -{% set version = "1.5.1" %} -{% set sha256 = "cb1e46a18fa9bc75530975512f1e9fba40d1199d4e7203a4562261afd7b3f9bd" %} +{% set version = "1.5.2" %} +{% set sha256 = "91ab116457aea8c3e7dd9486d41e78134edd5953941cf64cda327b22cb44a736" %} package: name: {{ name|lower }} From 8cb1d90cc0ee91c138a5f3adda3baa1884a2c2c5 Mon Sep 17 00:00:00 2001 From: Jonas Scheid <43858870+jonasscheid@users.noreply.github.com> Date: Fri, 9 Aug 2024 15:38:01 +0200 Subject: [PATCH 1164/1514] Bump comet-ms version (#49941) --- recipes/comet-ms/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/comet-ms/meta.yaml b/recipes/comet-ms/meta.yaml index 66057b41ec387..addbd48fa6ffe 100644 --- a/recipes/comet-ms/meta.yaml +++ b/recipes/comet-ms/meta.yaml @@ -1,20 +1,20 @@ {% set name = "comet-ms" %} -{% set version = "2023012" %} -{% set md5 = "d60433652e5a5e682288ddbdfb014eb4" %} +{% set version = "2024011" %} +{% set md5 = "3f0dc29582792620b0cc916c2117965f" %} package: name: {{ name }} version: {{ version }} source: - url: https://github.com/UWPR/Comet/archive/refs/tags/v2023.01.2.zip + url: https://github.com/UWPR/Comet/archive/refs/tags/v2024.01.1.zip md5: {{ md5 }} build: run_exports: - {{ pin_subpackage('comet-ms', max_pin=None) }} skip: True # [osx] - number: 1 + number: 0 requirements: build: From 23be1371b3b8d6a46d80a0bbadc87c754a2b1192 Mon Sep 17 00:00:00 2001 From: Ruben Vorderman Date: Fri, 9 Aug 2024 15:56:58 +0200 Subject: [PATCH 1165/1514] Use a versioned URL for downloading (#49942) --- recipes/nanoplot/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/nanoplot/meta.yaml b/recipes/nanoplot/meta.yaml index 203e3d77fef6d..af69dc565bfdf 100644 --- a/recipes/nanoplot/meta.yaml +++ b/recipes/nanoplot/meta.yaml @@ -5,13 +5,13 @@ package: version: {{ version }} source: - url: https://files.pythonhosted.org/packages/5f/95/8db2c1dfa964fdf85f708e8986a0f49ed6e8f0787c4a24ad01a84dded3c8/nanoplot-{{ version }}.tar.gz + url: https://pypi.io/packages/source/n/nanoplot/nanoplot-{{ version }}.tar.gz sha256: 0f94096d689b552c32fd7246ad87cb6d5e5e2499dad5acc551091e0ff67f48df build: entry_points: - NanoPlot=nanoplot.NanoPlot:main - number: 0 + number: 1 noarch: python run_exports: - {{ pin_subpackage("nanoplot", max_pin="x.x") }} From 4667ae26edfda41389ca2595bd7d62cedb9d8e7c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 9 Aug 2024 12:06:05 -0400 Subject: [PATCH 1166/1514] Update pyani to 0.2.13.1 (#49937) * Update pyani to 0.2.13.1 * Add five dependencies Co-authored-by: Peter Cock --- recipes/pyani/meta.yaml | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/recipes/pyani/meta.yaml b/recipes/pyani/meta.yaml index f1f82a9ce5b49..36b375deb00aa 100644 --- a/recipes/pyani/meta.yaml +++ b/recipes/pyani/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pyani" %} -{% set version = "0.2.13" %} +{% set version = "0.2.13.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/widdowquinn/{{ name|lower }}/archive/v{{ version }}.tar.gz - sha256: e8dc2f7ece2e0788c7a61e9d5814d137849d722ee25dfa556d25f35d7bdd8b76 + sha256: 98c2bb205eb286bd53b27d0deacd01ad25f00dd2483a91ba19765203af03d9ef build: number: 0 @@ -23,14 +23,19 @@ requirements: run: - python >=3.7 - biopython + - blast + - blast-legacy # [not osx] + - intervaltree - matplotlib-base + - mummer + - namedlist + - networkx + - numpy - pandas - - seaborn-base - scipy - - numpy - - mummer - - blast - - blast-legacy # [not osx] + - seaborn-base + - sqlalchemy + - tqdm test: imports: From 4e89edd5521a7e767e2933c491540fd25cb96347 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 9 Aug 2024 15:14:42 -0400 Subject: [PATCH 1167/1514] Update pbstarphase to 0.13.2 (#49951) --- recipes/pbstarphase/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pbstarphase/meta.yaml b/recipes/pbstarphase/meta.yaml index 7eb2b16bcdfc7..315dbe59df582 100644 --- a/recipes/pbstarphase/meta.yaml +++ b/recipes/pbstarphase/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pbstarphase" %} -{% set version = "0.13.1" %} -{% set sha256 = "1808901a0c3c29093733046ec343122905980566423773e64e8df29060ae6721" %} +{% set version = "0.13.2" %} +{% set sha256 = "648297e149009d7658c9425d56bbc23a6f6c051192f5dc88dc7a8f7383be9122" %} package: name: {{ name }} From ee02bce19cb4f053ff0190e506675c9702b79723 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 9 Aug 2024 16:42:01 -0400 Subject: [PATCH 1168/1514] Update sequali to 0.11.0 (#49948) --- recipes/sequali/meta.yaml | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/recipes/sequali/meta.yaml b/recipes/sequali/meta.yaml index 69fccabe0a7f7..85a72ca5e63d3 100644 --- a/recipes/sequali/meta.yaml +++ b/recipes/sequali/meta.yaml @@ -1,5 +1,5 @@ {% set name = "sequali" %} -{% set version = "0.10.0" %} +{% set version = "0.11.0" %} package: name: "{{ name|lower }}" @@ -7,24 +7,26 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: c43b38a212c80bfd3f44bb0beeb37f62c9cb298698f2c876e5231cfb6faa34e1 + sha256: 7a166a196d31681b92f893f4d5cac876acf28f972ce292f218ee0ad81deba39c build: - number: 1 + number: 0 entry_points: - sequali=sequali.__main__:main - sequali-report=sequali.__main__:sequali_report + script_env: + - SETUPTOOLS_SCM_PRETEND_VERSION={{ version }} run_exports: - {{ pin_subpackage('sequali', max_pin="x.x") }} - script: "{{ PYTHON }} -m pip install . -vv" - + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" requirements: build: - "{{ compiler('c') }}" - - pip host: - python + - pip + - setuptools-scm >=8.0 run: - pygal >=3.0.4 - python @@ -40,7 +42,7 @@ test: about: home: "https://github.com/rhpvorderman/sequali" - license: "GNU Affero General Public v3 or later (AGPLv3+)" + license: "AGPL-3.0-or-later" license_family: AGPL license_file: LICENSE summary: "Fast sequencing quality metrics" @@ -50,4 +52,5 @@ about: extra: recipe-maintainers: - rhpvorderman - + identifiers: + - doi:10.5281/zenodo.10854010 From 7b42f79525c3c5321b11efea5324ffefbafe7493 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 10 Aug 2024 09:44:22 -0400 Subject: [PATCH 1169/1514] Update poolsnp to 1.0.1 (#49955) --- recipes/poolsnp/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/poolsnp/meta.yaml b/recipes/poolsnp/meta.yaml index 5f92f96931557..b477040292487 100644 --- a/recipes/poolsnp/meta.yaml +++ b/recipes/poolsnp/meta.yaml @@ -1,5 +1,5 @@ {% set name = "poolsnp" %} -{% set version = "1.0.0" %} +{% set version = "1.0.1" %} {% set github = "https://github.com/capoony/PoolSNP" %} package: @@ -8,7 +8,7 @@ package: source: url: "{{ github }}/archive/refs/tags/v.{{ version }}.tar.gz" - sha256: a73c61c7ef49be9bd1212ea8049fe617296b0a82b80e0338e2b78dc55105438f + sha256: a98003758e2f93f2c7dc907ad990594e7fa85ca5f3fd5a7b3bcbc6363fbb9571 requirements: host: @@ -37,4 +37,4 @@ about: extra: recipe-maintainers: - - abhilesh \ No newline at end of file + - abhilesh From 7d56256f5792bd10f30909a0d04b050f81e38d2f Mon Sep 17 00:00:00 2001 From: John Lees Date: Sat, 10 Aug 2024 14:45:59 +0100 Subject: [PATCH 1170/1514] Bump poppunk to v2.7.0 (#49943) --- recipes/poppunk/meta.yaml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/recipes/poppunk/meta.yaml b/recipes/poppunk/meta.yaml index fb5756890a9fc..802e0ca68a124 100644 --- a/recipes/poppunk/meta.yaml +++ b/recipes/poppunk/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.6.7" %} +{% set version = "2.7.0" %} {% set name = "PopPUNK" %} package: @@ -7,7 +7,7 @@ package: source: url: https://github.com/bacpop/{{ name|lower }}/archive/v{{ version }}.tar.gz - sha256: faa11756c6c7acc0df2ef50a1deaf27432f1e510219a7484cc16f92e44b2e179 + sha256: bba7cb9fad5027abc78fd6761755169ae999d3d86a96bdfbfe577a360f907067 build: number: 0 @@ -89,6 +89,7 @@ test: - poppunk_references --help - poppunk_mandrake --help - poppunk_info --help + - poppunk_lineages_from_strains --help about: home: https://poppunk.bacpop.org/ @@ -99,3 +100,8 @@ about: extra: identifiers: - doi:10.1101/gr.241455.118 + # enabling this would require arm64 packages for: mandrake, pp-sketchlib, + # rapidnj + # additional-platforms: + # - linux-aarch64 + # - osx-arm64 From 4281dfa244b7b4bccec91cc34e89d7ac863262b5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 10 Aug 2024 23:02:04 -0400 Subject: [PATCH 1171/1514] Update treetime to 0.11.4 (#49957) --- recipes/treetime/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/treetime/meta.yaml b/recipes/treetime/meta.yaml index ae44e4a810ad5..96041b068c5e5 100644 --- a/recipes/treetime/meta.yaml +++ b/recipes/treetime/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.11.3" %} -{% set sha256 = "c19b336691fcf3fddbb2b0e55000ff6d4aafca1f2bdf75b4ab39631a57a73e2b" %} +{% set version = "0.11.4" %} +{% set sha256 = "0b41c4a60e020ad7888693ebc4e7f8001df977243154bf577f1567a48f71b31c" %} package: name: treetime @@ -11,7 +11,7 @@ source: build: noarch: python - number: 1 + number: 0 script: {{ PYTHON }} -m pip install --no-deps --ignore-installed . -vvv entry_points: - treetime = treetime.__main__:main From b089fa3978c774270700049a52d24fa2182ca9d3 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 11 Aug 2024 10:14:58 -0400 Subject: [PATCH 1172/1514] Update igv-reports to 1.13.0 (#49958) --- recipes/igv-reports/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/igv-reports/meta.yaml b/recipes/igv-reports/meta.yaml index 1e69cef3c08a1..20b827500ef81 100644 --- a/recipes/igv-reports/meta.yaml +++ b/recipes/igv-reports/meta.yaml @@ -1,5 +1,5 @@ {% set name = "igv-reports" %} -{% set version = "1.12.0" %} +{% set version = "1.13.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 2a4bb08945e7872108a83037468249581b2fb42b2934cf33446971443175611d + sha256: 8f51312dd06a7dfa379dc61a25bf8b5dc8565fbe260bcae4ba5f98e79a17fbbf build: noarch: python From c1cf6044d2302819e5a78aa56c49e4d813bb7aa3 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 11 Aug 2024 10:16:52 -0400 Subject: [PATCH 1173/1514] Update quantms-utils to 0.0.5 (#49959) --- recipes/quantms-utils/meta.yaml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/recipes/quantms-utils/meta.yaml b/recipes/quantms-utils/meta.yaml index e327ae907a0f9..9adab27093c22 100644 --- a/recipes/quantms-utils/meta.yaml +++ b/recipes/quantms-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "quantms-utils" %} -{% set version = "0.0.4" %} +{% set version = "0.0.5" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/quantms_utils-{{ version }}.tar.gz - sha256: 627a5eac7b32f6fc2fcdbaf64459eec2d55ddff5bbe573a0f86e44c7f986ba35 + sha256: 068625b5d5ca37255b5f108fd52cf31a73387b4660ca6284bcf5853268b9a32a build: entry_points: @@ -26,10 +26,12 @@ requirements: - python >=3.7.0,<4.0.0 - click >=7.0 - pydantic >=1.10,<2 - - sdrf-pipelines >=0.0.26 - - pyopenms >=2.6.0 - - ms2rescore ==3.0.2 - - psm-utils ==0.8.0 + - sdrf-pipelines >=0.0.29 + - pyopenms >=2.9.1 + - ms2rescore ==3.0.3 + - psm-utils ==0.8.2 + - ms2pip ==4.0.0.dev8 + - deeplc ==2.2.38 - pandas >=1.0.0 - numpy From b5718d8b25c136a285a46e055bab04bedfd12254 Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Sun, 11 Aug 2024 16:17:56 +0200 Subject: [PATCH 1174/1514] Syncmeta rnaalishapes (#49960) --- recipes/rnaalishapes/meta.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/recipes/rnaalishapes/meta.yaml b/recipes/rnaalishapes/meta.yaml index f9df163582cb8..17ef0ed23173e 100644 --- a/recipes/rnaalishapes/meta.yaml +++ b/recipes/rnaalishapes/meta.yaml @@ -1,19 +1,20 @@ -{% set version = "2.3.1" %} +{% set fold_grammars_version = "2.3.1" %} +{% set rnaalishapes_version = "2.5.0" %} {% set packagename = "rnaalishapes" %} {% set sha256 = "0c5b7d91893d0a23189f4af3602e18f110f030eac49a3658f7acede23596fde0" %} package: name: {{ packagename }} - version: 2.5.0 + version: {{ rnaalishapes_version }} source: sha256: {{ sha256 }} # the repository "fold-grammars" contains sources for several programs, i.e. pKiss, RNAshapes, ... # thus, the version number does not correspond to the {{ packagename }} version number - url: https://github.com/jlab/fold-grammars/archive/{{ version }}.tar.gz + url: https://github.com/jlab/fold-grammars/archive/{{ fold_grammars_version }}.tar.gz build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('rnaalishapes', max_pin="x") }} From b90d63cf302b227d5f2ffa15763d84429f0abc61 Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Sun, 11 Aug 2024 16:18:28 +0200 Subject: [PATCH 1175/1514] Syncmeta pkiss (#49961) --- recipes/pkiss/meta.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/recipes/pkiss/meta.yaml b/recipes/pkiss/meta.yaml index 6e05c89596ce9..5bef440d7e10c 100644 --- a/recipes/pkiss/meta.yaml +++ b/recipes/pkiss/meta.yaml @@ -1,19 +1,20 @@ -{% set version = "2.3.1" %} +{% set fold_grammars_version = "2.3.1" %} +{% set pkiss_version = "2.3.0" %} {% set packagename = "pkiss" %} {% set sha256 = "0c5b7d91893d0a23189f4af3602e18f110f030eac49a3658f7acede23596fde0" %} package: name: {{ packagename }} - version: 2.3.0 + version: {{ pkiss_version }} source: sha256: {{ sha256 }} # the repository "fold-grammars" contains sources for several programs, i.e. pKiss, RNAshapes, ... # thus, the version number does not correspond to the {{ packagename }} version number - url: https://github.com/jlab/fold-grammars/archive/{{ version }}.tar.gz + url: https://github.com/jlab/fold-grammars/archive/{{ fold_grammars_version }}.tar.gz build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('pkiss', max_pin="x") }} From 5bf0b0db45aab3866c407d8647da0a22174700cc Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Sun, 11 Aug 2024 16:18:59 +0200 Subject: [PATCH 1176/1514] Syncmeta palikiss (#49962) --- recipes/palikiss/meta.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/recipes/palikiss/meta.yaml b/recipes/palikiss/meta.yaml index 6d375b44938c5..556c317057398 100644 --- a/recipes/palikiss/meta.yaml +++ b/recipes/palikiss/meta.yaml @@ -1,19 +1,20 @@ -{% set version = "2.3.1" %} +{% set fold_grammars_version = "2.3.1" %} +{% set palikiss_version = "1.1.0" %} {% set packagename = "palikiss" %} {% set sha256 = "0c5b7d91893d0a23189f4af3602e18f110f030eac49a3658f7acede23596fde0" %} package: name: {{ packagename }} - version: 1.1.0 + version: {{ palikiss_version }} source: sha256: {{ sha256 }} # the repository "fold-grammars" contains sources for several programs, i.e. pKiss, RNAshapes, ... # thus, the version number does not correspond to the {{ packagename }} version number - url: https://github.com/jlab/fold-grammars/archive/{{ version }}.tar.gz + url: https://github.com/jlab/fold-grammars/archive/{{ fold_grammars_version }}.tar.gz build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('palikiss', max_pin="x") }} From 371b63bc9da1be4b2d01f3db324f163e8773a701 Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Sun, 11 Aug 2024 16:42:10 +0200 Subject: [PATCH 1177/1514] Add acms (#49353) * using latest release of upstream * use recent gapc update with hopes to compile on OSX * add subrecipe for older version 4.3.10 (pinned in qiime2) which shall additionally expose upp.config * adding recipe for aCMs * fix hashsum and fix subpackage name * adding GHC as dependency * remove flag * using pre-release * fix version number * pre-release is using different URL :-/ * pin libiconf version for OSX * typo * skip OSX --- recipes/acms/build.sh | 6 +++++ recipes/acms/meta.yaml | 50 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 recipes/acms/build.sh create mode 100644 recipes/acms/meta.yaml diff --git a/recipes/acms/build.sh b/recipes/acms/build.sh new file mode 100644 index 0000000000000..00b12a00c829b --- /dev/null +++ b/recipes/acms/build.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +make -j ${CPU_COUNT} PREFIX=$PREFIX CC=$CC -C Misc/Applications/aCMs all +make PREFIX=$PREFIX CC=$CC -C Misc/Applications/aCMs install-program +make PREFIX=$PREFIX CC=$CC -C Misc/Applications/lib install +chmod 755 $PREFIX/bin/acmbuild* diff --git a/recipes/acms/meta.yaml b/recipes/acms/meta.yaml new file mode 100644 index 0000000000000..d3a8e129c7d2a --- /dev/null +++ b/recipes/acms/meta.yaml @@ -0,0 +1,50 @@ +{% set fold_grammars_version = "2.3.2" %} +{% set acms_version = "1.3.0" %} +{% set packagename = "acms" %} +{% set sha256 = "d3e6cc8d2ecd31d4764b41fea589b98c637ff227d7ab3dcfe66f2ad3f24dece5" %} + +package: + name: {{ packagename }} + version: 1.3.0 + +source: + sha256: {{ sha256 }} + # the repository "fold-grammars" contains sources for several programs, i.e. pKiss, RNAshapes, ... + # thus, the version number does not correspond to the {{ packagename }} version number + #url: https://github.com/jlab/fold-grammars/archive/{{ version }}.tar.gz + url: https://github.com/jlab/fold-grammars/archive/refs/tags/{{ fold_grammars_version }}.tar.gz + +build: + number: 0 + skip: True # [osx] + run_exports: + - {{ pin_subpackage('acms', max_pin="x") }} + +requirements: + build: + - make + - {{ compiler('cxx') }} + - ghc + host: + - perl + - bellmans-gapc >=2024.01.12 + - ghc + run: + - perl + - bellmans-gapc >=2024.01.12 + - ghc + +test: + commands: + - acmbuild -h + +about: + home: https://bibiserv.cebitec.uni-bielefeld.de/{{ packagename }} + license: 'GPL-3.0-or-later' + license_file: LICENSE + summary: 'Ambivalent Covariance Models (aCMs) are our prototypic suggestion to extend CMs with more than one consensus structure.' + +extra: + identifiers: + - doi:10.1186/s12859-015-0569-1 + - doi:10.1093/bioinformatics/btu649 From b4d3712c95d8a76a751aaaff12638a76dda6623c Mon Sep 17 00:00:00 2001 From: Peter Cock Date: Sun, 11 Aug 2024 16:33:46 +0100 Subject: [PATCH 1178/1514] Build gofasta on osx-arm64 (#49944) * Build gofasta on osx-arm64 Closes #49566 * Update recipes/gofasta/meta.yaml --------- Co-authored-by: Cornelius Roemer --- recipes/gofasta/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/gofasta/meta.yaml b/recipes/gofasta/meta.yaml index 64a8626a53d44..0064cbdb824bc 100644 --- a/recipes/gofasta/meta.yaml +++ b/recipes/gofasta/meta.yaml @@ -13,7 +13,7 @@ requirements: - {{ compiler('go-nocgo') }} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('gofasta', max_pin="x") }} script: @@ -32,4 +32,5 @@ about: extra: additional-platforms: - - linux-aarch64 \ No newline at end of file + - linux-aarch64 + - osx-arm64 From 9a2e7e7ceb5fbb0184e6ded71a2e02329b12cea5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 12 Aug 2024 00:21:37 -0400 Subject: [PATCH 1179/1514] Update falco to 1.2.3 (#49965) --- recipes/falco/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/falco/meta.yaml b/recipes/falco/meta.yaml index 766c20816dbf0..33e07e1c9e50f 100644 --- a/recipes/falco/meta.yaml +++ b/recipes/falco/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.2.2" %} +{% set version = "1.2.3" %} package: name: falco @@ -13,7 +13,7 @@ build: source: url: https://github.com/smithlabcode/falco/releases/download/v{{ version }}/falco-{{ version }}.tar.gz - sha256: 09cfb96eb4292ba0ca48713634e9da48fbe07e57a4ae8f24f356583ed6b1028b + sha256: b2d4da736efecfa669ad555fbb69862bc7fb57dcf32efcb6c151c47f98b32b8a requirements: build: From ea2cfb7aa3817880d303ce513cd1b008041a1382 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 12 Aug 2024 00:22:05 -0400 Subject: [PATCH 1180/1514] Update planemo to 0.75.25 (#49964) --- recipes/planemo/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/planemo/meta.yaml b/recipes/planemo/meta.yaml index e37d7821ced54..49795bf1c67d6 100644 --- a/recipes/planemo/meta.yaml +++ b/recipes/planemo/meta.yaml @@ -1,6 +1,6 @@ {% set name = "planemo" %} -{% set version = "0.75.24" %} -{% set sha256 = "a0ee1ace9b5e2a9bf17c735d3b95236e9756921eded7cd9847717dd0adff6e42" %} +{% set version = "0.75.25" %} +{% set sha256 = "31c2dda28677094f2d4ced21fa590d80070c71c16c97c561cdd1ffbff139997e" %} package: name: {{ name|lower }} From bf724904c16d6de224e36cb289e3eff81725187f Mon Sep 17 00:00:00 2001 From: "UENO, M." Date: Mon, 12 Aug 2024 13:24:25 +0900 Subject: [PATCH 1181/1514] Adding pdbx (#49934) --- recipes/pdbx/build.sh | 6 +++++ recipes/pdbx/meta.yaml | 50 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 recipes/pdbx/build.sh create mode 100644 recipes/pdbx/meta.yaml diff --git a/recipes/pdbx/build.sh b/recipes/pdbx/build.sh new file mode 100644 index 0000000000000..6945b07878f50 --- /dev/null +++ b/recipes/pdbx/build.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +mkdir -p build +cd build +cmake ${SRC_DIR} ${CMAKE_ARGS} +make install diff --git a/recipes/pdbx/meta.yaml b/recipes/pdbx/meta.yaml new file mode 100644 index 0000000000000..de822ef290861 --- /dev/null +++ b/recipes/pdbx/meta.yaml @@ -0,0 +1,50 @@ +{% set name = "pdbx" %} +{% set org = "soedinglab" %} +{% set version = "1.0.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/eunos-1128/pdbx/archive/refs/tags/v{{ version }}.tar.gz + version: {{ version }} + sha256: 6b2c9e632b9b9ad1ac7a2683f9e3a50c778dda559507072839924ae0b2bea6a3 + +build: + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} + +requirements: + build: + - make + - cmake + - {{ compiler('c') }} + - {{ compiler('cxx') }} # [linux] + host: + - python + run: + - python + +test: + commands: + - PACKAGE_NAME={{ name }}; python3 -c "import pkg_resources; import sys; sys.exit(0 if pkg_resources.get_distribution('${PACKAGE_NAME}') else 1)" + +about: + home: https://github.com/{{ org }}/{{ name }} + summary: pdbx is a parser module in python for structures of the protein data bank in the mmcif format + license: GPL-3.0-or-later + license_family: GPL3 + license_file: LICENSE + description: | + Proper recognition to the [Protein Data Bank](http://mmcif.wwpdb.org/docs/sw-examples/python/html/index.html) + where this library for protein structures in the mmCIF format initially came from. + We modified the original library to support python3. + This fork is used by scripts in the HHsuite [on GitHub](https://github.com/soedinglab/hh-suite). + doc_url: https://github.com/{{ org }}/{{ name }}#readme + dev_url: https://github.com/{{ org }}/{{ name }} + +extra: + recipe-maintainers: + - eunos-1128 From 24b8c7c072f8b22c542af02ba4ab6b998fd3fb6e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 12 Aug 2024 01:17:57 -0400 Subject: [PATCH 1182/1514] Update phylofisher to 1.2.14 (#49956) * Update phylofisher to 1.2.14 * bump mafft to 7.525 --------- Co-authored-by: mencian --- recipes/phylofisher/meta.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/recipes/phylofisher/meta.yaml b/recipes/phylofisher/meta.yaml index 29979d4e64b53..c95b2662fea79 100644 --- a/recipes/phylofisher/meta.yaml +++ b/recipes/phylofisher/meta.yaml @@ -1,5 +1,5 @@ {% set name = "PhyloFisher" %} -{% set version = "1.2.13" %} +{% set version = "1.2.14" %} package: name: "{{ name|lower }}" @@ -7,12 +7,12 @@ package: source: url: "https://github.com/TheBrownLab/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz" - sha256: 0003e1820bbf84453edbf3cba68e01e2bd1c24a12608fe02bc01b1168efb5a1b + sha256: fd2c46cf1a49eb0fb83348dd280292f5f6b3a2541d76dd21f7e377e90be9dde5 build: noarch: python number: 0 - script: "{{ PYTHON }} -m pip install . --ignore-installed --no-deps -vvv" + script: "{{ PYTHON }} -m pip install . --no-build-isolation --no-deps --no-cache-dir -vvv" run_exports: - {{ pin_subpackage('phylofisher', max_pin='x') }} @@ -30,7 +30,7 @@ requirements: - hmmer =3.3 - diamond =2.0.15 - fasttree =2.1.10 - - mafft =7.520 + - mafft =7.525 - trimal =1.4.1 - blast - cd-hit =4.8.1 @@ -47,7 +47,7 @@ about: home: "https://github.com/TheBrownLab/PhyloFisher" license: MIT license_family: MIT - license_file: LICENSE.txt + license_file: "LICENSE.txt" summary: "A package for the creation, analysis, and visualization of eukaryotic phylogenomic datasets." - doc_url: https://thebrownlab.github.io/phylofisher-pages/ - dev_url: https://github.com/TheBrownLab/PhyloFisher + doc_url: "https://thebrownlab.github.io/phylofisher-pages" + dev_url: "https://github.com/TheBrownLab/PhyloFisher" From 55c4bff52ccb904705ca6a230123f3ecfd22db1f Mon Sep 17 00:00:00 2001 From: Cameron Roots <38054423+croots@users.noreply.github.com> Date: Mon, 12 Aug 2024 00:38:25 -0500 Subject: [PATCH 1183/1514] Add Cryptkeeper (#49949) * Add cryptkeeper * edit license --------- Co-authored-by: mencian --- recipes/cryptkeeper/meta.yaml | 50 +++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 recipes/cryptkeeper/meta.yaml diff --git a/recipes/cryptkeeper/meta.yaml b/recipes/cryptkeeper/meta.yaml new file mode 100644 index 0000000000000..bd612a21cc2c6 --- /dev/null +++ b/recipes/cryptkeeper/meta.yaml @@ -0,0 +1,50 @@ +{% set name = "cryptkeeper" %} +{% set version = "1.0.1" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/cryptkeeper-{{ version }}.tar.gz + sha256: 7e43d858043073a98903b890846636c3b7c9e5ce289fe97c00ff5734d47357e8 + +build: + entry_points: + - cryptkeeper = cryptkeeper.cryptkeeper:main + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + number: 0 + run_exports: + - {{ pin_subpackage("cryptkeeper", max_pin="x") }} + +requirements: + host: + - python >=3.9 + - pip + run: + - python >=3.9 + - ostir + - rhotermpredict + - promotercalculator + - bokeh + - biopython + +test: + imports: + - cryptkeeper + commands: + - cryptkeeper --help + +about: + home: https://github.com/barricklab/cryptkeeper + summary: "A negative design tool for predicting and visualizing undesired gene expression" + license: "GPL-3.0-only" + license_file: LICENSE + license_family: GPL3 + dev_url: https://github.com/barricklab/cryptkeeper + +extra: + recipe-maintainers: + - croots + - jeffreybarrick From 669dd9e5ccc8988672554a5cf2eece249575130e Mon Sep 17 00:00:00 2001 From: Patrik Smeds Date: Mon, 12 Aug 2024 08:03:52 +0200 Subject: [PATCH 1184/1514] feat: recipe to install tool sdust (#49954) * feat: recipe to install tool sdust * clean up recipe * edit meta.yaml --------- Co-authored-by: mencian --- recipes/sdust/build.sh | 13 +++++++++++++ recipes/sdust/meta.yaml | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 recipes/sdust/build.sh create mode 100644 recipes/sdust/meta.yaml diff --git a/recipes/sdust/build.sh b/recipes/sdust/build.sh new file mode 100644 index 0000000000000..7ff428c933942 --- /dev/null +++ b/recipes/sdust/build.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +set -x -e + +export CPATH=${PREFIX}/include + +mkdir -p "${PREFIX}/bin" + +make CC="$CC" -j ${CPU_COUNT} + +chmod 0755 sdust + +cp -rf sdust "${PREFIX}/bin" diff --git a/recipes/sdust/meta.yaml b/recipes/sdust/meta.yaml new file mode 100644 index 0000000000000..3f02219bfa557 --- /dev/null +++ b/recipes/sdust/meta.yaml @@ -0,0 +1,37 @@ +{% set version = "0.1" %} +{% set name = "sdust" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/lh3/sdust/archive/refs/tags/v{{ version }}.tar.gz + sha256: 0825a760fae884e65b2b024cc4f511e32e6c1698571c147daf5a61ba0dcac589 + +build: + number: 0 + run_exports: + - {{ pin_subpackage("sdust", max_pin="x.x") }} + +requirements: + build: + - make + - {{ compiler('cxx') }} + - zlib + host: + - zlib + +test: + commands: + - "sdust 2>&1 | grep 'Usage: sdust'" + +about: + home: "https://github.com/lh3/sdust" + dev_url: "https://github.com/lh3/sdust" + license: Unknown + summary: "Symmetric DUST for finding low-complexity regions in DNA sequences." + +extra: + recipe-maintainers: + - smeds From 673a902343a71488bcafa17c415633cefa3e00cc Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 12 Aug 2024 01:09:51 -0500 Subject: [PATCH 1185/1514] Add recipe for ropebwt3 v3.3 (#49967) * Add recipe for ropebwt3 v3.3 * edit tests --- recipes/ropebwt3/build.sh | 10 +++++++++ recipes/ropebwt3/meta.yaml | 42 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 recipes/ropebwt3/build.sh create mode 100644 recipes/ropebwt3/meta.yaml diff --git a/recipes/ropebwt3/build.sh b/recipes/ropebwt3/build.sh new file mode 100644 index 0000000000000..5937aa9f2776c --- /dev/null +++ b/recipes/ropebwt3/build.sh @@ -0,0 +1,10 @@ +#!/bin/bash -xe + +make -j ${CPU_COUNT} \ + CC="${CC}" \ + CFLAGS="${CFLAGS} -fcommon -g -Wall -Wc++-compat -O3" \ + LIBS="${LDFLAGS} -lz -lpthread -lm -fopenmp" + +mkdir -p "${PREFIX}/bin" +chmod 0755 ropebwt3 +mv ropebwt3 "${PREFIX}/bin/" diff --git a/recipes/ropebwt3/meta.yaml b/recipes/ropebwt3/meta.yaml new file mode 100644 index 0000000000000..9dda7bde10d1a --- /dev/null +++ b/recipes/ropebwt3/meta.yaml @@ -0,0 +1,42 @@ +{% set name = "ropebwt3" %} +{% set version = "3.3" %} + +package: + name: {{ name }} + version: {{ version }} + +build: + number: 0 + run_exports: + - {{ pin_subpackage('ropebwt3', max_pin="x") }} + +source: + url: https://github.com/lh3/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz + sha256: c16bc6d26c6cdb10b3b1cfdb06f3734c6020e62d72f8c33454eb36520b6c02d3 + +requirements: + build: + - make + - {{ compiler('c') }} + host: + - zlib + - libgomp # [linux] + - llvm-openmp # [osx] + +test: + commands: + - "ropebwt3 version /dev/null 2>&1" + +about: + home: "https://github.com/lh3/ropebwt3" + license: MIT + license_family: MIT + license_file: "LICENSE.txt" + summary: "Constructs the FM-index of a large DNA sequence set and searches for matches against the FM-index." + dev_url: "https://github.com/lh3/ropebwt3" + doc_url: "https://github.com/lh3/ropebwt3/blob/v{{ version }}/README.md" + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From f629d764e44b8f3a6e392416bce05ce19dcfb3ec Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 12 Aug 2024 04:40:47 -0400 Subject: [PATCH 1186/1514] Update graphbin2 to 1.3.2 (#49977) --- recipes/graphbin2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/graphbin2/meta.yaml b/recipes/graphbin2/meta.yaml index e1976a97ce5e1..d2123ff197adf 100644 --- a/recipes/graphbin2/meta.yaml +++ b/recipes/graphbin2/meta.yaml @@ -1,5 +1,5 @@ {% set name = "GraphBin2" %} -{% set version = "1.3.1" %} +{% set version = "1.3.2" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://github.com/metagentools/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz" - sha256: 4086cc93980a4c964da2b9d0ae84eaf3aa4a6b9c01aa23b2c2d965bf85cef5f2 + sha256: 5cb611d539ac2608cf262ea5db39e4d81bc7c9c1a53ea2f5a47fb5d8abcb848a build: number: 0 From c6e3d7a3773e07667b22ad525c72a34359699dd1 Mon Sep 17 00:00:00 2001 From: RolandFaure <64131971+RolandFaure@users.noreply.github.com> Date: Mon, 12 Aug 2024 10:45:50 +0200 Subject: [PATCH 1187/1514] Update HairSplitter version (#49971) * updated harisplitter * Pin libcxx to <18 for OSX Signed-off-by: Martin Tzvetanov Grigorov * Update SHA * update hairsplitter to 1.9.10 --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Grigorov --- recipes/hairsplitter/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/hairsplitter/meta.yaml b/recipes/hairsplitter/meta.yaml index 2b8fcd0ec6156..575d9c4c308cb 100644 --- a/recipes/hairsplitter/meta.yaml +++ b/recipes/hairsplitter/meta.yaml @@ -1,6 +1,7 @@ {% set name = "HairSplitter" %} -{% set version = "1.9.9" %} -{% set sha256 = "1eacdd1bf6a97a223c7a969ff9b77f1791e2866b1619c74f7badc89a9ce46dfe" %} +{% set version = "1.9.10" %} +{% set sha256 = "ab20c7700d9b4cc04fed68933a1c4081167c4c0dd560de7b19672a7fe39b50f8" %} + package: name: {{ name|lower }} From 2ff0063922bc1b835e5d1bdb553acb1dbbff7065 Mon Sep 17 00:00:00 2001 From: Redmar van den Berg <15814544+Redmar-van-den-Berg@users.noreply.github.com> Date: Mon, 12 Aug 2024 11:05:36 +0200 Subject: [PATCH 1188/1514] T1K requires curl to download the HLA refence files (#49976) --- recipes/t1k/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/t1k/meta.yaml b/recipes/t1k/meta.yaml index d1a157c3a6e45..0e4865512483a 100644 --- a/recipes/t1k/meta.yaml +++ b/recipes/t1k/meta.yaml @@ -5,7 +5,7 @@ package: version: '{{ version }}' build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('t1k', max_pin="x") }} @@ -24,6 +24,7 @@ requirements: run: - perl - python + - curl test: commands: From ef2896e7e9c5b989dcf85fd62679d152e24130b2 Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Mon, 12 Aug 2024 11:25:21 +0200 Subject: [PATCH 1189/1514] Syncmeta rapidshapes (#49963) * using latest release of upstream * use recent gapc update with hopes to compile on OSX * add subrecipe for older version 4.3.10 (pinned in qiime2) which shall additionally expose upp.config * sync recipe with RNAshapes to avoid version number confusions * use latest package version --- recipes/rapidshapes/meta.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/recipes/rapidshapes/meta.yaml b/recipes/rapidshapes/meta.yaml index 33b9844539cdf..4d47e3bf59d6d 100644 --- a/recipes/rapidshapes/meta.yaml +++ b/recipes/rapidshapes/meta.yaml @@ -1,20 +1,21 @@ -{% set version = "2.3.2" %} +{% set fold_grammars_version = "2.3.2" %} +{% set rapidshapes_version = "2.1.0" %} {% set packagename = "rapidshapes" %} {% set sha256 = "d3e6cc8d2ecd31d4764b41fea589b98c637ff227d7ab3dcfe66f2ad3f24dece5" %} package: name: {{ packagename }} - version: 2.1.0 + version: {{ rapidshapes_version }} source: sha256: {{ sha256 }} # the repository "fold-grammars" contains sources for several programs, i.e. pKiss, RNAshapes, ... # thus, the version number does not correspond to the {{ packagename }} version number #url: https://github.com/jlab/fold-grammars/archive/{{ version }}.tar.gz - url: https://github.com/jlab/fold-grammars/archive/refs/tags/{{ version }}.tar.gz + url: https://github.com/jlab/fold-grammars/archive/refs/tags/{{ fold_grammars_version }}.tar.gz build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('rapidshapes', max_pin="x") }} From 562c6194a712ba9bbe3566fb0257af354f48ae12 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 12 Aug 2024 12:38:21 +0300 Subject: [PATCH 1190/1514] falco: add aarch64/arm64 builds (#49972) * falco: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Export M4 for osx-arm64 --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/falco/build.sh | 6 +++++- recipes/falco/meta.yaml | 5 ++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/recipes/falco/build.sh b/recipes/falco/build.sh index fe81a6f4127d6..294c111775771 100644 --- a/recipes/falco/build.sh +++ b/recipes/falco/build.sh @@ -1,5 +1,9 @@ #!/bin/bash +set -xe + +export M4="$BUILD_PREFIX/bin/m4" + # add Configuration and example files to opt falco=$PREFIX/opt/falco mkdir -p $falco @@ -13,7 +17,7 @@ export LD_LIBRARY_PATH=$LIBRARY_PATH:${PREFIX}/lib cd $falco ./configure --prefix=$falco --enable-hts -make +make -j ${CPU_COUNT} make install for i in $(ls -1 | grep -v Configuration | grep -v bin); do diff --git a/recipes/falco/meta.yaml b/recipes/falco/meta.yaml index 33e07e1c9e50f..8acc3f753b796 100644 --- a/recipes/falco/meta.yaml +++ b/recipes/falco/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: # falco is currently not intended to be stable between minor versions (x.x). - {{ pin_subpackage('falco', max_pin="x.x") }} @@ -41,6 +41,9 @@ test: - falco extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - andrewdavidsmith - guilhermesena1 From 36f4b841223ec662192625dd5927eee5286a30c5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 12 Aug 2024 06:05:59 -0400 Subject: [PATCH 1191/1514] Update sequali to 0.11.1 (#49979) * Update sequali to 0.11.1 * Move pip and setuptools-scm to build dependencies --------- Co-authored-by: Ruben Vorderman --- recipes/sequali/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/sequali/meta.yaml b/recipes/sequali/meta.yaml index 85a72ca5e63d3..27c8a30620ceb 100644 --- a/recipes/sequali/meta.yaml +++ b/recipes/sequali/meta.yaml @@ -1,5 +1,5 @@ {% set name = "sequali" %} -{% set version = "0.11.0" %} +{% set version = "0.11.1" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 7a166a196d31681b92f893f4d5cac876acf28f972ce292f218ee0ad81deba39c + sha256: d528a9a6eceace4fa8f1ef29625954a759928e7bab02348ef8f92887442f9527 build: number: 0 @@ -23,10 +23,10 @@ build: requirements: build: - "{{ compiler('c') }}" - host: - - python - pip - setuptools-scm >=8.0 + host: + - python run: - pygal >=3.0.4 - python From 9f550ba6a1c91c46f58526a53bfde172840b83b9 Mon Sep 17 00:00:00 2001 From: Sebastian Schmidt <61014855+sebschmi@users.noreply.github.com> Date: Mon, 12 Aug 2024 15:24:26 +0300 Subject: [PATCH 1192/1514] Update matchtigs to 2.1.7. (#49968) * Update matchtigs to 2.1.7. * Fix matchtigs download url. --------- Co-authored-by: mencian * clean up recipe --------- Co-authored-by: mencian Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/matchtigs/build.sh | 8 +- recipes/matchtigs/build_failure.linux-64.yaml | 104 ------------------ recipes/matchtigs/build_failure.osx-64.yaml | 104 ------------------ recipes/matchtigs/meta.yaml | 22 ++-- 4 files changed, 16 insertions(+), 222 deletions(-) delete mode 100644 recipes/matchtigs/build_failure.linux-64.yaml delete mode 100644 recipes/matchtigs/build_failure.osx-64.yaml diff --git a/recipes/matchtigs/build.sh b/recipes/matchtigs/build.sh index b6cbf0da5ee0e..fb79714e8ab7f 100755 --- a/recipes/matchtigs/build.sh +++ b/recipes/matchtigs/build.sh @@ -1,9 +1,3 @@ -#!/bin/bash -e - -# TODO: Remove the following export when pinning is updated and we use -# {{ compiler('rust') }} in the recipe. -export \ - CARGO_NET_GIT_FETCH_WITH_CLI=true \ - CARGO_HOME="${BUILD_PREFIX}/.cargo" +#!/bin/bash -ex cargo install --no-track --verbose --root "${PREFIX}" --path . diff --git a/recipes/matchtigs/build_failure.linux-64.yaml b/recipes/matchtigs/build_failure.linux-64.yaml deleted file mode 100644 index 7efc8e897a32f..0000000000000 --- a/recipes/matchtigs/build_failure.linux-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 02efdfc2f9abb5a0a1b47ed3022a17ded394809c39b45eb88ed5f9cb82af9995 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - Running rustc --crate-name time --edition=2021 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/time-0.3.21/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 --cfg 'feature="alloc"' --cfg 'feature="default"' --cfg 'feature="formatting"' --cfg 'feature="local-offset"' --cfg 'feature="macros"' --cfg 'feature="std"' -C metadata=cd91c07161414263 -C extra-filename=-cd91c07161414263 --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern itoa=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libitoa-62c89c15c3dfb3bd.rmeta --extern libc=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/liblibc-24109b92b56898e0.rmeta --extern num_threads=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libnum_threads-29052a9a6bdcc9a0.rmeta --extern time_core=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libtime_core-2e91ef91f00946ce.rmeta --extern time_macros=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libtime_macros-9ef2748d38fa3eaa.so --cap-lints allow - Compiling bigraph v2.1.1 - Running rustc --crate-name bigraph --edition=2021 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/bigraph-2.1.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 -C metadata=d48072365ca04b7e -C extra-filename=-d48072365ca04b7e --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern bitvector=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libbitvector-86c69f343ae8ebe4.rmeta --extern traitgraph=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libtraitgraph-9d144d98ec7b776d.rmeta --extern traitgraph_algo=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libtraitgraph_algo-0da65161844e678e.rmeta --cap-lints allow - Compiling compact-genome v1.3.1 - Running rustc --crate-name compact_genome --edition=2021 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/compact-genome-1.3.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 -C metadata=f1dacdb0e642ea1d -C extra-filename=-f1dacdb0e642ea1d --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern bitvec=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libbitvec-15d630b4c5e43590.rmeta --extern itertools=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libitertools-ef1bbdf2dc7723ca.rmeta --extern lazy_static=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/liblazy_static-fb705ce03f437159.rmeta --extern ref_cast=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libref_cast-42ca62cc9a853eb0.rmeta --extern traitsequence=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libtraitsequence-1a990810ce5d3411.rmeta --cap-lints allow - Running rustc --crate-name error_chain /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/error-chain-0.12.4/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 --cfg 'feature="backtrace"' --cfg 'feature="default"' --cfg 'feature="example_generated"' -C metadata=de91467585a0f101 -C extra-filename=-de91467585a0f101 --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern backtrace=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libbacktrace-af4cf630bdf33906.rmeta --cap-lints allow --cfg has_error_source --cfg has_error_description_deprecated --cfg 'build="release"' - Running rustc --crate-name crossbeam_queue --edition=2018 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-queue-0.3.8/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 --cfg 'feature="alloc"' --cfg 'feature="std"' -C metadata=a9a20555b2200c9e -C extra-filename=-a9a20555b2200c9e --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern cfg_if=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcfg_if-1f0e8aa877c8070d.rmeta --extern crossbeam_utils=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcrossbeam_utils-469504b851c5f146.rmeta --cap-lints allow - Compiling crossbeam-deque v0.8.3 - Running rustc --crate-name crossbeam_deque --edition=2018 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-deque-0.8.3/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 --cfg 'feature="crossbeam-epoch"' --cfg 'feature="crossbeam-utils"' --cfg 'feature="std"' -C metadata=09b8b5d6c6489017 -C extra-filename=-09b8b5d6c6489017 --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern cfg_if=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcfg_if-1f0e8aa877c8070d.rmeta --extern crossbeam_epoch=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcrossbeam_epoch-03a2a8c23802678b.rmeta --extern crossbeam_utils=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcrossbeam_utils-469504b851c5f146.rmeta --cap-lints allow - Running rustc --crate-name crc32fast /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/crc32fast-1.3.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=1b5dbef380751fbb -C extra-filename=-1b5dbef380751fbb --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern cfg_if=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcfg_if-1f0e8aa877c8070d.rmeta --cap-lints allow --cfg crc32fast_stdarchx86 - Compiling crossbeam-channel v0.5.8 - Running rustc --crate-name crossbeam_channel --edition=2018 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-channel-0.5.8/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 --cfg 'feature="crossbeam-utils"' --cfg 'feature="std"' -C metadata=4ec529cb6862f4cf -C extra-filename=-4ec529cb6862f4cf --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern cfg_if=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcfg_if-1f0e8aa877c8070d.rmeta --extern crossbeam_utils=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcrossbeam_utils-469504b851c5f146.rmeta --cap-lints allow - Compiling miniz_oxide v0.7.1 - Running rustc --crate-name miniz_oxide --edition=2018 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/miniz_oxide-0.7.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 --cfg 'feature="with-alloc"' -C metadata=d4b698deea0ed15d -C extra-filename=-d4b698deea0ed15d --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern adler=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libadler-bc2939b95ebef4b5.rmeta --cap-lints allow - Compiling clap_derive v4.3.0 - Running rustc --crate-name clap_derive --edition=2021 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/clap_derive-4.3.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type proc-macro --emit=dep-info,link -C prefer-dynamic -C embed-bitcode=no -C debug-assertions=off --cfg 'feature="default"' -C metadata=e5c04879dc24b4de -C extra-filename=-e5c04879dc24b4de --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern heck=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libheck-ce3c1226d2131855.rlib --extern proc_macro2=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libproc_macro2-28704a5d3a30d148.rlib --extern quote=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libquote-5e1d4707a1044434.rlib --extern syn=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libsyn-6909a0153da8cd82.rlib --extern proc_macro --cap-lints allow - Compiling termcolor v1.1.3 - Running rustc --crate-name termcolor --edition=2018 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/termcolor-1.1.3/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 -C metadata=bda75f15087c6830 -C extra-filename=-bda75f15087c6830 --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --cap-lints allow - Compiling disjoint-sets v0.4.2 - Running rustc --crate-name disjoint_sets /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/disjoint-sets-0.4.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 -C metadata=cdef6477d36b0c69 -C extra-filename=-cdef6477d36b0c69 --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --cap-lints allow - Compiling genome-graph v5.2.0 - Running rustc --crate-name genome_graph --edition=2021 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/genome-graph-5.2.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 --cfg 'feature="traitgraph-algo"' -C metadata=f1f9f43eca9c0cbc -C extra-filename=-f1f9f43eca9c0cbc --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern anyhow=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libanyhow-970e725c20f36b78.rmeta --extern bigraph=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libbigraph-d48072365ca04b7e.rmeta --extern bio=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libbio-428bb18d1e5e7978.rmeta --extern compact_genome=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcompact_genome-f1dacdb0e642ea1d.rmeta --extern disjoint_sets=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libdisjoint_sets-cdef6477d36b0c69.rmeta --extern error_chain=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/liberror_chain-de91467585a0f101.rmeta --extern log=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/liblog-222ce67e5627d39a.rmeta --extern num_traits=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libnum_traits-91ac9ff4e716de54.rmeta --extern regex=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libregex-e8f29f1319bd1bf9.rmeta --extern traitgraph_algo=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libtraitgraph_algo-0da65161844e678e.rmeta --cap-lints allow - Compiling clap v4.3.0 - Running rustc --crate-name clap --edition=2021 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-4.3.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 --cfg 'feature="cargo"' --cfg 'feature="color"' --cfg 'feature="default"' --cfg 'feature="derive"' --cfg 'feature="error-context"' --cfg 'feature="help"' --cfg 'feature="std"' --cfg 'feature="suggestions"' --cfg 'feature="usage"' -C metadata=62f315ad00245630 -C extra-filename=-62f315ad00245630 --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern clap_builder=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libclap_builder-8be52c6c0fae3a91.rmeta --extern clap_derive=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libclap_derive-e5c04879dc24b4de.so --extern once_cell=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libonce_cell-1af048d720dc90db.rmeta --cap-lints allow - Compiling simplelog v0.12.1 - Running rustc --crate-name simplelog --edition=2018 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/simplelog-0.12.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="local-offset"' --cfg 'feature="termcolor"' -C metadata=570deb8a8d99c61b -C extra-filename=-570deb8a8d99c61b --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern log=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/liblog-222ce67e5627d39a.rmeta --extern termcolor=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libtermcolor-bda75f15087c6830.rmeta --extern time=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libtime-cd91c07161414263.rmeta --cap-lints allow - Compiling flate2 v1.0.26 - Running rustc --crate-name flate2 --edition=2018 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/flate2-1.0.26/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="miniz_oxide"' --cfg 'feature="rust_backend"' -C metadata=e28aebe213d35db0 -C extra-filename=-e28aebe213d35db0 --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern crc32fast=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcrc32fast-1b5dbef380751fbb.rmeta --extern miniz_oxide=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libminiz_oxide-d4b698deea0ed15d.rmeta --cap-lints allow - Compiling crossbeam v0.8.2 - Running rustc --crate-name crossbeam --edition=2018 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-0.8.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 --cfg 'feature="alloc"' --cfg 'feature="crossbeam-channel"' --cfg 'feature="crossbeam-deque"' --cfg 'feature="crossbeam-epoch"' --cfg 'feature="crossbeam-queue"' --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=e0ba050ad89c9cc4 -C extra-filename=-e0ba050ad89c9cc4 --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern cfg_if=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcfg_if-1f0e8aa877c8070d.rmeta --extern crossbeam_channel=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcrossbeam_channel-4ec529cb6862f4cf.rmeta --extern crossbeam_deque=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcrossbeam_deque-09b8b5d6c6489017.rmeta --extern crossbeam_epoch=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcrossbeam_epoch-03a2a8c23802678b.rmeta --extern crossbeam_queue=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcrossbeam_queue-a9a20555b2200c9e.rmeta --extern crossbeam_utils=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcrossbeam_utils-469504b851c5f146.rmeta --cap-lints allow - Compiling memory-stats v1.1.0 - Running rustc --crate-name memory_stats --edition=2021 /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/memory-stats-1.1.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 -C metadata=0abaf08295d64751 -C extra-filename=-0abaf08295d64751 --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern libc=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/liblibc-24109b92b56898e0.rmeta --cap-lints allow - Compiling permutation v0.4.1 - Running rustc --crate-name permutation /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/permutation-0.4.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 -C metadata=cbccced583c33429 -C extra-filename=-cbccced583c33429 --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --cap-lints allow - Compiling atomic-counter v1.0.1 - Running rustc --crate-name atomic_counter /opt/conda/conda-bld/matchtigs_1685352493749/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/atomic-counter-1.0.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C debuginfo=2 -C metadata=83828d0b73047a5b -C extra-filename=-83828d0b73047a5b --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --cap-lints allow - Compiling matchtigs v1.5.5 (/opt/conda/conda-bld/matchtigs_1685352493749/work) - Running rustc --crate-name libmatchtigs --edition=2021 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type rlib --crate-type dylib --emit=dep-info,link -C opt-level=3 -C debuginfo=2 -C metadata=c59794c42c2e5d2c --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern atomic_counter=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libatomic_counter-83828d0b73047a5b.rlib --extern clap=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libclap-62f315ad00245630.rlib --extern crossbeam=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcrossbeam-e0ba050ad89c9cc4.rlib --extern disjoint_sets=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libdisjoint_sets-cdef6477d36b0c69.rlib --extern flate2=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libflate2-e28aebe213d35db0.rlib --extern genome_graph=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libgenome_graph-f1f9f43eca9c0cbc.rlib --extern hashbrown=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libhashbrown-8db72db2c593f85e.rlib --extern itertools=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libitertools-ef1bbdf2dc7723ca.rlib --extern log=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/liblog-222ce67e5627d39a.rlib --extern memory_stats=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libmemory_stats-0abaf08295d64751.rlib --extern permutation=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libpermutation-cbccced583c33429.rlib --extern simplelog=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libsimplelog-570deb8a8d99c61b.rlib --extern traitgraph_algo=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libtraitgraph_algo-0da65161844e678e.rlib - error[E0277]: the trait bound hashbrown::HashMap<_, _>: NodeWeightArray is not satisfied - --> src/implementation/greedytigs/mod.rs:153:17 - | - 153 | hashbrown::HashMap<_, _>, - | ^^^^^^^^^^^^^^^^^^^^^^^^ the trait NodeWeightArray is not implemented for hashbrown::HashMap<_, _> - | - = help: the following other types implement trait NodeWeightArray: - EpochNodeWeightArray - Vec - hashbrown::map::HashMap - note: required by a bound in compute_greedytigs_choose_dijkstra_performance_type - --> src/implementation/greedytigs/mod.rs:171:30 - | - 159 | fn compute_greedytigs_choose_dijkstra_performance_type< - | --------------------------------------------------- required by a bound in this function - ... - 171 | DijkstraNodeWeightArray: NodeWeightArray, - | ^^^^^^^^^^^^^^^^^^^^^^ required by this bound in compute_greedytigs_choose_dijkstra_performance_type - - error[E0277]: the trait bound hashbrown::HashMap<_, _>: NodeWeightArray is not satisfied - --> src/implementation/matchtigs/mod.rs:127:66 - | - 127 | compute_matchtigs::<_, _, _, _, _, DijkstraHeapType, hashbrown::HashMap<_, _>>( - | ^^^^^^^^^^^^^^^^^^^^^^^^ the trait NodeWeightArray is not implemented for hashbrown::HashMap<_, _> - | - = help: the following other types implement trait NodeWeightArray: - EpochNodeWeightArray - Vec - hashbrown::map::HashMap - note: required by a bound in compute_matchtigs - --> src/implementation/matchtigs/mod.rs:152:30 - | - 138 | fn compute_matchtigs< - | ----------------- required by a bound in this function - ... - 152 | DijkstraNodeWeightArray: NodeWeightArray, - | ^^^^^^^^^^^^^^^^^^^^^^ required by this bound in compute_matchtigs - - For more information about this error, try rustc --explain E0277. - error: could not compile matchtigs due to 2 previous errors - - Caused by: - process didn't exit successfully: rustc --crate-name libmatchtigs --edition=2021 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type rlib --crate-type dylib --emit=dep-info,link -C opt-level=3 -C debuginfo=2 -C metadata=c59794c42c2e5d2c --out-dir /opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps -C linker=/opt/conda/conda-bld/matchtigs_1685352493749/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps --extern atomic_counter=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libatomic_counter-83828d0b73047a5b.rlib --extern clap=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libclap-62f315ad00245630.rlib --extern crossbeam=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libcrossbeam-e0ba050ad89c9cc4.rlib --extern disjoint_sets=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libdisjoint_sets-cdef6477d36b0c69.rlib --extern flate2=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libflate2-e28aebe213d35db0.rlib --extern genome_graph=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libgenome_graph-f1f9f43eca9c0cbc.rlib --extern hashbrown=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libhashbrown-8db72db2c593f85e.rlib --extern itertools=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libitertools-ef1bbdf2dc7723ca.rlib --extern log=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/liblog-222ce67e5627d39a.rlib --extern memory_stats=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libmemory_stats-0abaf08295d64751.rlib --extern permutation=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libpermutation-cbccced583c33429.rlib --extern simplelog=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libsimplelog-570deb8a8d99c61b.rlib --extern traitgraph_algo=/opt/conda/conda-bld/matchtigs_1685352493749/work/target/release/deps/libtraitgraph_algo-0da65161844e678e.rlib (exit status: 1) - error: failed to compile matchtigs v1.5.5 (/opt/conda/conda-bld/matchtigs_1685352493749/work), intermediate artifacts can be found at /opt/conda/conda-bld/matchtigs_1685352493749/work/target - Traceback (most recent call last): - File "/opt/conda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/conda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/conda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/conda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/conda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/conda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/matchtigs_1685352493749/work/conda_build.sh']' returned non-zero exit status 101. -# Last 100 lines of the build log. diff --git a/recipes/matchtigs/build_failure.osx-64.yaml b/recipes/matchtigs/build_failure.osx-64.yaml deleted file mode 100644 index c1ec0d0846ab8..0000000000000 --- a/recipes/matchtigs/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: 02efdfc2f9abb5a0a1b47ed3022a17ded394809c39b45eb88ed5f9cb82af9995 # The commit at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - Running rustc --crate-name time --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/time-0.3.21/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 --cfg 'feature="alloc"' --cfg 'feature="default"' --cfg 'feature="formatting"' --cfg 'feature="local-offset"' --cfg 'feature="macros"' --cfg 'feature="std"' -C metadata=cff33a254c499774 -C extra-filename=-cff33a254c499774 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern itoa=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libitoa-b6b1c1e87a00a932.rmeta --extern libc=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/liblibc-5ccb4aa1e1d2bd7b.rmeta --extern num_threads=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libnum_threads-89b9574ec870b2e7.rmeta --extern time_core=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libtime_core-efbc93ef8285afaf.rmeta --extern time_macros=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libtime_macros-bdc1a6b7f4a5cf89.dylib --cap-lints allow - Compiling bigraph v2.1.1 - Running rustc --crate-name bigraph --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/bigraph-2.1.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 -C metadata=d2bd8a69f23852a3 -C extra-filename=-d2bd8a69f23852a3 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern bitvector=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libbitvector-62c20adfe03e270b.rmeta --extern traitgraph=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libtraitgraph-bc9e80d37d1ec123.rmeta --extern traitgraph_algo=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libtraitgraph_algo-51afa055a65fcde9.rmeta --cap-lints allow - Compiling compact-genome v1.3.1 - Running rustc --crate-name compact_genome --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/compact-genome-1.3.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 -C metadata=e9d7ac380993b77d -C extra-filename=-e9d7ac380993b77d --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern bitvec=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libbitvec-14901b094009aee9.rmeta --extern itertools=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libitertools-8b37b4be1693c850.rmeta --extern lazy_static=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/liblazy_static-8edbd0d7e87fd514.rmeta --extern ref_cast=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libref_cast-cc0d3a2bee0d0e12.rmeta --extern traitsequence=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libtraitsequence-a531d7f6a4e1fe1e.rmeta --cap-lints allow - Running rustc --crate-name error_chain /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/error-chain-0.12.4/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 --cfg 'feature="backtrace"' --cfg 'feature="default"' --cfg 'feature="example_generated"' -C metadata=6c9568dbb57bc607 -C extra-filename=-6c9568dbb57bc607 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern backtrace=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libbacktrace-570fe45a369c67f4.rmeta --cap-lints allow --cfg has_error_source --cfg has_error_description_deprecated --cfg 'build="release"' - Running rustc --crate-name crc32fast /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/crc32fast-1.3.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=7811e7ccc03c41a3 -C extra-filename=-7811e7ccc03c41a3 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern cfg_if=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcfg_if-339ca62e89c174cb.rmeta --cap-lints allow --cfg crc32fast_stdarchx86 - Compiling crossbeam-deque v0.8.3 - Running rustc --crate-name crossbeam_deque --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-deque-0.8.3/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 --cfg 'feature="crossbeam-epoch"' --cfg 'feature="crossbeam-utils"' --cfg 'feature="std"' -C metadata=7865db6c4e96116f -C extra-filename=-7865db6c4e96116f --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern cfg_if=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcfg_if-339ca62e89c174cb.rmeta --extern crossbeam_epoch=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcrossbeam_epoch-a10e430ec7b298ce.rmeta --extern crossbeam_utils=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcrossbeam_utils-bf65195b665feb14.rmeta --cap-lints allow - Running rustc --crate-name crossbeam_queue --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-queue-0.3.8/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 --cfg 'feature="alloc"' --cfg 'feature="std"' -C metadata=b41cf3aebcf055e5 -C extra-filename=-b41cf3aebcf055e5 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern cfg_if=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcfg_if-339ca62e89c174cb.rmeta --extern crossbeam_utils=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcrossbeam_utils-bf65195b665feb14.rmeta --cap-lints allow - Compiling crossbeam-channel v0.5.8 - Running rustc --crate-name crossbeam_channel --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-channel-0.5.8/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 --cfg 'feature="crossbeam-utils"' --cfg 'feature="std"' -C metadata=7bd094e4aa0096a2 -C extra-filename=-7bd094e4aa0096a2 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern cfg_if=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcfg_if-339ca62e89c174cb.rmeta --extern crossbeam_utils=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcrossbeam_utils-bf65195b665feb14.rmeta --cap-lints allow - Compiling miniz_oxide v0.7.1 - Running rustc --crate-name miniz_oxide --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/miniz_oxide-0.7.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 --cfg 'feature="with-alloc"' -C metadata=3da386d2fb157607 -C extra-filename=-3da386d2fb157607 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern adler=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libadler-754d0b764340dbd6.rmeta --cap-lints allow - Compiling clap_derive v4.3.0 - Running rustc --crate-name clap_derive --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/clap_derive-4.3.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type proc-macro --emit=dep-info,link -C prefer-dynamic -C embed-bitcode=no -C split-debuginfo=unpacked -C debug-assertions=off --cfg 'feature="default"' -C metadata=0f55988242712f27 -C extra-filename=-0f55988242712f27 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern heck=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libheck-62756755ed2fbfaa.rlib --extern proc_macro2=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libproc_macro2-40d3bbe8601e6cec.rlib --extern quote=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libquote-6701b06942490b47.rlib --extern syn=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libsyn-74574b7852e8dedb.rlib --extern proc_macro --cap-lints allow - Compiling disjoint-sets v0.4.2 - Running rustc --crate-name disjoint_sets /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/disjoint-sets-0.4.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 -C metadata=d6b88b013a3f602b -C extra-filename=-d6b88b013a3f602b --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --cap-lints allow - Compiling termcolor v1.1.3 - Running rustc --crate-name termcolor --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/termcolor-1.1.3/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 -C metadata=a4346f1bb9e6cd9d -C extra-filename=-a4346f1bb9e6cd9d --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --cap-lints allow - Compiling simplelog v0.12.1 - Running rustc --crate-name simplelog --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/simplelog-0.12.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="local-offset"' --cfg 'feature="termcolor"' -C metadata=049ab829b27b68bc -C extra-filename=-049ab829b27b68bc --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern log=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/liblog-9e6b74f49674def0.rmeta --extern termcolor=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libtermcolor-a4346f1bb9e6cd9d.rmeta --extern time=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libtime-cff33a254c499774.rmeta --cap-lints allow - Compiling clap v4.3.0 - Running rustc --crate-name clap --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-4.3.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 --cfg 'feature="cargo"' --cfg 'feature="color"' --cfg 'feature="default"' --cfg 'feature="derive"' --cfg 'feature="error-context"' --cfg 'feature="help"' --cfg 'feature="std"' --cfg 'feature="suggestions"' --cfg 'feature="usage"' -C metadata=74d7a9ce665f4d0a -C extra-filename=-74d7a9ce665f4d0a --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern clap_builder=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libclap_builder-a116f0451cad590b.rmeta --extern clap_derive=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libclap_derive-0f55988242712f27.dylib --extern once_cell=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libonce_cell-5097ed0257a50681.rmeta --cap-lints allow - Compiling genome-graph v5.2.0 - Running rustc --crate-name genome_graph --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/genome-graph-5.2.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 --cfg 'feature="traitgraph-algo"' -C metadata=161e13b62f7e18c3 -C extra-filename=-161e13b62f7e18c3 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern anyhow=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libanyhow-1bd97613d181b76f.rmeta --extern bigraph=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libbigraph-d2bd8a69f23852a3.rmeta --extern bio=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libbio-bc9df6df28031d3a.rmeta --extern compact_genome=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcompact_genome-e9d7ac380993b77d.rmeta --extern disjoint_sets=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libdisjoint_sets-d6b88b013a3f602b.rmeta --extern error_chain=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/liberror_chain-6c9568dbb57bc607.rmeta --extern log=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/liblog-9e6b74f49674def0.rmeta --extern num_traits=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libnum_traits-268c3fdbd8502ef9.rmeta --extern regex=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libregex-0703bb8ce6a2ee23.rmeta --extern traitgraph_algo=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libtraitgraph_algo-51afa055a65fcde9.rmeta --cap-lints allow - Compiling flate2 v1.0.26 - Running rustc --crate-name flate2 --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/flate2-1.0.26/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="miniz_oxide"' --cfg 'feature="rust_backend"' -C metadata=e088f03a9f7cc483 -C extra-filename=-e088f03a9f7cc483 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern crc32fast=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcrc32fast-7811e7ccc03c41a3.rmeta --extern miniz_oxide=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libminiz_oxide-3da386d2fb157607.rmeta --cap-lints allow - Compiling crossbeam v0.8.2 - Running rustc --crate-name crossbeam --edition=2018 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-0.8.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 --cfg 'feature="alloc"' --cfg 'feature="crossbeam-channel"' --cfg 'feature="crossbeam-deque"' --cfg 'feature="crossbeam-epoch"' --cfg 'feature="crossbeam-queue"' --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=2b10bb12540e959a -C extra-filename=-2b10bb12540e959a --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern cfg_if=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcfg_if-339ca62e89c174cb.rmeta --extern crossbeam_channel=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcrossbeam_channel-7bd094e4aa0096a2.rmeta --extern crossbeam_deque=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcrossbeam_deque-7865db6c4e96116f.rmeta --extern crossbeam_epoch=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcrossbeam_epoch-a10e430ec7b298ce.rmeta --extern crossbeam_queue=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcrossbeam_queue-b41cf3aebcf055e5.rmeta --extern crossbeam_utils=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcrossbeam_utils-bf65195b665feb14.rmeta --cap-lints allow - Compiling memory-stats v1.1.0 - Running rustc --crate-name memory_stats --edition=2021 /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/memory-stats-1.1.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 -C metadata=c00b1209dafae645 -C extra-filename=-c00b1209dafae645 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern libc=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/liblibc-5ccb4aa1e1d2bd7b.rmeta --cap-lints allow - Compiling permutation v0.4.1 - Running rustc --crate-name permutation /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/permutation-0.4.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 -C metadata=b54a1338bdf1876c -C extra-filename=-b54a1338bdf1876c --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --cap-lints allow - Compiling atomic-counter v1.0.1 - Running rustc --crate-name atomic_counter /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/_build_env/.cargo/registry/src/github.com-1ecc6299db9ec823/atomic-counter-1.0.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 -C metadata=421a189e98cc8a78 -C extra-filename=-421a189e98cc8a78 --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --cap-lints allow - Compiling matchtigs v1.5.5 (/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work) - Running rustc --crate-name libmatchtigs --edition=2021 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type rlib --crate-type dylib --emit=dep-info,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 -C metadata=bd40b947ed26e03b --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern atomic_counter=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libatomic_counter-421a189e98cc8a78.rlib --extern clap=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libclap-74d7a9ce665f4d0a.rlib --extern crossbeam=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcrossbeam-2b10bb12540e959a.rlib --extern disjoint_sets=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libdisjoint_sets-d6b88b013a3f602b.rlib --extern flate2=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libflate2-e088f03a9f7cc483.rlib --extern genome_graph=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libgenome_graph-161e13b62f7e18c3.rlib --extern hashbrown=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libhashbrown-f4ec59303b295fb7.rlib --extern itertools=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libitertools-8b37b4be1693c850.rlib --extern log=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/liblog-9e6b74f49674def0.rlib --extern memory_stats=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libmemory_stats-c00b1209dafae645.rlib --extern permutation=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libpermutation-b54a1338bdf1876c.rlib --extern simplelog=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libsimplelog-049ab829b27b68bc.rlib --extern traitgraph_algo=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libtraitgraph_algo-51afa055a65fcde9.rlib - error[E0277]: the trait bound hashbrown::HashMap<_, _>: NodeWeightArray is not satisfied - --> src/implementation/greedytigs/mod.rs:153:17 - | - 153 | hashbrown::HashMap<_, _>, - | ^^^^^^^^^^^^^^^^^^^^^^^^ the trait NodeWeightArray is not implemented for hashbrown::HashMap<_, _> - | - = help: the following other types implement trait NodeWeightArray: - EpochNodeWeightArray - Vec - hashbrown::map::HashMap - note: required by a bound in compute_greedytigs_choose_dijkstra_performance_type - --> src/implementation/greedytigs/mod.rs:171:30 - | - 159 | fn compute_greedytigs_choose_dijkstra_performance_type< - | --------------------------------------------------- required by a bound in this function - ... - 171 | DijkstraNodeWeightArray: NodeWeightArray, - | ^^^^^^^^^^^^^^^^^^^^^^ required by this bound in compute_greedytigs_choose_dijkstra_performance_type - - error[E0277]: the trait bound hashbrown::HashMap<_, _>: NodeWeightArray is not satisfied - --> src/implementation/matchtigs/mod.rs:127:66 - | - 127 | compute_matchtigs::<_, _, _, _, _, DijkstraHeapType, hashbrown::HashMap<_, _>>( - | ^^^^^^^^^^^^^^^^^^^^^^^^ the trait NodeWeightArray is not implemented for hashbrown::HashMap<_, _> - | - = help: the following other types implement trait NodeWeightArray: - EpochNodeWeightArray - Vec - hashbrown::map::HashMap - note: required by a bound in compute_matchtigs - --> src/implementation/matchtigs/mod.rs:152:30 - | - 138 | fn compute_matchtigs< - | ----------------- required by a bound in this function - ... - 152 | DijkstraNodeWeightArray: NodeWeightArray, - | ^^^^^^^^^^^^^^^^^^^^^^ required by this bound in compute_matchtigs - - For more information about this error, try rustc --explain E0277. - error: could not compile matchtigs due to 2 previous errors - - Caused by: - process didn't exit successfully: rustc --crate-name libmatchtigs --edition=2021 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type rlib --crate-type dylib --emit=dep-info,link -C opt-level=3 -C split-debuginfo=unpacked -C debuginfo=2 -C metadata=bd40b947ed26e03b --out-dir /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps -L dependency=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps --extern atomic_counter=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libatomic_counter-421a189e98cc8a78.rlib --extern clap=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libclap-74d7a9ce665f4d0a.rlib --extern crossbeam=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libcrossbeam-2b10bb12540e959a.rlib --extern disjoint_sets=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libdisjoint_sets-d6b88b013a3f602b.rlib --extern flate2=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libflate2-e088f03a9f7cc483.rlib --extern genome_graph=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libgenome_graph-161e13b62f7e18c3.rlib --extern hashbrown=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libhashbrown-f4ec59303b295fb7.rlib --extern itertools=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libitertools-8b37b4be1693c850.rlib --extern log=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/liblog-9e6b74f49674def0.rlib --extern memory_stats=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libmemory_stats-c00b1209dafae645.rlib --extern permutation=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libpermutation-b54a1338bdf1876c.rlib --extern simplelog=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libsimplelog-049ab829b27b68bc.rlib --extern traitgraph_algo=/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target/release/deps/libtraitgraph_algo-51afa055a65fcde9.rlib (exit status: 1) - error: failed to compile matchtigs v1.5.5 (/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work), intermediate artifacts can be found at /opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/target - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-mambabuild", line 10, in - sys.exit(main()) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 256, in main - call_conda_build(action, config) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build - result = api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/api.py", line 180, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 3078, in build_tree - packages_from_this = build(metadata, stats, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/build.py", line 2198, in build - utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env, - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 451, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.8/site-packages/conda_build/utils.py", line 427, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/matchtigs_1685352902295/work/conda_build.sh']' returned non-zero exit status 101. -# Last 100 lines of the build log. diff --git a/recipes/matchtigs/meta.yaml b/recipes/matchtigs/meta.yaml index 34e9b0af46499..04e2a9e7f5dfa 100644 --- a/recipes/matchtigs/meta.yaml +++ b/recipes/matchtigs/meta.yaml @@ -1,19 +1,22 @@ -{% set version = "2.1.5" %} +{% set name = "matchtigs" %} +{% set version = "2.1.7" %} package: - name: matchtigs + name: {{ name }} version: {{ version }} build: number: 0 + run_exports: + - {{ pin_subpackage('matchtigs', max_pin="x") }} source: - url: https://github.com/algbio/matchtigs/archive/refs/tags/v{{ version }}.tar.gz - sha256: b01f2e3582801eda2f7003a2bf5843c4d4788e71c178eb226e70775aeaf48370 + url: https://github.com/algbio/matchtigs/archive/b809cc85986d4339bd45705e40df9e802816ff80.zip + sha256: 14079f983631b2ba5a41a01f8afd5786e6351722aba3da6b46ccd4cb46c03656 requirements: build: - - rust >=1.65 + - {{ compiler('rust') }} - {{ compiler('c') }} test: @@ -21,10 +24,15 @@ test: - matchtigs --help about: - home: https://github.com/algbio/matchtigs.git + home: "https://github.com/algbio/matchtigs" license: MIT + license_family: MIT summary: | - Different algorithms for computing small and minimum plain text representations of kmer sets. + "Different algorithms for computing small and minimum plain text representations of kmer sets." + dev_url: "https://github.com/algbio/matchtigs" + extra: recipe-maintainers: - sebschmi + identifiers: + - doi:10.1186/s13059-023-02968-z From 153f1c510f34233b2ed352799be43c5fd400b5bb Mon Sep 17 00:00:00 2001 From: Ruben Vorderman Date: Mon, 12 Aug 2024 14:27:58 +0200 Subject: [PATCH 1193/1514] Sequali: Fix versioning (#49985) setuptools-scm needs to be at `host` in order to be used for the package. --- recipes/sequali/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/sequali/meta.yaml b/recipes/sequali/meta.yaml index 27c8a30620ceb..de833c1a59dee 100644 --- a/recipes/sequali/meta.yaml +++ b/recipes/sequali/meta.yaml @@ -10,7 +10,7 @@ source: sha256: d528a9a6eceace4fa8f1ef29625954a759928e7bab02348ef8f92887442f9527 build: - number: 0 + number: 1 entry_points: - sequali=sequali.__main__:main - sequali-report=sequali.__main__:sequali_report @@ -23,10 +23,10 @@ build: requirements: build: - "{{ compiler('c') }}" - - pip - - setuptools-scm >=8.0 host: - python + - pip + - setuptools-scm >=8.0 run: - pygal >=3.0.4 - python From e3ab62772bf3a932a07b9ec522fce50c09bfcee8 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 12 Aug 2024 16:55:16 +0300 Subject: [PATCH 1194/1514] matchtigs: add aarch64/arm64 builds (#49987) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/matchtigs/meta.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/matchtigs/meta.yaml b/recipes/matchtigs/meta.yaml index 04e2a9e7f5dfa..c27476b2c0647 100644 --- a/recipes/matchtigs/meta.yaml +++ b/recipes/matchtigs/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('matchtigs', max_pin="x") }} @@ -32,6 +32,9 @@ about: dev_url: "https://github.com/algbio/matchtigs" extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - sebschmi identifiers: From ed04b62c910ecff55984df73af43d0b3119ed134 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 12 Aug 2024 16:55:43 +0300 Subject: [PATCH 1195/1514] acms: add linux-aarch64 support (#49981) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/acms/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/acms/meta.yaml b/recipes/acms/meta.yaml index d3a8e129c7d2a..3c3dfbe30c7fd 100644 --- a/recipes/acms/meta.yaml +++ b/recipes/acms/meta.yaml @@ -15,7 +15,7 @@ source: url: https://github.com/jlab/fold-grammars/archive/refs/tags/{{ fold_grammars_version }}.tar.gz build: - number: 0 + number: 1 skip: True # [osx] run_exports: - {{ pin_subpackage('acms', max_pin="x") }} @@ -45,6 +45,8 @@ about: summary: 'Ambivalent Covariance Models (aCMs) are our prototypic suggestion to extend CMs with more than one consensus structure.' extra: + additional-platforms: + - linux-aarch64 identifiers: - doi:10.1186/s12859-015-0569-1 - doi:10.1093/bioinformatics/btu649 From b562f3453a28a45f01f5fee3cff82831f9e7e4ca Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 12 Aug 2024 10:47:57 -0400 Subject: [PATCH 1196/1514] Update varlociraptor to 8.4.10 (#49988) --- recipes/varlociraptor/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/varlociraptor/meta.yaml b/recipes/varlociraptor/meta.yaml index a7b36a5733c75..1a5931af0a496 100644 --- a/recipes/varlociraptor/meta.yaml +++ b/recipes/varlociraptor/meta.yaml @@ -1,5 +1,5 @@ {% set name = "varlociraptor" %} -{% set version = "8.4.9" %} +{% set version = "8.4.10" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/varlociraptor/varlociraptor/archive/v{{ version }}.tar.gz - sha256: f55476d87dabf3e4a6792b42b91beb06ec1b7c5812aca937765f15b13bc6222d + sha256: 243e24e0da2025d3098319c956f7884d5eca20dbb95ed8695867c223b0cc1fd5 build: number: 0 From 67210e4c98321c93b65581b9a68c3dac6742d95c Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 12 Aug 2024 18:56:24 +0300 Subject: [PATCH 1197/1514] hairsplitter & minigraph: add aarch64/arm64 builds (#49980) * hairsplitter: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * hairsplitter: replace openmp with libgomp/llvm-openmp Signed-off-by: Martin Tzvetanov Grigorov * minigraph: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * minigraph: add a patch for aarch64/arm64 Signed-off-by: Martin Tzvetanov Grigorov * hairsplitter: Add a patch for ARM64 Signed-off-by: Martin Tzvetanov Grigorov * Do not try to build osx-arm64. Several dependencies are not available --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/hairsplitter/build.sh | 6 ++- .../hairsplitter/hairsplitter-aarch64.patch | 42 +++++++++++++++++++ recipes/hairsplitter/meta.yaml | 14 +++++-- recipes/minigraph/build.sh | 4 +- recipes/minigraph/meta.yaml | 6 ++- recipes/minigraph/minigraph-aarch64.patch | 11 +++++ 6 files changed, 76 insertions(+), 7 deletions(-) create mode 100644 recipes/hairsplitter/hairsplitter-aarch64.patch create mode 100644 recipes/minigraph/minigraph-aarch64.patch diff --git a/recipes/hairsplitter/build.sh b/recipes/hairsplitter/build.sh index 98c511dc2b5c4..cb5aef39527fd 100644 --- a/recipes/hairsplitter/build.sh +++ b/recipes/hairsplitter/build.sh @@ -1,9 +1,13 @@ +#!/usr/bin/env bash + +set -xe + mkdir -p $PREFIX/bin mkdir src/build cd src/build/ cmake .. -make +make -j ${CPU_COUNT} cp ../../hairsplitter.py $PREFIX/bin chmod +x $PREFIX/bin/hairsplitter.py diff --git a/recipes/hairsplitter/hairsplitter-aarch64.patch b/recipes/hairsplitter/hairsplitter-aarch64.patch new file mode 100644 index 0000000000000..7a0bbee7822da --- /dev/null +++ b/recipes/hairsplitter/hairsplitter-aarch64.patch @@ -0,0 +1,42 @@ +diff --git i/src/CMakeLists.txt w/src/CMakeLists.txt +index f351aa6..edc0f62 100644 +--- i/src/CMakeLists.txt ++++ w/src/CMakeLists.txt +@@ -100,7 +100,7 @@ target_compile_options (HS_call_variants PRIVATE -lm) + target_compile_options (HS_call_variants PRIVATE -fopenmp) + target_compile_options (HS_call_variants PRIVATE -std=c++17) + target_compile_options (HS_call_variants PRIVATE -O3) +-target_compile_options (HS_call_variants PRIVATE -march=x86-64) ++#target_compile_options (HS_call_variants PRIVATE -march=x86-64) + + + file (GLOB SOURCE_SEPARATE_READS "separate_reads.cpp" "input_output.cpp" "cluster_graph.cpp" "robin_hood.h" "tools.cpp" "read.cpp" "sequence.cpp" "Partition.cpp") +@@ -111,7 +111,7 @@ target_compile_options (HS_separate_reads PRIVATE -lm) + target_compile_options (HS_separate_reads PRIVATE -fopenmp) + target_compile_options (HS_separate_reads PRIVATE -std=c++17) + target_compile_options (HS_separate_reads PRIVATE -O3) +-target_compile_options (HS_separate_reads PRIVATE -march=x86-64) ++#target_compile_options (HS_separate_reads PRIVATE -march=x86-64) + + file (GLOB SOURCE_CREATE_NEW_CONTIG "create_new_contigs.cpp" "input_output.cpp" "robin_hood.h" "tools.cpp" "read.cpp" "sequence.cpp" "Partition.cpp") + add_executable(HS_create_new_contigs ${SOURCE_CREATE_NEW_CONTIG} edlib/src/edlib.cpp) +@@ -120,7 +120,7 @@ target_compile_options (HS_create_new_contigs PRIVATE -lm) + target_compile_options (HS_create_new_contigs PRIVATE -fopenmp) + target_compile_options (HS_create_new_contigs PRIVATE -std=c++17) + target_compile_options (HS_create_new_contigs PRIVATE -O3) +-target_compile_options (HS_create_new_contigs PRIVATE -march=x86-64) ++#target_compile_options (HS_create_new_contigs PRIVATE -march=x86-64) + + find_package(OpenMP) + if(OpenMP_CXX_FOUND) +diff --git i/src/HS_GenomeTailor/CMakeLists.txt w/src/HS_GenomeTailor/CMakeLists.txt +index 80ee4dc..f117ecc 100644 +--- i/src/HS_GenomeTailor/CMakeLists.txt ++++ w/src/HS_GenomeTailor/CMakeLists.txt +@@ -25,4 +25,4 @@ target_compile_options (HS_GenomeTailor PRIVATE -g) + target_compile_options (HS_GenomeTailor PRIVATE -lm) + target_compile_options (HS_GenomeTailor PRIVATE -std=c++17) + target_compile_options (HS_GenomeTailor PRIVATE -O3) +-target_compile_options (HS_GenomeTailor PRIVATE -march=x86-64) +\ No newline at end of file ++#target_compile_options (HS_GenomeTailor PRIVATE -march=x86-64) diff --git a/recipes/hairsplitter/meta.yaml b/recipes/hairsplitter/meta.yaml index 575d9c4c308cb..ab11e4a74d624 100644 --- a/recipes/hairsplitter/meta.yaml +++ b/recipes/hairsplitter/meta.yaml @@ -10,9 +10,11 @@ package: source: url: https://github.com/RolandFaure/HairSplitter/archive/refs/tags/v{{ version }}.tar.gz sha256: {{ sha256 }} + patches: + - hairsplitter-aarch64.patch build: - number : 0 + number : 1 run_exports: - {{ pin_subpackage("hairsplitter", max_pin="x.x") }} @@ -20,9 +22,11 @@ requirements: build: - cmake - make - - openmp - {{ compiler('cxx') }} - libcxx <18 # [osx] + host: + - libgomp # [linux] + - llvm-openmp # [osx] run: - python - scipy @@ -31,7 +35,8 @@ requirements: - minigraph >=0.20 - racon - samtools >=1.16 - - openmp + - libgomp # [linux] + - llvm-openmp # [osx] - raven-assembler test: @@ -39,6 +44,8 @@ test: - hairsplitter.py --help extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - rolandfaure @@ -48,4 +55,3 @@ about: license_file: LICENSE summary: "Recovers collapsed haplotypes from a draft assembly and long reads" maintainer : RolandFaure # Optional - diff --git a/recipes/minigraph/build.sh b/recipes/minigraph/build.sh index 36a34c892d737..4391a7aaca22f 100644 --- a/recipes/minigraph/build.sh +++ b/recipes/minigraph/build.sh @@ -1,9 +1,11 @@ #!/bin/bash +set -xe + mkdir -p $PREFIX/bin export C_INCLUDE_PATH="${PREFIX}/include" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" -make CC="${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" CXX="${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}" +make -j ${CPU_COUNT} CC="${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" CXX="${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}" cp minigraph $PREFIX/bin diff --git a/recipes/minigraph/meta.yaml b/recipes/minigraph/meta.yaml index 6a1a93b243c54..456963ae6b205 100644 --- a/recipes/minigraph/meta.yaml +++ b/recipes/minigraph/meta.yaml @@ -8,9 +8,11 @@ package: source: url: https://github.com/lh3/minigraph/archive/refs/tags/v{{ version }}.tar.gz sha256: 4272447393f0ae1e656376abe144de96cbafc777414d4c496f735dd4a6d3c06a + patches: + - minigraph-aarch64.patch # [aarch64 or arm64] build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('minigraph', max_pin="x.x") }} @@ -35,5 +37,7 @@ about: dev_url: https://github.com/lh3/minigraph extra: + additional-platforms: + - linux-aarch64 identifiers: - doi:10.1186/s13059-020-02168-z diff --git a/recipes/minigraph/minigraph-aarch64.patch b/recipes/minigraph/minigraph-aarch64.patch new file mode 100644 index 0000000000000..8223b8cc34900 --- /dev/null +++ b/recipes/minigraph/minigraph-aarch64.patch @@ -0,0 +1,11 @@ +diff --git c/Makefile i/Makefile +index 4dd33e6..8c49614 100644 +--- c/Makefile ++++ i/Makefile +@@ -1,5 +1,5 @@ + CC= gcc +-CFLAGS= -g -Wall -Wc++-compat -std=c99 -msse4 -O3 ++CFLAGS= -g -Wall -Wc++-compat -std=c99 -O3 + CPPFLAGS= + INCLUDES= + OBJS= kalloc.o kthread.o algo.o sys.o gfa-base.o gfa-io.o gfa-aug.o gfa-bbl.o gfa-ed.o \ From c41ac4d1eddb7116db766769bb1f276d5141a2a3 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 12 Aug 2024 18:56:33 +0300 Subject: [PATCH 1198/1514] sdust: add aarch64/arm64 builds (#49974) * sdust: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Update recipes/sdust/build.sh * Update recipes/sdust/build.sh * Update recipes/sdust/build.sh * Add -L$PREFIX/lib to CFLAGS This way it is used by all compilation tasks: https://github.com/lh3/sdust/blob/89c42cb41ba598e9cfa07c2ef99ae8c08f769b3e/Makefile#L23 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/sdust/build.sh | 4 +--- recipes/sdust/meta.yaml | 6 ++++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/recipes/sdust/build.sh b/recipes/sdust/build.sh index 7ff428c933942..c495ad0379c1a 100644 --- a/recipes/sdust/build.sh +++ b/recipes/sdust/build.sh @@ -2,11 +2,9 @@ set -x -e -export CPATH=${PREFIX}/include - mkdir -p "${PREFIX}/bin" -make CC="$CC" -j ${CPU_COUNT} +make -j ${CPU_COUNT} CC="$CC" CFLAGS="${CFLAGS} -I${PREFIX}/include -L${PREFIX}/lib" chmod 0755 sdust diff --git a/recipes/sdust/meta.yaml b/recipes/sdust/meta.yaml index 3f02219bfa557..f26962300d506 100644 --- a/recipes/sdust/meta.yaml +++ b/recipes/sdust/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 0825a760fae884e65b2b024cc4f511e32e6c1698571c147daf5a61ba0dcac589 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("sdust", max_pin="x.x") }} @@ -18,7 +18,6 @@ requirements: build: - make - {{ compiler('cxx') }} - - zlib host: - zlib @@ -33,5 +32,8 @@ about: summary: "Symmetric DUST for finding low-complexity regions in DNA sequences." extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - smeds From 39ddafb164270d11965893b9da147cc6d4f16e1a Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 12 Aug 2024 18:56:42 +0300 Subject: [PATCH 1199/1514] rapidnj: add aarch64/arm64 builds (#49973) * rapidnj: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * rapidnj: add a patch for aarch64/arm64 Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/rapidnj/build.sh | 4 +- recipes/rapidnj/meta.yaml | 16 +- recipes/rapidnj/rapidnj-aarch64.patch | 9485 +++++++++++++++++++++++++ 3 files changed, 9500 insertions(+), 5 deletions(-) create mode 100644 recipes/rapidnj/rapidnj-aarch64.patch diff --git a/recipes/rapidnj/build.sh b/recipes/rapidnj/build.sh index 9ff3b44dfe4df..8381fefdb8c22 100755 --- a/recipes/rapidnj/build.sh +++ b/recipes/rapidnj/build.sh @@ -1,5 +1,7 @@ #!/bin/sh -make CC="${CXX}" LINK="${CXX}" SWITCHES="${CPPFLAGS} ${CXXFLAGS} -std=c++14 ${LDFLAGS}" +set -xe + +make -j ${CPU_COUNT} CC="${CXX}" LINK="${CXX}" SWITCHES="${CPPFLAGS} ${CXXFLAGS} -std=c++14 ${LDFLAGS}" install -d "${PREFIX}/bin" install bin/rapidnj "${PREFIX}/bin/" diff --git a/recipes/rapidnj/meta.yaml b/recipes/rapidnj/meta.yaml index 150a9f9f9673a..885e496afe478 100644 --- a/recipes/rapidnj/meta.yaml +++ b/recipes/rapidnj/meta.yaml @@ -7,9 +7,13 @@ package: source: url: https://github.com/johnlees/rapidnj/archive/v{{ version }}.tar.gz sha256: 7b81dc84cb1d4ac6e24d15e18ae50460b496bc3476a0bc0935553dff085480dd + patches: + - rapidnj-aarch64.patch # [aarch64 or arm64] build: - number: 4 + number: 5 + run_exports: + - {{ pin_subpackage('rapidnj', max_pin="x") }} requirements: build: @@ -23,14 +27,18 @@ test: about: home: http://birc.au.dk/software/rapidnj/ - license: GPL-2 + license: GPL-2-only license_family: GPL license_file: LICENSE summary: RapidNJ is an algorithmic engineered implementation of canonical neighbour-joining. It uses an efficient search heuristic to speed-up the core computations of the neighbour-joining method that enables RapidNJ to outperform other state-of-the-art neighbour-joining implementations. + dev_url: https://github.com/johnlees/rapidnj extra: - identifiers: - - doi:10.1007/978-3-540-87361-7_10 + additional-platforms: + - linux-aarch64 + - osx-arm64 + identifiers: + - doi:10.1007/978-3-540-87361-7_10 diff --git a/recipes/rapidnj/rapidnj-aarch64.patch b/recipes/rapidnj/rapidnj-aarch64.patch new file mode 100644 index 0000000000000..9f33d3de82e07 --- /dev/null +++ b/recipes/rapidnj/rapidnj-aarch64.patch @@ -0,0 +1,9485 @@ +diff --git c/Makefile i/Makefile +index d8087e2..fc63986 100644 +--- c/Makefile ++++ i/Makefile +@@ -14,7 +14,7 @@ INCLUDES= -Isrc/distanceCalculation -Isrc/ -Ilib/includes + else + CC = g++ + LINK = g++ +-OPTIMIZATION_LEVEL=-O3 -msse2 ++OPTIMIZATION_LEVEL=-O3 + DEBUG= -Wall #-g #-pg + OBJECTFLAG =-o + COMPILEFLAG =-c +diff --git c/src/distanceCalculation/bitDistanceProtein.cpp i/src/distanceCalculation/bitDistanceProtein.cpp +index 8a53811..d21fa7f 100755 +--- c/src/distanceCalculation/bitDistanceProtein.cpp ++++ i/src/distanceCalculation/bitDistanceProtein.cpp +@@ -1,5 +1,10 @@ + #include "bitDistanceProtein.hpp" ++ ++#ifdef __ARM_NEON ++#include "sse2neon.h" ++#else + #include ++#endif + + v4ui bitDistanceProtein::mask1of8 = _mm_set_epi32(0x01010101,0x01010101,0x01010101,0x01010101); + v4ui bitDistanceProtein::mask8 = _mm_set_epi32(0x00ff00ff,0x00ff00ff,0x00ff00ff,0x00ff00ff); +diff --git c/src/sse2neon.h i/src/sse2neon.h +new file mode 100644 +index 0000000..50f5646 +--- /dev/null ++++ i/src/sse2neon.h +@@ -0,0 +1,9429 @@ ++#ifndef SSE2NEON_H ++#define SSE2NEON_H ++ ++/* ++ * sse2neon is freely redistributable under the MIT License. ++ * ++ * Copyright (c) 2015-2024 SSE2NEON Contributors. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a copy ++ * of this software and associated documentation files (the "Software"), to deal ++ * in the Software without restriction, including without limitation the rights ++ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ++ * copies of the Software, and to permit persons to whom the Software is ++ * furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be included in ++ * all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++ * SOFTWARE. ++ */ ++ ++// This header file provides a simple API translation layer ++// between SSE intrinsics to their corresponding Arm/Aarch64 NEON versions ++// ++// Contributors to this work are: ++// John W. Ratcliff ++// Brandon Rowlett ++// Ken Fast ++// Eric van Beurden ++// Alexander Potylitsin ++// Hasindu Gamaarachchi ++// Jim Huang ++// Mark Cheng ++// Malcolm James MacLeod ++// Devin Hussey (easyaspi314) ++// Sebastian Pop ++// Developer Ecosystem Engineering ++// Danila Kutenin ++// François Turban (JishinMaster) ++// Pei-Hsuan Hung ++// Yang-Hao Yuan ++// Syoyo Fujita ++// Brecht Van Lommel ++// Jonathan Hue ++// Cuda Chen ++// Aymen Qader ++// Anthony Roberts ++ ++/* Tunable configurations */ ++ ++/* Enable precise implementation of math operations ++ * This would slow down the computation a bit, but gives consistent result with ++ * x86 SSE. (e.g. would solve a hole or NaN pixel in the rendering result) ++ */ ++/* _mm_min|max_ps|ss|pd|sd */ ++#ifndef SSE2NEON_PRECISE_MINMAX ++#define SSE2NEON_PRECISE_MINMAX (0) ++#endif ++/* _mm_rcp_ps */ ++#ifndef SSE2NEON_PRECISE_DIV ++#define SSE2NEON_PRECISE_DIV (0) ++#endif ++/* _mm_sqrt_ps and _mm_rsqrt_ps */ ++#ifndef SSE2NEON_PRECISE_SQRT ++#define SSE2NEON_PRECISE_SQRT (0) ++#endif ++/* _mm_dp_pd */ ++#ifndef SSE2NEON_PRECISE_DP ++#define SSE2NEON_PRECISE_DP (0) ++#endif ++ ++/* Enable inclusion of windows.h on MSVC platforms ++ * This makes _mm_clflush functional on windows, as there is no builtin. ++ */ ++#ifndef SSE2NEON_INCLUDE_WINDOWS_H ++#define SSE2NEON_INCLUDE_WINDOWS_H (0) ++#endif ++ ++/* compiler specific definitions */ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma push_macro("FORCE_INLINE") ++#pragma push_macro("ALIGN_STRUCT") ++#define FORCE_INLINE static inline __attribute__((always_inline)) ++#define ALIGN_STRUCT(x) __attribute__((aligned(x))) ++#define _sse2neon_likely(x) __builtin_expect(!!(x), 1) ++#define _sse2neon_unlikely(x) __builtin_expect(!!(x), 0) ++#elif defined(_MSC_VER) ++#if _MSVC_TRADITIONAL ++#error Using the traditional MSVC preprocessor is not supported! Use /Zc:preprocessor instead. ++#endif ++#ifndef FORCE_INLINE ++#define FORCE_INLINE static inline ++#endif ++#ifndef ALIGN_STRUCT ++#define ALIGN_STRUCT(x) __declspec(align(x)) ++#endif ++#define _sse2neon_likely(x) (x) ++#define _sse2neon_unlikely(x) (x) ++#else ++#pragma message("Macro name collisions may happen with unsupported compilers.") ++#endif ++ ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma push_macro("FORCE_INLINE_OPTNONE") ++#define FORCE_INLINE_OPTNONE static inline __attribute__((optimize("O0"))) ++#elif defined(__clang__) ++#pragma push_macro("FORCE_INLINE_OPTNONE") ++#define FORCE_INLINE_OPTNONE static inline __attribute__((optnone)) ++#else ++#define FORCE_INLINE_OPTNONE FORCE_INLINE ++#endif ++ ++#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ < 10 ++#warning "GCC versions earlier than 10 are not supported." ++#endif ++ ++/* C language does not allow initializing a variable with a function call. */ ++#ifdef __cplusplus ++#define _sse2neon_const static const ++#else ++#define _sse2neon_const const ++#endif ++ ++#include ++#include ++#include ++ ++FORCE_INLINE double sse2neon_recast_u64_f64(uint64_t u64) ++{ ++ double f64; ++ memcpy(&f64, &u64, sizeof(uint64_t)); ++ return f64; ++} ++FORCE_INLINE int64_t sse2neon_recast_f64_s64(double f64) ++{ ++ int64_t i64; ++ memcpy(&i64, &f64, sizeof(uint64_t)); ++ return i64; ++} ++ ++#if defined(_WIN32) ++/* Definitions for _mm_{malloc,free} are provided by ++ * from both MinGW-w64 and MSVC. ++ */ ++#define SSE2NEON_ALLOC_DEFINED ++#endif ++ ++/* If using MSVC */ ++#ifdef _MSC_VER ++#include ++#if SSE2NEON_INCLUDE_WINDOWS_H ++#include ++#include ++#endif ++ ++#if !defined(__cplusplus) ++#error SSE2NEON only supports C++ compilation with this compiler ++#endif ++ ++#ifdef SSE2NEON_ALLOC_DEFINED ++#include ++#endif ++ ++#if (defined(_M_AMD64) || defined(__x86_64__)) || \ ++ (defined(_M_ARM64) || defined(__arm64__)) ++#define SSE2NEON_HAS_BITSCAN64 ++#endif ++#endif ++ ++#if defined(__GNUC__) || defined(__clang__) ++#define _sse2neon_define0(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define1(type, s, body) \ ++ __extension__({ \ ++ type _a = (s); \ ++ body \ ++ }) ++#define _sse2neon_define2(type, a, b, body) \ ++ __extension__({ \ ++ type _a = (a), _b = (b); \ ++ body \ ++ }) ++#define _sse2neon_return(ret) (ret) ++#else ++#define _sse2neon_define0(type, a, body) [=](type _a) { body }(a) ++#define _sse2neon_define1(type, a, body) [](type _a) { body }(a) ++#define _sse2neon_define2(type, a, b, body) \ ++ [](type _a, type _b) { body }((a), (b)) ++#define _sse2neon_return(ret) return ret ++#endif ++ ++#define _sse2neon_init(...) \ ++ { \ ++ __VA_ARGS__ \ ++ } ++ ++/* Compiler barrier */ ++#if defined(_MSC_VER) && !defined(__clang__) ++#define SSE2NEON_BARRIER() _ReadWriteBarrier() ++#else ++#define SSE2NEON_BARRIER() \ ++ do { \ ++ __asm__ __volatile__("" ::: "memory"); \ ++ (void) 0; \ ++ } while (0) ++#endif ++ ++/* Memory barriers ++ * __atomic_thread_fence does not include a compiler barrier; instead, ++ * the barrier is part of __atomic_load/__atomic_store's "volatile-like" ++ * semantics. ++ */ ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) ++#include ++#endif ++ ++FORCE_INLINE void _sse2neon_smp_mb(void) ++{ ++ SSE2NEON_BARRIER(); ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \ ++ !defined(__STDC_NO_ATOMICS__) ++ atomic_thread_fence(memory_order_seq_cst); ++#elif defined(__GNUC__) || defined(__clang__) ++ __atomic_thread_fence(__ATOMIC_SEQ_CST); ++#else /* MSVC */ ++ __dmb(_ARM64_BARRIER_ISH); ++#endif ++} ++ ++/* Architecture-specific build options */ ++/* FIXME: #pragma GCC push_options is only available on GCC */ ++#if defined(__GNUC__) ++#if defined(__arm__) && __ARM_ARCH == 7 ++/* According to ARM C Language Extensions Architecture specification, ++ * __ARM_NEON is defined to a value indicating the Advanced SIMD (NEON) ++ * architecture supported. ++ */ ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error "You must enable NEON instructions (e.g. -mfpu=neon) to use SSE2NEON." ++#endif ++#if !defined(__clang__) ++#pragma GCC push_options ++#pragma GCC target("fpu=neon") ++#endif ++#elif defined(__aarch64__) || defined(_M_ARM64) ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#pragma GCC target("+simd") ++#endif ++#elif __ARM_ARCH == 8 ++#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) ++#error \ ++ "You must enable NEON instructions (e.g. -mfpu=neon-fp-armv8) to use SSE2NEON." ++#endif ++#if !defined(__clang__) && !defined(_MSC_VER) ++#pragma GCC push_options ++#endif ++#else ++#error \ ++ "Unsupported target. Must be either ARMv7-A+NEON or ARMv8-A \ ++(you could try setting target explicitly with -march or -mcpu)" ++#endif ++#endif ++ ++#include ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) && (__ARM_ARCH == 8) ++#if defined __has_include && __has_include() ++#include ++#endif ++#endif ++ ++/* Apple Silicon cache lines are double of what is commonly used by Intel, AMD ++ * and other Arm microarchitectures use. ++ * From sysctl -a on Apple M1: ++ * hw.cachelinesize: 128 ++ */ ++#if defined(__APPLE__) && (defined(__aarch64__) || defined(__arm64__)) ++#define SSE2NEON_CACHELINE_SIZE 128 ++#else ++#define SSE2NEON_CACHELINE_SIZE 64 ++#endif ++ ++/* Rounding functions require either Aarch64 instructions or libm fallback */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#include ++#endif ++ ++/* On ARMv7, some registers, such as PMUSERENR and PMCCNTR, are read-only ++ * or even not accessible in user mode. ++ * To write or access to these registers in user mode, ++ * we have to perform syscall instead. ++ */ ++#if (!defined(__aarch64__) && !defined(_M_ARM64)) ++#include ++#endif ++ ++/* "__has_builtin" can be used to query support for built-in functions ++ * provided by gcc/clang and other compilers that support it. ++ */ ++#ifndef __has_builtin /* GCC prior to 10 or non-clang compilers */ ++/* Compatibility with gcc <= 9 */ ++#if defined(__GNUC__) && (__GNUC__ <= 9) ++#define __has_builtin(x) HAS##x ++#define HAS__builtin_popcount 1 ++#define HAS__builtin_popcountll 1 ++ ++// __builtin_shuffle introduced in GCC 4.7.0 ++#if (__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) ++#define HAS__builtin_shuffle 1 ++#else ++#define HAS__builtin_shuffle 0 ++#endif ++ ++#define HAS__builtin_shufflevector 0 ++#define HAS__builtin_nontemporal_store 0 ++#else ++#define __has_builtin(x) 0 ++#endif ++#endif ++ ++/** ++ * MACRO for shuffle parameter for _mm_shuffle_ps(). ++ * Argument fp3 is a digit[0123] that represents the fp from argument "b" ++ * of mm_shuffle_ps that will be placed in fp3 of result. fp2 is the same ++ * for fp2 in result. fp1 is a digit[0123] that represents the fp from ++ * argument "a" of mm_shuffle_ps that will be places in fp1 of result. ++ * fp0 is the same for fp0 of result. ++ */ ++#define _MM_SHUFFLE(fp3, fp2, fp1, fp0) \ ++ (((fp3) << 6) | ((fp2) << 4) | ((fp1) << 2) | ((fp0))) ++ ++#if __has_builtin(__builtin_shufflevector) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __builtin_shufflevector(a, b, __VA_ARGS__) ++#elif __has_builtin(__builtin_shuffle) ++#define _sse2neon_shuffle(type, a, b, ...) \ ++ __extension__({ \ ++ type tmp = {__VA_ARGS__}; \ ++ __builtin_shuffle(a, b, tmp); \ ++ }) ++#endif ++ ++#ifdef _sse2neon_shuffle ++#define vshuffle_s16(a, b, ...) _sse2neon_shuffle(int16x4_t, a, b, __VA_ARGS__) ++#define vshuffleq_s16(a, b, ...) _sse2neon_shuffle(int16x8_t, a, b, __VA_ARGS__) ++#define vshuffle_s32(a, b, ...) _sse2neon_shuffle(int32x2_t, a, b, __VA_ARGS__) ++#define vshuffleq_s32(a, b, ...) _sse2neon_shuffle(int32x4_t, a, b, __VA_ARGS__) ++#define vshuffle_s64(a, b, ...) _sse2neon_shuffle(int64x1_t, a, b, __VA_ARGS__) ++#define vshuffleq_s64(a, b, ...) _sse2neon_shuffle(int64x2_t, a, b, __VA_ARGS__) ++#endif ++ ++/* Rounding mode macros. */ ++#define _MM_FROUND_TO_NEAREST_INT 0x00 ++#define _MM_FROUND_TO_NEG_INF 0x01 ++#define _MM_FROUND_TO_POS_INF 0x02 ++#define _MM_FROUND_TO_ZERO 0x03 ++#define _MM_FROUND_CUR_DIRECTION 0x04 ++#define _MM_FROUND_NO_EXC 0x08 ++#define _MM_FROUND_RAISE_EXC 0x00 ++#define _MM_FROUND_NINT (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_FLOOR (_MM_FROUND_TO_NEG_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_CEIL (_MM_FROUND_TO_POS_INF | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_TRUNC (_MM_FROUND_TO_ZERO | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_RINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_RAISE_EXC) ++#define _MM_FROUND_NEARBYINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_NO_EXC) ++#define _MM_ROUND_NEAREST 0x0000 ++#define _MM_ROUND_DOWN 0x2000 ++#define _MM_ROUND_UP 0x4000 ++#define _MM_ROUND_TOWARD_ZERO 0x6000 ++/* Flush zero mode macros. */ ++#define _MM_FLUSH_ZERO_MASK 0x8000 ++#define _MM_FLUSH_ZERO_ON 0x8000 ++#define _MM_FLUSH_ZERO_OFF 0x0000 ++/* Denormals are zeros mode macros. */ ++#define _MM_DENORMALS_ZERO_MASK 0x0040 ++#define _MM_DENORMALS_ZERO_ON 0x0040 ++#define _MM_DENORMALS_ZERO_OFF 0x0000 ++ ++/* indicate immediate constant argument in a given range */ ++#define __constrange(a, b) const ++ ++/* A few intrinsics accept traditional data types like ints or floats, but ++ * most operate on data types that are specific to SSE. ++ * If a vector type ends in d, it contains doubles, and if it does not have ++ * a suffix, it contains floats. An integer vector type can contain any type ++ * of integer, from chars to shorts to unsigned long longs. ++ */ ++typedef int64x1_t __m64; ++typedef float32x4_t __m128; /* 128-bit vector containing 4 floats */ ++// On ARM 32-bit architecture, the float64x2_t is not supported. ++// The data type __m128d should be represented in a different way for related ++// intrinsic conversion. ++#if defined(__aarch64__) || defined(_M_ARM64) ++typedef float64x2_t __m128d; /* 128-bit vector containing 2 doubles */ ++#else ++typedef float32x4_t __m128d; ++#endif ++typedef int64x2_t __m128i; /* 128-bit vector containing integers */ ++ ++// Some intrinsics operate on unaligned data types. ++typedef int16_t ALIGN_STRUCT(1) unaligned_int16_t; ++typedef int32_t ALIGN_STRUCT(1) unaligned_int32_t; ++typedef int64_t ALIGN_STRUCT(1) unaligned_int64_t; ++ ++// __int64 is defined in the Intrinsics Guide which maps to different datatype ++// in different data model ++#if !(defined(_WIN32) || defined(_WIN64) || defined(__int64)) ++#if (defined(__x86_64__) || defined(__i386__)) ++#define __int64 long long ++#else ++#define __int64 int64_t ++#endif ++#endif ++ ++/* type-safe casting between types */ ++ ++#define vreinterpretq_m128_f16(x) vreinterpretq_f32_f16(x) ++#define vreinterpretq_m128_f32(x) (x) ++#define vreinterpretq_m128_f64(x) vreinterpretq_f32_f64(x) ++ ++#define vreinterpretq_m128_u8(x) vreinterpretq_f32_u8(x) ++#define vreinterpretq_m128_u16(x) vreinterpretq_f32_u16(x) ++#define vreinterpretq_m128_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128_s8(x) vreinterpretq_f32_s8(x) ++#define vreinterpretq_m128_s16(x) vreinterpretq_f32_s16(x) ++#define vreinterpretq_m128_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_f16_m128(x) vreinterpretq_f16_f32(x) ++#define vreinterpretq_f32_m128(x) (x) ++#define vreinterpretq_f64_m128(x) vreinterpretq_f64_f32(x) ++ ++#define vreinterpretq_u8_m128(x) vreinterpretq_u8_f32(x) ++#define vreinterpretq_u16_m128(x) vreinterpretq_u16_f32(x) ++#define vreinterpretq_u32_m128(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_s8_m128(x) vreinterpretq_s8_f32(x) ++#define vreinterpretq_s16_m128(x) vreinterpretq_s16_f32(x) ++#define vreinterpretq_s32_m128(x) vreinterpretq_s32_f32(x) ++#define vreinterpretq_s64_m128(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_m128i_s8(x) vreinterpretq_s64_s8(x) ++#define vreinterpretq_m128i_s16(x) vreinterpretq_s64_s16(x) ++#define vreinterpretq_m128i_s32(x) vreinterpretq_s64_s32(x) ++#define vreinterpretq_m128i_s64(x) (x) ++ ++#define vreinterpretq_m128i_u8(x) vreinterpretq_s64_u8(x) ++#define vreinterpretq_m128i_u16(x) vreinterpretq_s64_u16(x) ++#define vreinterpretq_m128i_u32(x) vreinterpretq_s64_u32(x) ++#define vreinterpretq_m128i_u64(x) vreinterpretq_s64_u64(x) ++ ++#define vreinterpretq_f32_m128i(x) vreinterpretq_f32_s64(x) ++#define vreinterpretq_f64_m128i(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_s8_m128i(x) vreinterpretq_s8_s64(x) ++#define vreinterpretq_s16_m128i(x) vreinterpretq_s16_s64(x) ++#define vreinterpretq_s32_m128i(x) vreinterpretq_s32_s64(x) ++#define vreinterpretq_s64_m128i(x) (x) ++ ++#define vreinterpretq_u8_m128i(x) vreinterpretq_u8_s64(x) ++#define vreinterpretq_u16_m128i(x) vreinterpretq_u16_s64(x) ++#define vreinterpretq_u32_m128i(x) vreinterpretq_u32_s64(x) ++#define vreinterpretq_u64_m128i(x) vreinterpretq_u64_s64(x) ++ ++#define vreinterpret_m64_s8(x) vreinterpret_s64_s8(x) ++#define vreinterpret_m64_s16(x) vreinterpret_s64_s16(x) ++#define vreinterpret_m64_s32(x) vreinterpret_s64_s32(x) ++#define vreinterpret_m64_s64(x) (x) ++ ++#define vreinterpret_m64_u8(x) vreinterpret_s64_u8(x) ++#define vreinterpret_m64_u16(x) vreinterpret_s64_u16(x) ++#define vreinterpret_m64_u32(x) vreinterpret_s64_u32(x) ++#define vreinterpret_m64_u64(x) vreinterpret_s64_u64(x) ++ ++#define vreinterpret_m64_f16(x) vreinterpret_s64_f16(x) ++#define vreinterpret_m64_f32(x) vreinterpret_s64_f32(x) ++#define vreinterpret_m64_f64(x) vreinterpret_s64_f64(x) ++ ++#define vreinterpret_u8_m64(x) vreinterpret_u8_s64(x) ++#define vreinterpret_u16_m64(x) vreinterpret_u16_s64(x) ++#define vreinterpret_u32_m64(x) vreinterpret_u32_s64(x) ++#define vreinterpret_u64_m64(x) vreinterpret_u64_s64(x) ++ ++#define vreinterpret_s8_m64(x) vreinterpret_s8_s64(x) ++#define vreinterpret_s16_m64(x) vreinterpret_s16_s64(x) ++#define vreinterpret_s32_m64(x) vreinterpret_s32_s64(x) ++#define vreinterpret_s64_m64(x) (x) ++ ++#define vreinterpret_f32_m64(x) vreinterpret_f32_s64(x) ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f64_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f64_s64(x) ++ ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f64_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) vreinterpretq_f64_f32(x) ++#define vreinterpretq_m128d_f64(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f64(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f64(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f64(x) ++ ++#define vreinterpretq_f64_m128d(x) (x) ++#define vreinterpretq_f32_m128d(x) vreinterpretq_f32_f64(x) ++#else ++#define vreinterpretq_m128d_s32(x) vreinterpretq_f32_s32(x) ++#define vreinterpretq_m128d_s64(x) vreinterpretq_f32_s64(x) ++ ++#define vreinterpretq_m128d_u32(x) vreinterpretq_f32_u32(x) ++#define vreinterpretq_m128d_u64(x) vreinterpretq_f32_u64(x) ++ ++#define vreinterpretq_m128d_f32(x) (x) ++ ++#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f32(x) ++ ++#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f32(x) ++#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f32(x) ++ ++#define vreinterpretq_f32_m128d(x) (x) ++#endif ++ ++// A struct is defined in this header file called 'SIMDVec' which can be used ++// by applications which attempt to access the contents of an __m128 struct ++// directly. It is important to note that accessing the __m128 struct directly ++// is bad coding practice by Microsoft: @see: ++// https://learn.microsoft.com/en-us/cpp/cpp/m128 ++// ++// However, some legacy source code may try to access the contents of an __m128 ++// struct directly so the developer can use the SIMDVec as an alias for it. Any ++// casting must be done manually by the developer, as you cannot cast or ++// otherwise alias the base NEON data type for intrinsic operations. ++// ++// union intended to allow direct access to an __m128 variable using the names ++// that the MSVC compiler provides. This union should really only be used when ++// trying to access the members of the vector as integer values. GCC/clang ++// allow native access to the float members through a simple array access ++// operator (in C since 4.6, in C++ since 4.8). ++// ++// Ideally direct accesses to SIMD vectors should not be used since it can cause ++// a performance hit. If it really is needed however, the original __m128 ++// variable can be aliased with a pointer to this union and used to access ++// individual components. The use of this union should be hidden behind a macro ++// that is used throughout the codebase to access the members instead of always ++// declaring this type of variable. ++typedef union ALIGN_STRUCT(16) SIMDVec { ++ float m128_f32[4]; // as floats - DON'T USE. Added for convenience. ++ int8_t m128_i8[16]; // as signed 8-bit integers. ++ int16_t m128_i16[8]; // as signed 16-bit integers. ++ int32_t m128_i32[4]; // as signed 32-bit integers. ++ int64_t m128_i64[2]; // as signed 64-bit integers. ++ uint8_t m128_u8[16]; // as unsigned 8-bit integers. ++ uint16_t m128_u16[8]; // as unsigned 16-bit integers. ++ uint32_t m128_u32[4]; // as unsigned 32-bit integers. ++ uint64_t m128_u64[2]; // as unsigned 64-bit integers. ++} SIMDVec; ++ ++// casting using SIMDVec ++#define vreinterpretq_nth_u64_m128i(x, n) (((SIMDVec *) &x)->m128_u64[n]) ++#define vreinterpretq_nth_u32_m128i(x, n) (((SIMDVec *) &x)->m128_u32[n]) ++#define vreinterpretq_nth_u8_m128i(x, n) (((SIMDVec *) &x)->m128_u8[n]) ++ ++/* SSE macros */ ++#define _MM_GET_FLUSH_ZERO_MODE _sse2neon_mm_get_flush_zero_mode ++#define _MM_SET_FLUSH_ZERO_MODE _sse2neon_mm_set_flush_zero_mode ++#define _MM_GET_DENORMALS_ZERO_MODE _sse2neon_mm_get_denormals_zero_mode ++#define _MM_SET_DENORMALS_ZERO_MODE _sse2neon_mm_set_denormals_zero_mode ++ ++// Function declaration ++// SSE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void); ++FORCE_INLINE __m128 _mm_move_ss(__m128, __m128); ++FORCE_INLINE __m128 _mm_or_ps(__m128, __m128); ++FORCE_INLINE __m128 _mm_set_ps1(float); ++FORCE_INLINE __m128 _mm_setzero_ps(void); ++// SSE2 ++FORCE_INLINE __m128i _mm_and_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_castps_si128(__m128); ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128); ++FORCE_INLINE __m128d _mm_move_sd(__m128d, __m128d); ++FORCE_INLINE __m128i _mm_or_si128(__m128i, __m128i); ++FORCE_INLINE __m128i _mm_set_epi32(int, int, int, int); ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t, int64_t); ++FORCE_INLINE __m128d _mm_set_pd(double, double); ++FORCE_INLINE __m128i _mm_set1_epi32(int); ++FORCE_INLINE __m128i _mm_setzero_si128(void); ++// SSE4.1 ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d); ++FORCE_INLINE __m128 _mm_ceil_ps(__m128); ++FORCE_INLINE __m128d _mm_floor_pd(__m128d); ++FORCE_INLINE __m128 _mm_floor_ps(__m128); ++FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d, int); ++FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128, int); ++// SSE4.2 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t, uint8_t); ++ ++/* Backwards compatibility for compilers with lack of specific type support */ ++ ++// Older gcc does not define vld1q_u8_x4 type ++#if defined(__GNUC__) && !defined(__clang__) && \ ++ ((__GNUC__ <= 13 && defined(__arm__)) || \ ++ (__GNUC__ == 10 && __GNUC_MINOR__ < 3 && defined(__aarch64__)) || \ ++ (__GNUC__ <= 9 && defined(__aarch64__))) ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ uint8x16x4_t ret; ++ ret.val[0] = vld1q_u8(p + 0); ++ ret.val[1] = vld1q_u8(p + 16); ++ ret.val[2] = vld1q_u8(p + 32); ++ ret.val[3] = vld1q_u8(p + 48); ++ return ret; ++} ++#else ++// Wraps vld1q_u8_x4 ++FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) ++{ ++ return vld1q_u8_x4(p); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddv u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ const uint64x1_t v1 = vpaddl_u32(vpaddl_u16(vpaddl_u8(v8))); ++ return vget_lane_u8(vreinterpret_u8_u64(v1), 0); ++} ++#else ++// Wraps vaddv_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) ++{ ++ return vaddv_u8(v8); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u8 variant */ ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ uint8x8_t tmp = vpadd_u8(vget_low_u8(a), vget_high_u8(a)); ++ uint8_t res = 0; ++ for (int i = 0; i < 8; ++i) ++ res += tmp[i]; ++ return res; ++} ++#else ++// Wraps vaddvq_u8 ++FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) ++{ ++ return vaddvq_u8(a); ++} ++#endif ++ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++/* emulate vaddvq u16 variant */ ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ uint32x4_t m = vpaddlq_u16(a); ++ uint64x2_t n = vpaddlq_u32(m); ++ uint64x1_t o = vget_low_u64(n) + vget_high_u64(n); ++ ++ return vget_lane_u32((uint32x2_t) o, 0); ++} ++#else ++// Wraps vaddvq_u16 ++FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) ++{ ++ return vaddvq_u16(a); ++} ++#endif ++ ++/* Function Naming Conventions ++ * The naming convention of SSE intrinsics is straightforward. A generic SSE ++ * intrinsic function is given as follows: ++ * _mm__ ++ * ++ * The parts of this format are given as follows: ++ * 1. describes the operation performed by the intrinsic ++ * 2. identifies the data type of the function's primary arguments ++ * ++ * This last part, , is a little complicated. It identifies the ++ * content of the input values, and can be set to any of the following values: ++ * + ps - vectors contain floats (ps stands for packed single-precision) ++ * + pd - vectors contain doubles (pd stands for packed double-precision) ++ * + epi8/epi16/epi32/epi64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * signed integers ++ * + epu8/epu16/epu32/epu64 - vectors contain 8-bit/16-bit/32-bit/64-bit ++ * unsigned integers ++ * + si128 - unspecified 128-bit vector or 256-bit vector ++ * + m128/m128i/m128d - identifies input vector types when they are different ++ * than the type of the returned vector ++ * ++ * For example, _mm_setzero_ps. The _mm implies that the function returns ++ * a 128-bit vector. The _ps at the end implies that the argument vectors ++ * contain floats. ++ * ++ * A complete example: Byte Shuffle - pshufb (_mm_shuffle_epi8) ++ * // Set packed 16-bit integers. 128 bits, 8 short, per 16 bits ++ * __m128i v_in = _mm_setr_epi16(1, 2, 3, 4, 5, 6, 7, 8); ++ * // Set packed 8-bit integers ++ * // 128 bits, 16 chars, per 8 bits ++ * __m128i v_perm = _mm_setr_epi8(1, 0, 2, 3, 8, 9, 10, 11, ++ * 4, 5, 12, 13, 6, 7, 14, 15); ++ * // Shuffle packed 8-bit integers ++ * __m128i v_out = _mm_shuffle_epi8(v_in, v_perm); // pshufb ++ */ ++ ++/* Constants for use with _mm_prefetch. */ ++enum _mm_hint { ++ _MM_HINT_NTA = 0, /* load data to L1 and L2 cache, mark it as NTA */ ++ _MM_HINT_T0 = 1, /* load data to L1 and L2 cache */ ++ _MM_HINT_T1 = 2, /* load data to L2 cache only */ ++ _MM_HINT_T2 = 3, /* load data to L2 cache only, mark it as NTA */ ++}; ++ ++// The bit field mapping to the FPCR(floating-point control register) ++typedef struct { ++ uint16_t res0; ++ uint8_t res1 : 6; ++ uint8_t bit22 : 1; ++ uint8_t bit23 : 1; ++ uint8_t bit24 : 1; ++ uint8_t res2 : 7; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32_t res3; ++#endif ++} fpcr_bitfield; ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of b and places it into the high end of the result. ++FORCE_INLINE __m128 _mm_shuffle_ps_1032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in high ++// end of result takes the higher two 32 bit values from b and swaps them and ++// places in low end of result. ++FORCE_INLINE __m128 _mm_shuffle_ps_2301(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b23 = vrev64_f32(vget_high_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b23)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0321(__m128 a, __m128 b) ++{ ++ float32x2_t a21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a21, b03)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2103(__m128 a, __m128 b) ++{ ++ float32x2_t a03 = vget_low_f32( ++ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); ++ float32x2_t b21 = vget_high_f32( ++ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); ++ return vreinterpretq_m128_f32(vcombine_f32(a03, b21)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b10)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0101(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32x2_t b01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b01)); ++} ++ ++// keeps the low 64 bits of b in the low and puts the high 64 bits of a in the ++// high ++FORCE_INLINE __m128 _mm_shuffle_ps_3210(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0011(__m128 a, __m128 b) ++{ ++ float32x2_t a11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a11, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_0022(__m128 a, __m128 b) ++{ ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a22, b00)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2200(__m128 a, __m128 b) ++{ ++ float32x2_t a00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t b22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(b)), 0); ++ return vreinterpretq_m128_f32(vcombine_f32(a00, b22)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_3202(__m128 a, __m128 b) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32x2_t a22 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); ++ float32x2_t a02 = vset_lane_f32(a0, a22, 1); /* TODO: use vzip ?*/ ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(a02, b32)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_1133(__m128 a, __m128 b) ++{ ++ float32x2_t a33 = ++ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 1); ++ float32x2_t b11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a33, b11)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2010(__m128 a, __m128 b) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2001(__m128 a, __m128 b) ++{ ++ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a01, b20)); ++} ++ ++FORCE_INLINE __m128 _mm_shuffle_ps_2032(__m128 a, __m128 b) ++{ ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32_t b2 = vgetq_lane_f32(b, 2); ++ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); ++ float32x2_t b20 = vset_lane_f32(b2, b00, 1); ++ return vreinterpretq_m128_f32(vcombine_f32(a32, b20)); ++} ++ ++// For MSVC, we check only if it is ARM64, as every single ARM64 processor ++// supported by WoA has crypto extensions. If this changes in the future, ++// this can be verified via the runtime-only method of: ++// IsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE) ++#if (defined(_M_ARM64) && !defined(__clang__)) || \ ++ (defined(__ARM_FEATURE_CRYPTO) && \ ++ (defined(__aarch64__) || __has_builtin(__builtin_arm_crypto_vmullp64))) ++// Wraps vmull_p64 ++FORCE_INLINE uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly64_t a = vget_lane_p64(vreinterpret_p64_u64(_a), 0); ++ poly64_t b = vget_lane_p64(vreinterpret_p64_u64(_b), 0); ++#if defined(_MSC_VER) && !defined(__clang__) ++ __n64 a1 = {a}, b1 = {b}; ++ return vreinterpretq_u64_p128(vmull_p64(a1, b1)); ++#else ++ return vreinterpretq_u64_p128(vmull_p64(a, b)); ++#endif ++} ++#else // ARMv7 polyfill ++// ARMv7/some A64 lacks vmull_p64, but it has vmull_p8. ++// ++// vmull_p8 calculates 8 8-bit->16-bit polynomial multiplies, but we need a ++// 64-bit->128-bit polynomial multiply. ++// ++// It needs some work and is somewhat slow, but it is still faster than all ++// known scalar methods. ++// ++// Algorithm adapted to C from ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/, which is adapted ++// from "Fast Software Polynomial Multiplication on ARM Processors Using the ++// NEON Engine" by Danilo Camara, Conrado Gouvea, Julio Lopez and Ricardo Dahab ++// (https://hal.inria.fr/hal-01506572) ++static uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) ++{ ++ poly8x8_t a = vreinterpret_p8_u64(_a); ++ poly8x8_t b = vreinterpret_p8_u64(_b); ++ ++ // Masks ++ uint8x16_t k48_32 = vcombine_u8(vcreate_u8(0x0000ffffffffffff), ++ vcreate_u8(0x00000000ffffffff)); ++ uint8x16_t k16_00 = vcombine_u8(vcreate_u8(0x000000000000ffff), ++ vcreate_u8(0x0000000000000000)); ++ ++ // Do the multiplies, rotating with vext to get all combinations ++ uint8x16_t d = vreinterpretq_u8_p16(vmull_p8(a, b)); // D = A0 * B0 ++ uint8x16_t e = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 1))); // E = A0 * B1 ++ uint8x16_t f = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 1), b)); // F = A1 * B0 ++ uint8x16_t g = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 2))); // G = A0 * B2 ++ uint8x16_t h = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 2), b)); // H = A2 * B0 ++ uint8x16_t i = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 3))); // I = A0 * B3 ++ uint8x16_t j = ++ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 3), b)); // J = A3 * B0 ++ uint8x16_t k = ++ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 4))); // L = A0 * B4 ++ ++ // Add cross products ++ uint8x16_t l = veorq_u8(e, f); // L = E + F ++ uint8x16_t m = veorq_u8(g, h); // M = G + H ++ uint8x16_t n = veorq_u8(i, j); // N = I + J ++ ++ // Interleave. Using vzip1 and vzip2 prevents Clang from emitting TBL ++ // instructions. ++#if defined(__aarch64__) ++ uint8x16_t lm_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t lm_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); ++ uint8x16_t nk_p0 = vreinterpretq_u8_u64( ++ vzip1q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++ uint8x16_t nk_p1 = vreinterpretq_u8_u64( ++ vzip2q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); ++#else ++ uint8x16_t lm_p0 = vcombine_u8(vget_low_u8(l), vget_low_u8(m)); ++ uint8x16_t lm_p1 = vcombine_u8(vget_high_u8(l), vget_high_u8(m)); ++ uint8x16_t nk_p0 = vcombine_u8(vget_low_u8(n), vget_low_u8(k)); ++ uint8x16_t nk_p1 = vcombine_u8(vget_high_u8(n), vget_high_u8(k)); ++#endif ++ // t0 = (L) (P0 + P1) << 8 ++ // t1 = (M) (P2 + P3) << 16 ++ uint8x16_t t0t1_tmp = veorq_u8(lm_p0, lm_p1); ++ uint8x16_t t0t1_h = vandq_u8(lm_p1, k48_32); ++ uint8x16_t t0t1_l = veorq_u8(t0t1_tmp, t0t1_h); ++ ++ // t2 = (N) (P4 + P5) << 24 ++ // t3 = (K) (P6 + P7) << 32 ++ uint8x16_t t2t3_tmp = veorq_u8(nk_p0, nk_p1); ++ uint8x16_t t2t3_h = vandq_u8(nk_p1, k16_00); ++ uint8x16_t t2t3_l = veorq_u8(t2t3_tmp, t2t3_h); ++ ++ // De-interleave ++#if defined(__aarch64__) ++ uint8x16_t t0 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t1 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); ++ uint8x16_t t2 = vreinterpretq_u8_u64( ++ vuzp1q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++ uint8x16_t t3 = vreinterpretq_u8_u64( ++ vuzp2q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); ++#else ++ uint8x16_t t1 = vcombine_u8(vget_high_u8(t0t1_l), vget_high_u8(t0t1_h)); ++ uint8x16_t t0 = vcombine_u8(vget_low_u8(t0t1_l), vget_low_u8(t0t1_h)); ++ uint8x16_t t3 = vcombine_u8(vget_high_u8(t2t3_l), vget_high_u8(t2t3_h)); ++ uint8x16_t t2 = vcombine_u8(vget_low_u8(t2t3_l), vget_low_u8(t2t3_h)); ++#endif ++ // Shift the cross products ++ uint8x16_t t0_shift = vextq_u8(t0, t0, 15); // t0 << 8 ++ uint8x16_t t1_shift = vextq_u8(t1, t1, 14); // t1 << 16 ++ uint8x16_t t2_shift = vextq_u8(t2, t2, 13); // t2 << 24 ++ uint8x16_t t3_shift = vextq_u8(t3, t3, 12); // t3 << 32 ++ ++ // Accumulate the products ++ uint8x16_t cross1 = veorq_u8(t0_shift, t1_shift); ++ uint8x16_t cross2 = veorq_u8(t2_shift, t3_shift); ++ uint8x16_t mix = veorq_u8(d, cross1); ++ uint8x16_t r = veorq_u8(mix, cross2); ++ return vreinterpretq_u64_u8(r); ++} ++#endif // ARMv7 polyfill ++ ++// C equivalent: ++// __m128i _mm_shuffle_epi32_default(__m128i a, ++// __constrange(0, 255) int imm) { ++// __m128i ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = a[(imm >> 4) & 0x03]; ret[3] = a[(imm >> 6) & 0x03]; ++// return ret; ++// } ++#define _mm_shuffle_epi32_default(a, imm) \ ++ vreinterpretq_m128i_s32(vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_s32( \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), \ ++ ((imm) >> 2) & 0x3), \ ++ vmovq_n_s32(vgetq_lane_s32( \ ++ vreinterpretq_s32_m128i(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Takes the upper 64 bits of a and places it in the low end of the result ++// Takes the lower 64 bits of a and places it into the high end of the result. ++FORCE_INLINE __m128i _mm_shuffle_epi_1032(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a10)); ++} ++ ++// takes the lower two 32-bit values from a and swaps them and places in low end ++// of result takes the higher two 32 bit values from a and swaps them and places ++// in high end of result. ++FORCE_INLINE __m128i _mm_shuffle_epi_2301(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a23 = vrev64_s32(vget_high_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a23)); ++} ++ ++// rotates the least significant 32 bits into the most significant 32 bits, and ++// shifts the rest down ++FORCE_INLINE __m128i _mm_shuffle_epi_0321(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 1)); ++} ++ ++// rotates the most significant 32 bits into the least significant 32 bits, and ++// shifts the rest up ++FORCE_INLINE __m128i _mm_shuffle_epi_2103(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 3)); ++} ++ ++// gets the lower 64 bits of a, and places it in the upper 64 bits ++// gets the lower 64 bits of a and places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1010(__m128i a) ++{ ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a10, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements, and places it in the ++// lower 64 bits gets the lower 64 bits of a, and places it in the upper 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_1001(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a10)); ++} ++ ++// gets the lower 64 bits of a, swaps the 0 and 1 elements and places it in the ++// upper 64 bits gets the lower 64 bits of a, swaps the 0 and 1 elements, and ++// places it in the lower 64 bits ++FORCE_INLINE __m128i _mm_shuffle_epi_0101(__m128i a) ++{ ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a01, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_2211(__m128i a) ++{ ++ int32x2_t a11 = vdup_lane_s32(vget_low_s32(vreinterpretq_s32_m128i(a)), 1); ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ return vreinterpretq_m128i_s32(vcombine_s32(a11, a22)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_0122(__m128i a) ++{ ++ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); ++ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); ++ return vreinterpretq_m128i_s32(vcombine_s32(a22, a01)); ++} ++ ++FORCE_INLINE __m128i _mm_shuffle_epi_3332(__m128i a) ++{ ++ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t a33 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 1); ++ return vreinterpretq_m128i_s32(vcombine_s32(a32, a33)); ++} ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32(vdupq_laneq_s32(vreinterpretq_s32_m128i(a), (imm))) ++#else ++#define _mm_shuffle_epi32_splat(a, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vdupq_n_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)))) ++#endif ++ ++// NEON does not support a general purpose permute intrinsic. ++// Shuffle single-precision (32-bit) floating-point elements in a using the ++// control in imm8, and store the results in dst. ++// ++// C equivalent: ++// __m128 _mm_shuffle_ps_default(__m128 a, __m128 b, ++// __constrange(0, 255) int imm) { ++// __m128 ret; ++// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; ++// ret[2] = b[(imm >> 4) & 0x03]; ret[3] = b[(imm >> 6) & 0x03]; ++// return ret; ++// } ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_ps ++#define _mm_shuffle_ps_default(a, b, imm) \ ++ vreinterpretq_m128_f32(vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 6) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 4) & 0x3), \ ++ vsetq_lane_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), ((imm) >> 2) & 0x3), \ ++ vmovq_n_f32( \ ++ vgetq_lane_f32(vreinterpretq_f32_m128(a), (imm) & (0x3))), \ ++ 1), \ ++ 2), \ ++ 3)) ++ ++// Shuffle 16-bit integers in the low 64 bits of a using the control in imm8. ++// Store the results in the low 64 bits of dst, with the high 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflelo_epi16 ++#define _mm_shufflelo_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t lowBits = vget_low_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, (imm) & (0x3)), ret, 0); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++// Shuffle 16-bit integers in the high 64 bits of a using the control in imm8. ++// Store the results in the high 64 bits of dst, with the low 64 bits being ++// copied from a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflehi_epi16 ++#define _mm_shufflehi_epi16_function(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ ++ int16x4_t highBits = vget_high_s16(ret); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, (imm) & (0x3)), ret, 4); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 2) & 0x3), ret, \ ++ 5); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 4) & 0x3), ret, \ ++ 6); \ ++ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 6) & 0x3), ret, \ ++ 7); \ ++ _sse2neon_return(vreinterpretq_m128i_s16(ret));) ++ ++/* MMX */ ++ ++//_mm_empty is a no-op on arm ++FORCE_INLINE void _mm_empty(void) {} ++ ++/* SSE */ ++ ++// Add packed single-precision (32-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ps ++FORCE_INLINE __m128 _mm_add_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Add the lower single-precision (32-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ss ++FORCE_INLINE __m128 _mm_add_ss(__m128 a, __m128 b) ++{ ++ float32_t b0 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++ float32x4_t value = vsetq_lane_f32(b0, vdupq_n_f32(0), 0); ++ // the upper values in the result must be the remnants of . ++ return vreinterpretq_m128_f32(vaddq_f32(a, value)); ++} ++ ++// Compute the bitwise AND of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_ps ++FORCE_INLINE __m128 _mm_and_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vandq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Compute the bitwise NOT of packed single-precision (32-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_ps ++FORCE_INLINE __m128 _mm_andnot_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vbicq_s32(vreinterpretq_s32_m128(b), ++ vreinterpretq_s32_m128(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu16 ++FORCE_INLINE __m64 _mm_avg_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16( ++ vrhadd_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu8 ++FORCE_INLINE __m64 _mm_avg_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vrhadd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ps ++FORCE_INLINE __m128 _mm_cmpeq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ss ++FORCE_INLINE __m128 _mm_cmpeq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpeq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ps ++FORCE_INLINE __m128 _mm_cmpge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ss ++FORCE_INLINE __m128 _mm_cmpge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ps ++FORCE_INLINE __m128 _mm_cmpgt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ss ++FORCE_INLINE __m128 _mm_cmpgt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpgt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ps ++FORCE_INLINE __m128 _mm_cmple_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ss ++FORCE_INLINE __m128 _mm_cmple_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmple_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ps ++FORCE_INLINE __m128 _mm_cmplt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ss ++FORCE_INLINE __m128 _mm_cmplt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmplt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ps ++FORCE_INLINE __m128 _mm_cmpneq_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ss ++FORCE_INLINE __m128 _mm_cmpneq_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpneq_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ps ++FORCE_INLINE __m128 _mm_cmpnge_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ss ++FORCE_INLINE __m128 _mm_cmpnge_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnge_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ps ++FORCE_INLINE __m128 _mm_cmpngt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ss ++FORCE_INLINE __m128 _mm_cmpngt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpngt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ps ++FORCE_INLINE __m128 _mm_cmpnle_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ss ++FORCE_INLINE __m128 _mm_cmpnle_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnle_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ps ++FORCE_INLINE __m128 _mm_cmpnlt_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_u32(vmvnq_u32( ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ss ++FORCE_INLINE __m128 _mm_cmpnlt_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpnlt_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ps ++// ++// See also: ++// http://stackoverflow.com/questions/8627331/what-does-ordered-unordered-comparison-mean ++// http://stackoverflow.com/questions/29349621/neon-isnanval-intrinsics ++FORCE_INLINE __m128 _mm_cmpord_ps(__m128 a, __m128 b) ++{ ++ // Note: NEON does not have ordered compare builtin ++ // Need to compare a eq a and b eq b to check for NaN ++ // Do AND of results to get final ++ uint32x4_t ceqaa = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t ceqbb = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vandq_u32(ceqaa, ceqbb)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ss ++FORCE_INLINE __m128 _mm_cmpord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpord_ps(a, b)); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ps ++FORCE_INLINE __m128 _mm_cmpunord_ps(__m128 a, __m128 b) ++{ ++ uint32x4_t f32a = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); ++ uint32x4_t f32b = ++ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_u32(vmvnq_u32(vandq_u32(f32a, f32b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ss ++FORCE_INLINE __m128 _mm_cmpunord_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_cmpunord_ps(a, b)); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_ss ++FORCE_INLINE int _mm_comieq_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_eq_b = ++ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_eq_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_ss ++FORCE_INLINE int _mm_comige_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_ge_b = ++ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_ge_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_ss ++FORCE_INLINE int _mm_comigt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_gt_b = ++ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_gt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_ss ++FORCE_INLINE int _mm_comile_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_le_b = ++ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_le_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_ss ++FORCE_INLINE int _mm_comilt_ss(__m128 a, __m128 b) ++{ ++ uint32x4_t a_lt_b = ++ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); ++ return vgetq_lane_u32(a_lt_b, 0) & 0x1; ++} ++ ++// Compare the lower single-precision (32-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_ss ++FORCE_INLINE int _mm_comineq_ss(__m128 a, __m128 b) ++{ ++ return !_mm_comieq_ss(a, b); ++} ++ ++// Convert packed signed 32-bit integers in b to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, and copy the upper 2 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_pi2ps ++FORCE_INLINE __m128 _mm_cvt_pi2ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ps2pi ++FORCE_INLINE __m64 _mm_cvt_ps2pi(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))))); ++#else ++ return vreinterpret_m64_s32(vcvt_s32_f32(vget_low_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION))))); ++#endif ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_si2ss ++FORCE_INLINE __m128 _mm_cvt_si2ss(__m128 a, int b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ss2si ++FORCE_INLINE int _mm_cvt_ss2si(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vgetq_lane_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))), ++ 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int32_t) data; ++#endif ++} ++ ++// Convert packed 16-bit integers in a to packed single-precision (32-bit) ++// floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi16_ps ++FORCE_INLINE __m128 _mm_cvtpi16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vmovl_s16(vreinterpret_s16_m64(a)))); ++} ++ ++// Convert packed 32-bit integers in b to packed single-precision (32-bit) ++// floating-point elements, store the results in the lower 2 elements of dst, ++// and copy the upper 2 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_ps ++FORCE_INLINE __m128 _mm_cvtpi32_ps(__m128 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), ++ vget_high_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, store the results in the lower 2 elements ++// of dst, then convert the packed signed 32-bit integers in b to ++// single-precision (32-bit) floating-point element, and store the results in ++// the upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32x2_ps ++FORCE_INLINE __m128 _mm_cvtpi32x2_ps(__m64 a, __m64 b) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vcombine_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b)))); ++} ++ ++// Convert the lower packed 8-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi8_ps ++FORCE_INLINE __m128 _mm_cvtpi8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32( ++ vmovl_s16(vget_low_s16(vmovl_s8(vreinterpret_s8_m64(a)))))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 16-bit integers, and store the results in dst. Note: this intrinsic ++// will generate 0x7FFF, rather than 0x8000, for input values between 0x7FFF and ++// 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi16 ++FORCE_INLINE __m64 _mm_cvtps_pi16(__m128 a) ++{ ++ return vreinterpret_m64_s16( ++ vqmovn_s32(vreinterpretq_s32_m128i(_mm_cvtps_epi32(a)))); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi32 ++#define _mm_cvtps_pi32(a) _mm_cvt_ps2pi(a) ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 8-bit integers, and store the results in lower 4 elements of dst. ++// Note: this intrinsic will generate 0x7F, rather than 0x80, for input values ++// between 0x7F and 0x7FFFFFFF. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi8 ++FORCE_INLINE __m64 _mm_cvtps_pi8(__m128 a) ++{ ++ return vreinterpret_m64_s8(vqmovn_s16( ++ vcombine_s16(vreinterpret_s16_m64(_mm_cvtps_pi16(a)), vdup_n_s16(0)))); ++} ++ ++// Convert packed unsigned 16-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu16_ps ++FORCE_INLINE __m128 _mm_cvtpu16_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_u32(vmovl_u16(vreinterpret_u16_m64(a)))); ++} ++ ++// Convert the lower packed unsigned 8-bit integers in a to packed ++// single-precision (32-bit) floating-point elements, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu8_ps ++FORCE_INLINE __m128 _mm_cvtpu8_ps(__m64 a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_u32( ++ vmovl_u16(vget_low_u16(vmovl_u8(vreinterpret_u8_m64(a)))))); ++} ++ ++// Convert the signed 32-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_ss ++#define _mm_cvtsi32_ss(a, b) _mm_cvt_si2ss(a, b) ++ ++// Convert the signed 64-bit integer b to a single-precision (32-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_ss ++FORCE_INLINE __m128 _mm_cvtsi64_ss(__m128 a, int64_t b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Copy the lower single-precision (32-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_f32 ++FORCE_INLINE float _mm_cvtss_f32(__m128 a) ++{ ++ return vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si32 ++#define _mm_cvtss_si32(a) _mm_cvt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si64 ++FORCE_INLINE int64_t _mm_cvtss_si64(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return (int64_t) vgetq_lane_f32(vrndiq_f32(vreinterpretq_f32_m128(a)), 0); ++#else ++ float32_t data = vgetq_lane_f32( ++ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); ++ return (int64_t) data; ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ps2pi ++FORCE_INLINE __m64 _mm_cvtt_ps2pi(__m128 a) ++{ ++ return vreinterpret_m64_s32( ++ vget_low_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)))); ++} ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ss2si ++FORCE_INLINE int _mm_cvtt_ss2si(__m128 a) ++{ ++ return vgetq_lane_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)), 0); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_pi32 ++#define _mm_cvttps_pi32(a) _mm_cvtt_ps2pi(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si32 ++#define _mm_cvttss_si32(a) _mm_cvtt_ss2si(a) ++ ++// Convert the lower single-precision (32-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si64 ++FORCE_INLINE int64_t _mm_cvttss_si64(__m128 a) ++{ ++ return (int64_t) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++} ++ ++// Divide packed single-precision (32-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise division intrinsic, we implement ++// division by multiplying a by b's reciprocal before using the Newton-Raphson ++// method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ps ++FORCE_INLINE __m128 _mm_div_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vdivq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(b)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(a), recip)); ++#endif ++} ++ ++// Divide the lower single-precision (32-bit) floating-point element in a by the ++// lower single-precision (32-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper 3 packed elements from a to ++// the upper elements of dst. ++// Warning: ARMv7-A does not produce the same result compared to Intel and not ++// IEEE-compliant. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ss ++FORCE_INLINE __m128 _mm_div_ss(__m128 a, __m128 b) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_div_ps(a, b)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_pi16 ++#define _mm_extract_pi16(a, imm) \ ++ (int32_t) vget_lane_u16(vreinterpret_u16_m64(a), (imm)) ++ ++// Free aligned memory that was allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_free ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void _mm_free(void *addr) ++{ ++ free(addr); ++} ++#endif ++ ++FORCE_INLINE uint64_t _sse2neon_get_fpcr(void) ++{ ++ uint64_t value; ++#if defined(_MSC_VER) && !defined(__clang__) ++ value = _ReadStatusReg(ARM64_FPCR); ++#else ++ __asm__ __volatile__("mrs %0, FPCR" : "=r"(value)); /* read */ ++#endif ++ return value; ++} ++ ++FORCE_INLINE void _sse2neon_set_fpcr(uint64_t value) ++{ ++#if defined(_MSC_VER) && !defined(__clang__) ++ _WriteStatusReg(ARM64_FPCR, value); ++#else ++ __asm__ __volatile__("msr FPCR, %0" ::"r"(value)); /* write */ ++#endif ++} ++ ++// Macro: Get the flush zero bits from the MXCSR control and status register. ++// The flush zero may contain any of the following flags: _MM_FLUSH_ZERO_ON or ++// _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_FLUSH_ZERO_MODE ++FORCE_INLINE unsigned int _sse2neon_mm_get_flush_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_FLUSH_ZERO_ON : _MM_FLUSH_ZERO_OFF; ++} ++ ++// Macro: Get the rounding mode bits from the MXCSR control and status register. ++// The rounding mode may contain any of the following flags: _MM_ROUND_NEAREST, ++// _MM_ROUND_DOWN, _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_ROUNDING_MODE ++FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ if (r.field.bit22) { ++ return r.field.bit23 ? _MM_ROUND_TOWARD_ZERO : _MM_ROUND_UP; ++ } else { ++ return r.field.bit23 ? _MM_ROUND_DOWN : _MM_ROUND_NEAREST; ++ } ++} ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_pi16 ++#define _mm_insert_pi16(a, b, imm) \ ++ vreinterpret_m64_s16(vset_lane_s16((b), vreinterpret_s16_m64(a), (imm))) ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps ++FORCE_INLINE __m128 _mm_load_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// ++// dst[31:0] := MEM[mem_addr+31:mem_addr] ++// dst[63:32] := MEM[mem_addr+31:mem_addr] ++// dst[95:64] := MEM[mem_addr+31:mem_addr] ++// dst[127:96] := MEM[mem_addr+31:mem_addr] ++// ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps1 ++#define _mm_load_ps1 _mm_load1_ps ++ ++// Load a single-precision (32-bit) floating-point element from memory into the ++// lower of dst, and zero the upper 3 elements. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ss ++FORCE_INLINE __m128 _mm_load_ss(const float *p) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(*p, vdupq_n_f32(0), 0)); ++} ++ ++// Load a single-precision (32-bit) floating-point element from memory into all ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_ps ++FORCE_INLINE __m128 _mm_load1_ps(const float *p) ++{ ++ return vreinterpretq_m128_f32(vld1q_dup_f32(p)); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// upper 2 elements of dst, and copy the lower 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pi ++FORCE_INLINE __m128 _mm_loadh_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vget_low_f32(a), vld1_f32((const float32_t *) p))); ++} ++ ++// Load 2 single-precision (32-bit) floating-point elements from memory into the ++// lower 2 elements of dst, and copy the upper 2 elements from a to dst. ++// mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pi ++FORCE_INLINE __m128 _mm_loadl_pi(__m128 a, __m64 const *p) ++{ ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vld1_f32((const float32_t *) p), vget_high_f32(a))); ++} ++ ++// Load 4 single-precision (32-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_ps ++FORCE_INLINE __m128 _mm_loadr_ps(const float *p) ++{ ++ float32x4_t v = vrev64q_f32(vld1q_f32(p)); ++ return vreinterpretq_m128_f32(vextq_f32(v, v, 2)); ++} ++ ++// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from memory into dst. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_ps ++FORCE_INLINE __m128 _mm_loadu_ps(const float *p) ++{ ++ // for neon, alignment doesn't matter, so _mm_load_ps and _mm_loadu_ps are ++ // equivalent for neon ++ return vreinterpretq_m128_f32(vld1q_f32(p)); ++} ++ ++// Load unaligned 16-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si16 ++FORCE_INLINE __m128i _mm_loadu_si16(const void *p) ++{ ++ return vreinterpretq_m128i_s16( ++ vsetq_lane_s16(*(const unaligned_int16_t *) p, vdupq_n_s16(0), 0)); ++} ++ ++// Load unaligned 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si64 ++FORCE_INLINE __m128i _mm_loadu_si64(const void *p) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(*(const unaligned_int64_t *) p, vdupq_n_s64(0), 0)); ++} ++ ++// Allocate size bytes of memory, aligned to the alignment specified in align, ++// and return a pointer to the allocated memory. _mm_free should be used to free ++// memory that is allocated with _mm_malloc. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_malloc ++#if !defined(SSE2NEON_ALLOC_DEFINED) ++FORCE_INLINE void *_mm_malloc(size_t size, size_t align) ++{ ++ void *ptr; ++ if (align == 1) ++ return malloc(size); ++ if (align == 2 || (sizeof(void *) == 8 && align == 4)) ++ align = sizeof(void *); ++ if (!posix_memalign(&ptr, align, size)) ++ return ptr; ++ return NULL; ++} ++#endif ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmove_si64 ++FORCE_INLINE void _mm_maskmove_si64(__m64 a, __m64 mask, char *mem_addr) ++{ ++ int8x8_t shr_mask = vshr_n_s8(vreinterpret_s8_m64(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x8_t masked = ++ vbsl_s8(vreinterpret_u8_s8(shr_mask), vreinterpret_s8_m64(a), ++ vreinterpret_s8_u64(vget_low_u64(vreinterpretq_u64_m128(b)))); ++ vst1_s8((int8_t *) mem_addr, masked); ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_maskmovq ++#define _m_maskmovq(a, mask, mem_addr) _mm_maskmove_si64(a, mask, mem_addr) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pi16 ++FORCE_INLINE __m64 _mm_max_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmax_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) maximum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ps ++FORCE_INLINE __m128 _mm_max_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcgtq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vmaxq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pu8 ++FORCE_INLINE __m64 _mm_max_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmax_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) maximum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ss ++FORCE_INLINE __m128 _mm_max_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_max_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pi16 ++FORCE_INLINE __m64 _mm_min_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vmin_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Compare packed single-precision (32-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. dst does not follow the IEEE Standard ++// for Floating-Point Arithmetic (IEEE 754) minimum value when inputs are NaN or ++// signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ps ++FORCE_INLINE __m128 _mm_min_ps(__m128 a, __m128 b) ++{ ++#if SSE2NEON_PRECISE_MINMAX ++ float32x4_t _a = vreinterpretq_f32_m128(a); ++ float32x4_t _b = vreinterpretq_f32_m128(b); ++ return vreinterpretq_m128_f32(vbslq_f32(vcltq_f32(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128_f32( ++ vminq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#endif ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pu8 ++FORCE_INLINE __m64 _mm_min_pu8(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u8( ++ vmin_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); ++} ++ ++// Compare the lower single-precision (32-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper 3 ++// packed elements from a to the upper element of dst. dst does not follow the ++// IEEE Standard for Floating-Point Arithmetic (IEEE 754) minimum value when ++// inputs are NaN or signed-zero values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ss ++FORCE_INLINE __m128 _mm_min_ss(__m128 a, __m128 b) ++{ ++ float32_t value = vgetq_lane_f32(_mm_min_ps(a, b), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the lower single-precision (32-bit) floating-point element from b to the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_ss ++FORCE_INLINE __m128 _mm_move_ss(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(vgetq_lane_f32(vreinterpretq_f32_m128(b), 0), ++ vreinterpretq_f32_m128(a), 0)); ++} ++ ++// Move the upper 2 single-precision (32-bit) floating-point elements from b to ++// the lower 2 elements of dst, and copy the upper 2 elements from a to the ++// upper 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehl_ps ++FORCE_INLINE __m128 _mm_movehl_ps(__m128 a, __m128 b) ++{ ++#if defined(aarch64__) ++ return vreinterpretq_m128_u64( ++ vzip2q_u64(vreinterpretq_u64_m128(b), vreinterpretq_u64_m128(a))); ++#else ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32(vcombine_f32(b32, a32)); ++#endif ++} ++ ++// Move the lower 2 single-precision (32-bit) floating-point elements from b to ++// the upper 2 elements of dst, and copy the lower 2 elements from a to the ++// lower 2 elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movelh_ps ++FORCE_INLINE __m128 _mm_movelh_ps(__m128 __A, __m128 __B) ++{ ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(__A)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(__B)); ++ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pi8 ++FORCE_INLINE int _mm_movemask_pi8(__m64 a) ++{ ++ uint8x8_t input = vreinterpret_u8_m64(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int8_t shift[8] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint8x8_t tmp = vshr_n_u8(input, 7); ++ return vaddv_u8(vshl_u8(tmp, vld1_s8(shift))); ++#else ++ // Refer the implementation of `_mm_movemask_epi8` ++ uint16x4_t high_bits = vreinterpret_u16_u8(vshr_n_u8(input, 7)); ++ uint32x2_t paired16 = ++ vreinterpret_u32_u16(vsra_n_u16(high_bits, high_bits, 7)); ++ uint8x8_t paired32 = ++ vreinterpret_u8_u32(vsra_n_u32(paired16, paired16, 14)); ++ return vget_lane_u8(paired32, 0) | ((int) vget_lane_u8(paired32, 4) << 4); ++#endif ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed single-precision (32-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_ps ++FORCE_INLINE int _mm_movemask_ps(__m128 a) ++{ ++ uint32x4_t input = vreinterpretq_u32_m128(a); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const int32_t shift[4] = {0, 1, 2, 3}; ++ uint32x4_t tmp = vshrq_n_u32(input, 31); ++ return vaddvq_u32(vshlq_u32(tmp, vld1q_s32(shift))); ++#else ++ // Uses the exact same method as _mm_movemask_epi8, see that for details. ++ // Shift out everything but the sign bits with a 32-bit unsigned shift ++ // right. ++ uint64x2_t high_bits = vreinterpretq_u64_u32(vshrq_n_u32(input, 31)); ++ // Merge the two pairs together with a 64-bit unsigned shift right + add. ++ uint8x16_t paired = ++ vreinterpretq_u8_u64(vsraq_n_u64(high_bits, high_bits, 31)); ++ // Extract the result. ++ return vgetq_lane_u8(paired, 0) | (vgetq_lane_u8(paired, 8) << 2); ++#endif ++} ++ ++// Multiply packed single-precision (32-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ps ++FORCE_INLINE_OPTNONE __m128 _mm_mul_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vmulq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Multiply the lower single-precision (32-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper 3 packed ++// elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ss ++FORCE_INLINE __m128 _mm_mul_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_mul_ps(a, b)); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_pu16 ++FORCE_INLINE __m64 _mm_mulhi_pu16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u16(vshrn_n_u32( ++ vmull_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b)), 16)); ++} ++ ++// Compute the bitwise OR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_ps ++FORCE_INLINE __m128 _mm_or_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ vorrq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgb ++#define _m_pavgb(a, b) _mm_avg_pu8(a, b) ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgw ++#define _m_pavgw(a, b) _mm_avg_pu16(a, b) ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pextrw ++#define _m_pextrw(a, imm) _mm_extract_pi16(a, imm) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_pinsrw ++#define _m_pinsrw(a, i, imm) _mm_insert_pi16(a, i, imm) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxsw ++#define _m_pmaxsw(a, b) _mm_max_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxub ++#define _m_pmaxub(a, b) _mm_max_pu8(a, b) ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminsw ++#define _m_pminsw(a, b) _mm_min_pi16(a, b) ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminub ++#define _m_pminub(a, b) _mm_min_pu8(a, b) ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmovmskb ++#define _m_pmovmskb(a) _mm_movemask_pi8(a) ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmulhuw ++#define _m_pmulhuw(a, b) _mm_mulhi_pu16(a, b) ++ ++// Fetch the line of data from memory that contains address p to a location in ++// the cache hierarchy specified by the locality hint i. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_prefetch ++FORCE_INLINE void _mm_prefetch(char const *p, int i) ++{ ++ (void) i; ++#if defined(_MSC_VER) && !defined(__clang__) ++ switch (i) { ++ case _MM_HINT_NTA: ++ __prefetch2(p, 1); ++ break; ++ case _MM_HINT_T0: ++ __prefetch2(p, 0); ++ break; ++ case _MM_HINT_T1: ++ __prefetch2(p, 2); ++ break; ++ case _MM_HINT_T2: ++ __prefetch2(p, 4); ++ break; ++ } ++#else ++ switch (i) { ++ case _MM_HINT_NTA: ++ __builtin_prefetch(p, 0, 0); ++ break; ++ case _MM_HINT_T0: ++ __builtin_prefetch(p, 0, 3); ++ break; ++ case _MM_HINT_T1: ++ __builtin_prefetch(p, 0, 2); ++ break; ++ case _MM_HINT_T2: ++ __builtin_prefetch(p, 0, 1); ++ break; ++ } ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_psadbw ++#define _m_psadbw(a, b) _mm_sad_pu8(a, b) ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pshufw ++#define _m_pshufw(a, imm) _mm_shuffle_pi16(a, imm) ++ ++// Compute the approximate reciprocal of packed single-precision (32-bit) ++// floating-point elements in a, and store the results in dst. The maximum ++// relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ps ++FORCE_INLINE __m128 _mm_rcp_ps(__m128 in) ++{ ++ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(in)); ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#if SSE2NEON_PRECISE_DIV ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); ++#endif ++ return vreinterpretq_m128_f32(recip); ++} ++ ++// Compute the approximate reciprocal of the lower single-precision (32-bit) ++// floating-point element in a, store the result in the lower element of dst, ++// and copy the upper 3 packed elements from a to the upper elements of dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ss ++FORCE_INLINE __m128 _mm_rcp_ss(__m128 a) ++{ ++ return _mm_move_ss(a, _mm_rcp_ps(a)); ++} ++ ++// Compute the approximate reciprocal square root of packed single-precision ++// (32-bit) floating-point elements in a, and store the results in dst. The ++// maximum relative error for this approximation is less than 1.5*2^-12. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ps ++FORCE_INLINE __m128 _mm_rsqrt_ps(__m128 in) ++{ ++ float32x4_t out = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Generate masks for detecting whether input has any 0.0f/-0.0f ++ // (which becomes positive/negative infinity by IEEE-754 arithmetic rules). ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t neg_inf = vdupq_n_u32(0xFF800000); ++ const uint32x4_t has_pos_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(out)); ++ const uint32x4_t has_neg_zero = ++ vceqq_u32(neg_inf, vreinterpretq_u32_f32(out)); ++ ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#if SSE2NEON_PRECISE_SQRT ++ // Additional Netwon-Raphson iteration for accuracy ++ out = vmulq_f32( ++ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); ++#endif ++ ++ // Set output vector element to infinity/negative-infinity if ++ // the corresponding input vector element is 0.0f/-0.0f. ++ out = vbslq_f32(has_pos_zero, (float32x4_t) pos_inf, out); ++ out = vbslq_f32(has_neg_zero, (float32x4_t) neg_inf, out); ++ ++ return vreinterpretq_m128_f32(out); ++} ++ ++// Compute the approximate reciprocal square root of the lower single-precision ++// (32-bit) floating-point element in a, store the result in the lower element ++// of dst, and copy the upper 3 packed elements from a to the upper elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ss ++FORCE_INLINE __m128 _mm_rsqrt_ss(__m128 in) ++{ ++ return vsetq_lane_f32(vgetq_lane_f32(_mm_rsqrt_ps(in), 0), in, 0); ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce four ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_pu8 ++FORCE_INLINE __m64 _mm_sad_pu8(__m64 a, __m64 b) ++{ ++ uint64x1_t t = vpaddl_u32(vpaddl_u16( ++ vpaddl_u8(vabd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))))); ++ return vreinterpret_m64_u16( ++ vset_lane_u16((int) vget_lane_u64(t, 0), vdup_n_u16(0), 0)); ++} ++ ++// Macro: Set the flush zero bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The flush zero may contain any of the ++// following flags: _MM_FLUSH_ZERO_ON or _MM_FLUSH_ZERO_OFF ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_FLUSH_ZERO_MODE ++FORCE_INLINE void _sse2neon_mm_set_flush_zero_mode(unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_FLUSH_ZERO_MASK) == _MM_FLUSH_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps ++FORCE_INLINE __m128 _mm_set_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {x, y, z, w}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps1 ++FORCE_INLINE __m128 _mm_set_ps1(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Macro: Set the rounding mode bits of the MXCSR control and status register to ++// the value in unsigned 32-bit integer a. The rounding mode may contain any of ++// the following flags: _MM_ROUND_NEAREST, _MM_ROUND_DOWN, _MM_ROUND_UP, ++// _MM_ROUND_TOWARD_ZERO ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_ROUNDING_MODE ++FORCE_INLINE_OPTNONE void _MM_SET_ROUNDING_MODE(int rounding) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ switch (rounding) { ++ case _MM_ROUND_TOWARD_ZERO: ++ r.field.bit22 = 1; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_DOWN: ++ r.field.bit22 = 0; ++ r.field.bit23 = 1; ++ break; ++ case _MM_ROUND_UP: ++ r.field.bit22 = 1; ++ r.field.bit23 = 0; ++ break; ++ default: //_MM_ROUND_NEAREST ++ r.field.bit22 = 0; ++ r.field.bit23 = 0; ++ } ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Copy single-precision (32-bit) floating-point element a to the lower element ++// of dst, and zero the upper 3 elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ss ++FORCE_INLINE __m128 _mm_set_ss(float a) ++{ ++ return vreinterpretq_m128_f32(vsetq_lane_f32(a, vdupq_n_f32(0), 0)); ++} ++ ++// Broadcast single-precision (32-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_ps ++FORCE_INLINE __m128 _mm_set1_ps(float _w) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); ++} ++ ++// Set the MXCSR control and status register with the value in unsigned 32-bit ++// integer a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setcsr ++// FIXME: _mm_setcsr() implementation supports changing the rounding mode only. ++FORCE_INLINE void _mm_setcsr(unsigned int a) ++{ ++ _MM_SET_ROUNDING_MODE(a); ++} ++ ++// Get the unsigned 32-bit value of the MXCSR control and status register. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_getcsr ++// FIXME: _mm_getcsr() implementation supports reading the rounding mode only. ++FORCE_INLINE unsigned int _mm_getcsr(void) ++{ ++ return _MM_GET_ROUNDING_MODE(); ++} ++ ++// Set packed single-precision (32-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_ps ++FORCE_INLINE __m128 _mm_setr_ps(float w, float z, float y, float x) ++{ ++ float ALIGN_STRUCT(16) data[4] = {w, z, y, x}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++} ++ ++// Return vector of type __m128 with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_ps ++FORCE_INLINE __m128 _mm_setzero_ps(void) ++{ ++ return vreinterpretq_m128_f32(vdupq_n_f32(0)); ++} ++ ++// Shuffle 16-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi16 ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pi16(a, imm) \ ++ vreinterpret_m64_s16(vshuffle_s16( \ ++ vreinterpret_s16_m64(a), vreinterpret_s16_m64(a), (imm & 0x3), \ ++ ((imm >> 2) & 0x3), ((imm >> 4) & 0x3), ((imm >> 6) & 0x3))) ++#else ++#define _mm_shuffle_pi16(a, imm) \ ++ _sse2neon_define1( \ ++ __m64, a, int16x4_t ret; \ ++ ret = vmov_n_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), (imm) & (0x3))); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 2) & 0x3), ret, \ ++ 1); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 4) & 0x3), ret, \ ++ 2); \ ++ ret = vset_lane_s16( \ ++ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 6) & 0x3), ret, \ ++ 3); \ ++ _sse2neon_return(vreinterpret_m64_s16(ret));) ++#endif ++ ++// Perform a serializing operation on all store-to-memory instructions that were ++// issued prior to this instruction. Guarantees that every store instruction ++// that precedes, in program order, is globally visible before any store ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sfence ++FORCE_INLINE void _mm_sfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory and store-to-memory ++// instructions that were issued prior to this instruction. Guarantees that ++// every memory access that precedes, in program order, the memory fence ++// instruction is globally visible before any memory instruction which follows ++// the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mfence ++FORCE_INLINE void _mm_mfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// Perform a serializing operation on all load-from-memory instructions that ++// were issued prior to this instruction. Guarantees that every load instruction ++// that precedes, in program order, is globally visible before any load ++// instruction which follows the fence in program order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lfence ++FORCE_INLINE void _mm_lfence(void) ++{ ++ _sse2neon_smp_mb(); ++} ++ ++// FORCE_INLINE __m128 _mm_shuffle_ps(__m128 a, __m128 b, __constrange(0,255) ++// int imm) ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_ps(a, b, imm) \ ++ __extension__({ \ ++ float32x4_t _input1 = vreinterpretq_f32_m128(a); \ ++ float32x4_t _input2 = vreinterpretq_f32_m128(b); \ ++ float32x4_t _shuf = \ ++ vshuffleq_s32(_input1, _input2, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ (((imm) >> 4) & 0x3) + 4, (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128_f32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_ps(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128, a, b, __m128 ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_1032(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_ps_2301(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_ps_0321(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_ps_2103(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_movelh_ps(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_1001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_ps_0101(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 1, 0): \ ++ ret = _mm_shuffle_ps_3210(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 1, 1): \ ++ ret = _mm_shuffle_ps_0011(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 2, 2): \ ++ ret = _mm_shuffle_ps_0022(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 0, 0): \ ++ ret = _mm_shuffle_ps_2200(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 0, 2): \ ++ ret = _mm_shuffle_ps_3202(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(3, 2, 3, 2): \ ++ ret = _mm_movehl_ps(_b, _a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 3, 3): \ ++ ret = _mm_shuffle_ps_1133(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 1, 0): \ ++ ret = _mm_shuffle_ps_2010(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 0, 1): \ ++ ret = _mm_shuffle_ps_2001(_a, _b); \ ++ break; \ ++ case _MM_SHUFFLE(2, 0, 3, 2): \ ++ ret = _mm_shuffle_ps_2032(_a, _b); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_ps_default(_a, _b, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Compute the square root of packed single-precision (32-bit) floating-point ++// elements in a, and store the results in dst. ++// Due to ARMv7-A NEON's lack of a precise square root intrinsic, we implement ++// square root by multiplying input in with its reciprocal square root before ++// using the Newton-Raphson method to approximate the results. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ps ++FORCE_INLINE __m128 _mm_sqrt_ps(__m128 in) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) && !SSE2NEON_PRECISE_SQRT ++ return vreinterpretq_m128_f32(vsqrtq_f32(vreinterpretq_f32_m128(in))); ++#else ++ float32x4_t recip = vrsqrteq_f32(vreinterpretq_f32_m128(in)); ++ ++ // Test for vrsqrteq_f32(0) -> positive infinity case. ++ // Change to zero, so that s * 1/sqrt(s) result is zero too. ++ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); ++ const uint32x4_t div_by_zero = ++ vceqq_u32(pos_inf, vreinterpretq_u32_f32(recip)); ++ recip = vreinterpretq_f32_u32( ++ vandq_u32(vmvnq_u32(div_by_zero), vreinterpretq_u32_f32(recip))); ++ ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ // Additional Netwon-Raphson iteration for accuracy ++ recip = vmulq_f32( ++ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), ++ recip); ++ ++ // sqrt(s) = s * 1/sqrt(s) ++ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(in), recip)); ++#endif ++} ++ ++// Compute the square root of the lower single-precision (32-bit) floating-point ++// element in a, store the result in the lower element of dst, and copy the ++// upper 3 packed elements from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ss ++FORCE_INLINE __m128 _mm_sqrt_ss(__m128 in) ++{ ++ float32_t value = ++ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_sqrt_ps(in)), 0); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32(value, vreinterpretq_f32_m128(in), 0)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps ++FORCE_INLINE void _mm_store_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps1 ++FORCE_INLINE void _mm_store_ps1(float *p, __m128 a) ++{ ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ vst1q_f32(p, vdupq_n_f32(a0)); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ss ++FORCE_INLINE void _mm_store_ss(float *p, __m128 a) ++{ ++ vst1q_lane_f32(p, vreinterpretq_f32_m128(a), 0); ++} ++ ++// Store the lower single-precision (32-bit) floating-point element from a into ++// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store1_ps ++#define _mm_store1_ps _mm_store_ps1 ++ ++// Store the upper 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pi ++FORCE_INLINE void _mm_storeh_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_high_f32(a)); ++} ++ ++// Store the lower 2 single-precision (32-bit) floating-point elements from a ++// into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pi ++FORCE_INLINE void _mm_storel_pi(__m64 *p, __m128 a) ++{ ++ *p = vreinterpret_m64_f32(vget_low_f32(a)); ++} ++ ++// Store 4 single-precision (32-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_ps ++FORCE_INLINE void _mm_storer_ps(float *p, __m128 a) ++{ ++ float32x4_t tmp = vrev64q_f32(vreinterpretq_f32_m128(a)); ++ float32x4_t rev = vextq_f32(tmp, tmp, 2); ++ vst1q_f32(p, rev); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_ps ++FORCE_INLINE void _mm_storeu_ps(float *p, __m128 a) ++{ ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++} ++ ++// Stores 16-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si16 ++FORCE_INLINE void _mm_storeu_si16(void *p, __m128i a) ++{ ++ vst1q_lane_s16((int16_t *) p, vreinterpretq_s16_m128i(a), 0); ++} ++ ++// Stores 64-bits of integer data a at the address p. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si64 ++FORCE_INLINE void _mm_storeu_si64(void *p, __m128i a) ++{ ++ vst1q_lane_s64((int64_t *) p, vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Store 64-bits of integer data from a into memory using a non-temporal memory ++// hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pi ++FORCE_INLINE void _mm_stream_pi(__m64 *p, __m64 a) ++{ ++ vst1_s64((int64_t *) p, vreinterpret_s64_m64(a)); ++} ++ ++// Store 128-bits (composed of 4 packed single-precision (32-bit) floating- ++// point elements) from a into memory using a non-temporal memory hint. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_ps ++FORCE_INLINE void _mm_stream_ps(float *p, __m128 a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (float32x4_t *) p); ++#else ++ vst1q_f32(p, vreinterpretq_f32_m128(a)); ++#endif ++} ++ ++// Subtract packed single-precision (32-bit) floating-point elements in b from ++// packed single-precision (32-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ps ++FORCE_INLINE __m128 _mm_sub_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++} ++ ++// Subtract the lower single-precision (32-bit) floating-point element in b from ++// the lower single-precision (32-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper 3 packed elements from ++// a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ss ++FORCE_INLINE __m128 _mm_sub_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_sub_ps(a, b)); ++} ++ ++// Macro: Transpose the 4x4 matrix formed by the 4 rows of single-precision ++// (32-bit) floating-point elements in row0, row1, row2, and row3, and store the ++// transposed matrix in these vectors (row0 now contains column 0, etc.). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=MM_TRANSPOSE4_PS ++#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \ ++ do { \ ++ float32x4x2_t ROW01 = vtrnq_f32(row0, row1); \ ++ float32x4x2_t ROW23 = vtrnq_f32(row2, row3); \ ++ row0 = vcombine_f32(vget_low_f32(ROW01.val[0]), \ ++ vget_low_f32(ROW23.val[0])); \ ++ row1 = vcombine_f32(vget_low_f32(ROW01.val[1]), \ ++ vget_low_f32(ROW23.val[1])); \ ++ row2 = vcombine_f32(vget_high_f32(ROW01.val[0]), \ ++ vget_high_f32(ROW23.val[0])); \ ++ row3 = vcombine_f32(vget_high_f32(ROW01.val[1]), \ ++ vget_high_f32(ROW23.val[1])); \ ++ } while (0) ++ ++// according to the documentation, these intrinsics behave the same as the ++// non-'u' versions. We'll just alias them here. ++#define _mm_ucomieq_ss _mm_comieq_ss ++#define _mm_ucomige_ss _mm_comige_ss ++#define _mm_ucomigt_ss _mm_comigt_ss ++#define _mm_ucomile_ss _mm_comile_ss ++#define _mm_ucomilt_ss _mm_comilt_ss ++#define _mm_ucomineq_ss _mm_comineq_ss ++ ++// Return vector of type __m128i with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_undefined_si128 ++FORCE_INLINE __m128i _mm_undefined_si128(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128i a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_si128(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Return vector of type __m128 with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_ps ++FORCE_INLINE __m128 _mm_undefined_ps(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128 a; ++#if defined(_MSC_VER) ++ a = _mm_setzero_ps(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the high half a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_ps ++FORCE_INLINE __m128 _mm_unpackhi_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave single-precision (32-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_ps ++FORCE_INLINE __m128 _mm_unpacklo_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vzip1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a1 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b1 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2x2_t result = vzip_f32(a1, b1); ++ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Compute the bitwise XOR of packed single-precision (32-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_ps ++FORCE_INLINE __m128 _mm_xor_ps(__m128 a, __m128 b) ++{ ++ return vreinterpretq_m128_s32( ++ veorq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); ++} ++ ++/* SSE2 */ ++ ++// Add packed 16-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi16 ++FORCE_INLINE __m128i _mm_add_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed 32-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi32 ++FORCE_INLINE __m128i _mm_add_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vaddq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Add packed 64-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi64 ++FORCE_INLINE __m128i _mm_add_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vaddq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Add packed 8-bit integers in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi8 ++FORCE_INLINE __m128i _mm_add_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed double-precision (64-bit) floating-point elements in a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_pd ++FORCE_INLINE __m128d _mm_add_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ double c[2]; ++ c[0] = a0 + b0; ++ c[1] = a1 + b1; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add the lower double-precision (64-bit) floating-point element in a and b, ++// store the result in the lower element of dst, and copy the upper element from ++// a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_sd ++FORCE_INLINE __m128d _mm_add_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_add_pd(a, b)); ++#else ++ double a0, a1, b0; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ a1 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ b0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double c[2]; ++ c[0] = a0 + b0; ++ c[1] = a1; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Add 64-bit integers a and b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_si64 ++FORCE_INLINE __m64 _mm_add_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vadd_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Add packed signed 16-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi16 ++FORCE_INLINE __m128i _mm_adds_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Add packed signed 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi8 ++FORCE_INLINE __m128i _mm_adds_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Add packed unsigned 16-bit integers in a and b using saturation, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu16 ++FORCE_INLINE __m128i _mm_adds_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqaddq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Add packed unsigned 8-bit integers in a and b using saturation, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu8 ++FORCE_INLINE __m128i _mm_adds_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compute the bitwise AND of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_pd ++FORCE_INLINE __m128d _mm_and_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vandq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_si128 ++FORCE_INLINE __m128i _mm_and_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vandq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compute the bitwise NOT of packed double-precision (64-bit) floating-point ++// elements in a and then AND with b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_pd ++FORCE_INLINE __m128d _mm_andnot_pd(__m128d a, __m128d b) ++{ ++ // *NOTE* argument swap ++ return vreinterpretq_m128d_s64( ++ vbicq_s64(vreinterpretq_s64_m128d(b), vreinterpretq_s64_m128d(a))); ++} ++ ++// Compute the bitwise NOT of 128 bits (representing integer data) in a and then ++// AND with b, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_si128 ++FORCE_INLINE __m128i _mm_andnot_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vbicq_s32(vreinterpretq_s32_m128i(b), ++ vreinterpretq_s32_m128i(a))); // *NOTE* argument swap ++} ++ ++// Average packed unsigned 16-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu16 ++FORCE_INLINE __m128i _mm_avg_epu16(__m128i a, __m128i b) ++{ ++ return (__m128i) vrhaddq_u16(vreinterpretq_u16_m128i(a), ++ vreinterpretq_u16_m128i(b)); ++} ++ ++// Average packed unsigned 8-bit integers in a and b, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu8 ++FORCE_INLINE __m128i _mm_avg_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vrhaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bslli_si128 ++#define _mm_bslli_si128(a, imm) _mm_slli_si128(a, imm) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bsrli_si128 ++#define _mm_bsrli_si128(a, imm) _mm_srli_si128(a, imm) ++ ++// Cast vector of type __m128d to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_ps ++FORCE_INLINE __m128 _mm_castpd_ps(__m128d a) ++{ ++ return vreinterpretq_m128_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128d to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_si128 ++FORCE_INLINE __m128i _mm_castpd_si128(__m128d a) ++{ ++ return vreinterpretq_m128i_s64(vreinterpretq_s64_m128d(a)); ++} ++ ++// Cast vector of type __m128 to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_pd ++FORCE_INLINE __m128d _mm_castps_pd(__m128 a) ++{ ++ return vreinterpretq_m128d_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128 to type __m128i. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_si128 ++FORCE_INLINE __m128i _mm_castps_si128(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vreinterpretq_s32_m128(a)); ++} ++ ++// Cast vector of type __m128i to type __m128d. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_pd ++FORCE_INLINE __m128d _mm_castsi128_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vreinterpretq_f64_m128i(a)); ++#else ++ return vreinterpretq_m128d_f32(vreinterpretq_f32_m128i(a)); ++#endif ++} ++ ++// Cast vector of type __m128i to type __m128. This intrinsic is only used for ++// compilation and does not generate any instructions, thus it has zero latency. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_ps ++FORCE_INLINE __m128 _mm_castsi128_ps(__m128i a) ++{ ++ return vreinterpretq_m128_s32(vreinterpretq_s32_m128i(a)); ++} ++ ++// Invalidate and flush the cache line that contains p from all levels of the ++// cache hierarchy. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clflush ++#if defined(__APPLE__) ++#include ++#endif ++FORCE_INLINE void _mm_clflush(void const *p) ++{ ++ (void) p; ++ ++ /* sys_icache_invalidate is supported since macOS 10.5. ++ * However, it does not work on non-jailbroken iOS devices, although the ++ * compilation is successful. ++ */ ++#if defined(__APPLE__) ++ sys_icache_invalidate((void *) (uintptr_t) p, SSE2NEON_CACHELINE_SIZE); ++#elif defined(__GNUC__) || defined(__clang__) ++ uintptr_t ptr = (uintptr_t) p; ++ __builtin___clear_cache((char *) ptr, ++ (char *) ptr + SSE2NEON_CACHELINE_SIZE); ++#elif (_MSC_VER) && SSE2NEON_INCLUDE_WINDOWS_H ++ FlushInstructionCache(GetCurrentProcess(), p, SSE2NEON_CACHELINE_SIZE); ++#endif ++} ++ ++// Compare packed 16-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi16 ++FORCE_INLINE __m128i _mm_cmpeq_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vceqq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed 32-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi32 ++FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vceqq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed 8-bit integers in a and b for equality, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi8 ++FORCE_INLINE __m128i _mm_cmpeq_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vceqq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for equality, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_pd ++FORCE_INLINE __m128d _mm_cmpeq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for equality, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_sd ++FORCE_INLINE __m128d _mm_cmpeq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpeq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_pd ++FORCE_INLINE __m128d _mm_cmpge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ uint64_t d[2]; ++ d[0] = a0 >= b0 ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1 >= b1 ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_sd ++FORCE_INLINE __m128d _mm_cmpge_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpge_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ double a0, b0; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ uint64_t a1 = vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1); ++ b0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ uint64_t d[2]; ++ d[0] = a0 >= b0 ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi16 ++FORCE_INLINE __m128i _mm_cmpgt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcgtq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi32 ++FORCE_INLINE __m128i _mm_cmpgt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcgtq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for greater-than, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi8 ++FORCE_INLINE __m128i _mm_cmpgt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcgtq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_pd ++FORCE_INLINE __m128d _mm_cmpgt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ uint64_t d[2]; ++ d[0] = a0 > b0 ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1 > b1 ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for greater-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_sd ++FORCE_INLINE __m128d _mm_cmpgt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpgt_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ double a0, b0; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ uint64_t a1 = vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1); ++ b0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ uint64_t d[2]; ++ d[0] = a0 > b0 ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_pd ++FORCE_INLINE __m128d _mm_cmple_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ uint64_t d[2]; ++ d[0] = a0 <= b0 ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1 <= b1 ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than-or-equal, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_sd ++FORCE_INLINE __m128d _mm_cmple_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmple_pd(a, b)); ++#else ++ // expand "_mm_cmpge_pd()" to reduce unnecessary operations ++ double a0, b0; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ uint64_t a1 = vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1); ++ b0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ uint64_t d[2]; ++ d[0] = a0 <= b0 ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtw instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi16 ++FORCE_INLINE __m128i _mm_cmplt_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcltq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtd instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi32 ++FORCE_INLINE __m128i _mm_cmplt_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vcltq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b for less-than, and store the ++// results in dst. Note: This intrinsic emits the pcmpgtb instruction with the ++// order of the operands switched. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi8 ++FORCE_INLINE __m128i _mm_cmplt_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcltq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_pd ++FORCE_INLINE __m128d _mm_cmplt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ uint64_t d[2]; ++ d[0] = a0 < b0 ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1 < b1 ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for less-than, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_sd ++FORCE_INLINE __m128d _mm_cmplt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmplt_pd(a, b)); ++#else ++ double a0, b0; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ uint64_t a1 = vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1); ++ b0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ uint64_t d[2]; ++ d[0] = a0 < b0 ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_pd ++FORCE_INLINE __m128d _mm_cmpneq_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_s32(vmvnq_s32(vreinterpretq_s32_u64( ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))))); ++#else ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128d_u32(vmvnq_u32(vandq_u32(cmp, swapped))); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-equal, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_sd ++FORCE_INLINE __m128d _mm_cmpneq_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpneq_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_pd ++FORCE_INLINE __m128d _mm_cmpnge_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ uint64_t d[2]; ++ d[0] = !(a0 >= b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = !(a1 >= b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than-or-equal, store the result in the lower element of ++// dst, and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_sd ++FORCE_INLINE __m128d _mm_cmpnge_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnge_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-greater-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_cmpngt_pd ++FORCE_INLINE __m128d _mm_cmpngt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ uint64_t d[2]; ++ d[0] = !(a0 > b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = !(a1 > b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-greater-than, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_sd ++FORCE_INLINE __m128d _mm_cmpngt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpngt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than-or-equal, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_pd ++FORCE_INLINE __m128d _mm_cmpnle_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ uint64_t d[2]; ++ d[0] = !(a0 <= b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = !(a1 <= b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than-or-equal, store the result in the lower element of dst, ++// and copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_sd ++FORCE_INLINE __m128d _mm_cmpnle_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnle_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// for not-less-than, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_pd ++FORCE_INLINE __m128d _mm_cmpnlt_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_u64(veorq_u64( ++ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), ++ vdupq_n_u64(UINT64_MAX))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ uint64_t d[2]; ++ d[0] = !(a0 < b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = !(a1 < b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b for not-less-than, store the result in the lower element of dst, and copy ++// the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_sd ++FORCE_INLINE __m128d _mm_cmpnlt_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_cmpnlt_pd(a, b)); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if neither is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_pd ++FORCE_INLINE __m128d _mm_cmpord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Excluding NaNs, any two floating point numbers can be compared. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_u64(vandq_u64(not_nan_a, not_nan_b)); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ uint64_t d[2]; ++ d[0] = (a0 == a0 && b0 == b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = (a1 == a1 && b1 == b1) ? ~UINT64_C(0) : UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if neither is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_sd ++FORCE_INLINE __m128d _mm_cmpord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpord_pd(a, b)); ++#else ++ double a0, b0; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ uint64_t a1 = vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1); ++ b0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ uint64_t d[2]; ++ d[0] = (a0 == a0 && b0 == b0) ? ~UINT64_C(0) : UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b ++// to see if either is NaN, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_pd ++FORCE_INLINE __m128d _mm_cmpunord_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Two NaNs are not equal in comparison operation. ++ uint64x2_t not_nan_a = ++ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); ++ uint64x2_t not_nan_b = ++ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_s32( ++ vmvnq_s32(vreinterpretq_s32_u64(vandq_u64(not_nan_a, not_nan_b)))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ uint64_t d[2]; ++ d[0] = (a0 == a0 && b0 == b0) ? UINT64_C(0) : ~UINT64_C(0); ++ d[1] = (a1 == a1 && b1 == b1) ? UINT64_C(0) : ~UINT64_C(0); ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b to see if either is NaN, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_sd ++FORCE_INLINE __m128d _mm_cmpunord_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_cmpunord_pd(a, b)); ++#else ++ double a0, b0; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ uint64_t a1 = vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1); ++ b0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ uint64_t d[2]; ++ d[0] = (a0 == a0 && b0 == b0) ? UINT64_C(0) : ~UINT64_C(0); ++ d[1] = a1; ++ ++ return vreinterpretq_m128d_u64(vld1q_u64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_sd ++FORCE_INLINE int _mm_comige_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgeq_f64(a, b), 0) & 0x1; ++#else ++ double a0, b0; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ b0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ return a0 >= b0; ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for greater-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_sd ++FORCE_INLINE int _mm_comigt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcgtq_f64(a, b), 0) & 0x1; ++#else ++ double a0, b0; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ b0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ ++ return a0 > b0; ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than-or-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_sd ++FORCE_INLINE int _mm_comile_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcleq_f64(a, b), 0) & 0x1; ++#else ++ double a0, b0; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ b0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ ++ return a0 <= b0; ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for less-than, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_sd ++FORCE_INLINE int _mm_comilt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vcltq_f64(a, b), 0) & 0x1; ++#else ++ double a0, b0; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ b0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ ++ return a0 < b0; ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for equality, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_sd ++FORCE_INLINE int _mm_comieq_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_u64(vceqq_f64(a, b), 0) & 0x1; ++#else ++ uint32x4_t a_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(a)); ++ uint32x4_t b_not_nan = ++ vceqq_u32(vreinterpretq_u32_m128d(b), vreinterpretq_u32_m128d(b)); ++ uint32x4_t a_and_b_not_nan = vandq_u32(a_not_nan, b_not_nan); ++ uint32x4_t a_eq_b = ++ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); ++ uint64x2_t and_results = vandq_u64(vreinterpretq_u64_u32(a_and_b_not_nan), ++ vreinterpretq_u64_u32(a_eq_b)); ++ return vgetq_lane_u64(and_results, 0) & 0x1; ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point element in a and b ++// for not-equal, and return the boolean result (0 or 1). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_sd ++FORCE_INLINE int _mm_comineq_sd(__m128d a, __m128d b) ++{ ++ return !_mm_comieq_sd(a, b); ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_pd ++FORCE_INLINE __m128d _mm_cvtepi32_pd(__m128i a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a))))); ++#else ++ double a0 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++ double a1 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed single-precision ++// (32-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_ps ++FORCE_INLINE __m128 _mm_cvtepi32_ps(__m128i a) ++{ ++ return vreinterpretq_m128_f32(vcvtq_f32_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_epi32 ++FORCE_INLINE_OPTNONE __m128i _mm_cvtpd_epi32(__m128d a) ++{ ++// vrnd32xq_f64 not supported on clang ++#if defined(__ARM_FEATURE_FRINT) && !defined(__clang__) ++ float64x2_t rounded = vrnd32xq_f64(vreinterpretq_f64_m128d(a)); ++ int64x2_t integers = vcvtq_s64_f64(rounded); ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vmovn_s64(integers), vdup_n_s32(0))); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0, d1; ++ d0 = sse2neon_recast_u64_f64( ++ vgetq_lane_u64(vreinterpretq_u64_m128d(rnd), 0)); ++ d1 = sse2neon_recast_u64_f64( ++ vgetq_lane_u64(vreinterpretq_u64_m128d(rnd), 1)); ++ return _mm_set_epi32(0, 0, (int32_t) d1, (int32_t) d0); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_pi32 ++FORCE_INLINE_OPTNONE __m64 _mm_cvtpd_pi32(__m128d a) ++{ ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double d0, d1; ++ d0 = sse2neon_recast_u64_f64( ++ vgetq_lane_u64(vreinterpretq_u64_m128d(rnd), 0)); ++ d1 = sse2neon_recast_u64_f64( ++ vgetq_lane_u64(vreinterpretq_u64_m128d(rnd), 1)); ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) d0, (int32_t) d1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed single-precision (32-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_ps ++FORCE_INLINE __m128 _mm_cvtpd_ps(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float32x2_t tmp = vcvt_f32_f64(vreinterpretq_f64_m128d(a)); ++ return vreinterpretq_m128_f32(vcombine_f32(tmp, vdup_n_f32(0))); ++#else ++ double a0, a1; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ a1 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ return _mm_set_ps(0, 0, (float) a1, (float) a0); ++#endif ++} ++ ++// Convert packed signed 32-bit integers in a to packed double-precision ++// (64-bit) floating-point elements, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_pd ++FORCE_INLINE __m128d _mm_cvtpi32_pd(__m64 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvtq_f64_s64(vmovl_s32(vreinterpret_s32_m64(a)))); ++#else ++ double a0 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 0); ++ double a1 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_epi32 ++// *NOTE*. The default rounding mode on SSE is 'round to even', which ARMv7-A ++// does not support! It is supported on ARMv8-A however. ++FORCE_INLINE __m128i _mm_cvtps_epi32(__m128 a) ++{ ++#if defined(__ARM_FEATURE_FRINT) ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vrnd32xq_f32(a))); ++#elif (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: ++ return vreinterpretq_m128i_s32(vcvtnq_s32_f32(a)); ++ case _MM_ROUND_DOWN: ++ return vreinterpretq_m128i_s32(vcvtmq_s32_f32(a)); ++ case _MM_ROUND_UP: ++ return vreinterpretq_m128i_s32(vcvtpq_s32_f32(a)); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(a)); ++ } ++#else ++ float *f = (float *) &a; ++ switch (_MM_GET_ROUNDING_MODE()) { ++ case _MM_ROUND_NEAREST: { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128i_s32( ++ vbslq_s32(is_delta_half, r_even, r_normal)); ++ } ++ case _MM_ROUND_DOWN: ++ return _mm_set_epi32(floorf(f[3]), floorf(f[2]), floorf(f[1]), ++ floorf(f[0])); ++ case _MM_ROUND_UP: ++ return _mm_set_epi32(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ++ ceilf(f[0])); ++ default: // _MM_ROUND_TOWARD_ZERO ++ return _mm_set_epi32((int32_t) f[3], (int32_t) f[2], (int32_t) f[1], ++ (int32_t) f[0]); ++ } ++#endif ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed double-precision (64-bit) floating-point elements, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pd ++FORCE_INLINE __m128d _mm_cvtps_pd(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcvt_f64_f32(vget_low_f32(vreinterpretq_f32_m128(a)))); ++#else ++ double a0 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ double a1 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ return _mm_set_pd(a1, a0); ++#endif ++} ++ ++// Copy the lower double-precision (64-bit) floating-point element of a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_f64 ++FORCE_INLINE double _mm_cvtsd_f64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (double) vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0); ++#else ++ double _a = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ return _a; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si32 ++FORCE_INLINE int32_t _mm_cvtsd_si32(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int32_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = sse2neon_recast_u64_f64( ++ vgetq_lane_u64(vreinterpretq_u64_m128d(rnd), 0)); ++ return (int32_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64 ++FORCE_INLINE int64_t _mm_cvtsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return (int64_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); ++ double ret = sse2neon_recast_u64_f64( ++ vgetq_lane_u64(vreinterpretq_u64_m128d(rnd), 0)); ++ return (int64_t) ret; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64x ++#define _mm_cvtsd_si64x _mm_cvtsd_si64 ++ ++// Convert the lower double-precision (64-bit) floating-point element in b to a ++// single-precision (32-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper 3 packed elements from a to the ++// upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_ss ++FORCE_INLINE __m128 _mm_cvtsd_ss(__m128 a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32(vsetq_lane_f32( ++ vget_lane_f32(vcvt_f32_f64(vreinterpretq_f64_m128d(b)), 0), ++ vreinterpretq_f32_m128(a), 0)); ++#else ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ return vreinterpretq_m128_f32( ++ vsetq_lane_f32((float) b0, vreinterpretq_f32_m128(a), 0)); ++#endif ++} ++ ++// Copy the lower 32-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si32 ++FORCE_INLINE int _mm_cvtsi128_si32(__m128i a) ++{ ++ return vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64 ++FORCE_INLINE int64_t _mm_cvtsi128_si64(__m128i a) ++{ ++ return vgetq_lane_s64(vreinterpretq_s64_m128i(a), 0); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Convert the signed 32-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_sd ++FORCE_INLINE __m128d _mm_cvtsi32_sd(__m128d a, int32_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ int64_t _b = sse2neon_recast_f64_s64((double) b); ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(_b, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x ++#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) ++ ++// Copy 32-bit integer a to the lower elements of dst, and zero the upper ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_si128 ++FORCE_INLINE __m128i _mm_cvtsi32_si128(int a) ++{ ++ return vreinterpretq_m128i_s32(vsetq_lane_s32(a, vdupq_n_s32(0), 0)); ++} ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_sd ++FORCE_INLINE __m128d _mm_cvtsi64_sd(__m128d a, int64_t b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); ++#else ++ int64_t _b = sse2neon_recast_f64_s64((double) b); ++ return vreinterpretq_m128d_s64( ++ vsetq_lane_s64(_b, vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_si128 ++FORCE_INLINE __m128i _mm_cvtsi64_si128(int64_t a) ++{ ++ return vreinterpretq_m128i_s64(vsetq_lane_s64(a, vdupq_n_s64(0), 0)); ++} ++ ++// Copy 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_si128 ++#define _mm_cvtsi64x_si128(a) _mm_cvtsi64_si128(a) ++ ++// Convert the signed 64-bit integer b to a double-precision (64-bit) ++// floating-point element, store the result in the lower element of dst, and ++// copy the upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_sd ++#define _mm_cvtsi64x_sd(a, b) _mm_cvtsi64_sd(a, b) ++ ++// Convert the lower single-precision (32-bit) floating-point element in b to a ++// double-precision (64-bit) floating-point element, store the result in the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_sd ++FORCE_INLINE __m128d _mm_cvtss_sd(__m128d a, __m128 b) ++{ ++ double d = (double) vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(d, vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_s64(vsetq_lane_s64( ++ sse2neon_recast_f64_s64(d), vreinterpretq_s64_m128d(a), 0)); ++#endif ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_epi32 ++FORCE_INLINE __m128i _mm_cvttpd_epi32(__m128d a) ++{ ++ double a0, a1; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ a1 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ return _mm_set_epi32(0, 0, (int32_t) a1, (int32_t) a0); ++} ++ ++// Convert packed double-precision (64-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_pi32 ++FORCE_INLINE_OPTNONE __m64 _mm_cvttpd_pi32(__m128d a) ++{ ++ double a0, a1; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ a1 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) a0, (int32_t) a1}; ++ return vreinterpret_m64_s32(vld1_s32(data)); ++} ++ ++// Convert packed single-precision (32-bit) floating-point elements in a to ++// packed 32-bit integers with truncation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_epi32 ++FORCE_INLINE __m128i _mm_cvttps_epi32(__m128 a) ++{ ++ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a))); ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 32-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si32 ++FORCE_INLINE int32_t _mm_cvttsd_si32(__m128d a) ++{ ++ double _a = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ return (int32_t) _a; ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64 ++FORCE_INLINE int64_t _mm_cvttsd_si64(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vgetq_lane_s64(vcvtq_s64_f64(vreinterpretq_f64_m128d(a)), 0); ++#else ++ double _a = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ return (int64_t) _a; ++#endif ++} ++ ++// Convert the lower double-precision (64-bit) floating-point element in a to a ++// 64-bit integer with truncation, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64x ++#define _mm_cvttsd_si64x(a) _mm_cvttsd_si64(a) ++ ++// Divide packed double-precision (64-bit) floating-point elements in a by ++// packed elements in b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_pd ++FORCE_INLINE __m128d _mm_div_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ double c[2]; ++ c[0] = a0 / b0; ++ c[1] = a1 / b1; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Divide the lower double-precision (64-bit) floating-point element in a by the ++// lower double-precision (64-bit) floating-point element in b, store the result ++// in the lower element of dst, and copy the upper element from a to the upper ++// element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_sd ++FORCE_INLINE __m128d _mm_div_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t tmp = ++ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)); ++ return vreinterpretq_m128d_f64( ++ vsetq_lane_f64(vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1), tmp, 1)); ++#else ++ return _mm_move_sd(a, _mm_div_pd(a, b)); ++#endif ++} ++ ++// Extract a 16-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi16 ++// FORCE_INLINE int _mm_extract_epi16(__m128i a, __constrange(0,8) int imm) ++#define _mm_extract_epi16(a, imm) \ ++ vgetq_lane_u16(vreinterpretq_u16_m128i(a), (imm)) ++ ++// Copy a to dst, and insert the 16-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi16 ++// FORCE_INLINE __m128i _mm_insert_epi16(__m128i a, int b, ++// __constrange(0,8) int imm) ++#define _mm_insert_epi16(a, b, imm) \ ++ vreinterpretq_m128i_s16( \ ++ vsetq_lane_s16((b), vreinterpretq_s16_m128i(a), (imm))) ++ ++// Load 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from memory into dst. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd ++FORCE_INLINE __m128d _mm_load_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64(p)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], fp[2], fp[3]}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd1 ++#define _mm_load_pd1 _mm_load1_pd ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower of dst, and zero the upper element. mem_addr does not need to be ++// aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_sd ++FORCE_INLINE __m128d _mm_load_sd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(*p, vdupq_n_f64(0), 0)); ++#else ++ const float *fp = (const float *) p; ++ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], 0, 0}; ++ return vreinterpretq_m128d_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_si128 ++FORCE_INLINE __m128i _mm_load_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const int32_t *) p)); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_pd ++FORCE_INLINE __m128d _mm_load1_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_dup_f64(p)); ++#else ++ return vreinterpretq_m128d_s64(vdupq_n_s64(*(const int64_t *) p)); ++#endif ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// upper element of dst, and copy the lower element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pd ++FORCE_INLINE __m128d _mm_loadh_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vget_low_f64(vreinterpretq_f64_m128d(a)), vld1_f64(p))); ++#else ++ return vreinterpretq_m128d_f32(vcombine_f32( ++ vget_low_f32(vreinterpretq_f32_m128d(a)), vld1_f32((const float *) p))); ++#endif ++} ++ ++// Load 64-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_epi64 ++FORCE_INLINE __m128i _mm_loadl_epi64(__m128i const *p) ++{ ++ /* Load the lower 64 bits of the value pointed to by p into the ++ * lower 64 bits of the result, zeroing the upper 64 bits of the result. ++ */ ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vld1_s32((int32_t const *) p), vcreate_s32(0))); ++} ++ ++// Load a double-precision (64-bit) floating-point element from memory into the ++// lower element of dst, and copy the upper element from a to dst. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pd ++FORCE_INLINE __m128d _mm_loadl_pd(__m128d a, const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vcombine_f64(vld1_f64(p), vget_high_f64(vreinterpretq_f64_m128d(a)))); ++#else ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vld1_f32((const float *) p), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++#endif ++} ++ ++// Load 2 double-precision (64-bit) floating-point elements from memory into dst ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_pd ++FORCE_INLINE __m128d _mm_loadr_pd(const double *p) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t v = vld1q_f64(p); ++ return vreinterpretq_m128d_f64(vextq_f64(v, v, 1)); ++#else ++ int64x2_t v = vld1q_s64((const int64_t *) p); ++ return vreinterpretq_m128d_s64(vextq_s64(v, v, 1)); ++#endif ++} ++ ++// Loads two double-precision from unaligned memory, floating-point values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_pd ++FORCE_INLINE __m128d _mm_loadu_pd(const double *p) ++{ ++ return _mm_load_pd(p); ++} ++ ++// Load 128-bits of integer data from memory into dst. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si128 ++FORCE_INLINE __m128i _mm_loadu_si128(const __m128i *p) ++{ ++ return vreinterpretq_m128i_s32(vld1q_s32((const unaligned_int32_t *) p)); ++} ++ ++// Load unaligned 32-bit integer from memory into the first element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si32 ++FORCE_INLINE __m128i _mm_loadu_si32(const void *p) ++{ ++ return vreinterpretq_m128i_s32( ++ vsetq_lane_s32(*(const unaligned_int32_t *) p, vdupq_n_s32(0), 0)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Horizontally add adjacent pairs of intermediate ++// 32-bit integers, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_madd_epi16 ++FORCE_INLINE __m128i _mm_madd_epi16(__m128i a, __m128i b) ++{ ++ int32x4_t low = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t high = ++ vmull_high_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)); ++ ++ return vreinterpretq_m128i_s32(vpaddq_s32(low, high)); ++#else ++ int32x4_t high = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ int32x2_t low_sum = vpadd_s32(vget_low_s32(low), vget_high_s32(low)); ++ int32x2_t high_sum = vpadd_s32(vget_low_s32(high), vget_high_s32(high)); ++ ++ return vreinterpretq_m128i_s32(vcombine_s32(low_sum, high_sum)); ++#endif ++} ++ ++// Conditionally store 8-bit integer elements from a into memory using mask ++// (elements are not stored when the highest bit is not set in the corresponding ++// element) and a non-temporal memory hint. mem_addr does not need to be aligned ++// on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmoveu_si128 ++FORCE_INLINE void _mm_maskmoveu_si128(__m128i a, __m128i mask, char *mem_addr) ++{ ++ int8x16_t shr_mask = vshrq_n_s8(vreinterpretq_s8_m128i(mask), 7); ++ __m128 b = _mm_load_ps((const float *) mem_addr); ++ int8x16_t masked = ++ vbslq_s8(vreinterpretq_u8_s8(shr_mask), vreinterpretq_s8_m128i(a), ++ vreinterpretq_s8_m128(b)); ++ vst1q_s8((int8_t *) mem_addr, masked); ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi16 ++FORCE_INLINE __m128i _mm_max_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmaxq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu8 ++FORCE_INLINE __m128i _mm_max_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vmaxq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed maximum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pd ++FORCE_INLINE __m128d _mm_max_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcgtq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vmaxq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ int64_t d[2]; ++ d[0] = a0 > b0 ? sse2neon_recast_f64_s64(a0) : sse2neon_recast_f64_s64(b0); ++ d[1] = a1 > b1 ? sse2neon_recast_f64_s64(a1) : sse2neon_recast_f64_s64(b1); ++ ++ return vreinterpretq_m128d_s64(vld1q_s64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the maximum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_sd ++FORCE_INLINE __m128d _mm_max_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_max_pd(a, b)); ++#else ++ double a0, a1, b0; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ a1 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ b0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double c[2] = {a0 > b0 ? a0 : b0, a1}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Compare packed signed 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi16 ++FORCE_INLINE __m128i _mm_min_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vminq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compare packed unsigned 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu8 ++FORCE_INLINE __m128i _mm_min_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vminq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++// Compare packed double-precision (64-bit) floating-point elements in a and b, ++// and store packed minimum values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pd ++FORCE_INLINE __m128d _mm_min_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if SSE2NEON_PRECISE_MINMAX ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64(vbslq_f64(vcltq_f64(_a, _b), _a, _b)); ++#else ++ return vreinterpretq_m128d_f64( ++ vminq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#endif ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ int64_t d[2]; ++ d[0] = a0 < b0 ? sse2neon_recast_f64_s64(a0) : sse2neon_recast_f64_s64(b0); ++ d[1] = a1 < b1 ? sse2neon_recast_f64_s64(a1) : sse2neon_recast_f64_s64(b1); ++ return vreinterpretq_m128d_s64(vld1q_s64(d)); ++#endif ++} ++ ++// Compare the lower double-precision (64-bit) floating-point elements in a and ++// b, store the minimum value in the lower element of dst, and copy the upper ++// element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_sd ++FORCE_INLINE __m128d _mm_min_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_min_pd(a, b)); ++#else ++ double a0, a1, b0; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ a1 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ b0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double c[2] = {a0 < b0 ? a0 : b0, a1}; ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); ++#endif ++} ++ ++// Copy the lower 64-bit integer in a to the lower element of dst, and zero the ++// upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_epi64 ++FORCE_INLINE __m128i _mm_move_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vsetq_lane_s64(0, vreinterpretq_s64_m128i(a), 1)); ++} ++ ++// Move the lower double-precision (64-bit) floating-point element from b to the ++// lower element of dst, and copy the upper element from a to the upper element ++// of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_sd ++FORCE_INLINE __m128d _mm_move_sd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_f32( ++ vcombine_f32(vget_low_f32(vreinterpretq_f32_m128d(b)), ++ vget_high_f32(vreinterpretq_f32_m128d(a)))); ++} ++ ++// Create mask from the most significant bit of each 8-bit element in a, and ++// store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_epi8 ++FORCE_INLINE int _mm_movemask_epi8(__m128i a) ++{ ++ // Use increasingly wide shifts+adds to collect the sign bits ++ // together. ++ // Since the widening shifts would be rather confusing to follow in little ++ // endian, everything will be illustrated in big endian order instead. This ++ // has a different result - the bits would actually be reversed on a big ++ // endian machine. ++ ++ // Starting input (only half the elements are shown): ++ // 89 ff 1d c0 00 10 99 33 ++ uint8x16_t input = vreinterpretq_u8_m128i(a); ++ ++ // Shift out everything but the sign bits with an unsigned shift right. ++ // ++ // Bytes of the vector:: ++ // 89 ff 1d c0 00 10 99 33 ++ // \ \ \ \ \ \ \ \ high_bits = (uint16x4_t)(input >> 7) ++ // | | | | | | | | ++ // 01 01 00 01 00 00 01 00 ++ // ++ // Bits of first important lane(s): ++ // 10001001 (89) ++ // \______ ++ // | ++ // 00000001 (01) ++ uint16x8_t high_bits = vreinterpretq_u16_u8(vshrq_n_u8(input, 7)); ++ ++ // Merge the even lanes together with a 16-bit unsigned shift right + add. ++ // 'xx' represents garbage data which will be ignored in the final result. ++ // In the important bytes, the add functions like a binary OR. ++ // ++ // 01 01 00 01 00 00 01 00 ++ // \_ | \_ | \_ | \_ | paired16 = (uint32x4_t)(input + (input >> 7)) ++ // \| \| \| \| ++ // xx 03 xx 01 xx 00 xx 02 ++ // ++ // 00000001 00000001 (01 01) ++ // \_______ | ++ // \| ++ // xxxxxxxx xxxxxx11 (xx 03) ++ uint32x4_t paired16 = ++ vreinterpretq_u32_u16(vsraq_n_u16(high_bits, high_bits, 7)); ++ ++ // Repeat with a wider 32-bit shift + add. ++ // xx 03 xx 01 xx 00 xx 02 ++ // \____ | \____ | paired32 = (uint64x1_t)(paired16 + (paired16 >> ++ // 14)) ++ // \| \| ++ // xx xx xx 0d xx xx xx 02 ++ // ++ // 00000011 00000001 (03 01) ++ // \\_____ || ++ // '----.\|| ++ // xxxxxxxx xxxx1101 (xx 0d) ++ uint64x2_t paired32 = ++ vreinterpretq_u64_u32(vsraq_n_u32(paired16, paired16, 14)); ++ ++ // Last, an even wider 64-bit shift + add to get our result in the low 8 bit ++ // lanes. xx xx xx 0d xx xx xx 02 ++ // \_________ | paired64 = (uint8x8_t)(paired32 + (paired32 >> ++ // 28)) ++ // \| ++ // xx xx xx xx xx xx xx d2 ++ // ++ // 00001101 00000010 (0d 02) ++ // \ \___ | | ++ // '---. \| | ++ // xxxxxxxx 11010010 (xx d2) ++ uint8x16_t paired64 = ++ vreinterpretq_u8_u64(vsraq_n_u64(paired32, paired32, 28)); ++ ++ // Extract the low 8 bits from each 64-bit lane with 2 8-bit extracts. ++ // xx xx xx xx xx xx xx d2 ++ // || return paired64[0] ++ // d2 ++ // Note: Little endian would return the correct value 4b (01001011) instead. ++ return vgetq_lane_u8(paired64, 0) | ((int) vgetq_lane_u8(paired64, 8) << 8); ++} ++ ++// Set each bit of mask dst based on the most significant bit of the ++// corresponding packed double-precision (64-bit) floating-point element in a. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pd ++FORCE_INLINE int _mm_movemask_pd(__m128d a) ++{ ++ uint64x2_t input = vreinterpretq_u64_m128d(a); ++ uint64x2_t high_bits = vshrq_n_u64(input, 63); ++ return (int) (vgetq_lane_u64(high_bits, 0) | ++ (vgetq_lane_u64(high_bits, 1) << 1)); ++} ++ ++// Copy the lower 64-bit integer in a to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movepi64_pi64 ++FORCE_INLINE __m64 _mm_movepi64_pi64(__m128i a) ++{ ++ return vreinterpret_m64_s64(vget_low_s64(vreinterpretq_s64_m128i(a))); ++} ++ ++// Copy the 64-bit integer a to the lower element of dst, and zero the upper ++// element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movpi64_epi64 ++FORCE_INLINE __m128i _mm_movpi64_epi64(__m64 a) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vreinterpret_s64_m64(a), vdup_n_s64(0))); ++} ++ ++// Multiply the low unsigned 32-bit integers from each packed 64-bit element in ++// a and b, and store the unsigned 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epu32 ++FORCE_INLINE __m128i _mm_mul_epu32(__m128i a, __m128i b) ++{ ++ // vmull_u32 upcasts instead of masking, so we downcast. ++ uint32x2_t a_lo = vmovn_u64(vreinterpretq_u64_m128i(a)); ++ uint32x2_t b_lo = vmovn_u64(vreinterpretq_u64_m128i(b)); ++ return vreinterpretq_m128i_u64(vmull_u32(a_lo, b_lo)); ++} ++ ++// Multiply packed double-precision (64-bit) floating-point elements in a and b, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_pd ++FORCE_INLINE __m128d _mm_mul_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vmulq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ double c[2]; ++ c[0] = a0 * b0; ++ c[1] = a1 * b1; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Multiply the lower double-precision (64-bit) floating-point element in a and ++// b, store the result in the lower element of dst, and copy the upper element ++// from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_mul_sd ++FORCE_INLINE __m128d _mm_mul_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_mul_pd(a, b)); ++} ++ ++// Multiply the low unsigned 32-bit integers from a and b, and store the ++// unsigned 64-bit result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_su32 ++FORCE_INLINE __m64 _mm_mul_su32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_u64(vget_low_u64( ++ vmull_u32(vreinterpret_u32_m64(a), vreinterpret_u32_m64(b)))); ++} ++ ++// Multiply the packed signed 16-bit integers in a and b, producing intermediate ++// 32-bit integers, and store the high 16 bits of the intermediate integers in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epi16 ++FORCE_INLINE __m128i _mm_mulhi_epi16(__m128i a, __m128i b) ++{ ++ /* FIXME: issue with large values because of result saturation */ ++ // int16x8_t ret = vqdmulhq_s16(vreinterpretq_s16_m128i(a), ++ // vreinterpretq_s16_m128i(b)); /* =2*a*b */ return ++ // vreinterpretq_m128i_s16(vshrq_n_s16(ret, 1)); ++ int16x4_t a3210 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b3210 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab3210 = vmull_s16(a3210, b3210); /* 3333222211110000 */ ++ int16x4_t a7654 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b7654 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int32x4_t ab7654 = vmull_s16(a7654, b7654); /* 7777666655554444 */ ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_s32(ab3210), vreinterpretq_u16_s32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++} ++ ++// Multiply the packed unsigned 16-bit integers in a and b, producing ++// intermediate 32-bit integers, and store the high 16 bits of the intermediate ++// integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epu16 ++FORCE_INLINE __m128i _mm_mulhi_epu16(__m128i a, __m128i b) ++{ ++ uint16x4_t a3210 = vget_low_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b3210 = vget_low_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab3210 = vmull_u16(a3210, b3210); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint32x4_t ab7654 = ++ vmull_high_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ uint16x8_t r = vuzp2q_u16(vreinterpretq_u16_u32(ab3210), ++ vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r); ++#else ++ uint16x4_t a7654 = vget_high_u16(vreinterpretq_u16_m128i(a)); ++ uint16x4_t b7654 = vget_high_u16(vreinterpretq_u16_m128i(b)); ++ uint32x4_t ab7654 = vmull_u16(a7654, b7654); ++ uint16x8x2_t r = ++ vuzpq_u16(vreinterpretq_u16_u32(ab3210), vreinterpretq_u16_u32(ab7654)); ++ return vreinterpretq_m128i_u16(r.val[1]); ++#endif ++} ++ ++// Multiply the packed 16-bit integers in a and b, producing intermediate 32-bit ++// integers, and store the low 16 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi16 ++FORCE_INLINE __m128i _mm_mullo_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vmulq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Compute the bitwise OR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_or_pd ++FORCE_INLINE __m128d _mm_or_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ vorrq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise OR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_si128 ++FORCE_INLINE __m128i _mm_or_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vorrq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi16 ++FORCE_INLINE __m128i _mm_packs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vqmovn_s16(vreinterpretq_s16_m128i(a)), ++ vqmovn_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using signed saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi32 ++FORCE_INLINE __m128i _mm_packs_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vqmovn_s32(vreinterpretq_s32_m128i(a)), ++ vqmovn_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Convert packed signed 16-bit integers from a and b to packed 8-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi16 ++FORCE_INLINE __m128i _mm_packus_epi16(const __m128i a, const __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vcombine_u8(vqmovun_s16(vreinterpretq_s16_m128i(a)), ++ vqmovun_s16(vreinterpretq_s16_m128i(b)))); ++} ++ ++// Pause the processor. This is typically used in spin-wait loops and depending ++// on the x86 processor typical values are in the 40-100 cycle range. The ++// 'yield' instruction isn't a good fit because it's effectively a nop on most ++// Arm cores. Experience with several databases has shown has shown an 'isb' is ++// a reasonable approximation. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_pause ++FORCE_INLINE void _mm_pause(void) ++{ ++#if defined(_MSC_VER) && !defined(__clang__) ++ __isb(_ARM64_BARRIER_SY); ++#else ++ __asm__ __volatile__("isb\n"); ++#endif ++} ++ ++// Compute the absolute differences of packed unsigned 8-bit integers in a and ++// b, then horizontally sum each consecutive 8 differences to produce two ++// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low ++// 16 bits of 64-bit elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_epu8 ++FORCE_INLINE __m128i _mm_sad_epu8(__m128i a, __m128i b) ++{ ++ uint16x8_t t = vpaddlq_u8(vabdq_u8((uint8x16_t) a, (uint8x16_t) b)); ++ return vreinterpretq_m128i_u64(vpaddlq_u32(vpaddlq_u16(t))); ++} ++ ++// Set packed 16-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi16 ++FORCE_INLINE __m128i _mm_set_epi16(short i7, ++ short i6, ++ short i5, ++ short i4, ++ short i3, ++ short i2, ++ short i1, ++ short i0) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {i0, i1, i2, i3, i4, i5, i6, i7}; ++ return vreinterpretq_m128i_s16(vld1q_s16(data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi32 ++FORCE_INLINE __m128i _mm_set_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i0, i1, i2, i3}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64 ++FORCE_INLINE __m128i _mm_set_epi64(__m64 i1, __m64 i2) ++{ ++ return _mm_set_epi64x(vget_lane_s64(i1, 0), vget_lane_s64(i2, 0)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64x ++FORCE_INLINE __m128i _mm_set_epi64x(int64_t i1, int64_t i2) ++{ ++ return vreinterpretq_m128i_s64( ++ vcombine_s64(vcreate_s64(i2), vcreate_s64(i1))); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi8 ++FORCE_INLINE __m128i _mm_set_epi8(signed char b15, ++ signed char b14, ++ signed char b13, ++ signed char b12, ++ signed char b11, ++ signed char b10, ++ signed char b9, ++ signed char b8, ++ signed char b7, ++ signed char b6, ++ signed char b5, ++ signed char b4, ++ signed char b3, ++ signed char b2, ++ signed char b1, ++ signed char b0) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd ++FORCE_INLINE __m128d _mm_set_pd(double e1, double e0) ++{ ++ double ALIGN_STRUCT(16) data[2] = {e0, e1}; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vld1q_f64((float64_t *) data)); ++#else ++ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) data)); ++#endif ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd1 ++#define _mm_set_pd1 _mm_set1_pd ++ ++// Copy double-precision (64-bit) floating-point element a to the lower element ++// of dst, and zero the upper element. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_sd ++FORCE_INLINE __m128d _mm_set_sd(double a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsetq_lane_f64(a, vdupq_n_f64(0), 0)); ++#else ++ return _mm_set_pd(0, a); ++#endif ++} ++ ++// Broadcast 16-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi16 ++FORCE_INLINE __m128i _mm_set1_epi16(short w) ++{ ++ return vreinterpretq_m128i_s16(vdupq_n_s16(w)); ++} ++ ++// Broadcast 32-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi32 ++FORCE_INLINE __m128i _mm_set1_epi32(int _i) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(_i)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64 ++FORCE_INLINE __m128i _mm_set1_epi64(__m64 _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_lane_s64(_i, 0)); ++} ++ ++// Broadcast 64-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64x ++FORCE_INLINE __m128i _mm_set1_epi64x(int64_t _i) ++{ ++ return vreinterpretq_m128i_s64(vdupq_n_s64(_i)); ++} ++ ++// Broadcast 8-bit integer a to all elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi8 ++FORCE_INLINE __m128i _mm_set1_epi8(signed char w) ++{ ++ return vreinterpretq_m128i_s8(vdupq_n_s8(w)); ++} ++ ++// Broadcast double-precision (64-bit) floating-point value a to all elements of ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_pd ++FORCE_INLINE __m128d _mm_set1_pd(double d) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(d)); ++#else ++ int64_t _d = sse2neon_recast_f64_s64(d); ++ return vreinterpretq_m128d_s64(vdupq_n_s64(_d)); ++#endif ++} ++ ++// Set packed 16-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi16 ++FORCE_INLINE __m128i _mm_setr_epi16(short w0, ++ short w1, ++ short w2, ++ short w3, ++ short w4, ++ short w5, ++ short w6, ++ short w7) ++{ ++ int16_t ALIGN_STRUCT(16) data[8] = {w0, w1, w2, w3, w4, w5, w6, w7}; ++ return vreinterpretq_m128i_s16(vld1q_s16((int16_t *) data)); ++} ++ ++// Set packed 32-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi32 ++FORCE_INLINE __m128i _mm_setr_epi32(int i3, int i2, int i1, int i0) ++{ ++ int32_t ALIGN_STRUCT(16) data[4] = {i3, i2, i1, i0}; ++ return vreinterpretq_m128i_s32(vld1q_s32(data)); ++} ++ ++// Set packed 64-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi64 ++FORCE_INLINE __m128i _mm_setr_epi64(__m64 e1, __m64 e0) ++{ ++ return vreinterpretq_m128i_s64(vcombine_s64(e1, e0)); ++} ++ ++// Set packed 8-bit integers in dst with the supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi8 ++FORCE_INLINE __m128i _mm_setr_epi8(signed char b0, ++ signed char b1, ++ signed char b2, ++ signed char b3, ++ signed char b4, ++ signed char b5, ++ signed char b6, ++ signed char b7, ++ signed char b8, ++ signed char b9, ++ signed char b10, ++ signed char b11, ++ signed char b12, ++ signed char b13, ++ signed char b14, ++ signed char b15) ++{ ++ int8_t ALIGN_STRUCT(16) ++ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, ++ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, ++ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, ++ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; ++ return (__m128i) vld1q_s8(data); ++} ++ ++// Set packed double-precision (64-bit) floating-point elements in dst with the ++// supplied values in reverse order. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_pd ++FORCE_INLINE __m128d _mm_setr_pd(double e1, double e0) ++{ ++ return _mm_set_pd(e0, e1); ++} ++ ++// Return vector of type __m128d with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_pd ++FORCE_INLINE __m128d _mm_setzero_pd(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vdupq_n_f64(0)); ++#else ++ return vreinterpretq_m128d_f32(vdupq_n_f32(0)); ++#endif ++} ++ ++// Return vector of type __m128i with all elements set to zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_si128 ++FORCE_INLINE __m128i _mm_setzero_si128(void) ++{ ++ return vreinterpretq_m128i_s32(vdupq_n_s32(0)); ++} ++ ++// Shuffle 32-bit integers in a using the control in imm8, and store the results ++// in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi32 ++// FORCE_INLINE __m128i _mm_shuffle_epi32(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shuffle_epi32(a, imm) \ ++ __extension__({ \ ++ int32x4_t _input = vreinterpretq_s32_m128i(a); \ ++ int32x4_t _shuf = \ ++ vshuffleq_s32(_input, _input, (imm) & (0x3), ((imm) >> 2) & 0x3, \ ++ ((imm) >> 4) & 0x3, ((imm) >> 6) & 0x3); \ ++ vreinterpretq_m128i_s32(_shuf); \ ++ }) ++#else // generic ++#define _mm_shuffle_epi32(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, __m128i ret; switch (imm) { \ ++ case _MM_SHUFFLE(1, 0, 3, 2): \ ++ ret = _mm_shuffle_epi_1032(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 3, 0, 1): \ ++ ret = _mm_shuffle_epi_2301(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 3, 2, 1): \ ++ ret = _mm_shuffle_epi_0321(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 1, 0, 3): \ ++ ret = _mm_shuffle_epi_2103(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 1, 0): \ ++ ret = _mm_shuffle_epi_1010(_a); \ ++ break; \ ++ case _MM_SHUFFLE(1, 0, 0, 1): \ ++ ret = _mm_shuffle_epi_1001(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 0, 1): \ ++ ret = _mm_shuffle_epi_0101(_a); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 1, 1): \ ++ ret = _mm_shuffle_epi_2211(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 1, 2, 2): \ ++ ret = _mm_shuffle_epi_0122(_a); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 2): \ ++ ret = _mm_shuffle_epi_3332(_a); \ ++ break; \ ++ case _MM_SHUFFLE(0, 0, 0, 0): \ ++ ret = _mm_shuffle_epi32_splat(_a, 0); \ ++ break; \ ++ case _MM_SHUFFLE(1, 1, 1, 1): \ ++ ret = _mm_shuffle_epi32_splat(_a, 1); \ ++ break; \ ++ case _MM_SHUFFLE(2, 2, 2, 2): \ ++ ret = _mm_shuffle_epi32_splat(_a, 2); \ ++ break; \ ++ case _MM_SHUFFLE(3, 3, 3, 3): \ ++ ret = _mm_shuffle_epi32_splat(_a, 3); \ ++ break; \ ++ default: \ ++ ret = _mm_shuffle_epi32_default(_a, (imm)); \ ++ break; \ ++ } _sse2neon_return(ret);) ++#endif ++ ++// Shuffle double-precision (64-bit) floating-point elements using the control ++// in imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pd ++#ifdef _sse2neon_shuffle ++#define _mm_shuffle_pd(a, b, imm8) \ ++ vreinterpretq_m128d_s64( \ ++ vshuffleq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b), \ ++ imm8 & 0x1, ((imm8 & 0x2) >> 1) + 2)) ++#else ++#define _mm_shuffle_pd(a, b, imm8) \ ++ _mm_castsi128_pd(_mm_set_epi64x( \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(b), (imm8 & 0x2) >> 1), \ ++ vgetq_lane_s64(vreinterpretq_s64_m128d(a), imm8 & 0x1))) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflehi_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflehi_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = \ ++ vshuffleq_s16(_input, _input, 0, 1, 2, 3, ((imm) & (0x3)) + 4, \ ++ (((imm) >> 2) & 0x3) + 4, (((imm) >> 4) & 0x3) + 4, \ ++ (((imm) >> 6) & 0x3) + 4); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflehi_epi16(a, imm) _mm_shufflehi_epi16_function((a), (imm)) ++#endif ++ ++// FORCE_INLINE __m128i _mm_shufflelo_epi16(__m128i a, ++// __constrange(0,255) int imm) ++#if defined(_sse2neon_shuffle) ++#define _mm_shufflelo_epi16(a, imm) \ ++ __extension__({ \ ++ int16x8_t _input = vreinterpretq_s16_m128i(a); \ ++ int16x8_t _shuf = vshuffleq_s16( \ ++ _input, _input, ((imm) & (0x3)), (((imm) >> 2) & 0x3), \ ++ (((imm) >> 4) & 0x3), (((imm) >> 6) & 0x3), 4, 5, 6, 7); \ ++ vreinterpretq_m128i_s16(_shuf); \ ++ }) ++#else // generic ++#define _mm_shufflelo_epi16(a, imm) _mm_shufflelo_epi16_function((a), (imm)) ++#endif ++ ++// Shift packed 16-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi16 ++FORCE_INLINE __m128i _mm_sll_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16((int16_t) c); ++ return vreinterpretq_m128i_s16(vshlq_s16(vreinterpretq_s16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi32 ++FORCE_INLINE __m128i _mm_sll_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32((int32_t) c); ++ return vreinterpretq_m128i_s32(vshlq_s32(vreinterpretq_s32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a left by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi64 ++FORCE_INLINE __m128i _mm_sll_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64((int64_t) c); ++ return vreinterpretq_m128i_s64(vshlq_s64(vreinterpretq_s64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi16 ++FORCE_INLINE __m128i _mm_slli_epi16(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~15)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16(vreinterpretq_s16_m128i(a), vdupq_n_s16(imm))); ++} ++ ++// Shift packed 32-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi32 ++FORCE_INLINE __m128i _mm_slli_epi32(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~31)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32(vreinterpretq_s32_m128i(a), vdupq_n_s32(imm))); ++} ++ ++// Shift packed 64-bit integers in a left by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi64 ++FORCE_INLINE __m128i _mm_slli_epi64(__m128i a, int imm) ++{ ++ if (_sse2neon_unlikely(imm & ~63)) ++ return _mm_setzero_si128(); ++ return vreinterpretq_m128i_s64( ++ vshlq_s64(vreinterpretq_s64_m128i(a), vdupq_n_s64(imm))); ++} ++ ++// Shift a left by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_si128 ++#define _mm_slli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely(imm == 0)) ret = vreinterpretq_s8_m128i(_a); \ ++ else if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vdupq_n_s8(0), vreinterpretq_s8_m128i(_a), \ ++ ((imm <= 0 || imm > 15) ? 0 : (16 - imm))); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Compute the square root of packed double-precision (64-bit) floating-point ++// elements in a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_pd ++FORCE_INLINE __m128d _mm_sqrt_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vsqrtq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double a0, a1; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ a1 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double _a0 = sqrt(a0); ++ double _a1 = sqrt(a1); ++ return _mm_set_pd(_a1, _a0); ++#endif ++} ++ ++// Compute the square root of the lower double-precision (64-bit) floating-point ++// element in b, store the result in the lower element of dst, and copy the ++// upper element from a to the upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_sd ++FORCE_INLINE __m128d _mm_sqrt_sd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return _mm_move_sd(a, _mm_sqrt_pd(b)); ++#else ++ double _a, _b; ++ _a = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ _b = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ return _mm_set_pd(_a, sqrt(_b)); ++#endif ++} ++ ++// Shift packed 16-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi16 ++FORCE_INLINE __m128i _mm_sra_epi16(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_cmplt_epi16(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s16( ++ vshlq_s16((int16x8_t) a, vdupq_n_s16((int) -c))); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi32 ++FORCE_INLINE __m128i _mm_sra_epi32(__m128i a, __m128i count) ++{ ++ int64_t c = vgetq_lane_s64(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_cmplt_epi32(a, _mm_setzero_si128()); ++ return vreinterpretq_m128i_s32( ++ vshlq_s32((int32x4_t) a, vdupq_n_s32((int) -c))); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in sign ++// bits, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi16 ++FORCE_INLINE __m128i _mm_srai_epi16(__m128i a, int imm) ++{ ++ const int count = (imm & ~15) ? 15 : imm; ++ return (__m128i) vshlq_s16((int16x8_t) a, vdupq_n_s16(-count)); ++} ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in sign bits, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi32 ++// FORCE_INLINE __m128i _mm_srai_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srai_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) == 0)) { \ ++ ret = _a; \ ++ } else if (_sse2neon_likely(0 < (imm) && (imm) < 32)) { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshlq_s32(vreinterpretq_s32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } else { \ ++ ret = vreinterpretq_m128i_s32( \ ++ vshrq_n_s32(vreinterpretq_s32_m128i(_a), 31)); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 16-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi16 ++FORCE_INLINE __m128i _mm_srl_epi16(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~15)) ++ return _mm_setzero_si128(); ++ ++ int16x8_t vc = vdupq_n_s16(-(int16_t) c); ++ return vreinterpretq_m128i_u16(vshlq_u16(vreinterpretq_u16_m128i(a), vc)); ++} ++ ++// Shift packed 32-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi32 ++FORCE_INLINE __m128i _mm_srl_epi32(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~31)) ++ return _mm_setzero_si128(); ++ ++ int32x4_t vc = vdupq_n_s32(-(int32_t) c); ++ return vreinterpretq_m128i_u32(vshlq_u32(vreinterpretq_u32_m128i(a), vc)); ++} ++ ++// Shift packed 64-bit integers in a right by count while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi64 ++FORCE_INLINE __m128i _mm_srl_epi64(__m128i a, __m128i count) ++{ ++ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); ++ if (_sse2neon_unlikely(c & ~63)) ++ return _mm_setzero_si128(); ++ ++ int64x2_t vc = vdupq_n_s64(-(int64_t) c); ++ return vreinterpretq_m128i_u64(vshlq_u64(vreinterpretq_u64_m128i(a), vc)); ++} ++ ++// Shift packed 16-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi16 ++#define _mm_srli_epi16(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~15)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u16( \ ++ vshlq_u16(vreinterpretq_u16_m128i(_a), vdupq_n_s16(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 32-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi32 ++// FORCE_INLINE __m128i _mm_srli_epi32(__m128i a, __constrange(0,255) int imm) ++#define _mm_srli_epi32(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~31)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u32( \ ++ vshlq_u32(vreinterpretq_u32_m128i(_a), vdupq_n_s32(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift packed 64-bit integers in a right by imm8 while shifting in zeros, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi64 ++#define _mm_srli_epi64(a, imm) \ ++ _sse2neon_define0( \ ++ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~63)) { \ ++ ret = _mm_setzero_si128(); \ ++ } else { \ ++ ret = vreinterpretq_m128i_u64( \ ++ vshlq_u64(vreinterpretq_u64_m128i(_a), vdupq_n_s64(-(imm)))); \ ++ } _sse2neon_return(ret);) ++ ++// Shift a right by imm8 bytes while shifting in zeros, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_si128 ++#define _mm_srli_si128(a, imm) \ ++ _sse2neon_define1( \ ++ __m128i, a, int8x16_t ret; \ ++ if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ ++ else ret = vextq_s8(vreinterpretq_s8_m128i(_a), vdupq_n_s8(0), \ ++ (imm > 15 ? 0 : imm)); \ ++ _sse2neon_return(vreinterpretq_m128i_s8(ret));) ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary ++// or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd ++FORCE_INLINE void _mm_store_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64((float64_t *) mem_addr, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_f32((float32_t *) mem_addr, vreinterpretq_f32_m128d(a)); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd1 ++FORCE_INLINE void _mm_store_pd1(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x1_t a_low = vget_low_f64(vreinterpretq_f64_m128d(a)); ++ vst1q_f64((float64_t *) mem_addr, ++ vreinterpretq_f64_m128d(vcombine_f64(a_low, a_low))); ++#else ++ float32x2_t a_low = vget_low_f32(vreinterpretq_f32_m128d(a)); ++ vst1q_f32((float32_t *) mem_addr, ++ vreinterpretq_f32_m128d(vcombine_f32(a_low, a_low))); ++#endif ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. mem_addr does not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_store_sd ++FORCE_INLINE void _mm_store_sd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_u64((uint64_t *) mem_addr, vget_low_u64(vreinterpretq_u64_m128d(a))); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr must be aligned ++// on a 16-byte boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_si128 ++FORCE_INLINE void _mm_store_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte ++// boundary or a general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#expand=9,526,5601&text=_mm_store1_pd ++#define _mm_store1_pd _mm_store_pd1 ++ ++// Store the upper double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pd ++FORCE_INLINE void _mm_storeh_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_high_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_high_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 64-bit integer from the first element of a into memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_epi64 ++FORCE_INLINE void _mm_storel_epi64(__m128i *a, __m128i b) ++{ ++ vst1_u64((uint64_t *) a, vget_low_u64(vreinterpretq_u64_m128i(b))); ++} ++ ++// Store the lower double-precision (64-bit) floating-point element from a into ++// memory. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pd ++FORCE_INLINE void _mm_storel_pd(double *mem_addr, __m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); ++#else ++ vst1_f32((float32_t *) mem_addr, vget_low_f32(vreinterpretq_f32_m128d(a))); ++#endif ++} ++ ++// Store 2 double-precision (64-bit) floating-point elements from a into memory ++// in reverse order. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_pd ++FORCE_INLINE void _mm_storer_pd(double *mem_addr, __m128d a) ++{ ++ float32x4_t f = vreinterpretq_f32_m128d(a); ++ _mm_store_pd(mem_addr, vreinterpretq_m128d_f32(vextq_f32(f, f, 2))); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory. mem_addr does not need to be aligned on any ++// particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_pd ++FORCE_INLINE void _mm_storeu_pd(double *mem_addr, __m128d a) ++{ ++ _mm_store_pd(mem_addr, a); ++} ++ ++// Store 128-bits of integer data from a into memory. mem_addr does not need to ++// be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si128 ++FORCE_INLINE void _mm_storeu_si128(__m128i *p, __m128i a) ++{ ++ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); ++} ++ ++// Store 32-bit integer from the first element of a into memory. mem_addr does ++// not need to be aligned on any particular boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si32 ++FORCE_INLINE void _mm_storeu_si32(void *p, __m128i a) ++{ ++ vst1q_lane_s32((int32_t *) p, vreinterpretq_s32_m128i(a), 0); ++} ++ ++// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point ++// elements) from a into memory using a non-temporal memory hint. mem_addr must ++// be aligned on a 16-byte boundary or a general-protection exception may be ++// generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pd ++FORCE_INLINE void _mm_stream_pd(double *p, __m128d a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, (__m128d *) p); ++#elif defined(__aarch64__) || defined(_M_ARM64) ++ vst1q_f64(p, vreinterpretq_f64_m128d(a)); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128d(a)); ++#endif ++} ++ ++// Store 128-bits of integer data from a into memory using a non-temporal memory ++// hint. mem_addr must be aligned on a 16-byte boundary or a general-protection ++// exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si128 ++FORCE_INLINE void _mm_stream_si128(__m128i *p, __m128i a) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ __builtin_nontemporal_store(a, p); ++#else ++ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128i(a)); ++#endif ++} ++ ++// Store 32-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si32 ++FORCE_INLINE void _mm_stream_si32(int *p, int a) ++{ ++ vst1q_lane_s32((int32_t *) p, vdupq_n_s32(a), 0); ++} ++ ++// Store 64-bit integer a into memory using a non-temporal hint to minimize ++// cache pollution. If the cache line containing address mem_addr is already in ++// the cache, the cache will be updated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si64 ++FORCE_INLINE void _mm_stream_si64(__int64 *p, __int64 a) ++{ ++ vst1_s64((int64_t *) p, vdup_n_s64((int64_t) a)); ++} ++ ++// Subtract packed 16-bit integers in b from packed 16-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi16 ++FORCE_INLINE __m128i _mm_sub_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed 32-bit integers in b from packed 32-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi32 ++FORCE_INLINE __m128i _mm_sub_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Subtract packed 64-bit integers in b from packed 64-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi64 ++FORCE_INLINE __m128i _mm_sub_epi64(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s64( ++ vsubq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++} ++ ++// Subtract packed 8-bit integers in b from packed 8-bit integers in a, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi8 ++FORCE_INLINE __m128i _mm_sub_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed double-precision (64-bit) floating-point elements in b from ++// packed double-precision (64-bit) floating-point elements in a, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_sub_pd ++FORCE_INLINE __m128d _mm_sub_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ double c[2]; ++ c[0] = a0 - b0; ++ c[1] = a1 - b1; ++ return vld1q_f32((float32_t *) c); ++#endif ++} ++ ++// Subtract the lower double-precision (64-bit) floating-point element in b from ++// the lower double-precision (64-bit) floating-point element in a, store the ++// result in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_sd ++FORCE_INLINE __m128d _mm_sub_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_sub_pd(a, b)); ++} ++ ++// Subtract 64-bit integer b from 64-bit integer a, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_si64 ++FORCE_INLINE __m64 _mm_sub_si64(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s64( ++ vsub_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); ++} ++ ++// Subtract packed signed 16-bit integers in b from packed 16-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi16 ++FORCE_INLINE __m128i _mm_subs_epi16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++} ++ ++// Subtract packed signed 8-bit integers in b from packed 8-bit integers in a ++// using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi8 ++FORCE_INLINE __m128i _mm_subs_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vqsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Subtract packed unsigned 16-bit integers in b from packed unsigned 16-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu16 ++FORCE_INLINE __m128i _mm_subs_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vqsubq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Subtract packed unsigned 8-bit integers in b from packed unsigned 8-bit ++// integers in a using saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu8 ++FORCE_INLINE __m128i _mm_subs_epu8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8( ++ vqsubq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); ++} ++ ++#define _mm_ucomieq_sd _mm_comieq_sd ++#define _mm_ucomige_sd _mm_comige_sd ++#define _mm_ucomigt_sd _mm_comigt_sd ++#define _mm_ucomile_sd _mm_comile_sd ++#define _mm_ucomilt_sd _mm_comilt_sd ++#define _mm_ucomineq_sd _mm_comineq_sd ++ ++// Return vector of type __m128d with undefined elements. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_pd ++FORCE_INLINE __m128d _mm_undefined_pd(void) ++{ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wuninitialized" ++#endif ++ __m128d a; ++#if defined(_MSC_VER) && !defined(__clang__) ++ a = _mm_setzero_pd(); ++#endif ++ return a; ++#if defined(__GNUC__) || defined(__clang__) ++#pragma GCC diagnostic pop ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi16 ++FORCE_INLINE __m128i _mm_unpackhi_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip2q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_high_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_high_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi32 ++FORCE_INLINE __m128i _mm_unpackhi_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip2q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_high_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_high_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the high half of a and b, and ++// store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi64 ++FORCE_INLINE __m128i _mm_unpackhi_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip2q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_h = vget_high_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_h = vget_high_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_h, b_h)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the high half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi8 ++FORCE_INLINE __m128i _mm_unpackhi_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip2q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = ++ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the high half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_pd ++FORCE_INLINE __m128d _mm_unpackhi_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip2q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_high_s64(vreinterpretq_s64_m128d(a)), ++ vget_high_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Unpack and interleave 16-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi16 ++FORCE_INLINE __m128i _mm_unpacklo_epi16(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vzip1q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); ++#else ++ int16x4_t a1 = vget_low_s16(vreinterpretq_s16_m128i(a)); ++ int16x4_t b1 = vget_low_s16(vreinterpretq_s16_m128i(b)); ++ int16x4x2_t result = vzip_s16(a1, b1); ++ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 32-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi32 ++FORCE_INLINE __m128i _mm_unpacklo_epi32(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vzip1q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++#else ++ int32x2_t a1 = vget_low_s32(vreinterpretq_s32_m128i(a)); ++ int32x2_t b1 = vget_low_s32(vreinterpretq_s32_m128i(b)); ++ int32x2x2_t result = vzip_s32(a1, b1); ++ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave 64-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi64 ++FORCE_INLINE __m128i _mm_unpacklo_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s64( ++ vzip1q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ int64x1_t a_l = vget_low_s64(vreinterpretq_s64_m128i(a)); ++ int64x1_t b_l = vget_low_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vcombine_s64(a_l, b_l)); ++#endif ++} ++ ++// Unpack and interleave 8-bit integers from the low half of a and b, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi8 ++FORCE_INLINE __m128i _mm_unpacklo_epi8(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8( ++ vzip1q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++#else ++ int8x8_t a1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(a))); ++ int8x8_t b1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int8x8x2_t result = vzip_s8(a1, b1); ++ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); ++#endif ++} ++ ++// Unpack and interleave double-precision (64-bit) floating-point elements from ++// the low half of a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_pd ++FORCE_INLINE __m128d _mm_unpacklo_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vzip1q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ return vreinterpretq_m128d_s64( ++ vcombine_s64(vget_low_s64(vreinterpretq_s64_m128d(a)), ++ vget_low_s64(vreinterpretq_s64_m128d(b)))); ++#endif ++} ++ ++// Compute the bitwise XOR of packed double-precision (64-bit) floating-point ++// elements in a and b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_pd ++FORCE_INLINE __m128d _mm_xor_pd(__m128d a, __m128d b) ++{ ++ return vreinterpretq_m128d_s64( ++ veorq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); ++} ++ ++// Compute the bitwise XOR of 128 bits (representing integer data) in a and b, ++// and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_si128 ++FORCE_INLINE __m128i _mm_xor_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ veorq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++/* SSE3 */ ++ ++// Alternatively add and subtract packed double-precision (64-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_addsub_pd ++FORCE_INLINE __m128d _mm_addsub_pd(__m128d a, __m128d b) ++{ ++ _sse2neon_const __m128d mask = _mm_set_pd(1.0f, -1.0f); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vfmaq_f64(vreinterpretq_f64_m128d(a), ++ vreinterpretq_f64_m128d(b), ++ vreinterpretq_f64_m128d(mask))); ++#else ++ return _mm_add_pd(_mm_mul_pd(b, mask), a); ++#endif ++} ++ ++// Alternatively add and subtract packed single-precision (32-bit) ++// floating-point elements in a to/from packed elements in b, and store the ++// results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=addsub_ps ++FORCE_INLINE __m128 _mm_addsub_ps(__m128 a, __m128 b) ++{ ++ _sse2neon_const __m128 mask = _mm_setr_ps(-1.0f, 1.0f, -1.0f, 1.0f); ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_FMA) /* VFPv4+ */ ++ return vreinterpretq_m128_f32(vfmaq_f32(vreinterpretq_f32_m128(a), ++ vreinterpretq_f32_m128(mask), ++ vreinterpretq_f32_m128(b))); ++#else ++ return _mm_add_ps(_mm_mul_ps(b, mask), a); ++#endif ++} ++ ++// Horizontally add adjacent pairs of double-precision (64-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pd ++FORCE_INLINE __m128d _mm_hadd_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vpaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ double c[] = {a0 + a1, b0 + b1}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of single-precision (32-bit) floating-point ++// elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_ps ++FORCE_INLINE __m128 _mm_hadd_ps(__m128 a, __m128 b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vpaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); ++#else ++ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); ++ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); ++ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); ++ return vreinterpretq_m128_f32( ++ vcombine_f32(vpadd_f32(a10, a32), vpadd_f32(b10, b32))); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of double-precision (64-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pd ++FORCE_INLINE __m128d _mm_hsub_pd(__m128d a, __m128d b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t _a = vreinterpretq_f64_m128d(a); ++ float64x2_t _b = vreinterpretq_f64_m128d(b); ++ return vreinterpretq_m128d_f64( ++ vsubq_f64(vuzp1q_f64(_a, _b), vuzp2q_f64(_a, _b))); ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ double c[] = {a0 - a1, b0 - b1}; ++ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of single-precision (32-bit) ++// floating-point elements in a and b, and pack the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_ps ++FORCE_INLINE __m128 _mm_hsub_ps(__m128 _a, __m128 _b) ++{ ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vsubq_f32(vuzp1q_f32(a, b), vuzp2q_f32(a, b))); ++#else ++ float32x4x2_t c = vuzpq_f32(a, b); ++ return vreinterpretq_m128_f32(vsubq_f32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Load 128-bits of integer data from unaligned memory into dst. This intrinsic ++// may perform better than _mm_loadu_si128 when the data crosses a cache line ++// boundary. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lddqu_si128 ++#define _mm_lddqu_si128 _mm_loadu_si128 ++ ++// Load a double-precision (64-bit) floating-point element from memory into both ++// elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loaddup_pd ++#define _mm_loaddup_pd _mm_load1_pd ++ ++// Duplicate the low double-precision (64-bit) floating-point element from a, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movedup_pd ++FORCE_INLINE __m128d _mm_movedup_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64( ++ vdupq_laneq_f64(vreinterpretq_f64_m128d(a), 0)); ++#else ++ return vreinterpretq_m128d_u64( ++ vdupq_n_u64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0))); ++#endif ++} ++ ++// Duplicate odd-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehdup_ps ++FORCE_INLINE __m128 _mm_movehdup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 1, 1, 3, 3)); ++#else ++ float32_t a1 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); ++ float32_t a3 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 3); ++ float ALIGN_STRUCT(16) data[4] = {a1, a1, a3, a3}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++// Duplicate even-indexed single-precision (32-bit) floating-point elements ++// from a, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_moveldup_ps ++FORCE_INLINE __m128 _mm_moveldup_ps(__m128 a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128_f32( ++ vtrn1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); ++#elif defined(_sse2neon_shuffle) ++ return vreinterpretq_m128_f32(vshuffleq_s32( ++ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 0, 0, 2, 2)); ++#else ++ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); ++ float32_t a2 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 2); ++ float ALIGN_STRUCT(16) data[4] = {a0, a0, a2, a2}; ++ return vreinterpretq_m128_f32(vld1q_f32(data)); ++#endif ++} ++ ++/* SSSE3 */ ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi16 ++FORCE_INLINE __m128i _mm_abs_epi16(__m128i a) ++{ ++ return vreinterpretq_m128i_s16(vabsq_s16(vreinterpretq_s16_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi32 ++FORCE_INLINE __m128i _mm_abs_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32(vabsq_s32(vreinterpretq_s32_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi8 ++FORCE_INLINE __m128i _mm_abs_epi8(__m128i a) ++{ ++ return vreinterpretq_m128i_s8(vabsq_s8(vreinterpretq_s8_m128i(a))); ++} ++ ++// Compute the absolute value of packed signed 16-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi16 ++FORCE_INLINE __m64 _mm_abs_pi16(__m64 a) ++{ ++ return vreinterpret_m64_s16(vabs_s16(vreinterpret_s16_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 32-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi32 ++FORCE_INLINE __m64 _mm_abs_pi32(__m64 a) ++{ ++ return vreinterpret_m64_s32(vabs_s32(vreinterpret_s32_m64(a))); ++} ++ ++// Compute the absolute value of packed signed 8-bit integers in a, and store ++// the unsigned results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi8 ++FORCE_INLINE __m64 _mm_abs_pi8(__m64 a) ++{ ++ return vreinterpret_m64_s8(vabs_s8(vreinterpret_s8_m64(a))); ++} ++ ++// Concatenate 16-byte blocks in a and b into a 32-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 16 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_epi8 ++#if defined(__GNUC__) && !defined(__clang__) ++#define _mm_alignr_epi8(a, b, imm) \ ++ __extension__({ \ ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); \ ++ uint8x16_t _b = vreinterpretq_u8_m128i(b); \ ++ __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) \ ++ ret = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) \ ++ ret = _mm_srli_si128(a, imm >= 16 ? imm - 16 : 0); \ ++ else \ ++ ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(_b, _a, imm < 16 ? imm : 0)); \ ++ ret; \ ++ }) ++ ++#else ++#define _mm_alignr_epi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, uint8x16_t __a = vreinterpretq_u8_m128i(_a); \ ++ uint8x16_t __b = vreinterpretq_u8_m128i(_b); __m128i ret; \ ++ if (_sse2neon_unlikely((imm) & ~31)) ret = \ ++ vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ else if (imm >= 16) ret = \ ++ _mm_srli_si128(_a, imm >= 16 ? imm - 16 : 0); \ ++ else ret = \ ++ vreinterpretq_m128i_u8(vextq_u8(__b, __a, imm < 16 ? imm : 0)); \ ++ _sse2neon_return(ret);) ++ ++#endif ++ ++// Concatenate 8-byte blocks in a and b into a 16-byte temporary result, shift ++// the result right by imm8 bytes, and store the low 8 bytes in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_pi8 ++#define _mm_alignr_pi8(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m64, a, b, __m64 ret; if (_sse2neon_unlikely((imm) >= 16)) { \ ++ ret = vreinterpret_m64_s8(vdup_n_s8(0)); \ ++ } else { \ ++ uint8x8_t tmp_low; \ ++ uint8x8_t tmp_high; \ ++ if ((imm) >= 8) { \ ++ const int idx = (imm) -8; \ ++ tmp_low = vreinterpret_u8_m64(_a); \ ++ tmp_high = vdup_n_u8(0); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } else { \ ++ const int idx = (imm); \ ++ tmp_low = vreinterpret_u8_m64(_b); \ ++ tmp_high = vreinterpret_u8_m64(_a); \ ++ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ ++ } \ ++ } _sse2neon_return(ret);) ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi16 ++FORCE_INLINE __m128i _mm_hadd_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16(vpaddq_s16(a, b)); ++#else ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(vget_low_s16(a), vget_high_s16(a)), ++ vpadd_s16(vget_low_s16(b), vget_high_s16(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi32 ++FORCE_INLINE __m128i _mm_hadd_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32(vpaddq_s32(a, b)); ++#else ++ return vreinterpretq_m128i_s32( ++ vcombine_s32(vpadd_s32(vget_low_s32(a), vget_high_s32(a)), ++ vpadd_s32(vget_low_s32(b), vget_high_s32(b)))); ++#endif ++} ++ ++// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the ++// signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi16 ++FORCE_INLINE __m64 _mm_hadd_pi16(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s16( ++ vpadd_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the ++// signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi32 ++FORCE_INLINE __m64 _mm_hadd_pi32(__m64 a, __m64 b) ++{ ++ return vreinterpret_m64_s32( ++ vpadd_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b))); ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_epi16 ++FORCE_INLINE __m128i _mm_hadds_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ return vreinterpretq_s64_s16( ++ vqaddq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ // Interleave using vshrn/vmovn ++ // [a0|a2|a4|a6|b0|b2|b4|b6] ++ // [a1|a3|a5|a7|b1|b3|b5|b7] ++ int16x8_t ab0246 = vcombine_s16(vmovn_s32(a), vmovn_s32(b)); ++ int16x8_t ab1357 = vcombine_s16(vshrn_n_s32(a, 16), vshrn_n_s32(b, 16)); ++ // Saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(ab0246, ab1357)); ++#endif ++} ++ ++// Horizontally add adjacent pairs of signed 16-bit integers in a and b using ++// saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_pi16 ++FORCE_INLINE __m64 _mm_hadds_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_s64_s16(vqadd_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t res = vuzp_s16(a, b); ++ return vreinterpret_s64_s16(vqadd_s16(res.val[0], res.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi16 ++FORCE_INLINE __m128i _mm_hsub_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi32 ++FORCE_INLINE __m128i _mm_hsub_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s32( ++ vsubq_s32(vuzp1q_s32(a, b), vuzp2q_s32(a, b))); ++#else ++ int32x4x2_t c = vuzpq_s32(a, b); ++ return vreinterpretq_m128i_s32(vsubq_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack ++// the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pi16 ++FORCE_INLINE __m64 _mm_hsub_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack ++// the signed 32-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_hsub_pi32 ++FORCE_INLINE __m64 _mm_hsub_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s32(vsub_s32(vuzp1_s32(a, b), vuzp2_s32(a, b))); ++#else ++ int32x2x2_t c = vuzp_s32(a, b); ++ return vreinterpret_m64_s32(vsub_s32(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_epi16 ++FORCE_INLINE __m128i _mm_hsubs_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s16( ++ vqsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); ++#else ++ int16x8x2_t c = vuzpq_s16(a, b); ++ return vreinterpretq_m128i_s16(vqsubq_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b ++// using saturation, and pack the signed 16-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_pi16 ++FORCE_INLINE __m64 _mm_hsubs_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpret_m64_s16(vqsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); ++#else ++ int16x4x2_t c = vuzp_s16(a, b); ++ return vreinterpret_m64_s16(vqsub_s16(c.val[0], c.val[1])); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, ++// and pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_epi16 ++FORCE_INLINE __m128i _mm_maddubs_epi16(__m128i _a, __m128i _b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ int16x8_t tl = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_low_u8(a))), ++ vmovl_s8(vget_low_s8(b))); ++ int16x8_t th = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_high_u8(a))), ++ vmovl_s8(vget_high_s8(b))); ++ return vreinterpretq_m128i_s16( ++ vqaddq_s16(vuzp1q_s16(tl, th), vuzp2q_s16(tl, th))); ++#else ++ // This would be much simpler if x86 would choose to zero extend OR sign ++ // extend, not both. This could probably be optimized better. ++ uint16x8_t a = vreinterpretq_u16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // Zero extend a ++ int16x8_t a_odd = vreinterpretq_s16_u16(vshrq_n_u16(a, 8)); ++ int16x8_t a_even = vreinterpretq_s16_u16(vbicq_u16(a, vdupq_n_u16(0xff00))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x8_t b_even = vshrq_n_s16(vshlq_n_s16(b, 8), 8); ++ int16x8_t b_odd = vshrq_n_s16(b, 8); ++ ++ // multiply ++ int16x8_t prod1 = vmulq_s16(a_even, b_even); ++ int16x8_t prod2 = vmulq_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpretq_m128i_s16(vqaddq_s16(prod1, prod2)); ++#endif ++} ++ ++// Vertically multiply each unsigned 8-bit integer from a with the corresponding ++// signed 8-bit integer from b, producing intermediate signed 16-bit integers. ++// Horizontally add adjacent pairs of intermediate signed 16-bit integers, and ++// pack the saturated results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_pi16 ++FORCE_INLINE __m64 _mm_maddubs_pi16(__m64 _a, __m64 _b) ++{ ++ uint16x4_t a = vreinterpret_u16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // Zero extend a ++ int16x4_t a_odd = vreinterpret_s16_u16(vshr_n_u16(a, 8)); ++ int16x4_t a_even = vreinterpret_s16_u16(vand_u16(a, vdup_n_u16(0xff))); ++ ++ // Sign extend by shifting left then shifting right. ++ int16x4_t b_even = vshr_n_s16(vshl_n_s16(b, 8), 8); ++ int16x4_t b_odd = vshr_n_s16(b, 8); ++ ++ // multiply ++ int16x4_t prod1 = vmul_s16(a_even, b_even); ++ int16x4_t prod2 = vmul_s16(a_odd, b_odd); ++ ++ // saturated add ++ return vreinterpret_m64_s16(vqadd_s16(prod1, prod2)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Shift right by 15 bits while rounding up, and store ++// the packed 16-bit integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_epi16 ++FORCE_INLINE __m128i _mm_mulhrs_epi16(__m128i a, __m128i b) ++{ ++ // Has issues due to saturation ++ // return vreinterpretq_m128i_s16(vqrdmulhq_s16(a, b)); ++ ++ // Multiply ++ int32x4_t mul_lo = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), ++ vget_low_s16(vreinterpretq_s16_m128i(b))); ++ int32x4_t mul_hi = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), ++ vget_high_s16(vreinterpretq_s16_m128i(b))); ++ ++ // Rounding narrowing shift right ++ // narrow = (int16_t)((mul + 16384) >> 15); ++ int16x4_t narrow_lo = vrshrn_n_s32(mul_lo, 15); ++ int16x4_t narrow_hi = vrshrn_n_s32(mul_hi, 15); ++ ++ // Join together ++ return vreinterpretq_m128i_s16(vcombine_s16(narrow_lo, narrow_hi)); ++} ++ ++// Multiply packed signed 16-bit integers in a and b, producing intermediate ++// signed 32-bit integers. Truncate each intermediate integer to the 18 most ++// significant bits, round by adding 1, and store bits [16:1] to dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_pi16 ++FORCE_INLINE __m64 _mm_mulhrs_pi16(__m64 a, __m64 b) ++{ ++ int32x4_t mul_extend = ++ vmull_s16((vreinterpret_s16_m64(a)), (vreinterpret_s16_m64(b))); ++ ++ // Rounding narrowing shift right ++ return vreinterpret_m64_s16(vrshrn_n_s32(mul_extend, 15)); ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi8 ++FORCE_INLINE __m128i _mm_shuffle_epi8(__m128i a, __m128i b) ++{ ++ int8x16_t tbl = vreinterpretq_s8_m128i(a); // input a ++ uint8x16_t idx = vreinterpretq_u8_m128i(b); // input b ++ uint8x16_t idx_masked = ++ vandq_u8(idx, vdupq_n_u8(0x8F)); // avoid using meaningless bits ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_s8(vqtbl1q_s8(tbl, idx_masked)); ++#elif defined(__GNUC__) ++ int8x16_t ret; ++ // %e and %f represent the even and odd D registers ++ // respectively. ++ __asm__ __volatile__( ++ "vtbl.8 %e[ret], {%e[tbl], %f[tbl]}, %e[idx]\n" ++ "vtbl.8 %f[ret], {%e[tbl], %f[tbl]}, %f[idx]\n" ++ : [ret] "=&w"(ret) ++ : [tbl] "w"(tbl), [idx] "w"(idx_masked)); ++ return vreinterpretq_m128i_s8(ret); ++#else ++ // use this line if testing on aarch64 ++ int8x8x2_t a_split = {vget_low_s8(tbl), vget_high_s8(tbl)}; ++ return vreinterpretq_m128i_s8( ++ vcombine_s8(vtbl2_s8(a_split, vget_low_u8(idx_masked)), ++ vtbl2_s8(a_split, vget_high_u8(idx_masked)))); ++#endif ++} ++ ++// Shuffle packed 8-bit integers in a according to shuffle control mask in the ++// corresponding 8-bit element of b, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi8 ++FORCE_INLINE __m64 _mm_shuffle_pi8(__m64 a, __m64 b) ++{ ++ const int8x8_t controlMask = ++ vand_s8(vreinterpret_s8_m64(b), vdup_n_s8((int8_t) (0x1 << 7 | 0x07))); ++ int8x8_t res = vtbl1_s8(vreinterpret_s8_m64(a), controlMask); ++ return vreinterpret_m64_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed ++// 16-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi16 ++FORCE_INLINE __m128i _mm_sign_epi16(__m128i _a, __m128i _b) ++{ ++ int16x8_t a = vreinterpretq_s16_m128i(_a); ++ int16x8_t b = vreinterpretq_s16_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x8_t ltMask = vreinterpretq_u16_s16(vshrq_n_s16(b, 15)); ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqzq_s16(b)); ++#else ++ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqq_s16(b, vdupq_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s16(a) equals to negative ++ // 'a') based on ltMask ++ int16x8_t masked = vbslq_s16(ltMask, vnegq_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x8_t res = vbicq_s16(masked, zeroMask); ++ return vreinterpretq_m128i_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed ++// 32-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi32 ++FORCE_INLINE __m128i _mm_sign_epi32(__m128i _a, __m128i _b) ++{ ++ int32x4_t a = vreinterpretq_s32_m128i(_a); ++ int32x4_t b = vreinterpretq_s32_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x4_t ltMask = vreinterpretq_u32_s32(vshrq_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqzq_s32(b)); ++#else ++ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqq_s32(b, vdupq_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s32(a) equals to negative ++ // 'a') based on ltMask ++ int32x4_t masked = vbslq_s32(ltMask, vnegq_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x4_t res = vbicq_s32(masked, zeroMask); ++ return vreinterpretq_m128i_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed ++// 8-bit integer in b is negative, and store the results in dst. ++// Element in dst are zeroed out when the corresponding element ++// in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi8 ++FORCE_INLINE __m128i _mm_sign_epi8(__m128i _a, __m128i _b) ++{ ++ int8x16_t a = vreinterpretq_s8_m128i(_a); ++ int8x16_t b = vreinterpretq_s8_m128i(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x16_t ltMask = vreinterpretq_u8_s8(vshrq_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqzq_s8(b)); ++#else ++ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqq_s8(b, vdupq_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vnegq_s8(a) return negative 'a') ++ // based on ltMask ++ int8x16_t masked = vbslq_s8(ltMask, vnegq_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x16_t res = vbicq_s8(masked, zeroMask); ++ ++ return vreinterpretq_m128i_s8(res); ++} ++ ++// Negate packed 16-bit integers in a when the corresponding signed 16-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi16 ++FORCE_INLINE __m64 _mm_sign_pi16(__m64 _a, __m64 _b) ++{ ++ int16x4_t a = vreinterpret_s16_m64(_a); ++ int16x4_t b = vreinterpret_s16_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFF : 0 ++ uint16x4_t ltMask = vreinterpret_u16_s16(vshr_n_s16(b, 15)); ++ ++ // (b == 0) ? 0xFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceqz_s16(b)); ++#else ++ int16x4_t zeroMask = vreinterpret_s16_u16(vceq_s16(b, vdup_n_s16(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s16(a) return negative 'a') ++ // based on ltMask ++ int16x4_t masked = vbsl_s16(ltMask, vneg_s16(a), a); ++ // res = masked & (~zeroMask) ++ int16x4_t res = vbic_s16(masked, zeroMask); ++ ++ return vreinterpret_m64_s16(res); ++} ++ ++// Negate packed 32-bit integers in a when the corresponding signed 32-bit ++// integer in b is negative, and store the results in dst. Element in dst are ++// zeroed out when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi32 ++FORCE_INLINE __m64 _mm_sign_pi32(__m64 _a, __m64 _b) ++{ ++ int32x2_t a = vreinterpret_s32_m64(_a); ++ int32x2_t b = vreinterpret_s32_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFFFFFFFF : 0 ++ uint32x2_t ltMask = vreinterpret_u32_s32(vshr_n_s32(b, 31)); ++ ++ // (b == 0) ? 0xFFFFFFFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceqz_s32(b)); ++#else ++ int32x2_t zeroMask = vreinterpret_s32_u32(vceq_s32(b, vdup_n_s32(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s32(a) return negative 'a') ++ // based on ltMask ++ int32x2_t masked = vbsl_s32(ltMask, vneg_s32(a), a); ++ // res = masked & (~zeroMask) ++ int32x2_t res = vbic_s32(masked, zeroMask); ++ ++ return vreinterpret_m64_s32(res); ++} ++ ++// Negate packed 8-bit integers in a when the corresponding signed 8-bit integer ++// in b is negative, and store the results in dst. Element in dst are zeroed out ++// when the corresponding element in b is zero. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi8 ++FORCE_INLINE __m64 _mm_sign_pi8(__m64 _a, __m64 _b) ++{ ++ int8x8_t a = vreinterpret_s8_m64(_a); ++ int8x8_t b = vreinterpret_s8_m64(_b); ++ ++ // signed shift right: faster than vclt ++ // (b < 0) ? 0xFF : 0 ++ uint8x8_t ltMask = vreinterpret_u8_s8(vshr_n_s8(b, 7)); ++ ++ // (b == 0) ? 0xFF : 0 ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceqz_s8(b)); ++#else ++ int8x8_t zeroMask = vreinterpret_s8_u8(vceq_s8(b, vdup_n_s8(0))); ++#endif ++ ++ // bitwise select either a or negative 'a' (vneg_s8(a) return negative 'a') ++ // based on ltMask ++ int8x8_t masked = vbsl_s8(ltMask, vneg_s8(a), a); ++ // res = masked & (~zeroMask) ++ int8x8_t res = vbic_s8(masked, zeroMask); ++ ++ return vreinterpret_m64_s8(res); ++} ++ ++/* SSE4.1 */ ++ ++// Blend packed 16-bit integers from a and b using control mask imm8, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_epi16 ++// FORCE_INLINE __m128i _mm_blend_epi16(__m128i a, __m128i b, ++// __constrange(0,255) int imm) ++#define _mm_blend_epi16(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128i, a, b, \ ++ const uint16_t _mask[8] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 1)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 2)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 3)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 4)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 5)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 6)) ? (uint16_t) -1 : 0x0, \ ++ ((imm) & (1 << 7)) ? (uint16_t) -1 : 0x0); \ ++ uint16x8_t _mask_vec = vld1q_u16(_mask); \ ++ uint16x8_t __a = vreinterpretq_u16_m128i(_a); \ ++ uint16x8_t __b = vreinterpretq_u16_m128i(_b); _sse2neon_return( \ ++ vreinterpretq_m128i_u16(vbslq_u16(_mask_vec, __b, __a)));) ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using control mask imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_pd ++#define _mm_blend_pd(a, b, imm) \ ++ _sse2neon_define2( \ ++ __m128d, a, b, \ ++ const uint64_t _mask[2] = \ ++ _sse2neon_init(((imm) & (1 << 0)) ? ~UINT64_C(0) : UINT64_C(0), \ ++ ((imm) & (1 << 1)) ? ~UINT64_C(0) : UINT64_C(0)); \ ++ uint64x2_t _mask_vec = vld1q_u64(_mask); \ ++ uint64x2_t __a = vreinterpretq_u64_m128d(_a); \ ++ uint64x2_t __b = vreinterpretq_u64_m128d(_b); _sse2neon_return( \ ++ vreinterpretq_m128d_u64(vbslq_u64(_mask_vec, __b, __a)));) ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_ps ++FORCE_INLINE __m128 _mm_blend_ps(__m128 _a, __m128 _b, const char imm8) ++{ ++ const uint32_t ALIGN_STRUCT(16) ++ data[4] = {((imm8) & (1 << 0)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0}; ++ uint32x4_t mask = vld1q_u32(data); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Blend packed 8-bit integers from a and b using mask, and store the results in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_epi8 ++FORCE_INLINE __m128i _mm_blendv_epi8(__m128i _a, __m128i _b, __m128i _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint8x16_t mask = ++ vreinterpretq_u8_s8(vshrq_n_s8(vreinterpretq_s8_m128i(_mask), 7)); ++ uint8x16_t a = vreinterpretq_u8_m128i(_a); ++ uint8x16_t b = vreinterpretq_u8_m128i(_b); ++ return vreinterpretq_m128i_u8(vbslq_u8(mask, b, a)); ++} ++ ++// Blend packed double-precision (64-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_pd ++FORCE_INLINE __m128d _mm_blendv_pd(__m128d _a, __m128d _b, __m128d _mask) ++{ ++ uint64x2_t mask = ++ vreinterpretq_u64_s64(vshrq_n_s64(vreinterpretq_s64_m128d(_mask), 63)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ float64x2_t a = vreinterpretq_f64_m128d(_a); ++ float64x2_t b = vreinterpretq_f64_m128d(_b); ++ return vreinterpretq_m128d_f64(vbslq_f64(mask, b, a)); ++#else ++ uint64x2_t a = vreinterpretq_u64_m128d(_a); ++ uint64x2_t b = vreinterpretq_u64_m128d(_b); ++ return vreinterpretq_m128d_u64(vbslq_u64(mask, b, a)); ++#endif ++} ++ ++// Blend packed single-precision (32-bit) floating-point elements from a and b ++// using mask, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_ps ++FORCE_INLINE __m128 _mm_blendv_ps(__m128 _a, __m128 _b, __m128 _mask) ++{ ++ // Use a signed shift right to create a mask with the sign bit ++ uint32x4_t mask = ++ vreinterpretq_u32_s32(vshrq_n_s32(vreinterpretq_s32_m128(_mask), 31)); ++ float32x4_t a = vreinterpretq_f32_m128(_a); ++ float32x4_t b = vreinterpretq_f32_m128(_b); ++ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a up ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_pd ++FORCE_INLINE __m128d _mm_ceil_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndpq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double a0, a1; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ a1 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ return _mm_set_pd(ceil(a1), ceil(a0)); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a up to ++// an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ps ++FORCE_INLINE __m128 _mm_ceil_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndpq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ceilf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b up to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_sd ++FORCE_INLINE __m128d _mm_ceil_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_ceil_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b up to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ss ++FORCE_INLINE __m128 _mm_ceil_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_ceil_ps(b)); ++} ++ ++// Compare packed 64-bit integers in a and b for equality, and store the results ++// in dst ++FORCE_INLINE __m128i _mm_cmpeq_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vceqq_u64(vreinterpretq_u64_m128i(a), vreinterpretq_u64_m128i(b))); ++#else ++ // ARMv7 lacks vceqq_u64 ++ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) ++ uint32x4_t cmp = ++ vceqq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b)); ++ uint32x4_t swapped = vrev64q_u32(cmp); ++ return vreinterpretq_m128i_u32(vandq_u32(cmp, swapped)); ++#endif ++} ++ ++// Sign extend packed 16-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi32 ++FORCE_INLINE __m128i _mm_cvtepi16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_s32( ++ vmovl_s16(vget_low_s16(vreinterpretq_s16_m128i(a)))); ++} ++ ++// Sign extend packed 16-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi64 ++FORCE_INLINE __m128i _mm_cvtepi16_epi64(__m128i a) ++{ ++ int16x8_t s16x8 = vreinterpretq_s16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Sign extend packed 32-bit integers in a to packed 64-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_epi64 ++FORCE_INLINE __m128i _mm_cvtepi32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_s64( ++ vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a)))); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 16-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi16 ++FORCE_INLINE __m128i _mm_cvtepi8_epi16(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ return vreinterpretq_m128i_s16(s16x8); ++} ++ ++// Sign extend packed 8-bit integers in a to packed 32-bit integers, and store ++// the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi32 ++FORCE_INLINE __m128i _mm_cvtepi8_epi32(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_s32(s32x4); ++} ++ ++// Sign extend packed 8-bit integers in the low 8 bytes of a to packed 64-bit ++// integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi64 ++FORCE_INLINE __m128i _mm_cvtepi8_epi64(__m128i a) ++{ ++ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ ++ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_s64(s64x2); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi32 ++FORCE_INLINE __m128i _mm_cvtepu16_epi32(__m128i a) ++{ ++ return vreinterpretq_m128i_u32( ++ vmovl_u16(vget_low_u16(vreinterpretq_u16_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 16-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi64 ++FORCE_INLINE __m128i _mm_cvtepu16_epi64(__m128i a) ++{ ++ uint16x8_t u16x8 = vreinterpretq_u16_m128i(a); /* xxxx xxxx xxxx 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Zero extend packed unsigned 32-bit integers in a to packed 64-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu32_epi64 ++FORCE_INLINE __m128i _mm_cvtepu32_epi64(__m128i a) ++{ ++ return vreinterpretq_m128i_u64( ++ vmovl_u32(vget_low_u32(vreinterpretq_u32_m128i(a)))); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 16-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi16 ++FORCE_INLINE __m128i _mm_cvtepu8_epi16(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx HGFE DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0H0G 0F0E 0D0C 0B0A */ ++ return vreinterpretq_m128i_u16(u16x8); ++} ++ ++// Zero extend packed unsigned 8-bit integers in a to packed 32-bit integers, ++// and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi32 ++FORCE_INLINE __m128i _mm_cvtepu8_epi32(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx DCBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0D0C 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000D 000C 000B 000A */ ++ return vreinterpretq_m128i_u32(u32x4); ++} ++ ++// Zero extend packed unsigned 8-bit integers in the low 8 bytes of a to packed ++// 64-bit integers, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi64 ++FORCE_INLINE __m128i _mm_cvtepu8_epi64(__m128i a) ++{ ++ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx xxBA */ ++ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0x0x 0B0A */ ++ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ ++ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ ++ return vreinterpretq_m128i_u64(u64x2); ++} ++ ++// Conditionally multiply the packed double-precision (64-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, and ++// conditionally store the sum in dst using the low 4 bits of imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_pd ++FORCE_INLINE __m128d _mm_dp_pd(__m128d a, __m128d b, const int imm) ++{ ++ // Generate mask value from constant immediate bit value ++ const int64_t bit0Mask = imm & 0x01 ? UINT64_MAX : 0; ++ const int64_t bit1Mask = imm & 0x02 ? UINT64_MAX : 0; ++#if !SSE2NEON_PRECISE_DP ++ const int64_t bit4Mask = imm & 0x10 ? UINT64_MAX : 0; ++ const int64_t bit5Mask = imm & 0x20 ? UINT64_MAX : 0; ++#endif ++ // Conditional multiplication ++#if !SSE2NEON_PRECISE_DP ++ __m128d mul = _mm_mul_pd(a, b); ++ const __m128d mulMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit5Mask, bit4Mask)); ++ __m128d tmp = _mm_and_pd(mul, mulMask); ++#else ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double d0 = (imm & 0x10) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 0) ++ : 0; ++ double d1 = (imm & 0x20) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1) * ++ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 1) ++ : 0; ++#else ++ double a0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ double a1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ double b0 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 0)); ++ double b1 = ++ sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(b), 1)); ++ double d0 = (imm & 0x10) ? a0 * b0 : 0; ++ double d1 = (imm & 0x20) ? a1 * b1 : 0; ++#endif ++ __m128d tmp = _mm_set_pd(d1, d0); ++#endif ++ // Sum the products ++#if defined(__aarch64__) || defined(_M_ARM64) ++ double sum = vpaddd_f64(vreinterpretq_f64_m128d(tmp)); ++#else ++ double _tmp0 = sse2neon_recast_u64_f64( ++ vgetq_lane_u64(vreinterpretq_u64_m128d(tmp), 0)); ++ double _tmp1 = sse2neon_recast_u64_f64( ++ vgetq_lane_u64(vreinterpretq_u64_m128d(tmp), 1)); ++ double sum = _tmp0 + _tmp1; ++#endif ++ // Conditionally store the sum ++ const __m128d sumMask = ++ _mm_castsi128_pd(_mm_set_epi64x(bit1Mask, bit0Mask)); ++ __m128d res = _mm_and_pd(_mm_set_pd1(sum), sumMask); ++ return res; ++} ++ ++// Conditionally multiply the packed single-precision (32-bit) floating-point ++// elements in a and b using the high 4 bits in imm8, sum the four products, ++// and conditionally store the sum in dst using the low 4 bits of imm. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_ps ++FORCE_INLINE __m128 _mm_dp_ps(__m128 a, __m128 b, const int imm) ++{ ++ float32x4_t elementwise_prod = _mm_mul_ps(a, b); ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ /* shortcuts */ ++ if (imm == 0xFF) { ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++ ++ if ((imm & 0x0F) == 0x0F) { ++ if (!(imm & (1 << 4))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 0); ++ if (!(imm & (1 << 5))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 1); ++ if (!(imm & (1 << 6))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 2); ++ if (!(imm & (1 << 7))) ++ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 3); ++ ++ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); ++ } ++#endif ++ ++ float s = 0.0f; ++ ++ if (imm & (1 << 4)) ++ s += vgetq_lane_f32(elementwise_prod, 0); ++ if (imm & (1 << 5)) ++ s += vgetq_lane_f32(elementwise_prod, 1); ++ if (imm & (1 << 6)) ++ s += vgetq_lane_f32(elementwise_prod, 2); ++ if (imm & (1 << 7)) ++ s += vgetq_lane_f32(elementwise_prod, 3); ++ ++ const float32_t res[4] = { ++ (imm & 0x1) ? s : 0.0f, ++ (imm & 0x2) ? s : 0.0f, ++ (imm & 0x4) ? s : 0.0f, ++ (imm & 0x8) ? s : 0.0f, ++ }; ++ return vreinterpretq_m128_f32(vld1q_f32(res)); ++} ++ ++// Extract a 32-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi32 ++// FORCE_INLINE int _mm_extract_epi32(__m128i a, __constrange(0,4) int imm) ++#define _mm_extract_epi32(a, imm) \ ++ vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)) ++ ++// Extract a 64-bit integer from a, selected with imm8, and store the result in ++// dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi64 ++// FORCE_INLINE __int64 _mm_extract_epi64(__m128i a, __constrange(0,2) int imm) ++#define _mm_extract_epi64(a, imm) \ ++ vgetq_lane_s64(vreinterpretq_s64_m128i(a), (imm)) ++ ++// Extract an 8-bit integer from a, selected with imm8, and store the result in ++// the lower element of dst. FORCE_INLINE int _mm_extract_epi8(__m128i a, ++// __constrange(0,16) int imm) ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi8 ++#define _mm_extract_epi8(a, imm) vgetq_lane_u8(vreinterpretq_u8_m128i(a), (imm)) ++ ++// Extracts the selected single-precision (32-bit) floating-point from a. ++// FORCE_INLINE int _mm_extract_ps(__m128 a, __constrange(0,4) int imm) ++#define _mm_extract_ps(a, imm) vgetq_lane_s32(vreinterpretq_s32_m128(a), (imm)) ++ ++// Round the packed double-precision (64-bit) floating-point elements in a down ++// to an integer value, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_pd ++FORCE_INLINE __m128d _mm_floor_pd(__m128d a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128d_f64(vrndmq_f64(vreinterpretq_f64_m128d(a))); ++#else ++ double a0, a1; ++ a0 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0)); ++ a1 = sse2neon_recast_u64_f64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 1)); ++ return _mm_set_pd(floor(a1), floor(a0)); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a down ++// to an integer value, and store the results as packed single-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ps ++FORCE_INLINE __m128 _mm_floor_ps(__m128 a) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ return vreinterpretq_m128_f32(vrndmq_f32(vreinterpretq_f32_m128(a))); ++#else ++ float *f = (float *) &a; ++ return _mm_set_ps(floorf(f[3]), floorf(f[2]), floorf(f[1]), floorf(f[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b down to ++// an integer value, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_sd ++FORCE_INLINE __m128d _mm_floor_sd(__m128d a, __m128d b) ++{ ++ return _mm_move_sd(a, _mm_floor_pd(b)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b down to ++// an integer value, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ss ++FORCE_INLINE __m128 _mm_floor_ss(__m128 a, __m128 b) ++{ ++ return _mm_move_ss(a, _mm_floor_ps(b)); ++} ++ ++// Copy a to dst, and insert the 32-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi32 ++// FORCE_INLINE __m128i _mm_insert_epi32(__m128i a, int b, ++// __constrange(0,4) int imm) ++#define _mm_insert_epi32(a, b, imm) \ ++ vreinterpretq_m128i_s32( \ ++ vsetq_lane_s32((b), vreinterpretq_s32_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the 64-bit integer i into dst at the location ++// specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi64 ++// FORCE_INLINE __m128i _mm_insert_epi64(__m128i a, __int64 b, ++// __constrange(0,2) int imm) ++#define _mm_insert_epi64(a, b, imm) \ ++ vreinterpretq_m128i_s64( \ ++ vsetq_lane_s64((b), vreinterpretq_s64_m128i(a), (imm))) ++ ++// Copy a to dst, and insert the lower 8-bit integer from i into dst at the ++// location specified by imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi8 ++// FORCE_INLINE __m128i _mm_insert_epi8(__m128i a, int b, ++// __constrange(0,16) int imm) ++#define _mm_insert_epi8(a, b, imm) \ ++ vreinterpretq_m128i_s8(vsetq_lane_s8((b), vreinterpretq_s8_m128i(a), (imm))) ++ ++// Copy a to tmp, then insert a single-precision (32-bit) floating-point ++// element from b into tmp using the control in imm8. Store tmp to dst using ++// the mask in imm8 (elements are zeroed out when the corresponding bit is set). ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=insert_ps ++#define _mm_insert_ps(a, b, imm8) \ ++ _sse2neon_define2( \ ++ __m128, a, b, \ ++ float32x4_t tmp1 = \ ++ vsetq_lane_f32(vgetq_lane_f32(_b, (imm8 >> 6) & 0x3), \ ++ vreinterpretq_f32_m128(_a), 0); \ ++ float32x4_t tmp2 = \ ++ vsetq_lane_f32(vgetq_lane_f32(tmp1, 0), \ ++ vreinterpretq_f32_m128(_a), ((imm8 >> 4) & 0x3)); \ ++ const uint32_t data[4] = \ ++ _sse2neon_init(((imm8) & (1 << 0)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, \ ++ ((imm8) & (1 << 3)) ? UINT32_MAX : 0); \ ++ uint32x4_t mask = vld1q_u32(data); \ ++ float32x4_t all_zeros = vdupq_n_f32(0); \ ++ \ ++ _sse2neon_return(vreinterpretq_m128_f32( \ ++ vbslq_f32(mask, all_zeros, vreinterpretq_f32_m128(tmp2))));) ++ ++// Compare packed signed 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi32 ++FORCE_INLINE __m128i _mm_max_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmaxq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi8 ++FORCE_INLINE __m128i _mm_max_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vmaxq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu16 ++FORCE_INLINE __m128i _mm_max_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vmaxq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed maximum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_max_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vmaxq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Compare packed signed 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi32 ++FORCE_INLINE __m128i _mm_min_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vminq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Compare packed signed 8-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi8 ++FORCE_INLINE __m128i _mm_min_epi8(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s8( ++ vminq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); ++} ++ ++// Compare packed unsigned 16-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu16 ++FORCE_INLINE __m128i _mm_min_epu16(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vminq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); ++} ++ ++// Compare packed unsigned 32-bit integers in a and b, and store packed minimum ++// values in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 ++FORCE_INLINE __m128i _mm_min_epu32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u32( ++ vminq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); ++} ++ ++// Horizontally compute the minimum amongst the packed unsigned 16-bit integers ++// in a, store the minimum and index in dst, and zero the remaining bits in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_minpos_epu16 ++FORCE_INLINE __m128i _mm_minpos_epu16(__m128i a) ++{ ++ __m128i dst; ++ uint16_t min, idx = 0; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // Find the minimum value ++ min = vminvq_u16(vreinterpretq_u16_m128i(a)); ++ ++ // Get the index of the minimum value ++ static const uint16_t idxv[] = {0, 1, 2, 3, 4, 5, 6, 7}; ++ uint16x8_t minv = vdupq_n_u16(min); ++ uint16x8_t cmeq = vceqq_u16(minv, vreinterpretq_u16_m128i(a)); ++ idx = vminvq_u16(vornq_u16(vld1q_u16(idxv), cmeq)); ++#else ++ // Find the minimum value ++ __m64 tmp; ++ tmp = vreinterpret_m64_u16( ++ vmin_u16(vget_low_u16(vreinterpretq_u16_m128i(a)), ++ vget_high_u16(vreinterpretq_u16_m128i(a)))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ tmp = vreinterpret_m64_u16( ++ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); ++ min = vget_lane_u16(vreinterpret_u16_m64(tmp), 0); ++ // Get the index of the minimum value ++ int i; ++ for (i = 0; i < 8; i++) { ++ if (min == vgetq_lane_u16(vreinterpretq_u16_m128i(a), 0)) { ++ idx = (uint16_t) i; ++ break; ++ } ++ a = _mm_srli_si128(a, 2); ++ } ++#endif ++ // Generate result ++ dst = _mm_setzero_si128(); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(min, vreinterpretq_u16_m128i(dst), 0)); ++ dst = vreinterpretq_m128i_u16( ++ vsetq_lane_u16(idx, vreinterpretq_u16_m128i(dst), 1)); ++ return dst; ++} ++ ++// Compute the sum of absolute differences (SADs) of quadruplets of unsigned ++// 8-bit integers in a compared to those in b, and store the 16-bit results in ++// dst. Eight SADs are performed using one quadruplet from b and eight ++// quadruplets from a. One quadruplet is selected from b starting at on the ++// offset specified in imm8. Eight quadruplets are formed from sequential 8-bit ++// integers selected from a starting at the offset specified in imm8. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mpsadbw_epu8 ++FORCE_INLINE __m128i _mm_mpsadbw_epu8(__m128i a, __m128i b, const int imm) ++{ ++ uint8x16_t _a, _b; ++ ++ switch (imm & 0x4) { ++ case 0: ++ // do nothing ++ _a = vreinterpretq_u8_m128i(a); ++ break; ++ case 4: ++ _a = vreinterpretq_u8_u32(vextq_u32(vreinterpretq_u32_m128i(a), ++ vreinterpretq_u32_m128i(a), 1)); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ switch (imm & 0x3) { ++ case 0: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 0))); ++ break; ++ case 1: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 1))); ++ break; ++ case 2: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 2))); ++ break; ++ case 3: ++ _b = vreinterpretq_u8_u32( ++ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 3))); ++ break; ++ default: ++#if defined(__GNUC__) || defined(__clang__) ++ __builtin_unreachable(); ++#elif defined(_MSC_VER) ++ __assume(0); ++#endif ++ break; ++ } ++ ++ int16x8_t c04, c15, c26, c37; ++ uint8x8_t low_b = vget_low_u8(_b); ++ c04 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a), low_b)); ++ uint8x16_t _a_1 = vextq_u8(_a, _a, 1); ++ c15 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_1), low_b)); ++ uint8x16_t _a_2 = vextq_u8(_a, _a, 2); ++ c26 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_2), low_b)); ++ uint8x16_t _a_3 = vextq_u8(_a, _a, 3); ++ c37 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_3), low_b)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ // |0|4|2|6| ++ c04 = vpaddq_s16(c04, c26); ++ // |1|5|3|7| ++ c15 = vpaddq_s16(c15, c37); ++ ++ int32x4_t trn1_c = ++ vtrn1q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ int32x4_t trn2_c = ++ vtrn2q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); ++ return vreinterpretq_m128i_s16(vpaddq_s16(vreinterpretq_s16_s32(trn1_c), ++ vreinterpretq_s16_s32(trn2_c))); ++#else ++ int16x4_t c01, c23, c45, c67; ++ c01 = vpadd_s16(vget_low_s16(c04), vget_low_s16(c15)); ++ c23 = vpadd_s16(vget_low_s16(c26), vget_low_s16(c37)); ++ c45 = vpadd_s16(vget_high_s16(c04), vget_high_s16(c15)); ++ c67 = vpadd_s16(vget_high_s16(c26), vget_high_s16(c37)); ++ ++ return vreinterpretq_m128i_s16( ++ vcombine_s16(vpadd_s16(c01, c23), vpadd_s16(c45, c67))); ++#endif ++} ++ ++// Multiply the low signed 32-bit integers from each packed 64-bit element in ++// a and b, and store the signed 64-bit results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epi32 ++FORCE_INLINE __m128i _mm_mul_epi32(__m128i a, __m128i b) ++{ ++ // vmull_s32 upcasts instead of masking, so we downcast. ++ int32x2_t a_lo = vmovn_s64(vreinterpretq_s64_m128i(a)); ++ int32x2_t b_lo = vmovn_s64(vreinterpretq_s64_m128i(b)); ++ return vreinterpretq_m128i_s64(vmull_s32(a_lo, b_lo)); ++} ++ ++// Multiply the packed 32-bit integers in a and b, producing intermediate 64-bit ++// integers, and store the low 32 bits of the intermediate integers in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi32 ++FORCE_INLINE __m128i _mm_mullo_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_s32( ++ vmulq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); ++} ++ ++// Convert packed signed 32-bit integers from a and b to packed 16-bit integers ++// using unsigned saturation, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi32 ++FORCE_INLINE __m128i _mm_packus_epi32(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u16( ++ vcombine_u16(vqmovun_s32(vreinterpretq_s32_m128i(a)), ++ vqmovun_s32(vreinterpretq_s32_m128i(b)))); ++} ++ ++// Round the packed double-precision (64-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed double-precision ++// floating-point elements in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_pd ++FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d a, int rounding) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndnq_f64(vreinterpretq_f64_m128d(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_pd(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_pd(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128d_f64(vrndq_f64(vreinterpretq_f64_m128d(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128d_f64(vrndiq_f64(vreinterpretq_f64_m128d(a))); ++ } ++#else ++ double *v_double = (double *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ double res[2], tmp; ++ for (int i = 0; i < 2; i++) { ++ tmp = (v_double[i] < 0) ? -v_double[i] : v_double[i]; ++ double roundDown = floor(tmp); // Round down value ++ double roundUp = ceil(tmp); // Round up value ++ double diffDown = tmp - roundDown; ++ double diffUp = roundUp - tmp; ++ if (diffDown < diffUp) { ++ /* If it's closer to the round down value, then use it */ ++ res[i] = roundDown; ++ } else if (diffDown > diffUp) { ++ /* If it's closer to the round up value, then use it */ ++ res[i] = roundUp; ++ } else { ++ /* If it's equidistant between round up and round down value, ++ * pick the one which is an even number */ ++ double half = roundDown / 2; ++ if (half != floor(half)) { ++ /* If the round down value is odd, return the round up value ++ */ ++ res[i] = roundUp; ++ } else { ++ /* If the round up value is odd, return the round down value ++ */ ++ res[i] = roundDown; ++ } ++ } ++ res[i] = (v_double[i] < 0) ? -res[i] : res[i]; ++ } ++ return _mm_set_pd(res[1], res[0]); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_pd(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_pd(a); ++ } ++ return _mm_set_pd(v_double[1] > 0 ? floor(v_double[1]) : ceil(v_double[1]), ++ v_double[0] > 0 ? floor(v_double[0]) : ceil(v_double[0])); ++#endif ++} ++ ++// Round the packed single-precision (32-bit) floating-point elements in a using ++// the rounding parameter, and store the results as packed single-precision ++// floating-point elements in dst. ++// software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_round_ps ++FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128 a, int rounding) ++{ ++#if (defined(__aarch64__) || defined(_M_ARM64)) || \ ++ defined(__ARM_FEATURE_DIRECTED_ROUNDING) ++ switch (rounding) { ++ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndnq_f32(vreinterpretq_f32_m128(a))); ++ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): ++ return _mm_floor_ps(a); ++ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): ++ return _mm_ceil_ps(a); ++ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): ++ return vreinterpretq_m128_f32(vrndq_f32(vreinterpretq_f32_m128(a))); ++ default: //_MM_FROUND_CUR_DIRECTION ++ return vreinterpretq_m128_f32(vrndiq_f32(vreinterpretq_f32_m128(a))); ++ } ++#else ++ float *v_float = (float *) &a; ++ ++ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { ++ uint32x4_t signmask = vdupq_n_u32(0x80000000); ++ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), ++ vdupq_n_f32(0.5f)); /* +/- 0.5 */ ++ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( ++ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ ++ int32x4_t r_trunc = vcvtq_s32_f32( ++ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ ++ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( ++ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ ++ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), ++ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ ++ float32x4_t delta = vsubq_f32( ++ vreinterpretq_f32_m128(a), ++ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ ++ uint32x4_t is_delta_half = ++ vceqq_f32(delta, half); /* delta == +/- 0.5 */ ++ return vreinterpretq_m128_f32( ++ vcvtq_f32_s32(vbslq_s32(is_delta_half, r_even, r_normal))); ++ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { ++ return _mm_floor_ps(a); ++ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || ++ (rounding == _MM_FROUND_CUR_DIRECTION && ++ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { ++ return _mm_ceil_ps(a); ++ } ++ return _mm_set_ps(v_float[3] > 0 ? floorf(v_float[3]) : ceilf(v_float[3]), ++ v_float[2] > 0 ? floorf(v_float[2]) : ceilf(v_float[2]), ++ v_float[1] > 0 ? floorf(v_float[1]) : ceilf(v_float[1]), ++ v_float[0] > 0 ? floorf(v_float[0]) : ceilf(v_float[0])); ++#endif ++} ++ ++// Round the lower double-precision (64-bit) floating-point element in b using ++// the rounding parameter, store the result as a double-precision floating-point ++// element in the lower element of dst, and copy the upper element from a to the ++// upper element of dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_sd ++FORCE_INLINE __m128d _mm_round_sd(__m128d a, __m128d b, int rounding) ++{ ++ return _mm_move_sd(a, _mm_round_pd(b, rounding)); ++} ++ ++// Round the lower single-precision (32-bit) floating-point element in b using ++// the rounding parameter, store the result as a single-precision floating-point ++// element in the lower element of dst, and copy the upper 3 packed elements ++// from a to the upper elements of dst. Rounding is done according to the ++// rounding[3:0] parameter, which can be one of: ++// (_MM_FROUND_TO_NEAREST_INT |_MM_FROUND_NO_EXC) // round to nearest, and ++// suppress exceptions ++// (_MM_FROUND_TO_NEG_INF |_MM_FROUND_NO_EXC) // round down, and ++// suppress exceptions ++// (_MM_FROUND_TO_POS_INF |_MM_FROUND_NO_EXC) // round up, and suppress ++// exceptions ++// (_MM_FROUND_TO_ZERO |_MM_FROUND_NO_EXC) // truncate, and suppress ++// exceptions _MM_FROUND_CUR_DIRECTION // use MXCSR.RC; see ++// _MM_SET_ROUNDING_MODE ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_ss ++FORCE_INLINE __m128 _mm_round_ss(__m128 a, __m128 b, int rounding) ++{ ++ return _mm_move_ss(a, _mm_round_ps(b, rounding)); ++} ++ ++// Load 128-bits of integer data from memory into dst using a non-temporal ++// memory hint. mem_addr must be aligned on a 16-byte boundary or a ++// general-protection exception may be generated. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_load_si128 ++FORCE_INLINE __m128i _mm_stream_load_si128(__m128i *p) ++{ ++#if __has_builtin(__builtin_nontemporal_store) ++ return __builtin_nontemporal_load(p); ++#else ++ return vreinterpretq_m128i_s64(vld1q_s64((int64_t *) p)); ++#endif ++} ++ ++// Compute the bitwise NOT of a and then AND with a 128-bit vector containing ++// all 1's, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_ones ++FORCE_INLINE int _mm_test_all_ones(__m128i a) ++{ ++ return (uint64_t) (vgetq_lane_s64(a, 0) & vgetq_lane_s64(a, 1)) == ++ ~(uint64_t) 0; ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and return 1 if the result is zero, otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_zeros ++FORCE_INLINE int _mm_test_all_zeros(__m128i a, __m128i mask) ++{ ++ int64x2_t a_and_mask = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(mask)); ++ return !(vgetq_lane_s64(a_and_mask, 0) | vgetq_lane_s64(a_and_mask, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and ++// mask, and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute ++// the bitwise NOT of a and then AND with mask, and set CF to 1 if the result is ++// zero, otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_test_mix_ones_zero ++// Note: Argument names may be wrong in the Intel intrinsics guide. ++FORCE_INLINE int _mm_test_mix_ones_zeros(__m128i a, __m128i mask) ++{ ++ uint64x2_t v = vreinterpretq_u64_m128i(a); ++ uint64x2_t m = vreinterpretq_u64_m128i(mask); ++ ++ // find ones (set-bits) and zeros (clear-bits) under clip mask ++ uint64x2_t ones = vandq_u64(m, v); ++ uint64x2_t zeros = vbicq_u64(m, v); ++ ++ // If both 128-bit variables are populated (non-zero) then return 1. ++ // For comparison purposes, first compact each var down to 32-bits. ++ uint32x2_t reduced = vpmax_u32(vqmovn_u64(ones), vqmovn_u64(zeros)); ++ ++ // if folding minimum is non-zero then both vars must be non-zero ++ return (vget_lane_u32(vpmin_u32(reduced, reduced), 0) != 0); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the CF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testc_si128 ++FORCE_INLINE int _mm_testc_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vbicq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, ++// otherwise return 0. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testnzc_si128 ++#define _mm_testnzc_si128(a, b) _mm_test_mix_ones_zeros(a, b) ++ ++// Compute the bitwise AND of 128 bits (representing integer data) in a and b, ++// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the ++// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, ++// otherwise set CF to 0. Return the ZF value. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testz_si128 ++FORCE_INLINE int _mm_testz_si128(__m128i a, __m128i b) ++{ ++ int64x2_t s64 = ++ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b)); ++ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); ++} ++ ++/* SSE4.2 */ ++ ++static const uint16_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask16b[8] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++static const uint8_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask8b[16] = { ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, ++}; ++ ++/* specify the source data format */ ++#define _SIDD_UBYTE_OPS 0x00 /* unsigned 8-bit characters */ ++#define _SIDD_UWORD_OPS 0x01 /* unsigned 16-bit characters */ ++#define _SIDD_SBYTE_OPS 0x02 /* signed 8-bit characters */ ++#define _SIDD_SWORD_OPS 0x03 /* signed 16-bit characters */ ++ ++/* specify the comparison operation */ ++#define _SIDD_CMP_EQUAL_ANY 0x00 /* compare equal any: strchr */ ++#define _SIDD_CMP_RANGES 0x04 /* compare ranges */ ++#define _SIDD_CMP_EQUAL_EACH 0x08 /* compare equal each: strcmp */ ++#define _SIDD_CMP_EQUAL_ORDERED 0x0C /* compare equal ordered */ ++ ++/* specify the polarity */ ++#define _SIDD_POSITIVE_POLARITY 0x00 ++#define _SIDD_MASKED_POSITIVE_POLARITY 0x20 ++#define _SIDD_NEGATIVE_POLARITY 0x10 /* negate results */ ++#define _SIDD_MASKED_NEGATIVE_POLARITY \ ++ 0x30 /* negate results only before end of string */ ++ ++/* specify the output selection in _mm_cmpXstri */ ++#define _SIDD_LEAST_SIGNIFICANT 0x00 ++#define _SIDD_MOST_SIGNIFICANT 0x40 ++ ++/* specify the output selection in _mm_cmpXstrm */ ++#define _SIDD_BIT_MASK 0x00 ++#define _SIDD_UNIT_MASK 0x40 ++ ++/* Pattern Matching for C macros. ++ * https://github.com/pfultz2/Cloak/wiki/C-Preprocessor-tricks,-tips,-and-idioms ++ */ ++ ++/* catenate */ ++#define SSE2NEON_PRIMITIVE_CAT(a, ...) a##__VA_ARGS__ ++#define SSE2NEON_CAT(a, b) SSE2NEON_PRIMITIVE_CAT(a, b) ++ ++#define SSE2NEON_IIF(c) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_IIF_, c) ++/* run the 2nd parameter */ ++#define SSE2NEON_IIF_0(t, ...) __VA_ARGS__ ++/* run the 1st parameter */ ++#define SSE2NEON_IIF_1(t, ...) t ++ ++#define SSE2NEON_COMPL(b) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_COMPL_, b) ++#define SSE2NEON_COMPL_0 1 ++#define SSE2NEON_COMPL_1 0 ++ ++#define SSE2NEON_DEC(x) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_DEC_, x) ++#define SSE2NEON_DEC_1 0 ++#define SSE2NEON_DEC_2 1 ++#define SSE2NEON_DEC_3 2 ++#define SSE2NEON_DEC_4 3 ++#define SSE2NEON_DEC_5 4 ++#define SSE2NEON_DEC_6 5 ++#define SSE2NEON_DEC_7 6 ++#define SSE2NEON_DEC_8 7 ++#define SSE2NEON_DEC_9 8 ++#define SSE2NEON_DEC_10 9 ++#define SSE2NEON_DEC_11 10 ++#define SSE2NEON_DEC_12 11 ++#define SSE2NEON_DEC_13 12 ++#define SSE2NEON_DEC_14 13 ++#define SSE2NEON_DEC_15 14 ++#define SSE2NEON_DEC_16 15 ++ ++/* detection */ ++#define SSE2NEON_CHECK_N(x, n, ...) n ++#define SSE2NEON_CHECK(...) SSE2NEON_CHECK_N(__VA_ARGS__, 0, ) ++#define SSE2NEON_PROBE(x) x, 1, ++ ++#define SSE2NEON_NOT(x) SSE2NEON_CHECK(SSE2NEON_PRIMITIVE_CAT(SSE2NEON_NOT_, x)) ++#define SSE2NEON_NOT_0 SSE2NEON_PROBE(~) ++ ++#define SSE2NEON_BOOL(x) SSE2NEON_COMPL(SSE2NEON_NOT(x)) ++#define SSE2NEON_IF(c) SSE2NEON_IIF(SSE2NEON_BOOL(c)) ++ ++#define SSE2NEON_EAT(...) ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++#define SSE2NEON_WHEN(c) SSE2NEON_IF(c)(SSE2NEON_EXPAND, SSE2NEON_EAT) ++ ++/* recursion */ ++/* deferred expression */ ++#define SSE2NEON_EMPTY() ++#define SSE2NEON_DEFER(id) id SSE2NEON_EMPTY() ++#define SSE2NEON_OBSTRUCT(...) __VA_ARGS__ SSE2NEON_DEFER(SSE2NEON_EMPTY)() ++#define SSE2NEON_EXPAND(...) __VA_ARGS__ ++ ++#define SSE2NEON_EVAL(...) \ ++ SSE2NEON_EVAL1(SSE2NEON_EVAL1(SSE2NEON_EVAL1(__VA_ARGS__))) ++#define SSE2NEON_EVAL1(...) \ ++ SSE2NEON_EVAL2(SSE2NEON_EVAL2(SSE2NEON_EVAL2(__VA_ARGS__))) ++#define SSE2NEON_EVAL2(...) \ ++ SSE2NEON_EVAL3(SSE2NEON_EVAL3(SSE2NEON_EVAL3(__VA_ARGS__))) ++#define SSE2NEON_EVAL3(...) __VA_ARGS__ ++ ++#define SSE2NEON_REPEAT(count, macro, ...) \ ++ SSE2NEON_WHEN(count) \ ++ (SSE2NEON_OBSTRUCT(SSE2NEON_REPEAT_INDIRECT)()( \ ++ SSE2NEON_DEC(count), macro, \ ++ __VA_ARGS__) SSE2NEON_OBSTRUCT(macro)(SSE2NEON_DEC(count), \ ++ __VA_ARGS__)) ++#define SSE2NEON_REPEAT_INDIRECT() SSE2NEON_REPEAT ++ ++#define SSE2NEON_SIZE_OF_byte 8 ++#define SSE2NEON_NUMBER_OF_LANES_byte 16 ++#define SSE2NEON_SIZE_OF_word 16 ++#define SSE2NEON_NUMBER_OF_LANES_word 8 ++ ++#define SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE(i, type) \ ++ mtx[i] = vreinterpretq_m128i_##type(vceqq_##type( \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)), \ ++ vreinterpretq_##type##_m128i(a))); ++ ++#define SSE2NEON_FILL_LANE(i, type) \ ++ vec_b[i] = \ ++ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)); ++ ++#define PCMPSTR_RANGES(a, b, mtx, data_type_prefix, type_prefix, size, \ ++ number_of_lanes, byte_or_word) \ ++ do { \ ++ SSE2NEON_CAT( \ ++ data_type_prefix, \ ++ SSE2NEON_CAT(size, \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(number_of_lanes, _t)))) \ ++ vec_b[number_of_lanes]; \ ++ __m128i mask = SSE2NEON_IIF(byte_or_word)( \ ++ vreinterpretq_m128i_u16(vdupq_n_u16(0xff)), \ ++ vreinterpretq_m128i_u32(vdupq_n_u32(0xffff))); \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, SSE2NEON_FILL_LANE, \ ++ SSE2NEON_CAT(type_prefix, size))) \ ++ for (int i = 0; i < number_of_lanes; i++) { \ ++ mtx[i] = SSE2NEON_CAT(vreinterpretq_m128i_u, \ ++ size)(SSE2NEON_CAT(vbslq_u, size)( \ ++ SSE2NEON_CAT(vreinterpretq_u, \ ++ SSE2NEON_CAT(size, _m128i))(mask), \ ++ SSE2NEON_CAT(vcgeq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))), \ ++ SSE2NEON_CAT(vcleq_, SSE2NEON_CAT(type_prefix, size))( \ ++ vec_b[i], \ ++ SSE2NEON_CAT( \ ++ vreinterpretq_, \ ++ SSE2NEON_CAT(type_prefix, \ ++ SSE2NEON_CAT(size, _m128i(a))))))); \ ++ } \ ++ } while (0) ++ ++#define PCMPSTR_EQ(a, b, mtx, size, number_of_lanes) \ ++ do { \ ++ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, \ ++ SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE, \ ++ SSE2NEON_CAT(u, size))) \ ++ } while (0) ++ ++#define SSE2NEON_CMP_EQUAL_ANY_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_any(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_any_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_RANGES_IMPL(type, data_type, us, byte_or_word) \ ++ static int _sse2neon_cmp_##us##type##_ranges(__m128i a, int la, __m128i b, \ ++ int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_RANGES( \ ++ a, b, mtx, data_type, us, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), byte_or_word); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_ranges_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ ++ type))))(la, lb, mtx); \ ++ } ++ ++#define SSE2NEON_CMP_EQUAL_ORDERED_IMPL(type) \ ++ static int _sse2neon_cmp_##type##_equal_ordered(__m128i a, int la, \ ++ __m128i b, int lb) \ ++ { \ ++ __m128i mtx[16]; \ ++ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ ++ return SSE2NEON_CAT( \ ++ _sse2neon_aggregate_equal_ordered_, \ ++ SSE2NEON_CAT( \ ++ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ ++ SSE2NEON_CAT(x, \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type))))( \ ++ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), la, lb, mtx); \ ++ } ++ ++static int _sse2neon_aggregate_equal_any_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ int tmp = _sse2neon_vaddvq_u8(vreinterpretq_u8_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_equal_any_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ int tmp = _sse2neon_vaddvq_u16(vreinterpretq_u16_m128i(mtx[j])) ? 1 : 0; ++ res |= (tmp << j); ++ } ++ return res; ++} ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ANY(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ANY(SSE2NEON_CMP_EQUAL_ANY_) ++ ++static int _sse2neon_aggregate_ranges_16x8(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint16x8_t vec = ++ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u16( ++ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); ++ __m128i tmp = vreinterpretq_m128i_u32( ++ vshrq_n_u32(vreinterpretq_u32_m128i(mtx[j]), 16)); ++ uint32x4_t vec_res = vandq_u32(vreinterpretq_u32_m128i(mtx[j]), ++ vreinterpretq_u32_m128i(tmp)); ++#if defined(__aarch64__) || defined(_M_ARM64) ++ int t = vaddvq_u32(vec_res) ? 1 : 0; ++#else ++ uint64x2_t sumh = vpaddlq_u32(vec_res); ++ int t = vgetq_lane_u64(sumh, 0) + vgetq_lane_u64(sumh, 1); ++#endif ++ res |= (t << j); ++ } ++ return res; ++} ++ ++static int _sse2neon_aggregate_ranges_8x16(int la, int lb, __m128i mtx[16]) ++{ ++ int res = 0; ++ int m = (1 << la) - 1; ++ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); ++ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); ++ uint8x16_t vec = vcombine_u8(t_lo, t_hi); ++ for (int j = 0; j < lb; j++) { ++ mtx[j] = vreinterpretq_m128i_u8( ++ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); ++ mtx[j] = vreinterpretq_m128i_u8( ++ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); ++ __m128i tmp = vreinterpretq_m128i_u16( ++ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 8)); ++ uint16x8_t vec_res = vandq_u16(vreinterpretq_u16_m128i(mtx[j]), ++ vreinterpretq_u16_m128i(tmp)); ++ int t = _sse2neon_vaddvq_u16(vec_res) ? 1 : 0; ++ res |= (t << j); ++ } ++ return res; ++} ++ ++#define SSE2NEON_CMP_RANGES_IS_BYTE 1 ++#define SSE2NEON_CMP_RANGES_IS_WORD 0 ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_RANGES(prefix) \ ++ prefix##IMPL(byte, uint, u, prefix##IS_BYTE) \ ++ prefix##IMPL(byte, int, s, prefix##IS_BYTE) \ ++ prefix##IMPL(word, uint, u, prefix##IS_WORD) \ ++ prefix##IMPL(word, int, s, prefix##IS_WORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_RANGES(SSE2NEON_CMP_RANGES_) ++ ++#undef SSE2NEON_CMP_RANGES_IS_BYTE ++#undef SSE2NEON_CMP_RANGES_IS_WORD ++ ++static int _sse2neon_cmp_byte_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint8x16_t mtx = ++ vceqq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x10000 - (1 << la); ++ int tb = 0x10000 - (1 << lb); ++ uint8x8_t vec_mask, vec0_lo, vec0_hi, vec1_lo, vec1_hi; ++ uint8x8_t tmp_lo, tmp_hi, res_lo, res_hi; ++ vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); ++ vec0_lo = vtst_u8(vdup_n_u8(m0), vec_mask); ++ vec0_hi = vtst_u8(vdup_n_u8(m0 >> 8), vec_mask); ++ vec1_lo = vtst_u8(vdup_n_u8(m1), vec_mask); ++ vec1_hi = vtst_u8(vdup_n_u8(m1 >> 8), vec_mask); ++ tmp_lo = vtst_u8(vdup_n_u8(tb), vec_mask); ++ tmp_hi = vtst_u8(vdup_n_u8(tb >> 8), vec_mask); ++ ++ res_lo = vbsl_u8(vec0_lo, vdup_n_u8(0), vget_low_u8(mtx)); ++ res_hi = vbsl_u8(vec0_hi, vdup_n_u8(0), vget_high_u8(mtx)); ++ res_lo = vbsl_u8(vec1_lo, tmp_lo, res_lo); ++ res_hi = vbsl_u8(vec1_hi, tmp_hi, res_hi); ++ res_lo = vand_u8(res_lo, vec_mask); ++ res_hi = vand_u8(res_hi, vec_mask); ++ ++ int res = _sse2neon_vaddv_u8(res_lo) + (_sse2neon_vaddv_u8(res_hi) << 8); ++ return res; ++} ++ ++static int _sse2neon_cmp_word_equal_each(__m128i a, int la, __m128i b, int lb) ++{ ++ uint16x8_t mtx = ++ vceqq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); ++ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); ++ int m1 = 0x100 - (1 << la); ++ int tb = 0x100 - (1 << lb); ++ uint16x8_t vec_mask = vld1q_u16(_sse2neon_cmpestr_mask16b); ++ uint16x8_t vec0 = vtstq_u16(vdupq_n_u16(m0), vec_mask); ++ uint16x8_t vec1 = vtstq_u16(vdupq_n_u16(m1), vec_mask); ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(tb), vec_mask); ++ mtx = vbslq_u16(vec0, vdupq_n_u16(0), mtx); ++ mtx = vbslq_u16(vec1, tmp, mtx); ++ mtx = vandq_u16(mtx, vec_mask); ++ return _sse2neon_vaddvq_u16(mtx); ++} ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE 1 ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD 0 ++ ++#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IMPL(size, number_of_lanes, data_type) \ ++ static int _sse2neon_aggregate_equal_ordered_##size##x##number_of_lanes( \ ++ int bound, int la, int lb, __m128i mtx[16]) \ ++ { \ ++ int res = 0; \ ++ int m1 = SSE2NEON_IIF(data_type)(0x10000, 0x100) - (1 << la); \ ++ uint##size##x8_t vec_mask = SSE2NEON_IIF(data_type)( \ ++ vld1_u##size(_sse2neon_cmpestr_mask##size##b), \ ++ vld1q_u##size(_sse2neon_cmpestr_mask##size##b)); \ ++ uint##size##x##number_of_lanes##_t vec1 = SSE2NEON_IIF(data_type)( \ ++ vcombine_u##size(vtst_u##size(vdup_n_u##size(m1), vec_mask), \ ++ vtst_u##size(vdup_n_u##size(m1 >> 8), vec_mask)), \ ++ vtstq_u##size(vdupq_n_u##size(m1), vec_mask)); \ ++ uint##size##x##number_of_lanes##_t vec_minusone = vdupq_n_u##size(-1); \ ++ uint##size##x##number_of_lanes##_t vec_zero = vdupq_n_u##size(0); \ ++ for (int j = 0; j < lb; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size(vbslq_u##size( \ ++ vec1, vec_minusone, vreinterpretq_u##size##_m128i(mtx[j]))); \ ++ } \ ++ for (int j = lb; j < bound; j++) { \ ++ mtx[j] = vreinterpretq_m128i_u##size( \ ++ vbslq_u##size(vec1, vec_minusone, vec_zero)); \ ++ } \ ++ unsigned SSE2NEON_IIF(data_type)(char, short) *ptr = \ ++ (unsigned SSE2NEON_IIF(data_type)(char, short) *) mtx; \ ++ for (int i = 0; i < bound; i++) { \ ++ int val = 1; \ ++ for (int j = 0, k = i; j < bound - i && k < bound; j++, k++) \ ++ val &= ptr[k * bound + j]; \ ++ res += val << i; \ ++ } \ ++ return res; \ ++ } ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(prefix) \ ++ prefix##IMPL(8, 16, prefix##IS_UBYTE) \ ++ prefix##IMPL(16, 8, prefix##IS_UWORD) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(SSE2NEON_AGGREGATE_EQUAL_ORDER_) ++ ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE ++#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD ++ ++/* clang-format off */ ++#define SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(prefix) \ ++ prefix##IMPL(byte) \ ++ prefix##IMPL(word) ++/* clang-format on */ ++ ++SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(SSE2NEON_CMP_EQUAL_ORDERED_) ++ ++#define SSE2NEON_CMPESTR_LIST \ ++ _(CMP_UBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_UWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_SBYTE_EQUAL_ANY, cmp_byte_equal_any) \ ++ _(CMP_SWORD_EQUAL_ANY, cmp_word_equal_any) \ ++ _(CMP_UBYTE_RANGES, cmp_ubyte_ranges) \ ++ _(CMP_UWORD_RANGES, cmp_uword_ranges) \ ++ _(CMP_SBYTE_RANGES, cmp_sbyte_ranges) \ ++ _(CMP_SWORD_RANGES, cmp_sword_ranges) \ ++ _(CMP_UBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_UWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_SBYTE_EQUAL_EACH, cmp_byte_equal_each) \ ++ _(CMP_SWORD_EQUAL_EACH, cmp_word_equal_each) \ ++ _(CMP_UBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_UWORD_EQUAL_ORDERED, cmp_word_equal_ordered) \ ++ _(CMP_SBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ ++ _(CMP_SWORD_EQUAL_ORDERED, cmp_word_equal_ordered) ++ ++enum { ++#define _(name, func_suffix) name, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++typedef int (*cmpestr_func_t)(__m128i a, int la, __m128i b, int lb); ++static cmpestr_func_t _sse2neon_cmpfunc_table[] = { ++#define _(name, func_suffix) _sse2neon_##func_suffix, ++ SSE2NEON_CMPESTR_LIST ++#undef _ ++}; ++ ++FORCE_INLINE int _sse2neon_sido_negative(int res, int lb, int imm8, int bound) ++{ ++ switch (imm8 & 0x30) { ++ case _SIDD_NEGATIVE_POLARITY: ++ res ^= 0xffffffff; ++ break; ++ case _SIDD_MASKED_NEGATIVE_POLARITY: ++ res ^= (1 << lb) - 1; ++ break; ++ default: ++ break; ++ } ++ ++ return res & ((bound == 8) ? 0xFF : 0xFFFF); ++} ++ ++FORCE_INLINE int _sse2neon_clz(unsigned int x) ++{ ++#if defined(_MSC_VER) && !defined(__clang__) ++ unsigned long cnt = 0; ++ if (_BitScanReverse(&cnt, x)) ++ return 31 - cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_clz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctz(unsigned int x) ++{ ++#if defined(_MSC_VER) && !defined(__clang__) ++ unsigned long cnt = 0; ++ if (_BitScanForward(&cnt, x)) ++ return cnt; ++ return 32; ++#else ++ return x != 0 ? __builtin_ctz(x) : 32; ++#endif ++} ++ ++FORCE_INLINE int _sse2neon_ctzll(unsigned long long x) ++{ ++#ifdef _MSC_VER ++ unsigned long cnt; ++#if defined(SSE2NEON_HAS_BITSCAN64) ++ if (_BitScanForward64(&cnt, x)) ++ return (int) (cnt); ++#else ++ if (_BitScanForward(&cnt, (unsigned long) (x))) ++ return (int) cnt; ++ if (_BitScanForward(&cnt, (unsigned long) (x >> 32))) ++ return (int) (cnt + 32); ++#endif /* SSE2NEON_HAS_BITSCAN64 */ ++ return 64; ++#else /* assume GNU compatible compilers */ ++ return x != 0 ? __builtin_ctzll(x) : 64; ++#endif ++} ++ ++#define SSE2NEON_MIN(x, y) (x) < (y) ? (x) : (y) ++ ++#define SSE2NEON_CMPSTR_SET_UPPER(var, imm) \ ++ const int var = (imm & 0x01) ? 8 : 16 ++ ++#define SSE2NEON_CMPESTRX_LEN_PAIR(a, b, la, lb) \ ++ int tmp1 = la ^ (la >> 31); \ ++ la = tmp1 - (la >> 31); \ ++ int tmp2 = lb ^ (lb >> 31); \ ++ lb = tmp2 - (lb >> 31); \ ++ la = SSE2NEON_MIN(la, bound); \ ++ lb = SSE2NEON_MIN(lb, bound) ++ ++// Compare all pairs of character in string a and b, ++// then aggregate the result. ++// As the only difference of PCMPESTR* and PCMPISTR* is the way to calculate the ++// length of string, we use SSE2NEON_CMP{I,E}STRX_GET_LEN to get the length of ++// string a and b. ++#define SSE2NEON_COMP_AGG(a, b, la, lb, imm8, IE) \ ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); \ ++ SSE2NEON_##IE##_LEN_PAIR(a, b, la, lb); \ ++ int r2 = (_sse2neon_cmpfunc_table[imm8 & 0x0f])(a, la, b, lb); \ ++ r2 = _sse2neon_sido_negative(r2, lb, imm8, bound) ++ ++#define SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8) \ ++ return (r2 == 0) ? bound \ ++ : ((imm8 & 0x40) ? (31 - _sse2neon_clz(r2)) \ ++ : _sse2neon_ctz(r2)) ++ ++#define SSE2NEON_CMPSTR_GENERATE_MASK(dst) \ ++ __m128i dst = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ ++ if (imm8 & 0x40) { \ ++ if (bound == 8) { \ ++ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(r2), \ ++ vld1q_u16(_sse2neon_cmpestr_mask16b)); \ ++ dst = vreinterpretq_m128i_u16(vbslq_u16( \ ++ tmp, vdupq_n_u16(-1), vreinterpretq_u16_m128i(dst))); \ ++ } else { \ ++ uint8x16_t vec_r2 = \ ++ vcombine_u8(vdup_n_u8(r2), vdup_n_u8(r2 >> 8)); \ ++ uint8x16_t tmp = \ ++ vtstq_u8(vec_r2, vld1q_u8(_sse2neon_cmpestr_mask8b)); \ ++ dst = vreinterpretq_m128i_u8( \ ++ vbslq_u8(tmp, vdupq_n_u8(-1), vreinterpretq_u8_m128i(dst))); \ ++ } \ ++ } else { \ ++ if (bound == 16) { \ ++ dst = vreinterpretq_m128i_u16( \ ++ vsetq_lane_u16(r2 & 0xffff, vreinterpretq_u16_m128i(dst), 0)); \ ++ } else { \ ++ dst = vreinterpretq_m128i_u8( \ ++ vsetq_lane_u8(r2 & 0xff, vreinterpretq_u8_m128i(dst), 0)); \ ++ } \ ++ } \ ++ return dst ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and returns 1 if b did not contain a null character and the ++// resulting mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestra ++FORCE_INLINE int _mm_cmpestra(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ int lb_cpy = lb; ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return !r2 & (lb_cpy > bound); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrc ++FORCE_INLINE int _mm_cmpestrc(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestri ++FORCE_INLINE int _mm_cmpestri(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control ++// in imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrm ++FORCE_INLINE __m128i ++_mm_cmpestrm(__m128i a, int la, __m128i b, int lb, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestro ++FORCE_INLINE int _mm_cmpestro(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrs ++FORCE_INLINE int _mm_cmpestrs(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) lb; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings in a and b with lengths la and lb using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrz ++FORCE_INLINE int _mm_cmpestrz(__m128i a, ++ int la, ++ __m128i b, ++ int lb, ++ const int imm8) ++{ ++ (void) a; ++ (void) b; ++ (void) la; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ return lb <= (bound - 1); ++} ++ ++#define SSE2NEON_CMPISTRX_LENGTH(str, len, imm8) \ ++ do { \ ++ if (imm8 & 0x01) { \ ++ uint16x8_t equal_mask_##str = \ ++ vceqq_u16(vreinterpretq_u16_m128i(str), vdupq_n_u16(0)); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 3; \ ++ } else { \ ++ uint16x8_t equal_mask_##str = vreinterpretq_u16_u8( \ ++ vceqq_u8(vreinterpretq_u8_m128i(str), vdupq_n_u8(0))); \ ++ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ ++ uint64_t matches_##str = \ ++ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ ++ len = _sse2neon_ctzll(matches_##str) >> 2; \ ++ } \ ++ } while (0) ++ ++#define SSE2NEON_CMPISTRX_LEN_PAIR(a, b, la, lb) \ ++ int la, lb; \ ++ do { \ ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); \ ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); \ ++ } while (0) ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if b did not contain a null character and the resulting ++// mask was zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistra ++FORCE_INLINE int _mm_cmpistra(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return !r2 & (lb >= bound); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrc ++FORCE_INLINE int _mm_cmpistrc(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 != 0; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated index in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistri ++FORCE_INLINE int _mm_cmpistri(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and store the generated mask in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrm ++FORCE_INLINE __m128i _mm_cmpistrm(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ SSE2NEON_CMPSTR_GENERATE_MASK(dst); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns bit 0 of the resulting bit mask. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistro ++FORCE_INLINE int _mm_cmpistro(__m128i a, __m128i b, const int imm8) ++{ ++ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); ++ return r2 & 1; ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in a was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrs ++FORCE_INLINE int _mm_cmpistrs(__m128i a, __m128i b, const int imm8) ++{ ++ (void) b; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int la; ++ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); ++ return la <= (bound - 1); ++} ++ ++// Compare packed strings with implicit lengths in a and b using the control in ++// imm8, and returns 1 if any character in b was null, and 0 otherwise. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrz ++FORCE_INLINE int _mm_cmpistrz(__m128i a, __m128i b, const int imm8) ++{ ++ (void) a; ++ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); ++ int lb; ++ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); ++ return lb <= (bound - 1); ++} ++ ++// Compares the 2 signed 64-bit integers in a and the 2 signed 64-bit integers ++// in b for greater than. ++FORCE_INLINE __m128i _mm_cmpgt_epi64(__m128i a, __m128i b) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ return vreinterpretq_m128i_u64( ++ vcgtq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); ++#else ++ return vreinterpretq_m128i_s64(vshrq_n_s64( ++ vqsubq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)), ++ 63)); ++#endif ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 16-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u16 ++FORCE_INLINE uint32_t _mm_crc32_u16(uint32_t crc, uint16_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32ch %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32ch(crc, v); ++#else ++ crc = _mm_crc32_u8(crc, v & 0xff); ++ crc = _mm_crc32_u8(crc, (v >> 8) & 0xff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 32-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u32 ++FORCE_INLINE uint32_t _mm_crc32_u32(uint32_t crc, uint32_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cw %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cw(crc, v); ++#else ++ crc = _mm_crc32_u16(crc, v & 0xffff); ++ crc = _mm_crc32_u16(crc, (v >> 16) & 0xffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 64-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u64 ++FORCE_INLINE uint64_t _mm_crc32_u64(uint64_t crc, uint64_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cx %w[c], %w[c], %x[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cd((uint32_t) crc, v); ++#else ++ crc = _mm_crc32_u32((uint32_t) (crc), v & 0xffffffff); ++ crc = _mm_crc32_u32((uint32_t) (crc), (v >> 32) & 0xffffffff); ++#endif ++ return crc; ++} ++ ++// Starting with the initial value in crc, accumulates a CRC32 value for ++// unsigned 8-bit integer v, and stores the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u8 ++FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t crc, uint8_t v) ++{ ++#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) ++ __asm__ __volatile__("crc32cb %w[c], %w[c], %w[v]\n\t" ++ : [c] "+r"(crc) ++ : [v] "r"(v)); ++#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ ++ (defined(_M_ARM64) && !defined(__clang__)) ++ crc = __crc32cb(crc, v); ++#else ++ crc ^= v; ++#if defined(__ARM_FEATURE_CRYPTO) ++ // Adapted from: https://mary.rs/lab/crc32/ ++ // Barrent reduction ++ uint64x2_t orig = ++ vcombine_u64(vcreate_u64((uint64_t) (crc) << 24), vcreate_u64(0x0)); ++ uint64x2_t tmp = orig; ++ ++ // Polynomial P(x) of CRC32C ++ uint64_t p = 0x105EC76F1; ++ // Barrett Reduction (in bit-reflected form) constant mu_{64} = \lfloor ++ // 2^{64} / P(x) \rfloor = 0x11f91caf6 ++ uint64_t mu = 0x1dea713f1; ++ ++ // Multiply by mu_{64} ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(mu)); ++ // Divide by 2^{64} (mask away the unnecessary bits) ++ tmp = ++ vandq_u64(tmp, vcombine_u64(vcreate_u64(0xFFFFFFFF), vcreate_u64(0x0))); ++ // Multiply by P(x) (shifted left by 1 for alignment reasons) ++ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(p)); ++ // Subtract original from result ++ tmp = veorq_u64(tmp, orig); ++ ++ // Extract the 'lower' (in bit-reflected sense) 32 bits ++ crc = vgetq_lane_u32(vreinterpretq_u32_u64(tmp), 1); ++#else // Fall back to the generic table lookup approach ++ // Adapted from: https://create.stephan-brumme.com/crc32/ ++ // Apply half-byte comparison algorithm for the best ratio between ++ // performance and lookup table. ++ ++ // The lookup table just needs to store every 16th entry ++ // of the standard look-up table. ++ static const uint32_t crc32_half_byte_tbl[] = { ++ 0x00000000, 0x105ec76f, 0x20bd8ede, 0x30e349b1, 0x417b1dbc, 0x5125dad3, ++ 0x61c69362, 0x7198540d, 0x82f63b78, 0x92a8fc17, 0xa24bb5a6, 0xb21572c9, ++ 0xc38d26c4, 0xd3d3e1ab, 0xe330a81a, 0xf36e6f75, ++ }; ++ ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; ++#endif ++#endif ++ return crc; ++} ++ ++/* AES */ ++ ++#if !defined(__ARM_FEATURE_CRYPTO) && (!defined(_M_ARM64) || defined(__clang__)) ++/* clang-format off */ ++#define SSE2NEON_AES_SBOX(w) \ ++ { \ ++ w(0x63), w(0x7c), w(0x77), w(0x7b), w(0xf2), w(0x6b), w(0x6f), \ ++ w(0xc5), w(0x30), w(0x01), w(0x67), w(0x2b), w(0xfe), w(0xd7), \ ++ w(0xab), w(0x76), w(0xca), w(0x82), w(0xc9), w(0x7d), w(0xfa), \ ++ w(0x59), w(0x47), w(0xf0), w(0xad), w(0xd4), w(0xa2), w(0xaf), \ ++ w(0x9c), w(0xa4), w(0x72), w(0xc0), w(0xb7), w(0xfd), w(0x93), \ ++ w(0x26), w(0x36), w(0x3f), w(0xf7), w(0xcc), w(0x34), w(0xa5), \ ++ w(0xe5), w(0xf1), w(0x71), w(0xd8), w(0x31), w(0x15), w(0x04), \ ++ w(0xc7), w(0x23), w(0xc3), w(0x18), w(0x96), w(0x05), w(0x9a), \ ++ w(0x07), w(0x12), w(0x80), w(0xe2), w(0xeb), w(0x27), w(0xb2), \ ++ w(0x75), w(0x09), w(0x83), w(0x2c), w(0x1a), w(0x1b), w(0x6e), \ ++ w(0x5a), w(0xa0), w(0x52), w(0x3b), w(0xd6), w(0xb3), w(0x29), \ ++ w(0xe3), w(0x2f), w(0x84), w(0x53), w(0xd1), w(0x00), w(0xed), \ ++ w(0x20), w(0xfc), w(0xb1), w(0x5b), w(0x6a), w(0xcb), w(0xbe), \ ++ w(0x39), w(0x4a), w(0x4c), w(0x58), w(0xcf), w(0xd0), w(0xef), \ ++ w(0xaa), w(0xfb), w(0x43), w(0x4d), w(0x33), w(0x85), w(0x45), \ ++ w(0xf9), w(0x02), w(0x7f), w(0x50), w(0x3c), w(0x9f), w(0xa8), \ ++ w(0x51), w(0xa3), w(0x40), w(0x8f), w(0x92), w(0x9d), w(0x38), \ ++ w(0xf5), w(0xbc), w(0xb6), w(0xda), w(0x21), w(0x10), w(0xff), \ ++ w(0xf3), w(0xd2), w(0xcd), w(0x0c), w(0x13), w(0xec), w(0x5f), \ ++ w(0x97), w(0x44), w(0x17), w(0xc4), w(0xa7), w(0x7e), w(0x3d), \ ++ w(0x64), w(0x5d), w(0x19), w(0x73), w(0x60), w(0x81), w(0x4f), \ ++ w(0xdc), w(0x22), w(0x2a), w(0x90), w(0x88), w(0x46), w(0xee), \ ++ w(0xb8), w(0x14), w(0xde), w(0x5e), w(0x0b), w(0xdb), w(0xe0), \ ++ w(0x32), w(0x3a), w(0x0a), w(0x49), w(0x06), w(0x24), w(0x5c), \ ++ w(0xc2), w(0xd3), w(0xac), w(0x62), w(0x91), w(0x95), w(0xe4), \ ++ w(0x79), w(0xe7), w(0xc8), w(0x37), w(0x6d), w(0x8d), w(0xd5), \ ++ w(0x4e), w(0xa9), w(0x6c), w(0x56), w(0xf4), w(0xea), w(0x65), \ ++ w(0x7a), w(0xae), w(0x08), w(0xba), w(0x78), w(0x25), w(0x2e), \ ++ w(0x1c), w(0xa6), w(0xb4), w(0xc6), w(0xe8), w(0xdd), w(0x74), \ ++ w(0x1f), w(0x4b), w(0xbd), w(0x8b), w(0x8a), w(0x70), w(0x3e), \ ++ w(0xb5), w(0x66), w(0x48), w(0x03), w(0xf6), w(0x0e), w(0x61), \ ++ w(0x35), w(0x57), w(0xb9), w(0x86), w(0xc1), w(0x1d), w(0x9e), \ ++ w(0xe1), w(0xf8), w(0x98), w(0x11), w(0x69), w(0xd9), w(0x8e), \ ++ w(0x94), w(0x9b), w(0x1e), w(0x87), w(0xe9), w(0xce), w(0x55), \ ++ w(0x28), w(0xdf), w(0x8c), w(0xa1), w(0x89), w(0x0d), w(0xbf), \ ++ w(0xe6), w(0x42), w(0x68), w(0x41), w(0x99), w(0x2d), w(0x0f), \ ++ w(0xb0), w(0x54), w(0xbb), w(0x16) \ ++ } ++#define SSE2NEON_AES_RSBOX(w) \ ++ { \ ++ w(0x52), w(0x09), w(0x6a), w(0xd5), w(0x30), w(0x36), w(0xa5), \ ++ w(0x38), w(0xbf), w(0x40), w(0xa3), w(0x9e), w(0x81), w(0xf3), \ ++ w(0xd7), w(0xfb), w(0x7c), w(0xe3), w(0x39), w(0x82), w(0x9b), \ ++ w(0x2f), w(0xff), w(0x87), w(0x34), w(0x8e), w(0x43), w(0x44), \ ++ w(0xc4), w(0xde), w(0xe9), w(0xcb), w(0x54), w(0x7b), w(0x94), \ ++ w(0x32), w(0xa6), w(0xc2), w(0x23), w(0x3d), w(0xee), w(0x4c), \ ++ w(0x95), w(0x0b), w(0x42), w(0xfa), w(0xc3), w(0x4e), w(0x08), \ ++ w(0x2e), w(0xa1), w(0x66), w(0x28), w(0xd9), w(0x24), w(0xb2), \ ++ w(0x76), w(0x5b), w(0xa2), w(0x49), w(0x6d), w(0x8b), w(0xd1), \ ++ w(0x25), w(0x72), w(0xf8), w(0xf6), w(0x64), w(0x86), w(0x68), \ ++ w(0x98), w(0x16), w(0xd4), w(0xa4), w(0x5c), w(0xcc), w(0x5d), \ ++ w(0x65), w(0xb6), w(0x92), w(0x6c), w(0x70), w(0x48), w(0x50), \ ++ w(0xfd), w(0xed), w(0xb9), w(0xda), w(0x5e), w(0x15), w(0x46), \ ++ w(0x57), w(0xa7), w(0x8d), w(0x9d), w(0x84), w(0x90), w(0xd8), \ ++ w(0xab), w(0x00), w(0x8c), w(0xbc), w(0xd3), w(0x0a), w(0xf7), \ ++ w(0xe4), w(0x58), w(0x05), w(0xb8), w(0xb3), w(0x45), w(0x06), \ ++ w(0xd0), w(0x2c), w(0x1e), w(0x8f), w(0xca), w(0x3f), w(0x0f), \ ++ w(0x02), w(0xc1), w(0xaf), w(0xbd), w(0x03), w(0x01), w(0x13), \ ++ w(0x8a), w(0x6b), w(0x3a), w(0x91), w(0x11), w(0x41), w(0x4f), \ ++ w(0x67), w(0xdc), w(0xea), w(0x97), w(0xf2), w(0xcf), w(0xce), \ ++ w(0xf0), w(0xb4), w(0xe6), w(0x73), w(0x96), w(0xac), w(0x74), \ ++ w(0x22), w(0xe7), w(0xad), w(0x35), w(0x85), w(0xe2), w(0xf9), \ ++ w(0x37), w(0xe8), w(0x1c), w(0x75), w(0xdf), w(0x6e), w(0x47), \ ++ w(0xf1), w(0x1a), w(0x71), w(0x1d), w(0x29), w(0xc5), w(0x89), \ ++ w(0x6f), w(0xb7), w(0x62), w(0x0e), w(0xaa), w(0x18), w(0xbe), \ ++ w(0x1b), w(0xfc), w(0x56), w(0x3e), w(0x4b), w(0xc6), w(0xd2), \ ++ w(0x79), w(0x20), w(0x9a), w(0xdb), w(0xc0), w(0xfe), w(0x78), \ ++ w(0xcd), w(0x5a), w(0xf4), w(0x1f), w(0xdd), w(0xa8), w(0x33), \ ++ w(0x88), w(0x07), w(0xc7), w(0x31), w(0xb1), w(0x12), w(0x10), \ ++ w(0x59), w(0x27), w(0x80), w(0xec), w(0x5f), w(0x60), w(0x51), \ ++ w(0x7f), w(0xa9), w(0x19), w(0xb5), w(0x4a), w(0x0d), w(0x2d), \ ++ w(0xe5), w(0x7a), w(0x9f), w(0x93), w(0xc9), w(0x9c), w(0xef), \ ++ w(0xa0), w(0xe0), w(0x3b), w(0x4d), w(0xae), w(0x2a), w(0xf5), \ ++ w(0xb0), w(0xc8), w(0xeb), w(0xbb), w(0x3c), w(0x83), w(0x53), \ ++ w(0x99), w(0x61), w(0x17), w(0x2b), w(0x04), w(0x7e), w(0xba), \ ++ w(0x77), w(0xd6), w(0x26), w(0xe1), w(0x69), w(0x14), w(0x63), \ ++ w(0x55), w(0x21), w(0x0c), w(0x7d) \ ++ } ++/* clang-format on */ ++ ++/* X Macro trick. See https://en.wikipedia.org/wiki/X_Macro */ ++#define SSE2NEON_AES_H0(x) (x) ++static const uint8_t _sse2neon_sbox[256] = SSE2NEON_AES_SBOX(SSE2NEON_AES_H0); ++static const uint8_t _sse2neon_rsbox[256] = SSE2NEON_AES_RSBOX(SSE2NEON_AES_H0); ++#undef SSE2NEON_AES_H0 ++ ++/* x_time function and matrix multiply function */ ++#if !defined(__aarch64__) && !defined(_M_ARM64) ++#define SSE2NEON_XT(x) (((x) << 1) ^ ((((x) >> 7) & 1) * 0x1b)) ++#define SSE2NEON_MULTIPLY(x, y) \ ++ (((y & 1) * x) ^ ((y >> 1 & 1) * SSE2NEON_XT(x)) ^ \ ++ ((y >> 2 & 1) * SSE2NEON_XT(SSE2NEON_XT(x))) ^ \ ++ ((y >> 3 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))) ^ \ ++ ((y >> 4 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))))) ++#endif ++ ++// In the absence of crypto extensions, implement aesenc using regular NEON ++// intrinsics instead. See: ++// https://www.workofard.com/2017/01/accelerated-aes-for-the-arm64-linux-kernel/ ++// https://www.workofard.com/2017/07/ghash-for-low-end-cores/ and ++// for more information. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ /* shift rows */ ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ /* sub bytes */ ++ // Here, we separate the whole 256-bytes table into 4 64-bytes tables, and ++ // look up each of the table. After each lookup, we load the next table ++ // which locates at the next 64-bytes. In the meantime, the index in the ++ // table would be smaller than it was, so the index parameters of ++ // `vqtbx4q_u8()` need to be added the same constant as the loaded tables. ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ // 'w-0x40' equals to 'vsubq_u8(w, vdupq_n_u8(0x40))' ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ /* mix columns */ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ /* add round key */ ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A implementation for a table-based AES */ ++#define SSE2NEON_AES_B2W(b0, b1, b2, b3) \ ++ (((uint32_t) (b3) << 24) | ((uint32_t) (b2) << 16) | \ ++ ((uint32_t) (b1) << 8) | (uint32_t) (b0)) ++// multiplying 'x' by 2 in GF(2^8) ++#define SSE2NEON_AES_F2(x) ((x << 1) ^ (((x >> 7) & 1) * 0x011b /* WPOLY */)) ++// multiplying 'x' by 3 in GF(2^8) ++#define SSE2NEON_AES_F3(x) (SSE2NEON_AES_F2(x) ^ x) ++#define SSE2NEON_AES_U0(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F2(p), p, p, SSE2NEON_AES_F3(p)) ++#define SSE2NEON_AES_U1(p) \ ++ SSE2NEON_AES_B2W(SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p, p) ++#define SSE2NEON_AES_U2(p) \ ++ SSE2NEON_AES_B2W(p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p) ++#define SSE2NEON_AES_U3(p) \ ++ SSE2NEON_AES_B2W(p, p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p)) ++ ++ // this generates a table containing every possible permutation of ++ // shift_rows() and sub_bytes() with mix_columns(). ++ static const uint32_t ALIGN_STRUCT(16) aes_table[4][256] = { ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U0), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U1), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U2), ++ SSE2NEON_AES_SBOX(SSE2NEON_AES_U3), ++ }; ++#undef SSE2NEON_AES_B2W ++#undef SSE2NEON_AES_F2 ++#undef SSE2NEON_AES_F3 ++#undef SSE2NEON_AES_U0 ++#undef SSE2NEON_AES_U1 ++#undef SSE2NEON_AES_U2 ++#undef SSE2NEON_AES_U3 ++ ++ uint32_t x0 = _mm_cvtsi128_si32(a); // get a[31:0] ++ uint32_t x1 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); // get a[63:32] ++ uint32_t x2 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xAA)); // get a[95:64] ++ uint32_t x3 = ++ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); // get a[127:96] ++ ++ // finish the modulo addition step in mix_columns() ++ __m128i out = _mm_set_epi32( ++ (aes_table[0][x3 & 0xff] ^ aes_table[1][(x0 >> 8) & 0xff] ^ ++ aes_table[2][(x1 >> 16) & 0xff] ^ aes_table[3][x2 >> 24]), ++ (aes_table[0][x2 & 0xff] ^ aes_table[1][(x3 >> 8) & 0xff] ^ ++ aes_table[2][(x0 >> 16) & 0xff] ^ aes_table[3][x1 >> 24]), ++ (aes_table[0][x1 & 0xff] ^ aes_table[1][(x2 >> 8) & 0xff] ^ ++ aes_table[2][(x3 >> 16) & 0xff] ^ aes_table[3][x0 >> 24]), ++ (aes_table[0][x0 & 0xff] ^ aes_table[1][(x1 >> 8) & 0xff] ^ ++ aes_table[2][(x2 >> 16) & 0xff] ^ aes_table[3][x3 >> 24])); ++ ++ return _mm_xor_si128(out, RoundKey); ++#endif ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // inverse mix columns ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & ++ 0x1b); // multiplying 'v' by 2 in GF(2^8) ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(w) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ // inverse mix columns ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t shift_rows[] = { ++ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, ++ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); ++ ++ // sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A implementation */ ++ uint8_t v[16] = { ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 0)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 5)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 10)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 15)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 4)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 9)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 14)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 3)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 8)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 13)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 2)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 7)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 12)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 1)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 6)], ++ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 11)], ++ }; ++ ++ return vreinterpretq_m128i_u8(vld1q_u8(v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++#if defined(__aarch64__) ++ static const uint8_t inv_shift_rows[] = { ++ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, ++ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, ++ }; ++ ++ uint8x16_t v; ++ uint8x16_t w = vreinterpretq_u8_m128i(a); ++ ++ // inverse shift rows ++ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); ++ ++ // inverse sub bytes ++ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); ++ ++ // add round key ++ return vreinterpretq_m128i_u8(v) ^ RoundKey; ++ ++#else /* ARMv7-A NEON implementation */ ++ /* FIXME: optimized for NEON */ ++ uint8_t v[4][4]; ++ uint8_t *_a = (uint8_t *) &a; ++ for (int i = 0; i < 16; ++i) { ++ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; ++#endif ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++#if defined(__aarch64__) ++ static const uint8_t ror32by8[] = { ++ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, ++ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, ++ }; ++ uint8x16_t v = vreinterpretq_u8_m128i(a); ++ uint8x16_t w; ++ ++ // multiplying 'v' by 4 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); ++ v ^= w; ++ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); ++ ++ // multiplying 'v' by 2 in GF(2^8) ++ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); ++ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); ++ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); ++ return vreinterpretq_m128i_u8(w); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint8_t i, e, f, g, h, v[4][4]; ++ vst1q_u8((uint8_t *) v, vreinterpretq_u8_m128i(a)); ++ for (i = 0; i < 4; ++i) { ++ e = v[i][0]; ++ f = v[i][1]; ++ g = v[i][2]; ++ h = v[i][3]; ++ ++ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ ++ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); ++ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ ++ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); ++ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ ++ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); ++ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ ++ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); ++ } ++ ++ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)); ++#endif ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++// ++// Emits the Advanced Encryption Standard (AES) instruction aeskeygenassist. ++// This instruction generates a round key for AES encryption. See ++// https://kazakov.life/2017/11/01/cryptocurrency-mining-on-ios-devices/ ++// for details. ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++#if defined(__aarch64__) ++ uint8x16_t _a = vreinterpretq_u8_m128i(a); ++ uint8x16_t v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), _a); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), _a - 0x40); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), _a - 0x80); ++ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), _a - 0xc0); ++ ++ uint32x4_t v_u32 = vreinterpretq_u32_u8(v); ++ uint32x4_t ror_v = vorrq_u32(vshrq_n_u32(v_u32, 8), vshlq_n_u32(v_u32, 24)); ++ uint32x4_t ror_xor_v = veorq_u32(ror_v, vdupq_n_u32(rcon)); ++ ++ return vreinterpretq_m128i_u32(vtrn2q_u32(v_u32, ror_xor_v)); ++ ++#else /* ARMv7-A NEON implementation */ ++ uint32_t X1 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); ++ uint32_t X3 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); ++ for (int i = 0; i < 4; ++i) { ++ ((uint8_t *) &X1)[i] = _sse2neon_sbox[((uint8_t *) &X1)[i]]; ++ ((uint8_t *) &X3)[i] = _sse2neon_sbox[((uint8_t *) &X3)[i]]; ++ } ++ return _mm_set_epi32(((X3 >> 8) | (X3 << 24)) ^ rcon, X3, ++ ((X1 >> 8) | (X1 << 24)) ^ rcon, X1); ++#endif ++} ++#undef SSE2NEON_AES_SBOX ++#undef SSE2NEON_AES_RSBOX ++ ++#if defined(__aarch64__) ++#undef SSE2NEON_XT ++#undef SSE2NEON_MULTIPLY ++#endif ++ ++#else /* __ARM_FEATURE_CRYPTO */ ++// Implements equivalent of 'aesenc' by combining AESE (with an empty key) and ++// AESMC and then manually applying the real key as an xor operation. This ++// unfortunately means an additional xor op; the compiler should be able to ++// optimize this away for repeated calls however. See ++// https://blog.michaelbrase.com/2018/05/08/emulating-x86-aes-intrinsics-on-armv8-a ++// for more details. ++FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i b) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesmcq_u8(vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(b))); ++} ++ ++// Perform one round of an AES decryption flow on data (state) in a using the ++// round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 ++FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8(veorq_u8( ++ vaesimcq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the last round of an AES encryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 ++FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return _mm_xor_si128(vreinterpretq_m128i_u8(vaeseq_u8( ++ vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), ++ RoundKey); ++} ++ ++// Perform the last round of an AES decryption flow on data (state) in a using ++// the round key in RoundKey, and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 ++FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) ++{ ++ return vreinterpretq_m128i_u8( ++ veorq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)), ++ vreinterpretq_u8_m128i(RoundKey))); ++} ++ ++// Perform the InvMixColumns transformation on a and store the result in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 ++FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) ++{ ++ return vreinterpretq_m128i_u8(vaesimcq_u8(vreinterpretq_u8_m128i(a))); ++} ++ ++// Assist in expanding the AES cipher key by computing steps towards generating ++// a round key for encryption cipher using data from a and an 8-bit round ++// constant specified in imm8, and store the result in dst." ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 ++FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) ++{ ++ // AESE does ShiftRows and SubBytes on A ++ uint8x16_t u8 = vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)); ++ ++#if !defined(_MSC_VER) || defined(__clang__) ++ uint8x16_t dest = { ++ // Undo ShiftRows step from AESE and extract X1 and X3 ++ u8[0x4], u8[0x1], u8[0xE], u8[0xB], // SubBytes(X1) ++ u8[0x1], u8[0xE], u8[0xB], u8[0x4], // ROT(SubBytes(X1)) ++ u8[0xC], u8[0x9], u8[0x6], u8[0x3], // SubBytes(X3) ++ u8[0x9], u8[0x6], u8[0x3], u8[0xC], // ROT(SubBytes(X3)) ++ }; ++ uint32x4_t r = {0, (unsigned) rcon, 0, (unsigned) rcon}; ++ return vreinterpretq_m128i_u8(dest) ^ vreinterpretq_m128i_u32(r); ++#else ++ // We have to do this hack because MSVC is strictly adhering to the CPP ++ // standard, in particular C++03 8.5.1 sub-section 15, which states that ++ // unions must be initialized by their first member type. ++ ++ // As per the Windows ARM64 ABI, it is always little endian, so this works ++ __n128 dest{ ++ ((uint64_t) u8.n128_u8[0x4] << 0) | ((uint64_t) u8.n128_u8[0x1] << 8) | ++ ((uint64_t) u8.n128_u8[0xE] << 16) | ++ ((uint64_t) u8.n128_u8[0xB] << 24) | ++ ((uint64_t) u8.n128_u8[0x1] << 32) | ++ ((uint64_t) u8.n128_u8[0xE] << 40) | ++ ((uint64_t) u8.n128_u8[0xB] << 48) | ++ ((uint64_t) u8.n128_u8[0x4] << 56), ++ ((uint64_t) u8.n128_u8[0xC] << 0) | ((uint64_t) u8.n128_u8[0x9] << 8) | ++ ((uint64_t) u8.n128_u8[0x6] << 16) | ++ ((uint64_t) u8.n128_u8[0x3] << 24) | ++ ((uint64_t) u8.n128_u8[0x9] << 32) | ++ ((uint64_t) u8.n128_u8[0x6] << 40) | ++ ((uint64_t) u8.n128_u8[0x3] << 48) | ++ ((uint64_t) u8.n128_u8[0xC] << 56)}; ++ ++ dest.n128_u32[1] = dest.n128_u32[1] ^ rcon; ++ dest.n128_u32[3] = dest.n128_u32[3] ^ rcon; ++ ++ return dest; ++#endif ++} ++#endif ++ ++/* Others */ ++ ++// Perform a carry-less multiplication of two 64-bit integers, selected from a ++// and b according to imm8, and store the results in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clmulepi64_si128 ++FORCE_INLINE __m128i _mm_clmulepi64_si128(__m128i _a, __m128i _b, const int imm) ++{ ++ uint64x2_t a = vreinterpretq_u64_m128i(_a); ++ uint64x2_t b = vreinterpretq_u64_m128i(_b); ++ switch (imm & 0x11) { ++ case 0x00: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_low_u64(b))); ++ case 0x01: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_low_u64(b))); ++ case 0x10: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_low_u64(a), vget_high_u64(b))); ++ case 0x11: ++ return vreinterpretq_m128i_u64( ++ _sse2neon_vmull_p64(vget_high_u64(a), vget_high_u64(b))); ++ default: ++ abort(); ++ } ++} ++ ++FORCE_INLINE unsigned int _sse2neon_mm_get_denormals_zero_mode(void) ++{ ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ return r.field.bit24 ? _MM_DENORMALS_ZERO_ON : _MM_DENORMALS_ZERO_OFF; ++} ++ ++// Count the number of bits set to 1 in unsigned 32-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u32 ++FORCE_INLINE int _mm_popcnt_u32(unsigned int a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcount) ++ return __builtin_popcount(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits(a); ++#else ++ return (int) vaddlv_u8(vcnt_u8(vcreate_u8((uint64_t) a))); ++#endif ++#else ++ uint32_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ ++ vst1_u32(&count, count32x2_val); ++ return count; ++#endif ++} ++ ++// Count the number of bits set to 1 in unsigned 64-bit integer a, and ++// return that count in dst. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u64 ++FORCE_INLINE int64_t _mm_popcnt_u64(uint64_t a) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++#if __has_builtin(__builtin_popcountll) ++ return __builtin_popcountll(a); ++#elif defined(_MSC_VER) ++ return _CountOneBits64(a); ++#else ++ return (int64_t) vaddlv_u8(vcnt_u8(vcreate_u8(a))); ++#endif ++#else ++ uint64_t count = 0; ++ uint8x8_t input_val, count8x8_val; ++ uint16x4_t count16x4_val; ++ uint32x2_t count32x2_val; ++ uint64x1_t count64x1_val; ++ ++ input_val = vld1_u8((uint8_t *) &a); ++ count8x8_val = vcnt_u8(input_val); ++ count16x4_val = vpaddl_u8(count8x8_val); ++ count32x2_val = vpaddl_u16(count16x4_val); ++ count64x1_val = vpaddl_u32(count32x2_val); ++ vst1_u64(&count, count64x1_val); ++ return count; ++#endif ++} ++ ++FORCE_INLINE_OPTNONE void _sse2neon_mm_set_denormals_zero_mode( ++ unsigned int flag) ++{ ++ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, ++ // regardless of the value of the FZ bit. ++ union { ++ fpcr_bitfield field; ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t value; ++#else ++ uint32_t value; ++#endif ++ } r; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ r.value = _sse2neon_get_fpcr(); ++#else ++ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ ++#endif ++ ++ r.field.bit24 = (flag & _MM_DENORMALS_ZERO_MASK) == _MM_DENORMALS_ZERO_ON; ++ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ _sse2neon_set_fpcr(r.value); ++#else ++ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ ++#endif ++} ++ ++// Return the current 64-bit value of the processor's time-stamp counter. ++// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=rdtsc ++FORCE_INLINE uint64_t _rdtsc(void) ++{ ++#if defined(__aarch64__) || defined(_M_ARM64) ++ uint64_t val; ++ ++ /* According to ARM DDI 0487F.c, from Armv8.0 to Armv8.5 inclusive, the ++ * system counter is at least 56 bits wide; from Armv8.6, the counter ++ * must be 64 bits wide. So the system counter could be less than 64 ++ * bits wide and it is attributed with the flag 'cap_user_time_short' ++ * is true. ++ */ ++#if defined(_MSC_VER) && !defined(__clang__) ++ val = _ReadStatusReg(ARM64_SYSREG(3, 3, 14, 0, 2)); ++#else ++ __asm__ __volatile__("mrs %0, cntvct_el0" : "=r"(val)); ++#endif ++ ++ return val; ++#else ++ uint32_t pmccntr, pmuseren, pmcntenset; ++ // Read the user mode Performance Monitoring Unit (PMU) ++ // User Enable Register (PMUSERENR) access permissions. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c14, 0" : "=r"(pmuseren)); ++ if (pmuseren & 1) { // Allows reading PMUSERENR for user mode code. ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c12, 1" : "=r"(pmcntenset)); ++ if (pmcntenset & 0x80000000UL) { // Is it counting? ++ __asm__ __volatile__("mrc p15, 0, %0, c9, c13, 0" : "=r"(pmccntr)); ++ // The counter is set up to count every 64th cycle ++ return (uint64_t) (pmccntr) << 6; ++ } ++ } ++ ++ // Fallback to syscall as we can't enable PMUSERENR in user mode. ++ struct timeval tv; ++ gettimeofday(&tv, NULL); ++ return (uint64_t) (tv.tv_sec) * 1000000 + tv.tv_usec; ++#endif ++} ++ ++#if defined(__GNUC__) || defined(__clang__) ++#pragma pop_macro("ALIGN_STRUCT") ++#pragma pop_macro("FORCE_INLINE") ++#pragma pop_macro("FORCE_INLINE_OPTNONE") ++#endif ++ ++#if defined(__GNUC__) && !defined(__clang__) ++#pragma GCC pop_options ++#endif ++ ++#endif +diff --git c/src/stdinclude.h i/src/stdinclude.h +index 2b8f6d3..7802321 100644 +--- c/src/stdinclude.h ++++ i/src/stdinclude.h +@@ -6,11 +6,16 @@ + #include + #include + #include +-#include + #include + #include "pthread.h" + #include "ProgressBar.hpp" + ++#ifdef __ARM_NEON ++#include "sse2neon.h" ++#else ++#include ++#endif ++ + #if defined _WIN32 || defined _WIN64 + #else + #include From 2f03d16161c1f29b9e1e43c210c827942586b81b Mon Sep 17 00:00:00 2001 From: Patrik Smeds Date: Mon, 12 Aug 2024 17:57:09 +0200 Subject: [PATCH 1200/1514] feat: add recipe for tool dna-nn (#49953) * feat: add recipe for tool dna-nn * clean up recipe * edit meta.yaml * fix: handle failing test --------- Co-authored-by: mencian --- recipes/dna-nn/build.sh | 19 ++++++++++++++++++ recipes/dna-nn/meta.yaml | 42 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 recipes/dna-nn/build.sh create mode 100644 recipes/dna-nn/meta.yaml diff --git a/recipes/dna-nn/build.sh b/recipes/dna-nn/build.sh new file mode 100644 index 0000000000000..bfca91f0ebf92 --- /dev/null +++ b/recipes/dna-nn/build.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +set -x -e + +export CPATH=${PREFIX}/include + +mkdir -p "${PREFIX}/bin" + +make -j"${CPU_COUNT}" + +chmod 0755 dna-brnn +chmod 0755 dna-cnn +chmod 0755 gen-fq +chmod 0755 parse-rm.js + +cp -rf dna-brnn "${PREFIX}/bin" +cp -rf dna-cnn "${PREFIX}/bin" +cp -rf gen-fq "${PREFIX}/bin" +cp -rf parse-rm.js "${PREFIX}/bin" diff --git a/recipes/dna-nn/meta.yaml b/recipes/dna-nn/meta.yaml new file mode 100644 index 0000000000000..7e6edcd2f38a2 --- /dev/null +++ b/recipes/dna-nn/meta.yaml @@ -0,0 +1,42 @@ +{% set version = "0.1" %} +{% set name = "dna-nn" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/lh3/dna-nn/archive/refs/tags/v{{ version }}.tar.gz + sha256: bac26a25ad9e0315351b170bc33ab4e41b7573818fd9527b661f882b96ae0a8a + +build: + number: 0 + run_exports: + - {{ pin_subpackage("dna-nn", max_pin="x.x") }} + +requirements: + build: + - make + - {{ compiler('cxx') }} + - zlib # zlib needed in build to build correctly + host: + - zlib + run: + - k8 + +test: + commands: + - echo $(dna-brnn 2>&1) | grep "dna-brnn" + - echo $(dna-cnn 2>&1) | grep "dna-cnn" + - echo $(gen-fq 2>&1) | grep "gen-fq" + - echo $(parse-rm.js 2>&1) | grep "k8 parse-rm" + +about: + home: "https://github.com/lh3/dna-nn" + dev_url: "https://github.com/lh3/dna-nn" + license: Unknown + summary: "Model and predict short DNA sequence features with neural networks." + +extra: + recipe-maintainers: + - smeds From d44b4d3267a3f0bd9dc4d1b3617c3f68d60b5918 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 12 Aug 2024 11:57:40 -0400 Subject: [PATCH 1201/1514] Update quantms-utils to 0.0.6 (#49989) * Update quantms-utils to 0.0.6 * Fix version of scipy because of a bug. --------- Co-authored-by: Yasset Perez-Riverol --- recipes/quantms-utils/meta.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/recipes/quantms-utils/meta.yaml b/recipes/quantms-utils/meta.yaml index 9adab27093c22..c78e7a934c13a 100644 --- a/recipes/quantms-utils/meta.yaml +++ b/recipes/quantms-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "quantms-utils" %} -{% set version = "0.0.5" %} +{% set version = "0.0.6" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/quantms_utils-{{ version }}.tar.gz - sha256: 068625b5d5ca37255b5f108fd52cf31a73387b4660ca6284bcf5853268b9a32a + sha256: 9f94df1f1301e09399327cec746ae95b71f150917f4237124f52d1dcc972b173 build: entry_points: @@ -34,6 +34,9 @@ requirements: - deeplc ==2.2.38 - pandas >=1.0.0 - numpy + - scipy ==1.13.1 + - scikit-learn + - deeplcretrainer test: imports: From d7d0766b23b9beaf08faafa5a38906590e2d853c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 12 Aug 2024 11:59:34 -0400 Subject: [PATCH 1202/1514] Update solvebio to 2.29.0 (#49990) --- recipes/solvebio/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/solvebio/meta.yaml b/recipes/solvebio/meta.yaml index 03cd78b807a48..58237e1c5466f 100644 --- a/recipes/solvebio/meta.yaml +++ b/recipes/solvebio/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "2.28.0" %} -{% set sha256 = "e7135df9c67eebaa34b54ce2f400d78a7e38b60c65185e8822b6987083baca8d" %} +{% set version = "2.29.0" %} +{% set sha256 = "acdee37cc65dd173cb9b3a6704444d589218610aad1aee8e1d4af7d884c63033" %} package: name: solvebio From 43404d6c390f7a8b0743bcf024455e3b374673bb Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 12 Aug 2024 16:49:22 -0400 Subject: [PATCH 1203/1514] Update lsabgc to 1.0.7 (#49993) --- recipes/lsabgc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/lsabgc/meta.yaml b/recipes/lsabgc/meta.yaml index 97513540544b9..0d5a6bc94916a 100644 --- a/recipes/lsabgc/meta.yaml +++ b/recipes/lsabgc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "lsabgc" %} -{% set version = "1.0.6" %} +{% set version = "1.0.7" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Kalan-Lab/lsaBGC-Pan/archive/refs/tags/v{{ version }}.tar.gz - sha256: d8511975151b5ed53c6268bdbca915bb4398e216be84e8a91729db2f13a422e8 + sha256: 09f95491a6a95a4ba4e8d2ee42ec87e09c7e5aa380fde73a11b4881bdb7b58fc build: number: 0 From 11fa3345f701bea883a22363d060a9b083abd7d9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 12 Aug 2024 18:42:05 -0400 Subject: [PATCH 1204/1514] Update ipyrad to 0.9.97 (#49992) --- recipes/ipyrad/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ipyrad/meta.yaml b/recipes/ipyrad/meta.yaml index 9b46a7831e71e..74569df372f29 100644 --- a/recipes/ipyrad/meta.yaml +++ b/recipes/ipyrad/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ipyrad" %} -{% set version = "0.9.96" %} -{% set sha256 = "88bbaa820ad8b3626553c9d114a3a3f09fb35b15bff33b4b9a5b3d4e69ddb8cd" %} +{% set version = "0.9.97" %} +{% set sha256 = "34e039612f7855fab71cd4741582617abddb879241a9a15bae4b7c0593d889e8" %} package: name: {{ name }} From dcf3c2ff77ae868ecc861c48c9e5a9ac6f8331f4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 12 Aug 2024 18:42:16 -0400 Subject: [PATCH 1205/1514] Update solvebio to 2.29.1 (#49991) --- recipes/solvebio/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/solvebio/meta.yaml b/recipes/solvebio/meta.yaml index 58237e1c5466f..da8e049db6098 100644 --- a/recipes/solvebio/meta.yaml +++ b/recipes/solvebio/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "2.29.0" %} -{% set sha256 = "acdee37cc65dd173cb9b3a6704444d589218610aad1aee8e1d4af7d884c63033" %} +{% set version = "2.29.1" %} +{% set sha256 = "e5e1e6eb044fb8300b64af768e1a1cae8ee66d665b55190daa44ec2489f7a2a6" %} package: name: solvebio From 1a84b0388ce1d6bb144447f4dc16edbd5ecbec4e Mon Sep 17 00:00:00 2001 From: huangyh45 <116069282+huangyh45@users.noreply.github.com> Date: Tue, 13 Aug 2024 13:03:30 +0800 Subject: [PATCH 1206/1514] Add phyloaln (#49966) * Add phyloaln * Add phyloaln * Add phyloaln * Add phyloaln --- recipes/phyloaln/build.sh | 8 ++++++ recipes/phyloaln/meta.yaml | 51 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 recipes/phyloaln/build.sh create mode 100644 recipes/phyloaln/meta.yaml diff --git a/recipes/phyloaln/build.sh b/recipes/phyloaln/build.sh new file mode 100644 index 0000000000000..1832c18446a37 --- /dev/null +++ b/recipes/phyloaln/build.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +set -xe + +mkdir -p $PREFIX/bin +cp -rf $SRC_DIR/lib $PREFIX/bin +cp $SRC_DIR/PhyloAln $PREFIX/bin +cp -rf $SRC_DIR/scripts/* $PREFIX/bin diff --git a/recipes/phyloaln/meta.yaml b/recipes/phyloaln/meta.yaml new file mode 100644 index 0000000000000..59022155f358e --- /dev/null +++ b/recipes/phyloaln/meta.yaml @@ -0,0 +1,51 @@ +{% set version = "1.0.0" %} +{% set sha256 = "e10ed2b344bff8b10a4334fd8d1d9d108104f6d1395bb50828edd78b82cdca5b" %} + +package: + name: phyloaln + version: "{{ version }}" +source: + url: https://github.com/huangyh45/PhyloAln/archive/refs/tags/v{{ version }}.tar.gz + sha256: {{ sha256 }} + +build: + number: 0 + noarch: generic + run_exports: + - {{ pin_subpackage('phyloaln', max_pin='x') }} + +requirements: + run: + - biopython >=1.77 + - ete3 >=3.1.2 + - hmmer >=3.1 + - mafft >=7.467 + - perl >=5.26.2 + - perl-bioperl >=1.7.2 + - perl-parallel-forkmanager >=2.02 + - python >=3.7.4 + +test: + commands: + - PhyloAln -h + - hmmbuild -h + - hmmsearch -h + - merge_seqs.py -h + - root_tree.py -h + - select_seqs.py -h + - test_effect.py -h + - trim_matrix.py -h + - perl -MBio::SeqIO -e 1 + - perl -MBio::DB::Fasta -e 1 + - perl -MParallel::ForkManager -e 1 + - mafft --version + +about: + home: https://github.com/huangyh45/PhyloAln + license: MIT + license_file: LICENSE + summary: "PhyloAln: a reference-based multiple sequence alignment tool for phylogeny" + +extra: + identifiers: + - doi:10.1093/molbev/msae150 From d5bed71a7c7707d880ef8b37031f4562386988c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vincent=20No=C3=ABl?= Date: Tue, 13 Aug 2024 02:06:44 -0300 Subject: [PATCH 1207/1514] Libsbml update to 5.20.4, added OSX support (#49939) * Updated build script to add new packages and make macos compatible * Updated to libsbml 5.20.4, changed source to github * removed bzip2 and zlib run requirements * Removed last error log * Added conda build config with libxml2 variants and proper pin * Reset build number to 0 * Only running test command on linux * Added license.txt from libsbml repo * running the test command also on the osx library Co-authored-by: Martin Grigorov --------- Co-authored-by: Martin Grigorov --- recipes/libsbml/LICENSE.txt | 167 ++++++++++++++++++++ recipes/libsbml/build.sh | 19 ++- recipes/libsbml/build_failure.linux-64.yaml | 105 ------------ recipes/libsbml/conda_build_config.yaml | 7 + recipes/libsbml/meta.yaml | 16 +- 5 files changed, 198 insertions(+), 116 deletions(-) create mode 100644 recipes/libsbml/LICENSE.txt delete mode 100644 recipes/libsbml/build_failure.linux-64.yaml create mode 100644 recipes/libsbml/conda_build_config.yaml diff --git a/recipes/libsbml/LICENSE.txt b/recipes/libsbml/LICENSE.txt new file mode 100644 index 0000000000000..91d790aa62342 --- /dev/null +++ b/recipes/libsbml/LICENSE.txt @@ -0,0 +1,167 @@ + Licensing and Distribution Terms for libSBML + +The majority of libSBML is copyrighted as follows: + +* Copyright (C) 2013-2018 jointly by the following organizations: + 1. California Institute of Technology, Pasadena, CA, USA + 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK + 3. University of Heidelberg, Heidelberg, Germany + +* Copyright (C) 2009-2013 jointly by the following organizations: + 1. California Institute of Technology, Pasadena, CA, USA + 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK + +* Copyright (C) 2006-2008 by the California Institute of Technology, + Pasadena, CA, USA + +* Copyright (C) 2002-2005 jointly by the following organizations: + 1. California Institute of Technology, Pasadena, CA, USA + 2. Japan Science and Technology Agency, Japan + +Portions of the source code comprising libSBML were copyrighted +and contributed by third parties, and placed under the same LGPL +2.1 license as the rest of libSBML. The following are their +copyright statements: + +* Copyright (C) 2004-2008 by European Media Laboratories Research + gGmbH, Heidelberg, Germany. (For the "SBML Layout" code.) + +LibSBML is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation; either version 2.1 of +the License, or any later version. + +This software is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF +MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. The software +and documentation provided hereunder is on an "as is" basis, and +the copyright holders have no obligations to provide maintenance, +support, updates, enhancements or modifications. In no event +shall the copyright holders be liable to any party for direct, +indirect, special, incidental or consequential damages, including +lost profits, arising out of the use of this software and its +documentation, even if the copyright holders have been advised of +the possibility of such damage. See the GNU Lesser General Public +License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library in the file named "COPYING.txt" +included with the software distribution. A copy is also +available online at the Internet address +http://sbml.org/software/libsbml/COPYING.html for your +convenience. You may also write to obtain a copy from the Free +Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +MA 02110-1301, USA. + + + Third-party software incorporated into both the libSBML + binary and source-code distributions + +LibSBML incorporates an open-source compression library written by +a third party. The following is information about the copyright +and distribution terms of this library: + +* MiniZip 1.01e, copyright (C) 1998-2005 Gilles Vollant, released + under terms compatible with the LGPL. Please see the file + src/sbml/compress/00README.txt for more information about + MiniZip 1.01e and its license terms. + + + Additional third-party software incorporated only + into the libSBML source code distribution + +Additional software is used to produce the documentation of +libSBML. The binary distributions of libSBML do not include this +software; they are only present in the source code distribution +and the libSBML documentation archives. + +* Argparse 1.2.1, copyright (C) 2006-2009 Steven J. Bethard + and distributed under the Python Software + Foundation License version 2. Code downloaded from + http://code.google.com/p/argparse/ on 2012-02-10. + +* Google Code Prettify, distributed under the terms of the + Apache License Version 2.0, January 2004. Code downloaded from + http://code.google.com/p/google-code-prettify/ on 2013-10-16. + +* PrettyTable, copyright (C) 2009-2013 Luke Maurits, distributed + under the following BSD-derivative license: + + Copyright (c) 2009-2013 Luke Maurits + All rights reserved. + With contributions from: + * Chris Clark + * Christoph Robbert + * Klein Stephane + * "maartendb" + + Redistribution and use in source and binary forms, with or + without modification, are permitted provided that the + following conditions are met: + + * Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other + materials provided with the distribution. + + * The name of the author may not be used to endorse or + promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +* ExcludeDoclet, copyright (C) 2004 by Sun Microsystems, Inc., and + distributed under the following open-source terms: + + Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. + + Redistribution and use in source and binary forms, with or + without modification, are permitted provided that the + following conditions are met: + + - Redistribution of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + - Redistribution in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. Neither the name of Sun Microsystems, + Inc. nor the names of contributors may be used to endorse or + promote products derived from this software without specific + prior written permission. + + This software is provided "AS IS," without a warranty of any + kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND + WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE + HEREBY EXCLUDED. SUN MICROSYSTEMS, INC. ("SUN") AND ITS + LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY + LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS + SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS + LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR + FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR + PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY + OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE + THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY + OF SUCH DAMAGES. + + You acknowledge that this software is not designed, licensed + or intended for use in the design, construction, operation or + maintenance of any nuclear facility. diff --git a/recipes/libsbml/build.sh b/recipes/libsbml/build.sh index 7b3b0d2884b8b..6e3bbfb5c8b2d 100644 --- a/recipes/libsbml/build.sh +++ b/recipes/libsbml/build.sh @@ -1,21 +1,36 @@ #!/bin/bash mkdir build cd build + +declare -a CMAKE_LIBXML_LIBRARY +if [[ ${target_platform} == osx-64 ]]; then + CMAKE_LIBXML_LIBRARY+=(-DLIBXML_LIBRARY="${PREFIX}"/lib/libxml2.dylib) +elif [[ ${target_platform} == linux-64 ]]; then + CMAKE_LIBXML_LIBRARY+=(-DLIBXML_LIBRARY="${PREFIX}"/lib/libxml2.so) +fi + cmake -DCMAKE_INSTALL_PREFIX=${PREFIX} \ -DCMAKE_INSTALL_LIBDIR=${PREFIX}/lib \ -DCMAKE_CXX_COMPILER=${CXX} \ -DCMAKE_C_COMPILER=${CC} \ + -DCMAKE_CXX_STANDARD_LIBRARIES=-lxml2 \ -DWITH_SWIG=OFF \ - -DLIBSBML_DEPENDENCY_DIR="${PREFIX}" \ + "${CMAKE_LIBXML_LIBRARY[@]}" \ -DLIBXML_INCLUDE_DIR=${PREFIX}/include/libxml2 \ -DENABLE_COMP=ON \ -DENABLE_FBC=ON \ -DENABLE_GROUPS=ON \ - -DENABLE_L3V2EXTENDEDMATH=ON \ -DENABLE_LAYOUT=ON \ -DENABLE_MULTI=ON \ -DENABLE_QUAL=ON \ -DENABLE_RENDER=ON \ + -DENABLE_DISTRIB=ON \ + -DENABLE_ARRAYS=ON \ + -DENABLE_DYN=ON \ + -DENABLE_REQUIREDELEMENTS=ON \ + -DENABLE_SPATIAL=ON \ + -DWITH_CPP_NAMESPACE=ON \ .. + make -j"${CPU_COUNT}" make install diff --git a/recipes/libsbml/build_failure.linux-64.yaml b/recipes/libsbml/build_failure.linux-64.yaml deleted file mode 100644 index 7172757f203aa..0000000000000 --- a/recipes/libsbml/build_failure.linux-64.yaml +++ /dev/null @@ -1,105 +0,0 @@ -recipe_sha: 11a10c25d366c5890bbb2c3d3c0f43403d43e7af7937559a8b3e620fc3593de8 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -category: compiler error -log: |2- - | ^~~~~~~~~~~~~~ - In file included from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/FunctionDefinition.h:136, - from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/Model.h:449, - from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/validator/constraints/UniqueVarsInRules.cpp:39: - /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/ListOf.h:111:27: warning: 'template struct std::unary_function' is deprecated [-Wdeprecated-declarations] - 111 | struct IdEq : public std::unary_function - | ^~~~~~~~~~~~~~ - In file included from /opt/conda/conda-bld/libsbml_1718134461495/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/string:48, - from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/Model.h:447: - /opt/conda/conda-bld/libsbml_1718134461495/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_function.h:117:12: note: declared here - 117 | struct unary_function - | ^~~~~~~~~~~~~~ - In file included from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/FunctionDefinition.h:136, - from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/Model.h:449, - from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/validator/constraints/UnitsBase.cpp:39: - /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/ListOf.h:111:27: warning: 'template struct std::unary_function' is deprecated [-Wdeprecated-declarations] - 111 | struct IdEq : public std::unary_function - | ^~~~~~~~~~~~~~ - In file included from /opt/conda/conda-bld/libsbml_1718134461495/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/string:48, - from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/Model.h:447: - /opt/conda/conda-bld/libsbml_1718134461495/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_function.h:117:12: note: declared here - 117 | struct unary_function - | ^~~~~~~~~~~~~~ - [ 95%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/compress/CompressCommon.cpp.o - [ 95%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/compress/InputDecompressor.cpp.o - [ 95%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/compress/bzfstream.cpp.o - [ 95%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/compress/OutputCompressor.cpp.o - In file included from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/FunctionDefinition.h:136, - from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/Model.h:449, - from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/validator/constraints/ValidCnUnitsValue.cpp:39: - /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/ListOf.h:111:27: warning: 'template struct std::unary_function' is deprecated [-Wdeprecated-declarations] - 111 | struct IdEq : public std::unary_function - | ^~~~~~~~~~~~~~ - In file included from /opt/conda/conda-bld/libsbml_1718134461495/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/string:48, - from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/Model.h:447: - /opt/conda/conda-bld/libsbml_1718134461495/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_function.h:117:12: note: declared here - 117 | struct unary_function - | ^~~~~~~~~~~~~~ - [ 95%] Building C object src/CMakeFiles/sbml-static.dir/sbml/compress/zip.c.o - [ 95%] Building C object src/CMakeFiles/sbml-static.dir/sbml/compress/unzip.c.o - [ 95%] Building C object src/CMakeFiles/sbml-static.dir/sbml/compress/ioapi.c.o - [ 96%] Building C object src/CMakeFiles/sbml-static.dir/sbml/compress/ioapi_mem.c.o - [ 96%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/compress/zfstream.cpp.o - [ 96%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/compress/zipfstream.cpp.o - [ 96%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLAttributes.cpp.o - [ 96%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLBuffer.cpp.o - [ 96%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLConstructorException.cpp.o - [ 96%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLError.cpp.o - [ 96%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLErrorLog.cpp.o - [ 97%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLLogOverride.cpp.o - /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/xml/XMLErrorLog.cpp:98:24: warning: 'template struct std::unary_function' is deprecated [-Wdeprecated-declarations] - 98 | struct Delete : public unary_function - | ^~~~~~~~~~~~~~ - In file included from /opt/conda/conda-bld/libsbml_1718134461495/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/functional:49, - from /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/xml/XMLErrorLog.cpp:38: - /opt/conda/conda-bld/libsbml_1718134461495/_build_env/x86_64-conda-linux-gnu/include/c/12.3.0/bits/stl_function.h:117:12: note: declared here - 117 | struct unary_function - | ^~~~~~~~~~~~~~ - [ 97%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLFileBuffer.cpp.o - [ 97%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLHandler.cpp.o - [ 97%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLInputStream.cpp.o - [ 97%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLMemoryBuffer.cpp.o - [ 97%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLNamespaces.cpp.o - [ 97%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLNode.cpp.o - [ 97%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLOutputStream.cpp.o - [ 97%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLParser.cpp.o - [ 98%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLToken.cpp.o - [ 98%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLTokenizer.cpp.o - [ 98%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/XMLTriple.cpp.o - [ 98%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/LibXMLAttributes.cpp.o - [ 98%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/LibXMLHandler.cpp.o - [ 98%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/LibXMLNamespaces.cpp.o - [ 98%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/LibXMLParser.cpp.o - [ 98%] Building CXX object src/CMakeFiles/sbml-static.dir/sbml/xml/LibXMLTranscode.cpp.o - /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/xml/LibXMLParser.cpp: In member function 'virtual bool LibXMLParser::parseNext()': - /opt/conda/conda-bld/libsbml_1718134461495/work/src/sbml/xml/LibXMLParser.cpp:422:46: error: invalid conversion from 'const xmlError*' {aka 'const _xmlError*'} to 'xmlErrorPtr' {aka '_xmlError*'} [-fpermissive] - 422 | xmlErrorPtr libxmlError = xmlGetLastError(); - | ~~~~~~~~~~~~~~~^~ - | | - | const xmlError* {aka const _xmlError*} - make[2]: *** [src/CMakeFiles/sbml-static.dir/build.make:6082: src/CMakeFiles/sbml-static.dir/sbml/xml/LibXMLParser.cpp.o] Error 1 - make[2]: *** Waiting for unfinished jobs.... - make[1]: *** [CMakeFiles/Makefile2:242: src/CMakeFiles/sbml-static.dir/all] Error 2 - make: *** [Makefile:156: all] Error 2 - Traceback (most recent call last): - File "/opt/conda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/conda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/conda/conda-bld/libsbml_1718134461495/work/conda_build.sh']' returned non-zero exit status 2. -# Last 100 lines of the build log. diff --git a/recipes/libsbml/conda_build_config.yaml b/recipes/libsbml/conda_build_config.yaml new file mode 100644 index 0000000000000..8c1d84a5c606c --- /dev/null +++ b/recipes/libsbml/conda_build_config.yaml @@ -0,0 +1,7 @@ +libxml2: + - 2.9 # [linux] + - 2.10 + - 2.11 + - 2.12 +pin_run_as_build: + libxml2: x.x diff --git a/recipes/libsbml/meta.yaml b/recipes/libsbml/meta.yaml index 45ced1405a863..dd15bca255367 100644 --- a/recipes/libsbml/meta.yaml +++ b/recipes/libsbml/meta.yaml @@ -1,18 +1,17 @@ -{% set version = "5.18.0" %} -{% set sha256 = "6c01be2306ec0c9656b59cb082eb7b90176c39506dd0f912b02e08298a553360" %} +{% set version = "5.20.4" %} +{% set sha256 = "02c225d3513e1f5d6e3c0168456f568e67f006eddaab82f09b4bdf0d53d2050e" %} package: name: libsbml version: {{ version }} build: - number: 11 - skip: True # [osx] + number: 0 run_exports: - {{ pin_subpackage('libsbml', max_pin='x.x') }} source: - url: https://sourceforge.net/projects/sbml/files/libsbml/{{ version }}/stable/libSBML-{{ version }}-core-plus-packages-src.tar.gz + url: https://github.com/sbmlteam/libsbml/archive/refs/tags/v{{ version }}.tar.gz sha256: {{ sha256 }} requirements: @@ -26,13 +25,12 @@ requirements: - libxml2 - zlib run: - - bzip2 - libxml2 - - zlib - + test: commands: - - test -f "${PREFIX}/lib/libsbml${SHLIB_EXT-.so}" + - test -f "${PREFIX}/lib/libsbml${SHLIB_EXT-.so}" # [linux] + - test -f "${PREFIX}/lib/libsbml${SHLIB_EXT-.dylib}" # [osx] about: home: http://sbml.org/Software/libSBML From 77efb5a03e292e64cf0caf36aa5b935e84881eeb Mon Sep 17 00:00:00 2001 From: "UENO, M." Date: Tue, 13 Aug 2024 14:07:33 +0900 Subject: [PATCH 1208/1514] Pdbx v1.0.0 for ARM platforms (#49970) * Add meta.yaml and build.sh * Update meta.yaml * Update meta.yaml * Add sha256 checksum * Remove unused comments * Update build.sh * Add license info * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Prepare builds for ARM platforms * Update test section in meta.yaml * Fix test section in meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update build.sh * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml --- recipes/pdbx/build.sh | 1 + recipes/pdbx/meta.yaml | 16 +++++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/recipes/pdbx/build.sh b/recipes/pdbx/build.sh index 6945b07878f50..0ba07c5223114 100644 --- a/recipes/pdbx/build.sh +++ b/recipes/pdbx/build.sh @@ -3,4 +3,5 @@ mkdir -p build cd build cmake ${SRC_DIR} ${CMAKE_ARGS} +make make install diff --git a/recipes/pdbx/meta.yaml b/recipes/pdbx/meta.yaml index de822ef290861..c28ff53effdf5 100644 --- a/recipes/pdbx/meta.yaml +++ b/recipes/pdbx/meta.yaml @@ -8,11 +8,10 @@ package: source: url: https://github.com/eunos-1128/pdbx/archive/refs/tags/v{{ version }}.tar.gz - version: {{ version }} sha256: 6b2c9e632b9b9ad1ac7a2683f9e3a50c778dda559507072839924ae0b2bea6a3 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin="x") }} @@ -23,13 +22,17 @@ requirements: - {{ compiler('c') }} - {{ compiler('cxx') }} # [linux] host: - - python + - python >=3.7,<3.12 run: - - python + - python >=3.7,<3.12 test: + imports: + - {{ name }} commands: - - PACKAGE_NAME={{ name }}; python3 -c "import pkg_resources; import sys; sys.exit(0 if pkg_resources.get_distribution('${PACKAGE_NAME}') else 1)" + - pip check + requires: + - pip about: home: https://github.com/{{ org }}/{{ name }} @@ -46,5 +49,8 @@ about: dev_url: https://github.com/{{ org }}/{{ name }} extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - eunos-1128 From 7536c26d1c4039ebd8023da42830dc04c047a703 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 01:27:58 -0400 Subject: [PATCH 1209/1514] Update cogent3 to 2024.7.19a4 (#49994) --- recipes/cogent3/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/cogent3/meta.yaml b/recipes/cogent3/meta.yaml index c9a318f6eb0fc..d32a78fc20af4 100644 --- a/recipes/cogent3/meta.yaml +++ b/recipes/cogent3/meta.yaml @@ -1,5 +1,5 @@ {% set name = "cogent3" %} -{% set version = "2024.7.19a3" %} +{% set version = "2024.7.19a4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 9a022315e02b4f5febe01f3377a921fdadcfce2bf85c85e7a69aaeeddfe98c59 + sha256: 3ff157aa3a778d4b2f473d18619d674073d5b61ad864daca3ee5283a9cdc50bb build: noarch: python From 3903fe213e4bdb357bf9aaf5ef0fcd9f57b51d5b Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Tue, 13 Aug 2024 07:29:59 +0200 Subject: [PATCH 1210/1514] Build hyphy for osx-arm64 (#49995) * Build hyphy for osx-arm64 * remove unnecessary run reqs * add citation --- recipes/hyphy/meta.yaml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/recipes/hyphy/meta.yaml b/recipes/hyphy/meta.yaml index 1a0520fed05d0..b531a053fb8a8 100644 --- a/recipes/hyphy/meta.yaml +++ b/recipes/hyphy/meta.yaml @@ -10,7 +10,7 @@ source: sha256: '{{ sha256 }}' build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("hyphy", max_pin="x.x") }} requirements: @@ -23,11 +23,7 @@ requirements: host: - libcurl - openmpi - - openssl - run: - - libcurl - - openmpi - - openssl + - zlib test: commands: @@ -47,5 +43,8 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 container: extended-base: true + identifiers: + - doi:10.1093/molbev/msz197 From b2a5c1070446832e7815cc3f4d13cd1ff222d9c0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 01:31:54 -0400 Subject: [PATCH 1211/1514] Update tcdemux to 0.1.1 (#49997) --- recipes/tcdemux/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/tcdemux/meta.yaml b/recipes/tcdemux/meta.yaml index 23b03ecb70bdd..1d2bc89eb43f5 100644 --- a/recipes/tcdemux/meta.yaml +++ b/recipes/tcdemux/meta.yaml @@ -1,5 +1,5 @@ --- -{% set version = "0.0.26" %} +{% set version = "0.1.1" %} package: name: tcdemux @@ -7,10 +7,10 @@ package: source: url: https://github.com/TomHarrop/tcdemux/archive/refs/tags/{{ version }}.tar.gz - sha256: 120b57d54d9fd30e96186c4d11f25691bd54e758e1d7dde99b24868bd2788e59 + sha256: 945c8acef0f68a8bbbd0449ca77a6408e7e2eb2b85c54812931282b8783cdb8f build: - number: 1 + number: 0 noarch: python script: {{ PYTHON }} -m pip install --ignore-installed . run_exports: From d81f6c1c158dce302db7c5c6b5103f749fce57e5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 01:36:12 -0400 Subject: [PATCH 1212/1514] Update sphae to 1.4.4 (#49996) --- recipes/sphae/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sphae/meta.yaml b/recipes/sphae/meta.yaml index ffd1cd3558f3d..0cb6737014829 100644 --- a/recipes/sphae/meta.yaml +++ b/recipes/sphae/meta.yaml @@ -1,5 +1,5 @@ {% set name = "sphae" %} -{% set version = "1.4.3" %} +{% set version = "1.4.4" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://github.com/linsalrob/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz" - sha256: 30b92bebe5538b52694a73614a932b12f46575ea5c857961815bbb9cec4c5db9 + sha256: adefd056f1e08708b27243c7fe120d7062270d4d9498bb88a62992bee715500a build: number: 0 From 4c640359cb6b5ca7307e4608c455c0e5e65d42a4 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 13 Aug 2024 01:11:16 -0500 Subject: [PATCH 1213/1514] Update cellbender to 0.3.2 (#50000) --- recipes/cellbender/meta.yaml | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/recipes/cellbender/meta.yaml b/recipes/cellbender/meta.yaml index 68183da020015..b70653de9be49 100644 --- a/recipes/cellbender/meta.yaml +++ b/recipes/cellbender/meta.yaml @@ -1,27 +1,26 @@ -{% set name = "cellbender" %} -{% set version = "0.3.0" %} +{% set name = "CellBender" %} +{% set version = "0.3.2" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/cellbender-{{ version }}.tar.gz - sha256: 94a46fb2b5921414ea86213cfdebca267b9ba6ba02df854cbd353980ab3aff42 + url: https://github.com/broadinstitute/CellBender/archive/v{{ version }}.tar.gz + sha256: 3bd4bf77c82a5817bb09ac3db236e9795e3e71c99cbe34c8baef04272a7d1717 build: number: 0 noarch: python entry_points: - cellbender = cellbender.base_cli:main - script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir run_exports: - {{ pin_subpackage('cellbender', max_pin="x.x") }} requirements: host: - python 3.7 - - setuptools >=61.2 - pip run: - python 3.7 @@ -45,16 +44,16 @@ test: imports: - cellbender commands: - - cellbender --help + - "cellbender --help" about: - home: https://github.com/broadinstitute/CellBender + home: "https://github.com/broadinstitute/CellBender" summary: "A software package for eliminating technical artifacts from high-throughput single-cell RNA sequencing (scRNA-seq) data" - license: BSD-3-Clause + license: "BSD-3-Clause" license_family: BSD license_file: LICENSE - doc_url: https://cellbender.readthedocs.io/en/latest/ - dev_url: https://github.com/broadinstitute/CellBender + doc_url: "https://cellbender.readthedocs.io/en/latest" + dev_url: "https://github.com/broadinstitute/CellBender" extra: recipe-maintainers: From 8287488bb08016ff445dfbadef69308b36f1102f Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 13 Aug 2024 09:11:34 +0300 Subject: [PATCH 1214/1514] dna-nn: add linux-aarch64 build (#49998) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/dna-nn/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/dna-nn/meta.yaml b/recipes/dna-nn/meta.yaml index 7e6edcd2f38a2..66c70ccaea69a 100644 --- a/recipes/dna-nn/meta.yaml +++ b/recipes/dna-nn/meta.yaml @@ -10,7 +10,7 @@ source: sha256: bac26a25ad9e0315351b170bc33ab4e41b7573818fd9527b661f882b96ae0a8a build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("dna-nn", max_pin="x.x") }} @@ -38,5 +38,7 @@ about: summary: "Model and predict short DNA sequence features with neural networks." extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - smeds From 31dba365336b9ecc20c1d0a3b353e73136b2821a Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 13 Aug 2024 09:11:54 +0300 Subject: [PATCH 1215/1514] sequali: add aarch64/arm64 builds (#49975) * sequali: add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov * Bump the build number Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/sequali/build_failure.osx-64.yaml | 104 ---------------------- recipes/sequali/meta.yaml | 5 +- 2 files changed, 4 insertions(+), 105 deletions(-) delete mode 100644 recipes/sequali/build_failure.osx-64.yaml diff --git a/recipes/sequali/build_failure.osx-64.yaml b/recipes/sequali/build_failure.osx-64.yaml deleted file mode 100644 index a23733fbe04f1..0000000000000 --- a/recipes/sequali/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: b82be46fe70a4476baf68c386ad04ec62bab54268efc685fda61370f10059d7f # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |2- - clangxx: 16.0.6-default_ha3b9224_7 conda-forge - compiler-rt: 16.0.6-ha38d28d_2 conda-forge - compiler-rt_osx-64: 16.0.6-ha38d28d_2 conda-forge - icu: 73.2-hf5e326d_0 conda-forge - ld64_osx-64: 711-ha20a434_0 conda-forge - libclang-cpp16: 16.0.6-default_h4c8afb6_7 conda-forge - libcxx: 17.0.6-h88467a6_0 conda-forge - libexpat: 2.6.2-h73e2aa4_0 conda-forge - libffi: 3.4.2-h0d85af4_5 conda-forge - libiconv: 1.17-hd75f5a5_2 conda-forge - libllvm16: 16.0.6-hbedff68_3 conda-forge - libsqlite: 3.45.3-h92b6c6a_0 conda-forge - libxml2: 2.12.7-hfa5d230_0 conda-forge - libzlib: 1.3.1-h87427d6_1 conda-forge - llvm-tools: 16.0.6-hbedff68_3 conda-forge - ncurses: 6.5-h5846eda_0 conda-forge - openssl: 3.3.0-h87427d6_3 conda-forge - pip: 24.0-pyhd8ed1ab_0 conda-forge - python: 3.12.3-h1411813_0_cpython conda-forge - readline: 8.2-h9e318b2_1 conda-forge - setuptools: 70.0.0-pyhd8ed1ab_0 conda-forge - sigtool: 0.1.3-h88f4db0_0 conda-forge - tapi: 1100.0.11-h9ce4665_0 conda-forge - tk: 8.6.13-h1abcd95_1 conda-forge - tzdata: 2024a-h0c530f3_0 conda-forge - wheel: 0.43.0-pyhd8ed1ab_1 conda-forge - xz: 5.2.6-h775f41a_0 conda-forge - zstd: 1.5.6-h915ae27_0 conda-forge - - Preparing transaction: ...working... done - Verifying transaction: ...working... done - Executing transaction: ...working... done - Source cache directory is: /opt/mambaforge/envs/bioconda/conda-bld/src_cache - Downloading source to cache: sequali-0.10.0_c43b38a212.tar.gz - Downloading https://pypi.io/packages/source/s/sequali/sequali-0.10.0.tar.gz - Success - /opt/mambaforge/envs/bioconda/conda-bld/sequali_1717523007406/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/bin/python: No module named pip - Extracting download - source tree in: /opt/mambaforge/envs/bioconda/conda-bld/sequali_1717523007406/work - Traceback (most recent call last): - export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/sequali_1717523007406/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh - export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/sequali_1717523007406/_build_env - export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/sequali_1717523007406/work - File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - INFO: activate_clang_osx-64.sh made the following environmental changes: - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - AR=x86_64-apple-darwin13.4.0-ar - AS=x86_64-apple-darwin13.4.0-as - CC=x86_64-apple-darwin13.4.0-clang - CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sequali-0.10.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms - CLANG=x86_64-apple-darwin13.4.0-clang - CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin - CMAKE_PREFIX_PATH=:$PREFIX - CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 - CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 - CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 - DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sequali-0.10.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - HOST=x86_64-apple-darwin13.4.0 - INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool - LD=x86_64-apple-darwin13.4.0-ld - LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib - LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib - LIBTOOL=x86_64-apple-darwin13.4.0-libtool - LIPO=x86_64-apple-darwin13.4.0-lipo - MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib - NM=x86_64-apple-darwin13.4.0-nm - NMEDIT=x86_64-apple-darwin13.4.0-nmedit - OBJC=x86_64-apple-darwin13.4.0-clang - OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - OTOOL=x86_64-apple-darwin13.4.0-otool - PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff - RANLIB=x86_64-apple-darwin13.4.0-ranlib - REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding - SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk - SEGEDIT=x86_64-apple-darwin13.4.0-segedit - SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table - SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack - SIZE=x86_64-apple-darwin13.4.0-size - STRINGS=x86_64-apple-darwin13.4.0-strings - STRIP=x86_64-apple-darwin13.4.0-strip - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 - ac_cv_func_malloc_0_nonnull=yes - ac_cv_func_realloc_0_nonnull=yes - build_alias=x86_64-apple-darwin13.4.0 - host_alias=x86_64-apple-darwin13.4.0 - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/sequali_1717523007406/work/conda_build.sh']' returned non-zero exit status 1. -# Last 100 lines of the build log. diff --git a/recipes/sequali/meta.yaml b/recipes/sequali/meta.yaml index de833c1a59dee..6ea35930a5604 100644 --- a/recipes/sequali/meta.yaml +++ b/recipes/sequali/meta.yaml @@ -10,7 +10,7 @@ source: sha256: d528a9a6eceace4fa8f1ef29625954a759928e7bab02348ef8f92887442f9527 build: - number: 1 + number: 2 entry_points: - sequali=sequali.__main__:main - sequali-report=sequali.__main__:sequali_report @@ -50,6 +50,9 @@ about: dev_url: "https://github.com/rhpvorderman/sequali" extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - rhpvorderman identifiers: From b641b0479c05ada41e01eea24a3f0dc5a01ee181 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 13 Aug 2024 02:12:27 -0500 Subject: [PATCH 1216/1514] Update bowtie2 recipe (#50002) --- recipes/bowtie2/build.sh | 2 +- recipes/bowtie2/meta.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/bowtie2/build.sh b/recipes/bowtie2/build.sh index 78e79f68ac4c8..9e5d8571f36a0 100644 --- a/recipes/bowtie2/build.sh +++ b/recipes/bowtie2/build.sh @@ -8,7 +8,7 @@ git clone https://github.com/ch4rr0/libsais third_party/libsais LDFLAGS="" make CXX="${CXX}" CXXFLAGS="${CXXFLAGS} -O3" CPP="${CXX} -I${PREFIX}/include" CC="${CC} -L${PREFIX}/lib" \ CFLAGS="${CFLAGS} -O3" LDLIBS="-L$PREFIX/lib -lz -lzstd -ltbb -ltbbmalloc -lpthread" \ - WITH_ZSTD=1 USE_SAIS_OPENMP=1 + WITH_ZSTD=1 USE_SRA=1 USE_SAIS_OPENMP=1 binaries="\ bowtie2 \ diff --git a/recipes/bowtie2/meta.yaml b/recipes/bowtie2/meta.yaml index e4fde80b6a4f3..2e1539e47b234 100644 --- a/recipes/bowtie2/meta.yaml +++ b/recipes/bowtie2/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 841a6a60111b690c11d1e123cb5c11560b4cd1502b5cee7e394fd50f83e74e13 build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage('bowtie2', max_pin="x") }} From edefe46dedb0740e021a120810881d2591d01e22 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 03:52:45 -0400 Subject: [PATCH 1217/1514] Update lsabgc to 1.0.9 (#50001) Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/lsabgc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/lsabgc/meta.yaml b/recipes/lsabgc/meta.yaml index 0d5a6bc94916a..22ce368439e81 100644 --- a/recipes/lsabgc/meta.yaml +++ b/recipes/lsabgc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "lsabgc" %} -{% set version = "1.0.7" %} +{% set version = "1.0.9" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Kalan-Lab/lsaBGC-Pan/archive/refs/tags/v{{ version }}.tar.gz - sha256: 09f95491a6a95a4ba4e8d2ee42ec87e09c7e5aa380fde73a11b4881bdb7b58fc + sha256: fe72ad4f9663f25630b7ed27bc823e42c383cf754c05cede205cb60c74a61824 build: number: 0 From e7adcf6994f1eea3ee9cf2fcaa0b584aa55aace8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 04:46:47 -0400 Subject: [PATCH 1218/1514] Update locityper to 0.16.10 (#50005) Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/locityper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/locityper/meta.yaml b/recipes/locityper/meta.yaml index c8646c29778e6..babd01987113a 100644 --- a/recipes/locityper/meta.yaml +++ b/recipes/locityper/meta.yaml @@ -1,5 +1,5 @@ {% set name = "locityper" %} -{% set version = "0.16.9" %} +{% set version = "0.16.10" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/tprodanov/locityper/archive/refs/tags/v{{ version }}.tar.gz - sha256: 388ebea85f9259f284b7b9215e28786c676aa89da57c2c78b74a76ad2506a14a + sha256: d8bedc3c4ac8526fc9a77f33819edda07e9fc73ff625adcc23565e670c5e1cfb build: number: 0 From b57e42846e33475537b499f787f72f0317c803ee Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 13 Aug 2024 12:17:02 +0300 Subject: [PATCH 1219/1514] libsbml: add aarch64/arm64 builds (#49999) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/libsbml/build.sh | 7 +++++-- recipes/libsbml/meta.yaml | 7 ++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/recipes/libsbml/build.sh b/recipes/libsbml/build.sh index 6e3bbfb5c8b2d..dbb0f2e1daee1 100644 --- a/recipes/libsbml/build.sh +++ b/recipes/libsbml/build.sh @@ -1,11 +1,14 @@ #!/bin/bash + +set -xe + mkdir build cd build declare -a CMAKE_LIBXML_LIBRARY -if [[ ${target_platform} == osx-64 ]]; then +if [[ ${target_platform} == osx-*64 ]]; then CMAKE_LIBXML_LIBRARY+=(-DLIBXML_LIBRARY="${PREFIX}"/lib/libxml2.dylib) -elif [[ ${target_platform} == linux-64 ]]; then +elif [[ ${target_platform} == linux-*64 ]]; then CMAKE_LIBXML_LIBRARY+=(-DLIBXML_LIBRARY="${PREFIX}"/lib/libxml2.so) fi diff --git a/recipes/libsbml/meta.yaml b/recipes/libsbml/meta.yaml index dd15bca255367..1f1cc5e0af27c 100644 --- a/recipes/libsbml/meta.yaml +++ b/recipes/libsbml/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('libsbml', max_pin='x.x') }} @@ -37,3 +37,8 @@ about: license: LGPL license_file: 'LICENSE.txt' summary: LibSBML is a free, open-source programming library to help you read, write, manipulate, translate, and validate SBML files and data streams. + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From b76934cbac30012fb535cff3f76bcbed3e634d76 Mon Sep 17 00:00:00 2001 From: farchaab <116543129+farchaab@users.noreply.github.com> Date: Tue, 13 Aug 2024 11:45:06 +0200 Subject: [PATCH 1220/1514] Updated recipe (#50003) --- recipes/assembly_finder/meta.yaml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/recipes/assembly_finder/meta.yaml b/recipes/assembly_finder/meta.yaml index 481c55de1362a..9a56c6d52fdef 100644 --- a/recipes/assembly_finder/meta.yaml +++ b/recipes/assembly_finder/meta.yaml @@ -10,11 +10,11 @@ source: sha256: 5b5d6ec619775e419c6875215c71a3a1e8c4e745c4a7ddb6847a2c03313a1470 build: - number: 0 + number: 1 noarch: python entry_points: - assembly_finder=assembly_finder.__main__:main - script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv run_exports: - {{ pin_subpackage('assembly_finder', max_pin="x.x") }} @@ -24,9 +24,9 @@ requirements: - pip run: - python >=3.10 - - snakemake-minimal >=7.32.4 - - pulp <2.8 - - snaketool-utils >=0.0.4 + - mamba >=1.5.8 + - snakemake-minimal >=8.0.0 + - snaketool-utils >=0.0.5 - attrmap >=0.0.7 - pyyaml >=6.0 - pandas >=2.2.1 @@ -52,3 +52,5 @@ extra: recipe-maintainers: - farchaab - tpillone + identifiers: + - biotools:assembly_finder \ No newline at end of file From 6612965514c4ae220cb05f98b0a53371e0dce407 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 13 Aug 2024 04:58:30 -0500 Subject: [PATCH 1221/1514] Update spades recipe (#50006) * Update spades recipe * Update build.sh * Update build.sh * update build.sh * update build.sh * update build.sh * update meta.yaml --- .../0001-change-verbosity-remove-expr.patch | 32 ++++-- recipes/spades/build.sh | 11 +- .../spades/build_failure.linux-aarch64.yaml | 33 ------ recipes/spades/build_failure.osx-64.yaml | 105 ------------------ recipes/spades/conda_build_config.yaml | 2 - recipes/spades/meta.yaml | 31 ++---- 6 files changed, 41 insertions(+), 173 deletions(-) delete mode 100644 recipes/spades/build_failure.linux-aarch64.yaml delete mode 100644 recipes/spades/build_failure.osx-64.yaml delete mode 100644 recipes/spades/conda_build_config.yaml diff --git a/recipes/spades/0001-change-verbosity-remove-expr.patch b/recipes/spades/0001-change-verbosity-remove-expr.patch index 5528c0a70e085..21bc5e5b9be11 100644 --- a/recipes/spades/0001-change-verbosity-remove-expr.patch +++ b/recipes/spades/0001-change-verbosity-remove-expr.patch @@ -1,7 +1,7 @@ diff -Naur pre_patch/spades_compile.sh post_patch/spades_compile.sh --- pre_patch/spades_compile.sh 2024-05-26 14:36:40 +++ post_patch/spades_compile.sh 2024-05-27 13:00:03 -@@ -36,10 +36,10 @@ +@@ -37,10 +37,10 @@ check_whether_OPTARG_is_an_integer() { } # return the argument first character @@ -14,12 +14,30 @@ diff -Naur pre_patch/spades_compile.sh post_patch/spades_compile.sh print_help() { echo -@@ -222,7 +222,7 @@ +@@ -221,11 +221,21 @@ else + ADDITIONAL_FLAGS="$ADDITIONAL_FLAGS -DSPADES_BUILD_INTERNAL=OFF" + fi - cd "$WORK_DIR" - cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$PREFIX" $ADDITIONAL_FLAGS "$BASEDIR/src" +-cd "$WORK_DIR" +-cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$PREFIX" $ADDITIONAL_FLAGS "$BASEDIR/src" -make -j $AMOUNT_OF_THREADS -+make -j $AMOUNT_OF_THREADS VERBOSE=1 - make install - cd "$PREFIX" +-make install +-cd "$PREFIX" ++if [[ `uname` == "Darwin" ]]; then ++ export CONFIG_ARGS="-DCMAKE_FIND_FRAMEWORK=NEVER -DCMAKE_FIND_APPBUNDLE=NEVER" ++ export CFLAGS="${CFLAGS} -Wunused-command-line-argument" ++ export CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" ++else ++ export CONFIG_ARGS="" ++fi ++ ++cd "${WORK_DIR}" ++cmake -S "${BASEDIR}/src" -B . -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ ++ -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER="${CXX}" \ ++ -DCMAKE_CXX_FLAGS="${CXXFLAGS}" -DCMAKE_C_COMPILER="${CC}" \ ++ -DCMAKE_C_FLAGS="${CFLAGS}" "${ADDITIONAL_FLAGS}" \ ++ "${CONFIG_ARGS}" ++cmake --build . --target install -j "${AMOUNT_OF_THREADS}" -v + if [ $RUN_TESTS = "y" ]; then + cd "$BASEDIR" diff --git a/recipes/spades/build.sh b/recipes/spades/build.sh index 60f586f3d392b..3b00666635bce 100644 --- a/recipes/spades/build.sh +++ b/recipes/spades/build.sh @@ -2,10 +2,9 @@ set -e -o pipefail -x -export LIBRARY_PATH=${PREFIX}/lib -export C_INCLUDE_PATH=${PREFIX}/include -export CPP_INCLUDE_PATH=${PREFIX}/include -export CFLAGS="${CFLAGS} -fcommon" -export CXXFLAGS="${CFLAGS} -fcommon" +export LIBRARY_PATH="${PREFIX}/lib" +export INCLUDE_PATH="${PREFIX}/include" +export CFLAGS="${CFLAGS} -O3 -fcommon" +export CXXFLAGS="${CFLAGS} -O3 -fcommon -I${PREFIX}/include" -bash spades_compile.sh -rj4 -DSPADES_USE_NCBISDK=ON +PREFIX="${PREFIX}" bash spades_compile.sh -rj"${CPU_COUNT}" -DSPADES_USE_NCBISDK=ON -DSPADES_ENABLE_PROJECTS="all" diff --git a/recipes/spades/build_failure.linux-aarch64.yaml b/recipes/spades/build_failure.linux-aarch64.yaml deleted file mode 100644 index aca6e6112608e..0000000000000 --- a/recipes/spades/build_failure.linux-aarch64.yaml +++ /dev/null @@ -1,33 +0,0 @@ -recipe_sha: 6be4333db8acfb6314096dc4462d291a25cfaa0039e0061049862257f52f80a1 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -category: CI unresponsive -reason: may be due to disk space -log: |- - 13:33:38 [32mBIOCONDA INFO [0m (OUT) [ 91%] Building CXX object projects/ionhammer/CMakeFiles/spades-ionhammer.dir/err_helper_table.cpp.o [0m - 13:33:38 [32mBIOCONDA INFO [0m (OUT) cd $SRC_DIR/build_spades/projects/ionhammer && $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-c++ -DBLAZE_CACHE_SIZE=33554432UL -DBLAZE_USE_CPP_THREADS -DBLAZE_USE_DEBUG_MODE=0 -DBLAZE_USE_FUNCTION_TRACES=0 -DBLAZE_USE_VECTORIZATION=1 -DUSE_GLIBCXX_PARALLEL=1 -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -I$SRC_DIR/src/projects/ionhammer -I$SRC_DIR/build_spades/_deps/zlib_ng-build -I$SRC_DIR/ext/src/zlib-ng -I$SRC_DIR/ext/src/mimalloc/include -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/ext/include/blaze/cmake/.. -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fcommon -fopenmp -O2 -g -DNDEBUG -std=gnu++17 -UNDEBUG -Wno-deprecated -g1 -O2 -Wall -Wextra -Wconversion -Wno-sign-conversion -Wno-long-long -Wwrite-strings -fopenmp -MD -MT projects/ionhammer/CMakeFiles/spades-ionhammer.dir/err_helper_table.cpp.o -MF CMakeFiles/spades-ionhammer.dir/err_helper_table.cpp.o.d -o CMakeFiles/spades-ionhammer.dir/err_helper_table.cpp.o -c $SRC_DIR/src/projects/ionhammer/err_helper_table.cpp [0m - 13:33:41 [32mBIOCONDA INFO [0m (OUT) [ 92%] Building CXX object projects/ionhammer/CMakeFiles/spades-ionhammer.dir/config_struct.cpp.o [0m - 13:33:41 [32mBIOCONDA INFO [0m (OUT) cd $SRC_DIR/build_spades/projects/ionhammer && $BUILD_PREFIX/bin/aarch64-conda-linux-gnu-c++ -DBLAZE_CACHE_SIZE=33554432UL -DBLAZE_USE_CPP_THREADS -DBLAZE_USE_DEBUG_MODE=0 -DBLAZE_USE_FUNCTION_TRACES=0 -DBLAZE_USE_VECTORIZATION=1 -DUSE_GLIBCXX_PARALLEL=1 -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -I$SRC_DIR/src/projects/ionhammer -I$SRC_DIR/build_spades/_deps/zlib_ng-build -I$SRC_DIR/ext/src/zlib-ng -I$SRC_DIR/ext/src/mimalloc/include -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/ext/include/blaze/cmake/.. -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fcommon -fopenmp -O2 -g -DNDEBUG -std=gnu++17 -UNDEBUG -Wno-deprecated -g1 -O2 -Wall -Wextra -Wconversion -Wno-sign-conversion -Wno-long-long -Wwrite-strings -fopenmp -MD -MT projects/ionhammer/CMakeFiles/spades-ionhammer.dir/config_struct.cpp.o -MF CMakeFiles/spades-ionhammer.dir/config_struct.cpp.o.d -o CMakeFiles/spades-ionhammer.dir/config_struct.cpp.o -c $SRC_DIR/src/projects/ionhammer/config_struct.cpp [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) In file included from /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/kmer_helpers.h:20, [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/reference.h:20, [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/subcluster.hpp:15, [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/subcluster.cpp:9: [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/valid_hkmer_generator.hpp: In instantiation of 'void ValidHKMerGenerator::Next() [with long unsigned int kK = 16]': [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/kmer_helpers.h:47:21: required from here [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/valid_hkmer_generator.hpp:227:17: warning: comparison is always true due to limited range of data type [-Wtype-limits] [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) 227 | if (pnucl != -1) { [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) | ~~~~~~^~~~~ [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) In file included from /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/special_functions/detail/bernoulli_details.hpp:11, [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/special_functions/bernoulli.hpp:16, [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/special_functions/gamma.hpp:35, [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/special_functions/factorials.hpp:14, [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/special_functions/binomial.hpp:14, [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/gamma_poisson_model.hpp:16, [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) from /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/subcluster.hpp:19: [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/tools/toms748_solve.hpp: In instantiation of 'std::pair<_ForwardIterator, _ForwardIterator> boost::math::tools::bracket_and_solve_root(F, const T&, T, bool, Tol, uintmax_t&, const Policy&) [with F = boost::math::detail::beta_inv_ab_t >; T = long double; Tol = eps_tolerance; Policy = boost::math::policies::policy; uintmax_t = long unsigned int]': [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/special_functions/detail/ibeta_inv_ab.hpp:155:46: required from 'T boost::math::detail::ibeta_inv_ab_imp(const T&, const T&, const T&, const T&, bool, const Policy&) [with T = long double; Policy = boost::math::policies::policy]' [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/special_functions/detail/ibeta_inv_ab.hpp:187:31: required from 'boost::math::tools::promote_args_t boost::math::ibeta_inva(RT1, RT2, RT3, const Policy&) [with RT1 = double; RT2 = double; RT3 = double; Policy = policies::policy; tools::promote_args_t = double]' [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/special_functions/detail/ibeta_inv_ab.hpp:299:34: required from 'boost::math::tools::promote_args_t boost::math::ibeta_inva(RT1, RT2, RT3) [with RT1 = double; RT2 = double; RT3 = double; tools::promote_args_t = double]' [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/spades_1718371532226/work/src/projects/ionhammer/gamma_poisson_model.hpp:127:35: required from here [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) /opt/conda/conda-bld/spades_1718371532226/work/ext/include/boost/math/tools/toms748_solve.hpp:502:17: note: parameter passing for argument of type 'std::pair' when C++17 is enabled changed to match C++14 in GCC 10.1 [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) 502 | std::pair bracket_and_solve_root(F f, const T& guess, T factor, bool rising, Tol tol, std::uintmax_t& max_iter, const Policy& pol) [0m - 13:33:43 [32mBIOCONDA INFO [0m (OUT) | ^~~~~~~~~~~~~~~~~~~~~~ [0m diff --git a/recipes/spades/build_failure.osx-64.yaml b/recipes/spades/build_failure.osx-64.yaml deleted file mode 100644 index 27f700c1275b3..0000000000000 --- a/recipes/spades/build_failure.osx-64.yaml +++ /dev/null @@ -1,105 +0,0 @@ -recipe_sha: 6be4333db8acfb6314096dc4462d291a25cfaa0039e0061049862257f52f80a1 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -category: compiler error -log: |2- - this->__append(__sz - __cs); - ^ - /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/work/src/../ext/include/llvm/Support/YAMLTraits.h:1976:13: note: in instantiation of member function 'std::vector::resize' requested here - seq.resize(index1); - ^ - In file included from /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/work/ext/src/llvm/YAMLTraits.cpp:9: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/work/src/../ext/include/llvm/Support/YAMLTraits.h:12: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/work/src/../ext/include/llvm/ADT/Optional.h:22: - In file included from /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/_build_env/bin/../include/c/v1/memory:886: - /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/_build_env/bin/../include/c/v1/__memory/allocator.h:167:28: error: 'path' is unavailable: introduced in macOS 10.15 - see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk - ::new ((void*)__p) _Up(_VSTD::forward<_Args>(__args)...); - ^ - /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/_build_env/bin/../include/c/v1/__memory/allocator_traits.h:296:13: note: in instantiation of function template specialization 'std::allocator::construct' requested here - __a.construct(__p, _VSTD::forward<_Args>(__args)...); - ^ - /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/_build_env/bin/../include/c/v1/__memory/uninitialized_algorithms.h:615:31: note: in instantiation of function template specialization 'std::allocator_traits>::construct' requested here - allocator_traits<_Alloc>::construct(__alloc, std::__to_address(__first2), std::move_if_noexcept(*__first1)); - ^ - /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/_build_env/bin/../include/c/v1/vector:1035:27: note: in instantiation of function template specialization 'std::__uninitialized_allocator_move_if_noexcept, std::reverse_iterator, std::reverse_iterator, std::reverse_iterator>' requested here - __v.__begin_ = std::__uninitialized_allocator_move_if_noexcept( - ^ - /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/_build_env/bin/../include/c/v1/vector:1164:9: note: in instantiation of member function 'std::vector::__swap_out_circular_buffer' requested here - __swap_out_circular_buffer(__v); - ^ - /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/_build_env/bin/../include/c/v1/vector:1981:15: note: in instantiation of member function 'std::vector::__append' requested here - this->__append(__sz - __cs); - ^ - /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/work/src/../ext/include/llvm/Support/YAMLTraits.h:1976:13: note: in instantiation of member function 'std::vector::resize' requested here - seq.resize(index1); - ^ - /opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/_build_env/bin/../include/c/v1/__filesystem/path.h:477:25: note: 'path' has been explicitly marked unavailable here - _LIBCPP_HIDE_FROM_ABI path(path&& __p) noexcept - ^ - 11 errors generated. - make[2]: *** [ext/llvm/CMakeFiles/llvm-support.dir/build.make:636: ext/llvm/CMakeFiles/llvm-support.dir/YAMLTraits.cpp.o] Error 1 - make[2]: *** Waiting for unfinished jobs.... - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_stats.c.o -MF CMakeFiles/easel.dir/esl_stats.c.o.d -o CMakeFiles/easel.dir/esl_stats.c.o -c $SRC_DIR/ext/src/easel/esl_stats.c - [ 35%] Building C object ext/easel/CMakeFiles/easel.dir/esl_stopwatch.c.o - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_stopwatch.c.o -MF CMakeFiles/easel.dir/esl_stopwatch.c.o.d -o CMakeFiles/easel.dir/esl_stopwatch.c.o -c $SRC_DIR/ext/src/easel/esl_stopwatch.c - [ 35%] Building C object ext/easel/CMakeFiles/easel.dir/esl_stretchexp.c.o - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_stretchexp.c.o -MF CMakeFiles/easel.dir/esl_stretchexp.c.o.d -o CMakeFiles/easel.dir/esl_stretchexp.c.o -c $SRC_DIR/ext/src/easel/esl_stretchexp.c - [ 35%] Building CXX object ext/llvm/CMakeFiles/llvm-support.dir/WithColor.cpp.o - cd $SRC_DIR/build_spades/ext/llvm && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -I$SRC_DIR/ext/src/llvm -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fcommon -fopenmp=libomp -stdlib=libc -O2 -g -DNDEBUG -std=gnu17 -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/llvm/CMakeFiles/llvm-support.dir/WithColor.cpp.o -MF CMakeFiles/llvm-support.dir/WithColor.cpp.o.d -o CMakeFiles/llvm-support.dir/WithColor.cpp.o -c $SRC_DIR/ext/src/llvm/WithColor.cpp - [ 35%] Building C object ext/easel/CMakeFiles/easel.dir/esl_subcmd.c.o - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_subcmd.c.o -MF CMakeFiles/easel.dir/esl_subcmd.c.o.d -o CMakeFiles/easel.dir/esl_subcmd.c.o -c $SRC_DIR/ext/src/easel/esl_subcmd.c - [ 35%] Building C object ext/easel/CMakeFiles/easel.dir/esl_threads.c.o - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_threads.c.o -MF CMakeFiles/easel.dir/esl_threads.c.o.d -o CMakeFiles/easel.dir/esl_threads.c.o -c $SRC_DIR/ext/src/easel/esl_threads.c - [ 35%] Building C object ext/easel/CMakeFiles/easel.dir/esl_tree.c.o - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_tree.c.o -MF CMakeFiles/easel.dir/esl_tree.c.o.d -o CMakeFiles/easel.dir/esl_tree.c.o -c $SRC_DIR/ext/src/easel/esl_tree.c - [ 37%] Building C object ext/easel/CMakeFiles/easel.dir/esl_varint.c.o - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_varint.c.o -MF CMakeFiles/easel.dir/esl_varint.c.o.d -o CMakeFiles/easel.dir/esl_varint.c.o -c $SRC_DIR/ext/src/easel/esl_varint.c - [ 37%] Building CXX object ext/llvm/CMakeFiles/llvm-support.dir/YAMLParser.cpp.o - cd $SRC_DIR/build_spades/ext/llvm && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -I$SRC_DIR/ext/src/llvm -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fcommon -fopenmp=libomp -stdlib=libc -O2 -g -DNDEBUG -std=gnu17 -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/llvm/CMakeFiles/llvm-support.dir/YAMLParser.cpp.o -MF CMakeFiles/llvm-support.dir/YAMLParser.cpp.o.d -o CMakeFiles/llvm-support.dir/YAMLParser.cpp.o -c $SRC_DIR/ext/src/llvm/YAMLParser.cpp - [ 37%] Building C object ext/easel/CMakeFiles/easel.dir/esl_vectorops.c.o - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_vectorops.c.o -MF CMakeFiles/easel.dir/esl_vectorops.c.o.d -o CMakeFiles/easel.dir/esl_vectorops.c.o -c $SRC_DIR/ext/src/easel/esl_vectorops.c - [ 37%] Building CXX object ext/llvm/CMakeFiles/llvm-support.dir/YAMLTraits.cpp.o - cd $SRC_DIR/build_spades/ext/llvm && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -I$SRC_DIR/ext/src/llvm -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fcommon -fopenmp=libomp -stdlib=libc -O2 -g -DNDEBUG -std=gnu17 -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/llvm/CMakeFiles/llvm-support.dir/YAMLTraits.cpp.o -MF CMakeFiles/llvm-support.dir/YAMLTraits.cpp.o.d -o CMakeFiles/llvm-support.dir/YAMLTraits.cpp.o -c $SRC_DIR/ext/src/llvm/YAMLTraits.cpp - [ 37%] Building C object ext/easel/CMakeFiles/easel.dir/esl_weibull.c.o - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_weibull.c.o -MF CMakeFiles/easel.dir/esl_weibull.c.o.d -o CMakeFiles/easel.dir/esl_weibull.c.o -c $SRC_DIR/ext/src/easel/esl_weibull.c - [ 37%] Building C object ext/easel/CMakeFiles/easel.dir/esl_workqueue.c.o - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_workqueue.c.o -MF CMakeFiles/easel.dir/esl_workqueue.c.o.d -o CMakeFiles/easel.dir/esl_workqueue.c.o -c $SRC_DIR/ext/src/easel/esl_workqueue.c - [ 37%] Building CXX object ext/llvm/CMakeFiles/llvm-support.dir/raw_os_ostream.cpp.o - cd $SRC_DIR/build_spades/ext/llvm && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -I$SRC_DIR/ext/src/llvm -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fcommon -fopenmp=libomp -stdlib=libc -O2 -g -DNDEBUG -std=gnu17 -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/llvm/CMakeFiles/llvm-support.dir/raw_os_ostream.cpp.o -MF CMakeFiles/llvm-support.dir/raw_os_ostream.cpp.o.d -o CMakeFiles/llvm-support.dir/raw_os_ostream.cpp.o -c $SRC_DIR/ext/src/llvm/raw_os_ostream.cpp - [ 37%] Building C object ext/easel/CMakeFiles/easel.dir/esl_wuss.c.o - make[1]: *** [CMakeFiles/Makefile2:1594: ext/llvm/CMakeFiles/llvm-support.dir/all] Error 2 - make: *** [Makefile:166: all] Error 2 - Traceback (most recent call last): - File "/opt/mambaforge/envs/bioconda/bin/conda-build", line 11, in - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_wuss.c.o -MF CMakeFiles/easel.dir/esl_wuss.c.o.d -o CMakeFiles/easel.dir/esl_wuss.c.o -c $SRC_DIR/ext/src/easel/esl_wuss.c - [ 37%] Building C object ext/easel/CMakeFiles/easel.dir/esl_sse.c.o - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_sse.c.o -MF CMakeFiles/easel.dir/esl_sse.c.o.d -o CMakeFiles/easel.dir/esl_sse.c.o -c $SRC_DIR/ext/src/easel/esl_sse.c - [ 37%] Building C object ext/easel/CMakeFiles/easel.dir/esl_avx.c.o - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_avx.c.o -MF CMakeFiles/easel.dir/esl_avx.c.o.d -o CMakeFiles/easel.dir/esl_avx.c.o -c $SRC_DIR/ext/src/easel/esl_avx.c - [ 38%] Building C object ext/easel/CMakeFiles/easel.dir/esl_avx512.c.o - sys.exit(execute()) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_avx512.c.o -MF CMakeFiles/easel.dir/esl_avx512.c.o.d -o CMakeFiles/easel.dir/esl_avx512.c.o -c $SRC_DIR/ext/src/easel/esl_avx512.c - [ 38%] Building C object ext/easel/CMakeFiles/easel.dir/esl_neon.c.o - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -I$SRC_DIR/src/include -I$SRC_DIR/build_spades/include -I$SRC_DIR/src -I$SRC_DIR/src/common -isystem $SRC_DIR/src/../ext/include -isystem $SRC_DIR/ext/include -isystem $SRC_DIR/build_spades/ext/easel/include -isystem $SRC_DIR/ext/src/easel -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/spades-4.0.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fcommon -fopenmp=libomp -O2 -g -DNDEBUG -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.13 -UNDEBUG -Wno-deprecated -g1 -O2 -MD -MT ext/easel/CMakeFiles/easel.dir/esl_neon.c.o -MF CMakeFiles/easel.dir/esl_neon.c.o.d -o CMakeFiles/easel.dir/esl_neon.c.o -c $SRC_DIR/ext/src/easel/esl_neon.c - [ 38%] Linking C static library libeasel.a - api.build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/cmake -P CMakeFiles/easel.dir/cmake_clean_target.cmake - cd $SRC_DIR/build_spades/ext/easel && $BUILD_PREFIX/bin/cmake -E cmake_link_script CMakeFiles/easel.dir/link.txt --verbose=1 - return build_tree( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/build.py", line 2506, in build - utils.check_call_env( - $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar qc libeasel.a CMakeFiles/easel.dir/easel.c.o CMakeFiles/easel.dir/esl_alloc.c.o CMakeFiles/easel.dir/esl_alphabet.c.o CMakeFiles/easel.dir/esl_arr2.c.o CMakeFiles/easel.dir/esl_arr3.c.o CMakeFiles/easel.dir/esl_bitfield.c.o CMakeFiles/easel.dir/esl_buffer.c.o CMakeFiles/easel.dir/esl_cluster.c.o CMakeFiles/easel.dir/esl_composition.c.o CMakeFiles/easel.dir/esl_cpu.c.o CMakeFiles/easel.dir/esl_dirichlet.c.o CMakeFiles/easel.dir/esl_distance.c.o CMakeFiles/easel.dir/esl_dmatrix.c.o CMakeFiles/easel.dir/esl_dsqdata.c.o CMakeFiles/easel.dir/esl_exponential.c.o CMakeFiles/easel.dir/esl_fileparser.c.o CMakeFiles/easel.dir/esl_gamma.c.o CMakeFiles/easel.dir/esl_gencode.c.o CMakeFiles/easel.dir/esl_getopts.c.o CMakeFiles/easel.dir/esl_gev.c.o CMakeFiles/easel.dir/esl_graph.c.o CMakeFiles/easel.dir/esl_gumbel.c.o CMakeFiles/easel.dir/esl_heap.c.o CMakeFiles/easel.dir/esl_histogram.c.o CMakeFiles/easel.dir/esl_hmm.c.o CMakeFiles/easel.dir/esl_huffman.c.o CMakeFiles/easel.dir/esl_hyperexp.c.o CMakeFiles/easel.dir/esl_iset.c.o CMakeFiles/easel.dir/esl_json.c.o CMakeFiles/easel.dir/esl_keyhash.c.o CMakeFiles/easel.dir/esl_lognormal.c.o CMakeFiles/easel.dir/esl_matrixops.c.o CMakeFiles/easel.dir/esl_mem.c.o CMakeFiles/easel.dir/esl_minimizer.c.o CMakeFiles/easel.dir/esl_mixdchlet.c.o CMakeFiles/easel.dir/esl_mixgev.c.o CMakeFiles/easel.dir/esl_mpi.c.o CMakeFiles/easel.dir/esl_msa.c.o CMakeFiles/easel.dir/esl_msacluster.c.o CMakeFiles/easel.dir/esl_msafile.c.o CMakeFiles/easel.dir/esl_msafile2.c.o CMakeFiles/easel.dir/esl_msafile_a2m.c.o CMakeFiles/easel.dir/esl_msafile_afa.c.o CMakeFiles/easel.dir/esl_msafile_clustal.c.o CMakeFiles/easel.dir/esl_msafile_phylip.c.o CMakeFiles/easel.dir/esl_msafile_psiblast.c.o CMakeFiles/easel.dir/esl_msafile_selex.c.o CMakeFiles/easel.dir/esl_msafile_stockholm.c.o CMakeFiles/easel.dir/esl_msashuffle.c.o CMakeFiles/easel.dir/esl_msaweight.c.o CMakeFiles/easel.dir/esl_normal.c.o CMakeFiles/easel.dir/esl_paml.c.o CMakeFiles/easel.dir/esl_quicksort.c.o CMakeFiles/easel.dir/esl_random.c.o CMakeFiles/easel.dir/esl_rand64.c.o CMakeFiles/easel.dir/esl_randomseq.c.o CMakeFiles/easel.dir/esl_ratematrix.c.o CMakeFiles/easel.dir/esl_recorder.c.o CMakeFiles/easel.dir/esl_red_black.c.o CMakeFiles/easel.dir/esl_regexp.c.o CMakeFiles/easel.dir/esl_rootfinder.c.o CMakeFiles/easel.dir/esl_scorematrix.c.o CMakeFiles/easel.dir/esl_sq.c.o CMakeFiles/easel.dir/esl_sqio.c.o CMakeFiles/easel.dir/esl_sqio_ascii.c.o CMakeFiles/easel.dir/esl_sqio_ncbi.c.o CMakeFiles/easel.dir/esl_ssi.c.o CMakeFiles/easel.dir/esl_stack.c.o CMakeFiles/easel.dir/esl_stats.c.o CMakeFiles/easel.dir/esl_stopwatch.c.o CMakeFiles/easel.dir/esl_stretchexp.c.o CMakeFiles/easel.dir/esl_subcmd.c.o CMakeFiles/easel.dir/esl_threads.c.o CMakeFiles/easel.dir/esl_tree.c.o CMakeFiles/easel.dir/esl_varint.c.o CMakeFiles/easel.dir/esl_vectorops.c.o CMakeFiles/easel.dir/esl_weibull.c.o CMakeFiles/easel.dir/esl_workqueue.c.o CMakeFiles/easel.dir/esl_wuss.c.o CMakeFiles/easel.dir/esl_sse.c.o CMakeFiles/easel.dir/esl_avx.c.o CMakeFiles/easel.dir/esl_avx512.c.o CMakeFiles/easel.dir/esl_neon.c.o - $BUILD_PREFIX/bin/llvm-ranlib libeasel.a - make[2]: Leaving directory '$SRC_DIR/build_spades' - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 405, in check_call_env - return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs) - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - [ 38%] Built target easel - make[2]: Leaving directory '$SRC_DIR/build_spades' - make[1]: Leaving directory '$SRC_DIR/build_spades' - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/spades_1718310310834/work/conda_build.sh']' returned non-zero exit status 2. -# Last 100 lines of the build log. diff --git a/recipes/spades/conda_build_config.yaml b/recipes/spades/conda_build_config.yaml deleted file mode 100644 index 54efb0ce6b78c..0000000000000 --- a/recipes/spades/conda_build_config.yaml +++ /dev/null @@ -1,2 +0,0 @@ -MACOSX_DEPLOYMENT_TARGET: - - 10.15 # [osx] \ No newline at end of file diff --git a/recipes/spades/meta.yaml b/recipes/spades/meta.yaml index bacd3f85ce2cd..a9621bd4904de 100644 --- a/recipes/spades/meta.yaml +++ b/recipes/spades/meta.yaml @@ -1,8 +1,9 @@ +{% set name = "spades" %} {% set version = "4.0.0" %} {% set sha256 = "07c02eb1d9d90f611ac73bdd30ddc242ed51b00c8a3757189e8a8137ad8cfb8b" %} package: - name: spades + name: {{ name }} version: {{ version }} source: @@ -12,31 +13,25 @@ source: - 0001-change-verbosity-remove-expr.patch build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage('spades', max_pin="x") }} requirements: build: - - {{ compiler('c') }} - {{ compiler('cxx') }} - - llvm-openmp # [osx] - - libgomp # [linux] - cmake - make - pkg-config - - sysroot_linux-64 =2.17 # [linux] host: - llvm-openmp # [osx] - libgomp # [linux] - zlib - bzip2 - - sysroot_linux-64 =2.17 # [linux] run: - llvm-openmp # [osx] - libgomp # [linux] - - python >3.9 - - sysroot_linux-64 =2.17 # [linux] + - python >=3.8 test: commands: @@ -49,28 +44,26 @@ test: - spades-gbuilder 2>&1 | grep spades-gbuilder - spades.py --test && rm -rf spades_test - about: - home: http://ablab.github.io/spades/ - license: GPL-2.0-only + home: "https://github.com/ablab/spades" + license: "GPL-2.0-only" license_family: GPL license_file: LICENSE - summary: SPAdes (St. Petersburg genome assembler) is intended for both standard isolates and single-cell MDA bacteria assemblies. + summary: "SPAdes (St. Petersburg genome assembler) is intended for both standard isolates and single-cell MDA bacteria assemblies." description: | SPAdes (St. Petersburg genome assembler) is a genome assembly algorithm which was designed for single cell and multi-cells bacterial data sets. However, it might not be suitable for large genomes projects. SPAdes works with Ion Torrent, PacBio, Oxford Nanopore, and Illumina paired-end, mate-pairs and - single reads - - dev_url: https://github.com/ablab/spades - doc_url: http://ablab.github.io/spades/ - + single reads. + dev_url: "https://github.com/ablab/spades" + doc_url: "https://ablab.github.io/spades" extra: additional-platforms: - linux-aarch64 + - osx-arm64 recipe-maintainers: - druvus - notestaff @@ -82,5 +75,3 @@ extra: - doi:10.1101/gr.213959.116 - doi:10.1093/gigascience/giz100 - doi:10.1093/bioinformatics/btz349 - skip-lints: - - should_not_be_noarch_source From 31de6006ec53288fc1465e396a9888ed185e205f Mon Sep 17 00:00:00 2001 From: farchaab <116543129+farchaab@users.noreply.github.com> Date: Tue, 13 Aug 2024 12:14:43 +0200 Subject: [PATCH 1222/1514] Update MeSS recipe (#50004) * Updated dependencies, added identifier * updated pip install command --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/mess/meta.yaml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/recipes/mess/meta.yaml b/recipes/mess/meta.yaml index e95fe08460b76..d6e0e7fbdce95 100644 --- a/recipes/mess/meta.yaml +++ b/recipes/mess/meta.yaml @@ -10,11 +10,11 @@ source: sha256: 0f33dad4c2a90ed5e7d573c5cdb878150d63e99cfdbf83504f72c557eb075d74 build: - number: 0 + number: 1 noarch: python entry_points: - mess=mess.__main__:main - script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv run_exports: - {{ pin_subpackage('mess', max_pin="x.x") }} @@ -26,8 +26,8 @@ requirements: run: - python >=3.10 - - snakemake-minimal >=7.32.4 - - pulp <2.8 + - mamba >=1.5.8 + - snakemake-minimal >=8.0.0 - snaketool-utils >=0.0.5 - attrmap >=0.0.7 - pyyaml >=6.0.1 @@ -55,4 +55,6 @@ extra: recipe-maintainers: - farchaab - tpillone + identifiers: + - biotools:mess From 1474e9a802f8edb728b133b2a009ec18cf16d8f5 Mon Sep 17 00:00:00 2001 From: DrKaiyangZheng <131530767+DrKaiyangZheng@users.noreply.github.com> Date: Tue, 13 Aug 2024 18:42:28 +0800 Subject: [PATCH 1223/1514] add vitap to Bioconda recipes (#49986) * add vitap recipes * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml I have made a release/tag and use it instead of main. Thanks. * Update meta.yaml --------- Co-authored-by: DrKaiyangZheng --- recipes/vitap/meta.yaml | 50 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 recipes/vitap/meta.yaml diff --git a/recipes/vitap/meta.yaml b/recipes/vitap/meta.yaml new file mode 100644 index 0000000000000..c9d8e9219b9c3 --- /dev/null +++ b/recipes/vitap/meta.yaml @@ -0,0 +1,50 @@ +{% set name = "vitap" %} +{% set version = "1.1" %} + +package: + name: "{{ name|lower }}" + version: "{{ version }}" + +source: + url: https://github.com/DrKaiyangZheng/VITAP/archive/refs/tags/v.{{ version }}.tar.gz + sha256: 7bb82f330c33e5427daaad72017993599bc4c3712d8bc08af44f7ac1d9ec2a8b + +build: + number: 0 + noarch: python + run_exports: + - {{ pin_subpackage('vitap', max_pin='x') }} + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" + +requirements: + host: + - pip + - python + - setuptools-markdown + run: + - python >=3.9 + - networkx >=3.1 + - scipy >=1.10 + - pandas >=1.5 + - numpy >=1.25 + - numpy >=1.25 + - biopython >=1.78 + - tqdm >=4.65 + - diamond >=0.9 + - entrez-direct =16.2 + - seqkit >=2.5.1 + - prodigal >=2.6 + +test: + commands: + - VITAP --help + - VITAP assignment -h + - VITAP upd -h + +about: + home: https://github.com/DrKaiyangZheng/VITAP/ + license: GPL-3.0-only + license_file: LICENSE + license_family: GPL + summary: Viral Taxonomy Assigning Pipeline + doc_url: https://github.com/DrKaiyangZheng/VITAP/blob/main/README.md From a92050243ae984cf5f4decc4d02b7f49750b0f14 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 07:23:37 -0400 Subject: [PATCH 1224/1514] Update parascopy to 1.16.3 (#50008) --- recipes/parascopy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/parascopy/meta.yaml b/recipes/parascopy/meta.yaml index 5bc435f33fb96..d838dc1927051 100644 --- a/recipes/parascopy/meta.yaml +++ b/recipes/parascopy/meta.yaml @@ -1,5 +1,5 @@ {% set name = "parascopy" %} -{% set version = "1.16.2" %} +{% set version = "1.16.3" %} package: name: {{ name|lower }} @@ -14,7 +14,7 @@ build: source: url: https://github.com/tprodanov/{{ name }}/archive/v{{ version }}.tar.gz - sha256: f1fa85349f49a504cc49afa93a2f8aab6600f6edaea3bdf7be21adca973ebe50 + sha256: 50054ef93d33d5ea17fa9fcd479db41811d10db3ca15950ebfb5ab451e0b6a35 requirements: build: From e6c209ebc32c88c248b37e30137e93db7680e858 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 07:58:23 -0400 Subject: [PATCH 1225/1514] Update snakemake to 8.17.0 (#50012) --- recipes/snakemake/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake/meta.yaml b/recipes/snakemake/meta.yaml index 1081e75cde7ef..93570d5061e99 100644 --- a/recipes/snakemake/meta.yaml +++ b/recipes/snakemake/meta.yaml @@ -1,7 +1,7 @@ # Attention: when upgrading the version, please compare below dependencies with # https://github.com/snakemake/snakemake/blob/{version}/setup.cfg {% set name = "snakemake" %} -{% set version = "8.16.0" %} +{% set version = "8.17.0" %} package: name: {{ name }} @@ -9,7 +9,7 @@ package: source: url: https://pypi.io/packages/source/s/{{ name }}/snakemake-{{ version }}.tar.gz - sha256: 3906ae1a5e16b941755b61537a8d16e249106cbbeb0d40b9552933e96ff07af4 + sha256: e409a874f4138ff33761fb3e755a0fa190e7eceec0c893008edb563bd7cc855e build: number: 0 From 431f3ce1477fd97127c65dc8544a4aac5f01baec Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 08:46:25 -0400 Subject: [PATCH 1226/1514] Update vitap to 1.2 (#50014) --- recipes/vitap/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/vitap/meta.yaml b/recipes/vitap/meta.yaml index c9d8e9219b9c3..8dd3b8e63c1a9 100644 --- a/recipes/vitap/meta.yaml +++ b/recipes/vitap/meta.yaml @@ -1,5 +1,5 @@ {% set name = "vitap" %} -{% set version = "1.1" %} +{% set version = "1.2" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://github.com/DrKaiyangZheng/VITAP/archive/refs/tags/v.{{ version }}.tar.gz - sha256: 7bb82f330c33e5427daaad72017993599bc4c3712d8bc08af44f7ac1d9ec2a8b + sha256: 9c078e63902588394e03a9d05439fd43c584a83b8bada942d5a148a11e28e7ac build: number: 0 From 41c5f5ae725885d908e9c5a22f58ba8c5ea4c144 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 11:14:33 -0400 Subject: [PATCH 1227/1514] Update pasta to 1.9.2 (#50015) --- recipes/pasta/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pasta/meta.yaml b/recipes/pasta/meta.yaml index 4392437dfa127..7f99e4ed3861d 100644 --- a/recipes/pasta/meta.yaml +++ b/recipes/pasta/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.9.0" %} -{% set sha256 = "6f816aebe00b7b6bb78a250ad45f5aa2aa8eff0f9719736f05b0597dd3b1f9a1" %} +{% set version = "1.9.2" %} +{% set sha256 = "06c20f022765d2c1daab13a916ec2ea2277c5ef43afcf3e54c6a7ade7aed0944" %} package: name: pasta @@ -13,7 +13,7 @@ source: - mpstart.patch # issue in OSX py38 (not in Linux nor OSX py37): RuntimeError: An attempt has been made to start a new process before the current process has finished its bootstrapping phase. build: - number: 1 + number: 0 skip: true # [py == 312] run_exports: - {{ pin_subpackage('pasta', max_pin="x") }} From 29803dad1747bc29f3a1f3123167391fe5c9e72f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 11:57:08 -0400 Subject: [PATCH 1228/1514] Update lsabgc to 1.1.0 (#50017) --- recipes/lsabgc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/lsabgc/meta.yaml b/recipes/lsabgc/meta.yaml index 22ce368439e81..c93ee7d7a5a1c 100644 --- a/recipes/lsabgc/meta.yaml +++ b/recipes/lsabgc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "lsabgc" %} -{% set version = "1.0.9" %} +{% set version = "1.1.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Kalan-Lab/lsaBGC-Pan/archive/refs/tags/v{{ version }}.tar.gz - sha256: fe72ad4f9663f25630b7ed27bc823e42c383cf754c05cede205cb60c74a61824 + sha256: 93dc9fbd2d3eda70a50efeaa8a234ea2a4aa850ccccb0ed0f2f2a9dc2f9f7e1b build: number: 0 From ee6d0f14203aa5c1865c3400041d460167fc2b42 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 13 Aug 2024 19:04:41 +0300 Subject: [PATCH 1229/1514] lastz: add aarch64/arm64 builds (#50009) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/lastz/build.sh | 6 ++++-- recipes/lastz/meta.yaml | 9 +++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/recipes/lastz/build.sh b/recipes/lastz/build.sh index 73bb1de4ce1cc..182e1c8acd239 100644 --- a/recipes/lastz/build.sh +++ b/recipes/lastz/build.sh @@ -1,11 +1,13 @@ #!/bin/sh +set -xe + mkdir -p $PREFIX/bin # Build lastz and lastz_D (lastz_D uses floating-point scores -make CC="${CC}" +make -j ${CPU_COUNT} CC="${CC}" # Build lastz_32, which uses 32-bit positions index and can handle genomes larger than 2Gb -make CC="${CC}" lastz_32 +make -j ${CPU_COUNT} CC="${CC}" lastz_32 chmod +x src/lastz chmod +x src/lastz_D diff --git a/recipes/lastz/meta.yaml b/recipes/lastz/meta.yaml index 5068cec65d04c..64807a95534e7 100644 --- a/recipes/lastz/meta.yaml +++ b/recipes/lastz/meta.yaml @@ -6,12 +6,13 @@ package: version: "{{ version }}" build: - number: 0 + number: 1 + run_exports: + - {{ pin_subpackage('lastz', max_pin='x') }} source: url: https://github.com/lastz/lastz/archive/refs/tags/{{ version }}.tar.gz sha256: 4c829603ba4aed7ddf64255b528cd88850e4557382fca29580d3576c25c5054a - patches: - makefile.patch @@ -20,6 +21,7 @@ requirements: - make - {{ compiler('c') }} run: + test: commands: - lastz --version 2>&1 | grep {{ version }} > /dev/null @@ -30,5 +32,8 @@ about: summary: LASTZ is a program for aligning DNA sequences, a pairwise aligner. extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 identifiers: - biotools:lastz From e8d3c68271476aca7ce0c09a841536856eb01f67 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 15:39:53 -0400 Subject: [PATCH 1230/1514] Update ltr_retriever to 3.0.0 (#50021) --- recipes/ltr_retriever/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ltr_retriever/meta.yaml b/recipes/ltr_retriever/meta.yaml index fab51c19ad426..874f52dab9ced 100644 --- a/recipes/ltr_retriever/meta.yaml +++ b/recipes/ltr_retriever/meta.yaml @@ -1,6 +1,6 @@ {% set name = "LTR_retriever" %} -{% set version = "2.9.9" %} -{% set sha256 = "ef7d59349c0cbb3c819a102e68488b85cb116c099a4512d72d8a70293f13c7c8" %} +{% set version = "3.0.0" %} +{% set sha256 = "36b69e3ca4d2a5771072c65f52c2da17b9e3dc2215ef00f31dcd042e62429c37" %} package: name: "{{ name|lower }}" From ddc03de365a72c925a26415260f526244fa874f5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 15:40:17 -0400 Subject: [PATCH 1231/1514] Update phykit to 1.20.0 (#50022) --- recipes/phykit/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/phykit/meta.yaml b/recipes/phykit/meta.yaml index 9f0478e642922..f7514b2ae2060 100644 --- a/recipes/phykit/meta.yaml +++ b/recipes/phykit/meta.yaml @@ -1,5 +1,5 @@ {% set name = "phykit" %} -{% set version = "1.19.9" %} +{% set version = "1.20.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: d8378135c89a9c957fe3236ce8a2f1ff2846100a4aa207d7cacec8500237e4dd + sha256: 61163c9297f4b9765184f0d74e24cf1ef31844502379cab1ca21741a760f95b7 build: noarch: python From df4cc96801440c88e9339997822143d57896252b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 15:41:22 -0400 Subject: [PATCH 1232/1514] Update bigtools to 0.5.2 (#50024) --- recipes/bigtools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/bigtools/meta.yaml b/recipes/bigtools/meta.yaml index 103e8822e7ec1..89cd9389aeb41 100644 --- a/recipes/bigtools/meta.yaml +++ b/recipes/bigtools/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.5.1" %} +{% set version = "0.5.2" %} package: name: bigtools @@ -11,7 +11,7 @@ build: source: url: https://github.com/jackh726/bigtools/archive/refs/tags/v{{ version }}.tar.gz - sha256: "dc006ee7037420e9cd279b2aaaf3a2859c81c07eb08c3ce6b1598b1962f055a3" + sha256: "f5b50a4d717f93242541673bbdeb1fa67b8b9175b0f72d8ff5c52f1563b5cd4e" requirements: build: From b97ae53413c76cdcdcfccb40b82d5f2bcd45d7b8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 13 Aug 2024 18:11:21 -0400 Subject: [PATCH 1233/1514] Update quantms-utils to 0.0.7 (#50028) --- recipes/quantms-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/quantms-utils/meta.yaml b/recipes/quantms-utils/meta.yaml index c78e7a934c13a..7df0df88180d0 100644 --- a/recipes/quantms-utils/meta.yaml +++ b/recipes/quantms-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "quantms-utils" %} -{% set version = "0.0.6" %} +{% set version = "0.0.7" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/quantms_utils-{{ version }}.tar.gz - sha256: 9f94df1f1301e09399327cec746ae95b71f150917f4237124f52d1dcc972b173 + sha256: 293561016439c01004c55670ab18b75c8ae92513724a44df23dfd436557dfe8c build: entry_points: From 60f2f2610b3b61cc71fdc7609f3b2ab0559ba421 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 00:00:54 -0400 Subject: [PATCH 1234/1514] Update singlem to 0.18.3 (#50029) --- recipes/singlem/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/singlem/meta.yaml b/recipes/singlem/meta.yaml index c686add8750fa..122cb94531495 100644 --- a/recipes/singlem/meta.yaml +++ b/recipes/singlem/meta.yaml @@ -1,5 +1,5 @@ {% set name = "singlem" %} -{% set version = "0.18.2" %} +{% set version = "0.18.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 8b1f1e51a8cebc4d6d2aa916c6ebb566b3828d3b4029d5831ac186b238d739dc + sha256: 2265476582ce418961072ee0eaaa70db60a888fdcda18c72828f6d0bf55530e8 build: number: 0 From 074bdc4d9e9c9cc8428b94cefb71933310ea794d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 00:03:18 -0400 Subject: [PATCH 1235/1514] Update ntsynt to 1.0.2 (#50025) --- recipes/ntsynt/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/ntsynt/meta.yaml b/recipes/ntsynt/meta.yaml index 1229bf07bc8b3..96b331202d4a4 100644 --- a/recipes/ntsynt/meta.yaml +++ b/recipes/ntsynt/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ntSynt" %} -{% set version = "1.0.1" %} +{% set version = "1.0.2" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: https://github.com/bcgsc/ntSynt/releases/download/v{{ version }}/{{ name }}-{{ version }}.tar.gz - sha256: 71fa06c73481313518a504586b86a2a32cd49006ce6728b40eef0d455b9bb409 + sha256: 6ada92dfe51dec8cd47900a5c41ee3c649cc95777eb81fe860e10748ce04e133 build: - number: 3 + number: 0 run_exports: - {{ pin_subpackage("ntsynt", max_pin="x") }} From 496f8d4a416b70e8792ab860a6dfd666911eab7d Mon Sep 17 00:00:00 2001 From: Jianshu_Zhao <38149286+jianshu93@users.noreply.github.com> Date: Wed, 14 Aug 2024 00:04:19 -0400 Subject: [PATCH 1236/1514] Update gsearch v0.2.1 (#50030) --- recipes/gsearch/meta.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/gsearch/meta.yaml b/recipes/gsearch/meta.yaml index 45b11240f819f..e7611a00fd79f 100644 --- a/recipes/gsearch/meta.yaml +++ b/recipes/gsearch/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.2.0" %} +{% set version = "0.2.1" %} package: name: gsearch @@ -11,7 +11,7 @@ build: skip: True # [osx] source: url: https://github.com/jianshu93/gsearch/archive/v{{ version }}.tar.gz - sha256: eb535c1757667a61fb85469910ece55a4344c18c77e1b7013a22b050535d1531 + sha256: baafe82d1f4b46af3365db0803e10528bb1f8f2f2d03d0cd2655d46a02616e5e requirements: build: @@ -33,3 +33,5 @@ extra: maintainers: - Jean Pierre-Both - Jianshu Zhao + identifiers: + - https://doi.org/10.1093/nar/gkae609 From 86785cb18a3782fd3f966c849b41fb8c42e1abd3 Mon Sep 17 00:00:00 2001 From: DrKaiyangZheng <131530767+DrKaiyangZheng@users.noreply.github.com> Date: Wed, 14 Aug 2024 12:05:23 +0800 Subject: [PATCH 1237/1514] Update VITAP from v.1.1 to v.1.5 (#50016) --- recipes/vitap/meta.yaml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/recipes/vitap/meta.yaml b/recipes/vitap/meta.yaml index 8dd3b8e63c1a9..7b8d4f94b6d99 100644 --- a/recipes/vitap/meta.yaml +++ b/recipes/vitap/meta.yaml @@ -1,5 +1,5 @@ {% set name = "vitap" %} -{% set version = "1.2" %} +{% set version = "1.5" %} package: name: "{{ name|lower }}" @@ -7,8 +7,8 @@ package: source: url: https://github.com/DrKaiyangZheng/VITAP/archive/refs/tags/v.{{ version }}.tar.gz - sha256: 9c078e63902588394e03a9d05439fd43c584a83b8bada942d5a148a11e28e7ac - + sha256: 4384925f0f6f53f08eb2a16cabc3ea325efd39a7e76139803668744b030b1d9a + build: number: 0 noarch: python @@ -27,24 +27,23 @@ requirements: - scipy >=1.10 - pandas >=1.5 - numpy >=1.25 - - numpy >=1.25 - biopython >=1.78 - tqdm >=4.65 - diamond >=0.9 - entrez-direct =16.2 - seqkit >=2.5.1 - - prodigal >=2.6 + - prodigal-gv >=2.6 test: commands: - - VITAP --help - - VITAP assignment -h - VITAP upd -h + - VITAP assignment -h about: home: https://github.com/DrKaiyangZheng/VITAP/ license: GPL-3.0-only license_file: LICENSE license_family: GPL - summary: Viral Taxonomy Assigning Pipeline + summary: Viral Taxonomic Assignment Pipeline doc_url: https://github.com/DrKaiyangZheng/VITAP/blob/main/README.md + description: Viral Taxonomic Assignment Pipeline (VITAP) is a cutting-edge tool designed to address the growing need for accurate and comprehensive classification of DNA and RNA viral sequences. By integrating alignment-based techniques with graph theory, VITAP achieves high precision in classifying viral sequences, including those as short as 1000 base pairs, down to the genus level. From 60028cee7c186c0de8181ac82d8ab5e21b62d12b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 03:41:43 -0400 Subject: [PATCH 1238/1514] Update snakemake to 8.18.0 (#50033) --- recipes/snakemake/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake/meta.yaml b/recipes/snakemake/meta.yaml index 93570d5061e99..2e94fb3adf2c7 100644 --- a/recipes/snakemake/meta.yaml +++ b/recipes/snakemake/meta.yaml @@ -1,7 +1,7 @@ # Attention: when upgrading the version, please compare below dependencies with # https://github.com/snakemake/snakemake/blob/{version}/setup.cfg {% set name = "snakemake" %} -{% set version = "8.17.0" %} +{% set version = "8.18.0" %} package: name: {{ name }} @@ -9,7 +9,7 @@ package: source: url: https://pypi.io/packages/source/s/{{ name }}/snakemake-{{ version }}.tar.gz - sha256: e409a874f4138ff33761fb3e755a0fa190e7eceec0c893008edb563bd7cc855e + sha256: d9e7e44caa5218ee8fb3248e6642366fd69bcf3d56bcb2596c1ceb5437d7c5c4 build: number: 0 From c8c9a271c0c21042c950b84c9a2735b4572960a1 Mon Sep 17 00:00:00 2001 From: niklasmueboe <42138117+niklasmueboe@users.noreply.github.com> Date: Wed, 14 Aug 2024 07:56:36 +0000 Subject: [PATCH 1239/1514] Add sainsc recipe (#49845) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * draft sainsc recipe * Add run_exports * revise recipe * use variable name in run_exports * skip osx build --------- Co-authored-by: Müller-Bötticher Co-authored-by: Martin Grigorov --- recipes/sainsc/meta.yaml | 59 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 recipes/sainsc/meta.yaml diff --git a/recipes/sainsc/meta.yaml b/recipes/sainsc/meta.yaml new file mode 100644 index 0000000000000..90d868f22c6b1 --- /dev/null +++ b/recipes/sainsc/meta.yaml @@ -0,0 +1,59 @@ +{% set name = "sainsc" %} +{% set version = "0.1.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/sainsc-{{ version }}.tar.gz + sha256: 7dcf4326f71c57800a1ef7a2cab63d9416231004036dfc3c9ea70a2cae7b22f4 + +build: + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + skip: True # [osx] + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} + +requirements: + build: + - {{ compiler('rust') }} + host: + - python >=3.10 + - setuptools >=61.0.0 + - setuptools-scm >=6.2 + - setuptools-rust >=1.7 + - pip + run: + - python >=3.10 + - anndata >=0.9 + - matplotlib-base + - matplotlib-scalebar + - numba >=0.44 + - numpy >=1.21 + - pandas + - polars >=1 + - scikit-image >=0.18 + - scipy >=1.9 + - seaborn >=0.11 + +test: + imports: + - sainsc + commands: + - pip check + requires: + - pip + +about: + home: https://github.com/HiDiHlabs/sainsc + summary: Segmentation-free Analysis of In Situ Capture data + license: MIT + license_family: MIT + license_file: LICENSE + doc_url: https://sainsc.readthedocs.io/ + +extra: + recipe-maintainers: + - niklasmueboe From fe3b78c60b80ae7df3d92b5889f58f9377563061 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 04:37:14 -0400 Subject: [PATCH 1240/1514] Update snakemake-interface-storage-plugins to 3.2.4 (#50036) --- recipes/snakemake-interface-storage-plugins/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-interface-storage-plugins/meta.yaml b/recipes/snakemake-interface-storage-plugins/meta.yaml index 377dfe94187ab..6703b8f0f17f5 100644 --- a/recipes/snakemake-interface-storage-plugins/meta.yaml +++ b/recipes/snakemake-interface-storage-plugins/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-interface-storage-plugins" %} -{% set version = "3.2.3" %} +{% set version = "3.2.4" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_interface_storage_plugins-{{ version }}.tar.gz - sha256: b5be7c7dd0b4ec283bfc24f56070aa4047f67de44d8bc64c7aa9bf6ee590b27d + sha256: a44b99339f369703e3cfa5f21f3f513ca2000c8790c364be0e5df7d03fb264d3 build: noarch: python From aa3c4385b5d07865aa647e91609a326d4f9bac97 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 04:37:28 -0400 Subject: [PATCH 1241/1514] Update sainsc to 0.1.1 (#50035) --- recipes/sainsc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sainsc/meta.yaml b/recipes/sainsc/meta.yaml index 90d868f22c6b1..178b191c18d97 100644 --- a/recipes/sainsc/meta.yaml +++ b/recipes/sainsc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "sainsc" %} -{% set version = "0.1.0" %} +{% set version = "0.1.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/sainsc-{{ version }}.tar.gz - sha256: 7dcf4326f71c57800a1ef7a2cab63d9416231004036dfc3c9ea70a2cae7b22f4 + sha256: 43afd7d2c9f1b8b891893cfe730175d0e01d5443b7f17981a233109df4cbb228 build: script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation From e6f3b30e0fd314a2b2ecb8fedf267011fa6b095b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 05:13:58 -0400 Subject: [PATCH 1242/1514] Update gempipe to 1.34.1 (#50037) Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/gempipe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gempipe/meta.yaml b/recipes/gempipe/meta.yaml index 343b9cd4741a9..5095d27cbcc0c 100755 --- a/recipes/gempipe/meta.yaml +++ b/recipes/gempipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.34.0" %} +{% set version = "1.34.1" %} package: name: "gempipe" @@ -7,7 +7,7 @@ package: source: url: https://github.com/lazzarigioele/gempipe/archive/v{{ version }}.tar.gz - sha256: 59e71c796c348cef7de9a1c1db3eefef994e2e6e03a8cb686a66df43f002b67f + sha256: 9be89964a95e191f9fd00b81d16e78e59766ac0e4ec4545ad12f6bd77821d0ac build: From 2c1c740e4ddf752217e394185a140c9f8bf83679 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 14 Aug 2024 12:16:14 +0300 Subject: [PATCH 1243/1514] discosnp & dsk & short-read-connector: add linux-aarch64 builds (#50010) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/discosnp/meta.yaml | 6 +++++- recipes/dsk/build.sh | 4 +++- recipes/dsk/meta.yaml | 6 +++++- recipes/short-read-connector/meta.yaml | 8 +++++++- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/recipes/discosnp/meta.yaml b/recipes/discosnp/meta.yaml index aa63f1e864baf..67923ba1b5953 100644 --- a/recipes/discosnp/meta.yaml +++ b/recipes/discosnp/meta.yaml @@ -10,8 +10,10 @@ source: sha256: {{ sha256 }} build: - number: 3 + number: 4 skip: True # [osx] + run_exports: + - {{ pin_subpackage('discosnp', max_pin="x") }} requirements: build: @@ -38,6 +40,8 @@ about: summary: reference-free small variant caller for short read sequencing data extra: + additional-platforms: + - linux-aarch64 identifiers: - biotools:discosnp - doi:10.1093/nar/gkn000 diff --git a/recipes/dsk/build.sh b/recipes/dsk/build.sh index aa1fe014afa92..f833350da05ec 100644 --- a/recipes/dsk/build.sh +++ b/recipes/dsk/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + if [ `uname` == Darwin ]; then export MACOSX_DEPLOYMENT_TARGET=10.9 fi @@ -22,5 +24,5 @@ cmake .. \ -DCMAKE_PREFIX_PATH=${PREFIX} \ -DCPPUNIT_INCLUDE_DIR=${PREFIX}/include -make -j 2 +make -j ${CPU_COUNT} make install diff --git a/recipes/dsk/meta.yaml b/recipes/dsk/meta.yaml index a7090bf1d4bcb..d9f31a8beb004 100644 --- a/recipes/dsk/meta.yaml +++ b/recipes/dsk/meta.yaml @@ -11,9 +11,11 @@ source: - install_paths.patch build: - number: 4 + number: 5 # Requires clang>=4.5 skip: True # [osx] + run_exports: + - {{ pin_subpackage('dsk', max_pin='x') }} requirements: build: @@ -38,6 +40,8 @@ about: summary: DSK is a k-mer counter for reads or genomes. extra: + additional-platforms: + - linux-aarch64 identifiers: - biotools:dsk - doi:10.1093/bioinformatics/btt020 diff --git a/recipes/short-read-connector/meta.yaml b/recipes/short-read-connector/meta.yaml index b20e32de5f24b..cd9c0537505c8 100644 --- a/recipes/short-read-connector/meta.yaml +++ b/recipes/short-read-connector/meta.yaml @@ -7,8 +7,10 @@ source: md5: "2b7a3c9bdb5a3d3e2d3c9fdd9b496323" build: - number: 0 + number: 1 skip: True # [osx] + run_exports: + - {{ pin_subpackage('short-read-connector', max_pin="x") }} requirements: build: @@ -35,3 +37,7 @@ about: license_family: AGPL license_file: LICENSE summary: Short read connector enables the comparisons of two read sets + +extra: + additional-platforms: + - linux-aarch64 From cec6772b050cba73b809b4a3e948adf08d185e84 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 05:34:06 -0400 Subject: [PATCH 1244/1514] Update snakemake-storage-plugin-s3 to 0.2.12 (#50041) --- recipes/snakemake-storage-plugin-s3/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-s3/meta.yaml b/recipes/snakemake-storage-plugin-s3/meta.yaml index 998e66cac163b..b0e4efbecbe32 100644 --- a/recipes/snakemake-storage-plugin-s3/meta.yaml +++ b/recipes/snakemake-storage-plugin-s3/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-s3" %} -{% set version = "0.2.11" %} +{% set version = "0.2.12" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_s3-{{ version }}.tar.gz - sha256: edbac21ca22d2e674eaadf05f21c611891df37366d4fbd6a712d79172d788895 + sha256: 339bd425e18baabfb1404ab91dfe56a26499bf728fa3359fb4e0b17b287786a8 build: noarch: python From 32fc42458768566e48d447dc5d2cf20dd04b37ab Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 14 Aug 2024 04:54:37 -0500 Subject: [PATCH 1245/1514] Build Unicycler on python 3.8 (#50039) --- recipes/unicycler/meta.yaml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/recipes/unicycler/meta.yaml b/recipes/unicycler/meta.yaml index 8b0db344689bb..5e1fa962a312d 100644 --- a/recipes/unicycler/meta.yaml +++ b/recipes/unicycler/meta.yaml @@ -13,8 +13,7 @@ source: - misc.py.patch build: - number: 1 - skip: True # [py < 39] + number: 2 entry_points: - unicycler = unicycler.unicycler:main script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir @@ -42,13 +41,13 @@ test: - "COLUMNS=80 unicycler -h" about: - home: https://github.com/rrwick/Unicycler - license: GPL-3.0-or-later + home: "https://github.com/rrwick/Unicycler" + license: "GPL-3.0-or-later" license_family: GPL3 license_file: LICENSE summary: "Hybrid assembly pipeline for bacterial genomes." - dev_url: https://github.com/rrwick/Unicycler - doc_url: https://github.com/rrwick/Unicycler/wiki + dev_url: "https://github.com/rrwick/Unicycler" + doc_url: "https://github.com/rrwick/Unicycler/wiki" extra: identifiers: From 8ef0ca28160a481e3e9291f70c82bce92db62493 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 06:35:35 -0400 Subject: [PATCH 1246/1514] Update pymochi to 1.1 (#50045) --- recipes/pymochi/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pymochi/meta.yaml b/recipes/pymochi/meta.yaml index 7ce09a732e24f..35f5f7f435f61 100644 --- a/recipes/pymochi/meta.yaml +++ b/recipes/pymochi/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.0" %} +{% set version = "1.1" %} {% set github = "https://github.com/lehner-lab/MoCHI" %} package: @@ -7,7 +7,7 @@ package: source: url: {{ github }}/archive/v{{ version }}.tar.gz - sha256: 93bd3c32b5a686d5bacecf3d48678497eeed3bf799198ab453e21accefecbae7 + sha256: d021a858a3929858c8e8d0a6d5173680aa6097d90a8f05858f9ae08cb6902c17 build: noarch: python From 0494190888a5e7ffc251c158b149f58daaf7b696 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 06:36:01 -0400 Subject: [PATCH 1247/1514] Update scar to 0.6.1 (#50043) --- recipes/scar/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/scar/meta.yaml b/recipes/scar/meta.yaml index ed6eb33f81d7c..dffd95bf7d98b 100644 --- a/recipes/scar/meta.yaml +++ b/recipes/scar/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.6.0" %} -{% set sha256 = "f4a3ee980dcad4465d23e146e23605df61e4ebc016f2c7279820dcbc3ee111c1" %} +{% set version = "0.6.1" %} +{% set sha256 = "909e0dd7a262fc58b596b7442cca42eb422a93ebace953bd7c21c3a278b8c394" %} package: name: scar From 05f94d0a4784b1282f1fe4e902a38cc08a32d432 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Wed, 14 Aug 2024 13:40:12 +0300 Subject: [PATCH 1248/1514] sainsc: add linux-aarch64 build (#50040) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/sainsc/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/sainsc/meta.yaml b/recipes/sainsc/meta.yaml index 178b191c18d97..9d2841ddafa25 100644 --- a/recipes/sainsc/meta.yaml +++ b/recipes/sainsc/meta.yaml @@ -11,7 +11,7 @@ source: build: script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation - number: 0 + number: 1 skip: True # [osx] run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} @@ -55,5 +55,7 @@ about: doc_url: https://sainsc.readthedocs.io/ extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - niklasmueboe From dea6ae291b0def1af70b10169e46ee195b97f9e9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 06:43:37 -0400 Subject: [PATCH 1249/1514] Update gempipe to 1.34.2 (#50044) --- recipes/gempipe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gempipe/meta.yaml b/recipes/gempipe/meta.yaml index 5095d27cbcc0c..d85734ce17dcf 100755 --- a/recipes/gempipe/meta.yaml +++ b/recipes/gempipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.34.1" %} +{% set version = "1.34.2" %} package: name: "gempipe" @@ -7,7 +7,7 @@ package: source: url: https://github.com/lazzarigioele/gempipe/archive/v{{ version }}.tar.gz - sha256: 9be89964a95e191f9fd00b81d16e78e59766ac0e4ec4545ad12f6bd77821d0ac + sha256: 1e8ceab6faf29bd382ff0d413785884c6bff29872bb2af15e6991c761c4f5761 build: From 74204a1362753a1ade09c15e4aba0b1b7f7e9fd2 Mon Sep 17 00:00:00 2001 From: entzian Date: Wed, 14 Aug 2024 14:12:59 +0200 Subject: [PATCH 1250/1514] Update idemux to version 0.3.0 (#50020) Co-authored-by: gentzian --- recipes/idemuxcpp/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/idemuxcpp/meta.yaml b/recipes/idemuxcpp/meta.yaml index 9c260e6708b31..cff5ace451cb6 100644 --- a/recipes/idemuxcpp/meta.yaml +++ b/recipes/idemuxcpp/meta.yaml @@ -1,6 +1,6 @@ {% set name = "idemuxcpp" %} -{% set version = "0.2.0" %} -{% set sha256 = "0e44ed269b57b9577141c70361e6c5871ef3d76b302f9c8a4c0ff2d54f30bf01" %} +{% set version = "0.3.0" %} +{% set sha256 = "0d2099172bbf006dc0eb21c0c0eb720f0681ed5e77d3e7194f13025c66ccd373" %} package: name: {{ name }} From d53b3244561c9c8882e46f196f274c707fb9da79 Mon Sep 17 00:00:00 2001 From: niklasmueboe <42138117+niklasmueboe@users.noreply.github.com> Date: Wed, 14 Aug 2024 12:17:10 +0000 Subject: [PATCH 1251/1514] Update sainsc: Multiple python versions (#50042) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build for multiple python versions * bump build number * fix build selector --------- Co-authored-by: Müller-Bötticher Co-authored-by: Martin Grigorov --- recipes/sainsc/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/sainsc/meta.yaml b/recipes/sainsc/meta.yaml index 9d2841ddafa25..6b87a408fe62c 100644 --- a/recipes/sainsc/meta.yaml +++ b/recipes/sainsc/meta.yaml @@ -12,7 +12,7 @@ source: build: script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation number: 1 - skip: True # [osx] + skip: True # [osx or py<310] run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} @@ -20,13 +20,13 @@ requirements: build: - {{ compiler('rust') }} host: - - python >=3.10 + - python - setuptools >=61.0.0 - setuptools-scm >=6.2 - setuptools-rust >=1.7 - pip run: - - python >=3.10 + - python - anndata >=0.9 - matplotlib-base - matplotlib-scalebar From e04c48fa056997f9c2aabda743096e6442f0ae3d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 08:20:13 -0400 Subject: [PATCH 1252/1514] Update scar to 0.7.0 (#50046) --- recipes/scar/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/scar/meta.yaml b/recipes/scar/meta.yaml index dffd95bf7d98b..18d5c9ca181d9 100644 --- a/recipes/scar/meta.yaml +++ b/recipes/scar/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.6.1" %} -{% set sha256 = "909e0dd7a262fc58b596b7442cca42eb422a93ebace953bd7c21c3a278b8c394" %} +{% set version = "0.7.0" %} +{% set sha256 = "e3d75d2ee20fa5acce2db7456c00f9ad806e2355e2936dc7db2dcfff6038a3cb" %} package: name: scar From 21a97b2a9323142851d2bdc42df204017bfe57c0 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 08:42:55 -0400 Subject: [PATCH 1253/1514] Update snakemake-executor-plugin-googlebatch to 0.5.0 (#50048) --- recipes/snakemake-executor-plugin-googlebatch/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-executor-plugin-googlebatch/meta.yaml b/recipes/snakemake-executor-plugin-googlebatch/meta.yaml index e47a6fbc91962..1cc98c04baa22 100644 --- a/recipes/snakemake-executor-plugin-googlebatch/meta.yaml +++ b/recipes/snakemake-executor-plugin-googlebatch/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-executor-plugin-googlebatch" %} -{% set version = "0.4.0" %} +{% set version = "0.5.0" %} # Upon version update, requirements have to be checked! package: @@ -8,7 +8,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_executor_plugin_googlebatch-{{ version }}.tar.gz - sha256: ad1ebf74d6558bc5ea9d1849570fb3c5991413265c771d944e99aeb8c49217d2 + sha256: 242ddb2348db1837a0676e991b257e0924791d3dab20aa8f89d63c548adfd1cd build: noarch: python From 6b32b884c3ca42880951b84ae96679753e592e62 Mon Sep 17 00:00:00 2001 From: Luuk Harbers <40829819+ljwharbers@users.noreply.github.com> Date: Wed, 14 Aug 2024 15:26:46 +0200 Subject: [PATCH 1254/1514] Add recipe for pypi flexi-formatter (#50019) * added flexi-formatter * fixed yaml file * fixed yaml file * changed python version * added versions of packages * change dlinting * made recipe using grayskull * added lint fixes * removed bioconda comment * check with setuptools * changed simplesam req * added samtools * added tests * adjusted version pins --- recipes/flexi-formatter/meta.yaml | 50 +++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 recipes/flexi-formatter/meta.yaml diff --git a/recipes/flexi-formatter/meta.yaml b/recipes/flexi-formatter/meta.yaml new file mode 100644 index 0000000000000..2f44c096358a5 --- /dev/null +++ b/recipes/flexi-formatter/meta.yaml @@ -0,0 +1,50 @@ +{% set name = "flexi-formatter" %} +{% set version = "0.0.1" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/flexi_formatter-{{ version }}.tar.gz + sha256: 25e973b73a571d5e3cc23e7da9da616e8484b15c788e83cb1211a5ce8b0cbe16 + +build: + entry_points: + - flexi_formatter = flexi_formatter.reformat_flexiplex_tags:app + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + run_exports: + - {{ pin_subpackage(name|lower, max_pin='x.x') }} + +requirements: + host: + - python >=3 + - pip + - setuptools + run: + - python >=3 + - typer + - simplesam + - samtools + +test: + imports: + - flexi_formatter + - simplesam + commands: + - flexi_formatter --help + - samtools --help + requires: + - pip + +about: + home: "https://github.com/VIB-CCB-BioIT/flexiplex_tag_formatter" + summary: Moving flexiplex barcode and UMI to bam tags + license: MIT + license_file: LICENSE + +extra: + recipe-maintainers: + - ljwharbers From 4366b0c1e84020d55aa01c234671af8c08a0c6ae Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 12:34:10 -0400 Subject: [PATCH 1255/1514] Update pasty to 2.0.1 (#50059) * Update pasty to 2.0.1 * Update meta.yaml --------- Co-authored-by: Robert A. Petit III --- recipes/pasty/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pasty/meta.yaml b/recipes/pasty/meta.yaml index c0ac5731107c1..2ccd8e7b57c0b 100644 --- a/recipes/pasty/meta.yaml +++ b/recipes/pasty/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pasty" %} -{% set version = "2.0.0" %} +{% set version = "2.0.1" %} package: name: {{ name | lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/rpetit3/pasty/archive/v{{ version }}.tar.gz - sha256: f1d6d38c1a797b88249c896030192901ea1e399387a30cda0612537387619cc8 + sha256: cb299a9d450ed288e3607b467b74f970a5ecb8b4cde26a16e8afb75dce631022 build: number: 0 @@ -17,7 +17,7 @@ build: requirements: run: - - camlhmp >=0.2.2 + - camlhmp >=0.3.1 test: commands: From 57c4177776b3061b36c9492d9e9ce9ab68aeb539 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 14:50:27 -0400 Subject: [PATCH 1256/1514] Update harpy to 1.6 (#50051) --- recipes/harpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index 700b7f7c6c316..62a1c61cda081 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.5" %} -{% set sha256 = "ae5aa811bff42620f5b8adb1d39f41a9d7e63f332b846b5f6b389e55892c9552" %} +{% set version = "1.6" %} +{% set sha256 = "1029bf65fa6ea16e94c223407e6131094de3e6192440a7ac5a5852f49065fc62" %} package: name: harpy From 93a30a8bc37ab107cd86f2b368a45ee7a8f16fd8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 14:51:05 -0400 Subject: [PATCH 1257/1514] Update snakemake-interface-common to 1.17.3 (#50064) --- recipes/snakemake-interface-common/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-interface-common/meta.yaml b/recipes/snakemake-interface-common/meta.yaml index 854fad21ef1e9..63b0ac8ef24ec 100644 --- a/recipes/snakemake-interface-common/meta.yaml +++ b/recipes/snakemake-interface-common/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-interface-common" %} -{% set version = "1.17.2" %} +{% set version = "1.17.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_interface_common-{{ version }}.tar.gz - sha256: 7a2bba88df98c1a0a5cec89b835c62dd2e6e72c1fb8fd104fe73405c800b87c0 + sha256: cca6e2c728072a285a8e750f00fdd98d9c50063912184c41f8b89e4cab66c7b0 build: noarch: python From cbd3404fb9c707f5ab651828f9130bd015bf5d36 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 14:51:27 -0400 Subject: [PATCH 1258/1514] Update psm-utils to 1.0.0 (#50053) --- recipes/psm-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/psm-utils/meta.yaml b/recipes/psm-utils/meta.yaml index 526d07c3caedb..70adfed61ccec 100644 --- a/recipes/psm-utils/meta.yaml +++ b/recipes/psm-utils/meta.yaml @@ -1,6 +1,6 @@ {% set name = "psm-utils" %} -{% set version = "0.9.0" %} -{% set sha256 = "445bb667088d237d0b78f443d184b080a9ce6b33eab3b585295ce51194950abb" %} +{% set version = "1.0.0" %} +{% set sha256 = "75377a3347e3b8d9889ec4c2939d91b565fc9473c511d6d0a590c9a7d1c345ff" %} package: name: {{ name|lower }} From 8b37a777a2ba060f6c301fd7abb26266cba99bb7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 14:51:39 -0400 Subject: [PATCH 1259/1514] Update mgikit to 0.1.6 (#50054) --- recipes/mgikit/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/mgikit/meta.yaml b/recipes/mgikit/meta.yaml index 900126f1a46ed..c519032f8deb4 100644 --- a/recipes/mgikit/meta.yaml +++ b/recipes/mgikit/meta.yaml @@ -1,17 +1,17 @@ -{% set version = "0.1.5" %} +{% set version = "0.1.6" %} package: name: mgikit version: {{ version }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('mgikit', max_pin="x.x") }} source: url: https://github.com/sagc-bioinformatics/mgikit/archive/refs/tags/v{{ version }}.tar.gz - sha256: 3f079452f3d2b2734843ae1fc821e956d45949cb3d7f8c3ce99d259af9eb2ac0 + sha256: 6f94322108cb8ac62a7dbd213d95949b6ac82eddb6ff07221e62820461be3d9d requirements: build: From 55aeac08f33bf5f81a296b3d41877af53f869c77 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 14:56:08 -0400 Subject: [PATCH 1260/1514] Update oakvar to 2.11.4 (#50055) --- recipes/oakvar/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/oakvar/meta.yaml b/recipes/oakvar/meta.yaml index 7f05f8d15b67a..447b1ecb074e9 100644 --- a/recipes/oakvar/meta.yaml +++ b/recipes/oakvar/meta.yaml @@ -1,6 +1,6 @@ {% set name = "OakVar" %} -{% set version = "2.11.3" %} -{% set sha256 = "2d79d3b313338ad22ba32588261e0795567c9687b951746472ca46e8ee6e61dd" %} +{% set version = "2.11.4" %} +{% set sha256 = "7cdb934152826f23b5d125e493e60c034c353f45ce566215020b43ba3eb1b4e7" %} package: name: {{ name|lower }} From 8aeb6a7105a9b0c1eb6abe549f4be80ae1b20ec2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 14:56:16 -0400 Subject: [PATCH 1261/1514] Update orthanq to 1.7.2 (#50056) --- recipes/orthanq/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/orthanq/meta.yaml b/recipes/orthanq/meta.yaml index 61374a7b9a177..6e1e571e1a440 100644 --- a/recipes/orthanq/meta.yaml +++ b/recipes/orthanq/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.7.1" %} +{% set version = "1.7.2" %} package: name: orthanq @@ -12,7 +12,7 @@ build: source: url: https://github.com/orthanq/orthanq/archive/v{{ version }}.tar.gz - sha256: 1e918960bd307cdd7d21ef341d1f0827abe8bb243bb4c15266c957dc5b70c07b + sha256: 12f8170e92fecf99bde81c26049f6a811b751395a1e7cda45ca0810cef42e81e requirements: build: From 273db632f27b72aa8208f43a6b004f377227f3a8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 14:59:17 -0400 Subject: [PATCH 1262/1514] Update haplotaglr to 1.1.8 (#50057) --- recipes/haplotaglr/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/haplotaglr/meta.yaml b/recipes/haplotaglr/meta.yaml index f7f9cae84e6d8..4ac843920c730 100644 --- a/recipes/haplotaglr/meta.yaml +++ b/recipes/haplotaglr/meta.yaml @@ -1,5 +1,5 @@ {% set name = "HaplotagLR" %} -{% set version = "1.1.7" %} +{% set version = "1.1.8" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: f3da6fe189e57754f2d6911d1cf497a08dcc4ab9f9a4ee25998023fcde602ed3 + sha256: 085f1c930ab0fa3452e2d421515419a8e0031d7cdb9b2a3f635ec994a708a490 build: number: 0 From ffb52a9c9aeeee9f8aab2a69bbd67a862d3e8234 Mon Sep 17 00:00:00 2001 From: niklasmueboe <42138117+niklasmueboe@users.noreply.github.com> Date: Wed, 14 Aug 2024 20:22:27 +0000 Subject: [PATCH 1263/1514] Update sainsc: add osx support (#50049) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add osx support * bump build number * osx-arm64 only * selector precedence --------- Co-authored-by: Müller-Bötticher --- recipes/sainsc/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/sainsc/meta.yaml b/recipes/sainsc/meta.yaml index 6b87a408fe62c..d426091bed58c 100644 --- a/recipes/sainsc/meta.yaml +++ b/recipes/sainsc/meta.yaml @@ -11,8 +11,8 @@ source: build: script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation - number: 1 - skip: True # [osx or py<310] + number: 2 + skip: True # [(osx and not arm64) or py<310] run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} @@ -57,5 +57,6 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 recipe-maintainers: - niklasmueboe From 211f8eaeca4087b0c60d53d6ee84b86e10697f01 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 16:49:58 -0400 Subject: [PATCH 1264/1514] Update gencove to 2.18.5 (#50052) --- recipes/gencove/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gencove/meta.yaml b/recipes/gencove/meta.yaml index dd588c788987b..da047bd0ccbbe 100644 --- a/recipes/gencove/meta.yaml +++ b/recipes/gencove/meta.yaml @@ -1,6 +1,6 @@ {% set name = "gencove" %} -{% set version = "2.18.3" %} -{% set sha256 = "e4762be0bc238bbe13c98daa1e4eead1a5a14d65b6651650238784adf8c093f2" %} +{% set version = "2.18.5" %} +{% set sha256 = "785a6f076770116f45ecb1b85458328db540c244183509e9d4ef368d78bb58bf" %} package: name: {{ name }} From 9c6c096ad4070d7dd1249f4eea9a7b5eea20132f Mon Sep 17 00:00:00 2001 From: Julian Uszkoreit Date: Wed, 14 Aug 2024 22:50:49 +0200 Subject: [PATCH 1265/1514] Update pia: Force Java version 21 (#50058) --- recipes/pia/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pia/meta.yaml b/recipes/pia/meta.yaml index 83c9eb152c594..039016c4488e9 100644 --- a/recipes/pia/meta.yaml +++ b/recipes/pia/meta.yaml @@ -8,7 +8,7 @@ package: build: noarch: generic - number: 0 + number: 2 run_exports: - {{ pin_subpackage('pia', max_pin="x") }} @@ -18,7 +18,7 @@ source: requirements: run: - - openjdk >=21 + - openjdk =21 test: commands: From e9e46e9832d28600f389b67e58736ef0aa04e222 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 17:19:47 -0400 Subject: [PATCH 1266/1514] Update pasty to 2.0.2 (#50066) --- recipes/pasty/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pasty/meta.yaml b/recipes/pasty/meta.yaml index 2ccd8e7b57c0b..094469c7fed57 100644 --- a/recipes/pasty/meta.yaml +++ b/recipes/pasty/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pasty" %} -{% set version = "2.0.1" %} +{% set version = "2.0.2" %} package: name: {{ name | lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/rpetit3/pasty/archive/v{{ version }}.tar.gz - sha256: cb299a9d450ed288e3607b467b74f970a5ecb8b4cde26a16e8afb75dce631022 + sha256: 4c1a099dd2fd7a0a190f1e13c0df98aeb744ca068619a89055a8a2e505213df6 build: number: 0 From a336de218686dfbc58748ff75faa9f0b309fd457 Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Wed, 14 Aug 2024 23:47:09 +0200 Subject: [PATCH 1267/1514] update PASTA to 1.9.2 and SEPP to 4.5.4, i.e. unpin HMMER and lift py <=3.9 (#47895) * using latest release of upstream * use recent gapc update with hopes to compile on OSX * add subrecipe for older version 4.3.10 (pinned in qiime2) which shall additionally expose upp.config * upstream is not responding to create new tag, thus source from HEAD to get compatibility with python 3.10 * use latest upstream release lifting the hmmer pinning and relaxing py to <= 3.10 * reset build number * unpin hmmer * patch pasta files to avoid U mode * adding the v * update patch * use gsed for OSX * use new release --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/pasta/meta.yaml | 4 ++-- recipes/sepp/meta.yaml | 16 ++++++++-------- recipes/sepp/nodeps.setup.py.patch | 6 +++--- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/recipes/pasta/meta.yaml b/recipes/pasta/meta.yaml index 7f99e4ed3861d..4de487940d980 100644 --- a/recipes/pasta/meta.yaml +++ b/recipes/pasta/meta.yaml @@ -32,7 +32,7 @@ requirements: - raxml - muscle <4 # later versions expects other cmd argument names - mafft - - hmmer ==3.1b2 + - hmmer - prank run: @@ -46,7 +46,7 @@ requirements: - raxml - muscle <4 # later versions expects other cmd argument names - mafft - - hmmer ==3.1b2 + - hmmer - prank test: diff --git a/recipes/sepp/meta.yaml b/recipes/sepp/meta.yaml index 980e754e11f8c..5a7caf0a8acaa 100644 --- a/recipes/sepp/meta.yaml +++ b/recipes/sepp/meta.yaml @@ -1,11 +1,11 @@ -{% set version = "4.5.1" %} -{% set sha256 = "51e052569ae89f586a1a94c804f09fe1b7910a3ffff7664e2005f18c7d3f717b" %} +{% set version = "4.5.4" %} +{% set sha256 = "e30cfffd13adb904ef4d1d6fef3d72a49f5269438c8bc4f6fd0924abaa5d75eb" %} package: name: sepp version: '{{version}}' source: - - url: https://github.com/smirarab/sepp/archive/{{version}}.tar.gz + - url: https://github.com/smirarab/sepp/archive/v{{version}}.tar.gz sha256: '{{sha256}}' patches: - relocate.run-sepp.sh.patch @@ -15,24 +15,24 @@ source: - nodeps.setup.py.patch build: - number: 4 + number: 0 run_exports: - {{ pin_subpackage('sepp', max_pin="x") }} requirements: host: - - python <=3.9 + - python <=3.10 - setuptools - pip - dendropy <=4.5.1 - openjdk - - hmmer ==3.1b2 + - hmmer run: - - python <=3.9 + - python <=3.10 - dendropy <=4.5.1 - openjdk - - hmmer ==3.1b2 + - hmmer - pasta # TODO: source bundled binaries as conda packages. # But pplacer / guppy are not available for OSX. diff --git a/recipes/sepp/nodeps.setup.py.patch b/recipes/sepp/nodeps.setup.py.patch index f93b859cf421e..f63161a7cd5d0 100644 --- a/recipes/sepp/nodeps.setup.py.patch +++ b/recipes/sepp/nodeps.setup.py.patch @@ -4,8 +4,8 @@ author_email="smirarab@gmail.com, namphuon@cs.utah.edu", license="General Public License (GPL)", -- install_requires=["dendropy >= 4.0.0"], +- install_requires=["dendropy >= 4.6.0"], + install_requires=[], provides=["sepp"], - scripts=["run_sepp.py", 'run_tipp.py', 'run_upp.py', 'run_abundance.py', - "split_sequences.py", "run_tipp_tool.py"], + scripts=["run_sepp.py", 'run_upp.py', "split_sequences.py"], + cmdclass={"config": ConfigSepp, "upp": ConfigUPP}, From 88a033c14fb5bf883266ec9cd45b25dcd33e2447 Mon Sep 17 00:00:00 2001 From: "Robert A. Petit III" Date: Wed, 14 Aug 2024 16:57:05 -0600 Subject: [PATCH 1268/1514] rebuild pasty (#50068) --- recipes/pasty/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/pasty/meta.yaml b/recipes/pasty/meta.yaml index 094469c7fed57..eb3c86b19ff16 100644 --- a/recipes/pasty/meta.yaml +++ b/recipes/pasty/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 4c1a099dd2fd7a0a190f1e13c0df98aeb744ca068619a89055a8a2e505213df6 build: - number: 0 + number: 1 noarch: generic run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} From 9254647345438fa2379ca6f4012694195a990591 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 22:58:11 -0400 Subject: [PATCH 1269/1514] Update prot-scriber to 0.1.6 (#50069) --- recipes/prot-scriber/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/prot-scriber/meta.yaml b/recipes/prot-scriber/meta.yaml index c74897c5d6a79..a4675c6c38560 100644 --- a/recipes/prot-scriber/meta.yaml +++ b/recipes/prot-scriber/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.1.5" %} -{% set sha256 = "75d75e7a78b631716efb25f762b18405ada70eec3558a2b721c8c633c308269e" %} +{% set version = "0.1.6" %} +{% set sha256 = "f79722ec7338b354df855b94f250f509e7742cd8cc4762a21c96905fc162f92f" %} package: name: prot-scriber From ecb8e9223e29640fc88b355289fbff286274c973 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 14 Aug 2024 23:02:30 -0400 Subject: [PATCH 1270/1514] Update mycotools to 0.31.48 (#50067) --- recipes/mycotools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index 300daef358a6b..8fb5793d984bd 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mycotools" %} -{% set version = "0.31.46" %} +{% set version = "0.31.48" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mycotools-{{ version }}.tar.gz - sha256: 54aa3ee22d7ee95fbc3826681f54a18f33bab7d1e1fd34471085dcff39804991 + sha256: 0ab05973c50e363f6554bf15d8fa16f77765e0152acc35ba14ccca4cc054ce84 build: entry_points: From 15bbfaf993bbc9bbe016f2c27171c46a678635c7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 15 Aug 2024 03:39:38 -0400 Subject: [PATCH 1271/1514] Update bionumpy to 1.0.12 (#50060) --- recipes/bionumpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/bionumpy/meta.yaml b/recipes/bionumpy/meta.yaml index 58dd9b847dd6f..382819362ccd1 100644 --- a/recipes/bionumpy/meta.yaml +++ b/recipes/bionumpy/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.0.11" %} +{% set version = "1.0.12" %} package: name: bionumpy @@ -6,7 +6,7 @@ package: source: url: https://github.com/bionumpy/bionumpy/archive/refs/tags/v{{ version }}.tar.gz - sha256: 14883379dbae1a7cd80b1e19e7593db0f9966413c2a1ffb97f58690fec5dc929 + sha256: 7625c3087677cee45b04bda27542d3436348ae194c938d2a1c2388941471f3b8 build: noarch: python From 9924585c37594f45c2b2693b72a9039b81582159 Mon Sep 17 00:00:00 2001 From: Anshu Gupta <114828525+ang037@users.noreply.github.com> Date: Thu, 15 Aug 2024 01:05:41 -0700 Subject: [PATCH 1272/1514] Add "roadies" package (#49952) * added roadies recipe * updated meta.yaml * addressed lint errors * removed cross platform dependency * updated meta.yaml to support macos64 * removed gxx since cxx present * modified cxx env variable * removed python zlib and libboost from build deps --- recipes/roadies/build.sh | 42 +++++++++++++++++++++++ recipes/roadies/meta.yaml | 70 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 112 insertions(+) create mode 100644 recipes/roadies/build.sh create mode 100644 recipes/roadies/meta.yaml diff --git a/recipes/roadies/build.sh b/recipes/roadies/build.sh new file mode 100644 index 0000000000000..201708dac381b --- /dev/null +++ b/recipes/roadies/build.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +# Debugging: Print current directory and list its contents +echo "Current directory: $(pwd)" +echo "Contents:" +ls -al + +mkdir -p $PREFIX/ROADIES + +# Download and setup ASTER repository if not already done +if [ ! -d "ASTER-Linux" ]; then + wget -q https://github.com/chaoszhang/ASTER/archive/refs/heads/Linux.zip -O Linux.zip + unzip -q Linux.zip + cd ASTER-Linux + $CXX -D CASTLES -std=gnu++11 -march=native -Ofast -pthread src/astral-pro.cpp -o bin/astral-pro2 + cd .. +fi + +# Build sampling code +if [ ! -d "workflow/scripts/sampling/build" ]; then + cd workflow/scripts/sampling + mkdir -p build + cd build + cmake .. -DCMAKE_INSTALL_PREFIX=$PREFIX + make + cd ../../../.. +fi + +mkdir -p pasta + + +# Debugging: Print current directory and list its contents before copying +echo "Current directory before copying ROADIES: $(pwd)" +echo "Contents before copying ROADIES:" +ls -al + +# Copy the entire ROADIES directory to the PREFIX directory +cp -r . $PREFIX/ROADIES + +# Debugging: Verify the contents of the PREFIX directory +echo "Contents of PREFIX:" +ls -al $PREFIX \ No newline at end of file diff --git a/recipes/roadies/meta.yaml b/recipes/roadies/meta.yaml new file mode 100644 index 0000000000000..731f2471a53d3 --- /dev/null +++ b/recipes/roadies/meta.yaml @@ -0,0 +1,70 @@ +{% set version = "0.1.4" %} + +package: + name: roadies + version: {{ version }} + +source: + url: https://github.com/TurakhiaLab/ROADIES/archive/v{{ version }}.tar.gz + sha256: e3b4b89f247824c4b61e790f094320624bde47e295e2158a9ad83c05dfa83d54 + +build: + number: 0 + run_exports: + - {{ pin_subpackage("roadies", max_pin=None) }} + +requirements: + build: + - {{ compiler('cxx') }} + - cmake + - make + - wget + - unzip + - openjdk >=1.7 + + host: + - python ==3.9 + - pip + - libboost-devel + - zlib + run: + - python ==3.9 + - biopython + - numpy + - libboost-devel + - pip + - matplotlib-base + - seaborn + - ete3 + - pyyaml + - raxml-ng + - snakemake + - pasta >=1.9.0 + - mashtree + - treeswift >=1.1.28 + - fasttree >=2.1.11 + - alive-progress + +test: + commands: + - python $PREFIX/ROADIES/run_roadies.py --help + +about: + home: "https://github.com/TurakhiaLab/ROADIES" + license: MIT + license_family: MIT + license_file: LICENSE + doc_url: "https://turakhia.ucsd.edu/ROADIES/" + summary: "Reference-free Orthology-free Alignment-free DIscordance aware Estimation of Species tree (ROADIES)" + description: | + ROADIES is an end-to-end pipeline designed for phylogenetic tree inference of the species directly from their raw genomic assemblies. ROADIES offers a fully automated, easy-to-use, scalable solution, eliminating any error-prone manual steps and providing unique flexibility in adjusting the tradeoff between accuracy and runtime. + +extra: + recipe-maintainers: + - ang037 + identifiers: + - doi:10.1101/2024.05.27.596098 + edam: + topic: Phylogenetics + operation: Species tree estimation + \ No newline at end of file From 2e1817745dedc2ecbcafa05fabd22e1b0e3d44ec Mon Sep 17 00:00:00 2001 From: clementcoclet <94937696+clementcoclet@users.noreply.github.com> Date: Thu, 15 Aug 2024 02:05:57 -0700 Subject: [PATCH 1273/1514] Mvip (#50065) * mvip_recipes * update_meta.yaml * mvip_new_version_release * build_number_Update_meta_yaml * mvip v.1.1.1 minor issues * Reset the build number * Update package version in summary report of Module 00 --------- Co-authored-by: Clement Coclet - 067048 Co-authored-by: Martin Grigorov --- recipes/mvip/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mvip/meta.yaml b/recipes/mvip/meta.yaml index f0f8bbd911427..48a731822a9fd 100644 --- a/recipes/mvip/meta.yaml +++ b/recipes/mvip/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mvip" %} -{% set version = "1.1.1" %} +{% set version = "1.1.2" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 53e82ef6b4ffddba5c14d19d267c148a6d41432c5833a2b4750bb4ccdadcf0f3 + sha256: c76dabb1383556692f7a43efb32365a1e9ef5e4159fe10d994a49a5f4b2408af build: number: 0 From ab8c53609bd1b9c755a2e49f833493036e1ec628 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 15 Aug 2024 06:06:45 -0400 Subject: [PATCH 1274/1514] Update quantms-utils to 0.0.8 (#50076) --- recipes/quantms-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/quantms-utils/meta.yaml b/recipes/quantms-utils/meta.yaml index 7df0df88180d0..8ed626f8c28d1 100644 --- a/recipes/quantms-utils/meta.yaml +++ b/recipes/quantms-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "quantms-utils" %} -{% set version = "0.0.7" %} +{% set version = "0.0.8" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/quantms_utils-{{ version }}.tar.gz - sha256: 293561016439c01004c55670ab18b75c8ae92513724a44df23dfd436557dfe8c + sha256: 1c18f90d274002a7de421b1afcda6c3500ef3ce21dafdf5ba950066ae7a71b15 build: entry_points: From 10669a1ae9007b7955ebe5445bb34f8d58f99c8e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 15 Aug 2024 07:25:50 -0400 Subject: [PATCH 1275/1514] Update msweep to 2.1.1 (#50077) --- recipes/msweep/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/msweep/meta.yaml b/recipes/msweep/meta.yaml index 270f718e0e07e..c566243b53c2b 100644 --- a/recipes/msweep/meta.yaml +++ b/recipes/msweep/meta.yaml @@ -1,6 +1,6 @@ {% set name = "mSWEEP" %} -{% set version = "2.1.0" %} -{% set sha256 = "8654eefab5f1fa9fb483ac5bef5b46f22c7bc3e9f2023e77c7f15ebd2c176930" %} +{% set version = "2.1.1" %} +{% set sha256 = "aaa53c770e2881f6ccd89e3e075d8fcd7a500fee67fd5ecf3cda05cc4a547ecb" %} {% set user = "PROBIC" %} package: From 56b73191821e67ebb699e8e9f280b13a5e42f6b0 Mon Sep 17 00:00:00 2001 From: Stefan Janssen Date: Thu, 15 Aug 2024 13:58:51 +0200 Subject: [PATCH 1276/1514] lift restrictions of dendropy, which is a dependency of SEPP (#50075) --- recipes/pasta/meta.yaml | 6 +++--- recipes/sepp/meta.yaml | 9 +++------ 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/recipes/pasta/meta.yaml b/recipes/pasta/meta.yaml index 4de487940d980..03ae3152eaa67 100644 --- a/recipes/pasta/meta.yaml +++ b/recipes/pasta/meta.yaml @@ -13,7 +13,7 @@ source: - mpstart.patch # issue in OSX py38 (not in Linux nor OSX py37): RuntimeError: An attempt has been made to start a new process before the current process has finished its bootstrapping phase. build: - number: 0 + number: 1 skip: true # [py == 312] run_exports: - {{ pin_subpackage('pasta', max_pin="x") }} @@ -22,7 +22,7 @@ requirements: host: - python - setuptools - - dendropy <=4.5.1 + - dendropy - wget - openjdk - pcre @@ -37,7 +37,7 @@ requirements: run: - python - - dendropy <=4.5.1 # later version do not expose _convert_node_to_root_polytomy + - dendropy - openjdk - pcre - pymongo >=3.3.0 diff --git a/recipes/sepp/meta.yaml b/recipes/sepp/meta.yaml index 5a7caf0a8acaa..de593c2478bbb 100644 --- a/recipes/sepp/meta.yaml +++ b/recipes/sepp/meta.yaml @@ -10,12 +10,9 @@ source: patches: - relocate.run-sepp.sh.patch - relocate.sepp.config.patch - # prevent python's setup to search for dendropy dependency via pip. - # Instead use dendropy provided by conda: - - nodeps.setup.py.patch build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('sepp', max_pin="x") }} @@ -24,13 +21,13 @@ requirements: - python <=3.10 - setuptools - pip - - dendropy <=4.5.1 + - dendropy - openjdk - hmmer run: - python <=3.10 - - dendropy <=4.5.1 + - dendropy - openjdk - hmmer - pasta From b53932f8f12d8715f5c28ec7145ccc4e9c7be051 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 15 Aug 2024 08:01:03 -0400 Subject: [PATCH 1277/1514] Update diphase to 1.0.1 (#50078) --- recipes/diphase/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/diphase/meta.yaml b/recipes/diphase/meta.yaml index c7e671514d4ce..16aa98b52ec4c 100644 --- a/recipes/diphase/meta.yaml +++ b/recipes/diphase/meta.yaml @@ -1,6 +1,6 @@ {% set name = "diphase" %} -{% set version = "1.0.0" %} -{% set sha256 = "bd6ae483fb7763eff44935d3a19c7d8df604805e84615ed65566161458b50e77" %} +{% set version = "1.0.1" %} +{% set sha256 = "64a65bcf026b9401797e92bf1a4ec0a8151f0e7e27f7308166cdb24c9f89f03a" %} package: name: {{ name }} From 6c30c0cb5bde18b86ad323aac727bc54d0fffd25 Mon Sep 17 00:00:00 2001 From: Anup Kumar Date: Thu, 15 Aug 2024 15:12:11 +0200 Subject: [PATCH 1278/1514] Add Bioconda recipe (#50062) * add files * fix package * remove comments * add permissions * build package * fix reviw --- recipes/apu-label-propagation/build.sh | 8 ++++++++ recipes/apu-label-propagation/meta.yaml | 27 +++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 recipes/apu-label-propagation/build.sh create mode 100644 recipes/apu-label-propagation/meta.yaml diff --git a/recipes/apu-label-propagation/build.sh b/recipes/apu-label-propagation/build.sh new file mode 100644 index 0000000000000..5eb7ac1709302 --- /dev/null +++ b/recipes/apu-label-propagation/build.sh @@ -0,0 +1,8 @@ +#!/bin/bash +mkdir -p ${PREFIX}/bin + +cd src + +$CC -o $PREFIX/bin/apu-label-propagation apu_label_propagation.c -lm + +chmod u+x ${PREFIX}/bin/apu-label-propagation diff --git a/recipes/apu-label-propagation/meta.yaml b/recipes/apu-label-propagation/meta.yaml new file mode 100644 index 0000000000000..0b28bea058f5f --- /dev/null +++ b/recipes/apu-label-propagation/meta.yaml @@ -0,0 +1,27 @@ +{% set version = "1.2" %} + +package: + name: apu-label-propagation + version: {{ version }} + +source: + url: https://github.com/anuprulez/apu_label_propagation/archive/refs/tags/{{ version }}.tar.gz + sha256: bc2a108a706ce16f628b3e805902fa29c6a51c335891cc20a394f8cfec87ea88 + +build: + number: 0 + run_exports: + - {{ pin_subpackage('apu-label-propagation', max_pin="x.x") }} + +requirements: + build: + - {{ compiler('c') }} + +test: + commands: + - apu-label-propagation + +about: + home: https://github.com/AndMastro/NIAPU + license: MIT + summary: Adaptive Positive-Unlabelled label propagation From 6d7c1a8ee59498d56b391c7166ec27809f7e743f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 15 Aug 2024 09:17:06 -0400 Subject: [PATCH 1279/1514] Update pybiolib to 1.2.50 (#50079) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index 4b79d5057b32c..204fd3707d32c 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.2.31" %} +{% set version = "1.2.50" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 39abd33afc379d9624ff7da4f0eb38acaf7a14f5c48aa0bbce6d761ca3632e6b + sha256: 126ad5392df11a3f7cb4e3def931b0d8900472c251f56e1b58ff6d74cc4726e5 build: number: 0 From 77ff7d08c60f52d5cb5211ab635cc1b4b1a84c42 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 15 Aug 2024 10:36:28 -0400 Subject: [PATCH 1280/1514] Update pbstarphase to 0.13.3 (#50084) --- recipes/pbstarphase/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pbstarphase/meta.yaml b/recipes/pbstarphase/meta.yaml index 315dbe59df582..116b3b5737bea 100644 --- a/recipes/pbstarphase/meta.yaml +++ b/recipes/pbstarphase/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pbstarphase" %} -{% set version = "0.13.2" %} -{% set sha256 = "648297e149009d7658c9425d56bbc23a6f6c051192f5dc88dc7a8f7383be9122" %} +{% set version = "0.13.3" %} +{% set sha256 = "3169cc00ef5a5a26d877893550e662bd0f9f817edbd113943178fd20f0a8d2b8" %} package: name: {{ name }} From 9bd902cf6dd241f4710aba1951a10c39d0efb058 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 15 Aug 2024 11:16:20 -0400 Subject: [PATCH 1281/1514] Update varfish-server-worker to 0.13.0 (#50085) --- recipes/varfish-server-worker/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/varfish-server-worker/meta.yaml b/recipes/varfish-server-worker/meta.yaml index 607e7a5b58f63..9c20439be990d 100644 --- a/recipes/varfish-server-worker/meta.yaml +++ b/recipes/varfish-server-worker/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.12.0" %} +{% set version = "0.13.0" %} package: name: varfish-server-worker @@ -12,7 +12,7 @@ build: source: url: https://github.com/varfish-org/varfish-server-worker/archive/refs/tags/v{{ version }}.tar.gz - sha256: da36b0cb9138adb4c30d1957f1d7d0e577fc49fc4b8bbad90fdd4d7f0f1e3b38 + sha256: 2a593575ae37bd1c9f934e45b378024912108d2391cccba1b9120c4685c2362a requirements: build: From 67a6fe571d683599cd598553c9fec37dda006728 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Thu, 15 Aug 2024 18:29:55 +0300 Subject: [PATCH 1282/1514] idemuxcpp: add aarch64/arm64 builds (#50047) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/idemuxcpp/build.sh | 4 +++- recipes/idemuxcpp/meta.yaml | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/recipes/idemuxcpp/build.sh b/recipes/idemuxcpp/build.sh index 7e69267c6d7cc..dae53d55b2803 100644 --- a/recipes/idemuxcpp/build.sh +++ b/recipes/idemuxcpp/build.sh @@ -1,8 +1,10 @@ #!/bin/sh +set -xe + export CXXFLAGS="-I${PREFIX}/include/bamtools ${CXXFLAGS}" export LDFLAGS="-L${PREFIX}/lib/ -lbamtools ${LDFLAGS}" ./configure --enable-tests --prefix="${PREFIX}" -make +make -j ${CPU_COUNT} make install make check diff --git a/recipes/idemuxcpp/meta.yaml b/recipes/idemuxcpp/meta.yaml index cff5ace451cb6..683204c9c9c9f 100644 --- a/recipes/idemuxcpp/meta.yaml +++ b/recipes/idemuxcpp/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('idemuxcpp', max_pin="x") }} @@ -40,5 +40,8 @@ about: summary: "A Lexogen tool for demultiplexing and index error correcting fastq files. Works with Lexogen i7, i5 and i1 barcodes." extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - entzian From 4cb5e5fd5c0089be9719681bdb2890d059dd3db1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 15 Aug 2024 11:33:17 -0400 Subject: [PATCH 1283/1514] Update pyrodigal-gv to 0.3.2 (#50088) --- recipes/pyrodigal-gv/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pyrodigal-gv/meta.yaml b/recipes/pyrodigal-gv/meta.yaml index 34996ec3ebe2b..fa9ca0b00d6c0 100644 --- a/recipes/pyrodigal-gv/meta.yaml +++ b/recipes/pyrodigal-gv/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pyrodigal-gv" %} -{% set version = "0.3.1" %} +{% set version = "0.3.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pyrodigal_gv-{{ version }}.tar.gz - sha256: 287f0507fad25f8c148a1d93a030e1a64b0434beba62f45354526b0eeef4ca97 + sha256: aeeff43daec2c4aec7830ae2400799aa90bf273bcca86656ef239bee8d7e5ea5 build: script: {{ PYTHON }} -m pip install . --ignore-installed --use-pep517 --no-deps -vvv From 32cf64d086a101d69abc50e095d3406ceb5a2f12 Mon Sep 17 00:00:00 2001 From: Anup Kumar Date: Thu, 15 Aug 2024 17:36:55 +0200 Subject: [PATCH 1284/1514] Add Nedbit features C script (#50081) * add files * rename folder * update upstream --- recipes/nedbit-features-calculator/build.sh | 8 ++++++ recipes/nedbit-features-calculator/meta.yaml | 27 ++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 recipes/nedbit-features-calculator/build.sh create mode 100644 recipes/nedbit-features-calculator/meta.yaml diff --git a/recipes/nedbit-features-calculator/build.sh b/recipes/nedbit-features-calculator/build.sh new file mode 100644 index 0000000000000..b57e9cfb29d0e --- /dev/null +++ b/recipes/nedbit-features-calculator/build.sh @@ -0,0 +1,8 @@ +#!/bin/bash +mkdir -p ${PREFIX}/bin + +cd src + +$CC -o $PREFIX/bin/nedbit-features-calculator nedbit_features_calculator.c -lm + +chmod u+x ${PREFIX}/bin/nedbit-features-calculator diff --git a/recipes/nedbit-features-calculator/meta.yaml b/recipes/nedbit-features-calculator/meta.yaml new file mode 100644 index 0000000000000..88dbacd2dc3a5 --- /dev/null +++ b/recipes/nedbit-features-calculator/meta.yaml @@ -0,0 +1,27 @@ +{% set version = "1.2" %} + +package: + name: nedbit-features-calculator + version: {{ version }} + +source: + url: https://github.com/anuprulez/NIAPU/archive/refs/tags/{{ version }}.tar.gz + sha256: 50424bf7df99b51dc71a4121beae89ef69b2bb4eaba559c99643baecb8544806 + +build: + number: 0 + run_exports: + - {{ pin_subpackage('nedbit-features-calculator', max_pin="x.x") }} + +requirements: + build: + - {{ compiler('c') }} + +test: + commands: + - nedbit-features-calculator + +about: + home: https://github.com/AndMastro/NIAPU + license: MIT + summary: Network diffusion and biology-informed topological features From 9edd6761369de8a5d18d4edf3c2216d0aa105cad Mon Sep 17 00:00:00 2001 From: Anup Kumar Date: Thu, 15 Aug 2024 17:37:12 +0200 Subject: [PATCH 1285/1514] add upstream (#50087) --- recipes/apu-label-propagation/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/apu-label-propagation/meta.yaml b/recipes/apu-label-propagation/meta.yaml index 0b28bea058f5f..45a66085517b2 100644 --- a/recipes/apu-label-propagation/meta.yaml +++ b/recipes/apu-label-propagation/meta.yaml @@ -5,11 +5,11 @@ package: version: {{ version }} source: - url: https://github.com/anuprulez/apu_label_propagation/archive/refs/tags/{{ version }}.tar.gz - sha256: bc2a108a706ce16f628b3e805902fa29c6a51c335891cc20a394f8cfec87ea88 + url: https://github.com/anuprulez/NIAPU/archive/refs/tags/{{ version }}.tar.gz + sha256: 50424bf7df99b51dc71a4121beae89ef69b2bb4eaba559c99643baecb8544806 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('apu-label-propagation', max_pin="x.x") }} From 118906e84f064edf3e23a5cfd59796fa629c31ea Mon Sep 17 00:00:00 2001 From: Sudaraka Mallawaarachchi Date: Fri, 16 Aug 2024 01:37:52 +1000 Subject: [PATCH 1286/1514] add tracs (#50070) * add tracs * typo fix * typo fix2 * typo fix3 * typo fix4 * fix python * rm llvm-openmp build dep * release_w_MIT_License * Fix version * Fix version_bug --------- Co-authored-by: Sudaraka88 --- recipes/tracs/meta.yaml | 64 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 recipes/tracs/meta.yaml diff --git a/recipes/tracs/meta.yaml b/recipes/tracs/meta.yaml new file mode 100644 index 0000000000000..27dd65f6653b3 --- /dev/null +++ b/recipes/tracs/meta.yaml @@ -0,0 +1,64 @@ +{% set version = "1.0.0" %} +{% set name = "tracs" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/gtonkinhill/{{ name|lower }}/archive/v{{ version }}.tar.gz + sha256: 8950cf46bf53160b03c639cf9c1aaca43e506ac60b081d3ba7ee0a3b61c800f9 + +build: + number: 0 + script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" + run_exports: + - {{ pin_subpackage('tracs', max_pin="x") }} + +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + host: + - python >=3.12 + - pip + - pybind11 + - boost-cpp + - zlib + - llvm-openmp + run: + - python >=3.12 + - numpy + - pandas + - sourmash + - joblib + - ncbi-genome-download + - pyfastx + - tqdm + - scipy + - plotly + - samtools + - htsbox + - minimap2 + +test: + imports: + - tracs + commands: + - tracs --help + - tracs --version + - tracs align --help + - tracs combine --help + - tracs distance --help + - tracs threshold --help + - tracs cluster --help + - tracs build-db --help + - tracs pipe --help + +about: + home: https://github.com/gtonkinhill/tracs + license: MIT + license_family: MIT + license_file: LICENSE + summary: 'Tracs - Fast pairwise transmission inference from single genome and/or metagenomic data' + doc_url: https://github.com/gtonkinhill/tracs/tree/main/docs \ No newline at end of file From 5f601b4b11b0a841c2bb3e1f58bebc683e412211 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 15 Aug 2024 12:13:59 -0400 Subject: [PATCH 1287/1514] Update orthanq to 1.7.4 (#50083) * Update orthanq to 1.7.3 * Update orthanq to 1.7.4 --- recipes/orthanq/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/orthanq/meta.yaml b/recipes/orthanq/meta.yaml index 6e1e571e1a440..4beab70fbdc47 100644 --- a/recipes/orthanq/meta.yaml +++ b/recipes/orthanq/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.7.2" %} +{% set version = "1.7.4" %} package: name: orthanq @@ -12,7 +12,7 @@ build: source: url: https://github.com/orthanq/orthanq/archive/v{{ version }}.tar.gz - sha256: 12f8170e92fecf99bde81c26049f6a811b751395a1e7cda45ca0810cef42e81e + sha256: b8cc21f9f39b5f7461b504df5a7b7201a6a6d19dba7bb849281302da21ce4772 requirements: build: From 073129e4d28cf56a14f4bd216fc2b26f88552c49 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 15 Aug 2024 15:46:15 -0400 Subject: [PATCH 1288/1514] Update hiphase to 1.4.4 (#50090) --- recipes/hiphase/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/hiphase/meta.yaml b/recipes/hiphase/meta.yaml index e87bc330fe6a5..c54d31da8d085 100644 --- a/recipes/hiphase/meta.yaml +++ b/recipes/hiphase/meta.yaml @@ -1,6 +1,6 @@ {% set name = "hiphase" %} -{% set version = "1.4.3" %} -{% set hiphase_sha256 = "e573cae2d0f90cbbf99171b1a9aa9e8e06104f54ccc93e40898354257b7f16c5" %} +{% set version = "1.4.4" %} +{% set hiphase_sha256 = "3fdff37542c0447e936525684a7e431430994ee810d60a43f319ae260a9161b0" %} package: name: {{ name }} From 03864cb47dff071765d58decda726e2190871415 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 15 Aug 2024 17:56:23 -0400 Subject: [PATCH 1289/1514] Update camlhmp to 1.0.0 (#50093) --- recipes/camlhmp/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/camlhmp/meta.yaml b/recipes/camlhmp/meta.yaml index 4a40b11a65bb0..307261630f3d6 100644 --- a/recipes/camlhmp/meta.yaml +++ b/recipes/camlhmp/meta.yaml @@ -1,5 +1,5 @@ {% set name = "camlhmp" %} -{% set version = "0.3.1" %} +{% set version = "1.0.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/camlhmp/camlhmp-{{ version }}.tar.gz - sha256: 5add4f82f4cc70bb5192a0bbe4fc3a6263aaa51353ddd0eb17833ec75ec1d008 + sha256: 91bb81e2c7e548a3e6acdd01f2276e54e4a82df491a61864aff647bd8b327c3d build: noarch: python From 75ba61e9a773519e47581c5adfedaaaa28e7c3ff Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 15 Aug 2024 22:20:56 -0400 Subject: [PATCH 1290/1514] Update sccmec to 1.1.0 (#50094) * Update sccmec to 1.1.0 * Update meta.yaml --------- Co-authored-by: Robert A. Petit III --- recipes/sccmec/meta.yaml | 72 ++++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/recipes/sccmec/meta.yaml b/recipes/sccmec/meta.yaml index 166bd125861d4..a71583506a783 100644 --- a/recipes/sccmec/meta.yaml +++ b/recipes/sccmec/meta.yaml @@ -1,36 +1,36 @@ -{% set name="sccmec" %} -{% set version = "1.0.0" %} -{% set sha256 = "1bbddeec9a1fb2d340a8971dfa6a705e0beca80c3ef03483b52079f91e242b6a" %} - -package: - name: {{ name }} - version: {{ version }} - -source: - url: https://github.com/rpetit3/sccmec/archive/v{{ version }}.tar.gz - sha256: {{ sha256 }} - -build: - number: 0 - noarch: generic - run_exports: - - {{ pin_subpackage(name, max_pin='x.x') }} - -requirements: - run: - - camlhmp >=0.1.0 - -test: - commands: - - sccmec --version - - sccmec --help - -about: - home: https://github.com/rpetit3/sccmec - license: MIT - license_file: LICENSE - summary: A tool for typing SCCmec cassettes in assemblies - -extra: - recipe-maintainers: - - rpetit3 +{% set name="sccmec" %} +{% set version = "1.1.0" %} +{% set sha256 = "176e0103a6e683583ed5caf1980781ec09ca315a0aa2cfe8d2a3d72321ce7488" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/rpetit3/sccmec/archive/v{{ version }}.tar.gz + sha256: {{ sha256 }} + +build: + number: 0 + noarch: generic + run_exports: + - {{ pin_subpackage(name, max_pin='x.x') }} + +requirements: + run: + - camlhmp >=1.0.0 + +test: + commands: + - sccmec --version + - sccmec --help + +about: + home: https://github.com/rpetit3/sccmec + license: MIT + license_file: LICENSE + summary: A tool for typing SCCmec cassettes in assemblies + +extra: + recipe-maintainers: + - rpetit3 From 8e873a15c62b1c90316d035773f8b1094a830a18 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 16 Aug 2024 00:41:01 -0400 Subject: [PATCH 1291/1514] Update blaze2 to 2.4.0 (#50098) --- recipes/blaze2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/blaze2/meta.yaml b/recipes/blaze2/meta.yaml index 90649b463cac0..329bd464af823 100644 --- a/recipes/blaze2/meta.yaml +++ b/recipes/blaze2/meta.yaml @@ -1,5 +1,5 @@ {% set name = "BLAZE2" %} -{% set version = "2.2.1" %} +{% set version = "2.4.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/shimlab/BLAZE/archive/refs/tags/v{{ version }}.tar.gz - sha256: 30a3f7ede0237d5fbb1e1fa7155c2505d0ce560ba92ea61654ae0ff18f7453e4 + sha256: b4487873d1f4ae389feed54aa7d862ff3addc458c387d6fd0e3c9550c0a2037d build: number: 0 From fa7e2ecaa2b7ebc9000e104ac822c8d0fbed78f0 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 16 Aug 2024 08:59:10 +0300 Subject: [PATCH 1292/1514] htsbox: add aarch64/arm64 build (#50073) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/htsbox/build.sh | 4 +++- recipes/htsbox/meta.yaml | 9 ++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/recipes/htsbox/build.sh b/recipes/htsbox/build.sh index 9e8848d2dc477..e54829852c86a 100644 --- a/recipes/htsbox/build.sh +++ b/recipes/htsbox/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -xe + #strictly use anaconda build environment export CFLAGS="${CFLAGS} -L${PREFIX}/lib" export C_INCLUDE_PATH=${PREFIX}/include @@ -7,6 +9,6 @@ export LIBRARY_PATH=${PREFIX}/lib mkdir -p $PREFIX/bin -make CC=${CC} CFLAGS="${CFLAGS}" +make -j ${CPU_COUNT} CC=${CC} CFLAGS="${CFLAGS}" mv htsbox $PREFIX/bin diff --git a/recipes/htsbox/meta.yaml b/recipes/htsbox/meta.yaml index dc6e9d426c58d..7b1af21cb9476 100644 --- a/recipes/htsbox/meta.yaml +++ b/recipes/htsbox/meta.yaml @@ -7,7 +7,9 @@ package: version: {{ version }} build: - number: 4 + number: 5 + run_exports: + - {{ pin_subpackage(name, max_pin=None) }} source: url: https://github.com/lh3/htsbox/archive/6964440d791a60a22ca5ff25dc413a362bdc0abe.tar.gz @@ -30,3 +32,8 @@ about: home: https://github.com/lh3/htsbox license: Unknown summary: HTSbox is a fork of early HTSlib. It is a collection of small experimental tools manipulating HTS-related files. + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From 350c7b20b8d2f23ae831a7adc1849ecea1e4fe31 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 16 Aug 2024 02:41:38 -0400 Subject: [PATCH 1293/1514] Update ipyrad to 0.9.98 (#50095) --- recipes/ipyrad/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ipyrad/meta.yaml b/recipes/ipyrad/meta.yaml index 74569df372f29..6b0081e1f255a 100644 --- a/recipes/ipyrad/meta.yaml +++ b/recipes/ipyrad/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ipyrad" %} -{% set version = "0.9.97" %} -{% set sha256 = "34e039612f7855fab71cd4741582617abddb879241a9a15bae4b7c0593d889e8" %} +{% set version = "0.9.98" %} +{% set sha256 = "f3e8912806070a247322aaf1281fa38ff1acd1c554cfd67db733c9ac5a725786" %} package: name: {{ name }} From c648fc77e0fbc710023a69e1a2de6b5fc29ec7e7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 16 Aug 2024 02:43:07 -0400 Subject: [PATCH 1294/1514] Update ont-modkit to 0.3.2 (#50096) --- recipes/ont-modkit/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/ont-modkit/meta.yaml b/recipes/ont-modkit/meta.yaml index af34fb5a538b7..88e0459b50b17 100644 --- a/recipes/ont-modkit/meta.yaml +++ b/recipes/ont-modkit/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ont-modkit" %} -{% set version = "0.3.1" %} -{% set sha256 = "f780f60411bf8a94f2b4dc7383c14a0c04050cca8b1d3e2763c480d72026b3ba" %} +{% set version = "0.3.2" %} +{% set sha256 = "9d3e56ec103f11d5d24d0e814afd83b8556b8288e012d410500e127d1652aba7" %} package: name: {{ name }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage("ont-modkit", max_pin="x.x") }} From 48369f52a2324ea380f8e6054216e43bcbbba57f Mon Sep 17 00:00:00 2001 From: Khaled196 <56037954+khaled196@users.noreply.github.com> Date: Fri, 16 Aug 2024 07:43:41 +0100 Subject: [PATCH 1295/1514] Update beacon-import tool (#50082) * Update beacon-import tool * Update meta.yaml --- recipes/beacon2-import/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/beacon2-import/meta.yaml b/recipes/beacon2-import/meta.yaml index 30562965cc5d4..82600cad4a425 100644 --- a/recipes/beacon2-import/meta.yaml +++ b/recipes/beacon2-import/meta.yaml @@ -1,13 +1,13 @@ {% set name = "beacon2-import" %} -{% set version = "2.2.1" %} +{% set version = "2.2.2" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/beacon2-import-{{ version }}.tar.gz - sha256: 1c8e26beaed158563dbf46f86aec89be385fa79c40f05e081edcb5a91c954290 + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/beacon2_import-{{ version }}.tar.gz + sha256: 4926fb62d6375046d5944615a8891f13a41f1f2be5fc9646caf27add1fea4282 build: entry_points: From 8d237fb5581e2fd58b9414ba7188dab6f71d6368 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 16 Aug 2024 02:45:38 -0400 Subject: [PATCH 1296/1514] Update vcfsim to 1.0.13.alpha (#50097) --- recipes/vcfsim/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/vcfsim/meta.yaml b/recipes/vcfsim/meta.yaml index 00ad1f01fbe82..0e0d2533661dc 100644 --- a/recipes/vcfsim/meta.yaml +++ b/recipes/vcfsim/meta.yaml @@ -1,5 +1,5 @@ {% set name = "vcfsim" %} -{% set version = "1.0.12.alpha" %} +{% set version = "1.0.13.alpha" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Pie115/VCFSimulator-SamukLab/archive/{{ version }}.tar.gz - sha256: 58ff93f1652f71a5559d0e1b1660c11ecc391ecf32a82bc761aa3837f5c26e94 + sha256: 0a9f0edb40982cb2b18ca47bfabeaa3cb769c392c4fb6acd15a32b1a1c14d4b7 build: noarch: python From 4639ca9dc814ddebe36f04dcaf3da6c6780a5a3b Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Fri, 16 Aug 2024 08:53:47 +0200 Subject: [PATCH 1297/1514] Update Metabinner (Make scripts/auxilirary tools available on path) (#50089) * Make scripts/auxilirary tools avaiable on path * Fix linting * Try and fix syntax --- recipes/metabinner/build.sh | 5 +++++ recipes/metabinner/meta.yaml | 12 ++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/recipes/metabinner/build.sh b/recipes/metabinner/build.sh index 5ea0e225a2eb9..34888d0a58586 100644 --- a/recipes/metabinner/build.sh +++ b/recipes/metabinner/build.sh @@ -6,3 +6,8 @@ chmod a+x run_metabinner.sh cp run_metabinner.sh $PREFIX/bin/ cp -r auxiliary $PREFIX/bin/ cp -r scripts $PREFIX/bin/ + +## Original build by author just placed directories in bin, not scripts themsleves +## To ensure backwards compatibility, we additionally symlink the scripts to the bin directory +ln -s $PREFIX/bin/auxiliary/* $PREFIX/bin/ +ln -s $PREFIX/bin/scripts/* $PREFIX/bin/ diff --git a/recipes/metabinner/meta.yaml b/recipes/metabinner/meta.yaml index e0987b3a72b74..bd2fc3e2824a7 100644 --- a/recipes/metabinner/meta.yaml +++ b/recipes/metabinner/meta.yaml @@ -7,8 +7,10 @@ source: sha256: 087a28aeb8fe218a3a2a6dd53b3bc5cad4cf33353fde3eebb8ee992461a99119 build: - number: 0 + number: 1 noarch: generic + run_exports: + - {{ pin_subpackage("metabinner", max_pin="x") }} requirements: run: @@ -30,10 +32,12 @@ requirements: test: commands: - - which run_metabinner.sh - + - "gen_coverage_file.sh 2> /dev/null | grep 'Usage: bash gen_coverage_file.sh'" + - which gen_kmer.py + - Filter_tooshort.py --help + - "run_metabinner.sh 2> /dev/null | grep 'Usage: bash run_metabinner.sh'" + about: home: "https://github.com/ziyewang/MetaBinner" license: BSD summary: "Ensemble binning method to recover individual genomes from complex microbial communities" - From 33f612694059d43622ea4f490df5b6d8f0ef5c39 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 16 Aug 2024 03:34:09 -0400 Subject: [PATCH 1298/1514] Update harpy to 1.6.1 (#50091) * Update harpy to 1.6.1 * Update harpy to 1.6.1 --- recipes/harpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index 62a1c61cda081..f67de7a1c0b0c 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.6" %} -{% set sha256 = "1029bf65fa6ea16e94c223407e6131094de3e6192440a7ac5a5852f49065fc62" %} +{% set version = "1.6.1" %} +{% set sha256 = "a3b6a0ebfb51bcc17140a519b3c1df61211f333ba091392053a1637edec8aff7" %} package: name: harpy From 1afc660d2e6b848635bcf6adc130ab61d1d41b40 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 16 Aug 2024 04:55:43 -0400 Subject: [PATCH 1299/1514] Update snakemake-executor-plugin-kubernetes to 0.2.0 (#50105) --- recipes/snakemake-executor-plugin-kubernetes/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-executor-plugin-kubernetes/meta.yaml b/recipes/snakemake-executor-plugin-kubernetes/meta.yaml index c4ffe95046b1e..b8549963e466a 100644 --- a/recipes/snakemake-executor-plugin-kubernetes/meta.yaml +++ b/recipes/snakemake-executor-plugin-kubernetes/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-executor-plugin-kubernetes" %} -{% set version = "0.1.5" %} +{% set version = "0.2.0" %} # Upon version update, requirements have to be checked! package: @@ -8,7 +8,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_executor_plugin_kubernetes-{{ version }}.tar.gz - sha256: 7984ef057c25ce1ff46ceac5839dfad01e2938faa649e59fa439e8154e8025eb + sha256: 83981ad405515880b1b311129fd442c1e17902ee0a673ca14bab5b8ba31d7fbf build: noarch: python From 3222ed927d5668f134803415456234af434f4de2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 16 Aug 2024 10:43:25 -0400 Subject: [PATCH 1300/1514] Update el_gato to 1.19.0 (#50110) --- recipes/el_gato/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/el_gato/meta.yaml b/recipes/el_gato/meta.yaml index 7dc82c6beb55f..0c15f3b4c1530 100644 --- a/recipes/el_gato/meta.yaml +++ b/recipes/el_gato/meta.yaml @@ -1,6 +1,6 @@ {% set name = "el_gato" %} -{% set version = "1.18.2" %} -{% set hash = "328a8399d01594a69a87c11357310efe54c00159949b396f1211d7ce2787040a" %} +{% set version = "1.19.0" %} +{% set hash = "ad390572ce785707b67a00f25978c4032981ac7e6149ddc423443e9189b30e75" %} {% set user = "appliedbinf" %} package: From a3fef4f2e901c5af3c47c9aee4d7e4bbe329d2da Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 16 Aug 2024 17:56:10 +0300 Subject: [PATCH 1301/1514] ucsc-subchar: add linux-aarch64 build (#50106) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-subchar/build.sh | 24 ++++++++++++++++-------- recipes/ucsc-subchar/include.patch | 6 +++--- recipes/ucsc-subchar/meta.yaml | 22 +++++++++++++++------- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index b5321fddab0a4..50301baafa8bf 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -945,7 +945,6 @@ recipes/ucsc-spacedtotab recipes/ucsc-splitfile recipes/ucsc-splitfilebycolumn recipes/ucsc-sqltoxml -recipes/ucsc-subchar recipes/ucsc-subcolumn recipes/ucsc-taillines recipes/ucsc-tdbquery diff --git a/recipes/ucsc-subchar/build.sh b/recipes/ucsc-subchar/build.sh index e32711c636962..5129d2652ab3b 100644 --- a/recipes/ucsc-subchar/build.sh +++ b/recipes/ucsc-subchar/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/subChar && make) -cp bin/subChar "$PREFIX/bin" -chmod +x "$PREFIX/bin/subChar" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/subChar && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/subChar "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/subChar" diff --git a/recipes/ucsc-subchar/include.patch b/recipes/ucsc-subchar/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-subchar/include.patch +++ b/recipes/ucsc-subchar/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-subchar/meta.yaml b/recipes/ucsc-subchar/meta.yaml index 7c31204869979..10b943776e59c 100644 --- a/recipes/ucsc-subchar/meta.yaml +++ b/recipes/ucsc-subchar/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-subchar" %} {% set program = "subChar" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "Substitute one character for another throughout a file." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From b92bde7e659fdcf8c1e4815ed6ee5f1f222b1495 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 16 Aug 2024 17:57:53 +0300 Subject: [PATCH 1302/1514] prot-scriber: add aarch64 build (#50072) * prot-scriber: add aarch64/arm64 build Signed-off-by: Martin Tzvetanov Grigorov * Do not try to build osx-arm64. It needs more investigation --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/prot-scriber/build.sh | 6 ++---- recipes/prot-scriber/meta.yaml | 10 +++++++--- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/recipes/prot-scriber/build.sh b/recipes/prot-scriber/build.sh index 3662f6efb60db..0609d45584d5d 100644 --- a/recipes/prot-scriber/build.sh +++ b/recipes/prot-scriber/build.sh @@ -1,8 +1,6 @@ -#!/bin/bash -euo +#!/bin/bash -# Add workaround for SSH-based Git connections from Rust/cargo. See https://github.com/rust-lang/cargo/issues/2078 for details. -# We set CARGO_HOME because we don't pass on HOME to conda-build, thus rendering the default "${HOME}/.cargo" defunct. -export CARGO_NET_GIT_FETCH_WITH_CLI=true CARGO_HOME="$(pwd)/.cargo" +set -xeuo # build statically linked binary with Rust RUST_BACKTRACE=1 cargo install --verbose --path . --root $PREFIX diff --git a/recipes/prot-scriber/meta.yaml b/recipes/prot-scriber/meta.yaml index a4675c6c38560..b32921251aa5a 100644 --- a/recipes/prot-scriber/meta.yaml +++ b/recipes/prot-scriber/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("prot-scriber", max_pin="x") }} @@ -16,8 +16,8 @@ source: requirements: build: - - rust - {{ compiler('c') }} + - {{ compiler('rust') }} test: commands: @@ -25,6 +25,10 @@ test: about: home: https://github.com/usadellab/prot-scriber - license: GPL-3 + license: GPL-3.0-only summary: "Assigns short human readable descriptions (HRD) to query biological sequences using reference candidate descriptions." license_file: LICENSE + +extra: + additional-platforms: + - linux-aarch64 From 3b967c8fc63ffa299d3994632117aa1ce71bff6d Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 16 Aug 2024 17:58:25 +0300 Subject: [PATCH 1303/1514] apu-label-propagation: add aarch64/arm64 builds (#50100) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/apu-label-propagation/build.sh | 3 +++ recipes/apu-label-propagation/meta.yaml | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/recipes/apu-label-propagation/build.sh b/recipes/apu-label-propagation/build.sh index 5eb7ac1709302..11f2d38047bb7 100644 --- a/recipes/apu-label-propagation/build.sh +++ b/recipes/apu-label-propagation/build.sh @@ -1,4 +1,7 @@ #!/bin/bash + +set -xe + mkdir -p ${PREFIX}/bin cd src diff --git a/recipes/apu-label-propagation/meta.yaml b/recipes/apu-label-propagation/meta.yaml index 45a66085517b2..d8e15873d5b8d 100644 --- a/recipes/apu-label-propagation/meta.yaml +++ b/recipes/apu-label-propagation/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 50424bf7df99b51dc71a4121beae89ef69b2bb4eaba559c99643baecb8544806 build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('apu-label-propagation', max_pin="x.x") }} @@ -25,3 +25,8 @@ about: home: https://github.com/AndMastro/NIAPU license: MIT summary: Adaptive Positive-Unlabelled label propagation + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From 15a67dd05d59a7443cdc085e4ef586f2eee05544 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 16 Aug 2024 17:58:59 +0300 Subject: [PATCH 1304/1514] msweep: add linux-aarch64 build (#50099) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/msweep/meta.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/msweep/meta.yaml b/recipes/msweep/meta.yaml index c566243b53c2b..5e02c6d00cb3c 100644 --- a/recipes/msweep/meta.yaml +++ b/recipes/msweep/meta.yaml @@ -12,7 +12,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 skip: true # [osx] run_exports: - {{ pin_subpackage('msweep', max_pin='x') }} @@ -24,9 +24,9 @@ requirements: - git >=2.10.0 - cmake >=3.0.0 - make + host: - llvm-openmp # [osx] - libgomp # [linux] - host: - zlib >=1.2.0 - xz >=5.2.0 - bzip2 >=1.0.6 @@ -42,5 +42,7 @@ about: summary: 'mSWEEP - bacterial community composition estimation from pseudoalignments' extra: + additional-platforms: + - linux-aarch64 identifiers: - doi:10.12688/wellcomeopenres.15639.2 From ba2f4498d6c5e805edc0dbf67f10fff396540bfb Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 16 Aug 2024 18:02:41 +0300 Subject: [PATCH 1305/1514] varfish-server-worker: add linux-aarch64 build (#50101) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/varfish-server-worker/build.sh | 6 +----- recipes/varfish-server-worker/meta.yaml | 6 ++++-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/recipes/varfish-server-worker/build.sh b/recipes/varfish-server-worker/build.sh index 403679dd60ea7..701401e625188 100644 --- a/recipes/varfish-server-worker/build.sh +++ b/recipes/varfish-server-worker/build.sh @@ -1,10 +1,6 @@ #!/bin/bash -e -# TODO: Remove the following export when pinning is updated and we use -# {{ compiler('rust') }} in the recipe. -export \ - CARGO_NET_GIT_FETCH_WITH_CLI=true \ - CARGO_HOME="${BUILD_PREFIX}/.cargo" +set -xe export BINDGEN_EXTRA_CLANG_ARGS="${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" diff --git a/recipes/varfish-server-worker/meta.yaml b/recipes/varfish-server-worker/meta.yaml index 9c20439be990d..e7c4ceb6229c5 100644 --- a/recipes/varfish-server-worker/meta.yaml +++ b/recipes/varfish-server-worker/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 skip: True # [osx] run_exports: - {{ pin_subpackage("varfish-server-worker", max_pin="x.x") }} @@ -18,7 +18,7 @@ requirements: build: - {{ compiler('c') }} - {{ compiler('cxx') }} - - rust >=1.30 + - {{ compiler('rust') }} - clangdev - pkg-config - protobuf @@ -43,5 +43,7 @@ about: Rust-based tool for the heavy lifting in varfish-server. extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - holtgrewe From 719750e12b3e28250be425879086f95577af077c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 16 Aug 2024 11:02:54 -0400 Subject: [PATCH 1306/1514] Update beacon2-import to 2.2.3 (#50112) --- recipes/beacon2-import/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/beacon2-import/meta.yaml b/recipes/beacon2-import/meta.yaml index 82600cad4a425..f660dbc9b3253 100644 --- a/recipes/beacon2-import/meta.yaml +++ b/recipes/beacon2-import/meta.yaml @@ -1,5 +1,5 @@ {% set name = "beacon2-import" %} -{% set version = "2.2.2" %} +{% set version = "2.2.3" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/beacon2_import-{{ version }}.tar.gz - sha256: 4926fb62d6375046d5944615a8891f13a41f1f2be5fc9646caf27add1fea4282 + sha256: 18b57e015b84d5352ce4e1336e73b204283ec8c1f1183aa916789a1f09f6ad77 build: entry_points: From 41bea0fe262440ad6bdbd1621098d99ef5186947 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 16 Aug 2024 11:03:16 -0400 Subject: [PATCH 1307/1514] Update mgnify-pipelines-toolkit to 0.1.5 (#50111) --- recipes/mgnify-pipelines-toolkit/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mgnify-pipelines-toolkit/meta.yaml b/recipes/mgnify-pipelines-toolkit/meta.yaml index 35cb14a8d7e3a..fabcf79ac58da 100644 --- a/recipes/mgnify-pipelines-toolkit/meta.yaml +++ b/recipes/mgnify-pipelines-toolkit/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mgnify-pipelines-toolkit" %} -{% set version = "0.1.4" %} +{% set version = "0.1.5" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mgnify_pipelines_toolkit-{{ version }}.tar.gz - sha256: ad7862883b901b5aad2e542f0ff3ba86733a99e46d95abe8483b63c525a584bf + sha256: 5cbde5250ebb858ab463960fa7569274f6a1d118bcc365b1905ddce01b73129f build: entry_points: From f15b9f4812814aef2ea648f5cbf0c37f7b2c8d2a Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 16 Aug 2024 18:04:40 +0300 Subject: [PATCH 1308/1514] nedbit-features-calculator: add aarch64/arm64 builds (#50102) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/nedbit-features-calculator/meta.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/recipes/nedbit-features-calculator/meta.yaml b/recipes/nedbit-features-calculator/meta.yaml index 88dbacd2dc3a5..390e2826acadf 100644 --- a/recipes/nedbit-features-calculator/meta.yaml +++ b/recipes/nedbit-features-calculator/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 50424bf7df99b51dc71a4121beae89ef69b2bb4eaba559c99643baecb8544806 build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('nedbit-features-calculator', max_pin="x.x") }} @@ -25,3 +25,8 @@ about: home: https://github.com/AndMastro/NIAPU license: MIT summary: Network diffusion and biology-informed topological features + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From 107c6a5cfebeb08dbb4164db7be88585e016e962 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 16 Aug 2024 11:04:58 -0400 Subject: [PATCH 1309/1514] Update haplotaglr to 1.1.9 (#50113) --- recipes/haplotaglr/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/haplotaglr/meta.yaml b/recipes/haplotaglr/meta.yaml index 4ac843920c730..16e231f12c2eb 100644 --- a/recipes/haplotaglr/meta.yaml +++ b/recipes/haplotaglr/meta.yaml @@ -1,5 +1,5 @@ {% set name = "HaplotagLR" %} -{% set version = "1.1.8" %} +{% set version = "1.1.9" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 085f1c930ab0fa3452e2d421515419a8e0031d7cdb9b2a3f635ec994a708a490 + sha256: e8bdcdf8628583fc3e24f2d53fc316ac8a30c1514c258c62996251523f0a9299 build: number: 0 From 62ed70bbd2acdadfe7f106b36f103aab0ff3bbad Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 16 Aug 2024 18:59:31 +0300 Subject: [PATCH 1310/1514] ucsc-qactowig: add linux-aarch64 build (#50109) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-qactowig/build.sh | 24 ++++++++++++++++-------- recipes/ucsc-qactowig/include.patch | 6 +++--- recipes/ucsc-qactowig/meta.yaml | 22 +++++++++++++++------- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 50301baafa8bf..5611a7f4fd288 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -933,7 +933,6 @@ recipes/ucsc-psltopslx recipes/ucsc-pslxtofa recipes/ucsc-qacagplift recipes/ucsc-qactoqa -recipes/ucsc-qactowig recipes/ucsc-qatoqac recipes/ucsc-randomlines recipes/ucsc-rasqlquery diff --git a/recipes/ucsc-qactowig/build.sh b/recipes/ucsc-qactowig/build.sh index 246d8ae2ab1e3..2cfa1d2934098 100644 --- a/recipes/ucsc-qactowig/build.sh +++ b/recipes/ucsc-qactowig/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/qacToWig && make) -cp bin/qacToWig "$PREFIX/bin" -chmod +x "$PREFIX/bin/qacToWig" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/qacToWig && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/qacToWig "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/qacToWig" diff --git a/recipes/ucsc-qactowig/include.patch b/recipes/ucsc-qactowig/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-qactowig/include.patch +++ b/recipes/ucsc-qactowig/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-qactowig/meta.yaml b/recipes/ucsc-qactowig/meta.yaml index 70e06d45e11c1..0b905003df6a4 100644 --- a/recipes/ucsc-qactowig/meta.yaml +++ b/recipes/ucsc-qactowig/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-qactowig" %} {% set program = "qacToWig" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "convert from compressed quality score format to wiggle format." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From b26fbec0641ce052ac2e32d1355b8964b2941978 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 16 Aug 2024 18:59:48 +0300 Subject: [PATCH 1311/1514] ucsc-pslhisto: add linux-aarch64 build (#50108) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-pslhisto/build.sh | 24 ++++++++++++++++-------- recipes/ucsc-pslhisto/include.patch | 6 +++--- recipes/ucsc-pslhisto/meta.yaml | 22 +++++++++++++++------- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 5611a7f4fd288..014fd51d5f31f 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -912,7 +912,6 @@ recipes/ucsc-pslcat recipes/ucsc-pslcheck recipes/ucsc-psldropoverlap recipes/ucsc-pslfilter -recipes/ucsc-pslhisto recipes/ucsc-pslliftsubrangeblat recipes/ucsc-pslmap recipes/ucsc-pslmappostchain diff --git a/recipes/ucsc-pslhisto/build.sh b/recipes/ucsc-pslhisto/build.sh index 238e2991da267..d1f0b2a1cdc0a 100644 --- a/recipes/ucsc-pslhisto/build.sh +++ b/recipes/ucsc-pslhisto/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/pslHisto && make) -cp bin/pslHisto "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslHisto" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/pslHisto && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/pslHisto "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/pslHisto" diff --git a/recipes/ucsc-pslhisto/include.patch b/recipes/ucsc-pslhisto/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslhisto/include.patch +++ b/recipes/ucsc-pslhisto/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslhisto/meta.yaml b/recipes/ucsc-pslhisto/meta.yaml index 4c2c365449d80..404d4c7f221a3 100644 --- a/recipes/ucsc-pslhisto/meta.yaml +++ b/recipes/ucsc-pslhisto/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslhisto" %} {% set program = "pslHisto" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,20 +27,20 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" @@ -47,3 +49,9 @@ about: Collect counts on PSL alignments for making histograms. These then be analyzed with R, textHistogram, etc. " + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 4a1122570ff3ef24ea2eaec3da879390aaf0fa95 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Fri, 16 Aug 2024 19:00:28 +0300 Subject: [PATCH 1312/1514] ucsc-pslrecalcmatch: add linux-aarch64 build (#50107) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-pslrecalcmatch/build.sh | 24 +++++++++++++++-------- recipes/ucsc-pslrecalcmatch/include.patch | 6 +++--- recipes/ucsc-pslrecalcmatch/meta.yaml | 22 ++++++++++++++------- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 014fd51d5f31f..e4d0d4dbe405b 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -920,7 +920,6 @@ recipes/ucsc-pslpairs recipes/ucsc-pslpartition recipes/ucsc-pslpretty recipes/ucsc-pslrc -recipes/ucsc-pslrecalcmatch recipes/ucsc-pslreps recipes/ucsc-pslscore recipes/ucsc-pslselect diff --git a/recipes/ucsc-pslrecalcmatch/build.sh b/recipes/ucsc-pslrecalcmatch/build.sh index 8627cd251a72a..41a0a5d53edfe 100644 --- a/recipes/ucsc-pslrecalcmatch/build.sh +++ b/recipes/ucsc-pslrecalcmatch/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/pslRecalcMatch && make) -cp bin/pslRecalcMatch "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslRecalcMatch" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/pslRecalcMatch && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/pslRecalcMatch "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/pslRecalcMatch" diff --git a/recipes/ucsc-pslrecalcmatch/include.patch b/recipes/ucsc-pslrecalcmatch/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslrecalcmatch/include.patch +++ b/recipes/ucsc-pslrecalcmatch/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslrecalcmatch/meta.yaml b/recipes/ucsc-pslrecalcmatch/meta.yaml index 346d395661228..ecff808f4ac50 100644 --- a/recipes/ucsc-pslrecalcmatch/meta.yaml +++ b/recipes/ucsc-pslrecalcmatch/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslrecalcmatch" %} {% set program = "pslRecalcMatch" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "Recalculate match,mismatch,repMatch columns in psl file." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From f670ff520b9d35b857bc8df3a46d6fd4a518e0cf Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 16 Aug 2024 12:01:29 -0400 Subject: [PATCH 1313/1514] Update quantms-utils to 0.0.9 (#50114) --- recipes/quantms-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/quantms-utils/meta.yaml b/recipes/quantms-utils/meta.yaml index 8ed626f8c28d1..cccce41a9db28 100644 --- a/recipes/quantms-utils/meta.yaml +++ b/recipes/quantms-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "quantms-utils" %} -{% set version = "0.0.8" %} +{% set version = "0.0.9" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/quantms_utils-{{ version }}.tar.gz - sha256: 1c18f90d274002a7de421b1afcda6c3500ef3ce21dafdf5ba950066ae7a71b15 + sha256: 72f86706f6dc10e7e332317b2b78e22acb33b63cff37d8c897871934ac60c2af build: entry_points: From 537f48c287f07403c439c901fb0b88fe316c8813 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Fri, 16 Aug 2024 21:58:48 +0200 Subject: [PATCH 1314/1514] Build bustools for aarch/arm (#50119) * Build bustools for aarch/arm * Update meta.yamlf --- recipes/bustools/meta.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/recipes/bustools/meta.yaml b/recipes/bustools/meta.yaml index d2bfdf335da0a..22fc8125fe0e8 100644 --- a/recipes/bustools/meta.yaml +++ b/recipes/bustools/meta.yaml @@ -9,7 +9,7 @@ source: sha256: ad5816152644ee615316daecf5883183994bd7cc96e6c008439123f4cd750b1f build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('bustools', max_pin="x.x") }} @@ -33,3 +33,8 @@ about: license_file: LICENSE summary: | bustools is a program for manipulating BUS files for single cell RNA-Seq datasets. + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From a8a877f323b806b2df8b0fc478c41466ed8e5ba7 Mon Sep 17 00:00:00 2001 From: Cornelius Roemer Date: Fri, 16 Aug 2024 22:00:00 +0200 Subject: [PATCH 1315/1514] Add nanocount (#50117) --- recipes/nanocount/meta.yaml | 59 +++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 recipes/nanocount/meta.yaml diff --git a/recipes/nanocount/meta.yaml b/recipes/nanocount/meta.yaml new file mode 100644 index 0000000000000..90fbda93b8280 --- /dev/null +++ b/recipes/nanocount/meta.yaml @@ -0,0 +1,59 @@ +{% set name = "NanoCount" %} +{% set version = "1.0.0.post6" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/NanoCount-{{ version }}.tar.gz + sha256: 0f24e8526ce9a0df9894cacaac957f285c90bf1d2f98507bb183981cb0ea346e + +build: + entry_points: + - NanoCount=NanoCount.__main__:main + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + run_exports: + - {{ pin_subpackage('nanocount', max_pin='x') }} + +requirements: + host: + - python >=3.6 + - pip + run: + - python >=3.6 + - tqdm >=4.51.0 + - numpy >=1.19.4 + - pysam >=0.16.0 + - pandas >=1.1.4 + - colorlog >=4.1.0 + +test: + imports: + - NanoCount + - NanoCount.NanoCount + commands: + - pip check + - NanoCount --help + requires: + - pip + +about: + home: https://github.com/a-slide/NanoCount/ + doc_url: https://a-slide.github.io/NanoCount/ + summary: Transcript abundance estimation from Nanopore *direct-RNA sequencing* datasets + description: NanoCount estimates transcripts abundance from Oxford Nanopore *direct-RNA sequencing* datasets, using an expectation-maximization approach like RSEM, Kallisto, salmon, etc to handle the uncertainty of multi-mapping reads + license: MIT + licence_url: https://mit-license.org/ + license_file: LICENSE + +extra: + recipe-maintainers: + - corneliusroemer + identifiers: + - doi:10.1093/nar/gkab1129 + author: Adrien Leger + author_email: aleg@ebi.ac.uk + author_url: https://adrienleger.com From cf36b65cd3fe68384f2fa6627a501783264686db Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 16 Aug 2024 16:59:53 -0400 Subject: [PATCH 1316/1514] Update mehari to 0.27.0 (#50124) --- recipes/mehari/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mehari/meta.yaml b/recipes/mehari/meta.yaml index 9f32745c748c1..2c733259448fa 100644 --- a/recipes/mehari/meta.yaml +++ b/recipes/mehari/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.26.1" %} -{% set sha256 = "98d3aa2e219c9e6091c7e76a0bffd74d8ae2d4a96696984cb62739b0e718e537" %} +{% set version = "0.27.0" %} +{% set sha256 = "f29f2af3cbf0f8e94887dfbd8518ed3be693f85637aca6f2617ce42ee0cd7621" %} package: name: mehari From c3eae0c4705d9aa76ab7ba22efaca32d269b37b8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 17 Aug 2024 03:16:26 -0400 Subject: [PATCH 1317/1514] Update dice to 1.1.0 (#50128) --- recipes/dice/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/dice/meta.yaml b/recipes/dice/meta.yaml index 3bb08800d67bd..491b95d5b6b15 100644 --- a/recipes/dice/meta.yaml +++ b/recipes/dice/meta.yaml @@ -1,13 +1,13 @@ {% set name = "dice" %} -{% set version = "1.0.0" %} +{% set version = "1.1.0" %} package: name: '{{ name }}' version: '{{ version }}' source: - url: https://github.com/samsonweiner/DICE/archive/refs/tags/v1.0.0.tar.gz - sha256: 67288b5b73c61a66b2d4fd04329974c529a3744b57f0a59606d610403010213f + url: https://github.com/samsonweiner/DICE/archive/refs/tags/v1.1.0.tar.gz + sha256: 4130efd20af8726544350cef76015b4f9d1f1755fef1a4f63576a73755a0d8c0 build: noarch: python @@ -38,4 +38,4 @@ about: license_file: LICENSE summary: Cell lineage reconstruction from single-cell CNA data description: | - DICE (short for Distance-based Inference of Copy-number Evolution) is a collection of fast and accurate methods for reconstructing cell lineage trees from single-cell copy number aberration data. \ No newline at end of file + DICE (short for Distance-based Inference of Copy-number Evolution) is a collection of fast and accurate methods for reconstructing cell lineage trees from single-cell copy number aberration data. From 595421423d3e24d9ea620f1d71456d078f9396c2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 17 Aug 2024 17:15:43 -0400 Subject: [PATCH 1318/1514] Update argo to 0.1.0 (#50135) --- recipes/argo/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/argo/meta.yaml b/recipes/argo/meta.yaml index ef376602011c1..60613f68a3217 100644 --- a/recipes/argo/meta.yaml +++ b/recipes/argo/meta.yaml @@ -1,5 +1,5 @@ {% set name = "argo" %} -{% set version = "0.0.1" %} +{% set version = "0.1.0" %} package: name: '{{ name|lower }}' @@ -7,7 +7,7 @@ package: source: url: https://github.com/xinehc/argo/archive/refs/tags/v{{ version }}.tar.gz - sha256: 88d4993c1509442a933db4a5d406ac5af1d0816637e3d05e53735c188291a1b4 + sha256: 8dbe2606024c78ca471dea675e4aeaa88140cca0a2f989b2d40081cf6cd62cdc build: noarch: python From bca36b5379e076f99205449c2b60d7450bbb4f82 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 17 Aug 2024 17:16:09 -0400 Subject: [PATCH 1319/1514] Update ltr_retriever to 3.0.1 (#50127) --- recipes/ltr_retriever/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ltr_retriever/meta.yaml b/recipes/ltr_retriever/meta.yaml index 874f52dab9ced..a2e668b82c87b 100644 --- a/recipes/ltr_retriever/meta.yaml +++ b/recipes/ltr_retriever/meta.yaml @@ -1,6 +1,6 @@ {% set name = "LTR_retriever" %} -{% set version = "3.0.0" %} -{% set sha256 = "36b69e3ca4d2a5771072c65f52c2da17b9e3dc2215ef00f31dcd042e62429c37" %} +{% set version = "3.0.1" %} +{% set sha256 = "a3ca3bd8d81f3a8260e1386d03bd7f8a7aa42882f92ccbaa1a4fb1d8120658a8" %} package: name: "{{ name|lower }}" From 29c9d60bd65867c61c40d994514b717d2d39178a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 17 Aug 2024 17:16:49 -0400 Subject: [PATCH 1320/1514] Update ipyrad to 0.9.99 (#50122) --- recipes/ipyrad/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ipyrad/meta.yaml b/recipes/ipyrad/meta.yaml index 6b0081e1f255a..b8e9d2790d862 100644 --- a/recipes/ipyrad/meta.yaml +++ b/recipes/ipyrad/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ipyrad" %} -{% set version = "0.9.98" %} -{% set sha256 = "f3e8912806070a247322aaf1281fa38ff1acd1c554cfd67db733c9ac5a725786" %} +{% set version = "0.9.99" %} +{% set sha256 = "7a769bcfea004d603415c1d5d2d782857c3d960e38c48586abe93f7f31667d9c" %} package: name: {{ name }} From 050bf91bb7dd0d863285bb01a985fc85a04d211f Mon Sep 17 00:00:00 2001 From: "H. Soon Gweon" Date: Mon, 19 Aug 2024 05:00:24 +0100 Subject: [PATCH 1321/1514] Update PIPITS to 3.1 (#50141) * Update PIPITS to 3.1 --------- Co-authored-by: Hyun Soon Gweon --- recipes/pipits/meta.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recipes/pipits/meta.yaml b/recipes/pipits/meta.yaml index 8cb0fa5c54ccf..0c32e5afba401 100644 --- a/recipes/pipits/meta.yaml +++ b/recipes/pipits/meta.yaml @@ -1,14 +1,16 @@ package: name: pipits - version: "3.0" + version: "3.1" source: - url: https://github.com/hsgweon/pipits/archive/refs/tags/3.0.tar.gz - sha256: ee9f142e473e57b186760d940131610c16bdfe57eefca935df35779fd85377bd + url: https://github.com/hsgweon/pipits/archive/refs/tags/3.1.tar.gz + sha256: a51bdaf4ec22487b9ed6f9111568d370ce0f9732afc010a5d0de0e642af758d7 build: number: 0 noarch: python + run_exports: + - {{ pin_subpackage('pipits', max_pin="x") }} requirements: host: From 266d09cce654fb1652b4cc9394895c78a6e75d4a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 00:01:44 -0400 Subject: [PATCH 1322/1514] Update trust4 to 1.1.4 (#50139) --- recipes/trust4/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/trust4/meta.yaml b/recipes/trust4/meta.yaml index 9781bf90f5806..39d3efbb30704 100644 --- a/recipes/trust4/meta.yaml +++ b/recipes/trust4/meta.yaml @@ -1,17 +1,17 @@ -{% set version = "1.1.3" %} +{% set version = "1.1.4" %} package: name: trust4 version: '{{ version }}' build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('trust4', max_pin="x") }} source: url: https://github.com/liulab-dfci/TRUST4/archive/v{{ version }}.tar.gz - sha256: 99bfd50a742598e6a5fbf6318b0fadeec811f635bc1d7f5f49315b64a708c378 + sha256: c369ca538143b7aaf56d8d9d34f5c1024eaca425f1e2b8c845c78c2a29e6fbfb requirements: build: From 532267c2b66a61670e0ed32a95c007a07655445f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 00:02:31 -0400 Subject: [PATCH 1323/1514] Update vcfsim to 1.0.15.alpha (#50132) * Update vcfsim to 1.0.14.alpha * Update vcfsim to 1.0.15.alpha --- recipes/vcfsim/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/vcfsim/meta.yaml b/recipes/vcfsim/meta.yaml index 0e0d2533661dc..8e4e84dec1e90 100644 --- a/recipes/vcfsim/meta.yaml +++ b/recipes/vcfsim/meta.yaml @@ -1,5 +1,5 @@ {% set name = "vcfsim" %} -{% set version = "1.0.13.alpha" %} +{% set version = "1.0.15.alpha" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Pie115/VCFSimulator-SamukLab/archive/{{ version }}.tar.gz - sha256: 0a9f0edb40982cb2b18ca47bfabeaa3cb769c392c4fb6acd15a32b1a1c14d4b7 + sha256: b69df4b6eb7702a201220b524c3dc6a0caa7573682b74d82a0b31885965b13b4 build: noarch: python From 63ba4eb934eb841b1945b92c3936c738d3614552 Mon Sep 17 00:00:00 2001 From: Zilong-Li Date: Mon, 19 Aug 2024 06:16:14 +0200 Subject: [PATCH 1324/1514] Update r-stitch version 1.7.0 (#50027) * bump stitch version 1.7.0 * clean up recipe * Update r-rcpp version * Update r-rcpp version * Update build.sh * Update libcxx version on osx * Update build.sh * Update build.sh * Update build.sh * Update meta.yaml * Delete recipes/r-stitch/conda_build_config.yaml * Update build.sh * Update build.sh --------- Co-authored-by: mencian --- recipes/r-stitch/build.sh | 12 +- recipes/r-stitch/conda_build_config.yaml | 4 - recipes/r-stitch/meta.yaml | 18 +- recipes/r-stitch/seqlib-aarch64.patch | 9340 ---------------------- 4 files changed, 11 insertions(+), 9363 deletions(-) delete mode 100644 recipes/r-stitch/conda_build_config.yaml delete mode 100644 recipes/r-stitch/seqlib-aarch64.patch diff --git a/recipes/r-stitch/build.sh b/recipes/r-stitch/build.sh index 56a790ad9541b..c2e44c1a2092e 100644 --- a/recipes/r-stitch/build.sh +++ b/recipes/r-stitch/build.sh @@ -3,11 +3,7 @@ set -xe mkdir -p $PREFIX/bin -cp STITCH.R $PREFIX/bin - -# patch a Git submodule -pushd src/SeqLib/ -patch -p1 < ${RECIPE_DIR}/seqlib-aarch64.patch -popd - -$R CMD INSTALL --build --install-tests . +cp -rf STITCH.R $PREFIX/bin + +${R} CMD INSTALL --build . + diff --git a/recipes/r-stitch/conda_build_config.yaml b/recipes/r-stitch/conda_build_config.yaml deleted file mode 100644 index 4f2dcf10e9f82..0000000000000 --- a/recipes/r-stitch/conda_build_config.yaml +++ /dev/null @@ -1,4 +0,0 @@ -c_compiler_version: - - 12 -cxx_compiler_version: - - 12 \ No newline at end of file diff --git a/recipes/r-stitch/meta.yaml b/recipes/r-stitch/meta.yaml index 34537d7679da9..dbf74b5db8888 100644 --- a/recipes/r-stitch/meta.yaml +++ b/recipes/r-stitch/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.6.11" %} -{% set sha256_package = "eb6a8e121eb9689597da9ec5a105ba5392e458ab30510fe26b260b81a6d9fdb0" %} +{% set version = "1.7.0" %} +{% set sha256_package = "818ac096fb3bfbe51b0107020a37f0b86ac1497d7b47a2de8179f2c4e3e34bba" %} {% set sha256_script = "0c61d79cf519e5c5ae33807725577da3d1599bcc89413c3a6bce3fb7c99090c7" %} package: @@ -25,10 +25,10 @@ requirements: - automake - pkg-config - make - - libcxx <17 # [osx] + - libcxx >=16 # [osx] host: - r-base - - r-rcpp >=0.12.18 + - r-rcpp <=1.0.12 - r-rcpparmadillo >=0.8.600.0.0 - r-data.table >=1.11.8 - r-rrbgen >=0.0.6 @@ -38,7 +38,7 @@ requirements: - mpc >=1.1.0 - libblas - zlib - - libcxx <17 # [osx] + - libcxx >=16 # [osx] run: - r-base - r-rcpp >=0.12.18 @@ -46,15 +46,10 @@ requirements: - r-data.table >=1.11.8 - r-rrbgen >=0.0.6 - r-optparse - - xz - - gmp - - mpfr - - mpc >=1.1.0 - r-testthat >=2.0.0 - htslib >=1.4 - samtools >=1.4 - rsync - - zlib test: commands: @@ -66,7 +61,7 @@ about: license: GPL-3.0-only license_family: GPL3 license_file: LICENSE - summary: STITCH - Sequencing To Imputation Through Constructing Haplotypes + summary: "STITCH - Sequencing To Imputation Through Constructing Haplotypes." doc_url: https://github.com/rwdavies/stitch dev_url: https://github.com/rwdavies/stitch @@ -74,4 +69,5 @@ extra: additional-platforms: - linux-aarch64 recipe-maintainers: + - Zilong-Li - rwdavies diff --git a/recipes/r-stitch/seqlib-aarch64.patch b/recipes/r-stitch/seqlib-aarch64.patch deleted file mode 100644 index b52fd6c6937ed..0000000000000 --- a/recipes/r-stitch/seqlib-aarch64.patch +++ /dev/null @@ -1,9340 +0,0 @@ -diff --git c/SeqLib/sse2neon.h i/SeqLib/sse2neon.h -new file mode 100644 -index 0000000..2b12721 ---- /dev/null -+++ i/SeqLib/sse2neon.h -@@ -0,0 +1,9301 @@ -+#ifndef SSE2NEON_H -+#define SSE2NEON_H -+ -+/* -+ * sse2neon is freely redistributable under the MIT License. -+ * -+ * Copyright (c) 2015-2024 SSE2NEON Contributors. -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a copy -+ * of this software and associated documentation files (the "Software"), to deal -+ * in the Software without restriction, including without limitation the rights -+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -+ * copies of the Software, and to permit persons to whom the Software is -+ * furnished to do so, subject to the following conditions: -+ * -+ * The above copyright notice and this permission notice shall be included in -+ * all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -+ * SOFTWARE. -+ */ -+ -+// This header file provides a simple API translation layer -+// between SSE intrinsics to their corresponding Arm/Aarch64 NEON versions -+// -+// Contributors to this work are: -+// John W. Ratcliff -+// Brandon Rowlett -+// Ken Fast -+// Eric van Beurden -+// Alexander Potylitsin -+// Hasindu Gamaarachchi -+// Jim Huang -+// Mark Cheng -+// Malcolm James MacLeod -+// Devin Hussey (easyaspi314) -+// Sebastian Pop -+// Developer Ecosystem Engineering -+// Danila Kutenin -+// François Turban (JishinMaster) -+// Pei-Hsuan Hung -+// Yang-Hao Yuan -+// Syoyo Fujita -+// Brecht Van Lommel -+// Jonathan Hue -+// Cuda Chen -+// Aymen Qader -+// Anthony Roberts -+ -+/* Tunable configurations */ -+ -+/* Enable precise implementation of math operations -+ * This would slow down the computation a bit, but gives consistent result with -+ * x86 SSE. (e.g. would solve a hole or NaN pixel in the rendering result) -+ */ -+/* _mm_min|max_ps|ss|pd|sd */ -+#ifndef SSE2NEON_PRECISE_MINMAX -+#define SSE2NEON_PRECISE_MINMAX (0) -+#endif -+/* _mm_rcp_ps */ -+#ifndef SSE2NEON_PRECISE_DIV -+#define SSE2NEON_PRECISE_DIV (0) -+#endif -+/* _mm_sqrt_ps and _mm_rsqrt_ps */ -+#ifndef SSE2NEON_PRECISE_SQRT -+#define SSE2NEON_PRECISE_SQRT (0) -+#endif -+/* _mm_dp_pd */ -+#ifndef SSE2NEON_PRECISE_DP -+#define SSE2NEON_PRECISE_DP (0) -+#endif -+ -+/* Enable inclusion of windows.h on MSVC platforms -+ * This makes _mm_clflush functional on windows, as there is no builtin. -+ */ -+#ifndef SSE2NEON_INCLUDE_WINDOWS_H -+#define SSE2NEON_INCLUDE_WINDOWS_H (0) -+#endif -+ -+/* compiler specific definitions */ -+#if defined(__GNUC__) || defined(__clang__) -+#pragma push_macro("FORCE_INLINE") -+#pragma push_macro("ALIGN_STRUCT") -+#define FORCE_INLINE static inline __attribute__((always_inline)) -+#define ALIGN_STRUCT(x) __attribute__((aligned(x))) -+#define _sse2neon_likely(x) __builtin_expect(!!(x), 1) -+#define _sse2neon_unlikely(x) __builtin_expect(!!(x), 0) -+#elif defined(_MSC_VER) -+#if _MSVC_TRADITIONAL -+#error Using the traditional MSVC preprocessor is not supported! Use /Zc:preprocessor instead. -+#endif -+#ifndef FORCE_INLINE -+#define FORCE_INLINE static inline -+#endif -+#ifndef ALIGN_STRUCT -+#define ALIGN_STRUCT(x) __declspec(align(x)) -+#endif -+#define _sse2neon_likely(x) (x) -+#define _sse2neon_unlikely(x) (x) -+#else -+#pragma message("Macro name collisions may happen with unsupported compilers.") -+#endif -+ -+ -+#if defined(__GNUC__) && !defined(__clang__) -+#pragma push_macro("FORCE_INLINE_OPTNONE") -+#define FORCE_INLINE_OPTNONE static inline __attribute__((optimize("O0"))) -+#elif defined(__clang__) -+#pragma push_macro("FORCE_INLINE_OPTNONE") -+#define FORCE_INLINE_OPTNONE static inline __attribute__((optnone)) -+#else -+#define FORCE_INLINE_OPTNONE FORCE_INLINE -+#endif -+ -+#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ < 10 -+#warning "GCC versions earlier than 10 are not supported." -+#endif -+ -+/* C language does not allow initializing a variable with a function call. */ -+#ifdef __cplusplus -+#define _sse2neon_const static const -+#else -+#define _sse2neon_const const -+#endif -+ -+#include -+#include -+ -+#if defined(_WIN32) -+/* Definitions for _mm_{malloc,free} are provided by -+ * from both MinGW-w64 and MSVC. -+ */ -+#define SSE2NEON_ALLOC_DEFINED -+#endif -+ -+/* If using MSVC */ -+#ifdef _MSC_VER -+#include -+#if SSE2NEON_INCLUDE_WINDOWS_H -+#include -+#include -+#endif -+ -+#if !defined(__cplusplus) -+#error SSE2NEON only supports C++ compilation with this compiler -+#endif -+ -+#ifdef SSE2NEON_ALLOC_DEFINED -+#include -+#endif -+ -+#if (defined(_M_AMD64) || defined(__x86_64__)) || \ -+ (defined(_M_ARM64) || defined(__arm64__)) -+#define SSE2NEON_HAS_BITSCAN64 -+#endif -+#endif -+ -+#if defined(__GNUC__) || defined(__clang__) -+#define _sse2neon_define0(type, s, body) \ -+ __extension__({ \ -+ type _a = (s); \ -+ body \ -+ }) -+#define _sse2neon_define1(type, s, body) \ -+ __extension__({ \ -+ type _a = (s); \ -+ body \ -+ }) -+#define _sse2neon_define2(type, a, b, body) \ -+ __extension__({ \ -+ type _a = (a), _b = (b); \ -+ body \ -+ }) -+#define _sse2neon_return(ret) (ret) -+#else -+#define _sse2neon_define0(type, a, body) [=](type _a) { body }(a) -+#define _sse2neon_define1(type, a, body) [](type _a) { body }(a) -+#define _sse2neon_define2(type, a, b, body) \ -+ [](type _a, type _b) { body }((a), (b)) -+#define _sse2neon_return(ret) return ret -+#endif -+ -+#define _sse2neon_init(...) \ -+ { \ -+ __VA_ARGS__ \ -+ } -+ -+/* Compiler barrier */ -+#if defined(_MSC_VER) -+#define SSE2NEON_BARRIER() _ReadWriteBarrier() -+#else -+#define SSE2NEON_BARRIER() \ -+ do { \ -+ __asm__ __volatile__("" ::: "memory"); \ -+ (void) 0; \ -+ } while (0) -+#endif -+ -+/* Memory barriers -+ * __atomic_thread_fence does not include a compiler barrier; instead, -+ * the barrier is part of __atomic_load/__atomic_store's "volatile-like" -+ * semantics. -+ */ -+#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) -+#include -+#endif -+ -+FORCE_INLINE void _sse2neon_smp_mb(void) -+{ -+ SSE2NEON_BARRIER(); -+#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \ -+ !defined(__STDC_NO_ATOMICS__) -+ atomic_thread_fence(memory_order_seq_cst); -+#elif defined(__GNUC__) || defined(__clang__) -+ __atomic_thread_fence(__ATOMIC_SEQ_CST); -+#else /* MSVC */ -+ __dmb(_ARM64_BARRIER_ISH); -+#endif -+} -+ -+/* Architecture-specific build options */ -+/* FIXME: #pragma GCC push_options is only available on GCC */ -+#if defined(__GNUC__) -+#if defined(__arm__) && __ARM_ARCH == 7 -+/* According to ARM C Language Extensions Architecture specification, -+ * __ARM_NEON is defined to a value indicating the Advanced SIMD (NEON) -+ * architecture supported. -+ */ -+#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) -+#error "You must enable NEON instructions (e.g. -mfpu=neon) to use SSE2NEON." -+#endif -+#if !defined(__clang__) -+#pragma GCC push_options -+#pragma GCC target("fpu=neon") -+#endif -+#elif defined(__aarch64__) || defined(_M_ARM64) -+#if !defined(__clang__) && !defined(_MSC_VER) -+#pragma GCC push_options -+#pragma GCC target("+simd") -+#endif -+#elif __ARM_ARCH == 8 -+#if !defined(__ARM_NEON) || !defined(__ARM_NEON__) -+#error \ -+ "You must enable NEON instructions (e.g. -mfpu=neon-fp-armv8) to use SSE2NEON." -+#endif -+#if !defined(__clang__) && !defined(_MSC_VER) -+#pragma GCC push_options -+#endif -+#else -+#error \ -+ "Unsupported target. Must be either ARMv7-A+NEON or ARMv8-A \ -+(you could try setting target explicitly with -march or -mcpu)" -+#endif -+#endif -+ -+#include -+#if (!defined(__aarch64__) && !defined(_M_ARM64)) && (__ARM_ARCH == 8) -+#if defined __has_include && __has_include() -+#include -+#endif -+#endif -+ -+/* Apple Silicon cache lines are double of what is commonly used by Intel, AMD -+ * and other Arm microarchitectures use. -+ * From sysctl -a on Apple M1: -+ * hw.cachelinesize: 128 -+ */ -+#if defined(__APPLE__) && (defined(__aarch64__) || defined(__arm64__)) -+#define SSE2NEON_CACHELINE_SIZE 128 -+#else -+#define SSE2NEON_CACHELINE_SIZE 64 -+#endif -+ -+/* Rounding functions require either Aarch64 instructions or libm fallback */ -+#if !defined(__aarch64__) && !defined(_M_ARM64) -+#include -+#endif -+ -+/* On ARMv7, some registers, such as PMUSERENR and PMCCNTR, are read-only -+ * or even not accessible in user mode. -+ * To write or access to these registers in user mode, -+ * we have to perform syscall instead. -+ */ -+#if (!defined(__aarch64__) && !defined(_M_ARM64)) -+#include -+#endif -+ -+/* "__has_builtin" can be used to query support for built-in functions -+ * provided by gcc/clang and other compilers that support it. -+ */ -+#ifndef __has_builtin /* GCC prior to 10 or non-clang compilers */ -+/* Compatibility with gcc <= 9 */ -+#if defined(__GNUC__) && (__GNUC__ <= 9) -+#define __has_builtin(x) HAS##x -+#define HAS__builtin_popcount 1 -+#define HAS__builtin_popcountll 1 -+ -+// __builtin_shuffle introduced in GCC 4.7.0 -+#if (__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) -+#define HAS__builtin_shuffle 1 -+#else -+#define HAS__builtin_shuffle 0 -+#endif -+ -+#define HAS__builtin_shufflevector 0 -+#define HAS__builtin_nontemporal_store 0 -+#else -+#define __has_builtin(x) 0 -+#endif -+#endif -+ -+/** -+ * MACRO for shuffle parameter for _mm_shuffle_ps(). -+ * Argument fp3 is a digit[0123] that represents the fp from argument "b" -+ * of mm_shuffle_ps that will be placed in fp3 of result. fp2 is the same -+ * for fp2 in result. fp1 is a digit[0123] that represents the fp from -+ * argument "a" of mm_shuffle_ps that will be places in fp1 of result. -+ * fp0 is the same for fp0 of result. -+ */ -+#define _MM_SHUFFLE(fp3, fp2, fp1, fp0) \ -+ (((fp3) << 6) | ((fp2) << 4) | ((fp1) << 2) | ((fp0))) -+ -+#if __has_builtin(__builtin_shufflevector) -+#define _sse2neon_shuffle(type, a, b, ...) \ -+ __builtin_shufflevector(a, b, __VA_ARGS__) -+#elif __has_builtin(__builtin_shuffle) -+#define _sse2neon_shuffle(type, a, b, ...) \ -+ __extension__({ \ -+ type tmp = {__VA_ARGS__}; \ -+ __builtin_shuffle(a, b, tmp); \ -+ }) -+#endif -+ -+#ifdef _sse2neon_shuffle -+#define vshuffle_s16(a, b, ...) _sse2neon_shuffle(int16x4_t, a, b, __VA_ARGS__) -+#define vshuffleq_s16(a, b, ...) _sse2neon_shuffle(int16x8_t, a, b, __VA_ARGS__) -+#define vshuffle_s32(a, b, ...) _sse2neon_shuffle(int32x2_t, a, b, __VA_ARGS__) -+#define vshuffleq_s32(a, b, ...) _sse2neon_shuffle(int32x4_t, a, b, __VA_ARGS__) -+#define vshuffle_s64(a, b, ...) _sse2neon_shuffle(int64x1_t, a, b, __VA_ARGS__) -+#define vshuffleq_s64(a, b, ...) _sse2neon_shuffle(int64x2_t, a, b, __VA_ARGS__) -+#endif -+ -+/* Rounding mode macros. */ -+#define _MM_FROUND_TO_NEAREST_INT 0x00 -+#define _MM_FROUND_TO_NEG_INF 0x01 -+#define _MM_FROUND_TO_POS_INF 0x02 -+#define _MM_FROUND_TO_ZERO 0x03 -+#define _MM_FROUND_CUR_DIRECTION 0x04 -+#define _MM_FROUND_NO_EXC 0x08 -+#define _MM_FROUND_RAISE_EXC 0x00 -+#define _MM_FROUND_NINT (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_RAISE_EXC) -+#define _MM_FROUND_FLOOR (_MM_FROUND_TO_NEG_INF | _MM_FROUND_RAISE_EXC) -+#define _MM_FROUND_CEIL (_MM_FROUND_TO_POS_INF | _MM_FROUND_RAISE_EXC) -+#define _MM_FROUND_TRUNC (_MM_FROUND_TO_ZERO | _MM_FROUND_RAISE_EXC) -+#define _MM_FROUND_RINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_RAISE_EXC) -+#define _MM_FROUND_NEARBYINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_NO_EXC) -+#define _MM_ROUND_NEAREST 0x0000 -+#define _MM_ROUND_DOWN 0x2000 -+#define _MM_ROUND_UP 0x4000 -+#define _MM_ROUND_TOWARD_ZERO 0x6000 -+/* Flush zero mode macros. */ -+#define _MM_FLUSH_ZERO_MASK 0x8000 -+#define _MM_FLUSH_ZERO_ON 0x8000 -+#define _MM_FLUSH_ZERO_OFF 0x0000 -+/* Denormals are zeros mode macros. */ -+#define _MM_DENORMALS_ZERO_MASK 0x0040 -+#define _MM_DENORMALS_ZERO_ON 0x0040 -+#define _MM_DENORMALS_ZERO_OFF 0x0000 -+ -+/* indicate immediate constant argument in a given range */ -+#define __constrange(a, b) const -+ -+/* A few intrinsics accept traditional data types like ints or floats, but -+ * most operate on data types that are specific to SSE. -+ * If a vector type ends in d, it contains doubles, and if it does not have -+ * a suffix, it contains floats. An integer vector type can contain any type -+ * of integer, from chars to shorts to unsigned long longs. -+ */ -+typedef int64x1_t __m64; -+typedef float32x4_t __m128; /* 128-bit vector containing 4 floats */ -+// On ARM 32-bit architecture, the float64x2_t is not supported. -+// The data type __m128d should be represented in a different way for related -+// intrinsic conversion. -+#if defined(__aarch64__) || defined(_M_ARM64) -+typedef float64x2_t __m128d; /* 128-bit vector containing 2 doubles */ -+#else -+typedef float32x4_t __m128d; -+#endif -+typedef int64x2_t __m128i; /* 128-bit vector containing integers */ -+ -+// Some intrinsics operate on unaligned data types. -+typedef int16_t ALIGN_STRUCT(1) unaligned_int16_t; -+typedef int32_t ALIGN_STRUCT(1) unaligned_int32_t; -+typedef int64_t ALIGN_STRUCT(1) unaligned_int64_t; -+ -+// __int64 is defined in the Intrinsics Guide which maps to different datatype -+// in different data model -+#if !(defined(_WIN32) || defined(_WIN64) || defined(__int64)) -+#if (defined(__x86_64__) || defined(__i386__)) -+#define __int64 long long -+#else -+#define __int64 int64_t -+#endif -+#endif -+ -+/* type-safe casting between types */ -+ -+#define vreinterpretq_m128_f16(x) vreinterpretq_f32_f16(x) -+#define vreinterpretq_m128_f32(x) (x) -+#define vreinterpretq_m128_f64(x) vreinterpretq_f32_f64(x) -+ -+#define vreinterpretq_m128_u8(x) vreinterpretq_f32_u8(x) -+#define vreinterpretq_m128_u16(x) vreinterpretq_f32_u16(x) -+#define vreinterpretq_m128_u32(x) vreinterpretq_f32_u32(x) -+#define vreinterpretq_m128_u64(x) vreinterpretq_f32_u64(x) -+ -+#define vreinterpretq_m128_s8(x) vreinterpretq_f32_s8(x) -+#define vreinterpretq_m128_s16(x) vreinterpretq_f32_s16(x) -+#define vreinterpretq_m128_s32(x) vreinterpretq_f32_s32(x) -+#define vreinterpretq_m128_s64(x) vreinterpretq_f32_s64(x) -+ -+#define vreinterpretq_f16_m128(x) vreinterpretq_f16_f32(x) -+#define vreinterpretq_f32_m128(x) (x) -+#define vreinterpretq_f64_m128(x) vreinterpretq_f64_f32(x) -+ -+#define vreinterpretq_u8_m128(x) vreinterpretq_u8_f32(x) -+#define vreinterpretq_u16_m128(x) vreinterpretq_u16_f32(x) -+#define vreinterpretq_u32_m128(x) vreinterpretq_u32_f32(x) -+#define vreinterpretq_u64_m128(x) vreinterpretq_u64_f32(x) -+ -+#define vreinterpretq_s8_m128(x) vreinterpretq_s8_f32(x) -+#define vreinterpretq_s16_m128(x) vreinterpretq_s16_f32(x) -+#define vreinterpretq_s32_m128(x) vreinterpretq_s32_f32(x) -+#define vreinterpretq_s64_m128(x) vreinterpretq_s64_f32(x) -+ -+#define vreinterpretq_m128i_s8(x) vreinterpretq_s64_s8(x) -+#define vreinterpretq_m128i_s16(x) vreinterpretq_s64_s16(x) -+#define vreinterpretq_m128i_s32(x) vreinterpretq_s64_s32(x) -+#define vreinterpretq_m128i_s64(x) (x) -+ -+#define vreinterpretq_m128i_u8(x) vreinterpretq_s64_u8(x) -+#define vreinterpretq_m128i_u16(x) vreinterpretq_s64_u16(x) -+#define vreinterpretq_m128i_u32(x) vreinterpretq_s64_u32(x) -+#define vreinterpretq_m128i_u64(x) vreinterpretq_s64_u64(x) -+ -+#define vreinterpretq_f32_m128i(x) vreinterpretq_f32_s64(x) -+#define vreinterpretq_f64_m128i(x) vreinterpretq_f64_s64(x) -+ -+#define vreinterpretq_s8_m128i(x) vreinterpretq_s8_s64(x) -+#define vreinterpretq_s16_m128i(x) vreinterpretq_s16_s64(x) -+#define vreinterpretq_s32_m128i(x) vreinterpretq_s32_s64(x) -+#define vreinterpretq_s64_m128i(x) (x) -+ -+#define vreinterpretq_u8_m128i(x) vreinterpretq_u8_s64(x) -+#define vreinterpretq_u16_m128i(x) vreinterpretq_u16_s64(x) -+#define vreinterpretq_u32_m128i(x) vreinterpretq_u32_s64(x) -+#define vreinterpretq_u64_m128i(x) vreinterpretq_u64_s64(x) -+ -+#define vreinterpret_m64_s8(x) vreinterpret_s64_s8(x) -+#define vreinterpret_m64_s16(x) vreinterpret_s64_s16(x) -+#define vreinterpret_m64_s32(x) vreinterpret_s64_s32(x) -+#define vreinterpret_m64_s64(x) (x) -+ -+#define vreinterpret_m64_u8(x) vreinterpret_s64_u8(x) -+#define vreinterpret_m64_u16(x) vreinterpret_s64_u16(x) -+#define vreinterpret_m64_u32(x) vreinterpret_s64_u32(x) -+#define vreinterpret_m64_u64(x) vreinterpret_s64_u64(x) -+ -+#define vreinterpret_m64_f16(x) vreinterpret_s64_f16(x) -+#define vreinterpret_m64_f32(x) vreinterpret_s64_f32(x) -+#define vreinterpret_m64_f64(x) vreinterpret_s64_f64(x) -+ -+#define vreinterpret_u8_m64(x) vreinterpret_u8_s64(x) -+#define vreinterpret_u16_m64(x) vreinterpret_u16_s64(x) -+#define vreinterpret_u32_m64(x) vreinterpret_u32_s64(x) -+#define vreinterpret_u64_m64(x) vreinterpret_u64_s64(x) -+ -+#define vreinterpret_s8_m64(x) vreinterpret_s8_s64(x) -+#define vreinterpret_s16_m64(x) vreinterpret_s16_s64(x) -+#define vreinterpret_s32_m64(x) vreinterpret_s32_s64(x) -+#define vreinterpret_s64_m64(x) (x) -+ -+#define vreinterpret_f32_m64(x) vreinterpret_f32_s64(x) -+ -+#if defined(__aarch64__) || defined(_M_ARM64) -+#define vreinterpretq_m128d_s32(x) vreinterpretq_f64_s32(x) -+#define vreinterpretq_m128d_s64(x) vreinterpretq_f64_s64(x) -+ -+#define vreinterpretq_m128d_u64(x) vreinterpretq_f64_u64(x) -+ -+#define vreinterpretq_m128d_f32(x) vreinterpretq_f64_f32(x) -+#define vreinterpretq_m128d_f64(x) (x) -+ -+#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f64(x) -+ -+#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f64(x) -+#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f64(x) -+ -+#define vreinterpretq_f64_m128d(x) (x) -+#define vreinterpretq_f32_m128d(x) vreinterpretq_f32_f64(x) -+#else -+#define vreinterpretq_m128d_s32(x) vreinterpretq_f32_s32(x) -+#define vreinterpretq_m128d_s64(x) vreinterpretq_f32_s64(x) -+ -+#define vreinterpretq_m128d_u32(x) vreinterpretq_f32_u32(x) -+#define vreinterpretq_m128d_u64(x) vreinterpretq_f32_u64(x) -+ -+#define vreinterpretq_m128d_f32(x) (x) -+ -+#define vreinterpretq_s64_m128d(x) vreinterpretq_s64_f32(x) -+ -+#define vreinterpretq_u32_m128d(x) vreinterpretq_u32_f32(x) -+#define vreinterpretq_u64_m128d(x) vreinterpretq_u64_f32(x) -+ -+#define vreinterpretq_f32_m128d(x) (x) -+#endif -+ -+// A struct is defined in this header file called 'SIMDVec' which can be used -+// by applications which attempt to access the contents of an __m128 struct -+// directly. It is important to note that accessing the __m128 struct directly -+// is bad coding practice by Microsoft: @see: -+// https://learn.microsoft.com/en-us/cpp/cpp/m128 -+// -+// However, some legacy source code may try to access the contents of an __m128 -+// struct directly so the developer can use the SIMDVec as an alias for it. Any -+// casting must be done manually by the developer, as you cannot cast or -+// otherwise alias the base NEON data type for intrinsic operations. -+// -+// union intended to allow direct access to an __m128 variable using the names -+// that the MSVC compiler provides. This union should really only be used when -+// trying to access the members of the vector as integer values. GCC/clang -+// allow native access to the float members through a simple array access -+// operator (in C since 4.6, in C++ since 4.8). -+// -+// Ideally direct accesses to SIMD vectors should not be used since it can cause -+// a performance hit. If it really is needed however, the original __m128 -+// variable can be aliased with a pointer to this union and used to access -+// individual components. The use of this union should be hidden behind a macro -+// that is used throughout the codebase to access the members instead of always -+// declaring this type of variable. -+typedef union ALIGN_STRUCT(16) SIMDVec { -+ float m128_f32[4]; // as floats - DON'T USE. Added for convenience. -+ int8_t m128_i8[16]; // as signed 8-bit integers. -+ int16_t m128_i16[8]; // as signed 16-bit integers. -+ int32_t m128_i32[4]; // as signed 32-bit integers. -+ int64_t m128_i64[2]; // as signed 64-bit integers. -+ uint8_t m128_u8[16]; // as unsigned 8-bit integers. -+ uint16_t m128_u16[8]; // as unsigned 16-bit integers. -+ uint32_t m128_u32[4]; // as unsigned 32-bit integers. -+ uint64_t m128_u64[2]; // as unsigned 64-bit integers. -+} SIMDVec; -+ -+// casting using SIMDVec -+#define vreinterpretq_nth_u64_m128i(x, n) (((SIMDVec *) &x)->m128_u64[n]) -+#define vreinterpretq_nth_u32_m128i(x, n) (((SIMDVec *) &x)->m128_u32[n]) -+#define vreinterpretq_nth_u8_m128i(x, n) (((SIMDVec *) &x)->m128_u8[n]) -+ -+/* SSE macros */ -+#define _MM_GET_FLUSH_ZERO_MODE _sse2neon_mm_get_flush_zero_mode -+#define _MM_SET_FLUSH_ZERO_MODE _sse2neon_mm_set_flush_zero_mode -+#define _MM_GET_DENORMALS_ZERO_MODE _sse2neon_mm_get_denormals_zero_mode -+#define _MM_SET_DENORMALS_ZERO_MODE _sse2neon_mm_set_denormals_zero_mode -+ -+// Function declaration -+// SSE -+FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void); -+FORCE_INLINE __m128 _mm_move_ss(__m128, __m128); -+FORCE_INLINE __m128 _mm_or_ps(__m128, __m128); -+FORCE_INLINE __m128 _mm_set_ps1(float); -+FORCE_INLINE __m128 _mm_setzero_ps(void); -+// SSE2 -+FORCE_INLINE __m128i _mm_and_si128(__m128i, __m128i); -+FORCE_INLINE __m128i _mm_castps_si128(__m128); -+FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i, __m128i); -+FORCE_INLINE __m128i _mm_cvtps_epi32(__m128); -+FORCE_INLINE __m128d _mm_move_sd(__m128d, __m128d); -+FORCE_INLINE __m128i _mm_or_si128(__m128i, __m128i); -+FORCE_INLINE __m128i _mm_set_epi32(int, int, int, int); -+FORCE_INLINE __m128i _mm_set_epi64x(int64_t, int64_t); -+FORCE_INLINE __m128d _mm_set_pd(double, double); -+FORCE_INLINE __m128i _mm_set1_epi32(int); -+FORCE_INLINE __m128i _mm_setzero_si128(void); -+// SSE4.1 -+FORCE_INLINE __m128d _mm_ceil_pd(__m128d); -+FORCE_INLINE __m128 _mm_ceil_ps(__m128); -+FORCE_INLINE __m128d _mm_floor_pd(__m128d); -+FORCE_INLINE __m128 _mm_floor_ps(__m128); -+FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d, int); -+FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128, int); -+// SSE4.2 -+FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t, uint8_t); -+ -+/* Backwards compatibility for compilers with lack of specific type support */ -+ -+// Older gcc does not define vld1q_u8_x4 type -+#if defined(__GNUC__) && !defined(__clang__) && \ -+ ((__GNUC__ <= 13 && defined(__arm__)) || \ -+ (__GNUC__ == 10 && __GNUC_MINOR__ < 3 && defined(__aarch64__)) || \ -+ (__GNUC__ <= 9 && defined(__aarch64__))) -+FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) -+{ -+ uint8x16x4_t ret; -+ ret.val[0] = vld1q_u8(p + 0); -+ ret.val[1] = vld1q_u8(p + 16); -+ ret.val[2] = vld1q_u8(p + 32); -+ ret.val[3] = vld1q_u8(p + 48); -+ return ret; -+} -+#else -+// Wraps vld1q_u8_x4 -+FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p) -+{ -+ return vld1q_u8_x4(p); -+} -+#endif -+ -+#if !defined(__aarch64__) && !defined(_M_ARM64) -+/* emulate vaddv u8 variant */ -+FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) -+{ -+ const uint64x1_t v1 = vpaddl_u32(vpaddl_u16(vpaddl_u8(v8))); -+ return vget_lane_u8(vreinterpret_u8_u64(v1), 0); -+} -+#else -+// Wraps vaddv_u8 -+FORCE_INLINE uint8_t _sse2neon_vaddv_u8(uint8x8_t v8) -+{ -+ return vaddv_u8(v8); -+} -+#endif -+ -+#if !defined(__aarch64__) && !defined(_M_ARM64) -+/* emulate vaddvq u8 variant */ -+FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) -+{ -+ uint8x8_t tmp = vpadd_u8(vget_low_u8(a), vget_high_u8(a)); -+ uint8_t res = 0; -+ for (int i = 0; i < 8; ++i) -+ res += tmp[i]; -+ return res; -+} -+#else -+// Wraps vaddvq_u8 -+FORCE_INLINE uint8_t _sse2neon_vaddvq_u8(uint8x16_t a) -+{ -+ return vaddvq_u8(a); -+} -+#endif -+ -+#if !defined(__aarch64__) && !defined(_M_ARM64) -+/* emulate vaddvq u16 variant */ -+FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) -+{ -+ uint32x4_t m = vpaddlq_u16(a); -+ uint64x2_t n = vpaddlq_u32(m); -+ uint64x1_t o = vget_low_u64(n) + vget_high_u64(n); -+ -+ return vget_lane_u32((uint32x2_t) o, 0); -+} -+#else -+// Wraps vaddvq_u16 -+FORCE_INLINE uint16_t _sse2neon_vaddvq_u16(uint16x8_t a) -+{ -+ return vaddvq_u16(a); -+} -+#endif -+ -+/* Function Naming Conventions -+ * The naming convention of SSE intrinsics is straightforward. A generic SSE -+ * intrinsic function is given as follows: -+ * _mm__ -+ * -+ * The parts of this format are given as follows: -+ * 1. describes the operation performed by the intrinsic -+ * 2. identifies the data type of the function's primary arguments -+ * -+ * This last part, , is a little complicated. It identifies the -+ * content of the input values, and can be set to any of the following values: -+ * + ps - vectors contain floats (ps stands for packed single-precision) -+ * + pd - vectors contain doubles (pd stands for packed double-precision) -+ * + epi8/epi16/epi32/epi64 - vectors contain 8-bit/16-bit/32-bit/64-bit -+ * signed integers -+ * + epu8/epu16/epu32/epu64 - vectors contain 8-bit/16-bit/32-bit/64-bit -+ * unsigned integers -+ * + si128 - unspecified 128-bit vector or 256-bit vector -+ * + m128/m128i/m128d - identifies input vector types when they are different -+ * than the type of the returned vector -+ * -+ * For example, _mm_setzero_ps. The _mm implies that the function returns -+ * a 128-bit vector. The _ps at the end implies that the argument vectors -+ * contain floats. -+ * -+ * A complete example: Byte Shuffle - pshufb (_mm_shuffle_epi8) -+ * // Set packed 16-bit integers. 128 bits, 8 short, per 16 bits -+ * __m128i v_in = _mm_setr_epi16(1, 2, 3, 4, 5, 6, 7, 8); -+ * // Set packed 8-bit integers -+ * // 128 bits, 16 chars, per 8 bits -+ * __m128i v_perm = _mm_setr_epi8(1, 0, 2, 3, 8, 9, 10, 11, -+ * 4, 5, 12, 13, 6, 7, 14, 15); -+ * // Shuffle packed 8-bit integers -+ * __m128i v_out = _mm_shuffle_epi8(v_in, v_perm); // pshufb -+ */ -+ -+/* Constants for use with _mm_prefetch. */ -+enum _mm_hint { -+ _MM_HINT_NTA = 0, /* load data to L1 and L2 cache, mark it as NTA */ -+ _MM_HINT_T0 = 1, /* load data to L1 and L2 cache */ -+ _MM_HINT_T1 = 2, /* load data to L2 cache only */ -+ _MM_HINT_T2 = 3, /* load data to L2 cache only, mark it as NTA */ -+}; -+ -+// The bit field mapping to the FPCR(floating-point control register) -+typedef struct { -+ uint16_t res0; -+ uint8_t res1 : 6; -+ uint8_t bit22 : 1; -+ uint8_t bit23 : 1; -+ uint8_t bit24 : 1; -+ uint8_t res2 : 7; -+#if defined(__aarch64__) || defined(_M_ARM64) -+ uint32_t res3; -+#endif -+} fpcr_bitfield; -+ -+// Takes the upper 64 bits of a and places it in the low end of the result -+// Takes the lower 64 bits of b and places it into the high end of the result. -+FORCE_INLINE __m128 _mm_shuffle_ps_1032(__m128 a, __m128 b) -+{ -+ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); -+ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); -+ return vreinterpretq_m128_f32(vcombine_f32(a32, b10)); -+} -+ -+// takes the lower two 32-bit values from a and swaps them and places in high -+// end of result takes the higher two 32 bit values from b and swaps them and -+// places in low end of result. -+FORCE_INLINE __m128 _mm_shuffle_ps_2301(__m128 a, __m128 b) -+{ -+ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); -+ float32x2_t b23 = vrev64_f32(vget_high_f32(vreinterpretq_f32_m128(b))); -+ return vreinterpretq_m128_f32(vcombine_f32(a01, b23)); -+} -+ -+FORCE_INLINE __m128 _mm_shuffle_ps_0321(__m128 a, __m128 b) -+{ -+ float32x2_t a21 = vget_high_f32( -+ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); -+ float32x2_t b03 = vget_low_f32( -+ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); -+ return vreinterpretq_m128_f32(vcombine_f32(a21, b03)); -+} -+ -+FORCE_INLINE __m128 _mm_shuffle_ps_2103(__m128 a, __m128 b) -+{ -+ float32x2_t a03 = vget_low_f32( -+ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); -+ float32x2_t b21 = vget_high_f32( -+ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); -+ return vreinterpretq_m128_f32(vcombine_f32(a03, b21)); -+} -+ -+FORCE_INLINE __m128 _mm_shuffle_ps_1010(__m128 a, __m128 b) -+{ -+ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); -+ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); -+ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); -+} -+ -+FORCE_INLINE __m128 _mm_shuffle_ps_1001(__m128 a, __m128 b) -+{ -+ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); -+ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); -+ return vreinterpretq_m128_f32(vcombine_f32(a01, b10)); -+} -+ -+FORCE_INLINE __m128 _mm_shuffle_ps_0101(__m128 a, __m128 b) -+{ -+ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); -+ float32x2_t b01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(b))); -+ return vreinterpretq_m128_f32(vcombine_f32(a01, b01)); -+} -+ -+// keeps the low 64 bits of b in the low and puts the high 64 bits of a in the -+// high -+FORCE_INLINE __m128 _mm_shuffle_ps_3210(__m128 a, __m128 b) -+{ -+ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); -+ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); -+ return vreinterpretq_m128_f32(vcombine_f32(a10, b32)); -+} -+ -+FORCE_INLINE __m128 _mm_shuffle_ps_0011(__m128 a, __m128 b) -+{ -+ float32x2_t a11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 1); -+ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); -+ return vreinterpretq_m128_f32(vcombine_f32(a11, b00)); -+} -+ -+FORCE_INLINE __m128 _mm_shuffle_ps_0022(__m128 a, __m128 b) -+{ -+ float32x2_t a22 = -+ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); -+ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); -+ return vreinterpretq_m128_f32(vcombine_f32(a22, b00)); -+} -+ -+FORCE_INLINE __m128 _mm_shuffle_ps_2200(__m128 a, __m128 b) -+{ -+ float32x2_t a00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 0); -+ float32x2_t b22 = -+ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(b)), 0); -+ return vreinterpretq_m128_f32(vcombine_f32(a00, b22)); -+} -+ -+FORCE_INLINE __m128 _mm_shuffle_ps_3202(__m128 a, __m128 b) -+{ -+ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); -+ float32x2_t a22 = -+ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); -+ float32x2_t a02 = vset_lane_f32(a0, a22, 1); /* TODO: use vzip ?*/ -+ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); -+ return vreinterpretq_m128_f32(vcombine_f32(a02, b32)); -+} -+ -+FORCE_INLINE __m128 _mm_shuffle_ps_1133(__m128 a, __m128 b) -+{ -+ float32x2_t a33 = -+ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 1); -+ float32x2_t b11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 1); -+ return vreinterpretq_m128_f32(vcombine_f32(a33, b11)); -+} -+ -+FORCE_INLINE __m128 _mm_shuffle_ps_2010(__m128 a, __m128 b) -+{ -+ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); -+ float32_t b2 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 2); -+ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); -+ float32x2_t b20 = vset_lane_f32(b2, b00, 1); -+ return vreinterpretq_m128_f32(vcombine_f32(a10, b20)); -+} -+ -+FORCE_INLINE __m128 _mm_shuffle_ps_2001(__m128 a, __m128 b) -+{ -+ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); -+ float32_t b2 = vgetq_lane_f32(b, 2); -+ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); -+ float32x2_t b20 = vset_lane_f32(b2, b00, 1); -+ return vreinterpretq_m128_f32(vcombine_f32(a01, b20)); -+} -+ -+FORCE_INLINE __m128 _mm_shuffle_ps_2032(__m128 a, __m128 b) -+{ -+ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); -+ float32_t b2 = vgetq_lane_f32(b, 2); -+ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); -+ float32x2_t b20 = vset_lane_f32(b2, b00, 1); -+ return vreinterpretq_m128_f32(vcombine_f32(a32, b20)); -+} -+ -+// For MSVC, we check only if it is ARM64, as every single ARM64 processor -+// supported by WoA has crypto extensions. If this changes in the future, -+// this can be verified via the runtime-only method of: -+// IsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE) -+#if (defined(_M_ARM64) && !defined(__clang__)) || \ -+ (defined(__ARM_FEATURE_CRYPTO) && \ -+ (defined(__aarch64__) || __has_builtin(__builtin_arm_crypto_vmullp64))) -+// Wraps vmull_p64 -+FORCE_INLINE uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) -+{ -+ poly64_t a = vget_lane_p64(vreinterpret_p64_u64(_a), 0); -+ poly64_t b = vget_lane_p64(vreinterpret_p64_u64(_b), 0); -+#if defined(_MSC_VER) -+ __n64 a1 = {a}, b1 = {b}; -+ return vreinterpretq_u64_p128(vmull_p64(a1, b1)); -+#else -+ return vreinterpretq_u64_p128(vmull_p64(a, b)); -+#endif -+} -+#else // ARMv7 polyfill -+// ARMv7/some A64 lacks vmull_p64, but it has vmull_p8. -+// -+// vmull_p8 calculates 8 8-bit->16-bit polynomial multiplies, but we need a -+// 64-bit->128-bit polynomial multiply. -+// -+// It needs some work and is somewhat slow, but it is still faster than all -+// known scalar methods. -+// -+// Algorithm adapted to C from -+// https://www.workofard.com/2017/07/ghash-for-low-end-cores/, which is adapted -+// from "Fast Software Polynomial Multiplication on ARM Processors Using the -+// NEON Engine" by Danilo Camara, Conrado Gouvea, Julio Lopez and Ricardo Dahab -+// (https://hal.inria.fr/hal-01506572) -+static uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b) -+{ -+ poly8x8_t a = vreinterpret_p8_u64(_a); -+ poly8x8_t b = vreinterpret_p8_u64(_b); -+ -+ // Masks -+ uint8x16_t k48_32 = vcombine_u8(vcreate_u8(0x0000ffffffffffff), -+ vcreate_u8(0x00000000ffffffff)); -+ uint8x16_t k16_00 = vcombine_u8(vcreate_u8(0x000000000000ffff), -+ vcreate_u8(0x0000000000000000)); -+ -+ // Do the multiplies, rotating with vext to get all combinations -+ uint8x16_t d = vreinterpretq_u8_p16(vmull_p8(a, b)); // D = A0 * B0 -+ uint8x16_t e = -+ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 1))); // E = A0 * B1 -+ uint8x16_t f = -+ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 1), b)); // F = A1 * B0 -+ uint8x16_t g = -+ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 2))); // G = A0 * B2 -+ uint8x16_t h = -+ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 2), b)); // H = A2 * B0 -+ uint8x16_t i = -+ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 3))); // I = A0 * B3 -+ uint8x16_t j = -+ vreinterpretq_u8_p16(vmull_p8(vext_p8(a, a, 3), b)); // J = A3 * B0 -+ uint8x16_t k = -+ vreinterpretq_u8_p16(vmull_p8(a, vext_p8(b, b, 4))); // L = A0 * B4 -+ -+ // Add cross products -+ uint8x16_t l = veorq_u8(e, f); // L = E + F -+ uint8x16_t m = veorq_u8(g, h); // M = G + H -+ uint8x16_t n = veorq_u8(i, j); // N = I + J -+ -+ // Interleave. Using vzip1 and vzip2 prevents Clang from emitting TBL -+ // instructions. -+#if defined(__aarch64__) -+ uint8x16_t lm_p0 = vreinterpretq_u8_u64( -+ vzip1q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); -+ uint8x16_t lm_p1 = vreinterpretq_u8_u64( -+ vzip2q_u64(vreinterpretq_u64_u8(l), vreinterpretq_u64_u8(m))); -+ uint8x16_t nk_p0 = vreinterpretq_u8_u64( -+ vzip1q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); -+ uint8x16_t nk_p1 = vreinterpretq_u8_u64( -+ vzip2q_u64(vreinterpretq_u64_u8(n), vreinterpretq_u64_u8(k))); -+#else -+ uint8x16_t lm_p0 = vcombine_u8(vget_low_u8(l), vget_low_u8(m)); -+ uint8x16_t lm_p1 = vcombine_u8(vget_high_u8(l), vget_high_u8(m)); -+ uint8x16_t nk_p0 = vcombine_u8(vget_low_u8(n), vget_low_u8(k)); -+ uint8x16_t nk_p1 = vcombine_u8(vget_high_u8(n), vget_high_u8(k)); -+#endif -+ // t0 = (L) (P0 + P1) << 8 -+ // t1 = (M) (P2 + P3) << 16 -+ uint8x16_t t0t1_tmp = veorq_u8(lm_p0, lm_p1); -+ uint8x16_t t0t1_h = vandq_u8(lm_p1, k48_32); -+ uint8x16_t t0t1_l = veorq_u8(t0t1_tmp, t0t1_h); -+ -+ // t2 = (N) (P4 + P5) << 24 -+ // t3 = (K) (P6 + P7) << 32 -+ uint8x16_t t2t3_tmp = veorq_u8(nk_p0, nk_p1); -+ uint8x16_t t2t3_h = vandq_u8(nk_p1, k16_00); -+ uint8x16_t t2t3_l = veorq_u8(t2t3_tmp, t2t3_h); -+ -+ // De-interleave -+#if defined(__aarch64__) -+ uint8x16_t t0 = vreinterpretq_u8_u64( -+ vuzp1q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); -+ uint8x16_t t1 = vreinterpretq_u8_u64( -+ vuzp2q_u64(vreinterpretq_u64_u8(t0t1_l), vreinterpretq_u64_u8(t0t1_h))); -+ uint8x16_t t2 = vreinterpretq_u8_u64( -+ vuzp1q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); -+ uint8x16_t t3 = vreinterpretq_u8_u64( -+ vuzp2q_u64(vreinterpretq_u64_u8(t2t3_l), vreinterpretq_u64_u8(t2t3_h))); -+#else -+ uint8x16_t t1 = vcombine_u8(vget_high_u8(t0t1_l), vget_high_u8(t0t1_h)); -+ uint8x16_t t0 = vcombine_u8(vget_low_u8(t0t1_l), vget_low_u8(t0t1_h)); -+ uint8x16_t t3 = vcombine_u8(vget_high_u8(t2t3_l), vget_high_u8(t2t3_h)); -+ uint8x16_t t2 = vcombine_u8(vget_low_u8(t2t3_l), vget_low_u8(t2t3_h)); -+#endif -+ // Shift the cross products -+ uint8x16_t t0_shift = vextq_u8(t0, t0, 15); // t0 << 8 -+ uint8x16_t t1_shift = vextq_u8(t1, t1, 14); // t1 << 16 -+ uint8x16_t t2_shift = vextq_u8(t2, t2, 13); // t2 << 24 -+ uint8x16_t t3_shift = vextq_u8(t3, t3, 12); // t3 << 32 -+ -+ // Accumulate the products -+ uint8x16_t cross1 = veorq_u8(t0_shift, t1_shift); -+ uint8x16_t cross2 = veorq_u8(t2_shift, t3_shift); -+ uint8x16_t mix = veorq_u8(d, cross1); -+ uint8x16_t r = veorq_u8(mix, cross2); -+ return vreinterpretq_u64_u8(r); -+} -+#endif // ARMv7 polyfill -+ -+// C equivalent: -+// __m128i _mm_shuffle_epi32_default(__m128i a, -+// __constrange(0, 255) int imm) { -+// __m128i ret; -+// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; -+// ret[2] = a[(imm >> 4) & 0x03]; ret[3] = a[(imm >> 6) & 0x03]; -+// return ret; -+// } -+#define _mm_shuffle_epi32_default(a, imm) \ -+ vreinterpretq_m128i_s32(vsetq_lane_s32( \ -+ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 6) & 0x3), \ -+ vsetq_lane_s32( \ -+ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 4) & 0x3), \ -+ vsetq_lane_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), \ -+ ((imm) >> 2) & 0x3), \ -+ vmovq_n_s32(vgetq_lane_s32( \ -+ vreinterpretq_s32_m128i(a), (imm) & (0x3))), \ -+ 1), \ -+ 2), \ -+ 3)) -+ -+// Takes the upper 64 bits of a and places it in the low end of the result -+// Takes the lower 64 bits of a and places it into the high end of the result. -+FORCE_INLINE __m128i _mm_shuffle_epi_1032(__m128i a) -+{ -+ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); -+ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); -+ return vreinterpretq_m128i_s32(vcombine_s32(a32, a10)); -+} -+ -+// takes the lower two 32-bit values from a and swaps them and places in low end -+// of result takes the higher two 32 bit values from a and swaps them and places -+// in high end of result. -+FORCE_INLINE __m128i _mm_shuffle_epi_2301(__m128i a) -+{ -+ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); -+ int32x2_t a23 = vrev64_s32(vget_high_s32(vreinterpretq_s32_m128i(a))); -+ return vreinterpretq_m128i_s32(vcombine_s32(a01, a23)); -+} -+ -+// rotates the least significant 32 bits into the most significant 32 bits, and -+// shifts the rest down -+FORCE_INLINE __m128i _mm_shuffle_epi_0321(__m128i a) -+{ -+ return vreinterpretq_m128i_s32( -+ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 1)); -+} -+ -+// rotates the most significant 32 bits into the least significant 32 bits, and -+// shifts the rest up -+FORCE_INLINE __m128i _mm_shuffle_epi_2103(__m128i a) -+{ -+ return vreinterpretq_m128i_s32( -+ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 3)); -+} -+ -+// gets the lower 64 bits of a, and places it in the upper 64 bits -+// gets the lower 64 bits of a and places it in the lower 64 bits -+FORCE_INLINE __m128i _mm_shuffle_epi_1010(__m128i a) -+{ -+ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); -+ return vreinterpretq_m128i_s32(vcombine_s32(a10, a10)); -+} -+ -+// gets the lower 64 bits of a, swaps the 0 and 1 elements, and places it in the -+// lower 64 bits gets the lower 64 bits of a, and places it in the upper 64 bits -+FORCE_INLINE __m128i _mm_shuffle_epi_1001(__m128i a) -+{ -+ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); -+ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); -+ return vreinterpretq_m128i_s32(vcombine_s32(a01, a10)); -+} -+ -+// gets the lower 64 bits of a, swaps the 0 and 1 elements and places it in the -+// upper 64 bits gets the lower 64 bits of a, swaps the 0 and 1 elements, and -+// places it in the lower 64 bits -+FORCE_INLINE __m128i _mm_shuffle_epi_0101(__m128i a) -+{ -+ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); -+ return vreinterpretq_m128i_s32(vcombine_s32(a01, a01)); -+} -+ -+FORCE_INLINE __m128i _mm_shuffle_epi_2211(__m128i a) -+{ -+ int32x2_t a11 = vdup_lane_s32(vget_low_s32(vreinterpretq_s32_m128i(a)), 1); -+ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); -+ return vreinterpretq_m128i_s32(vcombine_s32(a11, a22)); -+} -+ -+FORCE_INLINE __m128i _mm_shuffle_epi_0122(__m128i a) -+{ -+ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); -+ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); -+ return vreinterpretq_m128i_s32(vcombine_s32(a22, a01)); -+} -+ -+FORCE_INLINE __m128i _mm_shuffle_epi_3332(__m128i a) -+{ -+ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); -+ int32x2_t a33 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 1); -+ return vreinterpretq_m128i_s32(vcombine_s32(a32, a33)); -+} -+ -+#if defined(__aarch64__) || defined(_M_ARM64) -+#define _mm_shuffle_epi32_splat(a, imm) \ -+ vreinterpretq_m128i_s32(vdupq_laneq_s32(vreinterpretq_s32_m128i(a), (imm))) -+#else -+#define _mm_shuffle_epi32_splat(a, imm) \ -+ vreinterpretq_m128i_s32( \ -+ vdupq_n_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)))) -+#endif -+ -+// NEON does not support a general purpose permute intrinsic. -+// Shuffle single-precision (32-bit) floating-point elements in a using the -+// control in imm8, and store the results in dst. -+// -+// C equivalent: -+// __m128 _mm_shuffle_ps_default(__m128 a, __m128 b, -+// __constrange(0, 255) int imm) { -+// __m128 ret; -+// ret[0] = a[imm & 0x3]; ret[1] = a[(imm >> 2) & 0x3]; -+// ret[2] = b[(imm >> 4) & 0x03]; ret[3] = b[(imm >> 6) & 0x03]; -+// return ret; -+// } -+// -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_ps -+#define _mm_shuffle_ps_default(a, b, imm) \ -+ vreinterpretq_m128_f32(vsetq_lane_f32( \ -+ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 6) & 0x3), \ -+ vsetq_lane_f32( \ -+ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 4) & 0x3), \ -+ vsetq_lane_f32( \ -+ vgetq_lane_f32(vreinterpretq_f32_m128(a), ((imm) >> 2) & 0x3), \ -+ vmovq_n_f32( \ -+ vgetq_lane_f32(vreinterpretq_f32_m128(a), (imm) & (0x3))), \ -+ 1), \ -+ 2), \ -+ 3)) -+ -+// Shuffle 16-bit integers in the low 64 bits of a using the control in imm8. -+// Store the results in the low 64 bits of dst, with the high 64 bits being -+// copied from a to dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflelo_epi16 -+#define _mm_shufflelo_epi16_function(a, imm) \ -+ _sse2neon_define1( \ -+ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ -+ int16x4_t lowBits = vget_low_s16(ret); \ -+ ret = vsetq_lane_s16(vget_lane_s16(lowBits, (imm) & (0x3)), ret, 0); \ -+ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 2) & 0x3), ret, \ -+ 1); \ -+ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 4) & 0x3), ret, \ -+ 2); \ -+ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 6) & 0x3), ret, \ -+ 3); \ -+ _sse2neon_return(vreinterpretq_m128i_s16(ret));) -+ -+// Shuffle 16-bit integers in the high 64 bits of a using the control in imm8. -+// Store the results in the high 64 bits of dst, with the low 64 bits being -+// copied from a to dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shufflehi_epi16 -+#define _mm_shufflehi_epi16_function(a, imm) \ -+ _sse2neon_define1( \ -+ __m128i, a, int16x8_t ret = vreinterpretq_s16_m128i(_a); \ -+ int16x4_t highBits = vget_high_s16(ret); \ -+ ret = vsetq_lane_s16(vget_lane_s16(highBits, (imm) & (0x3)), ret, 4); \ -+ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 2) & 0x3), ret, \ -+ 5); \ -+ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 4) & 0x3), ret, \ -+ 6); \ -+ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 6) & 0x3), ret, \ -+ 7); \ -+ _sse2neon_return(vreinterpretq_m128i_s16(ret));) -+ -+/* MMX */ -+ -+//_mm_empty is a no-op on arm -+FORCE_INLINE void _mm_empty(void) {} -+ -+/* SSE */ -+ -+// Add packed single-precision (32-bit) floating-point elements in a and b, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ps -+FORCE_INLINE __m128 _mm_add_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_f32( -+ vaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+} -+ -+// Add the lower single-precision (32-bit) floating-point element in a and b, -+// store the result in the lower element of dst, and copy the upper 3 packed -+// elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_ss -+FORCE_INLINE __m128 _mm_add_ss(__m128 a, __m128 b) -+{ -+ float32_t b0 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); -+ float32x4_t value = vsetq_lane_f32(b0, vdupq_n_f32(0), 0); -+ // the upper values in the result must be the remnants of . -+ return vreinterpretq_m128_f32(vaddq_f32(a, value)); -+} -+ -+// Compute the bitwise AND of packed single-precision (32-bit) floating-point -+// elements in a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_ps -+FORCE_INLINE __m128 _mm_and_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_s32( -+ vandq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); -+} -+ -+// Compute the bitwise NOT of packed single-precision (32-bit) floating-point -+// elements in a and then AND with b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_ps -+FORCE_INLINE __m128 _mm_andnot_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_s32( -+ vbicq_s32(vreinterpretq_s32_m128(b), -+ vreinterpretq_s32_m128(a))); // *NOTE* argument swap -+} -+ -+// Average packed unsigned 16-bit integers in a and b, and store the results in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu16 -+FORCE_INLINE __m64 _mm_avg_pu16(__m64 a, __m64 b) -+{ -+ return vreinterpret_m64_u16( -+ vrhadd_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b))); -+} -+ -+// Average packed unsigned 8-bit integers in a and b, and store the results in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_pu8 -+FORCE_INLINE __m64 _mm_avg_pu8(__m64 a, __m64 b) -+{ -+ return vreinterpret_m64_u8( -+ vrhadd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b -+// for equality, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ps -+FORCE_INLINE __m128 _mm_cmpeq_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_u32( -+ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b for equality, store the result in the lower element of dst, and copy the -+// upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_ss -+FORCE_INLINE __m128 _mm_cmpeq_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_cmpeq_ps(a, b)); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b -+// for greater-than-or-equal, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ps -+FORCE_INLINE __m128 _mm_cmpge_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_u32( -+ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b for greater-than-or-equal, store the result in the lower element of dst, -+// and copy the upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_ss -+FORCE_INLINE __m128 _mm_cmpge_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_cmpge_ps(a, b)); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b -+// for greater-than, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ps -+FORCE_INLINE __m128 _mm_cmpgt_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_u32( -+ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b for greater-than, store the result in the lower element of dst, and copy -+// the upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_ss -+FORCE_INLINE __m128 _mm_cmpgt_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_cmpgt_ps(a, b)); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b -+// for less-than-or-equal, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ps -+FORCE_INLINE __m128 _mm_cmple_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_u32( -+ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b for less-than-or-equal, store the result in the lower element of dst, and -+// copy the upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_ss -+FORCE_INLINE __m128 _mm_cmple_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_cmple_ps(a, b)); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b -+// for less-than, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ps -+FORCE_INLINE __m128 _mm_cmplt_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_u32( -+ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b for less-than, store the result in the lower element of dst, and copy the -+// upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_ss -+FORCE_INLINE __m128 _mm_cmplt_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_cmplt_ps(a, b)); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b -+// for not-equal, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ps -+FORCE_INLINE __m128 _mm_cmpneq_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_u32(vmvnq_u32( -+ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b for not-equal, store the result in the lower element of dst, and copy the -+// upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_ss -+FORCE_INLINE __m128 _mm_cmpneq_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_cmpneq_ps(a, b)); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b -+// for not-greater-than-or-equal, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ps -+FORCE_INLINE __m128 _mm_cmpnge_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_u32(vmvnq_u32( -+ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b for not-greater-than-or-equal, store the result in the lower element of -+// dst, and copy the upper 3 packed elements from a to the upper elements of -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_ss -+FORCE_INLINE __m128 _mm_cmpnge_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_cmpnge_ps(a, b)); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b -+// for not-greater-than, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ps -+FORCE_INLINE __m128 _mm_cmpngt_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_u32(vmvnq_u32( -+ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b for not-greater-than, store the result in the lower element of dst, and -+// copy the upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_ss -+FORCE_INLINE __m128 _mm_cmpngt_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_cmpngt_ps(a, b)); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b -+// for not-less-than-or-equal, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ps -+FORCE_INLINE __m128 _mm_cmpnle_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_u32(vmvnq_u32( -+ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b for not-less-than-or-equal, store the result in the lower element of dst, -+// and copy the upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_ss -+FORCE_INLINE __m128 _mm_cmpnle_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_cmpnle_ps(a, b)); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b -+// for not-less-than, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ps -+FORCE_INLINE __m128 _mm_cmpnlt_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_u32(vmvnq_u32( -+ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)))); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b for not-less-than, store the result in the lower element of dst, and copy -+// the upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_ss -+FORCE_INLINE __m128 _mm_cmpnlt_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_cmpnlt_ps(a, b)); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b -+// to see if neither is NaN, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ps -+// -+// See also: -+// http://stackoverflow.com/questions/8627331/what-does-ordered-unordered-comparison-mean -+// http://stackoverflow.com/questions/29349621/neon-isnanval-intrinsics -+FORCE_INLINE __m128 _mm_cmpord_ps(__m128 a, __m128 b) -+{ -+ // Note: NEON does not have ordered compare builtin -+ // Need to compare a eq a and b eq b to check for NaN -+ // Do AND of results to get final -+ uint32x4_t ceqaa = -+ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); -+ uint32x4_t ceqbb = -+ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); -+ return vreinterpretq_m128_u32(vandq_u32(ceqaa, ceqbb)); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b to see if neither is NaN, store the result in the lower element of dst, and -+// copy the upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_ss -+FORCE_INLINE __m128 _mm_cmpord_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_cmpord_ps(a, b)); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b -+// to see if either is NaN, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ps -+FORCE_INLINE __m128 _mm_cmpunord_ps(__m128 a, __m128 b) -+{ -+ uint32x4_t f32a = -+ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); -+ uint32x4_t f32b = -+ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); -+ return vreinterpretq_m128_u32(vmvnq_u32(vandq_u32(f32a, f32b))); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b to see if either is NaN, store the result in the lower element of dst, and -+// copy the upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_ss -+FORCE_INLINE __m128 _mm_cmpunord_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_cmpunord_ps(a, b)); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point element in a and b -+// for equality, and return the boolean result (0 or 1). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_ss -+FORCE_INLINE int _mm_comieq_ss(__m128 a, __m128 b) -+{ -+ uint32x4_t a_eq_b = -+ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); -+ return vgetq_lane_u32(a_eq_b, 0) & 0x1; -+} -+ -+// Compare the lower single-precision (32-bit) floating-point element in a and b -+// for greater-than-or-equal, and return the boolean result (0 or 1). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_ss -+FORCE_INLINE int _mm_comige_ss(__m128 a, __m128 b) -+{ -+ uint32x4_t a_ge_b = -+ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); -+ return vgetq_lane_u32(a_ge_b, 0) & 0x1; -+} -+ -+// Compare the lower single-precision (32-bit) floating-point element in a and b -+// for greater-than, and return the boolean result (0 or 1). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_ss -+FORCE_INLINE int _mm_comigt_ss(__m128 a, __m128 b) -+{ -+ uint32x4_t a_gt_b = -+ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); -+ return vgetq_lane_u32(a_gt_b, 0) & 0x1; -+} -+ -+// Compare the lower single-precision (32-bit) floating-point element in a and b -+// for less-than-or-equal, and return the boolean result (0 or 1). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_ss -+FORCE_INLINE int _mm_comile_ss(__m128 a, __m128 b) -+{ -+ uint32x4_t a_le_b = -+ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); -+ return vgetq_lane_u32(a_le_b, 0) & 0x1; -+} -+ -+// Compare the lower single-precision (32-bit) floating-point element in a and b -+// for less-than, and return the boolean result (0 or 1). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_ss -+FORCE_INLINE int _mm_comilt_ss(__m128 a, __m128 b) -+{ -+ uint32x4_t a_lt_b = -+ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); -+ return vgetq_lane_u32(a_lt_b, 0) & 0x1; -+} -+ -+// Compare the lower single-precision (32-bit) floating-point element in a and b -+// for not-equal, and return the boolean result (0 or 1). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_ss -+FORCE_INLINE int _mm_comineq_ss(__m128 a, __m128 b) -+{ -+ return !_mm_comieq_ss(a, b); -+} -+ -+// Convert packed signed 32-bit integers in b to packed single-precision -+// (32-bit) floating-point elements, store the results in the lower 2 elements -+// of dst, and copy the upper 2 packed elements from a to the upper elements of -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_pi2ps -+FORCE_INLINE __m128 _mm_cvt_pi2ps(__m128 a, __m64 b) -+{ -+ return vreinterpretq_m128_f32( -+ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), -+ vget_high_f32(vreinterpretq_f32_m128(a)))); -+} -+ -+// Convert packed single-precision (32-bit) floating-point elements in a to -+// packed 32-bit integers, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ps2pi -+FORCE_INLINE __m64 _mm_cvt_ps2pi(__m128 a) -+{ -+#if (defined(__aarch64__) || defined(_M_ARM64)) || \ -+ defined(__ARM_FEATURE_DIRECTED_ROUNDING) -+ return vreinterpret_m64_s32( -+ vget_low_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))))); -+#else -+ return vreinterpret_m64_s32(vcvt_s32_f32(vget_low_f32( -+ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION))))); -+#endif -+} -+ -+// Convert the signed 32-bit integer b to a single-precision (32-bit) -+// floating-point element, store the result in the lower element of dst, and -+// copy the upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_si2ss -+FORCE_INLINE __m128 _mm_cvt_si2ss(__m128 a, int b) -+{ -+ return vreinterpretq_m128_f32( -+ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); -+} -+ -+// Convert the lower single-precision (32-bit) floating-point element in a to a -+// 32-bit integer, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvt_ss2si -+FORCE_INLINE int _mm_cvt_ss2si(__m128 a) -+{ -+#if (defined(__aarch64__) || defined(_M_ARM64)) || \ -+ defined(__ARM_FEATURE_DIRECTED_ROUNDING) -+ return vgetq_lane_s32(vcvtnq_s32_f32(vrndiq_f32(vreinterpretq_f32_m128(a))), -+ 0); -+#else -+ float32_t data = vgetq_lane_f32( -+ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); -+ return (int32_t) data; -+#endif -+} -+ -+// Convert packed 16-bit integers in a to packed single-precision (32-bit) -+// floating-point elements, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi16_ps -+FORCE_INLINE __m128 _mm_cvtpi16_ps(__m64 a) -+{ -+ return vreinterpretq_m128_f32( -+ vcvtq_f32_s32(vmovl_s16(vreinterpret_s16_m64(a)))); -+} -+ -+// Convert packed 32-bit integers in b to packed single-precision (32-bit) -+// floating-point elements, store the results in the lower 2 elements of dst, -+// and copy the upper 2 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_ps -+FORCE_INLINE __m128 _mm_cvtpi32_ps(__m128 a, __m64 b) -+{ -+ return vreinterpretq_m128_f32( -+ vcombine_f32(vcvt_f32_s32(vreinterpret_s32_m64(b)), -+ vget_high_f32(vreinterpretq_f32_m128(a)))); -+} -+ -+// Convert packed signed 32-bit integers in a to packed single-precision -+// (32-bit) floating-point elements, store the results in the lower 2 elements -+// of dst, then convert the packed signed 32-bit integers in b to -+// single-precision (32-bit) floating-point element, and store the results in -+// the upper 2 elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32x2_ps -+FORCE_INLINE __m128 _mm_cvtpi32x2_ps(__m64 a, __m64 b) -+{ -+ return vreinterpretq_m128_f32(vcvtq_f32_s32( -+ vcombine_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b)))); -+} -+ -+// Convert the lower packed 8-bit integers in a to packed single-precision -+// (32-bit) floating-point elements, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi8_ps -+FORCE_INLINE __m128 _mm_cvtpi8_ps(__m64 a) -+{ -+ return vreinterpretq_m128_f32(vcvtq_f32_s32( -+ vmovl_s16(vget_low_s16(vmovl_s8(vreinterpret_s8_m64(a)))))); -+} -+ -+// Convert packed single-precision (32-bit) floating-point elements in a to -+// packed 16-bit integers, and store the results in dst. Note: this intrinsic -+// will generate 0x7FFF, rather than 0x8000, for input values between 0x7FFF and -+// 0x7FFFFFFF. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi16 -+FORCE_INLINE __m64 _mm_cvtps_pi16(__m128 a) -+{ -+ return vreinterpret_m64_s16( -+ vqmovn_s32(vreinterpretq_s32_m128i(_mm_cvtps_epi32(a)))); -+} -+ -+// Convert packed single-precision (32-bit) floating-point elements in a to -+// packed 32-bit integers, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi32 -+#define _mm_cvtps_pi32(a) _mm_cvt_ps2pi(a) -+ -+// Convert packed single-precision (32-bit) floating-point elements in a to -+// packed 8-bit integers, and store the results in lower 4 elements of dst. -+// Note: this intrinsic will generate 0x7F, rather than 0x80, for input values -+// between 0x7F and 0x7FFFFFFF. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pi8 -+FORCE_INLINE __m64 _mm_cvtps_pi8(__m128 a) -+{ -+ return vreinterpret_m64_s8(vqmovn_s16( -+ vcombine_s16(vreinterpret_s16_m64(_mm_cvtps_pi16(a)), vdup_n_s16(0)))); -+} -+ -+// Convert packed unsigned 16-bit integers in a to packed single-precision -+// (32-bit) floating-point elements, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu16_ps -+FORCE_INLINE __m128 _mm_cvtpu16_ps(__m64 a) -+{ -+ return vreinterpretq_m128_f32( -+ vcvtq_f32_u32(vmovl_u16(vreinterpret_u16_m64(a)))); -+} -+ -+// Convert the lower packed unsigned 8-bit integers in a to packed -+// single-precision (32-bit) floating-point elements, and store the results in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpu8_ps -+FORCE_INLINE __m128 _mm_cvtpu8_ps(__m64 a) -+{ -+ return vreinterpretq_m128_f32(vcvtq_f32_u32( -+ vmovl_u16(vget_low_u16(vmovl_u8(vreinterpret_u8_m64(a)))))); -+} -+ -+// Convert the signed 32-bit integer b to a single-precision (32-bit) -+// floating-point element, store the result in the lower element of dst, and -+// copy the upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_ss -+#define _mm_cvtsi32_ss(a, b) _mm_cvt_si2ss(a, b) -+ -+// Convert the signed 64-bit integer b to a single-precision (32-bit) -+// floating-point element, store the result in the lower element of dst, and -+// copy the upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_ss -+FORCE_INLINE __m128 _mm_cvtsi64_ss(__m128 a, int64_t b) -+{ -+ return vreinterpretq_m128_f32( -+ vsetq_lane_f32((float) b, vreinterpretq_f32_m128(a), 0)); -+} -+ -+// Copy the lower single-precision (32-bit) floating-point element of a to dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_f32 -+FORCE_INLINE float _mm_cvtss_f32(__m128 a) -+{ -+ return vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); -+} -+ -+// Convert the lower single-precision (32-bit) floating-point element in a to a -+// 32-bit integer, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si32 -+#define _mm_cvtss_si32(a) _mm_cvt_ss2si(a) -+ -+// Convert the lower single-precision (32-bit) floating-point element in a to a -+// 64-bit integer, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_si64 -+FORCE_INLINE int64_t _mm_cvtss_si64(__m128 a) -+{ -+#if (defined(__aarch64__) || defined(_M_ARM64)) || \ -+ defined(__ARM_FEATURE_DIRECTED_ROUNDING) -+ return (int64_t) vgetq_lane_f32(vrndiq_f32(vreinterpretq_f32_m128(a)), 0); -+#else -+ float32_t data = vgetq_lane_f32( -+ vreinterpretq_f32_m128(_mm_round_ps(a, _MM_FROUND_CUR_DIRECTION)), 0); -+ return (int64_t) data; -+#endif -+} -+ -+// Convert packed single-precision (32-bit) floating-point elements in a to -+// packed 32-bit integers with truncation, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ps2pi -+FORCE_INLINE __m64 _mm_cvtt_ps2pi(__m128 a) -+{ -+ return vreinterpret_m64_s32( -+ vget_low_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)))); -+} -+ -+// Convert the lower single-precision (32-bit) floating-point element in a to a -+// 32-bit integer with truncation, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtt_ss2si -+FORCE_INLINE int _mm_cvtt_ss2si(__m128 a) -+{ -+ return vgetq_lane_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)), 0); -+} -+ -+// Convert packed single-precision (32-bit) floating-point elements in a to -+// packed 32-bit integers with truncation, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_pi32 -+#define _mm_cvttps_pi32(a) _mm_cvtt_ps2pi(a) -+ -+// Convert the lower single-precision (32-bit) floating-point element in a to a -+// 32-bit integer with truncation, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si32 -+#define _mm_cvttss_si32(a) _mm_cvtt_ss2si(a) -+ -+// Convert the lower single-precision (32-bit) floating-point element in a to a -+// 64-bit integer with truncation, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttss_si64 -+FORCE_INLINE int64_t _mm_cvttss_si64(__m128 a) -+{ -+ return (int64_t) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); -+} -+ -+// Divide packed single-precision (32-bit) floating-point elements in a by -+// packed elements in b, and store the results in dst. -+// Due to ARMv7-A NEON's lack of a precise division intrinsic, we implement -+// division by multiplying a by b's reciprocal before using the Newton-Raphson -+// method to approximate the results. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ps -+FORCE_INLINE __m128 _mm_div_ps(__m128 a, __m128 b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128_f32( -+ vdivq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+#else -+ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(b)); -+ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); -+ // Additional Netwon-Raphson iteration for accuracy -+ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(b))); -+ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(a), recip)); -+#endif -+} -+ -+// Divide the lower single-precision (32-bit) floating-point element in a by the -+// lower single-precision (32-bit) floating-point element in b, store the result -+// in the lower element of dst, and copy the upper 3 packed elements from a to -+// the upper elements of dst. -+// Warning: ARMv7-A does not produce the same result compared to Intel and not -+// IEEE-compliant. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_ss -+FORCE_INLINE __m128 _mm_div_ss(__m128 a, __m128 b) -+{ -+ float32_t value = -+ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_div_ps(a, b)), 0); -+ return vreinterpretq_m128_f32( -+ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); -+} -+ -+// Extract a 16-bit integer from a, selected with imm8, and store the result in -+// the lower element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_pi16 -+#define _mm_extract_pi16(a, imm) \ -+ (int32_t) vget_lane_u16(vreinterpret_u16_m64(a), (imm)) -+ -+// Free aligned memory that was allocated with _mm_malloc. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_free -+#if !defined(SSE2NEON_ALLOC_DEFINED) -+FORCE_INLINE void _mm_free(void *addr) -+{ -+ free(addr); -+} -+#endif -+ -+FORCE_INLINE uint64_t _sse2neon_get_fpcr(void) -+{ -+ uint64_t value; -+#if defined(_MSC_VER) -+ value = _ReadStatusReg(ARM64_FPCR); -+#else -+ __asm__ __volatile__("mrs %0, FPCR" : "=r"(value)); /* read */ -+#endif -+ return value; -+} -+ -+FORCE_INLINE void _sse2neon_set_fpcr(uint64_t value) -+{ -+#if defined(_MSC_VER) -+ _WriteStatusReg(ARM64_FPCR, value); -+#else -+ __asm__ __volatile__("msr FPCR, %0" ::"r"(value)); /* write */ -+#endif -+} -+ -+// Macro: Get the flush zero bits from the MXCSR control and status register. -+// The flush zero may contain any of the following flags: _MM_FLUSH_ZERO_ON or -+// _MM_FLUSH_ZERO_OFF -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_FLUSH_ZERO_MODE -+FORCE_INLINE unsigned int _sse2neon_mm_get_flush_zero_mode(void) -+{ -+ union { -+ fpcr_bitfield field; -+#if defined(__aarch64__) || defined(_M_ARM64) -+ uint64_t value; -+#else -+ uint32_t value; -+#endif -+ } r; -+ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ r.value = _sse2neon_get_fpcr(); -+#else -+ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ -+#endif -+ -+ return r.field.bit24 ? _MM_FLUSH_ZERO_ON : _MM_FLUSH_ZERO_OFF; -+} -+ -+// Macro: Get the rounding mode bits from the MXCSR control and status register. -+// The rounding mode may contain any of the following flags: _MM_ROUND_NEAREST, -+// _MM_ROUND_DOWN, _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_GET_ROUNDING_MODE -+FORCE_INLINE unsigned int _MM_GET_ROUNDING_MODE(void) -+{ -+ union { -+ fpcr_bitfield field; -+#if defined(__aarch64__) || defined(_M_ARM64) -+ uint64_t value; -+#else -+ uint32_t value; -+#endif -+ } r; -+ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ r.value = _sse2neon_get_fpcr(); -+#else -+ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ -+#endif -+ -+ if (r.field.bit22) { -+ return r.field.bit23 ? _MM_ROUND_TOWARD_ZERO : _MM_ROUND_UP; -+ } else { -+ return r.field.bit23 ? _MM_ROUND_DOWN : _MM_ROUND_NEAREST; -+ } -+} -+ -+// Copy a to dst, and insert the 16-bit integer i into dst at the location -+// specified by imm8. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_pi16 -+#define _mm_insert_pi16(a, b, imm) \ -+ vreinterpret_m64_s16(vset_lane_s16((b), vreinterpret_s16_m64(a), (imm))) -+ -+// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point -+// elements) from memory into dst. mem_addr must be aligned on a 16-byte -+// boundary or a general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps -+FORCE_INLINE __m128 _mm_load_ps(const float *p) -+{ -+ return vreinterpretq_m128_f32(vld1q_f32(p)); -+} -+ -+// Load a single-precision (32-bit) floating-point element from memory into all -+// elements of dst. -+// -+// dst[31:0] := MEM[mem_addr+31:mem_addr] -+// dst[63:32] := MEM[mem_addr+31:mem_addr] -+// dst[95:64] := MEM[mem_addr+31:mem_addr] -+// dst[127:96] := MEM[mem_addr+31:mem_addr] -+// -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ps1 -+#define _mm_load_ps1 _mm_load1_ps -+ -+// Load a single-precision (32-bit) floating-point element from memory into the -+// lower of dst, and zero the upper 3 elements. mem_addr does not need to be -+// aligned on any particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_ss -+FORCE_INLINE __m128 _mm_load_ss(const float *p) -+{ -+ return vreinterpretq_m128_f32(vsetq_lane_f32(*p, vdupq_n_f32(0), 0)); -+} -+ -+// Load a single-precision (32-bit) floating-point element from memory into all -+// elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_ps -+FORCE_INLINE __m128 _mm_load1_ps(const float *p) -+{ -+ return vreinterpretq_m128_f32(vld1q_dup_f32(p)); -+} -+ -+// Load 2 single-precision (32-bit) floating-point elements from memory into the -+// upper 2 elements of dst, and copy the lower 2 elements from a to dst. -+// mem_addr does not need to be aligned on any particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pi -+FORCE_INLINE __m128 _mm_loadh_pi(__m128 a, __m64 const *p) -+{ -+ return vreinterpretq_m128_f32( -+ vcombine_f32(vget_low_f32(a), vld1_f32((const float32_t *) p))); -+} -+ -+// Load 2 single-precision (32-bit) floating-point elements from memory into the -+// lower 2 elements of dst, and copy the upper 2 elements from a to dst. -+// mem_addr does not need to be aligned on any particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pi -+FORCE_INLINE __m128 _mm_loadl_pi(__m128 a, __m64 const *p) -+{ -+ return vreinterpretq_m128_f32( -+ vcombine_f32(vld1_f32((const float32_t *) p), vget_high_f32(a))); -+} -+ -+// Load 4 single-precision (32-bit) floating-point elements from memory into dst -+// in reverse order. mem_addr must be aligned on a 16-byte boundary or a -+// general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_ps -+FORCE_INLINE __m128 _mm_loadr_ps(const float *p) -+{ -+ float32x4_t v = vrev64q_f32(vld1q_f32(p)); -+ return vreinterpretq_m128_f32(vextq_f32(v, v, 2)); -+} -+ -+// Load 128-bits (composed of 4 packed single-precision (32-bit) floating-point -+// elements) from memory into dst. mem_addr does not need to be aligned on any -+// particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_ps -+FORCE_INLINE __m128 _mm_loadu_ps(const float *p) -+{ -+ // for neon, alignment doesn't matter, so _mm_load_ps and _mm_loadu_ps are -+ // equivalent for neon -+ return vreinterpretq_m128_f32(vld1q_f32(p)); -+} -+ -+// Load unaligned 16-bit integer from memory into the first element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si16 -+FORCE_INLINE __m128i _mm_loadu_si16(const void *p) -+{ -+ return vreinterpretq_m128i_s16( -+ vsetq_lane_s16(*(const unaligned_int16_t *) p, vdupq_n_s16(0), 0)); -+} -+ -+// Load unaligned 64-bit integer from memory into the first element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si64 -+FORCE_INLINE __m128i _mm_loadu_si64(const void *p) -+{ -+ return vreinterpretq_m128i_s64( -+ vsetq_lane_s64(*(const unaligned_int64_t *) p, vdupq_n_s64(0), 0)); -+} -+ -+// Allocate size bytes of memory, aligned to the alignment specified in align, -+// and return a pointer to the allocated memory. _mm_free should be used to free -+// memory that is allocated with _mm_malloc. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_malloc -+#if !defined(SSE2NEON_ALLOC_DEFINED) -+FORCE_INLINE void *_mm_malloc(size_t size, size_t align) -+{ -+ void *ptr; -+ if (align == 1) -+ return malloc(size); -+ if (align == 2 || (sizeof(void *) == 8 && align == 4)) -+ align = sizeof(void *); -+ if (!posix_memalign(&ptr, align, size)) -+ return ptr; -+ return NULL; -+} -+#endif -+ -+// Conditionally store 8-bit integer elements from a into memory using mask -+// (elements are not stored when the highest bit is not set in the corresponding -+// element) and a non-temporal memory hint. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmove_si64 -+FORCE_INLINE void _mm_maskmove_si64(__m64 a, __m64 mask, char *mem_addr) -+{ -+ int8x8_t shr_mask = vshr_n_s8(vreinterpret_s8_m64(mask), 7); -+ __m128 b = _mm_load_ps((const float *) mem_addr); -+ int8x8_t masked = -+ vbsl_s8(vreinterpret_u8_s8(shr_mask), vreinterpret_s8_m64(a), -+ vreinterpret_s8_u64(vget_low_u64(vreinterpretq_u64_m128(b)))); -+ vst1_s8((int8_t *) mem_addr, masked); -+} -+ -+// Conditionally store 8-bit integer elements from a into memory using mask -+// (elements are not stored when the highest bit is not set in the corresponding -+// element) and a non-temporal memory hint. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_maskmovq -+#define _m_maskmovq(a, mask, mem_addr) _mm_maskmove_si64(a, mask, mem_addr) -+ -+// Compare packed signed 16-bit integers in a and b, and store packed maximum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pi16 -+FORCE_INLINE __m64 _mm_max_pi16(__m64 a, __m64 b) -+{ -+ return vreinterpret_m64_s16( -+ vmax_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b, -+// and store packed maximum values in dst. dst does not follow the IEEE Standard -+// for Floating-Point Arithmetic (IEEE 754) maximum value when inputs are NaN or -+// signed-zero values. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ps -+FORCE_INLINE __m128 _mm_max_ps(__m128 a, __m128 b) -+{ -+#if SSE2NEON_PRECISE_MINMAX -+ float32x4_t _a = vreinterpretq_f32_m128(a); -+ float32x4_t _b = vreinterpretq_f32_m128(b); -+ return vreinterpretq_m128_f32(vbslq_f32(vcgtq_f32(_a, _b), _a, _b)); -+#else -+ return vreinterpretq_m128_f32( -+ vmaxq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+#endif -+} -+ -+// Compare packed unsigned 8-bit integers in a and b, and store packed maximum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pu8 -+FORCE_INLINE __m64 _mm_max_pu8(__m64 a, __m64 b) -+{ -+ return vreinterpret_m64_u8( -+ vmax_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b, store the maximum value in the lower element of dst, and copy the upper 3 -+// packed elements from a to the upper element of dst. dst does not follow the -+// IEEE Standard for Floating-Point Arithmetic (IEEE 754) maximum value when -+// inputs are NaN or signed-zero values. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_ss -+FORCE_INLINE __m128 _mm_max_ss(__m128 a, __m128 b) -+{ -+ float32_t value = vgetq_lane_f32(_mm_max_ps(a, b), 0); -+ return vreinterpretq_m128_f32( -+ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); -+} -+ -+// Compare packed signed 16-bit integers in a and b, and store packed minimum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pi16 -+FORCE_INLINE __m64 _mm_min_pi16(__m64 a, __m64 b) -+{ -+ return vreinterpret_m64_s16( -+ vmin_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); -+} -+ -+// Compare packed single-precision (32-bit) floating-point elements in a and b, -+// and store packed minimum values in dst. dst does not follow the IEEE Standard -+// for Floating-Point Arithmetic (IEEE 754) minimum value when inputs are NaN or -+// signed-zero values. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ps -+FORCE_INLINE __m128 _mm_min_ps(__m128 a, __m128 b) -+{ -+#if SSE2NEON_PRECISE_MINMAX -+ float32x4_t _a = vreinterpretq_f32_m128(a); -+ float32x4_t _b = vreinterpretq_f32_m128(b); -+ return vreinterpretq_m128_f32(vbslq_f32(vcltq_f32(_a, _b), _a, _b)); -+#else -+ return vreinterpretq_m128_f32( -+ vminq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+#endif -+} -+ -+// Compare packed unsigned 8-bit integers in a and b, and store packed minimum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pu8 -+FORCE_INLINE __m64 _mm_min_pu8(__m64 a, __m64 b) -+{ -+ return vreinterpret_m64_u8( -+ vmin_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))); -+} -+ -+// Compare the lower single-precision (32-bit) floating-point elements in a and -+// b, store the minimum value in the lower element of dst, and copy the upper 3 -+// packed elements from a to the upper element of dst. dst does not follow the -+// IEEE Standard for Floating-Point Arithmetic (IEEE 754) minimum value when -+// inputs are NaN or signed-zero values. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_ss -+FORCE_INLINE __m128 _mm_min_ss(__m128 a, __m128 b) -+{ -+ float32_t value = vgetq_lane_f32(_mm_min_ps(a, b), 0); -+ return vreinterpretq_m128_f32( -+ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); -+} -+ -+// Move the lower single-precision (32-bit) floating-point element from b to the -+// lower element of dst, and copy the upper 3 packed elements from a to the -+// upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_ss -+FORCE_INLINE __m128 _mm_move_ss(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_f32( -+ vsetq_lane_f32(vgetq_lane_f32(vreinterpretq_f32_m128(b), 0), -+ vreinterpretq_f32_m128(a), 0)); -+} -+ -+// Move the upper 2 single-precision (32-bit) floating-point elements from b to -+// the lower 2 elements of dst, and copy the upper 2 elements from a to the -+// upper 2 elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehl_ps -+FORCE_INLINE __m128 _mm_movehl_ps(__m128 a, __m128 b) -+{ -+#if defined(aarch64__) -+ return vreinterpretq_m128_u64( -+ vzip2q_u64(vreinterpretq_u64_m128(b), vreinterpretq_u64_m128(a))); -+#else -+ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); -+ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); -+ return vreinterpretq_m128_f32(vcombine_f32(b32, a32)); -+#endif -+} -+ -+// Move the lower 2 single-precision (32-bit) floating-point elements from b to -+// the upper 2 elements of dst, and copy the lower 2 elements from a to the -+// lower 2 elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movelh_ps -+FORCE_INLINE __m128 _mm_movelh_ps(__m128 __A, __m128 __B) -+{ -+ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(__A)); -+ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(__B)); -+ return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); -+} -+ -+// Create mask from the most significant bit of each 8-bit element in a, and -+// store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pi8 -+FORCE_INLINE int _mm_movemask_pi8(__m64 a) -+{ -+ uint8x8_t input = vreinterpret_u8_m64(a); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ static const int8_t shift[8] = {0, 1, 2, 3, 4, 5, 6, 7}; -+ uint8x8_t tmp = vshr_n_u8(input, 7); -+ return vaddv_u8(vshl_u8(tmp, vld1_s8(shift))); -+#else -+ // Refer the implementation of `_mm_movemask_epi8` -+ uint16x4_t high_bits = vreinterpret_u16_u8(vshr_n_u8(input, 7)); -+ uint32x2_t paired16 = -+ vreinterpret_u32_u16(vsra_n_u16(high_bits, high_bits, 7)); -+ uint8x8_t paired32 = -+ vreinterpret_u8_u32(vsra_n_u32(paired16, paired16, 14)); -+ return vget_lane_u8(paired32, 0) | ((int) vget_lane_u8(paired32, 4) << 4); -+#endif -+} -+ -+// Set each bit of mask dst based on the most significant bit of the -+// corresponding packed single-precision (32-bit) floating-point element in a. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_ps -+FORCE_INLINE int _mm_movemask_ps(__m128 a) -+{ -+ uint32x4_t input = vreinterpretq_u32_m128(a); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ static const int32_t shift[4] = {0, 1, 2, 3}; -+ uint32x4_t tmp = vshrq_n_u32(input, 31); -+ return vaddvq_u32(vshlq_u32(tmp, vld1q_s32(shift))); -+#else -+ // Uses the exact same method as _mm_movemask_epi8, see that for details. -+ // Shift out everything but the sign bits with a 32-bit unsigned shift -+ // right. -+ uint64x2_t high_bits = vreinterpretq_u64_u32(vshrq_n_u32(input, 31)); -+ // Merge the two pairs together with a 64-bit unsigned shift right + add. -+ uint8x16_t paired = -+ vreinterpretq_u8_u64(vsraq_n_u64(high_bits, high_bits, 31)); -+ // Extract the result. -+ return vgetq_lane_u8(paired, 0) | (vgetq_lane_u8(paired, 8) << 2); -+#endif -+} -+ -+// Multiply packed single-precision (32-bit) floating-point elements in a and b, -+// and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ps -+FORCE_INLINE_OPTNONE __m128 _mm_mul_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_f32( -+ vmulq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+} -+ -+// Multiply the lower single-precision (32-bit) floating-point element in a and -+// b, store the result in the lower element of dst, and copy the upper 3 packed -+// elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_ss -+FORCE_INLINE __m128 _mm_mul_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_mul_ps(a, b)); -+} -+ -+// Multiply the packed unsigned 16-bit integers in a and b, producing -+// intermediate 32-bit integers, and store the high 16 bits of the intermediate -+// integers in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_pu16 -+FORCE_INLINE __m64 _mm_mulhi_pu16(__m64 a, __m64 b) -+{ -+ return vreinterpret_m64_u16(vshrn_n_u32( -+ vmull_u16(vreinterpret_u16_m64(a), vreinterpret_u16_m64(b)), 16)); -+} -+ -+// Compute the bitwise OR of packed single-precision (32-bit) floating-point -+// elements in a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_ps -+FORCE_INLINE __m128 _mm_or_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_s32( -+ vorrq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); -+} -+ -+// Average packed unsigned 8-bit integers in a and b, and store the results in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgb -+#define _m_pavgb(a, b) _mm_avg_pu8(a, b) -+ -+// Average packed unsigned 16-bit integers in a and b, and store the results in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pavgw -+#define _m_pavgw(a, b) _mm_avg_pu16(a, b) -+ -+// Extract a 16-bit integer from a, selected with imm8, and store the result in -+// the lower element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pextrw -+#define _m_pextrw(a, imm) _mm_extract_pi16(a, imm) -+ -+// Copy a to dst, and insert the 16-bit integer i into dst at the location -+// specified by imm8. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_pinsrw -+#define _m_pinsrw(a, i, imm) _mm_insert_pi16(a, i, imm) -+ -+// Compare packed signed 16-bit integers in a and b, and store packed maximum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxsw -+#define _m_pmaxsw(a, b) _mm_max_pi16(a, b) -+ -+// Compare packed unsigned 8-bit integers in a and b, and store packed maximum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmaxub -+#define _m_pmaxub(a, b) _mm_max_pu8(a, b) -+ -+// Compare packed signed 16-bit integers in a and b, and store packed minimum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminsw -+#define _m_pminsw(a, b) _mm_min_pi16(a, b) -+ -+// Compare packed unsigned 8-bit integers in a and b, and store packed minimum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pminub -+#define _m_pminub(a, b) _mm_min_pu8(a, b) -+ -+// Create mask from the most significant bit of each 8-bit element in a, and -+// store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmovmskb -+#define _m_pmovmskb(a) _mm_movemask_pi8(a) -+ -+// Multiply the packed unsigned 16-bit integers in a and b, producing -+// intermediate 32-bit integers, and store the high 16 bits of the intermediate -+// integers in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pmulhuw -+#define _m_pmulhuw(a, b) _mm_mulhi_pu16(a, b) -+ -+// Fetch the line of data from memory that contains address p to a location in -+// the cache hierarchy specified by the locality hint i. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_prefetch -+FORCE_INLINE void _mm_prefetch(char const *p, int i) -+{ -+ (void) i; -+#if defined(_MSC_VER) -+ switch (i) { -+ case _MM_HINT_NTA: -+ __prefetch2(p, 1); -+ break; -+ case _MM_HINT_T0: -+ __prefetch2(p, 0); -+ break; -+ case _MM_HINT_T1: -+ __prefetch2(p, 2); -+ break; -+ case _MM_HINT_T2: -+ __prefetch2(p, 4); -+ break; -+ } -+#else -+ switch (i) { -+ case _MM_HINT_NTA: -+ __builtin_prefetch(p, 0, 0); -+ break; -+ case _MM_HINT_T0: -+ __builtin_prefetch(p, 0, 3); -+ break; -+ case _MM_HINT_T1: -+ __builtin_prefetch(p, 0, 2); -+ break; -+ case _MM_HINT_T2: -+ __builtin_prefetch(p, 0, 1); -+ break; -+ } -+#endif -+} -+ -+// Compute the absolute differences of packed unsigned 8-bit integers in a and -+// b, then horizontally sum each consecutive 8 differences to produce four -+// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low -+// 16 bits of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=m_psadbw -+#define _m_psadbw(a, b) _mm_sad_pu8(a, b) -+ -+// Shuffle 16-bit integers in a using the control in imm8, and store the results -+// in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_m_pshufw -+#define _m_pshufw(a, imm) _mm_shuffle_pi16(a, imm) -+ -+// Compute the approximate reciprocal of packed single-precision (32-bit) -+// floating-point elements in a, and store the results in dst. The maximum -+// relative error for this approximation is less than 1.5*2^-12. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ps -+FORCE_INLINE __m128 _mm_rcp_ps(__m128 in) -+{ -+ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(in)); -+ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); -+#if SSE2NEON_PRECISE_DIV -+ // Additional Netwon-Raphson iteration for accuracy -+ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); -+#endif -+ return vreinterpretq_m128_f32(recip); -+} -+ -+// Compute the approximate reciprocal of the lower single-precision (32-bit) -+// floating-point element in a, store the result in the lower element of dst, -+// and copy the upper 3 packed elements from a to the upper elements of dst. The -+// maximum relative error for this approximation is less than 1.5*2^-12. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rcp_ss -+FORCE_INLINE __m128 _mm_rcp_ss(__m128 a) -+{ -+ return _mm_move_ss(a, _mm_rcp_ps(a)); -+} -+ -+// Compute the approximate reciprocal square root of packed single-precision -+// (32-bit) floating-point elements in a, and store the results in dst. The -+// maximum relative error for this approximation is less than 1.5*2^-12. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ps -+FORCE_INLINE __m128 _mm_rsqrt_ps(__m128 in) -+{ -+ float32x4_t out = vrsqrteq_f32(vreinterpretq_f32_m128(in)); -+ -+ // Generate masks for detecting whether input has any 0.0f/-0.0f -+ // (which becomes positive/negative infinity by IEEE-754 arithmetic rules). -+ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); -+ const uint32x4_t neg_inf = vdupq_n_u32(0xFF800000); -+ const uint32x4_t has_pos_zero = -+ vceqq_u32(pos_inf, vreinterpretq_u32_f32(out)); -+ const uint32x4_t has_neg_zero = -+ vceqq_u32(neg_inf, vreinterpretq_u32_f32(out)); -+ -+ out = vmulq_f32( -+ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); -+#if SSE2NEON_PRECISE_SQRT -+ // Additional Netwon-Raphson iteration for accuracy -+ out = vmulq_f32( -+ out, vrsqrtsq_f32(vmulq_f32(vreinterpretq_f32_m128(in), out), out)); -+#endif -+ -+ // Set output vector element to infinity/negative-infinity if -+ // the corresponding input vector element is 0.0f/-0.0f. -+ out = vbslq_f32(has_pos_zero, (float32x4_t) pos_inf, out); -+ out = vbslq_f32(has_neg_zero, (float32x4_t) neg_inf, out); -+ -+ return vreinterpretq_m128_f32(out); -+} -+ -+// Compute the approximate reciprocal square root of the lower single-precision -+// (32-bit) floating-point element in a, store the result in the lower element -+// of dst, and copy the upper 3 packed elements from a to the upper elements of -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_rsqrt_ss -+FORCE_INLINE __m128 _mm_rsqrt_ss(__m128 in) -+{ -+ return vsetq_lane_f32(vgetq_lane_f32(_mm_rsqrt_ps(in), 0), in, 0); -+} -+ -+// Compute the absolute differences of packed unsigned 8-bit integers in a and -+// b, then horizontally sum each consecutive 8 differences to produce four -+// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low -+// 16 bits of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_pu8 -+FORCE_INLINE __m64 _mm_sad_pu8(__m64 a, __m64 b) -+{ -+ uint64x1_t t = vpaddl_u32(vpaddl_u16( -+ vpaddl_u8(vabd_u8(vreinterpret_u8_m64(a), vreinterpret_u8_m64(b))))); -+ return vreinterpret_m64_u16( -+ vset_lane_u16((int) vget_lane_u64(t, 0), vdup_n_u16(0), 0)); -+} -+ -+// Macro: Set the flush zero bits of the MXCSR control and status register to -+// the value in unsigned 32-bit integer a. The flush zero may contain any of the -+// following flags: _MM_FLUSH_ZERO_ON or _MM_FLUSH_ZERO_OFF -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_FLUSH_ZERO_MODE -+FORCE_INLINE void _sse2neon_mm_set_flush_zero_mode(unsigned int flag) -+{ -+ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, -+ // regardless of the value of the FZ bit. -+ union { -+ fpcr_bitfield field; -+#if defined(__aarch64__) || defined(_M_ARM64) -+ uint64_t value; -+#else -+ uint32_t value; -+#endif -+ } r; -+ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ r.value = _sse2neon_get_fpcr(); -+#else -+ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ -+#endif -+ -+ r.field.bit24 = (flag & _MM_FLUSH_ZERO_MASK) == _MM_FLUSH_ZERO_ON; -+ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ _sse2neon_set_fpcr(r.value); -+#else -+ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ -+#endif -+} -+ -+// Set packed single-precision (32-bit) floating-point elements in dst with the -+// supplied values. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps -+FORCE_INLINE __m128 _mm_set_ps(float w, float z, float y, float x) -+{ -+ float ALIGN_STRUCT(16) data[4] = {x, y, z, w}; -+ return vreinterpretq_m128_f32(vld1q_f32(data)); -+} -+ -+// Broadcast single-precision (32-bit) floating-point value a to all elements of -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ps1 -+FORCE_INLINE __m128 _mm_set_ps1(float _w) -+{ -+ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); -+} -+ -+// Macro: Set the rounding mode bits of the MXCSR control and status register to -+// the value in unsigned 32-bit integer a. The rounding mode may contain any of -+// the following flags: _MM_ROUND_NEAREST, _MM_ROUND_DOWN, _MM_ROUND_UP, -+// _MM_ROUND_TOWARD_ZERO -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_MM_SET_ROUNDING_MODE -+FORCE_INLINE void _MM_SET_ROUNDING_MODE(int rounding) -+{ -+ union { -+ fpcr_bitfield field; -+#if defined(__aarch64__) || defined(_M_ARM64) -+ uint64_t value; -+#else -+ uint32_t value; -+#endif -+ } r; -+ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ r.value = _sse2neon_get_fpcr(); -+#else -+ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ -+#endif -+ -+ switch (rounding) { -+ case _MM_ROUND_TOWARD_ZERO: -+ r.field.bit22 = 1; -+ r.field.bit23 = 1; -+ break; -+ case _MM_ROUND_DOWN: -+ r.field.bit22 = 0; -+ r.field.bit23 = 1; -+ break; -+ case _MM_ROUND_UP: -+ r.field.bit22 = 1; -+ r.field.bit23 = 0; -+ break; -+ default: //_MM_ROUND_NEAREST -+ r.field.bit22 = 0; -+ r.field.bit23 = 0; -+ } -+ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ _sse2neon_set_fpcr(r.value); -+#else -+ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ -+#endif -+} -+ -+// Copy single-precision (32-bit) floating-point element a to the lower element -+// of dst, and zero the upper 3 elements. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_ss -+FORCE_INLINE __m128 _mm_set_ss(float a) -+{ -+ return vreinterpretq_m128_f32(vsetq_lane_f32(a, vdupq_n_f32(0), 0)); -+} -+ -+// Broadcast single-precision (32-bit) floating-point value a to all elements of -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_ps -+FORCE_INLINE __m128 _mm_set1_ps(float _w) -+{ -+ return vreinterpretq_m128_f32(vdupq_n_f32(_w)); -+} -+ -+// Set the MXCSR control and status register with the value in unsigned 32-bit -+// integer a. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setcsr -+// FIXME: _mm_setcsr() implementation supports changing the rounding mode only. -+FORCE_INLINE void _mm_setcsr(unsigned int a) -+{ -+ _MM_SET_ROUNDING_MODE(a); -+} -+ -+// Get the unsigned 32-bit value of the MXCSR control and status register. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_getcsr -+// FIXME: _mm_getcsr() implementation supports reading the rounding mode only. -+FORCE_INLINE unsigned int _mm_getcsr(void) -+{ -+ return _MM_GET_ROUNDING_MODE(); -+} -+ -+// Set packed single-precision (32-bit) floating-point elements in dst with the -+// supplied values in reverse order. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_ps -+FORCE_INLINE __m128 _mm_setr_ps(float w, float z, float y, float x) -+{ -+ float ALIGN_STRUCT(16) data[4] = {w, z, y, x}; -+ return vreinterpretq_m128_f32(vld1q_f32(data)); -+} -+ -+// Return vector of type __m128 with all elements set to zero. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_ps -+FORCE_INLINE __m128 _mm_setzero_ps(void) -+{ -+ return vreinterpretq_m128_f32(vdupq_n_f32(0)); -+} -+ -+// Shuffle 16-bit integers in a using the control in imm8, and store the results -+// in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi16 -+#ifdef _sse2neon_shuffle -+#define _mm_shuffle_pi16(a, imm) \ -+ vreinterpret_m64_s16(vshuffle_s16( \ -+ vreinterpret_s16_m64(a), vreinterpret_s16_m64(a), (imm & 0x3), \ -+ ((imm >> 2) & 0x3), ((imm >> 4) & 0x3), ((imm >> 6) & 0x3))) -+#else -+#define _mm_shuffle_pi16(a, imm) \ -+ _sse2neon_define1( \ -+ __m64, a, int16x4_t ret; \ -+ ret = vmov_n_s16( \ -+ vget_lane_s16(vreinterpret_s16_m64(_a), (imm) & (0x3))); \ -+ ret = vset_lane_s16( \ -+ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 2) & 0x3), ret, \ -+ 1); \ -+ ret = vset_lane_s16( \ -+ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 4) & 0x3), ret, \ -+ 2); \ -+ ret = vset_lane_s16( \ -+ vget_lane_s16(vreinterpret_s16_m64(_a), ((imm) >> 6) & 0x3), ret, \ -+ 3); \ -+ _sse2neon_return(vreinterpret_m64_s16(ret));) -+#endif -+ -+// Perform a serializing operation on all store-to-memory instructions that were -+// issued prior to this instruction. Guarantees that every store instruction -+// that precedes, in program order, is globally visible before any store -+// instruction which follows the fence in program order. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sfence -+FORCE_INLINE void _mm_sfence(void) -+{ -+ _sse2neon_smp_mb(); -+} -+ -+// Perform a serializing operation on all load-from-memory and store-to-memory -+// instructions that were issued prior to this instruction. Guarantees that -+// every memory access that precedes, in program order, the memory fence -+// instruction is globally visible before any memory instruction which follows -+// the fence in program order. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mfence -+FORCE_INLINE void _mm_mfence(void) -+{ -+ _sse2neon_smp_mb(); -+} -+ -+// Perform a serializing operation on all load-from-memory instructions that -+// were issued prior to this instruction. Guarantees that every load instruction -+// that precedes, in program order, is globally visible before any load -+// instruction which follows the fence in program order. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lfence -+FORCE_INLINE void _mm_lfence(void) -+{ -+ _sse2neon_smp_mb(); -+} -+ -+// FORCE_INLINE __m128 _mm_shuffle_ps(__m128 a, __m128 b, __constrange(0,255) -+// int imm) -+#ifdef _sse2neon_shuffle -+#define _mm_shuffle_ps(a, b, imm) \ -+ __extension__({ \ -+ float32x4_t _input1 = vreinterpretq_f32_m128(a); \ -+ float32x4_t _input2 = vreinterpretq_f32_m128(b); \ -+ float32x4_t _shuf = \ -+ vshuffleq_s32(_input1, _input2, (imm) & (0x3), ((imm) >> 2) & 0x3, \ -+ (((imm) >> 4) & 0x3) + 4, (((imm) >> 6) & 0x3) + 4); \ -+ vreinterpretq_m128_f32(_shuf); \ -+ }) -+#else // generic -+#define _mm_shuffle_ps(a, b, imm) \ -+ _sse2neon_define2( \ -+ __m128, a, b, __m128 ret; switch (imm) { \ -+ case _MM_SHUFFLE(1, 0, 3, 2): \ -+ ret = _mm_shuffle_ps_1032(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(2, 3, 0, 1): \ -+ ret = _mm_shuffle_ps_2301(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(0, 3, 2, 1): \ -+ ret = _mm_shuffle_ps_0321(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(2, 1, 0, 3): \ -+ ret = _mm_shuffle_ps_2103(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(1, 0, 1, 0): \ -+ ret = _mm_movelh_ps(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(1, 0, 0, 1): \ -+ ret = _mm_shuffle_ps_1001(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(0, 1, 0, 1): \ -+ ret = _mm_shuffle_ps_0101(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(3, 2, 1, 0): \ -+ ret = _mm_shuffle_ps_3210(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(0, 0, 1, 1): \ -+ ret = _mm_shuffle_ps_0011(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(0, 0, 2, 2): \ -+ ret = _mm_shuffle_ps_0022(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(2, 2, 0, 0): \ -+ ret = _mm_shuffle_ps_2200(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(3, 2, 0, 2): \ -+ ret = _mm_shuffle_ps_3202(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(3, 2, 3, 2): \ -+ ret = _mm_movehl_ps(_b, _a); \ -+ break; \ -+ case _MM_SHUFFLE(1, 1, 3, 3): \ -+ ret = _mm_shuffle_ps_1133(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(2, 0, 1, 0): \ -+ ret = _mm_shuffle_ps_2010(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(2, 0, 0, 1): \ -+ ret = _mm_shuffle_ps_2001(_a, _b); \ -+ break; \ -+ case _MM_SHUFFLE(2, 0, 3, 2): \ -+ ret = _mm_shuffle_ps_2032(_a, _b); \ -+ break; \ -+ default: \ -+ ret = _mm_shuffle_ps_default(_a, _b, (imm)); \ -+ break; \ -+ } _sse2neon_return(ret);) -+#endif -+ -+// Compute the square root of packed single-precision (32-bit) floating-point -+// elements in a, and store the results in dst. -+// Due to ARMv7-A NEON's lack of a precise square root intrinsic, we implement -+// square root by multiplying input in with its reciprocal square root before -+// using the Newton-Raphson method to approximate the results. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ps -+FORCE_INLINE __m128 _mm_sqrt_ps(__m128 in) -+{ -+#if (defined(__aarch64__) || defined(_M_ARM64)) && !SSE2NEON_PRECISE_SQRT -+ return vreinterpretq_m128_f32(vsqrtq_f32(vreinterpretq_f32_m128(in))); -+#else -+ float32x4_t recip = vrsqrteq_f32(vreinterpretq_f32_m128(in)); -+ -+ // Test for vrsqrteq_f32(0) -> positive infinity case. -+ // Change to zero, so that s * 1/sqrt(s) result is zero too. -+ const uint32x4_t pos_inf = vdupq_n_u32(0x7F800000); -+ const uint32x4_t div_by_zero = -+ vceqq_u32(pos_inf, vreinterpretq_u32_f32(recip)); -+ recip = vreinterpretq_f32_u32( -+ vandq_u32(vmvnq_u32(div_by_zero), vreinterpretq_u32_f32(recip))); -+ -+ recip = vmulq_f32( -+ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), -+ recip); -+ // Additional Netwon-Raphson iteration for accuracy -+ recip = vmulq_f32( -+ vrsqrtsq_f32(vmulq_f32(recip, recip), vreinterpretq_f32_m128(in)), -+ recip); -+ -+ // sqrt(s) = s * 1/sqrt(s) -+ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(in), recip)); -+#endif -+} -+ -+// Compute the square root of the lower single-precision (32-bit) floating-point -+// element in a, store the result in the lower element of dst, and copy the -+// upper 3 packed elements from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_ss -+FORCE_INLINE __m128 _mm_sqrt_ss(__m128 in) -+{ -+ float32_t value = -+ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_sqrt_ps(in)), 0); -+ return vreinterpretq_m128_f32( -+ vsetq_lane_f32(value, vreinterpretq_f32_m128(in), 0)); -+} -+ -+// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point -+// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary -+// or a general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps -+FORCE_INLINE void _mm_store_ps(float *p, __m128 a) -+{ -+ vst1q_f32(p, vreinterpretq_f32_m128(a)); -+} -+ -+// Store the lower single-precision (32-bit) floating-point element from a into -+// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte -+// boundary or a general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ps1 -+FORCE_INLINE void _mm_store_ps1(float *p, __m128 a) -+{ -+ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); -+ vst1q_f32(p, vdupq_n_f32(a0)); -+} -+ -+// Store the lower single-precision (32-bit) floating-point element from a into -+// memory. mem_addr does not need to be aligned on any particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_ss -+FORCE_INLINE void _mm_store_ss(float *p, __m128 a) -+{ -+ vst1q_lane_f32(p, vreinterpretq_f32_m128(a), 0); -+} -+ -+// Store the lower single-precision (32-bit) floating-point element from a into -+// 4 contiguous elements in memory. mem_addr must be aligned on a 16-byte -+// boundary or a general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store1_ps -+#define _mm_store1_ps _mm_store_ps1 -+ -+// Store the upper 2 single-precision (32-bit) floating-point elements from a -+// into memory. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pi -+FORCE_INLINE void _mm_storeh_pi(__m64 *p, __m128 a) -+{ -+ *p = vreinterpret_m64_f32(vget_high_f32(a)); -+} -+ -+// Store the lower 2 single-precision (32-bit) floating-point elements from a -+// into memory. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pi -+FORCE_INLINE void _mm_storel_pi(__m64 *p, __m128 a) -+{ -+ *p = vreinterpret_m64_f32(vget_low_f32(a)); -+} -+ -+// Store 4 single-precision (32-bit) floating-point elements from a into memory -+// in reverse order. mem_addr must be aligned on a 16-byte boundary or a -+// general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_ps -+FORCE_INLINE void _mm_storer_ps(float *p, __m128 a) -+{ -+ float32x4_t tmp = vrev64q_f32(vreinterpretq_f32_m128(a)); -+ float32x4_t rev = vextq_f32(tmp, tmp, 2); -+ vst1q_f32(p, rev); -+} -+ -+// Store 128-bits (composed of 4 packed single-precision (32-bit) floating-point -+// elements) from a into memory. mem_addr does not need to be aligned on any -+// particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_ps -+FORCE_INLINE void _mm_storeu_ps(float *p, __m128 a) -+{ -+ vst1q_f32(p, vreinterpretq_f32_m128(a)); -+} -+ -+// Stores 16-bits of integer data a at the address p. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si16 -+FORCE_INLINE void _mm_storeu_si16(void *p, __m128i a) -+{ -+ vst1q_lane_s16((int16_t *) p, vreinterpretq_s16_m128i(a), 0); -+} -+ -+// Stores 64-bits of integer data a at the address p. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si64 -+FORCE_INLINE void _mm_storeu_si64(void *p, __m128i a) -+{ -+ vst1q_lane_s64((int64_t *) p, vreinterpretq_s64_m128i(a), 0); -+} -+ -+// Store 64-bits of integer data from a into memory using a non-temporal memory -+// hint. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pi -+FORCE_INLINE void _mm_stream_pi(__m64 *p, __m64 a) -+{ -+ vst1_s64((int64_t *) p, vreinterpret_s64_m64(a)); -+} -+ -+// Store 128-bits (composed of 4 packed single-precision (32-bit) floating- -+// point elements) from a into memory using a non-temporal memory hint. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_ps -+FORCE_INLINE void _mm_stream_ps(float *p, __m128 a) -+{ -+#if __has_builtin(__builtin_nontemporal_store) -+ __builtin_nontemporal_store(a, (float32x4_t *) p); -+#else -+ vst1q_f32(p, vreinterpretq_f32_m128(a)); -+#endif -+} -+ -+// Subtract packed single-precision (32-bit) floating-point elements in b from -+// packed single-precision (32-bit) floating-point elements in a, and store the -+// results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ps -+FORCE_INLINE __m128 _mm_sub_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_f32( -+ vsubq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+} -+ -+// Subtract the lower single-precision (32-bit) floating-point element in b from -+// the lower single-precision (32-bit) floating-point element in a, store the -+// result in the lower element of dst, and copy the upper 3 packed elements from -+// a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_ss -+FORCE_INLINE __m128 _mm_sub_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_sub_ps(a, b)); -+} -+ -+// Macro: Transpose the 4x4 matrix formed by the 4 rows of single-precision -+// (32-bit) floating-point elements in row0, row1, row2, and row3, and store the -+// transposed matrix in these vectors (row0 now contains column 0, etc.). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=MM_TRANSPOSE4_PS -+#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \ -+ do { \ -+ float32x4x2_t ROW01 = vtrnq_f32(row0, row1); \ -+ float32x4x2_t ROW23 = vtrnq_f32(row2, row3); \ -+ row0 = vcombine_f32(vget_low_f32(ROW01.val[0]), \ -+ vget_low_f32(ROW23.val[0])); \ -+ row1 = vcombine_f32(vget_low_f32(ROW01.val[1]), \ -+ vget_low_f32(ROW23.val[1])); \ -+ row2 = vcombine_f32(vget_high_f32(ROW01.val[0]), \ -+ vget_high_f32(ROW23.val[0])); \ -+ row3 = vcombine_f32(vget_high_f32(ROW01.val[1]), \ -+ vget_high_f32(ROW23.val[1])); \ -+ } while (0) -+ -+// according to the documentation, these intrinsics behave the same as the -+// non-'u' versions. We'll just alias them here. -+#define _mm_ucomieq_ss _mm_comieq_ss -+#define _mm_ucomige_ss _mm_comige_ss -+#define _mm_ucomigt_ss _mm_comigt_ss -+#define _mm_ucomile_ss _mm_comile_ss -+#define _mm_ucomilt_ss _mm_comilt_ss -+#define _mm_ucomineq_ss _mm_comineq_ss -+ -+// Return vector of type __m128i with undefined elements. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_undefined_si128 -+FORCE_INLINE __m128i _mm_undefined_si128(void) -+{ -+#if defined(__GNUC__) || defined(__clang__) -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wuninitialized" -+#endif -+ __m128i a; -+#if defined(_MSC_VER) -+ a = _mm_setzero_si128(); -+#endif -+ return a; -+#if defined(__GNUC__) || defined(__clang__) -+#pragma GCC diagnostic pop -+#endif -+} -+ -+// Return vector of type __m128 with undefined elements. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_ps -+FORCE_INLINE __m128 _mm_undefined_ps(void) -+{ -+#if defined(__GNUC__) || defined(__clang__) -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wuninitialized" -+#endif -+ __m128 a; -+#if defined(_MSC_VER) -+ a = _mm_setzero_ps(); -+#endif -+ return a; -+#if defined(__GNUC__) || defined(__clang__) -+#pragma GCC diagnostic pop -+#endif -+} -+ -+// Unpack and interleave single-precision (32-bit) floating-point elements from -+// the high half a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_ps -+FORCE_INLINE __m128 _mm_unpackhi_ps(__m128 a, __m128 b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128_f32( -+ vzip2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+#else -+ float32x2_t a1 = vget_high_f32(vreinterpretq_f32_m128(a)); -+ float32x2_t b1 = vget_high_f32(vreinterpretq_f32_m128(b)); -+ float32x2x2_t result = vzip_f32(a1, b1); -+ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); -+#endif -+} -+ -+// Unpack and interleave single-precision (32-bit) floating-point elements from -+// the low half of a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_ps -+FORCE_INLINE __m128 _mm_unpacklo_ps(__m128 a, __m128 b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128_f32( -+ vzip1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+#else -+ float32x2_t a1 = vget_low_f32(vreinterpretq_f32_m128(a)); -+ float32x2_t b1 = vget_low_f32(vreinterpretq_f32_m128(b)); -+ float32x2x2_t result = vzip_f32(a1, b1); -+ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); -+#endif -+} -+ -+// Compute the bitwise XOR of packed single-precision (32-bit) floating-point -+// elements in a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_ps -+FORCE_INLINE __m128 _mm_xor_ps(__m128 a, __m128 b) -+{ -+ return vreinterpretq_m128_s32( -+ veorq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b))); -+} -+ -+/* SSE2 */ -+ -+// Add packed 16-bit integers in a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi16 -+FORCE_INLINE __m128i _mm_add_epi16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s16( -+ vaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); -+} -+ -+// Add packed 32-bit integers in a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi32 -+FORCE_INLINE __m128i _mm_add_epi32(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s32( -+ vaddq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); -+} -+ -+// Add packed 64-bit integers in a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi64 -+FORCE_INLINE __m128i _mm_add_epi64(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s64( -+ vaddq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); -+} -+ -+// Add packed 8-bit integers in a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_epi8 -+FORCE_INLINE __m128i _mm_add_epi8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s8( -+ vaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); -+} -+ -+// Add packed double-precision (64-bit) floating-point elements in a and b, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_pd -+FORCE_INLINE __m128d _mm_add_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#else -+ double *da = (double *) &a; -+ double *db = (double *) &b; -+ double c[2]; -+ c[0] = da[0] + db[0]; -+ c[1] = da[1] + db[1]; -+ return vld1q_f32((float32_t *) c); -+#endif -+} -+ -+// Add the lower double-precision (64-bit) floating-point element in a and b, -+// store the result in the lower element of dst, and copy the upper element from -+// a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_sd -+FORCE_INLINE __m128d _mm_add_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return _mm_move_sd(a, _mm_add_pd(a, b)); -+#else -+ double *da = (double *) &a; -+ double *db = (double *) &b; -+ double c[2]; -+ c[0] = da[0] + db[0]; -+ c[1] = da[1]; -+ return vld1q_f32((float32_t *) c); -+#endif -+} -+ -+// Add 64-bit integers a and b, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_add_si64 -+FORCE_INLINE __m64 _mm_add_si64(__m64 a, __m64 b) -+{ -+ return vreinterpret_m64_s64( -+ vadd_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); -+} -+ -+// Add packed signed 16-bit integers in a and b using saturation, and store the -+// results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi16 -+FORCE_INLINE __m128i _mm_adds_epi16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s16( -+ vqaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); -+} -+ -+// Add packed signed 8-bit integers in a and b using saturation, and store the -+// results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epi8 -+FORCE_INLINE __m128i _mm_adds_epi8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s8( -+ vqaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); -+} -+ -+// Add packed unsigned 16-bit integers in a and b using saturation, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu16 -+FORCE_INLINE __m128i _mm_adds_epu16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u16( -+ vqaddq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); -+} -+ -+// Add packed unsigned 8-bit integers in a and b using saturation, and store the -+// results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_adds_epu8 -+FORCE_INLINE __m128i _mm_adds_epu8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u8( -+ vqaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); -+} -+ -+// Compute the bitwise AND of packed double-precision (64-bit) floating-point -+// elements in a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_pd -+FORCE_INLINE __m128d _mm_and_pd(__m128d a, __m128d b) -+{ -+ return vreinterpretq_m128d_s64( -+ vandq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); -+} -+ -+// Compute the bitwise AND of 128 bits (representing integer data) in a and b, -+// and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_and_si128 -+FORCE_INLINE __m128i _mm_and_si128(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s32( -+ vandq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); -+} -+ -+// Compute the bitwise NOT of packed double-precision (64-bit) floating-point -+// elements in a and then AND with b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_pd -+FORCE_INLINE __m128d _mm_andnot_pd(__m128d a, __m128d b) -+{ -+ // *NOTE* argument swap -+ return vreinterpretq_m128d_s64( -+ vbicq_s64(vreinterpretq_s64_m128d(b), vreinterpretq_s64_m128d(a))); -+} -+ -+// Compute the bitwise NOT of 128 bits (representing integer data) in a and then -+// AND with b, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_andnot_si128 -+FORCE_INLINE __m128i _mm_andnot_si128(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s32( -+ vbicq_s32(vreinterpretq_s32_m128i(b), -+ vreinterpretq_s32_m128i(a))); // *NOTE* argument swap -+} -+ -+// Average packed unsigned 16-bit integers in a and b, and store the results in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu16 -+FORCE_INLINE __m128i _mm_avg_epu16(__m128i a, __m128i b) -+{ -+ return (__m128i) vrhaddq_u16(vreinterpretq_u16_m128i(a), -+ vreinterpretq_u16_m128i(b)); -+} -+ -+// Average packed unsigned 8-bit integers in a and b, and store the results in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_avg_epu8 -+FORCE_INLINE __m128i _mm_avg_epu8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u8( -+ vrhaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); -+} -+ -+// Shift a left by imm8 bytes while shifting in zeros, and store the results in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bslli_si128 -+#define _mm_bslli_si128(a, imm) _mm_slli_si128(a, imm) -+ -+// Shift a right by imm8 bytes while shifting in zeros, and store the results in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_bsrli_si128 -+#define _mm_bsrli_si128(a, imm) _mm_srli_si128(a, imm) -+ -+// Cast vector of type __m128d to type __m128. This intrinsic is only used for -+// compilation and does not generate any instructions, thus it has zero latency. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_ps -+FORCE_INLINE __m128 _mm_castpd_ps(__m128d a) -+{ -+ return vreinterpretq_m128_s64(vreinterpretq_s64_m128d(a)); -+} -+ -+// Cast vector of type __m128d to type __m128i. This intrinsic is only used for -+// compilation and does not generate any instructions, thus it has zero latency. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castpd_si128 -+FORCE_INLINE __m128i _mm_castpd_si128(__m128d a) -+{ -+ return vreinterpretq_m128i_s64(vreinterpretq_s64_m128d(a)); -+} -+ -+// Cast vector of type __m128 to type __m128d. This intrinsic is only used for -+// compilation and does not generate any instructions, thus it has zero latency. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_pd -+FORCE_INLINE __m128d _mm_castps_pd(__m128 a) -+{ -+ return vreinterpretq_m128d_s32(vreinterpretq_s32_m128(a)); -+} -+ -+// Cast vector of type __m128 to type __m128i. This intrinsic is only used for -+// compilation and does not generate any instructions, thus it has zero latency. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castps_si128 -+FORCE_INLINE __m128i _mm_castps_si128(__m128 a) -+{ -+ return vreinterpretq_m128i_s32(vreinterpretq_s32_m128(a)); -+} -+ -+// Cast vector of type __m128i to type __m128d. This intrinsic is only used for -+// compilation and does not generate any instructions, thus it has zero latency. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_pd -+FORCE_INLINE __m128d _mm_castsi128_pd(__m128i a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64(vreinterpretq_f64_m128i(a)); -+#else -+ return vreinterpretq_m128d_f32(vreinterpretq_f32_m128i(a)); -+#endif -+} -+ -+// Cast vector of type __m128i to type __m128. This intrinsic is only used for -+// compilation and does not generate any instructions, thus it has zero latency. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_castsi128_ps -+FORCE_INLINE __m128 _mm_castsi128_ps(__m128i a) -+{ -+ return vreinterpretq_m128_s32(vreinterpretq_s32_m128i(a)); -+} -+ -+// Invalidate and flush the cache line that contains p from all levels of the -+// cache hierarchy. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clflush -+#if defined(__APPLE__) -+#include -+#endif -+FORCE_INLINE void _mm_clflush(void const *p) -+{ -+ (void) p; -+ -+ /* sys_icache_invalidate is supported since macOS 10.5. -+ * However, it does not work on non-jailbroken iOS devices, although the -+ * compilation is successful. -+ */ -+#if defined(__APPLE__) -+ sys_icache_invalidate((void *) (uintptr_t) p, SSE2NEON_CACHELINE_SIZE); -+#elif defined(__GNUC__) || defined(__clang__) -+ uintptr_t ptr = (uintptr_t) p; -+ __builtin___clear_cache((char *) ptr, -+ (char *) ptr + SSE2NEON_CACHELINE_SIZE); -+#elif (_MSC_VER) && SSE2NEON_INCLUDE_WINDOWS_H -+ FlushInstructionCache(GetCurrentProcess(), p, SSE2NEON_CACHELINE_SIZE); -+#endif -+} -+ -+// Compare packed 16-bit integers in a and b for equality, and store the results -+// in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi16 -+FORCE_INLINE __m128i _mm_cmpeq_epi16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u16( -+ vceqq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); -+} -+ -+// Compare packed 32-bit integers in a and b for equality, and store the results -+// in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi32 -+FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u32( -+ vceqq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); -+} -+ -+// Compare packed 8-bit integers in a and b for equality, and store the results -+// in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_epi8 -+FORCE_INLINE __m128i _mm_cmpeq_epi8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u8( -+ vceqq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b -+// for equality, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_pd -+FORCE_INLINE __m128d _mm_cmpeq_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_u64( -+ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#else -+ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) -+ uint32x4_t cmp = -+ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); -+ uint32x4_t swapped = vrev64q_u32(cmp); -+ return vreinterpretq_m128d_u32(vandq_u32(cmp, swapped)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b for equality, store the result in the lower element of dst, and copy the -+// upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpeq_sd -+FORCE_INLINE __m128d _mm_cmpeq_sd(__m128d a, __m128d b) -+{ -+ return _mm_move_sd(a, _mm_cmpeq_pd(a, b)); -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b -+// for greater-than-or-equal, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_pd -+FORCE_INLINE __m128d _mm_cmpge_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_u64( -+ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); -+ d[1] = (*(double *) &a1) >= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b for greater-than-or-equal, store the result in the lower element of dst, -+// and copy the upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpge_sd -+FORCE_INLINE __m128d _mm_cmpge_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return _mm_move_sd(a, _mm_cmpge_pd(a, b)); -+#else -+ // expand "_mm_cmpge_pd()" to reduce unnecessary operations -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = (*(double *) &a0) >= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); -+ d[1] = a1; -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare packed signed 16-bit integers in a and b for greater-than, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi16 -+FORCE_INLINE __m128i _mm_cmpgt_epi16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u16( -+ vcgtq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); -+} -+ -+// Compare packed signed 32-bit integers in a and b for greater-than, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi32 -+FORCE_INLINE __m128i _mm_cmpgt_epi32(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u32( -+ vcgtq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); -+} -+ -+// Compare packed signed 8-bit integers in a and b for greater-than, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_epi8 -+FORCE_INLINE __m128i _mm_cmpgt_epi8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u8( -+ vcgtq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b -+// for greater-than, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_pd -+FORCE_INLINE __m128d _mm_cmpgt_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_u64( -+ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); -+ d[1] = (*(double *) &a1) > (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b for greater-than, store the result in the lower element of dst, and copy -+// the upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpgt_sd -+FORCE_INLINE __m128d _mm_cmpgt_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return _mm_move_sd(a, _mm_cmpgt_pd(a, b)); -+#else -+ // expand "_mm_cmpge_pd()" to reduce unnecessary operations -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = (*(double *) &a0) > (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); -+ d[1] = a1; -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b -+// for less-than-or-equal, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_pd -+FORCE_INLINE __m128d _mm_cmple_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_u64( -+ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); -+ d[1] = (*(double *) &a1) <= (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b for less-than-or-equal, store the result in the lower element of dst, and -+// copy the upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmple_sd -+FORCE_INLINE __m128d _mm_cmple_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return _mm_move_sd(a, _mm_cmple_pd(a, b)); -+#else -+ // expand "_mm_cmpge_pd()" to reduce unnecessary operations -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = (*(double *) &a0) <= (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); -+ d[1] = a1; -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare packed signed 16-bit integers in a and b for less-than, and store the -+// results in dst. Note: This intrinsic emits the pcmpgtw instruction with the -+// order of the operands switched. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi16 -+FORCE_INLINE __m128i _mm_cmplt_epi16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u16( -+ vcltq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); -+} -+ -+// Compare packed signed 32-bit integers in a and b for less-than, and store the -+// results in dst. Note: This intrinsic emits the pcmpgtd instruction with the -+// order of the operands switched. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi32 -+FORCE_INLINE __m128i _mm_cmplt_epi32(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u32( -+ vcltq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); -+} -+ -+// Compare packed signed 8-bit integers in a and b for less-than, and store the -+// results in dst. Note: This intrinsic emits the pcmpgtb instruction with the -+// order of the operands switched. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_epi8 -+FORCE_INLINE __m128i _mm_cmplt_epi8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u8( -+ vcltq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b -+// for less-than, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_pd -+FORCE_INLINE __m128d _mm_cmplt_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_u64( -+ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); -+ d[1] = (*(double *) &a1) < (*(double *) &b1) ? ~UINT64_C(0) : UINT64_C(0); -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b for less-than, store the result in the lower element of dst, and copy the -+// upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmplt_sd -+FORCE_INLINE __m128d _mm_cmplt_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return _mm_move_sd(a, _mm_cmplt_pd(a, b)); -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = (*(double *) &a0) < (*(double *) &b0) ? ~UINT64_C(0) : UINT64_C(0); -+ d[1] = a1; -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b -+// for not-equal, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_pd -+FORCE_INLINE __m128d _mm_cmpneq_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_s32(vmvnq_s32(vreinterpretq_s32_u64( -+ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))))); -+#else -+ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) -+ uint32x4_t cmp = -+ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); -+ uint32x4_t swapped = vrev64q_u32(cmp); -+ return vreinterpretq_m128d_u32(vmvnq_u32(vandq_u32(cmp, swapped))); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b for not-equal, store the result in the lower element of dst, and copy the -+// upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpneq_sd -+FORCE_INLINE __m128d _mm_cmpneq_sd(__m128d a, __m128d b) -+{ -+ return _mm_move_sd(a, _mm_cmpneq_pd(a, b)); -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b -+// for not-greater-than-or-equal, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_pd -+FORCE_INLINE __m128d _mm_cmpnge_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_u64(veorq_u64( -+ vcgeq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), -+ vdupq_n_u64(UINT64_MAX))); -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = -+ !((*(double *) &a0) >= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); -+ d[1] = -+ !((*(double *) &a1) >= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b for not-greater-than-or-equal, store the result in the lower element of -+// dst, and copy the upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnge_sd -+FORCE_INLINE __m128d _mm_cmpnge_sd(__m128d a, __m128d b) -+{ -+ return _mm_move_sd(a, _mm_cmpnge_pd(a, b)); -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b -+// for not-greater-than, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_cmpngt_pd -+FORCE_INLINE __m128d _mm_cmpngt_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_u64(veorq_u64( -+ vcgtq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), -+ vdupq_n_u64(UINT64_MAX))); -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = -+ !((*(double *) &a0) > (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); -+ d[1] = -+ !((*(double *) &a1) > (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b for not-greater-than, store the result in the lower element of dst, and -+// copy the upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpngt_sd -+FORCE_INLINE __m128d _mm_cmpngt_sd(__m128d a, __m128d b) -+{ -+ return _mm_move_sd(a, _mm_cmpngt_pd(a, b)); -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b -+// for not-less-than-or-equal, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_pd -+FORCE_INLINE __m128d _mm_cmpnle_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_u64(veorq_u64( -+ vcleq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), -+ vdupq_n_u64(UINT64_MAX))); -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = -+ !((*(double *) &a0) <= (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); -+ d[1] = -+ !((*(double *) &a1) <= (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b for not-less-than-or-equal, store the result in the lower element of dst, -+// and copy the upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnle_sd -+FORCE_INLINE __m128d _mm_cmpnle_sd(__m128d a, __m128d b) -+{ -+ return _mm_move_sd(a, _mm_cmpnle_pd(a, b)); -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b -+// for not-less-than, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_pd -+FORCE_INLINE __m128d _mm_cmpnlt_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_u64(veorq_u64( -+ vcltq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)), -+ vdupq_n_u64(UINT64_MAX))); -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = -+ !((*(double *) &a0) < (*(double *) &b0)) ? ~UINT64_C(0) : UINT64_C(0); -+ d[1] = -+ !((*(double *) &a1) < (*(double *) &b1)) ? ~UINT64_C(0) : UINT64_C(0); -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b for not-less-than, store the result in the lower element of dst, and copy -+// the upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpnlt_sd -+FORCE_INLINE __m128d _mm_cmpnlt_sd(__m128d a, __m128d b) -+{ -+ return _mm_move_sd(a, _mm_cmpnlt_pd(a, b)); -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b -+// to see if neither is NaN, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_pd -+FORCE_INLINE __m128d _mm_cmpord_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ // Excluding NaNs, any two floating point numbers can be compared. -+ uint64x2_t not_nan_a = -+ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); -+ uint64x2_t not_nan_b = -+ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); -+ return vreinterpretq_m128d_u64(vandq_u64(not_nan_a, not_nan_b)); -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = ((*(double *) &a0) == (*(double *) &a0) && -+ (*(double *) &b0) == (*(double *) &b0)) -+ ? ~UINT64_C(0) -+ : UINT64_C(0); -+ d[1] = ((*(double *) &a1) == (*(double *) &a1) && -+ (*(double *) &b1) == (*(double *) &b1)) -+ ? ~UINT64_C(0) -+ : UINT64_C(0); -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b to see if neither is NaN, store the result in the lower element of dst, and -+// copy the upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpord_sd -+FORCE_INLINE __m128d _mm_cmpord_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return _mm_move_sd(a, _mm_cmpord_pd(a, b)); -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t d[2]; -+ d[0] = ((*(double *) &a0) == (*(double *) &a0) && -+ (*(double *) &b0) == (*(double *) &b0)) -+ ? ~UINT64_C(0) -+ : UINT64_C(0); -+ d[1] = a1; -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b -+// to see if either is NaN, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_pd -+FORCE_INLINE __m128d _mm_cmpunord_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ // Two NaNs are not equal in comparison operation. -+ uint64x2_t not_nan_a = -+ vceqq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(a)); -+ uint64x2_t not_nan_b = -+ vceqq_f64(vreinterpretq_f64_m128d(b), vreinterpretq_f64_m128d(b)); -+ return vreinterpretq_m128d_s32( -+ vmvnq_s32(vreinterpretq_s32_u64(vandq_u64(not_nan_a, not_nan_b)))); -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = ((*(double *) &a0) == (*(double *) &a0) && -+ (*(double *) &b0) == (*(double *) &b0)) -+ ? UINT64_C(0) -+ : ~UINT64_C(0); -+ d[1] = ((*(double *) &a1) == (*(double *) &a1) && -+ (*(double *) &b1) == (*(double *) &b1)) -+ ? UINT64_C(0) -+ : ~UINT64_C(0); -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b to see if either is NaN, store the result in the lower element of dst, and -+// copy the upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpunord_sd -+FORCE_INLINE __m128d _mm_cmpunord_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return _mm_move_sd(a, _mm_cmpunord_pd(a, b)); -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t d[2]; -+ d[0] = ((*(double *) &a0) == (*(double *) &a0) && -+ (*(double *) &b0) == (*(double *) &b0)) -+ ? UINT64_C(0) -+ : ~UINT64_C(0); -+ d[1] = a1; -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point element in a and b -+// for greater-than-or-equal, and return the boolean result (0 or 1). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comige_sd -+FORCE_INLINE int _mm_comige_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vgetq_lane_u64(vcgeq_f64(a, b), 0) & 0x1; -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ -+ return (*(double *) &a0 >= *(double *) &b0); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point element in a and b -+// for greater-than, and return the boolean result (0 or 1). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comigt_sd -+FORCE_INLINE int _mm_comigt_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vgetq_lane_u64(vcgtq_f64(a, b), 0) & 0x1; -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ -+ return (*(double *) &a0 > *(double *) &b0); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point element in a and b -+// for less-than-or-equal, and return the boolean result (0 or 1). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comile_sd -+FORCE_INLINE int _mm_comile_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vgetq_lane_u64(vcleq_f64(a, b), 0) & 0x1; -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ -+ return (*(double *) &a0 <= *(double *) &b0); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point element in a and b -+// for less-than, and return the boolean result (0 or 1). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comilt_sd -+FORCE_INLINE int _mm_comilt_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vgetq_lane_u64(vcltq_f64(a, b), 0) & 0x1; -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ -+ return (*(double *) &a0 < *(double *) &b0); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point element in a and b -+// for equality, and return the boolean result (0 or 1). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comieq_sd -+FORCE_INLINE int _mm_comieq_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vgetq_lane_u64(vceqq_f64(a, b), 0) & 0x1; -+#else -+ uint32x4_t a_not_nan = -+ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(a)); -+ uint32x4_t b_not_nan = -+ vceqq_u32(vreinterpretq_u32_m128d(b), vreinterpretq_u32_m128d(b)); -+ uint32x4_t a_and_b_not_nan = vandq_u32(a_not_nan, b_not_nan); -+ uint32x4_t a_eq_b = -+ vceqq_u32(vreinterpretq_u32_m128d(a), vreinterpretq_u32_m128d(b)); -+ uint64x2_t and_results = vandq_u64(vreinterpretq_u64_u32(a_and_b_not_nan), -+ vreinterpretq_u64_u32(a_eq_b)); -+ return vgetq_lane_u64(and_results, 0) & 0x1; -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point element in a and b -+// for not-equal, and return the boolean result (0 or 1). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_comineq_sd -+FORCE_INLINE int _mm_comineq_sd(__m128d a, __m128d b) -+{ -+ return !_mm_comieq_sd(a, b); -+} -+ -+// Convert packed signed 32-bit integers in a to packed double-precision -+// (64-bit) floating-point elements, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_pd -+FORCE_INLINE __m128d _mm_cvtepi32_pd(__m128i a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vcvtq_f64_s64(vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a))))); -+#else -+ double a0 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); -+ double a1 = (double) vgetq_lane_s32(vreinterpretq_s32_m128i(a), 1); -+ return _mm_set_pd(a1, a0); -+#endif -+} -+ -+// Convert packed signed 32-bit integers in a to packed single-precision -+// (32-bit) floating-point elements, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_ps -+FORCE_INLINE __m128 _mm_cvtepi32_ps(__m128i a) -+{ -+ return vreinterpretq_m128_f32(vcvtq_f32_s32(vreinterpretq_s32_m128i(a))); -+} -+ -+// Convert packed double-precision (64-bit) floating-point elements in a to -+// packed 32-bit integers, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_epi32 -+FORCE_INLINE_OPTNONE __m128i _mm_cvtpd_epi32(__m128d a) -+{ -+// vrnd32xq_f64 not supported on clang -+#if defined(__ARM_FEATURE_FRINT) && !defined(__clang__) -+ float64x2_t rounded = vrnd32xq_f64(vreinterpretq_f64_m128d(a)); -+ int64x2_t integers = vcvtq_s64_f64(rounded); -+ return vreinterpretq_m128i_s32( -+ vcombine_s32(vmovn_s64(integers), vdup_n_s32(0))); -+#else -+ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); -+ double d0 = ((double *) &rnd)[0]; -+ double d1 = ((double *) &rnd)[1]; -+ return _mm_set_epi32(0, 0, (int32_t) d1, (int32_t) d0); -+#endif -+} -+ -+// Convert packed double-precision (64-bit) floating-point elements in a to -+// packed 32-bit integers, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_pi32 -+FORCE_INLINE_OPTNONE __m64 _mm_cvtpd_pi32(__m128d a) -+{ -+ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); -+ double d0 = ((double *) &rnd)[0]; -+ double d1 = ((double *) &rnd)[1]; -+ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) d0, (int32_t) d1}; -+ return vreinterpret_m64_s32(vld1_s32(data)); -+} -+ -+// Convert packed double-precision (64-bit) floating-point elements in a to -+// packed single-precision (32-bit) floating-point elements, and store the -+// results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpd_ps -+FORCE_INLINE __m128 _mm_cvtpd_ps(__m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ float32x2_t tmp = vcvt_f32_f64(vreinterpretq_f64_m128d(a)); -+ return vreinterpretq_m128_f32(vcombine_f32(tmp, vdup_n_f32(0))); -+#else -+ float a0 = (float) ((double *) &a)[0]; -+ float a1 = (float) ((double *) &a)[1]; -+ return _mm_set_ps(0, 0, a1, a0); -+#endif -+} -+ -+// Convert packed signed 32-bit integers in a to packed double-precision -+// (64-bit) floating-point elements, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtpi32_pd -+FORCE_INLINE __m128d _mm_cvtpi32_pd(__m64 a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vcvtq_f64_s64(vmovl_s32(vreinterpret_s32_m64(a)))); -+#else -+ double a0 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 0); -+ double a1 = (double) vget_lane_s32(vreinterpret_s32_m64(a), 1); -+ return _mm_set_pd(a1, a0); -+#endif -+} -+ -+// Convert packed single-precision (32-bit) floating-point elements in a to -+// packed 32-bit integers, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_epi32 -+// *NOTE*. The default rounding mode on SSE is 'round to even', which ARMv7-A -+// does not support! It is supported on ARMv8-A however. -+FORCE_INLINE __m128i _mm_cvtps_epi32(__m128 a) -+{ -+#if defined(__ARM_FEATURE_FRINT) -+ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vrnd32xq_f32(a))); -+#elif (defined(__aarch64__) || defined(_M_ARM64)) || \ -+ defined(__ARM_FEATURE_DIRECTED_ROUNDING) -+ switch (_MM_GET_ROUNDING_MODE()) { -+ case _MM_ROUND_NEAREST: -+ return vreinterpretq_m128i_s32(vcvtnq_s32_f32(a)); -+ case _MM_ROUND_DOWN: -+ return vreinterpretq_m128i_s32(vcvtmq_s32_f32(a)); -+ case _MM_ROUND_UP: -+ return vreinterpretq_m128i_s32(vcvtpq_s32_f32(a)); -+ default: // _MM_ROUND_TOWARD_ZERO -+ return vreinterpretq_m128i_s32(vcvtq_s32_f32(a)); -+ } -+#else -+ float *f = (float *) &a; -+ switch (_MM_GET_ROUNDING_MODE()) { -+ case _MM_ROUND_NEAREST: { -+ uint32x4_t signmask = vdupq_n_u32(0x80000000); -+ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), -+ vdupq_n_f32(0.5f)); /* +/- 0.5 */ -+ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( -+ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ -+ int32x4_t r_trunc = vcvtq_s32_f32( -+ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ -+ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( -+ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ -+ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), -+ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ -+ float32x4_t delta = vsubq_f32( -+ vreinterpretq_f32_m128(a), -+ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ -+ uint32x4_t is_delta_half = -+ vceqq_f32(delta, half); /* delta == +/- 0.5 */ -+ return vreinterpretq_m128i_s32( -+ vbslq_s32(is_delta_half, r_even, r_normal)); -+ } -+ case _MM_ROUND_DOWN: -+ return _mm_set_epi32(floorf(f[3]), floorf(f[2]), floorf(f[1]), -+ floorf(f[0])); -+ case _MM_ROUND_UP: -+ return _mm_set_epi32(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), -+ ceilf(f[0])); -+ default: // _MM_ROUND_TOWARD_ZERO -+ return _mm_set_epi32((int32_t) f[3], (int32_t) f[2], (int32_t) f[1], -+ (int32_t) f[0]); -+ } -+#endif -+} -+ -+// Convert packed single-precision (32-bit) floating-point elements in a to -+// packed double-precision (64-bit) floating-point elements, and store the -+// results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtps_pd -+FORCE_INLINE __m128d _mm_cvtps_pd(__m128 a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vcvt_f64_f32(vget_low_f32(vreinterpretq_f32_m128(a)))); -+#else -+ double a0 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); -+ double a1 = (double) vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); -+ return _mm_set_pd(a1, a0); -+#endif -+} -+ -+// Copy the lower double-precision (64-bit) floating-point element of a to dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_f64 -+FORCE_INLINE double _mm_cvtsd_f64(__m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return (double) vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0); -+#else -+ return ((double *) &a)[0]; -+#endif -+} -+ -+// Convert the lower double-precision (64-bit) floating-point element in a to a -+// 32-bit integer, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si32 -+FORCE_INLINE int32_t _mm_cvtsd_si32(__m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return (int32_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); -+#else -+ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); -+ double ret = ((double *) &rnd)[0]; -+ return (int32_t) ret; -+#endif -+} -+ -+// Convert the lower double-precision (64-bit) floating-point element in a to a -+// 64-bit integer, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64 -+FORCE_INLINE int64_t _mm_cvtsd_si64(__m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return (int64_t) vgetq_lane_f64(vrndiq_f64(vreinterpretq_f64_m128d(a)), 0); -+#else -+ __m128d rnd = _mm_round_pd(a, _MM_FROUND_CUR_DIRECTION); -+ double ret = ((double *) &rnd)[0]; -+ return (int64_t) ret; -+#endif -+} -+ -+// Convert the lower double-precision (64-bit) floating-point element in a to a -+// 64-bit integer, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_si64x -+#define _mm_cvtsd_si64x _mm_cvtsd_si64 -+ -+// Convert the lower double-precision (64-bit) floating-point element in b to a -+// single-precision (32-bit) floating-point element, store the result in the -+// lower element of dst, and copy the upper 3 packed elements from a to the -+// upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsd_ss -+FORCE_INLINE __m128 _mm_cvtsd_ss(__m128 a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128_f32(vsetq_lane_f32( -+ vget_lane_f32(vcvt_f32_f64(vreinterpretq_f64_m128d(b)), 0), -+ vreinterpretq_f32_m128(a), 0)); -+#else -+ return vreinterpretq_m128_f32(vsetq_lane_f32((float) ((double *) &b)[0], -+ vreinterpretq_f32_m128(a), 0)); -+#endif -+} -+ -+// Copy the lower 32-bit integer in a to dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si32 -+FORCE_INLINE int _mm_cvtsi128_si32(__m128i a) -+{ -+ return vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); -+} -+ -+// Copy the lower 64-bit integer in a to dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64 -+FORCE_INLINE int64_t _mm_cvtsi128_si64(__m128i a) -+{ -+ return vgetq_lane_s64(vreinterpretq_s64_m128i(a), 0); -+} -+ -+// Copy the lower 64-bit integer in a to dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x -+#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) -+ -+// Convert the signed 32-bit integer b to a double-precision (64-bit) -+// floating-point element, store the result in the lower element of dst, and -+// copy the upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_sd -+FORCE_INLINE __m128d _mm_cvtsi32_sd(__m128d a, int32_t b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); -+#else -+ double bf = (double) b; -+ return vreinterpretq_m128d_s64( -+ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); -+#endif -+} -+ -+// Copy the lower 64-bit integer in a to dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64x -+#define _mm_cvtsi128_si64x(a) _mm_cvtsi128_si64(a) -+ -+// Copy 32-bit integer a to the lower elements of dst, and zero the upper -+// elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi32_si128 -+FORCE_INLINE __m128i _mm_cvtsi32_si128(int a) -+{ -+ return vreinterpretq_m128i_s32(vsetq_lane_s32(a, vdupq_n_s32(0), 0)); -+} -+ -+// Convert the signed 64-bit integer b to a double-precision (64-bit) -+// floating-point element, store the result in the lower element of dst, and -+// copy the upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_sd -+FORCE_INLINE __m128d _mm_cvtsi64_sd(__m128d a, int64_t b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vsetq_lane_f64((double) b, vreinterpretq_f64_m128d(a), 0)); -+#else -+ double bf = (double) b; -+ return vreinterpretq_m128d_s64( -+ vsetq_lane_s64(*(int64_t *) &bf, vreinterpretq_s64_m128d(a), 0)); -+#endif -+} -+ -+// Copy 64-bit integer a to the lower element of dst, and zero the upper -+// element. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64_si128 -+FORCE_INLINE __m128i _mm_cvtsi64_si128(int64_t a) -+{ -+ return vreinterpretq_m128i_s64(vsetq_lane_s64(a, vdupq_n_s64(0), 0)); -+} -+ -+// Copy 64-bit integer a to the lower element of dst, and zero the upper -+// element. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_si128 -+#define _mm_cvtsi64x_si128(a) _mm_cvtsi64_si128(a) -+ -+// Convert the signed 64-bit integer b to a double-precision (64-bit) -+// floating-point element, store the result in the lower element of dst, and -+// copy the upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi64x_sd -+#define _mm_cvtsi64x_sd(a, b) _mm_cvtsi64_sd(a, b) -+ -+// Convert the lower single-precision (32-bit) floating-point element in b to a -+// double-precision (64-bit) floating-point element, store the result in the -+// lower element of dst, and copy the upper element from a to the upper element -+// of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtss_sd -+FORCE_INLINE __m128d _mm_cvtss_sd(__m128d a, __m128 b) -+{ -+ double d = (double) vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vsetq_lane_f64(d, vreinterpretq_f64_m128d(a), 0)); -+#else -+ return vreinterpretq_m128d_s64( -+ vsetq_lane_s64(*(int64_t *) &d, vreinterpretq_s64_m128d(a), 0)); -+#endif -+} -+ -+// Convert packed double-precision (64-bit) floating-point elements in a to -+// packed 32-bit integers with truncation, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_epi32 -+FORCE_INLINE __m128i _mm_cvttpd_epi32(__m128d a) -+{ -+ double a0 = ((double *) &a)[0]; -+ double a1 = ((double *) &a)[1]; -+ return _mm_set_epi32(0, 0, (int32_t) a1, (int32_t) a0); -+} -+ -+// Convert packed double-precision (64-bit) floating-point elements in a to -+// packed 32-bit integers with truncation, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttpd_pi32 -+FORCE_INLINE __m64 _mm_cvttpd_pi32(__m128d a) -+{ -+ double a0 = ((double *) &a)[0]; -+ double a1 = ((double *) &a)[1]; -+ int32_t ALIGN_STRUCT(16) data[2] = {(int32_t) a0, (int32_t) a1}; -+ return vreinterpret_m64_s32(vld1_s32(data)); -+} -+ -+// Convert packed single-precision (32-bit) floating-point elements in a to -+// packed 32-bit integers with truncation, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttps_epi32 -+FORCE_INLINE __m128i _mm_cvttps_epi32(__m128 a) -+{ -+ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a))); -+} -+ -+// Convert the lower double-precision (64-bit) floating-point element in a to a -+// 32-bit integer with truncation, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si32 -+FORCE_INLINE int32_t _mm_cvttsd_si32(__m128d a) -+{ -+ double ret = *((double *) &a); -+ return (int32_t) ret; -+} -+ -+// Convert the lower double-precision (64-bit) floating-point element in a to a -+// 64-bit integer with truncation, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64 -+FORCE_INLINE int64_t _mm_cvttsd_si64(__m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vgetq_lane_s64(vcvtq_s64_f64(vreinterpretq_f64_m128d(a)), 0); -+#else -+ double ret = *((double *) &a); -+ return (int64_t) ret; -+#endif -+} -+ -+// Convert the lower double-precision (64-bit) floating-point element in a to a -+// 64-bit integer with truncation, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvttsd_si64x -+#define _mm_cvttsd_si64x(a) _mm_cvttsd_si64(a) -+ -+// Divide packed double-precision (64-bit) floating-point elements in a by -+// packed elements in b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_pd -+FORCE_INLINE __m128d _mm_div_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#else -+ double *da = (double *) &a; -+ double *db = (double *) &b; -+ double c[2]; -+ c[0] = da[0] / db[0]; -+ c[1] = da[1] / db[1]; -+ return vld1q_f32((float32_t *) c); -+#endif -+} -+ -+// Divide the lower double-precision (64-bit) floating-point element in a by the -+// lower double-precision (64-bit) floating-point element in b, store the result -+// in the lower element of dst, and copy the upper element from a to the upper -+// element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_div_sd -+FORCE_INLINE __m128d _mm_div_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ float64x2_t tmp = -+ vdivq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b)); -+ return vreinterpretq_m128d_f64( -+ vsetq_lane_f64(vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1), tmp, 1)); -+#else -+ return _mm_move_sd(a, _mm_div_pd(a, b)); -+#endif -+} -+ -+// Extract a 16-bit integer from a, selected with imm8, and store the result in -+// the lower element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi16 -+// FORCE_INLINE int _mm_extract_epi16(__m128i a, __constrange(0,8) int imm) -+#define _mm_extract_epi16(a, imm) \ -+ vgetq_lane_u16(vreinterpretq_u16_m128i(a), (imm)) -+ -+// Copy a to dst, and insert the 16-bit integer i into dst at the location -+// specified by imm8. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi16 -+// FORCE_INLINE __m128i _mm_insert_epi16(__m128i a, int b, -+// __constrange(0,8) int imm) -+#define _mm_insert_epi16(a, b, imm) \ -+ vreinterpretq_m128i_s16( \ -+ vsetq_lane_s16((b), vreinterpretq_s16_m128i(a), (imm))) -+ -+// Load 128-bits (composed of 2 packed double-precision (64-bit) floating-point -+// elements) from memory into dst. mem_addr must be aligned on a 16-byte -+// boundary or a general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd -+FORCE_INLINE __m128d _mm_load_pd(const double *p) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64(vld1q_f64(p)); -+#else -+ const float *fp = (const float *) p; -+ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], fp[2], fp[3]}; -+ return vreinterpretq_m128d_f32(vld1q_f32(data)); -+#endif -+} -+ -+// Load a double-precision (64-bit) floating-point element from memory into both -+// elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_pd1 -+#define _mm_load_pd1 _mm_load1_pd -+ -+// Load a double-precision (64-bit) floating-point element from memory into the -+// lower of dst, and zero the upper element. mem_addr does not need to be -+// aligned on any particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_sd -+FORCE_INLINE __m128d _mm_load_sd(const double *p) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64(vsetq_lane_f64(*p, vdupq_n_f64(0), 0)); -+#else -+ const float *fp = (const float *) p; -+ float ALIGN_STRUCT(16) data[4] = {fp[0], fp[1], 0, 0}; -+ return vreinterpretq_m128d_f32(vld1q_f32(data)); -+#endif -+} -+ -+// Load 128-bits of integer data from memory into dst. mem_addr must be aligned -+// on a 16-byte boundary or a general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load_si128 -+FORCE_INLINE __m128i _mm_load_si128(const __m128i *p) -+{ -+ return vreinterpretq_m128i_s32(vld1q_s32((const int32_t *) p)); -+} -+ -+// Load a double-precision (64-bit) floating-point element from memory into both -+// elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_load1_pd -+FORCE_INLINE __m128d _mm_load1_pd(const double *p) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64(vld1q_dup_f64(p)); -+#else -+ return vreinterpretq_m128d_s64(vdupq_n_s64(*(const int64_t *) p)); -+#endif -+} -+ -+// Load a double-precision (64-bit) floating-point element from memory into the -+// upper element of dst, and copy the lower element from a to dst. mem_addr does -+// not need to be aligned on any particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadh_pd -+FORCE_INLINE __m128d _mm_loadh_pd(__m128d a, const double *p) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vcombine_f64(vget_low_f64(vreinterpretq_f64_m128d(a)), vld1_f64(p))); -+#else -+ return vreinterpretq_m128d_f32(vcombine_f32( -+ vget_low_f32(vreinterpretq_f32_m128d(a)), vld1_f32((const float *) p))); -+#endif -+} -+ -+// Load 64-bit integer from memory into the first element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_epi64 -+FORCE_INLINE __m128i _mm_loadl_epi64(__m128i const *p) -+{ -+ /* Load the lower 64 bits of the value pointed to by p into the -+ * lower 64 bits of the result, zeroing the upper 64 bits of the result. -+ */ -+ return vreinterpretq_m128i_s32( -+ vcombine_s32(vld1_s32((int32_t const *) p), vcreate_s32(0))); -+} -+ -+// Load a double-precision (64-bit) floating-point element from memory into the -+// lower element of dst, and copy the upper element from a to dst. mem_addr does -+// not need to be aligned on any particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadl_pd -+FORCE_INLINE __m128d _mm_loadl_pd(__m128d a, const double *p) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vcombine_f64(vld1_f64(p), vget_high_f64(vreinterpretq_f64_m128d(a)))); -+#else -+ return vreinterpretq_m128d_f32( -+ vcombine_f32(vld1_f32((const float *) p), -+ vget_high_f32(vreinterpretq_f32_m128d(a)))); -+#endif -+} -+ -+// Load 2 double-precision (64-bit) floating-point elements from memory into dst -+// in reverse order. mem_addr must be aligned on a 16-byte boundary or a -+// general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadr_pd -+FORCE_INLINE __m128d _mm_loadr_pd(const double *p) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ float64x2_t v = vld1q_f64(p); -+ return vreinterpretq_m128d_f64(vextq_f64(v, v, 1)); -+#else -+ int64x2_t v = vld1q_s64((const int64_t *) p); -+ return vreinterpretq_m128d_s64(vextq_s64(v, v, 1)); -+#endif -+} -+ -+// Loads two double-precision from unaligned memory, floating-point values. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_pd -+FORCE_INLINE __m128d _mm_loadu_pd(const double *p) -+{ -+ return _mm_load_pd(p); -+} -+ -+// Load 128-bits of integer data from memory into dst. mem_addr does not need to -+// be aligned on any particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si128 -+FORCE_INLINE __m128i _mm_loadu_si128(const __m128i *p) -+{ -+ return vreinterpretq_m128i_s32(vld1q_s32((const unaligned_int32_t *) p)); -+} -+ -+// Load unaligned 32-bit integer from memory into the first element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loadu_si32 -+FORCE_INLINE __m128i _mm_loadu_si32(const void *p) -+{ -+ return vreinterpretq_m128i_s32( -+ vsetq_lane_s32(*(const unaligned_int32_t *) p, vdupq_n_s32(0), 0)); -+} -+ -+// Multiply packed signed 16-bit integers in a and b, producing intermediate -+// signed 32-bit integers. Horizontally add adjacent pairs of intermediate -+// 32-bit integers, and pack the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_madd_epi16 -+FORCE_INLINE __m128i _mm_madd_epi16(__m128i a, __m128i b) -+{ -+ int32x4_t low = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), -+ vget_low_s16(vreinterpretq_s16_m128i(b))); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ int32x4_t high = -+ vmull_high_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)); -+ -+ return vreinterpretq_m128i_s32(vpaddq_s32(low, high)); -+#else -+ int32x4_t high = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), -+ vget_high_s16(vreinterpretq_s16_m128i(b))); -+ -+ int32x2_t low_sum = vpadd_s32(vget_low_s32(low), vget_high_s32(low)); -+ int32x2_t high_sum = vpadd_s32(vget_low_s32(high), vget_high_s32(high)); -+ -+ return vreinterpretq_m128i_s32(vcombine_s32(low_sum, high_sum)); -+#endif -+} -+ -+// Conditionally store 8-bit integer elements from a into memory using mask -+// (elements are not stored when the highest bit is not set in the corresponding -+// element) and a non-temporal memory hint. mem_addr does not need to be aligned -+// on any particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maskmoveu_si128 -+FORCE_INLINE void _mm_maskmoveu_si128(__m128i a, __m128i mask, char *mem_addr) -+{ -+ int8x16_t shr_mask = vshrq_n_s8(vreinterpretq_s8_m128i(mask), 7); -+ __m128 b = _mm_load_ps((const float *) mem_addr); -+ int8x16_t masked = -+ vbslq_s8(vreinterpretq_u8_s8(shr_mask), vreinterpretq_s8_m128i(a), -+ vreinterpretq_s8_m128(b)); -+ vst1q_s8((int8_t *) mem_addr, masked); -+} -+ -+// Compare packed signed 16-bit integers in a and b, and store packed maximum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi16 -+FORCE_INLINE __m128i _mm_max_epi16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s16( -+ vmaxq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); -+} -+ -+// Compare packed unsigned 8-bit integers in a and b, and store packed maximum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu8 -+FORCE_INLINE __m128i _mm_max_epu8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u8( -+ vmaxq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b, -+// and store packed maximum values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_pd -+FORCE_INLINE __m128d _mm_max_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+#if SSE2NEON_PRECISE_MINMAX -+ float64x2_t _a = vreinterpretq_f64_m128d(a); -+ float64x2_t _b = vreinterpretq_f64_m128d(b); -+ return vreinterpretq_m128d_f64(vbslq_f64(vcgtq_f64(_a, _b), _a, _b)); -+#else -+ return vreinterpretq_m128d_f64( -+ vmaxq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#endif -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = (*(double *) &a0) > (*(double *) &b0) ? a0 : b0; -+ d[1] = (*(double *) &a1) > (*(double *) &b1) ? a1 : b1; -+ -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b, store the maximum value in the lower element of dst, and copy the upper -+// element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_sd -+FORCE_INLINE __m128d _mm_max_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return _mm_move_sd(a, _mm_max_pd(a, b)); -+#else -+ double *da = (double *) &a; -+ double *db = (double *) &b; -+ double c[2] = {da[0] > db[0] ? da[0] : db[0], da[1]}; -+ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); -+#endif -+} -+ -+// Compare packed signed 16-bit integers in a and b, and store packed minimum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi16 -+FORCE_INLINE __m128i _mm_min_epi16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s16( -+ vminq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); -+} -+ -+// Compare packed unsigned 8-bit integers in a and b, and store packed minimum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu8 -+FORCE_INLINE __m128i _mm_min_epu8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u8( -+ vminq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); -+} -+ -+// Compare packed double-precision (64-bit) floating-point elements in a and b, -+// and store packed minimum values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_pd -+FORCE_INLINE __m128d _mm_min_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+#if SSE2NEON_PRECISE_MINMAX -+ float64x2_t _a = vreinterpretq_f64_m128d(a); -+ float64x2_t _b = vreinterpretq_f64_m128d(b); -+ return vreinterpretq_m128d_f64(vbslq_f64(vcltq_f64(_a, _b), _a, _b)); -+#else -+ return vreinterpretq_m128d_f64( -+ vminq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#endif -+#else -+ uint64_t a0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t a1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(a)); -+ uint64_t b0 = (uint64_t) vget_low_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t b1 = (uint64_t) vget_high_u64(vreinterpretq_u64_m128d(b)); -+ uint64_t d[2]; -+ d[0] = (*(double *) &a0) < (*(double *) &b0) ? a0 : b0; -+ d[1] = (*(double *) &a1) < (*(double *) &b1) ? a1 : b1; -+ return vreinterpretq_m128d_u64(vld1q_u64(d)); -+#endif -+} -+ -+// Compare the lower double-precision (64-bit) floating-point elements in a and -+// b, store the minimum value in the lower element of dst, and copy the upper -+// element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_sd -+FORCE_INLINE __m128d _mm_min_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return _mm_move_sd(a, _mm_min_pd(a, b)); -+#else -+ double *da = (double *) &a; -+ double *db = (double *) &b; -+ double c[2] = {da[0] < db[0] ? da[0] : db[0], da[1]}; -+ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) c)); -+#endif -+} -+ -+// Copy the lower 64-bit integer in a to the lower element of dst, and zero the -+// upper element. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_epi64 -+FORCE_INLINE __m128i _mm_move_epi64(__m128i a) -+{ -+ return vreinterpretq_m128i_s64( -+ vsetq_lane_s64(0, vreinterpretq_s64_m128i(a), 1)); -+} -+ -+// Move the lower double-precision (64-bit) floating-point element from b to the -+// lower element of dst, and copy the upper element from a to the upper element -+// of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_move_sd -+FORCE_INLINE __m128d _mm_move_sd(__m128d a, __m128d b) -+{ -+ return vreinterpretq_m128d_f32( -+ vcombine_f32(vget_low_f32(vreinterpretq_f32_m128d(b)), -+ vget_high_f32(vreinterpretq_f32_m128d(a)))); -+} -+ -+// Create mask from the most significant bit of each 8-bit element in a, and -+// store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_epi8 -+FORCE_INLINE int _mm_movemask_epi8(__m128i a) -+{ -+ // Use increasingly wide shifts+adds to collect the sign bits -+ // together. -+ // Since the widening shifts would be rather confusing to follow in little -+ // endian, everything will be illustrated in big endian order instead. This -+ // has a different result - the bits would actually be reversed on a big -+ // endian machine. -+ -+ // Starting input (only half the elements are shown): -+ // 89 ff 1d c0 00 10 99 33 -+ uint8x16_t input = vreinterpretq_u8_m128i(a); -+ -+ // Shift out everything but the sign bits with an unsigned shift right. -+ // -+ // Bytes of the vector:: -+ // 89 ff 1d c0 00 10 99 33 -+ // \ \ \ \ \ \ \ \ high_bits = (uint16x4_t)(input >> 7) -+ // | | | | | | | | -+ // 01 01 00 01 00 00 01 00 -+ // -+ // Bits of first important lane(s): -+ // 10001001 (89) -+ // \______ -+ // | -+ // 00000001 (01) -+ uint16x8_t high_bits = vreinterpretq_u16_u8(vshrq_n_u8(input, 7)); -+ -+ // Merge the even lanes together with a 16-bit unsigned shift right + add. -+ // 'xx' represents garbage data which will be ignored in the final result. -+ // In the important bytes, the add functions like a binary OR. -+ // -+ // 01 01 00 01 00 00 01 00 -+ // \_ | \_ | \_ | \_ | paired16 = (uint32x4_t)(input + (input >> 7)) -+ // \| \| \| \| -+ // xx 03 xx 01 xx 00 xx 02 -+ // -+ // 00000001 00000001 (01 01) -+ // \_______ | -+ // \| -+ // xxxxxxxx xxxxxx11 (xx 03) -+ uint32x4_t paired16 = -+ vreinterpretq_u32_u16(vsraq_n_u16(high_bits, high_bits, 7)); -+ -+ // Repeat with a wider 32-bit shift + add. -+ // xx 03 xx 01 xx 00 xx 02 -+ // \____ | \____ | paired32 = (uint64x1_t)(paired16 + (paired16 >> -+ // 14)) -+ // \| \| -+ // xx xx xx 0d xx xx xx 02 -+ // -+ // 00000011 00000001 (03 01) -+ // \\_____ || -+ // '----.\|| -+ // xxxxxxxx xxxx1101 (xx 0d) -+ uint64x2_t paired32 = -+ vreinterpretq_u64_u32(vsraq_n_u32(paired16, paired16, 14)); -+ -+ // Last, an even wider 64-bit shift + add to get our result in the low 8 bit -+ // lanes. xx xx xx 0d xx xx xx 02 -+ // \_________ | paired64 = (uint8x8_t)(paired32 + (paired32 >> -+ // 28)) -+ // \| -+ // xx xx xx xx xx xx xx d2 -+ // -+ // 00001101 00000010 (0d 02) -+ // \ \___ | | -+ // '---. \| | -+ // xxxxxxxx 11010010 (xx d2) -+ uint8x16_t paired64 = -+ vreinterpretq_u8_u64(vsraq_n_u64(paired32, paired32, 28)); -+ -+ // Extract the low 8 bits from each 64-bit lane with 2 8-bit extracts. -+ // xx xx xx xx xx xx xx d2 -+ // || return paired64[0] -+ // d2 -+ // Note: Little endian would return the correct value 4b (01001011) instead. -+ return vgetq_lane_u8(paired64, 0) | ((int) vgetq_lane_u8(paired64, 8) << 8); -+} -+ -+// Set each bit of mask dst based on the most significant bit of the -+// corresponding packed double-precision (64-bit) floating-point element in a. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movemask_pd -+FORCE_INLINE int _mm_movemask_pd(__m128d a) -+{ -+ uint64x2_t input = vreinterpretq_u64_m128d(a); -+ uint64x2_t high_bits = vshrq_n_u64(input, 63); -+ return (int) (vgetq_lane_u64(high_bits, 0) | -+ (vgetq_lane_u64(high_bits, 1) << 1)); -+} -+ -+// Copy the lower 64-bit integer in a to dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movepi64_pi64 -+FORCE_INLINE __m64 _mm_movepi64_pi64(__m128i a) -+{ -+ return vreinterpret_m64_s64(vget_low_s64(vreinterpretq_s64_m128i(a))); -+} -+ -+// Copy the 64-bit integer a to the lower element of dst, and zero the upper -+// element. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movpi64_epi64 -+FORCE_INLINE __m128i _mm_movpi64_epi64(__m64 a) -+{ -+ return vreinterpretq_m128i_s64( -+ vcombine_s64(vreinterpret_s64_m64(a), vdup_n_s64(0))); -+} -+ -+// Multiply the low unsigned 32-bit integers from each packed 64-bit element in -+// a and b, and store the unsigned 64-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epu32 -+FORCE_INLINE __m128i _mm_mul_epu32(__m128i a, __m128i b) -+{ -+ // vmull_u32 upcasts instead of masking, so we downcast. -+ uint32x2_t a_lo = vmovn_u64(vreinterpretq_u64_m128i(a)); -+ uint32x2_t b_lo = vmovn_u64(vreinterpretq_u64_m128i(b)); -+ return vreinterpretq_m128i_u64(vmull_u32(a_lo, b_lo)); -+} -+ -+// Multiply packed double-precision (64-bit) floating-point elements in a and b, -+// and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_pd -+FORCE_INLINE __m128d _mm_mul_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vmulq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#else -+ double *da = (double *) &a; -+ double *db = (double *) &b; -+ double c[2]; -+ c[0] = da[0] * db[0]; -+ c[1] = da[1] * db[1]; -+ return vld1q_f32((float32_t *) c); -+#endif -+} -+ -+// Multiply the lower double-precision (64-bit) floating-point element in a and -+// b, store the result in the lower element of dst, and copy the upper element -+// from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_mul_sd -+FORCE_INLINE __m128d _mm_mul_sd(__m128d a, __m128d b) -+{ -+ return _mm_move_sd(a, _mm_mul_pd(a, b)); -+} -+ -+// Multiply the low unsigned 32-bit integers from a and b, and store the -+// unsigned 64-bit result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_su32 -+FORCE_INLINE __m64 _mm_mul_su32(__m64 a, __m64 b) -+{ -+ return vreinterpret_m64_u64(vget_low_u64( -+ vmull_u32(vreinterpret_u32_m64(a), vreinterpret_u32_m64(b)))); -+} -+ -+// Multiply the packed signed 16-bit integers in a and b, producing intermediate -+// 32-bit integers, and store the high 16 bits of the intermediate integers in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epi16 -+FORCE_INLINE __m128i _mm_mulhi_epi16(__m128i a, __m128i b) -+{ -+ /* FIXME: issue with large values because of result saturation */ -+ // int16x8_t ret = vqdmulhq_s16(vreinterpretq_s16_m128i(a), -+ // vreinterpretq_s16_m128i(b)); /* =2*a*b */ return -+ // vreinterpretq_m128i_s16(vshrq_n_s16(ret, 1)); -+ int16x4_t a3210 = vget_low_s16(vreinterpretq_s16_m128i(a)); -+ int16x4_t b3210 = vget_low_s16(vreinterpretq_s16_m128i(b)); -+ int32x4_t ab3210 = vmull_s16(a3210, b3210); /* 3333222211110000 */ -+ int16x4_t a7654 = vget_high_s16(vreinterpretq_s16_m128i(a)); -+ int16x4_t b7654 = vget_high_s16(vreinterpretq_s16_m128i(b)); -+ int32x4_t ab7654 = vmull_s16(a7654, b7654); /* 7777666655554444 */ -+ uint16x8x2_t r = -+ vuzpq_u16(vreinterpretq_u16_s32(ab3210), vreinterpretq_u16_s32(ab7654)); -+ return vreinterpretq_m128i_u16(r.val[1]); -+} -+ -+// Multiply the packed unsigned 16-bit integers in a and b, producing -+// intermediate 32-bit integers, and store the high 16 bits of the intermediate -+// integers in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhi_epu16 -+FORCE_INLINE __m128i _mm_mulhi_epu16(__m128i a, __m128i b) -+{ -+ uint16x4_t a3210 = vget_low_u16(vreinterpretq_u16_m128i(a)); -+ uint16x4_t b3210 = vget_low_u16(vreinterpretq_u16_m128i(b)); -+ uint32x4_t ab3210 = vmull_u16(a3210, b3210); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ uint32x4_t ab7654 = -+ vmull_high_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); -+ uint16x8_t r = vuzp2q_u16(vreinterpretq_u16_u32(ab3210), -+ vreinterpretq_u16_u32(ab7654)); -+ return vreinterpretq_m128i_u16(r); -+#else -+ uint16x4_t a7654 = vget_high_u16(vreinterpretq_u16_m128i(a)); -+ uint16x4_t b7654 = vget_high_u16(vreinterpretq_u16_m128i(b)); -+ uint32x4_t ab7654 = vmull_u16(a7654, b7654); -+ uint16x8x2_t r = -+ vuzpq_u16(vreinterpretq_u16_u32(ab3210), vreinterpretq_u16_u32(ab7654)); -+ return vreinterpretq_m128i_u16(r.val[1]); -+#endif -+} -+ -+// Multiply the packed 16-bit integers in a and b, producing intermediate 32-bit -+// integers, and store the low 16 bits of the intermediate integers in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi16 -+FORCE_INLINE __m128i _mm_mullo_epi16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s16( -+ vmulq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); -+} -+ -+// Compute the bitwise OR of packed double-precision (64-bit) floating-point -+// elements in a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_or_pd -+FORCE_INLINE __m128d _mm_or_pd(__m128d a, __m128d b) -+{ -+ return vreinterpretq_m128d_s64( -+ vorrq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); -+} -+ -+// Compute the bitwise OR of 128 bits (representing integer data) in a and b, -+// and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_or_si128 -+FORCE_INLINE __m128i _mm_or_si128(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s32( -+ vorrq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); -+} -+ -+// Convert packed signed 16-bit integers from a and b to packed 8-bit integers -+// using signed saturation, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi16 -+FORCE_INLINE __m128i _mm_packs_epi16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s8( -+ vcombine_s8(vqmovn_s16(vreinterpretq_s16_m128i(a)), -+ vqmovn_s16(vreinterpretq_s16_m128i(b)))); -+} -+ -+// Convert packed signed 32-bit integers from a and b to packed 16-bit integers -+// using signed saturation, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packs_epi32 -+FORCE_INLINE __m128i _mm_packs_epi32(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s16( -+ vcombine_s16(vqmovn_s32(vreinterpretq_s32_m128i(a)), -+ vqmovn_s32(vreinterpretq_s32_m128i(b)))); -+} -+ -+// Convert packed signed 16-bit integers from a and b to packed 8-bit integers -+// using unsigned saturation, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi16 -+FORCE_INLINE __m128i _mm_packus_epi16(const __m128i a, const __m128i b) -+{ -+ return vreinterpretq_m128i_u8( -+ vcombine_u8(vqmovun_s16(vreinterpretq_s16_m128i(a)), -+ vqmovun_s16(vreinterpretq_s16_m128i(b)))); -+} -+ -+// Pause the processor. This is typically used in spin-wait loops and depending -+// on the x86 processor typical values are in the 40-100 cycle range. The -+// 'yield' instruction isn't a good fit because it's effectively a nop on most -+// Arm cores. Experience with several databases has shown has shown an 'isb' is -+// a reasonable approximation. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_pause -+FORCE_INLINE void _mm_pause(void) -+{ -+#if defined(_MSC_VER) -+ __isb(_ARM64_BARRIER_SY); -+#else -+ __asm__ __volatile__("isb\n"); -+#endif -+} -+ -+// Compute the absolute differences of packed unsigned 8-bit integers in a and -+// b, then horizontally sum each consecutive 8 differences to produce two -+// unsigned 16-bit integers, and pack these unsigned 16-bit integers in the low -+// 16 bits of 64-bit elements in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sad_epu8 -+FORCE_INLINE __m128i _mm_sad_epu8(__m128i a, __m128i b) -+{ -+ uint16x8_t t = vpaddlq_u8(vabdq_u8((uint8x16_t) a, (uint8x16_t) b)); -+ return vreinterpretq_m128i_u64(vpaddlq_u32(vpaddlq_u16(t))); -+} -+ -+// Set packed 16-bit integers in dst with the supplied values. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi16 -+FORCE_INLINE __m128i _mm_set_epi16(short i7, -+ short i6, -+ short i5, -+ short i4, -+ short i3, -+ short i2, -+ short i1, -+ short i0) -+{ -+ int16_t ALIGN_STRUCT(16) data[8] = {i0, i1, i2, i3, i4, i5, i6, i7}; -+ return vreinterpretq_m128i_s16(vld1q_s16(data)); -+} -+ -+// Set packed 32-bit integers in dst with the supplied values. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi32 -+FORCE_INLINE __m128i _mm_set_epi32(int i3, int i2, int i1, int i0) -+{ -+ int32_t ALIGN_STRUCT(16) data[4] = {i0, i1, i2, i3}; -+ return vreinterpretq_m128i_s32(vld1q_s32(data)); -+} -+ -+// Set packed 64-bit integers in dst with the supplied values. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64 -+FORCE_INLINE __m128i _mm_set_epi64(__m64 i1, __m64 i2) -+{ -+ return _mm_set_epi64x(vget_lane_s64(i1, 0), vget_lane_s64(i2, 0)); -+} -+ -+// Set packed 64-bit integers in dst with the supplied values. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi64x -+FORCE_INLINE __m128i _mm_set_epi64x(int64_t i1, int64_t i2) -+{ -+ return vreinterpretq_m128i_s64( -+ vcombine_s64(vcreate_s64(i2), vcreate_s64(i1))); -+} -+ -+// Set packed 8-bit integers in dst with the supplied values. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_epi8 -+FORCE_INLINE __m128i _mm_set_epi8(signed char b15, -+ signed char b14, -+ signed char b13, -+ signed char b12, -+ signed char b11, -+ signed char b10, -+ signed char b9, -+ signed char b8, -+ signed char b7, -+ signed char b6, -+ signed char b5, -+ signed char b4, -+ signed char b3, -+ signed char b2, -+ signed char b1, -+ signed char b0) -+{ -+ int8_t ALIGN_STRUCT(16) -+ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, -+ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, -+ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, -+ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; -+ return (__m128i) vld1q_s8(data); -+} -+ -+// Set packed double-precision (64-bit) floating-point elements in dst with the -+// supplied values. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd -+FORCE_INLINE __m128d _mm_set_pd(double e1, double e0) -+{ -+ double ALIGN_STRUCT(16) data[2] = {e0, e1}; -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64(vld1q_f64((float64_t *) data)); -+#else -+ return vreinterpretq_m128d_f32(vld1q_f32((float32_t *) data)); -+#endif -+} -+ -+// Broadcast double-precision (64-bit) floating-point value a to all elements of -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_pd1 -+#define _mm_set_pd1 _mm_set1_pd -+ -+// Copy double-precision (64-bit) floating-point element a to the lower element -+// of dst, and zero the upper element. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set_sd -+FORCE_INLINE __m128d _mm_set_sd(double a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64(vsetq_lane_f64(a, vdupq_n_f64(0), 0)); -+#else -+ return _mm_set_pd(0, a); -+#endif -+} -+ -+// Broadcast 16-bit integer a to all elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi16 -+FORCE_INLINE __m128i _mm_set1_epi16(short w) -+{ -+ return vreinterpretq_m128i_s16(vdupq_n_s16(w)); -+} -+ -+// Broadcast 32-bit integer a to all elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi32 -+FORCE_INLINE __m128i _mm_set1_epi32(int _i) -+{ -+ return vreinterpretq_m128i_s32(vdupq_n_s32(_i)); -+} -+ -+// Broadcast 64-bit integer a to all elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64 -+FORCE_INLINE __m128i _mm_set1_epi64(__m64 _i) -+{ -+ return vreinterpretq_m128i_s64(vdupq_lane_s64(_i, 0)); -+} -+ -+// Broadcast 64-bit integer a to all elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi64x -+FORCE_INLINE __m128i _mm_set1_epi64x(int64_t _i) -+{ -+ return vreinterpretq_m128i_s64(vdupq_n_s64(_i)); -+} -+ -+// Broadcast 8-bit integer a to all elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_epi8 -+FORCE_INLINE __m128i _mm_set1_epi8(signed char w) -+{ -+ return vreinterpretq_m128i_s8(vdupq_n_s8(w)); -+} -+ -+// Broadcast double-precision (64-bit) floating-point value a to all elements of -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_set1_pd -+FORCE_INLINE __m128d _mm_set1_pd(double d) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64(vdupq_n_f64(d)); -+#else -+ return vreinterpretq_m128d_s64(vdupq_n_s64(*(int64_t *) &d)); -+#endif -+} -+ -+// Set packed 16-bit integers in dst with the supplied values in reverse order. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi16 -+FORCE_INLINE __m128i _mm_setr_epi16(short w0, -+ short w1, -+ short w2, -+ short w3, -+ short w4, -+ short w5, -+ short w6, -+ short w7) -+{ -+ int16_t ALIGN_STRUCT(16) data[8] = {w0, w1, w2, w3, w4, w5, w6, w7}; -+ return vreinterpretq_m128i_s16(vld1q_s16((int16_t *) data)); -+} -+ -+// Set packed 32-bit integers in dst with the supplied values in reverse order. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi32 -+FORCE_INLINE __m128i _mm_setr_epi32(int i3, int i2, int i1, int i0) -+{ -+ int32_t ALIGN_STRUCT(16) data[4] = {i3, i2, i1, i0}; -+ return vreinterpretq_m128i_s32(vld1q_s32(data)); -+} -+ -+// Set packed 64-bit integers in dst with the supplied values in reverse order. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi64 -+FORCE_INLINE __m128i _mm_setr_epi64(__m64 e1, __m64 e0) -+{ -+ return vreinterpretq_m128i_s64(vcombine_s64(e1, e0)); -+} -+ -+// Set packed 8-bit integers in dst with the supplied values in reverse order. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_epi8 -+FORCE_INLINE __m128i _mm_setr_epi8(signed char b0, -+ signed char b1, -+ signed char b2, -+ signed char b3, -+ signed char b4, -+ signed char b5, -+ signed char b6, -+ signed char b7, -+ signed char b8, -+ signed char b9, -+ signed char b10, -+ signed char b11, -+ signed char b12, -+ signed char b13, -+ signed char b14, -+ signed char b15) -+{ -+ int8_t ALIGN_STRUCT(16) -+ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3, -+ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7, -+ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11, -+ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15}; -+ return (__m128i) vld1q_s8(data); -+} -+ -+// Set packed double-precision (64-bit) floating-point elements in dst with the -+// supplied values in reverse order. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setr_pd -+FORCE_INLINE __m128d _mm_setr_pd(double e1, double e0) -+{ -+ return _mm_set_pd(e0, e1); -+} -+ -+// Return vector of type __m128d with all elements set to zero. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_pd -+FORCE_INLINE __m128d _mm_setzero_pd(void) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64(vdupq_n_f64(0)); -+#else -+ return vreinterpretq_m128d_f32(vdupq_n_f32(0)); -+#endif -+} -+ -+// Return vector of type __m128i with all elements set to zero. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_setzero_si128 -+FORCE_INLINE __m128i _mm_setzero_si128(void) -+{ -+ return vreinterpretq_m128i_s32(vdupq_n_s32(0)); -+} -+ -+// Shuffle 32-bit integers in a using the control in imm8, and store the results -+// in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi32 -+// FORCE_INLINE __m128i _mm_shuffle_epi32(__m128i a, -+// __constrange(0,255) int imm) -+#if defined(_sse2neon_shuffle) -+#define _mm_shuffle_epi32(a, imm) \ -+ __extension__({ \ -+ int32x4_t _input = vreinterpretq_s32_m128i(a); \ -+ int32x4_t _shuf = \ -+ vshuffleq_s32(_input, _input, (imm) & (0x3), ((imm) >> 2) & 0x3, \ -+ ((imm) >> 4) & 0x3, ((imm) >> 6) & 0x3); \ -+ vreinterpretq_m128i_s32(_shuf); \ -+ }) -+#else // generic -+#define _mm_shuffle_epi32(a, imm) \ -+ _sse2neon_define1( \ -+ __m128i, a, __m128i ret; switch (imm) { \ -+ case _MM_SHUFFLE(1, 0, 3, 2): \ -+ ret = _mm_shuffle_epi_1032(_a); \ -+ break; \ -+ case _MM_SHUFFLE(2, 3, 0, 1): \ -+ ret = _mm_shuffle_epi_2301(_a); \ -+ break; \ -+ case _MM_SHUFFLE(0, 3, 2, 1): \ -+ ret = _mm_shuffle_epi_0321(_a); \ -+ break; \ -+ case _MM_SHUFFLE(2, 1, 0, 3): \ -+ ret = _mm_shuffle_epi_2103(_a); \ -+ break; \ -+ case _MM_SHUFFLE(1, 0, 1, 0): \ -+ ret = _mm_shuffle_epi_1010(_a); \ -+ break; \ -+ case _MM_SHUFFLE(1, 0, 0, 1): \ -+ ret = _mm_shuffle_epi_1001(_a); \ -+ break; \ -+ case _MM_SHUFFLE(0, 1, 0, 1): \ -+ ret = _mm_shuffle_epi_0101(_a); \ -+ break; \ -+ case _MM_SHUFFLE(2, 2, 1, 1): \ -+ ret = _mm_shuffle_epi_2211(_a); \ -+ break; \ -+ case _MM_SHUFFLE(0, 1, 2, 2): \ -+ ret = _mm_shuffle_epi_0122(_a); \ -+ break; \ -+ case _MM_SHUFFLE(3, 3, 3, 2): \ -+ ret = _mm_shuffle_epi_3332(_a); \ -+ break; \ -+ case _MM_SHUFFLE(0, 0, 0, 0): \ -+ ret = _mm_shuffle_epi32_splat(_a, 0); \ -+ break; \ -+ case _MM_SHUFFLE(1, 1, 1, 1): \ -+ ret = _mm_shuffle_epi32_splat(_a, 1); \ -+ break; \ -+ case _MM_SHUFFLE(2, 2, 2, 2): \ -+ ret = _mm_shuffle_epi32_splat(_a, 2); \ -+ break; \ -+ case _MM_SHUFFLE(3, 3, 3, 3): \ -+ ret = _mm_shuffle_epi32_splat(_a, 3); \ -+ break; \ -+ default: \ -+ ret = _mm_shuffle_epi32_default(_a, (imm)); \ -+ break; \ -+ } _sse2neon_return(ret);) -+#endif -+ -+// Shuffle double-precision (64-bit) floating-point elements using the control -+// in imm8, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pd -+#ifdef _sse2neon_shuffle -+#define _mm_shuffle_pd(a, b, imm8) \ -+ vreinterpretq_m128d_s64( \ -+ vshuffleq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b), \ -+ imm8 & 0x1, ((imm8 & 0x2) >> 1) + 2)) -+#else -+#define _mm_shuffle_pd(a, b, imm8) \ -+ _mm_castsi128_pd(_mm_set_epi64x( \ -+ vgetq_lane_s64(vreinterpretq_s64_m128d(b), (imm8 & 0x2) >> 1), \ -+ vgetq_lane_s64(vreinterpretq_s64_m128d(a), imm8 & 0x1))) -+#endif -+ -+// FORCE_INLINE __m128i _mm_shufflehi_epi16(__m128i a, -+// __constrange(0,255) int imm) -+#if defined(_sse2neon_shuffle) -+#define _mm_shufflehi_epi16(a, imm) \ -+ __extension__({ \ -+ int16x8_t _input = vreinterpretq_s16_m128i(a); \ -+ int16x8_t _shuf = \ -+ vshuffleq_s16(_input, _input, 0, 1, 2, 3, ((imm) & (0x3)) + 4, \ -+ (((imm) >> 2) & 0x3) + 4, (((imm) >> 4) & 0x3) + 4, \ -+ (((imm) >> 6) & 0x3) + 4); \ -+ vreinterpretq_m128i_s16(_shuf); \ -+ }) -+#else // generic -+#define _mm_shufflehi_epi16(a, imm) _mm_shufflehi_epi16_function((a), (imm)) -+#endif -+ -+// FORCE_INLINE __m128i _mm_shufflelo_epi16(__m128i a, -+// __constrange(0,255) int imm) -+#if defined(_sse2neon_shuffle) -+#define _mm_shufflelo_epi16(a, imm) \ -+ __extension__({ \ -+ int16x8_t _input = vreinterpretq_s16_m128i(a); \ -+ int16x8_t _shuf = vshuffleq_s16( \ -+ _input, _input, ((imm) & (0x3)), (((imm) >> 2) & 0x3), \ -+ (((imm) >> 4) & 0x3), (((imm) >> 6) & 0x3), 4, 5, 6, 7); \ -+ vreinterpretq_m128i_s16(_shuf); \ -+ }) -+#else // generic -+#define _mm_shufflelo_epi16(a, imm) _mm_shufflelo_epi16_function((a), (imm)) -+#endif -+ -+// Shift packed 16-bit integers in a left by count while shifting in zeros, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi16 -+FORCE_INLINE __m128i _mm_sll_epi16(__m128i a, __m128i count) -+{ -+ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); -+ if (_sse2neon_unlikely(c & ~15)) -+ return _mm_setzero_si128(); -+ -+ int16x8_t vc = vdupq_n_s16((int16_t) c); -+ return vreinterpretq_m128i_s16(vshlq_s16(vreinterpretq_s16_m128i(a), vc)); -+} -+ -+// Shift packed 32-bit integers in a left by count while shifting in zeros, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi32 -+FORCE_INLINE __m128i _mm_sll_epi32(__m128i a, __m128i count) -+{ -+ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); -+ if (_sse2neon_unlikely(c & ~31)) -+ return _mm_setzero_si128(); -+ -+ int32x4_t vc = vdupq_n_s32((int32_t) c); -+ return vreinterpretq_m128i_s32(vshlq_s32(vreinterpretq_s32_m128i(a), vc)); -+} -+ -+// Shift packed 64-bit integers in a left by count while shifting in zeros, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sll_epi64 -+FORCE_INLINE __m128i _mm_sll_epi64(__m128i a, __m128i count) -+{ -+ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); -+ if (_sse2neon_unlikely(c & ~63)) -+ return _mm_setzero_si128(); -+ -+ int64x2_t vc = vdupq_n_s64((int64_t) c); -+ return vreinterpretq_m128i_s64(vshlq_s64(vreinterpretq_s64_m128i(a), vc)); -+} -+ -+// Shift packed 16-bit integers in a left by imm8 while shifting in zeros, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi16 -+FORCE_INLINE __m128i _mm_slli_epi16(__m128i a, int imm) -+{ -+ if (_sse2neon_unlikely(imm & ~15)) -+ return _mm_setzero_si128(); -+ return vreinterpretq_m128i_s16( -+ vshlq_s16(vreinterpretq_s16_m128i(a), vdupq_n_s16(imm))); -+} -+ -+// Shift packed 32-bit integers in a left by imm8 while shifting in zeros, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi32 -+FORCE_INLINE __m128i _mm_slli_epi32(__m128i a, int imm) -+{ -+ if (_sse2neon_unlikely(imm & ~31)) -+ return _mm_setzero_si128(); -+ return vreinterpretq_m128i_s32( -+ vshlq_s32(vreinterpretq_s32_m128i(a), vdupq_n_s32(imm))); -+} -+ -+// Shift packed 64-bit integers in a left by imm8 while shifting in zeros, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_epi64 -+FORCE_INLINE __m128i _mm_slli_epi64(__m128i a, int imm) -+{ -+ if (_sse2neon_unlikely(imm & ~63)) -+ return _mm_setzero_si128(); -+ return vreinterpretq_m128i_s64( -+ vshlq_s64(vreinterpretq_s64_m128i(a), vdupq_n_s64(imm))); -+} -+ -+// Shift a left by imm8 bytes while shifting in zeros, and store the results in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_slli_si128 -+#define _mm_slli_si128(a, imm) \ -+ _sse2neon_define1( \ -+ __m128i, a, int8x16_t ret; \ -+ if (_sse2neon_unlikely(imm == 0)) ret = vreinterpretq_s8_m128i(_a); \ -+ else if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ -+ else ret = vextq_s8(vdupq_n_s8(0), vreinterpretq_s8_m128i(_a), \ -+ ((imm <= 0 || imm > 15) ? 0 : (16 - imm))); \ -+ _sse2neon_return(vreinterpretq_m128i_s8(ret));) -+ -+// Compute the square root of packed double-precision (64-bit) floating-point -+// elements in a, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_pd -+FORCE_INLINE __m128d _mm_sqrt_pd(__m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64(vsqrtq_f64(vreinterpretq_f64_m128d(a))); -+#else -+ double a0 = sqrt(((double *) &a)[0]); -+ double a1 = sqrt(((double *) &a)[1]); -+ return _mm_set_pd(a1, a0); -+#endif -+} -+ -+// Compute the square root of the lower double-precision (64-bit) floating-point -+// element in b, store the result in the lower element of dst, and copy the -+// upper element from a to the upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sqrt_sd -+FORCE_INLINE __m128d _mm_sqrt_sd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return _mm_move_sd(a, _mm_sqrt_pd(b)); -+#else -+ return _mm_set_pd(((double *) &a)[1], sqrt(((double *) &b)[0])); -+#endif -+} -+ -+// Shift packed 16-bit integers in a right by count while shifting in sign bits, -+// and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi16 -+FORCE_INLINE __m128i _mm_sra_epi16(__m128i a, __m128i count) -+{ -+ int64_t c = vgetq_lane_s64(count, 0); -+ if (_sse2neon_unlikely(c & ~15)) -+ return _mm_cmplt_epi16(a, _mm_setzero_si128()); -+ return vreinterpretq_m128i_s16( -+ vshlq_s16((int16x8_t) a, vdupq_n_s16((int) -c))); -+} -+ -+// Shift packed 32-bit integers in a right by count while shifting in sign bits, -+// and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sra_epi32 -+FORCE_INLINE __m128i _mm_sra_epi32(__m128i a, __m128i count) -+{ -+ int64_t c = vgetq_lane_s64(count, 0); -+ if (_sse2neon_unlikely(c & ~31)) -+ return _mm_cmplt_epi32(a, _mm_setzero_si128()); -+ return vreinterpretq_m128i_s32( -+ vshlq_s32((int32x4_t) a, vdupq_n_s32((int) -c))); -+} -+ -+// Shift packed 16-bit integers in a right by imm8 while shifting in sign -+// bits, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi16 -+FORCE_INLINE __m128i _mm_srai_epi16(__m128i a, int imm) -+{ -+ const int count = (imm & ~15) ? 15 : imm; -+ return (__m128i) vshlq_s16((int16x8_t) a, vdupq_n_s16(-count)); -+} -+ -+// Shift packed 32-bit integers in a right by imm8 while shifting in sign bits, -+// and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srai_epi32 -+// FORCE_INLINE __m128i _mm_srai_epi32(__m128i a, __constrange(0,255) int imm) -+#define _mm_srai_epi32(a, imm) \ -+ _sse2neon_define0( \ -+ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) == 0)) { \ -+ ret = _a; \ -+ } else if (_sse2neon_likely(0 < (imm) && (imm) < 32)) { \ -+ ret = vreinterpretq_m128i_s32( \ -+ vshlq_s32(vreinterpretq_s32_m128i(_a), vdupq_n_s32(-(imm)))); \ -+ } else { \ -+ ret = vreinterpretq_m128i_s32( \ -+ vshrq_n_s32(vreinterpretq_s32_m128i(_a), 31)); \ -+ } _sse2neon_return(ret);) -+ -+// Shift packed 16-bit integers in a right by count while shifting in zeros, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi16 -+FORCE_INLINE __m128i _mm_srl_epi16(__m128i a, __m128i count) -+{ -+ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); -+ if (_sse2neon_unlikely(c & ~15)) -+ return _mm_setzero_si128(); -+ -+ int16x8_t vc = vdupq_n_s16(-(int16_t) c); -+ return vreinterpretq_m128i_u16(vshlq_u16(vreinterpretq_u16_m128i(a), vc)); -+} -+ -+// Shift packed 32-bit integers in a right by count while shifting in zeros, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi32 -+FORCE_INLINE __m128i _mm_srl_epi32(__m128i a, __m128i count) -+{ -+ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); -+ if (_sse2neon_unlikely(c & ~31)) -+ return _mm_setzero_si128(); -+ -+ int32x4_t vc = vdupq_n_s32(-(int32_t) c); -+ return vreinterpretq_m128i_u32(vshlq_u32(vreinterpretq_u32_m128i(a), vc)); -+} -+ -+// Shift packed 64-bit integers in a right by count while shifting in zeros, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srl_epi64 -+FORCE_INLINE __m128i _mm_srl_epi64(__m128i a, __m128i count) -+{ -+ uint64_t c = vreinterpretq_nth_u64_m128i(count, 0); -+ if (_sse2neon_unlikely(c & ~63)) -+ return _mm_setzero_si128(); -+ -+ int64x2_t vc = vdupq_n_s64(-(int64_t) c); -+ return vreinterpretq_m128i_u64(vshlq_u64(vreinterpretq_u64_m128i(a), vc)); -+} -+ -+// Shift packed 16-bit integers in a right by imm8 while shifting in zeros, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi16 -+#define _mm_srli_epi16(a, imm) \ -+ _sse2neon_define0( \ -+ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~15)) { \ -+ ret = _mm_setzero_si128(); \ -+ } else { \ -+ ret = vreinterpretq_m128i_u16( \ -+ vshlq_u16(vreinterpretq_u16_m128i(_a), vdupq_n_s16(-(imm)))); \ -+ } _sse2neon_return(ret);) -+ -+// Shift packed 32-bit integers in a right by imm8 while shifting in zeros, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi32 -+// FORCE_INLINE __m128i _mm_srli_epi32(__m128i a, __constrange(0,255) int imm) -+#define _mm_srli_epi32(a, imm) \ -+ _sse2neon_define0( \ -+ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~31)) { \ -+ ret = _mm_setzero_si128(); \ -+ } else { \ -+ ret = vreinterpretq_m128i_u32( \ -+ vshlq_u32(vreinterpretq_u32_m128i(_a), vdupq_n_s32(-(imm)))); \ -+ } _sse2neon_return(ret);) -+ -+// Shift packed 64-bit integers in a right by imm8 while shifting in zeros, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_epi64 -+#define _mm_srli_epi64(a, imm) \ -+ _sse2neon_define0( \ -+ __m128i, a, __m128i ret; if (_sse2neon_unlikely((imm) & ~63)) { \ -+ ret = _mm_setzero_si128(); \ -+ } else { \ -+ ret = vreinterpretq_m128i_u64( \ -+ vshlq_u64(vreinterpretq_u64_m128i(_a), vdupq_n_s64(-(imm)))); \ -+ } _sse2neon_return(ret);) -+ -+// Shift a right by imm8 bytes while shifting in zeros, and store the results in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_srli_si128 -+#define _mm_srli_si128(a, imm) \ -+ _sse2neon_define1( \ -+ __m128i, a, int8x16_t ret; \ -+ if (_sse2neon_unlikely((imm) & ~15)) ret = vdupq_n_s8(0); \ -+ else ret = vextq_s8(vreinterpretq_s8_m128i(_a), vdupq_n_s8(0), \ -+ (imm > 15 ? 0 : imm)); \ -+ _sse2neon_return(vreinterpretq_m128i_s8(ret));) -+ -+// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point -+// elements) from a into memory. mem_addr must be aligned on a 16-byte boundary -+// or a general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd -+FORCE_INLINE void _mm_store_pd(double *mem_addr, __m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ vst1q_f64((float64_t *) mem_addr, vreinterpretq_f64_m128d(a)); -+#else -+ vst1q_f32((float32_t *) mem_addr, vreinterpretq_f32_m128d(a)); -+#endif -+} -+ -+// Store the lower double-precision (64-bit) floating-point element from a into -+// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte -+// boundary or a general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_pd1 -+FORCE_INLINE void _mm_store_pd1(double *mem_addr, __m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ float64x1_t a_low = vget_low_f64(vreinterpretq_f64_m128d(a)); -+ vst1q_f64((float64_t *) mem_addr, -+ vreinterpretq_f64_m128d(vcombine_f64(a_low, a_low))); -+#else -+ float32x2_t a_low = vget_low_f32(vreinterpretq_f32_m128d(a)); -+ vst1q_f32((float32_t *) mem_addr, -+ vreinterpretq_f32_m128d(vcombine_f32(a_low, a_low))); -+#endif -+} -+ -+// Store the lower double-precision (64-bit) floating-point element from a into -+// memory. mem_addr does not need to be aligned on any particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_store_sd -+FORCE_INLINE void _mm_store_sd(double *mem_addr, __m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); -+#else -+ vst1_u64((uint64_t *) mem_addr, vget_low_u64(vreinterpretq_u64_m128d(a))); -+#endif -+} -+ -+// Store 128-bits of integer data from a into memory. mem_addr must be aligned -+// on a 16-byte boundary or a general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_store_si128 -+FORCE_INLINE void _mm_store_si128(__m128i *p, __m128i a) -+{ -+ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); -+} -+ -+// Store the lower double-precision (64-bit) floating-point element from a into -+// 2 contiguous elements in memory. mem_addr must be aligned on a 16-byte -+// boundary or a general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#expand=9,526,5601&text=_mm_store1_pd -+#define _mm_store1_pd _mm_store_pd1 -+ -+// Store the upper double-precision (64-bit) floating-point element from a into -+// memory. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeh_pd -+FORCE_INLINE void _mm_storeh_pd(double *mem_addr, __m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ vst1_f64((float64_t *) mem_addr, vget_high_f64(vreinterpretq_f64_m128d(a))); -+#else -+ vst1_f32((float32_t *) mem_addr, vget_high_f32(vreinterpretq_f32_m128d(a))); -+#endif -+} -+ -+// Store 64-bit integer from the first element of a into memory. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_epi64 -+FORCE_INLINE void _mm_storel_epi64(__m128i *a, __m128i b) -+{ -+ vst1_u64((uint64_t *) a, vget_low_u64(vreinterpretq_u64_m128i(b))); -+} -+ -+// Store the lower double-precision (64-bit) floating-point element from a into -+// memory. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storel_pd -+FORCE_INLINE void _mm_storel_pd(double *mem_addr, __m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ vst1_f64((float64_t *) mem_addr, vget_low_f64(vreinterpretq_f64_m128d(a))); -+#else -+ vst1_f32((float32_t *) mem_addr, vget_low_f32(vreinterpretq_f32_m128d(a))); -+#endif -+} -+ -+// Store 2 double-precision (64-bit) floating-point elements from a into memory -+// in reverse order. mem_addr must be aligned on a 16-byte boundary or a -+// general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storer_pd -+FORCE_INLINE void _mm_storer_pd(double *mem_addr, __m128d a) -+{ -+ float32x4_t f = vreinterpretq_f32_m128d(a); -+ _mm_store_pd(mem_addr, vreinterpretq_m128d_f32(vextq_f32(f, f, 2))); -+} -+ -+// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point -+// elements) from a into memory. mem_addr does not need to be aligned on any -+// particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_pd -+FORCE_INLINE void _mm_storeu_pd(double *mem_addr, __m128d a) -+{ -+ _mm_store_pd(mem_addr, a); -+} -+ -+// Store 128-bits of integer data from a into memory. mem_addr does not need to -+// be aligned on any particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si128 -+FORCE_INLINE void _mm_storeu_si128(__m128i *p, __m128i a) -+{ -+ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a)); -+} -+ -+// Store 32-bit integer from the first element of a into memory. mem_addr does -+// not need to be aligned on any particular boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_storeu_si32 -+FORCE_INLINE void _mm_storeu_si32(void *p, __m128i a) -+{ -+ vst1q_lane_s32((int32_t *) p, vreinterpretq_s32_m128i(a), 0); -+} -+ -+// Store 128-bits (composed of 2 packed double-precision (64-bit) floating-point -+// elements) from a into memory using a non-temporal memory hint. mem_addr must -+// be aligned on a 16-byte boundary or a general-protection exception may be -+// generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_pd -+FORCE_INLINE void _mm_stream_pd(double *p, __m128d a) -+{ -+#if __has_builtin(__builtin_nontemporal_store) -+ __builtin_nontemporal_store(a, (__m128d *) p); -+#elif defined(__aarch64__) || defined(_M_ARM64) -+ vst1q_f64(p, vreinterpretq_f64_m128d(a)); -+#else -+ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128d(a)); -+#endif -+} -+ -+// Store 128-bits of integer data from a into memory using a non-temporal memory -+// hint. mem_addr must be aligned on a 16-byte boundary or a general-protection -+// exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si128 -+FORCE_INLINE void _mm_stream_si128(__m128i *p, __m128i a) -+{ -+#if __has_builtin(__builtin_nontemporal_store) -+ __builtin_nontemporal_store(a, p); -+#else -+ vst1q_s64((int64_t *) p, vreinterpretq_s64_m128i(a)); -+#endif -+} -+ -+// Store 32-bit integer a into memory using a non-temporal hint to minimize -+// cache pollution. If the cache line containing address mem_addr is already in -+// the cache, the cache will be updated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si32 -+FORCE_INLINE void _mm_stream_si32(int *p, int a) -+{ -+ vst1q_lane_s32((int32_t *) p, vdupq_n_s32(a), 0); -+} -+ -+// Store 64-bit integer a into memory using a non-temporal hint to minimize -+// cache pollution. If the cache line containing address mem_addr is already in -+// the cache, the cache will be updated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_si64 -+FORCE_INLINE void _mm_stream_si64(__int64 *p, __int64 a) -+{ -+ vst1_s64((int64_t *) p, vdup_n_s64((int64_t) a)); -+} -+ -+// Subtract packed 16-bit integers in b from packed 16-bit integers in a, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi16 -+FORCE_INLINE __m128i _mm_sub_epi16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s16( -+ vsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); -+} -+ -+// Subtract packed 32-bit integers in b from packed 32-bit integers in a, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi32 -+FORCE_INLINE __m128i _mm_sub_epi32(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s32( -+ vsubq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); -+} -+ -+// Subtract packed 64-bit integers in b from packed 64-bit integers in a, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi64 -+FORCE_INLINE __m128i _mm_sub_epi64(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s64( -+ vsubq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); -+} -+ -+// Subtract packed 8-bit integers in b from packed 8-bit integers in a, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_epi8 -+FORCE_INLINE __m128i _mm_sub_epi8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s8( -+ vsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); -+} -+ -+// Subtract packed double-precision (64-bit) floating-point elements in b from -+// packed double-precision (64-bit) floating-point elements in a, and store the -+// results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_sub_pd -+FORCE_INLINE __m128d _mm_sub_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vsubq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#else -+ double *da = (double *) &a; -+ double *db = (double *) &b; -+ double c[2]; -+ c[0] = da[0] - db[0]; -+ c[1] = da[1] - db[1]; -+ return vld1q_f32((float32_t *) c); -+#endif -+} -+ -+// Subtract the lower double-precision (64-bit) floating-point element in b from -+// the lower double-precision (64-bit) floating-point element in a, store the -+// result in the lower element of dst, and copy the upper element from a to the -+// upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_sd -+FORCE_INLINE __m128d _mm_sub_sd(__m128d a, __m128d b) -+{ -+ return _mm_move_sd(a, _mm_sub_pd(a, b)); -+} -+ -+// Subtract 64-bit integer b from 64-bit integer a, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sub_si64 -+FORCE_INLINE __m64 _mm_sub_si64(__m64 a, __m64 b) -+{ -+ return vreinterpret_m64_s64( -+ vsub_s64(vreinterpret_s64_m64(a), vreinterpret_s64_m64(b))); -+} -+ -+// Subtract packed signed 16-bit integers in b from packed 16-bit integers in a -+// using saturation, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi16 -+FORCE_INLINE __m128i _mm_subs_epi16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s16( -+ vqsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); -+} -+ -+// Subtract packed signed 8-bit integers in b from packed 8-bit integers in a -+// using saturation, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epi8 -+FORCE_INLINE __m128i _mm_subs_epi8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s8( -+ vqsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); -+} -+ -+// Subtract packed unsigned 16-bit integers in b from packed unsigned 16-bit -+// integers in a using saturation, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu16 -+FORCE_INLINE __m128i _mm_subs_epu16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u16( -+ vqsubq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); -+} -+ -+// Subtract packed unsigned 8-bit integers in b from packed unsigned 8-bit -+// integers in a using saturation, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_subs_epu8 -+FORCE_INLINE __m128i _mm_subs_epu8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u8( -+ vqsubq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b))); -+} -+ -+#define _mm_ucomieq_sd _mm_comieq_sd -+#define _mm_ucomige_sd _mm_comige_sd -+#define _mm_ucomigt_sd _mm_comigt_sd -+#define _mm_ucomile_sd _mm_comile_sd -+#define _mm_ucomilt_sd _mm_comilt_sd -+#define _mm_ucomineq_sd _mm_comineq_sd -+ -+// Return vector of type __m128d with undefined elements. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_undefined_pd -+FORCE_INLINE __m128d _mm_undefined_pd(void) -+{ -+#if defined(__GNUC__) || defined(__clang__) -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wuninitialized" -+#endif -+ __m128d a; -+#if defined(_MSC_VER) -+ a = _mm_setzero_pd(); -+#endif -+ return a; -+#if defined(__GNUC__) || defined(__clang__) -+#pragma GCC diagnostic pop -+#endif -+} -+ -+// Unpack and interleave 16-bit integers from the high half of a and b, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi16 -+FORCE_INLINE __m128i _mm_unpackhi_epi16(__m128i a, __m128i b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s16( -+ vzip2q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); -+#else -+ int16x4_t a1 = vget_high_s16(vreinterpretq_s16_m128i(a)); -+ int16x4_t b1 = vget_high_s16(vreinterpretq_s16_m128i(b)); -+ int16x4x2_t result = vzip_s16(a1, b1); -+ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); -+#endif -+} -+ -+// Unpack and interleave 32-bit integers from the high half of a and b, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi32 -+FORCE_INLINE __m128i _mm_unpackhi_epi32(__m128i a, __m128i b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s32( -+ vzip2q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); -+#else -+ int32x2_t a1 = vget_high_s32(vreinterpretq_s32_m128i(a)); -+ int32x2_t b1 = vget_high_s32(vreinterpretq_s32_m128i(b)); -+ int32x2x2_t result = vzip_s32(a1, b1); -+ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); -+#endif -+} -+ -+// Unpack and interleave 64-bit integers from the high half of a and b, and -+// store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi64 -+FORCE_INLINE __m128i _mm_unpackhi_epi64(__m128i a, __m128i b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s64( -+ vzip2q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); -+#else -+ int64x1_t a_h = vget_high_s64(vreinterpretq_s64_m128i(a)); -+ int64x1_t b_h = vget_high_s64(vreinterpretq_s64_m128i(b)); -+ return vreinterpretq_m128i_s64(vcombine_s64(a_h, b_h)); -+#endif -+} -+ -+// Unpack and interleave 8-bit integers from the high half of a and b, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_epi8 -+FORCE_INLINE __m128i _mm_unpackhi_epi8(__m128i a, __m128i b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s8( -+ vzip2q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); -+#else -+ int8x8_t a1 = -+ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(a))); -+ int8x8_t b1 = -+ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(b))); -+ int8x8x2_t result = vzip_s8(a1, b1); -+ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); -+#endif -+} -+ -+// Unpack and interleave double-precision (64-bit) floating-point elements from -+// the high half of a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpackhi_pd -+FORCE_INLINE __m128d _mm_unpackhi_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vzip2q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#else -+ return vreinterpretq_m128d_s64( -+ vcombine_s64(vget_high_s64(vreinterpretq_s64_m128d(a)), -+ vget_high_s64(vreinterpretq_s64_m128d(b)))); -+#endif -+} -+ -+// Unpack and interleave 16-bit integers from the low half of a and b, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi16 -+FORCE_INLINE __m128i _mm_unpacklo_epi16(__m128i a, __m128i b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s16( -+ vzip1q_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); -+#else -+ int16x4_t a1 = vget_low_s16(vreinterpretq_s16_m128i(a)); -+ int16x4_t b1 = vget_low_s16(vreinterpretq_s16_m128i(b)); -+ int16x4x2_t result = vzip_s16(a1, b1); -+ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); -+#endif -+} -+ -+// Unpack and interleave 32-bit integers from the low half of a and b, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi32 -+FORCE_INLINE __m128i _mm_unpacklo_epi32(__m128i a, __m128i b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s32( -+ vzip1q_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); -+#else -+ int32x2_t a1 = vget_low_s32(vreinterpretq_s32_m128i(a)); -+ int32x2_t b1 = vget_low_s32(vreinterpretq_s32_m128i(b)); -+ int32x2x2_t result = vzip_s32(a1, b1); -+ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); -+#endif -+} -+ -+// Unpack and interleave 64-bit integers from the low half of a and b, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi64 -+FORCE_INLINE __m128i _mm_unpacklo_epi64(__m128i a, __m128i b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s64( -+ vzip1q_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); -+#else -+ int64x1_t a_l = vget_low_s64(vreinterpretq_s64_m128i(a)); -+ int64x1_t b_l = vget_low_s64(vreinterpretq_s64_m128i(b)); -+ return vreinterpretq_m128i_s64(vcombine_s64(a_l, b_l)); -+#endif -+} -+ -+// Unpack and interleave 8-bit integers from the low half of a and b, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_epi8 -+FORCE_INLINE __m128i _mm_unpacklo_epi8(__m128i a, __m128i b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s8( -+ vzip1q_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); -+#else -+ int8x8_t a1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(a))); -+ int8x8_t b1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(b))); -+ int8x8x2_t result = vzip_s8(a1, b1); -+ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); -+#endif -+} -+ -+// Unpack and interleave double-precision (64-bit) floating-point elements from -+// the low half of a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_unpacklo_pd -+FORCE_INLINE __m128d _mm_unpacklo_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vzip1q_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#else -+ return vreinterpretq_m128d_s64( -+ vcombine_s64(vget_low_s64(vreinterpretq_s64_m128d(a)), -+ vget_low_s64(vreinterpretq_s64_m128d(b)))); -+#endif -+} -+ -+// Compute the bitwise XOR of packed double-precision (64-bit) floating-point -+// elements in a and b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_pd -+FORCE_INLINE __m128d _mm_xor_pd(__m128d a, __m128d b) -+{ -+ return vreinterpretq_m128d_s64( -+ veorq_s64(vreinterpretq_s64_m128d(a), vreinterpretq_s64_m128d(b))); -+} -+ -+// Compute the bitwise XOR of 128 bits (representing integer data) in a and b, -+// and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_xor_si128 -+FORCE_INLINE __m128i _mm_xor_si128(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s32( -+ veorq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); -+} -+ -+/* SSE3 */ -+ -+// Alternatively add and subtract packed double-precision (64-bit) -+// floating-point elements in a to/from packed elements in b, and store the -+// results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_addsub_pd -+FORCE_INLINE __m128d _mm_addsub_pd(__m128d a, __m128d b) -+{ -+ _sse2neon_const __m128d mask = _mm_set_pd(1.0f, -1.0f); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64(vfmaq_f64(vreinterpretq_f64_m128d(a), -+ vreinterpretq_f64_m128d(b), -+ vreinterpretq_f64_m128d(mask))); -+#else -+ return _mm_add_pd(_mm_mul_pd(b, mask), a); -+#endif -+} -+ -+// Alternatively add and subtract packed single-precision (32-bit) -+// floating-point elements in a to/from packed elements in b, and store the -+// results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=addsub_ps -+FORCE_INLINE __m128 _mm_addsub_ps(__m128 a, __m128 b) -+{ -+ _sse2neon_const __m128 mask = _mm_setr_ps(-1.0f, 1.0f, -1.0f, 1.0f); -+#if (defined(__aarch64__) || defined(_M_ARM64)) || \ -+ defined(__ARM_FEATURE_FMA) /* VFPv4+ */ -+ return vreinterpretq_m128_f32(vfmaq_f32(vreinterpretq_f32_m128(a), -+ vreinterpretq_f32_m128(mask), -+ vreinterpretq_f32_m128(b))); -+#else -+ return _mm_add_ps(_mm_mul_ps(b, mask), a); -+#endif -+} -+ -+// Horizontally add adjacent pairs of double-precision (64-bit) floating-point -+// elements in a and b, and pack the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pd -+FORCE_INLINE __m128d _mm_hadd_pd(__m128d a, __m128d b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vpaddq_f64(vreinterpretq_f64_m128d(a), vreinterpretq_f64_m128d(b))); -+#else -+ double *da = (double *) &a; -+ double *db = (double *) &b; -+ double c[] = {da[0] + da[1], db[0] + db[1]}; -+ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); -+#endif -+} -+ -+// Horizontally add adjacent pairs of single-precision (32-bit) floating-point -+// elements in a and b, and pack the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_ps -+FORCE_INLINE __m128 _mm_hadd_ps(__m128 a, __m128 b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128_f32( -+ vpaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); -+#else -+ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); -+ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); -+ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); -+ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); -+ return vreinterpretq_m128_f32( -+ vcombine_f32(vpadd_f32(a10, a32), vpadd_f32(b10, b32))); -+#endif -+} -+ -+// Horizontally subtract adjacent pairs of double-precision (64-bit) -+// floating-point elements in a and b, and pack the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pd -+FORCE_INLINE __m128d _mm_hsub_pd(__m128d _a, __m128d _b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ float64x2_t a = vreinterpretq_f64_m128d(_a); -+ float64x2_t b = vreinterpretq_f64_m128d(_b); -+ return vreinterpretq_m128d_f64( -+ vsubq_f64(vuzp1q_f64(a, b), vuzp2q_f64(a, b))); -+#else -+ double *da = (double *) &_a; -+ double *db = (double *) &_b; -+ double c[] = {da[0] - da[1], db[0] - db[1]}; -+ return vreinterpretq_m128d_u64(vld1q_u64((uint64_t *) c)); -+#endif -+} -+ -+// Horizontally subtract adjacent pairs of single-precision (32-bit) -+// floating-point elements in a and b, and pack the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_ps -+FORCE_INLINE __m128 _mm_hsub_ps(__m128 _a, __m128 _b) -+{ -+ float32x4_t a = vreinterpretq_f32_m128(_a); -+ float32x4_t b = vreinterpretq_f32_m128(_b); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128_f32( -+ vsubq_f32(vuzp1q_f32(a, b), vuzp2q_f32(a, b))); -+#else -+ float32x4x2_t c = vuzpq_f32(a, b); -+ return vreinterpretq_m128_f32(vsubq_f32(c.val[0], c.val[1])); -+#endif -+} -+ -+// Load 128-bits of integer data from unaligned memory into dst. This intrinsic -+// may perform better than _mm_loadu_si128 when the data crosses a cache line -+// boundary. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_lddqu_si128 -+#define _mm_lddqu_si128 _mm_loadu_si128 -+ -+// Load a double-precision (64-bit) floating-point element from memory into both -+// elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_loaddup_pd -+#define _mm_loaddup_pd _mm_load1_pd -+ -+// Duplicate the low double-precision (64-bit) floating-point element from a, -+// and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movedup_pd -+FORCE_INLINE __m128d _mm_movedup_pd(__m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64( -+ vdupq_laneq_f64(vreinterpretq_f64_m128d(a), 0)); -+#else -+ return vreinterpretq_m128d_u64( -+ vdupq_n_u64(vgetq_lane_u64(vreinterpretq_u64_m128d(a), 0))); -+#endif -+} -+ -+// Duplicate odd-indexed single-precision (32-bit) floating-point elements -+// from a, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_movehdup_ps -+FORCE_INLINE __m128 _mm_movehdup_ps(__m128 a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128_f32( -+ vtrn2q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); -+#elif defined(_sse2neon_shuffle) -+ return vreinterpretq_m128_f32(vshuffleq_s32( -+ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 1, 1, 3, 3)); -+#else -+ float32_t a1 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 1); -+ float32_t a3 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 3); -+ float ALIGN_STRUCT(16) data[4] = {a1, a1, a3, a3}; -+ return vreinterpretq_m128_f32(vld1q_f32(data)); -+#endif -+} -+ -+// Duplicate even-indexed single-precision (32-bit) floating-point elements -+// from a, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_moveldup_ps -+FORCE_INLINE __m128 _mm_moveldup_ps(__m128 a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128_f32( -+ vtrn1q_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a))); -+#elif defined(_sse2neon_shuffle) -+ return vreinterpretq_m128_f32(vshuffleq_s32( -+ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 0, 0, 2, 2)); -+#else -+ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); -+ float32_t a2 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 2); -+ float ALIGN_STRUCT(16) data[4] = {a0, a0, a2, a2}; -+ return vreinterpretq_m128_f32(vld1q_f32(data)); -+#endif -+} -+ -+/* SSSE3 */ -+ -+// Compute the absolute value of packed signed 16-bit integers in a, and store -+// the unsigned results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi16 -+FORCE_INLINE __m128i _mm_abs_epi16(__m128i a) -+{ -+ return vreinterpretq_m128i_s16(vabsq_s16(vreinterpretq_s16_m128i(a))); -+} -+ -+// Compute the absolute value of packed signed 32-bit integers in a, and store -+// the unsigned results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi32 -+FORCE_INLINE __m128i _mm_abs_epi32(__m128i a) -+{ -+ return vreinterpretq_m128i_s32(vabsq_s32(vreinterpretq_s32_m128i(a))); -+} -+ -+// Compute the absolute value of packed signed 8-bit integers in a, and store -+// the unsigned results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_epi8 -+FORCE_INLINE __m128i _mm_abs_epi8(__m128i a) -+{ -+ return vreinterpretq_m128i_s8(vabsq_s8(vreinterpretq_s8_m128i(a))); -+} -+ -+// Compute the absolute value of packed signed 16-bit integers in a, and store -+// the unsigned results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi16 -+FORCE_INLINE __m64 _mm_abs_pi16(__m64 a) -+{ -+ return vreinterpret_m64_s16(vabs_s16(vreinterpret_s16_m64(a))); -+} -+ -+// Compute the absolute value of packed signed 32-bit integers in a, and store -+// the unsigned results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi32 -+FORCE_INLINE __m64 _mm_abs_pi32(__m64 a) -+{ -+ return vreinterpret_m64_s32(vabs_s32(vreinterpret_s32_m64(a))); -+} -+ -+// Compute the absolute value of packed signed 8-bit integers in a, and store -+// the unsigned results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_abs_pi8 -+FORCE_INLINE __m64 _mm_abs_pi8(__m64 a) -+{ -+ return vreinterpret_m64_s8(vabs_s8(vreinterpret_s8_m64(a))); -+} -+ -+// Concatenate 16-byte blocks in a and b into a 32-byte temporary result, shift -+// the result right by imm8 bytes, and store the low 16 bytes in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_epi8 -+#if defined(__GNUC__) && !defined(__clang__) -+#define _mm_alignr_epi8(a, b, imm) \ -+ __extension__({ \ -+ uint8x16_t _a = vreinterpretq_u8_m128i(a); \ -+ uint8x16_t _b = vreinterpretq_u8_m128i(b); \ -+ __m128i ret; \ -+ if (_sse2neon_unlikely((imm) & ~31)) \ -+ ret = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ -+ else if (imm >= 16) \ -+ ret = _mm_srli_si128(a, imm >= 16 ? imm - 16 : 0); \ -+ else \ -+ ret = \ -+ vreinterpretq_m128i_u8(vextq_u8(_b, _a, imm < 16 ? imm : 0)); \ -+ ret; \ -+ }) -+ -+#else -+#define _mm_alignr_epi8(a, b, imm) \ -+ _sse2neon_define2( \ -+ __m128i, a, b, uint8x16_t __a = vreinterpretq_u8_m128i(_a); \ -+ uint8x16_t __b = vreinterpretq_u8_m128i(_b); __m128i ret; \ -+ if (_sse2neon_unlikely((imm) & ~31)) ret = \ -+ vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ -+ else if (imm >= 16) ret = \ -+ _mm_srli_si128(_a, imm >= 16 ? imm - 16 : 0); \ -+ else ret = \ -+ vreinterpretq_m128i_u8(vextq_u8(__b, __a, imm < 16 ? imm : 0)); \ -+ _sse2neon_return(ret);) -+ -+#endif -+ -+// Concatenate 8-byte blocks in a and b into a 16-byte temporary result, shift -+// the result right by imm8 bytes, and store the low 8 bytes in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_alignr_pi8 -+#define _mm_alignr_pi8(a, b, imm) \ -+ _sse2neon_define2( \ -+ __m64, a, b, __m64 ret; if (_sse2neon_unlikely((imm) >= 16)) { \ -+ ret = vreinterpret_m64_s8(vdup_n_s8(0)); \ -+ } else { \ -+ uint8x8_t tmp_low; \ -+ uint8x8_t tmp_high; \ -+ if ((imm) >= 8) { \ -+ const int idx = (imm) -8; \ -+ tmp_low = vreinterpret_u8_m64(_a); \ -+ tmp_high = vdup_n_u8(0); \ -+ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ -+ } else { \ -+ const int idx = (imm); \ -+ tmp_low = vreinterpret_u8_m64(_b); \ -+ tmp_high = vreinterpret_u8_m64(_a); \ -+ ret = vreinterpret_m64_u8(vext_u8(tmp_low, tmp_high, idx)); \ -+ } \ -+ } _sse2neon_return(ret);) -+ -+// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the -+// signed 16-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi16 -+FORCE_INLINE __m128i _mm_hadd_epi16(__m128i _a, __m128i _b) -+{ -+ int16x8_t a = vreinterpretq_s16_m128i(_a); -+ int16x8_t b = vreinterpretq_s16_m128i(_b); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s16(vpaddq_s16(a, b)); -+#else -+ return vreinterpretq_m128i_s16( -+ vcombine_s16(vpadd_s16(vget_low_s16(a), vget_high_s16(a)), -+ vpadd_s16(vget_low_s16(b), vget_high_s16(b)))); -+#endif -+} -+ -+// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the -+// signed 32-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_epi32 -+FORCE_INLINE __m128i _mm_hadd_epi32(__m128i _a, __m128i _b) -+{ -+ int32x4_t a = vreinterpretq_s32_m128i(_a); -+ int32x4_t b = vreinterpretq_s32_m128i(_b); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s32(vpaddq_s32(a, b)); -+#else -+ return vreinterpretq_m128i_s32( -+ vcombine_s32(vpadd_s32(vget_low_s32(a), vget_high_s32(a)), -+ vpadd_s32(vget_low_s32(b), vget_high_s32(b)))); -+#endif -+} -+ -+// Horizontally add adjacent pairs of 16-bit integers in a and b, and pack the -+// signed 16-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi16 -+FORCE_INLINE __m64 _mm_hadd_pi16(__m64 a, __m64 b) -+{ -+ return vreinterpret_m64_s16( -+ vpadd_s16(vreinterpret_s16_m64(a), vreinterpret_s16_m64(b))); -+} -+ -+// Horizontally add adjacent pairs of 32-bit integers in a and b, and pack the -+// signed 32-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadd_pi32 -+FORCE_INLINE __m64 _mm_hadd_pi32(__m64 a, __m64 b) -+{ -+ return vreinterpret_m64_s32( -+ vpadd_s32(vreinterpret_s32_m64(a), vreinterpret_s32_m64(b))); -+} -+ -+// Horizontally add adjacent pairs of signed 16-bit integers in a and b using -+// saturation, and pack the signed 16-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_epi16 -+FORCE_INLINE __m128i _mm_hadds_epi16(__m128i _a, __m128i _b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ int16x8_t a = vreinterpretq_s16_m128i(_a); -+ int16x8_t b = vreinterpretq_s16_m128i(_b); -+ return vreinterpretq_s64_s16( -+ vqaddq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); -+#else -+ int32x4_t a = vreinterpretq_s32_m128i(_a); -+ int32x4_t b = vreinterpretq_s32_m128i(_b); -+ // Interleave using vshrn/vmovn -+ // [a0|a2|a4|a6|b0|b2|b4|b6] -+ // [a1|a3|a5|a7|b1|b3|b5|b7] -+ int16x8_t ab0246 = vcombine_s16(vmovn_s32(a), vmovn_s32(b)); -+ int16x8_t ab1357 = vcombine_s16(vshrn_n_s32(a, 16), vshrn_n_s32(b, 16)); -+ // Saturated add -+ return vreinterpretq_m128i_s16(vqaddq_s16(ab0246, ab1357)); -+#endif -+} -+ -+// Horizontally add adjacent pairs of signed 16-bit integers in a and b using -+// saturation, and pack the signed 16-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hadds_pi16 -+FORCE_INLINE __m64 _mm_hadds_pi16(__m64 _a, __m64 _b) -+{ -+ int16x4_t a = vreinterpret_s16_m64(_a); -+ int16x4_t b = vreinterpret_s16_m64(_b); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpret_s64_s16(vqadd_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); -+#else -+ int16x4x2_t res = vuzp_s16(a, b); -+ return vreinterpret_s64_s16(vqadd_s16(res.val[0], res.val[1])); -+#endif -+} -+ -+// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack -+// the signed 16-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi16 -+FORCE_INLINE __m128i _mm_hsub_epi16(__m128i _a, __m128i _b) -+{ -+ int16x8_t a = vreinterpretq_s16_m128i(_a); -+ int16x8_t b = vreinterpretq_s16_m128i(_b); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s16( -+ vsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); -+#else -+ int16x8x2_t c = vuzpq_s16(a, b); -+ return vreinterpretq_m128i_s16(vsubq_s16(c.val[0], c.val[1])); -+#endif -+} -+ -+// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack -+// the signed 32-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_epi32 -+FORCE_INLINE __m128i _mm_hsub_epi32(__m128i _a, __m128i _b) -+{ -+ int32x4_t a = vreinterpretq_s32_m128i(_a); -+ int32x4_t b = vreinterpretq_s32_m128i(_b); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s32( -+ vsubq_s32(vuzp1q_s32(a, b), vuzp2q_s32(a, b))); -+#else -+ int32x4x2_t c = vuzpq_s32(a, b); -+ return vreinterpretq_m128i_s32(vsubq_s32(c.val[0], c.val[1])); -+#endif -+} -+ -+// Horizontally subtract adjacent pairs of 16-bit integers in a and b, and pack -+// the signed 16-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsub_pi16 -+FORCE_INLINE __m64 _mm_hsub_pi16(__m64 _a, __m64 _b) -+{ -+ int16x4_t a = vreinterpret_s16_m64(_a); -+ int16x4_t b = vreinterpret_s16_m64(_b); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpret_m64_s16(vsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); -+#else -+ int16x4x2_t c = vuzp_s16(a, b); -+ return vreinterpret_m64_s16(vsub_s16(c.val[0], c.val[1])); -+#endif -+} -+ -+// Horizontally subtract adjacent pairs of 32-bit integers in a and b, and pack -+// the signed 32-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_hsub_pi32 -+FORCE_INLINE __m64 _mm_hsub_pi32(__m64 _a, __m64 _b) -+{ -+ int32x2_t a = vreinterpret_s32_m64(_a); -+ int32x2_t b = vreinterpret_s32_m64(_b); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpret_m64_s32(vsub_s32(vuzp1_s32(a, b), vuzp2_s32(a, b))); -+#else -+ int32x2x2_t c = vuzp_s32(a, b); -+ return vreinterpret_m64_s32(vsub_s32(c.val[0], c.val[1])); -+#endif -+} -+ -+// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b -+// using saturation, and pack the signed 16-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_epi16 -+FORCE_INLINE __m128i _mm_hsubs_epi16(__m128i _a, __m128i _b) -+{ -+ int16x8_t a = vreinterpretq_s16_m128i(_a); -+ int16x8_t b = vreinterpretq_s16_m128i(_b); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s16( -+ vqsubq_s16(vuzp1q_s16(a, b), vuzp2q_s16(a, b))); -+#else -+ int16x8x2_t c = vuzpq_s16(a, b); -+ return vreinterpretq_m128i_s16(vqsubq_s16(c.val[0], c.val[1])); -+#endif -+} -+ -+// Horizontally subtract adjacent pairs of signed 16-bit integers in a and b -+// using saturation, and pack the signed 16-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_hsubs_pi16 -+FORCE_INLINE __m64 _mm_hsubs_pi16(__m64 _a, __m64 _b) -+{ -+ int16x4_t a = vreinterpret_s16_m64(_a); -+ int16x4_t b = vreinterpret_s16_m64(_b); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpret_m64_s16(vqsub_s16(vuzp1_s16(a, b), vuzp2_s16(a, b))); -+#else -+ int16x4x2_t c = vuzp_s16(a, b); -+ return vreinterpret_m64_s16(vqsub_s16(c.val[0], c.val[1])); -+#endif -+} -+ -+// Vertically multiply each unsigned 8-bit integer from a with the corresponding -+// signed 8-bit integer from b, producing intermediate signed 16-bit integers. -+// Horizontally add adjacent pairs of intermediate signed 16-bit integers, -+// and pack the saturated results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_epi16 -+FORCE_INLINE __m128i _mm_maddubs_epi16(__m128i _a, __m128i _b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ uint8x16_t a = vreinterpretq_u8_m128i(_a); -+ int8x16_t b = vreinterpretq_s8_m128i(_b); -+ int16x8_t tl = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_low_u8(a))), -+ vmovl_s8(vget_low_s8(b))); -+ int16x8_t th = vmulq_s16(vreinterpretq_s16_u16(vmovl_u8(vget_high_u8(a))), -+ vmovl_s8(vget_high_s8(b))); -+ return vreinterpretq_m128i_s16( -+ vqaddq_s16(vuzp1q_s16(tl, th), vuzp2q_s16(tl, th))); -+#else -+ // This would be much simpler if x86 would choose to zero extend OR sign -+ // extend, not both. This could probably be optimized better. -+ uint16x8_t a = vreinterpretq_u16_m128i(_a); -+ int16x8_t b = vreinterpretq_s16_m128i(_b); -+ -+ // Zero extend a -+ int16x8_t a_odd = vreinterpretq_s16_u16(vshrq_n_u16(a, 8)); -+ int16x8_t a_even = vreinterpretq_s16_u16(vbicq_u16(a, vdupq_n_u16(0xff00))); -+ -+ // Sign extend by shifting left then shifting right. -+ int16x8_t b_even = vshrq_n_s16(vshlq_n_s16(b, 8), 8); -+ int16x8_t b_odd = vshrq_n_s16(b, 8); -+ -+ // multiply -+ int16x8_t prod1 = vmulq_s16(a_even, b_even); -+ int16x8_t prod2 = vmulq_s16(a_odd, b_odd); -+ -+ // saturated add -+ return vreinterpretq_m128i_s16(vqaddq_s16(prod1, prod2)); -+#endif -+} -+ -+// Vertically multiply each unsigned 8-bit integer from a with the corresponding -+// signed 8-bit integer from b, producing intermediate signed 16-bit integers. -+// Horizontally add adjacent pairs of intermediate signed 16-bit integers, and -+// pack the saturated results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_maddubs_pi16 -+FORCE_INLINE __m64 _mm_maddubs_pi16(__m64 _a, __m64 _b) -+{ -+ uint16x4_t a = vreinterpret_u16_m64(_a); -+ int16x4_t b = vreinterpret_s16_m64(_b); -+ -+ // Zero extend a -+ int16x4_t a_odd = vreinterpret_s16_u16(vshr_n_u16(a, 8)); -+ int16x4_t a_even = vreinterpret_s16_u16(vand_u16(a, vdup_n_u16(0xff))); -+ -+ // Sign extend by shifting left then shifting right. -+ int16x4_t b_even = vshr_n_s16(vshl_n_s16(b, 8), 8); -+ int16x4_t b_odd = vshr_n_s16(b, 8); -+ -+ // multiply -+ int16x4_t prod1 = vmul_s16(a_even, b_even); -+ int16x4_t prod2 = vmul_s16(a_odd, b_odd); -+ -+ // saturated add -+ return vreinterpret_m64_s16(vqadd_s16(prod1, prod2)); -+} -+ -+// Multiply packed signed 16-bit integers in a and b, producing intermediate -+// signed 32-bit integers. Shift right by 15 bits while rounding up, and store -+// the packed 16-bit integers in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_epi16 -+FORCE_INLINE __m128i _mm_mulhrs_epi16(__m128i a, __m128i b) -+{ -+ // Has issues due to saturation -+ // return vreinterpretq_m128i_s16(vqrdmulhq_s16(a, b)); -+ -+ // Multiply -+ int32x4_t mul_lo = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)), -+ vget_low_s16(vreinterpretq_s16_m128i(b))); -+ int32x4_t mul_hi = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)), -+ vget_high_s16(vreinterpretq_s16_m128i(b))); -+ -+ // Rounding narrowing shift right -+ // narrow = (int16_t)((mul + 16384) >> 15); -+ int16x4_t narrow_lo = vrshrn_n_s32(mul_lo, 15); -+ int16x4_t narrow_hi = vrshrn_n_s32(mul_hi, 15); -+ -+ // Join together -+ return vreinterpretq_m128i_s16(vcombine_s16(narrow_lo, narrow_hi)); -+} -+ -+// Multiply packed signed 16-bit integers in a and b, producing intermediate -+// signed 32-bit integers. Truncate each intermediate integer to the 18 most -+// significant bits, round by adding 1, and store bits [16:1] to dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_pi16 -+FORCE_INLINE __m64 _mm_mulhrs_pi16(__m64 a, __m64 b) -+{ -+ int32x4_t mul_extend = -+ vmull_s16((vreinterpret_s16_m64(a)), (vreinterpret_s16_m64(b))); -+ -+ // Rounding narrowing shift right -+ return vreinterpret_m64_s16(vrshrn_n_s32(mul_extend, 15)); -+} -+ -+// Shuffle packed 8-bit integers in a according to shuffle control mask in the -+// corresponding 8-bit element of b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_epi8 -+FORCE_INLINE __m128i _mm_shuffle_epi8(__m128i a, __m128i b) -+{ -+ int8x16_t tbl = vreinterpretq_s8_m128i(a); // input a -+ uint8x16_t idx = vreinterpretq_u8_m128i(b); // input b -+ uint8x16_t idx_masked = -+ vandq_u8(idx, vdupq_n_u8(0x8F)); // avoid using meaningless bits -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_s8(vqtbl1q_s8(tbl, idx_masked)); -+#elif defined(__GNUC__) -+ int8x16_t ret; -+ // %e and %f represent the even and odd D registers -+ // respectively. -+ __asm__ __volatile__( -+ "vtbl.8 %e[ret], {%e[tbl], %f[tbl]}, %e[idx]\n" -+ "vtbl.8 %f[ret], {%e[tbl], %f[tbl]}, %f[idx]\n" -+ : [ret] "=&w"(ret) -+ : [tbl] "w"(tbl), [idx] "w"(idx_masked)); -+ return vreinterpretq_m128i_s8(ret); -+#else -+ // use this line if testing on aarch64 -+ int8x8x2_t a_split = {vget_low_s8(tbl), vget_high_s8(tbl)}; -+ return vreinterpretq_m128i_s8( -+ vcombine_s8(vtbl2_s8(a_split, vget_low_u8(idx_masked)), -+ vtbl2_s8(a_split, vget_high_u8(idx_masked)))); -+#endif -+} -+ -+// Shuffle packed 8-bit integers in a according to shuffle control mask in the -+// corresponding 8-bit element of b, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_shuffle_pi8 -+FORCE_INLINE __m64 _mm_shuffle_pi8(__m64 a, __m64 b) -+{ -+ const int8x8_t controlMask = -+ vand_s8(vreinterpret_s8_m64(b), vdup_n_s8((int8_t) (0x1 << 7 | 0x07))); -+ int8x8_t res = vtbl1_s8(vreinterpret_s8_m64(a), controlMask); -+ return vreinterpret_m64_s8(res); -+} -+ -+// Negate packed 16-bit integers in a when the corresponding signed -+// 16-bit integer in b is negative, and store the results in dst. -+// Element in dst are zeroed out when the corresponding element -+// in b is zero. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi16 -+FORCE_INLINE __m128i _mm_sign_epi16(__m128i _a, __m128i _b) -+{ -+ int16x8_t a = vreinterpretq_s16_m128i(_a); -+ int16x8_t b = vreinterpretq_s16_m128i(_b); -+ -+ // signed shift right: faster than vclt -+ // (b < 0) ? 0xFFFF : 0 -+ uint16x8_t ltMask = vreinterpretq_u16_s16(vshrq_n_s16(b, 15)); -+ // (b == 0) ? 0xFFFF : 0 -+#if defined(__aarch64__) || defined(_M_ARM64) -+ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqzq_s16(b)); -+#else -+ int16x8_t zeroMask = vreinterpretq_s16_u16(vceqq_s16(b, vdupq_n_s16(0))); -+#endif -+ -+ // bitwise select either a or negative 'a' (vnegq_s16(a) equals to negative -+ // 'a') based on ltMask -+ int16x8_t masked = vbslq_s16(ltMask, vnegq_s16(a), a); -+ // res = masked & (~zeroMask) -+ int16x8_t res = vbicq_s16(masked, zeroMask); -+ return vreinterpretq_m128i_s16(res); -+} -+ -+// Negate packed 32-bit integers in a when the corresponding signed -+// 32-bit integer in b is negative, and store the results in dst. -+// Element in dst are zeroed out when the corresponding element -+// in b is zero. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi32 -+FORCE_INLINE __m128i _mm_sign_epi32(__m128i _a, __m128i _b) -+{ -+ int32x4_t a = vreinterpretq_s32_m128i(_a); -+ int32x4_t b = vreinterpretq_s32_m128i(_b); -+ -+ // signed shift right: faster than vclt -+ // (b < 0) ? 0xFFFFFFFF : 0 -+ uint32x4_t ltMask = vreinterpretq_u32_s32(vshrq_n_s32(b, 31)); -+ -+ // (b == 0) ? 0xFFFFFFFF : 0 -+#if defined(__aarch64__) || defined(_M_ARM64) -+ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqzq_s32(b)); -+#else -+ int32x4_t zeroMask = vreinterpretq_s32_u32(vceqq_s32(b, vdupq_n_s32(0))); -+#endif -+ -+ // bitwise select either a or negative 'a' (vnegq_s32(a) equals to negative -+ // 'a') based on ltMask -+ int32x4_t masked = vbslq_s32(ltMask, vnegq_s32(a), a); -+ // res = masked & (~zeroMask) -+ int32x4_t res = vbicq_s32(masked, zeroMask); -+ return vreinterpretq_m128i_s32(res); -+} -+ -+// Negate packed 8-bit integers in a when the corresponding signed -+// 8-bit integer in b is negative, and store the results in dst. -+// Element in dst are zeroed out when the corresponding element -+// in b is zero. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_epi8 -+FORCE_INLINE __m128i _mm_sign_epi8(__m128i _a, __m128i _b) -+{ -+ int8x16_t a = vreinterpretq_s8_m128i(_a); -+ int8x16_t b = vreinterpretq_s8_m128i(_b); -+ -+ // signed shift right: faster than vclt -+ // (b < 0) ? 0xFF : 0 -+ uint8x16_t ltMask = vreinterpretq_u8_s8(vshrq_n_s8(b, 7)); -+ -+ // (b == 0) ? 0xFF : 0 -+#if defined(__aarch64__) || defined(_M_ARM64) -+ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqzq_s8(b)); -+#else -+ int8x16_t zeroMask = vreinterpretq_s8_u8(vceqq_s8(b, vdupq_n_s8(0))); -+#endif -+ -+ // bitwise select either a or negative 'a' (vnegq_s8(a) return negative 'a') -+ // based on ltMask -+ int8x16_t masked = vbslq_s8(ltMask, vnegq_s8(a), a); -+ // res = masked & (~zeroMask) -+ int8x16_t res = vbicq_s8(masked, zeroMask); -+ -+ return vreinterpretq_m128i_s8(res); -+} -+ -+// Negate packed 16-bit integers in a when the corresponding signed 16-bit -+// integer in b is negative, and store the results in dst. Element in dst are -+// zeroed out when the corresponding element in b is zero. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi16 -+FORCE_INLINE __m64 _mm_sign_pi16(__m64 _a, __m64 _b) -+{ -+ int16x4_t a = vreinterpret_s16_m64(_a); -+ int16x4_t b = vreinterpret_s16_m64(_b); -+ -+ // signed shift right: faster than vclt -+ // (b < 0) ? 0xFFFF : 0 -+ uint16x4_t ltMask = vreinterpret_u16_s16(vshr_n_s16(b, 15)); -+ -+ // (b == 0) ? 0xFFFF : 0 -+#if defined(__aarch64__) || defined(_M_ARM64) -+ int16x4_t zeroMask = vreinterpret_s16_u16(vceqz_s16(b)); -+#else -+ int16x4_t zeroMask = vreinterpret_s16_u16(vceq_s16(b, vdup_n_s16(0))); -+#endif -+ -+ // bitwise select either a or negative 'a' (vneg_s16(a) return negative 'a') -+ // based on ltMask -+ int16x4_t masked = vbsl_s16(ltMask, vneg_s16(a), a); -+ // res = masked & (~zeroMask) -+ int16x4_t res = vbic_s16(masked, zeroMask); -+ -+ return vreinterpret_m64_s16(res); -+} -+ -+// Negate packed 32-bit integers in a when the corresponding signed 32-bit -+// integer in b is negative, and store the results in dst. Element in dst are -+// zeroed out when the corresponding element in b is zero. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi32 -+FORCE_INLINE __m64 _mm_sign_pi32(__m64 _a, __m64 _b) -+{ -+ int32x2_t a = vreinterpret_s32_m64(_a); -+ int32x2_t b = vreinterpret_s32_m64(_b); -+ -+ // signed shift right: faster than vclt -+ // (b < 0) ? 0xFFFFFFFF : 0 -+ uint32x2_t ltMask = vreinterpret_u32_s32(vshr_n_s32(b, 31)); -+ -+ // (b == 0) ? 0xFFFFFFFF : 0 -+#if defined(__aarch64__) || defined(_M_ARM64) -+ int32x2_t zeroMask = vreinterpret_s32_u32(vceqz_s32(b)); -+#else -+ int32x2_t zeroMask = vreinterpret_s32_u32(vceq_s32(b, vdup_n_s32(0))); -+#endif -+ -+ // bitwise select either a or negative 'a' (vneg_s32(a) return negative 'a') -+ // based on ltMask -+ int32x2_t masked = vbsl_s32(ltMask, vneg_s32(a), a); -+ // res = masked & (~zeroMask) -+ int32x2_t res = vbic_s32(masked, zeroMask); -+ -+ return vreinterpret_m64_s32(res); -+} -+ -+// Negate packed 8-bit integers in a when the corresponding signed 8-bit integer -+// in b is negative, and store the results in dst. Element in dst are zeroed out -+// when the corresponding element in b is zero. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_sign_pi8 -+FORCE_INLINE __m64 _mm_sign_pi8(__m64 _a, __m64 _b) -+{ -+ int8x8_t a = vreinterpret_s8_m64(_a); -+ int8x8_t b = vreinterpret_s8_m64(_b); -+ -+ // signed shift right: faster than vclt -+ // (b < 0) ? 0xFF : 0 -+ uint8x8_t ltMask = vreinterpret_u8_s8(vshr_n_s8(b, 7)); -+ -+ // (b == 0) ? 0xFF : 0 -+#if defined(__aarch64__) || defined(_M_ARM64) -+ int8x8_t zeroMask = vreinterpret_s8_u8(vceqz_s8(b)); -+#else -+ int8x8_t zeroMask = vreinterpret_s8_u8(vceq_s8(b, vdup_n_s8(0))); -+#endif -+ -+ // bitwise select either a or negative 'a' (vneg_s8(a) return negative 'a') -+ // based on ltMask -+ int8x8_t masked = vbsl_s8(ltMask, vneg_s8(a), a); -+ // res = masked & (~zeroMask) -+ int8x8_t res = vbic_s8(masked, zeroMask); -+ -+ return vreinterpret_m64_s8(res); -+} -+ -+/* SSE4.1 */ -+ -+// Blend packed 16-bit integers from a and b using control mask imm8, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_epi16 -+// FORCE_INLINE __m128i _mm_blend_epi16(__m128i a, __m128i b, -+// __constrange(0,255) int imm) -+#define _mm_blend_epi16(a, b, imm) \ -+ _sse2neon_define2( \ -+ __m128i, a, b, \ -+ const uint16_t _mask[8] = \ -+ _sse2neon_init(((imm) & (1 << 0)) ? (uint16_t) -1 : 0x0, \ -+ ((imm) & (1 << 1)) ? (uint16_t) -1 : 0x0, \ -+ ((imm) & (1 << 2)) ? (uint16_t) -1 : 0x0, \ -+ ((imm) & (1 << 3)) ? (uint16_t) -1 : 0x0, \ -+ ((imm) & (1 << 4)) ? (uint16_t) -1 : 0x0, \ -+ ((imm) & (1 << 5)) ? (uint16_t) -1 : 0x0, \ -+ ((imm) & (1 << 6)) ? (uint16_t) -1 : 0x0, \ -+ ((imm) & (1 << 7)) ? (uint16_t) -1 : 0x0); \ -+ uint16x8_t _mask_vec = vld1q_u16(_mask); \ -+ uint16x8_t __a = vreinterpretq_u16_m128i(_a); \ -+ uint16x8_t __b = vreinterpretq_u16_m128i(_b); _sse2neon_return( \ -+ vreinterpretq_m128i_u16(vbslq_u16(_mask_vec, __b, __a)));) -+ -+// Blend packed double-precision (64-bit) floating-point elements from a and b -+// using control mask imm8, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_pd -+#define _mm_blend_pd(a, b, imm) \ -+ _sse2neon_define2( \ -+ __m128d, a, b, \ -+ const uint64_t _mask[2] = \ -+ _sse2neon_init(((imm) & (1 << 0)) ? ~UINT64_C(0) : UINT64_C(0), \ -+ ((imm) & (1 << 1)) ? ~UINT64_C(0) : UINT64_C(0)); \ -+ uint64x2_t _mask_vec = vld1q_u64(_mask); \ -+ uint64x2_t __a = vreinterpretq_u64_m128d(_a); \ -+ uint64x2_t __b = vreinterpretq_u64_m128d(_b); _sse2neon_return( \ -+ vreinterpretq_m128d_u64(vbslq_u64(_mask_vec, __b, __a)));) -+ -+// Blend packed single-precision (32-bit) floating-point elements from a and b -+// using mask, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blend_ps -+FORCE_INLINE __m128 _mm_blend_ps(__m128 _a, __m128 _b, const char imm8) -+{ -+ const uint32_t ALIGN_STRUCT(16) -+ data[4] = {((imm8) & (1 << 0)) ? UINT32_MAX : 0, -+ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, -+ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, -+ ((imm8) & (1 << 3)) ? UINT32_MAX : 0}; -+ uint32x4_t mask = vld1q_u32(data); -+ float32x4_t a = vreinterpretq_f32_m128(_a); -+ float32x4_t b = vreinterpretq_f32_m128(_b); -+ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); -+} -+ -+// Blend packed 8-bit integers from a and b using mask, and store the results in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_epi8 -+FORCE_INLINE __m128i _mm_blendv_epi8(__m128i _a, __m128i _b, __m128i _mask) -+{ -+ // Use a signed shift right to create a mask with the sign bit -+ uint8x16_t mask = -+ vreinterpretq_u8_s8(vshrq_n_s8(vreinterpretq_s8_m128i(_mask), 7)); -+ uint8x16_t a = vreinterpretq_u8_m128i(_a); -+ uint8x16_t b = vreinterpretq_u8_m128i(_b); -+ return vreinterpretq_m128i_u8(vbslq_u8(mask, b, a)); -+} -+ -+// Blend packed double-precision (64-bit) floating-point elements from a and b -+// using mask, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_pd -+FORCE_INLINE __m128d _mm_blendv_pd(__m128d _a, __m128d _b, __m128d _mask) -+{ -+ uint64x2_t mask = -+ vreinterpretq_u64_s64(vshrq_n_s64(vreinterpretq_s64_m128d(_mask), 63)); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ float64x2_t a = vreinterpretq_f64_m128d(_a); -+ float64x2_t b = vreinterpretq_f64_m128d(_b); -+ return vreinterpretq_m128d_f64(vbslq_f64(mask, b, a)); -+#else -+ uint64x2_t a = vreinterpretq_u64_m128d(_a); -+ uint64x2_t b = vreinterpretq_u64_m128d(_b); -+ return vreinterpretq_m128d_u64(vbslq_u64(mask, b, a)); -+#endif -+} -+ -+// Blend packed single-precision (32-bit) floating-point elements from a and b -+// using mask, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_blendv_ps -+FORCE_INLINE __m128 _mm_blendv_ps(__m128 _a, __m128 _b, __m128 _mask) -+{ -+ // Use a signed shift right to create a mask with the sign bit -+ uint32x4_t mask = -+ vreinterpretq_u32_s32(vshrq_n_s32(vreinterpretq_s32_m128(_mask), 31)); -+ float32x4_t a = vreinterpretq_f32_m128(_a); -+ float32x4_t b = vreinterpretq_f32_m128(_b); -+ return vreinterpretq_m128_f32(vbslq_f32(mask, b, a)); -+} -+ -+// Round the packed double-precision (64-bit) floating-point elements in a up -+// to an integer value, and store the results as packed double-precision -+// floating-point elements in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_pd -+FORCE_INLINE __m128d _mm_ceil_pd(__m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64(vrndpq_f64(vreinterpretq_f64_m128d(a))); -+#else -+ double *f = (double *) &a; -+ return _mm_set_pd(ceil(f[1]), ceil(f[0])); -+#endif -+} -+ -+// Round the packed single-precision (32-bit) floating-point elements in a up to -+// an integer value, and store the results as packed single-precision -+// floating-point elements in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ps -+FORCE_INLINE __m128 _mm_ceil_ps(__m128 a) -+{ -+#if (defined(__aarch64__) || defined(_M_ARM64)) || \ -+ defined(__ARM_FEATURE_DIRECTED_ROUNDING) -+ return vreinterpretq_m128_f32(vrndpq_f32(vreinterpretq_f32_m128(a))); -+#else -+ float *f = (float *) &a; -+ return _mm_set_ps(ceilf(f[3]), ceilf(f[2]), ceilf(f[1]), ceilf(f[0])); -+#endif -+} -+ -+// Round the lower double-precision (64-bit) floating-point element in b up to -+// an integer value, store the result as a double-precision floating-point -+// element in the lower element of dst, and copy the upper element from a to the -+// upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_sd -+FORCE_INLINE __m128d _mm_ceil_sd(__m128d a, __m128d b) -+{ -+ return _mm_move_sd(a, _mm_ceil_pd(b)); -+} -+ -+// Round the lower single-precision (32-bit) floating-point element in b up to -+// an integer value, store the result as a single-precision floating-point -+// element in the lower element of dst, and copy the upper 3 packed elements -+// from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_ceil_ss -+FORCE_INLINE __m128 _mm_ceil_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_ceil_ps(b)); -+} -+ -+// Compare packed 64-bit integers in a and b for equality, and store the results -+// in dst -+FORCE_INLINE __m128i _mm_cmpeq_epi64(__m128i a, __m128i b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_u64( -+ vceqq_u64(vreinterpretq_u64_m128i(a), vreinterpretq_u64_m128i(b))); -+#else -+ // ARMv7 lacks vceqq_u64 -+ // (a == b) -> (a_lo == b_lo) && (a_hi == b_hi) -+ uint32x4_t cmp = -+ vceqq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b)); -+ uint32x4_t swapped = vrev64q_u32(cmp); -+ return vreinterpretq_m128i_u32(vandq_u32(cmp, swapped)); -+#endif -+} -+ -+// Sign extend packed 16-bit integers in a to packed 32-bit integers, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi32 -+FORCE_INLINE __m128i _mm_cvtepi16_epi32(__m128i a) -+{ -+ return vreinterpretq_m128i_s32( -+ vmovl_s16(vget_low_s16(vreinterpretq_s16_m128i(a)))); -+} -+ -+// Sign extend packed 16-bit integers in a to packed 64-bit integers, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi16_epi64 -+FORCE_INLINE __m128i _mm_cvtepi16_epi64(__m128i a) -+{ -+ int16x8_t s16x8 = vreinterpretq_s16_m128i(a); /* xxxx xxxx xxxx 0B0A */ -+ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ -+ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ -+ return vreinterpretq_m128i_s64(s64x2); -+} -+ -+// Sign extend packed 32-bit integers in a to packed 64-bit integers, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi32_epi64 -+FORCE_INLINE __m128i _mm_cvtepi32_epi64(__m128i a) -+{ -+ return vreinterpretq_m128i_s64( -+ vmovl_s32(vget_low_s32(vreinterpretq_s32_m128i(a)))); -+} -+ -+// Sign extend packed 8-bit integers in a to packed 16-bit integers, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi16 -+FORCE_INLINE __m128i _mm_cvtepi8_epi16(__m128i a) -+{ -+ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ -+ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ -+ return vreinterpretq_m128i_s16(s16x8); -+} -+ -+// Sign extend packed 8-bit integers in a to packed 32-bit integers, and store -+// the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi32 -+FORCE_INLINE __m128i _mm_cvtepi8_epi32(__m128i a) -+{ -+ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx DCBA */ -+ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0D0C 0B0A */ -+ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000D 000C 000B 000A */ -+ return vreinterpretq_m128i_s32(s32x4); -+} -+ -+// Sign extend packed 8-bit integers in the low 8 bytes of a to packed 64-bit -+// integers, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepi8_epi64 -+FORCE_INLINE __m128i _mm_cvtepi8_epi64(__m128i a) -+{ -+ int8x16_t s8x16 = vreinterpretq_s8_m128i(a); /* xxxx xxxx xxxx xxBA */ -+ int16x8_t s16x8 = vmovl_s8(vget_low_s8(s8x16)); /* 0x0x 0x0x 0x0x 0B0A */ -+ int32x4_t s32x4 = vmovl_s16(vget_low_s16(s16x8)); /* 000x 000x 000B 000A */ -+ int64x2_t s64x2 = vmovl_s32(vget_low_s32(s32x4)); /* 0000 000B 0000 000A */ -+ return vreinterpretq_m128i_s64(s64x2); -+} -+ -+// Zero extend packed unsigned 16-bit integers in a to packed 32-bit integers, -+// and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi32 -+FORCE_INLINE __m128i _mm_cvtepu16_epi32(__m128i a) -+{ -+ return vreinterpretq_m128i_u32( -+ vmovl_u16(vget_low_u16(vreinterpretq_u16_m128i(a)))); -+} -+ -+// Zero extend packed unsigned 16-bit integers in a to packed 64-bit integers, -+// and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu16_epi64 -+FORCE_INLINE __m128i _mm_cvtepu16_epi64(__m128i a) -+{ -+ uint16x8_t u16x8 = vreinterpretq_u16_m128i(a); /* xxxx xxxx xxxx 0B0A */ -+ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ -+ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ -+ return vreinterpretq_m128i_u64(u64x2); -+} -+ -+// Zero extend packed unsigned 32-bit integers in a to packed 64-bit integers, -+// and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu32_epi64 -+FORCE_INLINE __m128i _mm_cvtepu32_epi64(__m128i a) -+{ -+ return vreinterpretq_m128i_u64( -+ vmovl_u32(vget_low_u32(vreinterpretq_u32_m128i(a)))); -+} -+ -+// Zero extend packed unsigned 8-bit integers in a to packed 16-bit integers, -+// and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi16 -+FORCE_INLINE __m128i _mm_cvtepu8_epi16(__m128i a) -+{ -+ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx HGFE DCBA */ -+ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0H0G 0F0E 0D0C 0B0A */ -+ return vreinterpretq_m128i_u16(u16x8); -+} -+ -+// Zero extend packed unsigned 8-bit integers in a to packed 32-bit integers, -+// and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi32 -+FORCE_INLINE __m128i _mm_cvtepu8_epi32(__m128i a) -+{ -+ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx DCBA */ -+ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0D0C 0B0A */ -+ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000D 000C 000B 000A */ -+ return vreinterpretq_m128i_u32(u32x4); -+} -+ -+// Zero extend packed unsigned 8-bit integers in the low 8 bytes of a to packed -+// 64-bit integers, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtepu8_epi64 -+FORCE_INLINE __m128i _mm_cvtepu8_epi64(__m128i a) -+{ -+ uint8x16_t u8x16 = vreinterpretq_u8_m128i(a); /* xxxx xxxx xxxx xxBA */ -+ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0x0x 0B0A */ -+ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000x 000x 000B 000A */ -+ uint64x2_t u64x2 = vmovl_u32(vget_low_u32(u32x4)); /* 0000 000B 0000 000A */ -+ return vreinterpretq_m128i_u64(u64x2); -+} -+ -+// Conditionally multiply the packed double-precision (64-bit) floating-point -+// elements in a and b using the high 4 bits in imm8, sum the four products, and -+// conditionally store the sum in dst using the low 4 bits of imm8. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_pd -+FORCE_INLINE __m128d _mm_dp_pd(__m128d a, __m128d b, const int imm) -+{ -+ // Generate mask value from constant immediate bit value -+ const int64_t bit0Mask = imm & 0x01 ? UINT64_MAX : 0; -+ const int64_t bit1Mask = imm & 0x02 ? UINT64_MAX : 0; -+#if !SSE2NEON_PRECISE_DP -+ const int64_t bit4Mask = imm & 0x10 ? UINT64_MAX : 0; -+ const int64_t bit5Mask = imm & 0x20 ? UINT64_MAX : 0; -+#endif -+ // Conditional multiplication -+#if !SSE2NEON_PRECISE_DP -+ __m128d mul = _mm_mul_pd(a, b); -+ const __m128d mulMask = -+ _mm_castsi128_pd(_mm_set_epi64x(bit5Mask, bit4Mask)); -+ __m128d tmp = _mm_and_pd(mul, mulMask); -+#else -+#if defined(__aarch64__) || defined(_M_ARM64) -+ double d0 = (imm & 0x10) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 0) * -+ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 0) -+ : 0; -+ double d1 = (imm & 0x20) ? vgetq_lane_f64(vreinterpretq_f64_m128d(a), 1) * -+ vgetq_lane_f64(vreinterpretq_f64_m128d(b), 1) -+ : 0; -+#else -+ double d0 = (imm & 0x10) ? ((double *) &a)[0] * ((double *) &b)[0] : 0; -+ double d1 = (imm & 0x20) ? ((double *) &a)[1] * ((double *) &b)[1] : 0; -+#endif -+ __m128d tmp = _mm_set_pd(d1, d0); -+#endif -+ // Sum the products -+#if defined(__aarch64__) || defined(_M_ARM64) -+ double sum = vpaddd_f64(vreinterpretq_f64_m128d(tmp)); -+#else -+ double sum = *((double *) &tmp) + *(((double *) &tmp) + 1); -+#endif -+ // Conditionally store the sum -+ const __m128d sumMask = -+ _mm_castsi128_pd(_mm_set_epi64x(bit1Mask, bit0Mask)); -+ __m128d res = _mm_and_pd(_mm_set_pd1(sum), sumMask); -+ return res; -+} -+ -+// Conditionally multiply the packed single-precision (32-bit) floating-point -+// elements in a and b using the high 4 bits in imm8, sum the four products, -+// and conditionally store the sum in dst using the low 4 bits of imm. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_dp_ps -+FORCE_INLINE __m128 _mm_dp_ps(__m128 a, __m128 b, const int imm) -+{ -+ float32x4_t elementwise_prod = _mm_mul_ps(a, b); -+ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ /* shortcuts */ -+ if (imm == 0xFF) { -+ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); -+ } -+ -+ if ((imm & 0x0F) == 0x0F) { -+ if (!(imm & (1 << 4))) -+ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 0); -+ if (!(imm & (1 << 5))) -+ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 1); -+ if (!(imm & (1 << 6))) -+ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 2); -+ if (!(imm & (1 << 7))) -+ elementwise_prod = vsetq_lane_f32(0.0f, elementwise_prod, 3); -+ -+ return _mm_set1_ps(vaddvq_f32(elementwise_prod)); -+ } -+#endif -+ -+ float s = 0.0f; -+ -+ if (imm & (1 << 4)) -+ s += vgetq_lane_f32(elementwise_prod, 0); -+ if (imm & (1 << 5)) -+ s += vgetq_lane_f32(elementwise_prod, 1); -+ if (imm & (1 << 6)) -+ s += vgetq_lane_f32(elementwise_prod, 2); -+ if (imm & (1 << 7)) -+ s += vgetq_lane_f32(elementwise_prod, 3); -+ -+ const float32_t res[4] = { -+ (imm & 0x1) ? s : 0.0f, -+ (imm & 0x2) ? s : 0.0f, -+ (imm & 0x4) ? s : 0.0f, -+ (imm & 0x8) ? s : 0.0f, -+ }; -+ return vreinterpretq_m128_f32(vld1q_f32(res)); -+} -+ -+// Extract a 32-bit integer from a, selected with imm8, and store the result in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi32 -+// FORCE_INLINE int _mm_extract_epi32(__m128i a, __constrange(0,4) int imm) -+#define _mm_extract_epi32(a, imm) \ -+ vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)) -+ -+// Extract a 64-bit integer from a, selected with imm8, and store the result in -+// dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi64 -+// FORCE_INLINE __int64 _mm_extract_epi64(__m128i a, __constrange(0,2) int imm) -+#define _mm_extract_epi64(a, imm) \ -+ vgetq_lane_s64(vreinterpretq_s64_m128i(a), (imm)) -+ -+// Extract an 8-bit integer from a, selected with imm8, and store the result in -+// the lower element of dst. FORCE_INLINE int _mm_extract_epi8(__m128i a, -+// __constrange(0,16) int imm) -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_extract_epi8 -+#define _mm_extract_epi8(a, imm) vgetq_lane_u8(vreinterpretq_u8_m128i(a), (imm)) -+ -+// Extracts the selected single-precision (32-bit) floating-point from a. -+// FORCE_INLINE int _mm_extract_ps(__m128 a, __constrange(0,4) int imm) -+#define _mm_extract_ps(a, imm) vgetq_lane_s32(vreinterpretq_s32_m128(a), (imm)) -+ -+// Round the packed double-precision (64-bit) floating-point elements in a down -+// to an integer value, and store the results as packed double-precision -+// floating-point elements in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_pd -+FORCE_INLINE __m128d _mm_floor_pd(__m128d a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128d_f64(vrndmq_f64(vreinterpretq_f64_m128d(a))); -+#else -+ double *f = (double *) &a; -+ return _mm_set_pd(floor(f[1]), floor(f[0])); -+#endif -+} -+ -+// Round the packed single-precision (32-bit) floating-point elements in a down -+// to an integer value, and store the results as packed single-precision -+// floating-point elements in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ps -+FORCE_INLINE __m128 _mm_floor_ps(__m128 a) -+{ -+#if (defined(__aarch64__) || defined(_M_ARM64)) || \ -+ defined(__ARM_FEATURE_DIRECTED_ROUNDING) -+ return vreinterpretq_m128_f32(vrndmq_f32(vreinterpretq_f32_m128(a))); -+#else -+ float *f = (float *) &a; -+ return _mm_set_ps(floorf(f[3]), floorf(f[2]), floorf(f[1]), floorf(f[0])); -+#endif -+} -+ -+// Round the lower double-precision (64-bit) floating-point element in b down to -+// an integer value, store the result as a double-precision floating-point -+// element in the lower element of dst, and copy the upper element from a to the -+// upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_sd -+FORCE_INLINE __m128d _mm_floor_sd(__m128d a, __m128d b) -+{ -+ return _mm_move_sd(a, _mm_floor_pd(b)); -+} -+ -+// Round the lower single-precision (32-bit) floating-point element in b down to -+// an integer value, store the result as a single-precision floating-point -+// element in the lower element of dst, and copy the upper 3 packed elements -+// from a to the upper elements of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_floor_ss -+FORCE_INLINE __m128 _mm_floor_ss(__m128 a, __m128 b) -+{ -+ return _mm_move_ss(a, _mm_floor_ps(b)); -+} -+ -+// Copy a to dst, and insert the 32-bit integer i into dst at the location -+// specified by imm8. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi32 -+// FORCE_INLINE __m128i _mm_insert_epi32(__m128i a, int b, -+// __constrange(0,4) int imm) -+#define _mm_insert_epi32(a, b, imm) \ -+ vreinterpretq_m128i_s32( \ -+ vsetq_lane_s32((b), vreinterpretq_s32_m128i(a), (imm))) -+ -+// Copy a to dst, and insert the 64-bit integer i into dst at the location -+// specified by imm8. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi64 -+// FORCE_INLINE __m128i _mm_insert_epi64(__m128i a, __int64 b, -+// __constrange(0,2) int imm) -+#define _mm_insert_epi64(a, b, imm) \ -+ vreinterpretq_m128i_s64( \ -+ vsetq_lane_s64((b), vreinterpretq_s64_m128i(a), (imm))) -+ -+// Copy a to dst, and insert the lower 8-bit integer from i into dst at the -+// location specified by imm8. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi8 -+// FORCE_INLINE __m128i _mm_insert_epi8(__m128i a, int b, -+// __constrange(0,16) int imm) -+#define _mm_insert_epi8(a, b, imm) \ -+ vreinterpretq_m128i_s8(vsetq_lane_s8((b), vreinterpretq_s8_m128i(a), (imm))) -+ -+// Copy a to tmp, then insert a single-precision (32-bit) floating-point -+// element from b into tmp using the control in imm8. Store tmp to dst using -+// the mask in imm8 (elements are zeroed out when the corresponding bit is set). -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=insert_ps -+#define _mm_insert_ps(a, b, imm8) \ -+ _sse2neon_define2( \ -+ __m128, a, b, \ -+ float32x4_t tmp1 = \ -+ vsetq_lane_f32(vgetq_lane_f32(_b, (imm8 >> 6) & 0x3), \ -+ vreinterpretq_f32_m128(_a), 0); \ -+ float32x4_t tmp2 = \ -+ vsetq_lane_f32(vgetq_lane_f32(tmp1, 0), \ -+ vreinterpretq_f32_m128(_a), ((imm8 >> 4) & 0x3)); \ -+ const uint32_t data[4] = \ -+ _sse2neon_init(((imm8) & (1 << 0)) ? UINT32_MAX : 0, \ -+ ((imm8) & (1 << 1)) ? UINT32_MAX : 0, \ -+ ((imm8) & (1 << 2)) ? UINT32_MAX : 0, \ -+ ((imm8) & (1 << 3)) ? UINT32_MAX : 0); \ -+ uint32x4_t mask = vld1q_u32(data); \ -+ float32x4_t all_zeros = vdupq_n_f32(0); \ -+ \ -+ _sse2neon_return(vreinterpretq_m128_f32( \ -+ vbslq_f32(mask, all_zeros, vreinterpretq_f32_m128(tmp2))));) -+ -+// Compare packed signed 32-bit integers in a and b, and store packed maximum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi32 -+FORCE_INLINE __m128i _mm_max_epi32(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s32( -+ vmaxq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); -+} -+ -+// Compare packed signed 8-bit integers in a and b, and store packed maximum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epi8 -+FORCE_INLINE __m128i _mm_max_epi8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s8( -+ vmaxq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); -+} -+ -+// Compare packed unsigned 16-bit integers in a and b, and store packed maximum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu16 -+FORCE_INLINE __m128i _mm_max_epu16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u16( -+ vmaxq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); -+} -+ -+// Compare packed unsigned 32-bit integers in a and b, and store packed maximum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 -+FORCE_INLINE __m128i _mm_max_epu32(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u32( -+ vmaxq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); -+} -+ -+// Compare packed signed 32-bit integers in a and b, and store packed minimum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi32 -+FORCE_INLINE __m128i _mm_min_epi32(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s32( -+ vminq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); -+} -+ -+// Compare packed signed 8-bit integers in a and b, and store packed minimum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epi8 -+FORCE_INLINE __m128i _mm_min_epi8(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s8( -+ vminq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b))); -+} -+ -+// Compare packed unsigned 16-bit integers in a and b, and store packed minimum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_min_epu16 -+FORCE_INLINE __m128i _mm_min_epu16(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u16( -+ vminq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b))); -+} -+ -+// Compare packed unsigned 32-bit integers in a and b, and store packed minimum -+// values in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_max_epu32 -+FORCE_INLINE __m128i _mm_min_epu32(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u32( -+ vminq_u32(vreinterpretq_u32_m128i(a), vreinterpretq_u32_m128i(b))); -+} -+ -+// Horizontally compute the minimum amongst the packed unsigned 16-bit integers -+// in a, store the minimum and index in dst, and zero the remaining bits in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_minpos_epu16 -+FORCE_INLINE __m128i _mm_minpos_epu16(__m128i a) -+{ -+ __m128i dst; -+ uint16_t min, idx = 0; -+#if defined(__aarch64__) || defined(_M_ARM64) -+ // Find the minimum value -+ min = vminvq_u16(vreinterpretq_u16_m128i(a)); -+ -+ // Get the index of the minimum value -+ static const uint16_t idxv[] = {0, 1, 2, 3, 4, 5, 6, 7}; -+ uint16x8_t minv = vdupq_n_u16(min); -+ uint16x8_t cmeq = vceqq_u16(minv, vreinterpretq_u16_m128i(a)); -+ idx = vminvq_u16(vornq_u16(vld1q_u16(idxv), cmeq)); -+#else -+ // Find the minimum value -+ __m64 tmp; -+ tmp = vreinterpret_m64_u16( -+ vmin_u16(vget_low_u16(vreinterpretq_u16_m128i(a)), -+ vget_high_u16(vreinterpretq_u16_m128i(a)))); -+ tmp = vreinterpret_m64_u16( -+ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); -+ tmp = vreinterpret_m64_u16( -+ vpmin_u16(vreinterpret_u16_m64(tmp), vreinterpret_u16_m64(tmp))); -+ min = vget_lane_u16(vreinterpret_u16_m64(tmp), 0); -+ // Get the index of the minimum value -+ int i; -+ for (i = 0; i < 8; i++) { -+ if (min == vgetq_lane_u16(vreinterpretq_u16_m128i(a), 0)) { -+ idx = (uint16_t) i; -+ break; -+ } -+ a = _mm_srli_si128(a, 2); -+ } -+#endif -+ // Generate result -+ dst = _mm_setzero_si128(); -+ dst = vreinterpretq_m128i_u16( -+ vsetq_lane_u16(min, vreinterpretq_u16_m128i(dst), 0)); -+ dst = vreinterpretq_m128i_u16( -+ vsetq_lane_u16(idx, vreinterpretq_u16_m128i(dst), 1)); -+ return dst; -+} -+ -+// Compute the sum of absolute differences (SADs) of quadruplets of unsigned -+// 8-bit integers in a compared to those in b, and store the 16-bit results in -+// dst. Eight SADs are performed using one quadruplet from b and eight -+// quadruplets from a. One quadruplet is selected from b starting at on the -+// offset specified in imm8. Eight quadruplets are formed from sequential 8-bit -+// integers selected from a starting at the offset specified in imm8. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mpsadbw_epu8 -+FORCE_INLINE __m128i _mm_mpsadbw_epu8(__m128i a, __m128i b, const int imm) -+{ -+ uint8x16_t _a, _b; -+ -+ switch (imm & 0x4) { -+ case 0: -+ // do nothing -+ _a = vreinterpretq_u8_m128i(a); -+ break; -+ case 4: -+ _a = vreinterpretq_u8_u32(vextq_u32(vreinterpretq_u32_m128i(a), -+ vreinterpretq_u32_m128i(a), 1)); -+ break; -+ default: -+#if defined(__GNUC__) || defined(__clang__) -+ __builtin_unreachable(); -+#elif defined(_MSC_VER) -+ __assume(0); -+#endif -+ break; -+ } -+ -+ switch (imm & 0x3) { -+ case 0: -+ _b = vreinterpretq_u8_u32( -+ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 0))); -+ break; -+ case 1: -+ _b = vreinterpretq_u8_u32( -+ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 1))); -+ break; -+ case 2: -+ _b = vreinterpretq_u8_u32( -+ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 2))); -+ break; -+ case 3: -+ _b = vreinterpretq_u8_u32( -+ vdupq_n_u32(vgetq_lane_u32(vreinterpretq_u32_m128i(b), 3))); -+ break; -+ default: -+#if defined(__GNUC__) || defined(__clang__) -+ __builtin_unreachable(); -+#elif defined(_MSC_VER) -+ __assume(0); -+#endif -+ break; -+ } -+ -+ int16x8_t c04, c15, c26, c37; -+ uint8x8_t low_b = vget_low_u8(_b); -+ c04 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a), low_b)); -+ uint8x16_t _a_1 = vextq_u8(_a, _a, 1); -+ c15 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_1), low_b)); -+ uint8x16_t _a_2 = vextq_u8(_a, _a, 2); -+ c26 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_2), low_b)); -+ uint8x16_t _a_3 = vextq_u8(_a, _a, 3); -+ c37 = vreinterpretq_s16_u16(vabdl_u8(vget_low_u8(_a_3), low_b)); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ // |0|4|2|6| -+ c04 = vpaddq_s16(c04, c26); -+ // |1|5|3|7| -+ c15 = vpaddq_s16(c15, c37); -+ -+ int32x4_t trn1_c = -+ vtrn1q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); -+ int32x4_t trn2_c = -+ vtrn2q_s32(vreinterpretq_s32_s16(c04), vreinterpretq_s32_s16(c15)); -+ return vreinterpretq_m128i_s16(vpaddq_s16(vreinterpretq_s16_s32(trn1_c), -+ vreinterpretq_s16_s32(trn2_c))); -+#else -+ int16x4_t c01, c23, c45, c67; -+ c01 = vpadd_s16(vget_low_s16(c04), vget_low_s16(c15)); -+ c23 = vpadd_s16(vget_low_s16(c26), vget_low_s16(c37)); -+ c45 = vpadd_s16(vget_high_s16(c04), vget_high_s16(c15)); -+ c67 = vpadd_s16(vget_high_s16(c26), vget_high_s16(c37)); -+ -+ return vreinterpretq_m128i_s16( -+ vcombine_s16(vpadd_s16(c01, c23), vpadd_s16(c45, c67))); -+#endif -+} -+ -+// Multiply the low signed 32-bit integers from each packed 64-bit element in -+// a and b, and store the signed 64-bit results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mul_epi32 -+FORCE_INLINE __m128i _mm_mul_epi32(__m128i a, __m128i b) -+{ -+ // vmull_s32 upcasts instead of masking, so we downcast. -+ int32x2_t a_lo = vmovn_s64(vreinterpretq_s64_m128i(a)); -+ int32x2_t b_lo = vmovn_s64(vreinterpretq_s64_m128i(b)); -+ return vreinterpretq_m128i_s64(vmull_s32(a_lo, b_lo)); -+} -+ -+// Multiply the packed 32-bit integers in a and b, producing intermediate 64-bit -+// integers, and store the low 32 bits of the intermediate integers in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mullo_epi32 -+FORCE_INLINE __m128i _mm_mullo_epi32(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_s32( -+ vmulq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); -+} -+ -+// Convert packed signed 32-bit integers from a and b to packed 16-bit integers -+// using unsigned saturation, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_packus_epi32 -+FORCE_INLINE __m128i _mm_packus_epi32(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u16( -+ vcombine_u16(vqmovun_s32(vreinterpretq_s32_m128i(a)), -+ vqmovun_s32(vreinterpretq_s32_m128i(b)))); -+} -+ -+// Round the packed double-precision (64-bit) floating-point elements in a using -+// the rounding parameter, and store the results as packed double-precision -+// floating-point elements in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_pd -+FORCE_INLINE_OPTNONE __m128d _mm_round_pd(__m128d a, int rounding) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ switch (rounding) { -+ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): -+ return vreinterpretq_m128d_f64(vrndnq_f64(vreinterpretq_f64_m128d(a))); -+ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): -+ return _mm_floor_pd(a); -+ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): -+ return _mm_ceil_pd(a); -+ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): -+ return vreinterpretq_m128d_f64(vrndq_f64(vreinterpretq_f64_m128d(a))); -+ default: //_MM_FROUND_CUR_DIRECTION -+ return vreinterpretq_m128d_f64(vrndiq_f64(vreinterpretq_f64_m128d(a))); -+ } -+#else -+ double *v_double = (double *) &a; -+ -+ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || -+ (rounding == _MM_FROUND_CUR_DIRECTION && -+ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { -+ double res[2], tmp; -+ for (int i = 0; i < 2; i++) { -+ tmp = (v_double[i] < 0) ? -v_double[i] : v_double[i]; -+ double roundDown = floor(tmp); // Round down value -+ double roundUp = ceil(tmp); // Round up value -+ double diffDown = tmp - roundDown; -+ double diffUp = roundUp - tmp; -+ if (diffDown < diffUp) { -+ /* If it's closer to the round down value, then use it */ -+ res[i] = roundDown; -+ } else if (diffDown > diffUp) { -+ /* If it's closer to the round up value, then use it */ -+ res[i] = roundUp; -+ } else { -+ /* If it's equidistant between round up and round down value, -+ * pick the one which is an even number */ -+ double half = roundDown / 2; -+ if (half != floor(half)) { -+ /* If the round down value is odd, return the round up value -+ */ -+ res[i] = roundUp; -+ } else { -+ /* If the round up value is odd, return the round down value -+ */ -+ res[i] = roundDown; -+ } -+ } -+ res[i] = (v_double[i] < 0) ? -res[i] : res[i]; -+ } -+ return _mm_set_pd(res[1], res[0]); -+ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || -+ (rounding == _MM_FROUND_CUR_DIRECTION && -+ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { -+ return _mm_floor_pd(a); -+ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || -+ (rounding == _MM_FROUND_CUR_DIRECTION && -+ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { -+ return _mm_ceil_pd(a); -+ } -+ return _mm_set_pd(v_double[1] > 0 ? floor(v_double[1]) : ceil(v_double[1]), -+ v_double[0] > 0 ? floor(v_double[0]) : ceil(v_double[0])); -+#endif -+} -+ -+// Round the packed single-precision (32-bit) floating-point elements in a using -+// the rounding parameter, and store the results as packed single-precision -+// floating-point elements in dst. -+// software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_round_ps -+FORCE_INLINE_OPTNONE __m128 _mm_round_ps(__m128 a, int rounding) -+{ -+#if (defined(__aarch64__) || defined(_M_ARM64)) || \ -+ defined(__ARM_FEATURE_DIRECTED_ROUNDING) -+ switch (rounding) { -+ case (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC): -+ return vreinterpretq_m128_f32(vrndnq_f32(vreinterpretq_f32_m128(a))); -+ case (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC): -+ return _mm_floor_ps(a); -+ case (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC): -+ return _mm_ceil_ps(a); -+ case (_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC): -+ return vreinterpretq_m128_f32(vrndq_f32(vreinterpretq_f32_m128(a))); -+ default: //_MM_FROUND_CUR_DIRECTION -+ return vreinterpretq_m128_f32(vrndiq_f32(vreinterpretq_f32_m128(a))); -+ } -+#else -+ float *v_float = (float *) &a; -+ -+ if (rounding == (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC) || -+ (rounding == _MM_FROUND_CUR_DIRECTION && -+ _MM_GET_ROUNDING_MODE() == _MM_ROUND_NEAREST)) { -+ uint32x4_t signmask = vdupq_n_u32(0x80000000); -+ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), -+ vdupq_n_f32(0.5f)); /* +/- 0.5 */ -+ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32( -+ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ -+ int32x4_t r_trunc = vcvtq_s32_f32( -+ vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ -+ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32( -+ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ -+ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), -+ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ -+ float32x4_t delta = vsubq_f32( -+ vreinterpretq_f32_m128(a), -+ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ -+ uint32x4_t is_delta_half = -+ vceqq_f32(delta, half); /* delta == +/- 0.5 */ -+ return vreinterpretq_m128_f32( -+ vcvtq_f32_s32(vbslq_s32(is_delta_half, r_even, r_normal))); -+ } else if (rounding == (_MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC) || -+ (rounding == _MM_FROUND_CUR_DIRECTION && -+ _MM_GET_ROUNDING_MODE() == _MM_ROUND_DOWN)) { -+ return _mm_floor_ps(a); -+ } else if (rounding == (_MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC) || -+ (rounding == _MM_FROUND_CUR_DIRECTION && -+ _MM_GET_ROUNDING_MODE() == _MM_ROUND_UP)) { -+ return _mm_ceil_ps(a); -+ } -+ return _mm_set_ps(v_float[3] > 0 ? floorf(v_float[3]) : ceilf(v_float[3]), -+ v_float[2] > 0 ? floorf(v_float[2]) : ceilf(v_float[2]), -+ v_float[1] > 0 ? floorf(v_float[1]) : ceilf(v_float[1]), -+ v_float[0] > 0 ? floorf(v_float[0]) : ceilf(v_float[0])); -+#endif -+} -+ -+// Round the lower double-precision (64-bit) floating-point element in b using -+// the rounding parameter, store the result as a double-precision floating-point -+// element in the lower element of dst, and copy the upper element from a to the -+// upper element of dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_sd -+FORCE_INLINE __m128d _mm_round_sd(__m128d a, __m128d b, int rounding) -+{ -+ return _mm_move_sd(a, _mm_round_pd(b, rounding)); -+} -+ -+// Round the lower single-precision (32-bit) floating-point element in b using -+// the rounding parameter, store the result as a single-precision floating-point -+// element in the lower element of dst, and copy the upper 3 packed elements -+// from a to the upper elements of dst. Rounding is done according to the -+// rounding[3:0] parameter, which can be one of: -+// (_MM_FROUND_TO_NEAREST_INT |_MM_FROUND_NO_EXC) // round to nearest, and -+// suppress exceptions -+// (_MM_FROUND_TO_NEG_INF |_MM_FROUND_NO_EXC) // round down, and -+// suppress exceptions -+// (_MM_FROUND_TO_POS_INF |_MM_FROUND_NO_EXC) // round up, and suppress -+// exceptions -+// (_MM_FROUND_TO_ZERO |_MM_FROUND_NO_EXC) // truncate, and suppress -+// exceptions _MM_FROUND_CUR_DIRECTION // use MXCSR.RC; see -+// _MM_SET_ROUNDING_MODE -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_round_ss -+FORCE_INLINE __m128 _mm_round_ss(__m128 a, __m128 b, int rounding) -+{ -+ return _mm_move_ss(a, _mm_round_ps(b, rounding)); -+} -+ -+// Load 128-bits of integer data from memory into dst using a non-temporal -+// memory hint. mem_addr must be aligned on a 16-byte boundary or a -+// general-protection exception may be generated. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_stream_load_si128 -+FORCE_INLINE __m128i _mm_stream_load_si128(__m128i *p) -+{ -+#if __has_builtin(__builtin_nontemporal_store) -+ return __builtin_nontemporal_load(p); -+#else -+ return vreinterpretq_m128i_s64(vld1q_s64((int64_t *) p)); -+#endif -+} -+ -+// Compute the bitwise NOT of a and then AND with a 128-bit vector containing -+// all 1's, and return 1 if the result is zero, otherwise return 0. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_ones -+FORCE_INLINE int _mm_test_all_ones(__m128i a) -+{ -+ return (uint64_t) (vgetq_lane_s64(a, 0) & vgetq_lane_s64(a, 1)) == -+ ~(uint64_t) 0; -+} -+ -+// Compute the bitwise AND of 128 bits (representing integer data) in a and -+// mask, and return 1 if the result is zero, otherwise return 0. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_test_all_zeros -+FORCE_INLINE int _mm_test_all_zeros(__m128i a, __m128i mask) -+{ -+ int64x2_t a_and_mask = -+ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(mask)); -+ return !(vgetq_lane_s64(a_and_mask, 0) | vgetq_lane_s64(a_and_mask, 1)); -+} -+ -+// Compute the bitwise AND of 128 bits (representing integer data) in a and -+// mask, and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute -+// the bitwise NOT of a and then AND with mask, and set CF to 1 if the result is -+// zero, otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, -+// otherwise return 0. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=mm_test_mix_ones_zero -+// Note: Argument names may be wrong in the Intel intrinsics guide. -+FORCE_INLINE int _mm_test_mix_ones_zeros(__m128i a, __m128i mask) -+{ -+ uint64x2_t v = vreinterpretq_u64_m128i(a); -+ uint64x2_t m = vreinterpretq_u64_m128i(mask); -+ -+ // find ones (set-bits) and zeros (clear-bits) under clip mask -+ uint64x2_t ones = vandq_u64(m, v); -+ uint64x2_t zeros = vbicq_u64(m, v); -+ -+ // If both 128-bit variables are populated (non-zero) then return 1. -+ // For comparison purposes, first compact each var down to 32-bits. -+ uint32x2_t reduced = vpmax_u32(vqmovn_u64(ones), vqmovn_u64(zeros)); -+ -+ // if folding minimum is non-zero then both vars must be non-zero -+ return (vget_lane_u32(vpmin_u32(reduced, reduced), 0) != 0); -+} -+ -+// Compute the bitwise AND of 128 bits (representing integer data) in a and b, -+// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the -+// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, -+// otherwise set CF to 0. Return the CF value. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testc_si128 -+FORCE_INLINE int _mm_testc_si128(__m128i a, __m128i b) -+{ -+ int64x2_t s64 = -+ vbicq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)); -+ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); -+} -+ -+// Compute the bitwise AND of 128 bits (representing integer data) in a and b, -+// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the -+// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, -+// otherwise set CF to 0. Return 1 if both the ZF and CF values are zero, -+// otherwise return 0. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testnzc_si128 -+#define _mm_testnzc_si128(a, b) _mm_test_mix_ones_zeros(a, b) -+ -+// Compute the bitwise AND of 128 bits (representing integer data) in a and b, -+// and set ZF to 1 if the result is zero, otherwise set ZF to 0. Compute the -+// bitwise NOT of a and then AND with b, and set CF to 1 if the result is zero, -+// otherwise set CF to 0. Return the ZF value. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_testz_si128 -+FORCE_INLINE int _mm_testz_si128(__m128i a, __m128i b) -+{ -+ int64x2_t s64 = -+ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b)); -+ return !(vgetq_lane_s64(s64, 0) | vgetq_lane_s64(s64, 1)); -+} -+ -+/* SSE4.2 */ -+ -+static const uint16_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask16b[8] = { -+ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, -+}; -+static const uint8_t ALIGN_STRUCT(16) _sse2neon_cmpestr_mask8b[16] = { -+ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, -+ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, -+}; -+ -+/* specify the source data format */ -+#define _SIDD_UBYTE_OPS 0x00 /* unsigned 8-bit characters */ -+#define _SIDD_UWORD_OPS 0x01 /* unsigned 16-bit characters */ -+#define _SIDD_SBYTE_OPS 0x02 /* signed 8-bit characters */ -+#define _SIDD_SWORD_OPS 0x03 /* signed 16-bit characters */ -+ -+/* specify the comparison operation */ -+#define _SIDD_CMP_EQUAL_ANY 0x00 /* compare equal any: strchr */ -+#define _SIDD_CMP_RANGES 0x04 /* compare ranges */ -+#define _SIDD_CMP_EQUAL_EACH 0x08 /* compare equal each: strcmp */ -+#define _SIDD_CMP_EQUAL_ORDERED 0x0C /* compare equal ordered */ -+ -+/* specify the polarity */ -+#define _SIDD_POSITIVE_POLARITY 0x00 -+#define _SIDD_MASKED_POSITIVE_POLARITY 0x20 -+#define _SIDD_NEGATIVE_POLARITY 0x10 /* negate results */ -+#define _SIDD_MASKED_NEGATIVE_POLARITY \ -+ 0x30 /* negate results only before end of string */ -+ -+/* specify the output selection in _mm_cmpXstri */ -+#define _SIDD_LEAST_SIGNIFICANT 0x00 -+#define _SIDD_MOST_SIGNIFICANT 0x40 -+ -+/* specify the output selection in _mm_cmpXstrm */ -+#define _SIDD_BIT_MASK 0x00 -+#define _SIDD_UNIT_MASK 0x40 -+ -+/* Pattern Matching for C macros. -+ * https://github.com/pfultz2/Cloak/wiki/C-Preprocessor-tricks,-tips,-and-idioms -+ */ -+ -+/* catenate */ -+#define SSE2NEON_PRIMITIVE_CAT(a, ...) a##__VA_ARGS__ -+#define SSE2NEON_CAT(a, b) SSE2NEON_PRIMITIVE_CAT(a, b) -+ -+#define SSE2NEON_IIF(c) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_IIF_, c) -+/* run the 2nd parameter */ -+#define SSE2NEON_IIF_0(t, ...) __VA_ARGS__ -+/* run the 1st parameter */ -+#define SSE2NEON_IIF_1(t, ...) t -+ -+#define SSE2NEON_COMPL(b) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_COMPL_, b) -+#define SSE2NEON_COMPL_0 1 -+#define SSE2NEON_COMPL_1 0 -+ -+#define SSE2NEON_DEC(x) SSE2NEON_PRIMITIVE_CAT(SSE2NEON_DEC_, x) -+#define SSE2NEON_DEC_1 0 -+#define SSE2NEON_DEC_2 1 -+#define SSE2NEON_DEC_3 2 -+#define SSE2NEON_DEC_4 3 -+#define SSE2NEON_DEC_5 4 -+#define SSE2NEON_DEC_6 5 -+#define SSE2NEON_DEC_7 6 -+#define SSE2NEON_DEC_8 7 -+#define SSE2NEON_DEC_9 8 -+#define SSE2NEON_DEC_10 9 -+#define SSE2NEON_DEC_11 10 -+#define SSE2NEON_DEC_12 11 -+#define SSE2NEON_DEC_13 12 -+#define SSE2NEON_DEC_14 13 -+#define SSE2NEON_DEC_15 14 -+#define SSE2NEON_DEC_16 15 -+ -+/* detection */ -+#define SSE2NEON_CHECK_N(x, n, ...) n -+#define SSE2NEON_CHECK(...) SSE2NEON_CHECK_N(__VA_ARGS__, 0, ) -+#define SSE2NEON_PROBE(x) x, 1, -+ -+#define SSE2NEON_NOT(x) SSE2NEON_CHECK(SSE2NEON_PRIMITIVE_CAT(SSE2NEON_NOT_, x)) -+#define SSE2NEON_NOT_0 SSE2NEON_PROBE(~) -+ -+#define SSE2NEON_BOOL(x) SSE2NEON_COMPL(SSE2NEON_NOT(x)) -+#define SSE2NEON_IF(c) SSE2NEON_IIF(SSE2NEON_BOOL(c)) -+ -+#define SSE2NEON_EAT(...) -+#define SSE2NEON_EXPAND(...) __VA_ARGS__ -+#define SSE2NEON_WHEN(c) SSE2NEON_IF(c)(SSE2NEON_EXPAND, SSE2NEON_EAT) -+ -+/* recursion */ -+/* deferred expression */ -+#define SSE2NEON_EMPTY() -+#define SSE2NEON_DEFER(id) id SSE2NEON_EMPTY() -+#define SSE2NEON_OBSTRUCT(...) __VA_ARGS__ SSE2NEON_DEFER(SSE2NEON_EMPTY)() -+#define SSE2NEON_EXPAND(...) __VA_ARGS__ -+ -+#define SSE2NEON_EVAL(...) \ -+ SSE2NEON_EVAL1(SSE2NEON_EVAL1(SSE2NEON_EVAL1(__VA_ARGS__))) -+#define SSE2NEON_EVAL1(...) \ -+ SSE2NEON_EVAL2(SSE2NEON_EVAL2(SSE2NEON_EVAL2(__VA_ARGS__))) -+#define SSE2NEON_EVAL2(...) \ -+ SSE2NEON_EVAL3(SSE2NEON_EVAL3(SSE2NEON_EVAL3(__VA_ARGS__))) -+#define SSE2NEON_EVAL3(...) __VA_ARGS__ -+ -+#define SSE2NEON_REPEAT(count, macro, ...) \ -+ SSE2NEON_WHEN(count) \ -+ (SSE2NEON_OBSTRUCT(SSE2NEON_REPEAT_INDIRECT)()( \ -+ SSE2NEON_DEC(count), macro, \ -+ __VA_ARGS__) SSE2NEON_OBSTRUCT(macro)(SSE2NEON_DEC(count), \ -+ __VA_ARGS__)) -+#define SSE2NEON_REPEAT_INDIRECT() SSE2NEON_REPEAT -+ -+#define SSE2NEON_SIZE_OF_byte 8 -+#define SSE2NEON_NUMBER_OF_LANES_byte 16 -+#define SSE2NEON_SIZE_OF_word 16 -+#define SSE2NEON_NUMBER_OF_LANES_word 8 -+ -+#define SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE(i, type) \ -+ mtx[i] = vreinterpretq_m128i_##type(vceqq_##type( \ -+ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)), \ -+ vreinterpretq_##type##_m128i(a))); -+ -+#define SSE2NEON_FILL_LANE(i, type) \ -+ vec_b[i] = \ -+ vdupq_n_##type(vgetq_lane_##type(vreinterpretq_##type##_m128i(b), i)); -+ -+#define PCMPSTR_RANGES(a, b, mtx, data_type_prefix, type_prefix, size, \ -+ number_of_lanes, byte_or_word) \ -+ do { \ -+ SSE2NEON_CAT( \ -+ data_type_prefix, \ -+ SSE2NEON_CAT(size, \ -+ SSE2NEON_CAT(x, SSE2NEON_CAT(number_of_lanes, _t)))) \ -+ vec_b[number_of_lanes]; \ -+ __m128i mask = SSE2NEON_IIF(byte_or_word)( \ -+ vreinterpretq_m128i_u16(vdupq_n_u16(0xff)), \ -+ vreinterpretq_m128i_u32(vdupq_n_u32(0xffff))); \ -+ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, SSE2NEON_FILL_LANE, \ -+ SSE2NEON_CAT(type_prefix, size))) \ -+ for (int i = 0; i < number_of_lanes; i++) { \ -+ mtx[i] = SSE2NEON_CAT(vreinterpretq_m128i_u, \ -+ size)(SSE2NEON_CAT(vbslq_u, size)( \ -+ SSE2NEON_CAT(vreinterpretq_u, \ -+ SSE2NEON_CAT(size, _m128i))(mask), \ -+ SSE2NEON_CAT(vcgeq_, SSE2NEON_CAT(type_prefix, size))( \ -+ vec_b[i], \ -+ SSE2NEON_CAT( \ -+ vreinterpretq_, \ -+ SSE2NEON_CAT(type_prefix, \ -+ SSE2NEON_CAT(size, _m128i(a))))), \ -+ SSE2NEON_CAT(vcleq_, SSE2NEON_CAT(type_prefix, size))( \ -+ vec_b[i], \ -+ SSE2NEON_CAT( \ -+ vreinterpretq_, \ -+ SSE2NEON_CAT(type_prefix, \ -+ SSE2NEON_CAT(size, _m128i(a))))))); \ -+ } \ -+ } while (0) -+ -+#define PCMPSTR_EQ(a, b, mtx, size, number_of_lanes) \ -+ do { \ -+ SSE2NEON_EVAL(SSE2NEON_REPEAT(number_of_lanes, \ -+ SSE2NEON_COMPARE_EQUAL_THEN_FILL_LANE, \ -+ SSE2NEON_CAT(u, size))) \ -+ } while (0) -+ -+#define SSE2NEON_CMP_EQUAL_ANY_IMPL(type) \ -+ static int _sse2neon_cmp_##type##_equal_any(__m128i a, int la, __m128i b, \ -+ int lb) \ -+ { \ -+ __m128i mtx[16]; \ -+ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ -+ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ -+ return SSE2NEON_CAT( \ -+ _sse2neon_aggregate_equal_any_, \ -+ SSE2NEON_CAT( \ -+ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ -+ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ -+ type))))(la, lb, mtx); \ -+ } -+ -+#define SSE2NEON_CMP_RANGES_IMPL(type, data_type, us, byte_or_word) \ -+ static int _sse2neon_cmp_##us##type##_ranges(__m128i a, int la, __m128i b, \ -+ int lb) \ -+ { \ -+ __m128i mtx[16]; \ -+ PCMPSTR_RANGES( \ -+ a, b, mtx, data_type, us, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ -+ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), byte_or_word); \ -+ return SSE2NEON_CAT( \ -+ _sse2neon_aggregate_ranges_, \ -+ SSE2NEON_CAT( \ -+ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ -+ SSE2NEON_CAT(x, SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, \ -+ type))))(la, lb, mtx); \ -+ } -+ -+#define SSE2NEON_CMP_EQUAL_ORDERED_IMPL(type) \ -+ static int _sse2neon_cmp_##type##_equal_ordered(__m128i a, int la, \ -+ __m128i b, int lb) \ -+ { \ -+ __m128i mtx[16]; \ -+ PCMPSTR_EQ(a, b, mtx, SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ -+ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type)); \ -+ return SSE2NEON_CAT( \ -+ _sse2neon_aggregate_equal_ordered_, \ -+ SSE2NEON_CAT( \ -+ SSE2NEON_CAT(SSE2NEON_SIZE_OF_, type), \ -+ SSE2NEON_CAT(x, \ -+ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type))))( \ -+ SSE2NEON_CAT(SSE2NEON_NUMBER_OF_LANES_, type), la, lb, mtx); \ -+ } -+ -+static int _sse2neon_aggregate_equal_any_8x16(int la, int lb, __m128i mtx[16]) -+{ -+ int res = 0; -+ int m = (1 << la) - 1; -+ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); -+ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); -+ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); -+ uint8x16_t vec = vcombine_u8(t_lo, t_hi); -+ for (int j = 0; j < lb; j++) { -+ mtx[j] = vreinterpretq_m128i_u8( -+ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); -+ mtx[j] = vreinterpretq_m128i_u8( -+ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); -+ int tmp = _sse2neon_vaddvq_u8(vreinterpretq_u8_m128i(mtx[j])) ? 1 : 0; -+ res |= (tmp << j); -+ } -+ return res; -+} -+ -+static int _sse2neon_aggregate_equal_any_16x8(int la, int lb, __m128i mtx[16]) -+{ -+ int res = 0; -+ int m = (1 << la) - 1; -+ uint16x8_t vec = -+ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); -+ for (int j = 0; j < lb; j++) { -+ mtx[j] = vreinterpretq_m128i_u16( -+ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); -+ mtx[j] = vreinterpretq_m128i_u16( -+ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); -+ int tmp = _sse2neon_vaddvq_u16(vreinterpretq_u16_m128i(mtx[j])) ? 1 : 0; -+ res |= (tmp << j); -+ } -+ return res; -+} -+ -+/* clang-format off */ -+#define SSE2NEON_GENERATE_CMP_EQUAL_ANY(prefix) \ -+ prefix##IMPL(byte) \ -+ prefix##IMPL(word) -+/* clang-format on */ -+ -+SSE2NEON_GENERATE_CMP_EQUAL_ANY(SSE2NEON_CMP_EQUAL_ANY_) -+ -+static int _sse2neon_aggregate_ranges_16x8(int la, int lb, __m128i mtx[16]) -+{ -+ int res = 0; -+ int m = (1 << la) - 1; -+ uint16x8_t vec = -+ vtstq_u16(vdupq_n_u16(m), vld1q_u16(_sse2neon_cmpestr_mask16b)); -+ for (int j = 0; j < lb; j++) { -+ mtx[j] = vreinterpretq_m128i_u16( -+ vandq_u16(vec, vreinterpretq_u16_m128i(mtx[j]))); -+ mtx[j] = vreinterpretq_m128i_u16( -+ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 15)); -+ __m128i tmp = vreinterpretq_m128i_u32( -+ vshrq_n_u32(vreinterpretq_u32_m128i(mtx[j]), 16)); -+ uint32x4_t vec_res = vandq_u32(vreinterpretq_u32_m128i(mtx[j]), -+ vreinterpretq_u32_m128i(tmp)); -+#if defined(__aarch64__) || defined(_M_ARM64) -+ int t = vaddvq_u32(vec_res) ? 1 : 0; -+#else -+ uint64x2_t sumh = vpaddlq_u32(vec_res); -+ int t = vgetq_lane_u64(sumh, 0) + vgetq_lane_u64(sumh, 1); -+#endif -+ res |= (t << j); -+ } -+ return res; -+} -+ -+static int _sse2neon_aggregate_ranges_8x16(int la, int lb, __m128i mtx[16]) -+{ -+ int res = 0; -+ int m = (1 << la) - 1; -+ uint8x8_t vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); -+ uint8x8_t t_lo = vtst_u8(vdup_n_u8(m & 0xff), vec_mask); -+ uint8x8_t t_hi = vtst_u8(vdup_n_u8(m >> 8), vec_mask); -+ uint8x16_t vec = vcombine_u8(t_lo, t_hi); -+ for (int j = 0; j < lb; j++) { -+ mtx[j] = vreinterpretq_m128i_u8( -+ vandq_u8(vec, vreinterpretq_u8_m128i(mtx[j]))); -+ mtx[j] = vreinterpretq_m128i_u8( -+ vshrq_n_u8(vreinterpretq_u8_m128i(mtx[j]), 7)); -+ __m128i tmp = vreinterpretq_m128i_u16( -+ vshrq_n_u16(vreinterpretq_u16_m128i(mtx[j]), 8)); -+ uint16x8_t vec_res = vandq_u16(vreinterpretq_u16_m128i(mtx[j]), -+ vreinterpretq_u16_m128i(tmp)); -+ int t = _sse2neon_vaddvq_u16(vec_res) ? 1 : 0; -+ res |= (t << j); -+ } -+ return res; -+} -+ -+#define SSE2NEON_CMP_RANGES_IS_BYTE 1 -+#define SSE2NEON_CMP_RANGES_IS_WORD 0 -+ -+/* clang-format off */ -+#define SSE2NEON_GENERATE_CMP_RANGES(prefix) \ -+ prefix##IMPL(byte, uint, u, prefix##IS_BYTE) \ -+ prefix##IMPL(byte, int, s, prefix##IS_BYTE) \ -+ prefix##IMPL(word, uint, u, prefix##IS_WORD) \ -+ prefix##IMPL(word, int, s, prefix##IS_WORD) -+/* clang-format on */ -+ -+SSE2NEON_GENERATE_CMP_RANGES(SSE2NEON_CMP_RANGES_) -+ -+#undef SSE2NEON_CMP_RANGES_IS_BYTE -+#undef SSE2NEON_CMP_RANGES_IS_WORD -+ -+static int _sse2neon_cmp_byte_equal_each(__m128i a, int la, __m128i b, int lb) -+{ -+ uint8x16_t mtx = -+ vceqq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b)); -+ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); -+ int m1 = 0x10000 - (1 << la); -+ int tb = 0x10000 - (1 << lb); -+ uint8x8_t vec_mask, vec0_lo, vec0_hi, vec1_lo, vec1_hi; -+ uint8x8_t tmp_lo, tmp_hi, res_lo, res_hi; -+ vec_mask = vld1_u8(_sse2neon_cmpestr_mask8b); -+ vec0_lo = vtst_u8(vdup_n_u8(m0), vec_mask); -+ vec0_hi = vtst_u8(vdup_n_u8(m0 >> 8), vec_mask); -+ vec1_lo = vtst_u8(vdup_n_u8(m1), vec_mask); -+ vec1_hi = vtst_u8(vdup_n_u8(m1 >> 8), vec_mask); -+ tmp_lo = vtst_u8(vdup_n_u8(tb), vec_mask); -+ tmp_hi = vtst_u8(vdup_n_u8(tb >> 8), vec_mask); -+ -+ res_lo = vbsl_u8(vec0_lo, vdup_n_u8(0), vget_low_u8(mtx)); -+ res_hi = vbsl_u8(vec0_hi, vdup_n_u8(0), vget_high_u8(mtx)); -+ res_lo = vbsl_u8(vec1_lo, tmp_lo, res_lo); -+ res_hi = vbsl_u8(vec1_hi, tmp_hi, res_hi); -+ res_lo = vand_u8(res_lo, vec_mask); -+ res_hi = vand_u8(res_hi, vec_mask); -+ -+ int res = _sse2neon_vaddv_u8(res_lo) + (_sse2neon_vaddv_u8(res_hi) << 8); -+ return res; -+} -+ -+static int _sse2neon_cmp_word_equal_each(__m128i a, int la, __m128i b, int lb) -+{ -+ uint16x8_t mtx = -+ vceqq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)); -+ int m0 = (la < lb) ? 0 : ((1 << la) - (1 << lb)); -+ int m1 = 0x100 - (1 << la); -+ int tb = 0x100 - (1 << lb); -+ uint16x8_t vec_mask = vld1q_u16(_sse2neon_cmpestr_mask16b); -+ uint16x8_t vec0 = vtstq_u16(vdupq_n_u16(m0), vec_mask); -+ uint16x8_t vec1 = vtstq_u16(vdupq_n_u16(m1), vec_mask); -+ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(tb), vec_mask); -+ mtx = vbslq_u16(vec0, vdupq_n_u16(0), mtx); -+ mtx = vbslq_u16(vec1, tmp, mtx); -+ mtx = vandq_u16(mtx, vec_mask); -+ return _sse2neon_vaddvq_u16(mtx); -+} -+ -+#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE 1 -+#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD 0 -+ -+#define SSE2NEON_AGGREGATE_EQUAL_ORDER_IMPL(size, number_of_lanes, data_type) \ -+ static int _sse2neon_aggregate_equal_ordered_##size##x##number_of_lanes( \ -+ int bound, int la, int lb, __m128i mtx[16]) \ -+ { \ -+ int res = 0; \ -+ int m1 = SSE2NEON_IIF(data_type)(0x10000, 0x100) - (1 << la); \ -+ uint##size##x8_t vec_mask = SSE2NEON_IIF(data_type)( \ -+ vld1_u##size(_sse2neon_cmpestr_mask##size##b), \ -+ vld1q_u##size(_sse2neon_cmpestr_mask##size##b)); \ -+ uint##size##x##number_of_lanes##_t vec1 = SSE2NEON_IIF(data_type)( \ -+ vcombine_u##size(vtst_u##size(vdup_n_u##size(m1), vec_mask), \ -+ vtst_u##size(vdup_n_u##size(m1 >> 8), vec_mask)), \ -+ vtstq_u##size(vdupq_n_u##size(m1), vec_mask)); \ -+ uint##size##x##number_of_lanes##_t vec_minusone = vdupq_n_u##size(-1); \ -+ uint##size##x##number_of_lanes##_t vec_zero = vdupq_n_u##size(0); \ -+ for (int j = 0; j < lb; j++) { \ -+ mtx[j] = vreinterpretq_m128i_u##size(vbslq_u##size( \ -+ vec1, vec_minusone, vreinterpretq_u##size##_m128i(mtx[j]))); \ -+ } \ -+ for (int j = lb; j < bound; j++) { \ -+ mtx[j] = vreinterpretq_m128i_u##size( \ -+ vbslq_u##size(vec1, vec_minusone, vec_zero)); \ -+ } \ -+ unsigned SSE2NEON_IIF(data_type)(char, short) *ptr = \ -+ (unsigned SSE2NEON_IIF(data_type)(char, short) *) mtx; \ -+ for (int i = 0; i < bound; i++) { \ -+ int val = 1; \ -+ for (int j = 0, k = i; j < bound - i && k < bound; j++, k++) \ -+ val &= ptr[k * bound + j]; \ -+ res += val << i; \ -+ } \ -+ return res; \ -+ } -+ -+/* clang-format off */ -+#define SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(prefix) \ -+ prefix##IMPL(8, 16, prefix##IS_UBYTE) \ -+ prefix##IMPL(16, 8, prefix##IS_UWORD) -+/* clang-format on */ -+ -+SSE2NEON_GENERATE_AGGREGATE_EQUAL_ORDER(SSE2NEON_AGGREGATE_EQUAL_ORDER_) -+ -+#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UBYTE -+#undef SSE2NEON_AGGREGATE_EQUAL_ORDER_IS_UWORD -+ -+/* clang-format off */ -+#define SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(prefix) \ -+ prefix##IMPL(byte) \ -+ prefix##IMPL(word) -+/* clang-format on */ -+ -+SSE2NEON_GENERATE_CMP_EQUAL_ORDERED(SSE2NEON_CMP_EQUAL_ORDERED_) -+ -+#define SSE2NEON_CMPESTR_LIST \ -+ _(CMP_UBYTE_EQUAL_ANY, cmp_byte_equal_any) \ -+ _(CMP_UWORD_EQUAL_ANY, cmp_word_equal_any) \ -+ _(CMP_SBYTE_EQUAL_ANY, cmp_byte_equal_any) \ -+ _(CMP_SWORD_EQUAL_ANY, cmp_word_equal_any) \ -+ _(CMP_UBYTE_RANGES, cmp_ubyte_ranges) \ -+ _(CMP_UWORD_RANGES, cmp_uword_ranges) \ -+ _(CMP_SBYTE_RANGES, cmp_sbyte_ranges) \ -+ _(CMP_SWORD_RANGES, cmp_sword_ranges) \ -+ _(CMP_UBYTE_EQUAL_EACH, cmp_byte_equal_each) \ -+ _(CMP_UWORD_EQUAL_EACH, cmp_word_equal_each) \ -+ _(CMP_SBYTE_EQUAL_EACH, cmp_byte_equal_each) \ -+ _(CMP_SWORD_EQUAL_EACH, cmp_word_equal_each) \ -+ _(CMP_UBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ -+ _(CMP_UWORD_EQUAL_ORDERED, cmp_word_equal_ordered) \ -+ _(CMP_SBYTE_EQUAL_ORDERED, cmp_byte_equal_ordered) \ -+ _(CMP_SWORD_EQUAL_ORDERED, cmp_word_equal_ordered) -+ -+enum { -+#define _(name, func_suffix) name, -+ SSE2NEON_CMPESTR_LIST -+#undef _ -+}; -+typedef int (*cmpestr_func_t)(__m128i a, int la, __m128i b, int lb); -+static cmpestr_func_t _sse2neon_cmpfunc_table[] = { -+#define _(name, func_suffix) _sse2neon_##func_suffix, -+ SSE2NEON_CMPESTR_LIST -+#undef _ -+}; -+ -+FORCE_INLINE int _sse2neon_sido_negative(int res, int lb, int imm8, int bound) -+{ -+ switch (imm8 & 0x30) { -+ case _SIDD_NEGATIVE_POLARITY: -+ res ^= 0xffffffff; -+ break; -+ case _SIDD_MASKED_NEGATIVE_POLARITY: -+ res ^= (1 << lb) - 1; -+ break; -+ default: -+ break; -+ } -+ -+ return res & ((bound == 8) ? 0xFF : 0xFFFF); -+} -+ -+FORCE_INLINE int _sse2neon_clz(unsigned int x) -+{ -+#ifdef _MSC_VER -+ unsigned long cnt = 0; -+ if (_BitScanReverse(&cnt, x)) -+ return 31 - cnt; -+ return 32; -+#else -+ return x != 0 ? __builtin_clz(x) : 32; -+#endif -+} -+ -+FORCE_INLINE int _sse2neon_ctz(unsigned int x) -+{ -+#ifdef _MSC_VER -+ unsigned long cnt = 0; -+ if (_BitScanForward(&cnt, x)) -+ return cnt; -+ return 32; -+#else -+ return x != 0 ? __builtin_ctz(x) : 32; -+#endif -+} -+ -+FORCE_INLINE int _sse2neon_ctzll(unsigned long long x) -+{ -+#ifdef _MSC_VER -+ unsigned long cnt; -+#if defined(SSE2NEON_HAS_BITSCAN64) -+ if (_BitScanForward64(&cnt, x)) -+ return (int) (cnt); -+#else -+ if (_BitScanForward(&cnt, (unsigned long) (x))) -+ return (int) cnt; -+ if (_BitScanForward(&cnt, (unsigned long) (x >> 32))) -+ return (int) (cnt + 32); -+#endif /* SSE2NEON_HAS_BITSCAN64 */ -+ return 64; -+#else /* assume GNU compatible compilers */ -+ return x != 0 ? __builtin_ctzll(x) : 64; -+#endif -+} -+ -+#define SSE2NEON_MIN(x, y) (x) < (y) ? (x) : (y) -+ -+#define SSE2NEON_CMPSTR_SET_UPPER(var, imm) \ -+ const int var = (imm & 0x01) ? 8 : 16 -+ -+#define SSE2NEON_CMPESTRX_LEN_PAIR(a, b, la, lb) \ -+ int tmp1 = la ^ (la >> 31); \ -+ la = tmp1 - (la >> 31); \ -+ int tmp2 = lb ^ (lb >> 31); \ -+ lb = tmp2 - (lb >> 31); \ -+ la = SSE2NEON_MIN(la, bound); \ -+ lb = SSE2NEON_MIN(lb, bound) -+ -+// Compare all pairs of character in string a and b, -+// then aggregate the result. -+// As the only difference of PCMPESTR* and PCMPISTR* is the way to calculate the -+// length of string, we use SSE2NEON_CMP{I,E}STRX_GET_LEN to get the length of -+// string a and b. -+#define SSE2NEON_COMP_AGG(a, b, la, lb, imm8, IE) \ -+ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); \ -+ SSE2NEON_##IE##_LEN_PAIR(a, b, la, lb); \ -+ int r2 = (_sse2neon_cmpfunc_table[imm8 & 0x0f])(a, la, b, lb); \ -+ r2 = _sse2neon_sido_negative(r2, lb, imm8, bound) -+ -+#define SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8) \ -+ return (r2 == 0) ? bound \ -+ : ((imm8 & 0x40) ? (31 - _sse2neon_clz(r2)) \ -+ : _sse2neon_ctz(r2)) -+ -+#define SSE2NEON_CMPSTR_GENERATE_MASK(dst) \ -+ __m128i dst = vreinterpretq_m128i_u8(vdupq_n_u8(0)); \ -+ if (imm8 & 0x40) { \ -+ if (bound == 8) { \ -+ uint16x8_t tmp = vtstq_u16(vdupq_n_u16(r2), \ -+ vld1q_u16(_sse2neon_cmpestr_mask16b)); \ -+ dst = vreinterpretq_m128i_u16(vbslq_u16( \ -+ tmp, vdupq_n_u16(-1), vreinterpretq_u16_m128i(dst))); \ -+ } else { \ -+ uint8x16_t vec_r2 = \ -+ vcombine_u8(vdup_n_u8(r2), vdup_n_u8(r2 >> 8)); \ -+ uint8x16_t tmp = \ -+ vtstq_u8(vec_r2, vld1q_u8(_sse2neon_cmpestr_mask8b)); \ -+ dst = vreinterpretq_m128i_u8( \ -+ vbslq_u8(tmp, vdupq_n_u8(-1), vreinterpretq_u8_m128i(dst))); \ -+ } \ -+ } else { \ -+ if (bound == 16) { \ -+ dst = vreinterpretq_m128i_u16( \ -+ vsetq_lane_u16(r2 & 0xffff, vreinterpretq_u16_m128i(dst), 0)); \ -+ } else { \ -+ dst = vreinterpretq_m128i_u8( \ -+ vsetq_lane_u8(r2 & 0xff, vreinterpretq_u8_m128i(dst), 0)); \ -+ } \ -+ } \ -+ return dst -+ -+// Compare packed strings in a and b with lengths la and lb using the control -+// in imm8, and returns 1 if b did not contain a null character and the -+// resulting mask was zero, and 0 otherwise. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestra -+FORCE_INLINE int _mm_cmpestra(__m128i a, -+ int la, -+ __m128i b, -+ int lb, -+ const int imm8) -+{ -+ int lb_cpy = lb; -+ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); -+ return !r2 & (lb_cpy > bound); -+} -+ -+// Compare packed strings in a and b with lengths la and lb using the control in -+// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrc -+FORCE_INLINE int _mm_cmpestrc(__m128i a, -+ int la, -+ __m128i b, -+ int lb, -+ const int imm8) -+{ -+ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); -+ return r2 != 0; -+} -+ -+// Compare packed strings in a and b with lengths la and lb using the control -+// in imm8, and store the generated index in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestri -+FORCE_INLINE int _mm_cmpestri(__m128i a, -+ int la, -+ __m128i b, -+ int lb, -+ const int imm8) -+{ -+ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); -+ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); -+} -+ -+// Compare packed strings in a and b with lengths la and lb using the control -+// in imm8, and store the generated mask in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrm -+FORCE_INLINE __m128i -+_mm_cmpestrm(__m128i a, int la, __m128i b, int lb, const int imm8) -+{ -+ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); -+ SSE2NEON_CMPSTR_GENERATE_MASK(dst); -+} -+ -+// Compare packed strings in a and b with lengths la and lb using the control in -+// imm8, and returns bit 0 of the resulting bit mask. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestro -+FORCE_INLINE int _mm_cmpestro(__m128i a, -+ int la, -+ __m128i b, -+ int lb, -+ const int imm8) -+{ -+ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPESTRX); -+ return r2 & 1; -+} -+ -+// Compare packed strings in a and b with lengths la and lb using the control in -+// imm8, and returns 1 if any character in a was null, and 0 otherwise. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrs -+FORCE_INLINE int _mm_cmpestrs(__m128i a, -+ int la, -+ __m128i b, -+ int lb, -+ const int imm8) -+{ -+ (void) a; -+ (void) b; -+ (void) lb; -+ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); -+ return la <= (bound - 1); -+} -+ -+// Compare packed strings in a and b with lengths la and lb using the control in -+// imm8, and returns 1 if any character in b was null, and 0 otherwise. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpestrz -+FORCE_INLINE int _mm_cmpestrz(__m128i a, -+ int la, -+ __m128i b, -+ int lb, -+ const int imm8) -+{ -+ (void) a; -+ (void) b; -+ (void) la; -+ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); -+ return lb <= (bound - 1); -+} -+ -+#define SSE2NEON_CMPISTRX_LENGTH(str, len, imm8) \ -+ do { \ -+ if (imm8 & 0x01) { \ -+ uint16x8_t equal_mask_##str = \ -+ vceqq_u16(vreinterpretq_u16_m128i(str), vdupq_n_u16(0)); \ -+ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ -+ uint64_t matches_##str = \ -+ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ -+ len = _sse2neon_ctzll(matches_##str) >> 3; \ -+ } else { \ -+ uint16x8_t equal_mask_##str = vreinterpretq_u16_u8( \ -+ vceqq_u8(vreinterpretq_u8_m128i(str), vdupq_n_u8(0))); \ -+ uint8x8_t res_##str = vshrn_n_u16(equal_mask_##str, 4); \ -+ uint64_t matches_##str = \ -+ vget_lane_u64(vreinterpret_u64_u8(res_##str), 0); \ -+ len = _sse2neon_ctzll(matches_##str) >> 2; \ -+ } \ -+ } while (0) -+ -+#define SSE2NEON_CMPISTRX_LEN_PAIR(a, b, la, lb) \ -+ int la, lb; \ -+ do { \ -+ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); \ -+ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); \ -+ } while (0) -+ -+// Compare packed strings with implicit lengths in a and b using the control in -+// imm8, and returns 1 if b did not contain a null character and the resulting -+// mask was zero, and 0 otherwise. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistra -+FORCE_INLINE int _mm_cmpistra(__m128i a, __m128i b, const int imm8) -+{ -+ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); -+ return !r2 & (lb >= bound); -+} -+ -+// Compare packed strings with implicit lengths in a and b using the control in -+// imm8, and returns 1 if the resulting mask was non-zero, and 0 otherwise. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrc -+FORCE_INLINE int _mm_cmpistrc(__m128i a, __m128i b, const int imm8) -+{ -+ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); -+ return r2 != 0; -+} -+ -+// Compare packed strings with implicit lengths in a and b using the control in -+// imm8, and store the generated index in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistri -+FORCE_INLINE int _mm_cmpistri(__m128i a, __m128i b, const int imm8) -+{ -+ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); -+ SSE2NEON_CMPSTR_GENERATE_INDEX(r2, bound, imm8); -+} -+ -+// Compare packed strings with implicit lengths in a and b using the control in -+// imm8, and store the generated mask in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrm -+FORCE_INLINE __m128i _mm_cmpistrm(__m128i a, __m128i b, const int imm8) -+{ -+ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); -+ SSE2NEON_CMPSTR_GENERATE_MASK(dst); -+} -+ -+// Compare packed strings with implicit lengths in a and b using the control in -+// imm8, and returns bit 0 of the resulting bit mask. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistro -+FORCE_INLINE int _mm_cmpistro(__m128i a, __m128i b, const int imm8) -+{ -+ SSE2NEON_COMP_AGG(a, b, la, lb, imm8, CMPISTRX); -+ return r2 & 1; -+} -+ -+// Compare packed strings with implicit lengths in a and b using the control in -+// imm8, and returns 1 if any character in a was null, and 0 otherwise. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrs -+FORCE_INLINE int _mm_cmpistrs(__m128i a, __m128i b, const int imm8) -+{ -+ (void) b; -+ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); -+ int la; -+ SSE2NEON_CMPISTRX_LENGTH(a, la, imm8); -+ return la <= (bound - 1); -+} -+ -+// Compare packed strings with implicit lengths in a and b using the control in -+// imm8, and returns 1 if any character in b was null, and 0 otherwise. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cmpistrz -+FORCE_INLINE int _mm_cmpistrz(__m128i a, __m128i b, const int imm8) -+{ -+ (void) a; -+ SSE2NEON_CMPSTR_SET_UPPER(bound, imm8); -+ int lb; -+ SSE2NEON_CMPISTRX_LENGTH(b, lb, imm8); -+ return lb <= (bound - 1); -+} -+ -+// Compares the 2 signed 64-bit integers in a and the 2 signed 64-bit integers -+// in b for greater than. -+FORCE_INLINE __m128i _mm_cmpgt_epi64(__m128i a, __m128i b) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ return vreinterpretq_m128i_u64( -+ vcgtq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b))); -+#else -+ return vreinterpretq_m128i_s64(vshrq_n_s64( -+ vqsubq_s64(vreinterpretq_s64_m128i(b), vreinterpretq_s64_m128i(a)), -+ 63)); -+#endif -+} -+ -+// Starting with the initial value in crc, accumulates a CRC32 value for -+// unsigned 16-bit integer v, and stores the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u16 -+FORCE_INLINE uint32_t _mm_crc32_u16(uint32_t crc, uint16_t v) -+{ -+#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) -+ __asm__ __volatile__("crc32ch %w[c], %w[c], %w[v]\n\t" -+ : [c] "+r"(crc) -+ : [v] "r"(v)); -+#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ -+ (defined(_M_ARM64) && !defined(__clang__)) -+ crc = __crc32ch(crc, v); -+#else -+ crc = _mm_crc32_u8(crc, v & 0xff); -+ crc = _mm_crc32_u8(crc, (v >> 8) & 0xff); -+#endif -+ return crc; -+} -+ -+// Starting with the initial value in crc, accumulates a CRC32 value for -+// unsigned 32-bit integer v, and stores the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u32 -+FORCE_INLINE uint32_t _mm_crc32_u32(uint32_t crc, uint32_t v) -+{ -+#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) -+ __asm__ __volatile__("crc32cw %w[c], %w[c], %w[v]\n\t" -+ : [c] "+r"(crc) -+ : [v] "r"(v)); -+#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ -+ (defined(_M_ARM64) && !defined(__clang__)) -+ crc = __crc32cw(crc, v); -+#else -+ crc = _mm_crc32_u16(crc, v & 0xffff); -+ crc = _mm_crc32_u16(crc, (v >> 16) & 0xffff); -+#endif -+ return crc; -+} -+ -+// Starting with the initial value in crc, accumulates a CRC32 value for -+// unsigned 64-bit integer v, and stores the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u64 -+FORCE_INLINE uint64_t _mm_crc32_u64(uint64_t crc, uint64_t v) -+{ -+#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) -+ __asm__ __volatile__("crc32cx %w[c], %w[c], %x[v]\n\t" -+ : [c] "+r"(crc) -+ : [v] "r"(v)); -+#elif (defined(_M_ARM64) && !defined(__clang__)) -+ crc = __crc32cd((uint32_t) crc, v); -+#else -+ crc = _mm_crc32_u32((uint32_t) (crc), v & 0xffffffff); -+ crc = _mm_crc32_u32((uint32_t) (crc), (v >> 32) & 0xffffffff); -+#endif -+ return crc; -+} -+ -+// Starting with the initial value in crc, accumulates a CRC32 value for -+// unsigned 8-bit integer v, and stores the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_crc32_u8 -+FORCE_INLINE uint32_t _mm_crc32_u8(uint32_t crc, uint8_t v) -+{ -+#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) -+ __asm__ __volatile__("crc32cb %w[c], %w[c], %w[v]\n\t" -+ : [c] "+r"(crc) -+ : [v] "r"(v)); -+#elif ((__ARM_ARCH == 8) && defined(__ARM_FEATURE_CRC32)) || \ -+ (defined(_M_ARM64) && !defined(__clang__)) -+ crc = __crc32cb(crc, v); -+#else -+ crc ^= v; -+#if defined(__ARM_FEATURE_CRYPTO) -+ // Adapted from: https://mary.rs/lab/crc32/ -+ // Barrent reduction -+ uint64x2_t orig = -+ vcombine_u64(vcreate_u64((uint64_t) (crc) << 24), vcreate_u64(0x0)); -+ uint64x2_t tmp = orig; -+ -+ // Polynomial P(x) of CRC32C -+ uint64_t p = 0x105EC76F1; -+ // Barrett Reduction (in bit-reflected form) constant mu_{64} = \lfloor -+ // 2^{64} / P(x) \rfloor = 0x11f91caf6 -+ uint64_t mu = 0x1dea713f1; -+ -+ // Multiply by mu_{64} -+ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(mu)); -+ // Divide by 2^{64} (mask away the unnecessary bits) -+ tmp = -+ vandq_u64(tmp, vcombine_u64(vcreate_u64(0xFFFFFFFF), vcreate_u64(0x0))); -+ // Multiply by P(x) (shifted left by 1 for alignment reasons) -+ tmp = _sse2neon_vmull_p64(vget_low_u64(tmp), vcreate_u64(p)); -+ // Subtract original from result -+ tmp = veorq_u64(tmp, orig); -+ -+ // Extract the 'lower' (in bit-reflected sense) 32 bits -+ crc = vgetq_lane_u32(vreinterpretq_u32_u64(tmp), 1); -+#else // Fall back to the generic table lookup approach -+ // Adapted from: https://create.stephan-brumme.com/crc32/ -+ // Apply half-byte comparison algorithm for the best ratio between -+ // performance and lookup table. -+ -+ // The lookup table just needs to store every 16th entry -+ // of the standard look-up table. -+ static const uint32_t crc32_half_byte_tbl[] = { -+ 0x00000000, 0x105ec76f, 0x20bd8ede, 0x30e349b1, 0x417b1dbc, 0x5125dad3, -+ 0x61c69362, 0x7198540d, 0x82f63b78, 0x92a8fc17, 0xa24bb5a6, 0xb21572c9, -+ 0xc38d26c4, 0xd3d3e1ab, 0xe330a81a, 0xf36e6f75, -+ }; -+ -+ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; -+ crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0F]; -+#endif -+#endif -+ return crc; -+} -+ -+/* AES */ -+ -+#if !defined(__ARM_FEATURE_CRYPTO) && (!defined(_M_ARM64) || defined(__clang__)) -+/* clang-format off */ -+#define SSE2NEON_AES_SBOX(w) \ -+ { \ -+ w(0x63), w(0x7c), w(0x77), w(0x7b), w(0xf2), w(0x6b), w(0x6f), \ -+ w(0xc5), w(0x30), w(0x01), w(0x67), w(0x2b), w(0xfe), w(0xd7), \ -+ w(0xab), w(0x76), w(0xca), w(0x82), w(0xc9), w(0x7d), w(0xfa), \ -+ w(0x59), w(0x47), w(0xf0), w(0xad), w(0xd4), w(0xa2), w(0xaf), \ -+ w(0x9c), w(0xa4), w(0x72), w(0xc0), w(0xb7), w(0xfd), w(0x93), \ -+ w(0x26), w(0x36), w(0x3f), w(0xf7), w(0xcc), w(0x34), w(0xa5), \ -+ w(0xe5), w(0xf1), w(0x71), w(0xd8), w(0x31), w(0x15), w(0x04), \ -+ w(0xc7), w(0x23), w(0xc3), w(0x18), w(0x96), w(0x05), w(0x9a), \ -+ w(0x07), w(0x12), w(0x80), w(0xe2), w(0xeb), w(0x27), w(0xb2), \ -+ w(0x75), w(0x09), w(0x83), w(0x2c), w(0x1a), w(0x1b), w(0x6e), \ -+ w(0x5a), w(0xa0), w(0x52), w(0x3b), w(0xd6), w(0xb3), w(0x29), \ -+ w(0xe3), w(0x2f), w(0x84), w(0x53), w(0xd1), w(0x00), w(0xed), \ -+ w(0x20), w(0xfc), w(0xb1), w(0x5b), w(0x6a), w(0xcb), w(0xbe), \ -+ w(0x39), w(0x4a), w(0x4c), w(0x58), w(0xcf), w(0xd0), w(0xef), \ -+ w(0xaa), w(0xfb), w(0x43), w(0x4d), w(0x33), w(0x85), w(0x45), \ -+ w(0xf9), w(0x02), w(0x7f), w(0x50), w(0x3c), w(0x9f), w(0xa8), \ -+ w(0x51), w(0xa3), w(0x40), w(0x8f), w(0x92), w(0x9d), w(0x38), \ -+ w(0xf5), w(0xbc), w(0xb6), w(0xda), w(0x21), w(0x10), w(0xff), \ -+ w(0xf3), w(0xd2), w(0xcd), w(0x0c), w(0x13), w(0xec), w(0x5f), \ -+ w(0x97), w(0x44), w(0x17), w(0xc4), w(0xa7), w(0x7e), w(0x3d), \ -+ w(0x64), w(0x5d), w(0x19), w(0x73), w(0x60), w(0x81), w(0x4f), \ -+ w(0xdc), w(0x22), w(0x2a), w(0x90), w(0x88), w(0x46), w(0xee), \ -+ w(0xb8), w(0x14), w(0xde), w(0x5e), w(0x0b), w(0xdb), w(0xe0), \ -+ w(0x32), w(0x3a), w(0x0a), w(0x49), w(0x06), w(0x24), w(0x5c), \ -+ w(0xc2), w(0xd3), w(0xac), w(0x62), w(0x91), w(0x95), w(0xe4), \ -+ w(0x79), w(0xe7), w(0xc8), w(0x37), w(0x6d), w(0x8d), w(0xd5), \ -+ w(0x4e), w(0xa9), w(0x6c), w(0x56), w(0xf4), w(0xea), w(0x65), \ -+ w(0x7a), w(0xae), w(0x08), w(0xba), w(0x78), w(0x25), w(0x2e), \ -+ w(0x1c), w(0xa6), w(0xb4), w(0xc6), w(0xe8), w(0xdd), w(0x74), \ -+ w(0x1f), w(0x4b), w(0xbd), w(0x8b), w(0x8a), w(0x70), w(0x3e), \ -+ w(0xb5), w(0x66), w(0x48), w(0x03), w(0xf6), w(0x0e), w(0x61), \ -+ w(0x35), w(0x57), w(0xb9), w(0x86), w(0xc1), w(0x1d), w(0x9e), \ -+ w(0xe1), w(0xf8), w(0x98), w(0x11), w(0x69), w(0xd9), w(0x8e), \ -+ w(0x94), w(0x9b), w(0x1e), w(0x87), w(0xe9), w(0xce), w(0x55), \ -+ w(0x28), w(0xdf), w(0x8c), w(0xa1), w(0x89), w(0x0d), w(0xbf), \ -+ w(0xe6), w(0x42), w(0x68), w(0x41), w(0x99), w(0x2d), w(0x0f), \ -+ w(0xb0), w(0x54), w(0xbb), w(0x16) \ -+ } -+#define SSE2NEON_AES_RSBOX(w) \ -+ { \ -+ w(0x52), w(0x09), w(0x6a), w(0xd5), w(0x30), w(0x36), w(0xa5), \ -+ w(0x38), w(0xbf), w(0x40), w(0xa3), w(0x9e), w(0x81), w(0xf3), \ -+ w(0xd7), w(0xfb), w(0x7c), w(0xe3), w(0x39), w(0x82), w(0x9b), \ -+ w(0x2f), w(0xff), w(0x87), w(0x34), w(0x8e), w(0x43), w(0x44), \ -+ w(0xc4), w(0xde), w(0xe9), w(0xcb), w(0x54), w(0x7b), w(0x94), \ -+ w(0x32), w(0xa6), w(0xc2), w(0x23), w(0x3d), w(0xee), w(0x4c), \ -+ w(0x95), w(0x0b), w(0x42), w(0xfa), w(0xc3), w(0x4e), w(0x08), \ -+ w(0x2e), w(0xa1), w(0x66), w(0x28), w(0xd9), w(0x24), w(0xb2), \ -+ w(0x76), w(0x5b), w(0xa2), w(0x49), w(0x6d), w(0x8b), w(0xd1), \ -+ w(0x25), w(0x72), w(0xf8), w(0xf6), w(0x64), w(0x86), w(0x68), \ -+ w(0x98), w(0x16), w(0xd4), w(0xa4), w(0x5c), w(0xcc), w(0x5d), \ -+ w(0x65), w(0xb6), w(0x92), w(0x6c), w(0x70), w(0x48), w(0x50), \ -+ w(0xfd), w(0xed), w(0xb9), w(0xda), w(0x5e), w(0x15), w(0x46), \ -+ w(0x57), w(0xa7), w(0x8d), w(0x9d), w(0x84), w(0x90), w(0xd8), \ -+ w(0xab), w(0x00), w(0x8c), w(0xbc), w(0xd3), w(0x0a), w(0xf7), \ -+ w(0xe4), w(0x58), w(0x05), w(0xb8), w(0xb3), w(0x45), w(0x06), \ -+ w(0xd0), w(0x2c), w(0x1e), w(0x8f), w(0xca), w(0x3f), w(0x0f), \ -+ w(0x02), w(0xc1), w(0xaf), w(0xbd), w(0x03), w(0x01), w(0x13), \ -+ w(0x8a), w(0x6b), w(0x3a), w(0x91), w(0x11), w(0x41), w(0x4f), \ -+ w(0x67), w(0xdc), w(0xea), w(0x97), w(0xf2), w(0xcf), w(0xce), \ -+ w(0xf0), w(0xb4), w(0xe6), w(0x73), w(0x96), w(0xac), w(0x74), \ -+ w(0x22), w(0xe7), w(0xad), w(0x35), w(0x85), w(0xe2), w(0xf9), \ -+ w(0x37), w(0xe8), w(0x1c), w(0x75), w(0xdf), w(0x6e), w(0x47), \ -+ w(0xf1), w(0x1a), w(0x71), w(0x1d), w(0x29), w(0xc5), w(0x89), \ -+ w(0x6f), w(0xb7), w(0x62), w(0x0e), w(0xaa), w(0x18), w(0xbe), \ -+ w(0x1b), w(0xfc), w(0x56), w(0x3e), w(0x4b), w(0xc6), w(0xd2), \ -+ w(0x79), w(0x20), w(0x9a), w(0xdb), w(0xc0), w(0xfe), w(0x78), \ -+ w(0xcd), w(0x5a), w(0xf4), w(0x1f), w(0xdd), w(0xa8), w(0x33), \ -+ w(0x88), w(0x07), w(0xc7), w(0x31), w(0xb1), w(0x12), w(0x10), \ -+ w(0x59), w(0x27), w(0x80), w(0xec), w(0x5f), w(0x60), w(0x51), \ -+ w(0x7f), w(0xa9), w(0x19), w(0xb5), w(0x4a), w(0x0d), w(0x2d), \ -+ w(0xe5), w(0x7a), w(0x9f), w(0x93), w(0xc9), w(0x9c), w(0xef), \ -+ w(0xa0), w(0xe0), w(0x3b), w(0x4d), w(0xae), w(0x2a), w(0xf5), \ -+ w(0xb0), w(0xc8), w(0xeb), w(0xbb), w(0x3c), w(0x83), w(0x53), \ -+ w(0x99), w(0x61), w(0x17), w(0x2b), w(0x04), w(0x7e), w(0xba), \ -+ w(0x77), w(0xd6), w(0x26), w(0xe1), w(0x69), w(0x14), w(0x63), \ -+ w(0x55), w(0x21), w(0x0c), w(0x7d) \ -+ } -+/* clang-format on */ -+ -+/* X Macro trick. See https://en.wikipedia.org/wiki/X_Macro */ -+#define SSE2NEON_AES_H0(x) (x) -+static const uint8_t _sse2neon_sbox[256] = SSE2NEON_AES_SBOX(SSE2NEON_AES_H0); -+static const uint8_t _sse2neon_rsbox[256] = SSE2NEON_AES_RSBOX(SSE2NEON_AES_H0); -+#undef SSE2NEON_AES_H0 -+ -+/* x_time function and matrix multiply function */ -+#if !defined(__aarch64__) && !defined(_M_ARM64) -+#define SSE2NEON_XT(x) (((x) << 1) ^ ((((x) >> 7) & 1) * 0x1b)) -+#define SSE2NEON_MULTIPLY(x, y) \ -+ (((y & 1) * x) ^ ((y >> 1 & 1) * SSE2NEON_XT(x)) ^ \ -+ ((y >> 2 & 1) * SSE2NEON_XT(SSE2NEON_XT(x))) ^ \ -+ ((y >> 3 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))) ^ \ -+ ((y >> 4 & 1) * SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(SSE2NEON_XT(x)))))) -+#endif -+ -+// In the absence of crypto extensions, implement aesenc using regular NEON -+// intrinsics instead. See: -+// https://www.workofard.com/2017/01/accelerated-aes-for-the-arm64-linux-kernel/ -+// https://www.workofard.com/2017/07/ghash-for-low-end-cores/ and -+// for more information. -+FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i RoundKey) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ static const uint8_t shift_rows[] = { -+ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, -+ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, -+ }; -+ static const uint8_t ror32by8[] = { -+ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, -+ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, -+ }; -+ -+ uint8x16_t v; -+ uint8x16_t w = vreinterpretq_u8_m128i(a); -+ -+ /* shift rows */ -+ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); -+ -+ /* sub bytes */ -+ // Here, we separate the whole 256-bytes table into 4 64-bytes tables, and -+ // look up each of the table. After each lookup, we load the next table -+ // which locates at the next 64-bytes. In the meantime, the index in the -+ // table would be smaller than it was, so the index parameters of -+ // `vqtbx4q_u8()` need to be added the same constant as the loaded tables. -+ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); -+ // 'w-0x40' equals to 'vsubq_u8(w, vdupq_n_u8(0x40))' -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); -+ -+ /* mix columns */ -+ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); -+ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); -+ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); -+ -+ /* add round key */ -+ return vreinterpretq_m128i_u8(w) ^ RoundKey; -+ -+#else /* ARMv7-A implementation for a table-based AES */ -+#define SSE2NEON_AES_B2W(b0, b1, b2, b3) \ -+ (((uint32_t) (b3) << 24) | ((uint32_t) (b2) << 16) | \ -+ ((uint32_t) (b1) << 8) | (uint32_t) (b0)) -+// multiplying 'x' by 2 in GF(2^8) -+#define SSE2NEON_AES_F2(x) ((x << 1) ^ (((x >> 7) & 1) * 0x011b /* WPOLY */)) -+// multiplying 'x' by 3 in GF(2^8) -+#define SSE2NEON_AES_F3(x) (SSE2NEON_AES_F2(x) ^ x) -+#define SSE2NEON_AES_U0(p) \ -+ SSE2NEON_AES_B2W(SSE2NEON_AES_F2(p), p, p, SSE2NEON_AES_F3(p)) -+#define SSE2NEON_AES_U1(p) \ -+ SSE2NEON_AES_B2W(SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p, p) -+#define SSE2NEON_AES_U2(p) \ -+ SSE2NEON_AES_B2W(p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p), p) -+#define SSE2NEON_AES_U3(p) \ -+ SSE2NEON_AES_B2W(p, p, SSE2NEON_AES_F3(p), SSE2NEON_AES_F2(p)) -+ -+ // this generates a table containing every possible permutation of -+ // shift_rows() and sub_bytes() with mix_columns(). -+ static const uint32_t ALIGN_STRUCT(16) aes_table[4][256] = { -+ SSE2NEON_AES_SBOX(SSE2NEON_AES_U0), -+ SSE2NEON_AES_SBOX(SSE2NEON_AES_U1), -+ SSE2NEON_AES_SBOX(SSE2NEON_AES_U2), -+ SSE2NEON_AES_SBOX(SSE2NEON_AES_U3), -+ }; -+#undef SSE2NEON_AES_B2W -+#undef SSE2NEON_AES_F2 -+#undef SSE2NEON_AES_F3 -+#undef SSE2NEON_AES_U0 -+#undef SSE2NEON_AES_U1 -+#undef SSE2NEON_AES_U2 -+#undef SSE2NEON_AES_U3 -+ -+ uint32_t x0 = _mm_cvtsi128_si32(a); // get a[31:0] -+ uint32_t x1 = -+ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); // get a[63:32] -+ uint32_t x2 = -+ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xAA)); // get a[95:64] -+ uint32_t x3 = -+ _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); // get a[127:96] -+ -+ // finish the modulo addition step in mix_columns() -+ __m128i out = _mm_set_epi32( -+ (aes_table[0][x3 & 0xff] ^ aes_table[1][(x0 >> 8) & 0xff] ^ -+ aes_table[2][(x1 >> 16) & 0xff] ^ aes_table[3][x2 >> 24]), -+ (aes_table[0][x2 & 0xff] ^ aes_table[1][(x3 >> 8) & 0xff] ^ -+ aes_table[2][(x0 >> 16) & 0xff] ^ aes_table[3][x1 >> 24]), -+ (aes_table[0][x1 & 0xff] ^ aes_table[1][(x2 >> 8) & 0xff] ^ -+ aes_table[2][(x3 >> 16) & 0xff] ^ aes_table[3][x0 >> 24]), -+ (aes_table[0][x0 & 0xff] ^ aes_table[1][(x1 >> 8) & 0xff] ^ -+ aes_table[2][(x2 >> 16) & 0xff] ^ aes_table[3][x3 >> 24])); -+ -+ return _mm_xor_si128(out, RoundKey); -+#endif -+} -+ -+// Perform one round of an AES decryption flow on data (state) in a using the -+// round key in RoundKey, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 -+FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) -+{ -+#if defined(__aarch64__) -+ static const uint8_t inv_shift_rows[] = { -+ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, -+ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, -+ }; -+ static const uint8_t ror32by8[] = { -+ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, -+ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, -+ }; -+ -+ uint8x16_t v; -+ uint8x16_t w = vreinterpretq_u8_m128i(a); -+ -+ // inverse shift rows -+ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); -+ -+ // inverse sub bytes -+ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); -+ -+ // inverse mix columns -+ // multiplying 'v' by 4 in GF(2^8) -+ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); -+ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); -+ v ^= w; -+ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); -+ -+ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & -+ 0x1b); // multiplying 'v' by 2 in GF(2^8) -+ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); -+ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); -+ -+ // add round key -+ return vreinterpretq_m128i_u8(w) ^ RoundKey; -+ -+#else /* ARMv7-A NEON implementation */ -+ /* FIXME: optimized for NEON */ -+ uint8_t i, e, f, g, h, v[4][4]; -+ uint8_t *_a = (uint8_t *) &a; -+ for (i = 0; i < 16; ++i) { -+ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; -+ } -+ -+ // inverse mix columns -+ for (i = 0; i < 4; ++i) { -+ e = v[i][0]; -+ f = v[i][1]; -+ g = v[i][2]; -+ h = v[i][3]; -+ -+ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ -+ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); -+ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ -+ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); -+ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ -+ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); -+ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ -+ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); -+ } -+ -+ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; -+#endif -+} -+ -+// Perform the last round of an AES encryption flow on data (state) in a using -+// the round key in RoundKey, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 -+FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) -+{ -+#if defined(__aarch64__) -+ static const uint8_t shift_rows[] = { -+ 0x0, 0x5, 0xa, 0xf, 0x4, 0x9, 0xe, 0x3, -+ 0x8, 0xd, 0x2, 0x7, 0xc, 0x1, 0x6, 0xb, -+ }; -+ -+ uint8x16_t v; -+ uint8x16_t w = vreinterpretq_u8_m128i(a); -+ -+ // shift rows -+ w = vqtbl1q_u8(w, vld1q_u8(shift_rows)); -+ -+ // sub bytes -+ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), w); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), w - 0x40); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), w - 0x80); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), w - 0xc0); -+ -+ // add round key -+ return vreinterpretq_m128i_u8(v) ^ RoundKey; -+ -+#else /* ARMv7-A implementation */ -+ uint8_t v[16] = { -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 0)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 5)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 10)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 15)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 4)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 9)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 14)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 3)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 8)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 13)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 2)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 7)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 12)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 1)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 6)], -+ _sse2neon_sbox[vgetq_lane_u8(vreinterpretq_u8_m128i(a), 11)], -+ }; -+ -+ return vreinterpretq_m128i_u8(vld1q_u8(v)) ^ RoundKey; -+#endif -+} -+ -+// Perform the last round of an AES decryption flow on data (state) in a using -+// the round key in RoundKey, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 -+FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) -+{ -+#if defined(__aarch64__) -+ static const uint8_t inv_shift_rows[] = { -+ 0x0, 0xd, 0xa, 0x7, 0x4, 0x1, 0xe, 0xb, -+ 0x8, 0x5, 0x2, 0xf, 0xc, 0x9, 0x6, 0x3, -+ }; -+ -+ uint8x16_t v; -+ uint8x16_t w = vreinterpretq_u8_m128i(a); -+ -+ // inverse shift rows -+ w = vqtbl1q_u8(w, vld1q_u8(inv_shift_rows)); -+ -+ // inverse sub bytes -+ v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_rsbox), w); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x40), w - 0x40); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0x80), w - 0x80); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_rsbox + 0xc0), w - 0xc0); -+ -+ // add round key -+ return vreinterpretq_m128i_u8(v) ^ RoundKey; -+ -+#else /* ARMv7-A NEON implementation */ -+ /* FIXME: optimized for NEON */ -+ uint8_t v[4][4]; -+ uint8_t *_a = (uint8_t *) &a; -+ for (int i = 0; i < 16; ++i) { -+ v[((i / 4) + (i % 4)) % 4][i % 4] = _sse2neon_rsbox[_a[i]]; -+ } -+ -+ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)) ^ RoundKey; -+#endif -+} -+ -+// Perform the InvMixColumns transformation on a and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 -+FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) -+{ -+#if defined(__aarch64__) -+ static const uint8_t ror32by8[] = { -+ 0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4, -+ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc, -+ }; -+ uint8x16_t v = vreinterpretq_u8_m128i(a); -+ uint8x16_t w; -+ -+ // multiplying 'v' by 4 in GF(2^8) -+ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); -+ w = (w << 1) ^ (uint8x16_t) (((int8x16_t) w >> 7) & 0x1b); -+ v ^= w; -+ v ^= (uint8x16_t) vrev32q_u16((uint16x8_t) w); -+ -+ // multiplying 'v' by 2 in GF(2^8) -+ w = (v << 1) ^ (uint8x16_t) (((int8x16_t) v >> 7) & 0x1b); -+ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v); -+ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8)); -+ return vreinterpretq_m128i_u8(w); -+ -+#else /* ARMv7-A NEON implementation */ -+ uint8_t i, e, f, g, h, v[4][4]; -+ vst1q_u8((uint8_t *) v, vreinterpretq_u8_m128i(a)); -+ for (i = 0; i < 4; ++i) { -+ e = v[i][0]; -+ f = v[i][1]; -+ g = v[i][2]; -+ h = v[i][3]; -+ -+ v[i][0] = SSE2NEON_MULTIPLY(e, 0x0e) ^ SSE2NEON_MULTIPLY(f, 0x0b) ^ -+ SSE2NEON_MULTIPLY(g, 0x0d) ^ SSE2NEON_MULTIPLY(h, 0x09); -+ v[i][1] = SSE2NEON_MULTIPLY(e, 0x09) ^ SSE2NEON_MULTIPLY(f, 0x0e) ^ -+ SSE2NEON_MULTIPLY(g, 0x0b) ^ SSE2NEON_MULTIPLY(h, 0x0d); -+ v[i][2] = SSE2NEON_MULTIPLY(e, 0x0d) ^ SSE2NEON_MULTIPLY(f, 0x09) ^ -+ SSE2NEON_MULTIPLY(g, 0x0e) ^ SSE2NEON_MULTIPLY(h, 0x0b); -+ v[i][3] = SSE2NEON_MULTIPLY(e, 0x0b) ^ SSE2NEON_MULTIPLY(f, 0x0d) ^ -+ SSE2NEON_MULTIPLY(g, 0x09) ^ SSE2NEON_MULTIPLY(h, 0x0e); -+ } -+ -+ return vreinterpretq_m128i_u8(vld1q_u8((uint8_t *) v)); -+#endif -+} -+ -+// Assist in expanding the AES cipher key by computing steps towards generating -+// a round key for encryption cipher using data from a and an 8-bit round -+// constant specified in imm8, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 -+// -+// Emits the Advanced Encryption Standard (AES) instruction aeskeygenassist. -+// This instruction generates a round key for AES encryption. See -+// https://kazakov.life/2017/11/01/cryptocurrency-mining-on-ios-devices/ -+// for details. -+FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) -+{ -+#if defined(__aarch64__) -+ uint8x16_t _a = vreinterpretq_u8_m128i(a); -+ uint8x16_t v = vqtbl4q_u8(_sse2neon_vld1q_u8_x4(_sse2neon_sbox), _a); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x40), _a - 0x40); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0x80), _a - 0x80); -+ v = vqtbx4q_u8(v, _sse2neon_vld1q_u8_x4(_sse2neon_sbox + 0xc0), _a - 0xc0); -+ -+ uint32x4_t v_u32 = vreinterpretq_u32_u8(v); -+ uint32x4_t ror_v = vorrq_u32(vshrq_n_u32(v_u32, 8), vshlq_n_u32(v_u32, 24)); -+ uint32x4_t ror_xor_v = veorq_u32(ror_v, vdupq_n_u32(rcon)); -+ -+ return vreinterpretq_m128i_u32(vtrn2q_u32(v_u32, ror_xor_v)); -+ -+#else /* ARMv7-A NEON implementation */ -+ uint32_t X1 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0x55)); -+ uint32_t X3 = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, 0xFF)); -+ for (int i = 0; i < 4; ++i) { -+ ((uint8_t *) &X1)[i] = _sse2neon_sbox[((uint8_t *) &X1)[i]]; -+ ((uint8_t *) &X3)[i] = _sse2neon_sbox[((uint8_t *) &X3)[i]]; -+ } -+ return _mm_set_epi32(((X3 >> 8) | (X3 << 24)) ^ rcon, X3, -+ ((X1 >> 8) | (X1 << 24)) ^ rcon, X1); -+#endif -+} -+#undef SSE2NEON_AES_SBOX -+#undef SSE2NEON_AES_RSBOX -+ -+#if defined(__aarch64__) -+#undef SSE2NEON_XT -+#undef SSE2NEON_MULTIPLY -+#endif -+ -+#else /* __ARM_FEATURE_CRYPTO */ -+// Implements equivalent of 'aesenc' by combining AESE (with an empty key) and -+// AESMC and then manually applying the real key as an xor operation. This -+// unfortunately means an additional xor op; the compiler should be able to -+// optimize this away for repeated calls however. See -+// https://blog.michaelbrase.com/2018/05/08/emulating-x86-aes-intrinsics-on-armv8-a -+// for more details. -+FORCE_INLINE __m128i _mm_aesenc_si128(__m128i a, __m128i b) -+{ -+ return vreinterpretq_m128i_u8(veorq_u8( -+ vaesmcq_u8(vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), -+ vreinterpretq_u8_m128i(b))); -+} -+ -+// Perform one round of an AES decryption flow on data (state) in a using the -+// round key in RoundKey, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdec_si128 -+FORCE_INLINE __m128i _mm_aesdec_si128(__m128i a, __m128i RoundKey) -+{ -+ return vreinterpretq_m128i_u8(veorq_u8( -+ vaesimcq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), -+ vreinterpretq_u8_m128i(RoundKey))); -+} -+ -+// Perform the last round of an AES encryption flow on data (state) in a using -+// the round key in RoundKey, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesenclast_si128 -+FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey) -+{ -+ return _mm_xor_si128(vreinterpretq_m128i_u8(vaeseq_u8( -+ vreinterpretq_u8_m128i(a), vdupq_n_u8(0))), -+ RoundKey); -+} -+ -+// Perform the last round of an AES decryption flow on data (state) in a using -+// the round key in RoundKey, and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesdeclast_si128 -+FORCE_INLINE __m128i _mm_aesdeclast_si128(__m128i a, __m128i RoundKey) -+{ -+ return vreinterpretq_m128i_u8( -+ veorq_u8(vaesdq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)), -+ vreinterpretq_u8_m128i(RoundKey))); -+} -+ -+// Perform the InvMixColumns transformation on a and store the result in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aesimc_si128 -+FORCE_INLINE __m128i _mm_aesimc_si128(__m128i a) -+{ -+ return vreinterpretq_m128i_u8(vaesimcq_u8(vreinterpretq_u8_m128i(a))); -+} -+ -+// Assist in expanding the AES cipher key by computing steps towards generating -+// a round key for encryption cipher using data from a and an 8-bit round -+// constant specified in imm8, and store the result in dst." -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_aeskeygenassist_si128 -+FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon) -+{ -+ // AESE does ShiftRows and SubBytes on A -+ uint8x16_t u8 = vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0)); -+ -+#ifndef _MSC_VER -+ uint8x16_t dest = { -+ // Undo ShiftRows step from AESE and extract X1 and X3 -+ u8[0x4], u8[0x1], u8[0xE], u8[0xB], // SubBytes(X1) -+ u8[0x1], u8[0xE], u8[0xB], u8[0x4], // ROT(SubBytes(X1)) -+ u8[0xC], u8[0x9], u8[0x6], u8[0x3], // SubBytes(X3) -+ u8[0x9], u8[0x6], u8[0x3], u8[0xC], // ROT(SubBytes(X3)) -+ }; -+ uint32x4_t r = {0, (unsigned) rcon, 0, (unsigned) rcon}; -+ return vreinterpretq_m128i_u8(dest) ^ vreinterpretq_m128i_u32(r); -+#else -+ // We have to do this hack because MSVC is strictly adhering to the CPP -+ // standard, in particular C++03 8.5.1 sub-section 15, which states that -+ // unions must be initialized by their first member type. -+ -+ // As per the Windows ARM64 ABI, it is always little endian, so this works -+ __n128 dest{ -+ ((uint64_t) u8.n128_u8[0x4] << 0) | ((uint64_t) u8.n128_u8[0x1] << 8) | -+ ((uint64_t) u8.n128_u8[0xE] << 16) | -+ ((uint64_t) u8.n128_u8[0xB] << 24) | -+ ((uint64_t) u8.n128_u8[0x1] << 32) | -+ ((uint64_t) u8.n128_u8[0xE] << 40) | -+ ((uint64_t) u8.n128_u8[0xB] << 48) | -+ ((uint64_t) u8.n128_u8[0x4] << 56), -+ ((uint64_t) u8.n128_u8[0xC] << 0) | ((uint64_t) u8.n128_u8[0x9] << 8) | -+ ((uint64_t) u8.n128_u8[0x6] << 16) | -+ ((uint64_t) u8.n128_u8[0x3] << 24) | -+ ((uint64_t) u8.n128_u8[0x9] << 32) | -+ ((uint64_t) u8.n128_u8[0x6] << 40) | -+ ((uint64_t) u8.n128_u8[0x3] << 48) | -+ ((uint64_t) u8.n128_u8[0xC] << 56)}; -+ -+ dest.n128_u32[1] = dest.n128_u32[1] ^ rcon; -+ dest.n128_u32[3] = dest.n128_u32[3] ^ rcon; -+ -+ return dest; -+#endif -+} -+#endif -+ -+/* Others */ -+ -+// Perform a carry-less multiplication of two 64-bit integers, selected from a -+// and b according to imm8, and store the results in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_clmulepi64_si128 -+FORCE_INLINE __m128i _mm_clmulepi64_si128(__m128i _a, __m128i _b, const int imm) -+{ -+ uint64x2_t a = vreinterpretq_u64_m128i(_a); -+ uint64x2_t b = vreinterpretq_u64_m128i(_b); -+ switch (imm & 0x11) { -+ case 0x00: -+ return vreinterpretq_m128i_u64( -+ _sse2neon_vmull_p64(vget_low_u64(a), vget_low_u64(b))); -+ case 0x01: -+ return vreinterpretq_m128i_u64( -+ _sse2neon_vmull_p64(vget_high_u64(a), vget_low_u64(b))); -+ case 0x10: -+ return vreinterpretq_m128i_u64( -+ _sse2neon_vmull_p64(vget_low_u64(a), vget_high_u64(b))); -+ case 0x11: -+ return vreinterpretq_m128i_u64( -+ _sse2neon_vmull_p64(vget_high_u64(a), vget_high_u64(b))); -+ default: -+ abort(); -+ } -+} -+ -+FORCE_INLINE unsigned int _sse2neon_mm_get_denormals_zero_mode(void) -+{ -+ union { -+ fpcr_bitfield field; -+#if defined(__aarch64__) || defined(_M_ARM64) -+ uint64_t value; -+#else -+ uint32_t value; -+#endif -+ } r; -+ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ r.value = _sse2neon_get_fpcr(); -+#else -+ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ -+#endif -+ -+ return r.field.bit24 ? _MM_DENORMALS_ZERO_ON : _MM_DENORMALS_ZERO_OFF; -+} -+ -+// Count the number of bits set to 1 in unsigned 32-bit integer a, and -+// return that count in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u32 -+FORCE_INLINE int _mm_popcnt_u32(unsigned int a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+#if __has_builtin(__builtin_popcount) -+ return __builtin_popcount(a); -+#elif defined(_MSC_VER) -+ return _CountOneBits(a); -+#else -+ return (int) vaddlv_u8(vcnt_u8(vcreate_u8((uint64_t) a))); -+#endif -+#else -+ uint32_t count = 0; -+ uint8x8_t input_val, count8x8_val; -+ uint16x4_t count16x4_val; -+ uint32x2_t count32x2_val; -+ -+ input_val = vld1_u8((uint8_t *) &a); -+ count8x8_val = vcnt_u8(input_val); -+ count16x4_val = vpaddl_u8(count8x8_val); -+ count32x2_val = vpaddl_u16(count16x4_val); -+ -+ vst1_u32(&count, count32x2_val); -+ return count; -+#endif -+} -+ -+// Count the number of bits set to 1 in unsigned 64-bit integer a, and -+// return that count in dst. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_popcnt_u64 -+FORCE_INLINE int64_t _mm_popcnt_u64(uint64_t a) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+#if __has_builtin(__builtin_popcountll) -+ return __builtin_popcountll(a); -+#elif defined(_MSC_VER) -+ return _CountOneBits64(a); -+#else -+ return (int64_t) vaddlv_u8(vcnt_u8(vcreate_u8(a))); -+#endif -+#else -+ uint64_t count = 0; -+ uint8x8_t input_val, count8x8_val; -+ uint16x4_t count16x4_val; -+ uint32x2_t count32x2_val; -+ uint64x1_t count64x1_val; -+ -+ input_val = vld1_u8((uint8_t *) &a); -+ count8x8_val = vcnt_u8(input_val); -+ count16x4_val = vpaddl_u8(count8x8_val); -+ count32x2_val = vpaddl_u16(count16x4_val); -+ count64x1_val = vpaddl_u32(count32x2_val); -+ vst1_u64(&count, count64x1_val); -+ return count; -+#endif -+} -+ -+FORCE_INLINE void _sse2neon_mm_set_denormals_zero_mode(unsigned int flag) -+{ -+ // AArch32 Advanced SIMD arithmetic always uses the Flush-to-zero setting, -+ // regardless of the value of the FZ bit. -+ union { -+ fpcr_bitfield field; -+#if defined(__aarch64__) || defined(_M_ARM64) -+ uint64_t value; -+#else -+ uint32_t value; -+#endif -+ } r; -+ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ r.value = _sse2neon_get_fpcr(); -+#else -+ __asm__ __volatile__("vmrs %0, FPSCR" : "=r"(r.value)); /* read */ -+#endif -+ -+ r.field.bit24 = (flag & _MM_DENORMALS_ZERO_MASK) == _MM_DENORMALS_ZERO_ON; -+ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ _sse2neon_set_fpcr(r.value); -+#else -+ __asm__ __volatile__("vmsr FPSCR, %0" ::"r"(r)); /* write */ -+#endif -+} -+ -+// Return the current 64-bit value of the processor's time-stamp counter. -+// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=rdtsc -+FORCE_INLINE uint64_t _rdtsc(void) -+{ -+#if defined(__aarch64__) || defined(_M_ARM64) -+ uint64_t val; -+ -+ /* According to ARM DDI 0487F.c, from Armv8.0 to Armv8.5 inclusive, the -+ * system counter is at least 56 bits wide; from Armv8.6, the counter -+ * must be 64 bits wide. So the system counter could be less than 64 -+ * bits wide and it is attributed with the flag 'cap_user_time_short' -+ * is true. -+ */ -+#if defined(_MSC_VER) -+ val = _ReadStatusReg(ARM64_SYSREG(3, 3, 14, 0, 2)); -+#else -+ __asm__ __volatile__("mrs %0, cntvct_el0" : "=r"(val)); -+#endif -+ -+ return val; -+#else -+ uint32_t pmccntr, pmuseren, pmcntenset; -+ // Read the user mode Performance Monitoring Unit (PMU) -+ // User Enable Register (PMUSERENR) access permissions. -+ __asm__ __volatile__("mrc p15, 0, %0, c9, c14, 0" : "=r"(pmuseren)); -+ if (pmuseren & 1) { // Allows reading PMUSERENR for user mode code. -+ __asm__ __volatile__("mrc p15, 0, %0, c9, c12, 1" : "=r"(pmcntenset)); -+ if (pmcntenset & 0x80000000UL) { // Is it counting? -+ __asm__ __volatile__("mrc p15, 0, %0, c9, c13, 0" : "=r"(pmccntr)); -+ // The counter is set up to count every 64th cycle -+ return (uint64_t) (pmccntr) << 6; -+ } -+ } -+ -+ // Fallback to syscall as we can't enable PMUSERENR in user mode. -+ struct timeval tv; -+ gettimeofday(&tv, NULL); -+ return (uint64_t) (tv.tv_sec) * 1000000 + tv.tv_usec; -+#endif -+} -+ -+#if defined(__GNUC__) || defined(__clang__) -+#pragma pop_macro("ALIGN_STRUCT") -+#pragma pop_macro("FORCE_INLINE") -+#pragma pop_macro("FORCE_INLINE_OPTNONE") -+#endif -+ -+#if defined(__GNUC__) && !defined(__clang__) -+#pragma GCC pop_options -+#endif -+ -+#endif -diff --git c/SeqLib/ssw.h i/SeqLib/ssw.h -index 583442a..5a962c2 100644 ---- c/SeqLib/ssw.h -+++ i/SeqLib/ssw.h -@@ -11,7 +11,11 @@ - #ifndef SSW_H - #define SSW_H - -+#ifdef __ARM_NEON -+#include "sse2neon.h" -+#else - #include -+#endif - #include - #include - #include -diff --git c/src/ssw.c i/src/ssw.c -index 5851613..2fb43b1 100644 ---- c/src/ssw.c -+++ i/src/ssw.c -@@ -36,7 +36,12 @@ - */ - - #include "SeqLib/ssw.h" -+#ifdef __ARM_NEON -+#include "SeqLib/sse2neon.h" -+#else - #include -+#endif -+#include - #include - #include - #include From f36b883cd5fb94270e1d06c2632f6f8ec5e31fe0 Mon Sep 17 00:00:00 2001 From: samsonweiner <40282425+samsonweiner@users.noreply.github.com> Date: Mon, 19 Aug 2024 00:18:07 -0400 Subject: [PATCH 1325/1514] update to new version (#50126) From 25d290f3cbe9f34001feee8e2576a43fc9a385b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ant=C3=B4nio=20Camargo?= Date: Sun, 18 Aug 2024 21:18:36 -0700 Subject: [PATCH 1326/1514] Add `alen` (#50142) * Add `alen` * Fix `alen` recipe --- recipes/alen/build.sh | 6 ++++++ recipes/alen/meta.yaml | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 recipes/alen/build.sh create mode 100644 recipes/alen/meta.yaml diff --git a/recipes/alen/build.sh b/recipes/alen/build.sh new file mode 100644 index 0000000000000..c805061187cf0 --- /dev/null +++ b/recipes/alen/build.sh @@ -0,0 +1,6 @@ +#!/bin/bash -euo + +set -xe + +# build statically linked binary with Rust +RUST_BACKTRACE=1 cargo install --verbose --root $PREFIX --path . \ No newline at end of file diff --git a/recipes/alen/meta.yaml b/recipes/alen/meta.yaml new file mode 100644 index 0000000000000..a1fe8cc4ff58f --- /dev/null +++ b/recipes/alen/meta.yaml @@ -0,0 +1,35 @@ +{% set version = "0.3.1" %} + +package: + name: alen + version: {{ version }} + +build: + number: 0 + run_exports: + - {{ pin_subpackage("alen", max_pin="x.x") }} + +source: + url: https://github.com/jakobnissen/alen/archive/v{{ version }}.tar.gz + sha256: 30c55c0be3396647286ebfca8c46f88e5d7087482e19fb2e64404f87bad8a523 + +requirements: + build: + - {{ compiler('rust') }} + host: + run: + +test: + commands: + - alen --help + +about: + home: https://github.com/jakobnissen/alen + license: MIT + license_file: LICENSE + summary: Simple terminal sequence alignment viewer + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From 38c8ab70a9f225831308b06dc66b4fa8c0b24ead Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 00:32:59 -0400 Subject: [PATCH 1327/1514] Update trackplot to 0.5.0 (#50143) --- recipes/trackplot/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/trackplot/meta.yaml b/recipes/trackplot/meta.yaml index ffc35783b502b..067aa001ae018 100644 --- a/recipes/trackplot/meta.yaml +++ b/recipes/trackplot/meta.yaml @@ -1,5 +1,5 @@ {% set name = "trackplot" %} -{% set version = "0.4.0" %} +{% set version = "0.5.0" %} package: name: trackplot @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 3d9e07e7270401a91db8730dc3675a003dafdcc3b73c4c157beee2c82743a61a + sha256: 0fede14be97cc6a278d5c9f44a6e1bc51bea15af2aba432bd9654d93338d7015 build: noarch: python From 613810592b9b8e917f919a229cfd0ded3a37586c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 00:35:06 -0400 Subject: [PATCH 1328/1514] Update r-sigqc to 0.1.24 (#50138) * Update r-sigqc to 0.1.24 * add run_exports --------- Co-authored-by: mencian --- recipes/r-sigqc/meta.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recipes/r-sigqc/meta.yaml b/recipes/r-sigqc/meta.yaml index 282817c329e6d..1b32c8487d739 100644 --- a/recipes/r-sigqc/meta.yaml +++ b/recipes/r-sigqc/meta.yaml @@ -1,4 +1,4 @@ -{% set version = '0.1.23' %} +{% set version = '0.1.24' %} package: name: r-sigqc @@ -8,14 +8,16 @@ source: url: - {{ cran_mirror }}/src/contrib/sigQC_{{ version }}.tar.gz - {{ cran_mirror }}/src/contrib/Archive/sigQC/sigQC_{{ version }}.tar.gz - sha256: a883ad4b9d0fe3605d73d575030e45e6a89ad1a895bf78303e041808a889ec3a + sha256: a27a567d2c13aaf110b86f4fd6b15cc8949d5bd28fe0e44b92a65b163544e27c build: noarch: generic - number: 1 + number: 0 rpaths: - lib/R/lib/ - lib/ + run_exports: + - {{ pin_subpackage('r-sigqc', max_pin="x.x") }} requirements: host: From 78a76e32b4c9788db3e08fc921a6adc44e7ee0df Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 01:10:21 -0400 Subject: [PATCH 1329/1514] Update python-bioext to 0.21.8 (#50129) * Update python-bioext to 0.21.8 * edit meta.yaml --------- Co-authored-by: mencian --- recipes/python-bioext/build.sh | 2 +- recipes/python-bioext/meta.yaml | 23 +++++++++-------------- 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/recipes/python-bioext/build.sh b/recipes/python-bioext/build.sh index 1975a26f3cea8..9ae5bff3807f0 100644 --- a/recipes/python-bioext/build.sh +++ b/recipes/python-bioext/build.sh @@ -22,7 +22,7 @@ TARGET=$PREFIX/share/$PKG_NAME/reference_data # Symlink reference data to /usr/local/share/$TARGET, since the site-packages # path may vary depending on the python version mkdir -p "$TARGET" -ln -s "$SP_DIR/BioExt/data/references" "$TARGET" +ln -sf "$SP_DIR/BioExt/data/references" "$TARGET" echo "export BEALIGN_REFERENCE_DIR=$TARGET" > "${PREFIX}/etc/conda/activate.d/${PKG_NAME}_activate.sh" echo "unset BEALIGN_REFERENCE_DIR" > "${PREFIX}/etc/conda/deactivate.d/${PKG_NAME}_deactivate.sh" diff --git a/recipes/python-bioext/meta.yaml b/recipes/python-bioext/meta.yaml index 5292f95513bbc..339d178d3e7d6 100644 --- a/recipes/python-bioext/meta.yaml +++ b/recipes/python-bioext/meta.yaml @@ -1,6 +1,6 @@ {% set name = "BioExt" %} -{% set version = "0.21.7" %} -{% set sha256 = "2265c9b6cb5b4a6400635a5d21f32ca1d693b97431ad188965150fc5d6b28ab6" %} +{% set version = "0.21.8" %} +{% set sha256 = "e19ccc6ba7dc1d2b4b13e1a0d6fa60fce626298c0b2e97012b5fc1a4535ea618" %} package: name: python-{{ name|lower }} @@ -11,11 +11,10 @@ source: sha256: {{ sha256 }} patches: - cythonize.patch - - osx-freetype.patch # [osx] + - osx-freetype.patch # [osx] build: - number: 1 - skip: True # [py2k] + number: 0 run_exports: - {{ pin_subpackage("python-bioext", max_pin="x.x") }} @@ -24,19 +23,15 @@ requirements: - {{ compiler('c') }} - {{ compiler('cxx') }} host: - - freetype - python - - cython >=0.28 - - setuptools - - biopython >=1.58 - - numpy >1.20.3 - - scipy - - pysam + - pip + - cython + - numpy run: - freetype - python - - biopython >=1.58 - - numpy >1.20.3 + - biopython >=1.78 + - {{ pin_compatible('numpy') }} - scipy - pysam - joblib From 032a3479bfbc9e5c6c3311c76f72896dd2a01c74 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 01:21:57 -0400 Subject: [PATCH 1330/1514] Update nanosim to 3.2.0 (#50133) * Update nanosim to 3.2.0 * add run_exports * add run_exports * edit meta.yaml * edit meta.yaml --------- Co-authored-by: mencian --- recipes/nanosim/build.sh | 2 +- recipes/nanosim/meta.yaml | 16 ++++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/recipes/nanosim/build.sh b/recipes/nanosim/build.sh index 87b317b6f8ecc..2ec175e3408de 100644 --- a/recipes/nanosim/build.sh +++ b/recipes/nanosim/build.sh @@ -2,7 +2,7 @@ set -eu -o pipefail mkdir -p ${PREFIX}/bin -cp src/*.py ${PREFIX}/bin/ +cp -rf src/*.py ${PREFIX}/bin/ chmod 0755 "${PREFIX}/bin/read_analysis.py" chmod 0755 "${PREFIX}/bin/simulator.py" diff --git a/recipes/nanosim/meta.yaml b/recipes/nanosim/meta.yaml index c61ceb870abb8..ba625982d09e9 100644 --- a/recipes/nanosim/meta.yaml +++ b/recipes/nanosim/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "3.1.0" %} -{% set sha256 = "6b994fc545b80f7a30a426837eb023c4c03c3ffb5807f8513b7e176c3dd5f5ba" %} +{% set version = "3.2.0" %} +{% set sha256 = "bddb970e34e24dde9d1d9c3b0514798c4664875812ac4071e74973e80182c1ca" %} package: name: nanosim @@ -12,6 +12,8 @@ source: build: noarch: generic number: 0 + run_exports: + - {{ pin_subpackage('nanosim', max_pin="x") }} requirements: run: @@ -28,6 +30,8 @@ requirements: - last - samtools - genometools-genometools + - regex + - piecewise-regression test: commands: @@ -36,11 +40,11 @@ test: about: home: https://github.com/bcgsc/NanoSim - license: GPL-3.0 - license_file: - - COPYRIGHT - - LICENSE + license: "GPL-3.0-only" + license_family: GPL3 + license_file: LICENSE summary: 'NanoSim is a fast and scalable read simulator for Nanopore sequencing data.' + dev_url: https://github.com/bcgsc/NanoSim extra: identifiers: From 452bc1c095fde0a0e46c78802b94a975087409f1 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 19 Aug 2024 03:19:52 -0500 Subject: [PATCH 1331/1514] Update last to 1565 (#50147) --- recipes/last/build.sh | 5 ++++- recipes/last/meta.yaml | 5 ++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/recipes/last/build.sh b/recipes/last/build.sh index cdda4074d43e1..a00115fb43b2e 100644 --- a/recipes/last/build.sh +++ b/recipes/last/build.sh @@ -1,9 +1,12 @@ #!/bin/bash -xe +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" + ARCH=$(uname -m) case ${ARCH} in x86_64) ARCH_FLAGS="-msse4" ;; *) ARCH_FLAGS="" ;; esac -make install CXXFLAGS="${CXXFLAGS} -O3 ${ARCH_FLAGS} -pthread -I${PREFIX}/include" prefix="${PREFIX}" +make install CXXFLAGS="${CXXFLAGS} -O3 ${ARCH_FLAGS} -pthread -I${PREFIX}/include ${LDFLAGS}" \ + prefix="${PREFIX}" -j"${CPU_COUNT}" diff --git a/recipes/last/meta.yaml b/recipes/last/meta.yaml index fa4b3bc69aad2..5e279008c7b8c 100644 --- a/recipes/last/meta.yaml +++ b/recipes/last/meta.yaml @@ -1,5 +1,5 @@ {% set name = "LAST" %} -{% set version = "1550" %} +{% set version = "1565" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: "https://gitlab.com/mcfrith/last/-/archive/{{ version }}/last-{{ version }}.tar.gz" - sha256: 34a2d62bba74e6f2dad593b1c3997151617fb86a89a7d689e47a3a5e9377a07d + sha256: 68c64fc1370a36a4af4c2ca0572906cf3c7e69c72acc08b5aec594ba15cd2b92 build: number: 0 @@ -25,7 +25,6 @@ requirements: - python - pillow - parallel - - zlib test: commands: From e54ec9f0ceb8e0cf136758d95b76baf5d3ce9611 Mon Sep 17 00:00:00 2001 From: Vijini Mallawaarachchi Date: Mon, 19 Aug 2024 17:50:03 +0930 Subject: [PATCH 1332/1514] Update graphbin to v1.7.4 (#50146) * Update graphbin to v1.7.4 * Update meta.yaml * Update meta.yaml * clean up recipe --------- Co-authored-by: mencian --- recipes/graphbin/meta.yaml | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/recipes/graphbin/meta.yaml b/recipes/graphbin/meta.yaml index 38193911b89b9..9f7a0c6dd5008 100644 --- a/recipes/graphbin/meta.yaml +++ b/recipes/graphbin/meta.yaml @@ -1,28 +1,32 @@ {% set name = "GraphBin" %} -{% set version = "1.7.1" %} +{% set version = "1.7.4" %} package: name: "{{ name|lower }}" version: "{{ version }}" source: - url: "https://github.com/metagentools/{{ name }}/releases/download/v{{ version }}/{{ name }}-{{ version }}.tar.gz" - sha256: 605de80cd132c349ffd0dffbece4cd265f120df19d9258a79cfea1e73276fa6c + url: "https://github.com/metagentools/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz" + sha256: b1c7080aa61535fb3112e4fe3aae186b346a0074eec6e93650564a3b349cc69c build: number: 0 noarch: python + entry_points: + - graphbin = graphbin.cli:main script: - - "{{ PYTHON }} -m pip install . -vv" + - "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv" + run_exports: + - {{ pin_subpackage('graphbin', max_pin="x") }} requirements: host: - pip - - python + - python >=3.7,<3.11 - flit-core run: - cairocffi - - python >=3.7.1,<3.11 + - python >=3.7,<3.11 - python-igraph - tqdm - click @@ -35,6 +39,7 @@ test: about: home: "https://github.com/Vini2/GraphBin" license: BSD-3 + license_family: BSD license_file: LICENSE summary: "GraphBin: Refined binning of metagenomic contigs using assembly graphs" description: | From 0e7043f1f06dcd3021e26c244902448e90702638 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 04:20:26 -0400 Subject: [PATCH 1333/1514] Update rasusa to 2.1.0 (#50148) --- recipes/rasusa/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/rasusa/meta.yaml b/recipes/rasusa/meta.yaml index c8d0778f8e87c..33a3a87765c19 100644 --- a/recipes/rasusa/meta.yaml +++ b/recipes/rasusa/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.0.0" %} +{% set version = "2.1.0" %} {% set name = "rasusa" %} package: @@ -7,10 +7,10 @@ package: source: url: https://github.com/mbhall88/{{ name }}/archive/{{ version }}.tar.gz - sha256: 7921a94cb5c30c194c3d966e7dd80d034a9cf840d853b3fe1725d90d5800e2bd + sha256: 6d6d97f381bea5a4d070ef7bc132224f3c5c97bc366109261182aa9bc5736d69 build: - number: 2 + number: 0 run_exports: - {{ pin_subpackage('rasusa', max_pin="x.x") }} From c103bb1ebc76710de8570169f934baa269c1ce32 Mon Sep 17 00:00:00 2001 From: Zilong-Li Date: Mon, 19 Aug 2024 12:41:51 +0200 Subject: [PATCH 1334/1514] Add r-mspbwt package (#50145) * bump stitch version 1.7.0 * clean up recipe * Update r-rcpp version * Update r-rcpp version * Update build.sh * Update libcxx version on osx * Update build.sh * Update build.sh * Update build.sh * Update meta.yaml * Delete recipes/r-stitch/conda_build_config.yaml * Update build.sh * Update build.sh * add r-mspbwt * Update mspbwt source * Update build.sh * add license --------- Co-authored-by: mencian --- recipes/r-mspbwt/LICENSE | 674 +++++++++++++++++++++++++++++++++++++ recipes/r-mspbwt/build.sh | 8 + recipes/r-mspbwt/meta.yaml | 50 +++ 3 files changed, 732 insertions(+) create mode 100644 recipes/r-mspbwt/LICENSE create mode 100644 recipes/r-mspbwt/build.sh create mode 100644 recipes/r-mspbwt/meta.yaml diff --git a/recipes/r-mspbwt/LICENSE b/recipes/r-mspbwt/LICENSE new file mode 100644 index 0000000000000..94a9ed024d385 --- /dev/null +++ b/recipes/r-mspbwt/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/recipes/r-mspbwt/build.sh b/recipes/r-mspbwt/build.sh new file mode 100644 index 0000000000000..461b46a617216 --- /dev/null +++ b/recipes/r-mspbwt/build.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +export LC_ALL=C.UTF-8 +export LANG=C.UTF-8 + + +$R CMD INSTALL --build --install-tests mspbwt + diff --git a/recipes/r-mspbwt/meta.yaml b/recipes/r-mspbwt/meta.yaml new file mode 100644 index 0000000000000..afaf068870763 --- /dev/null +++ b/recipes/r-mspbwt/meta.yaml @@ -0,0 +1,50 @@ +{% set version = "0.1.0" %} +{% set sha256 = "384330b4deb7b8f1f83ec705c48a099f7ef890beb14a6dd97e117beb4ae92888" %} + +package: + name: r-mspbwt + version: '{{ version }}' + +source: + - url: https://github.com/rwdavies/mspbwt/archive/refs/tags/{{ version }}.tar.gz + sha256: '{{ sha256 }}' + +build: + number: 0 + run_exports: + - {{ pin_subpackage('r-mspbwt', max_pin="x.x") }} + +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + host: + - r-base + - r-rcpp <=1.0.12 + - r-data.table >=1.11.8 + - r-rrbgen >=0.0.6 + - r-stitch >=1.7.0 + run: + - r-base + - r-rcpp <=1.0.12 + - r-data.table >=1.11.8 + - r-rrbgen >=0.0.6 + - r-stitch >=1.7.0 + +test: + commands: + - $R -e "library('mspbwt');" + +about: + home: https://github.com/rwdavies/mspbwt + license: GPL-3.0-only + license_family: GPL3 + license_file: LICENSE + summary: Multi Symbol Positional Burrows Wheeler Transform + doc_url: https://github.com/rwdavies/mspbwt + dev_url: https://github.com/rwdavies/mspbwt + +extra: + recipe-maintainers: + - Zilong-Li + - rwdavies From d1e518ec27e9adde306f5ab287920904207635ed Mon Sep 17 00:00:00 2001 From: Sang Chul Choi Date: Mon, 19 Aug 2024 19:45:03 +0900 Subject: [PATCH 1335/1514] Add a recipe for polap v0.2.4 (#50131) * Add a recipe for polap v0.2.4 * Add a recipe for polap v0.2.4. A 2nd try. * Add a recipe for polap v0.2.4. A 3rd try. * Add a recipe for polap v0.2.4. A 4th try. * Add a recipe for polap v0.2.4. 5th * Add a recipe for polap v0.2.4. A try of 6th * Add a recipe for polap v0.2.4 * Add a recipe for polap v0.2.4. 8th. * Add a recipe for polap v0.2.4. b9 * Add a recipe for polap v0.2.4 b10 * Add a recipe for polap v0.2.4 b11 * Add a recipe for polap v0.2.4. b12 * Add a recipe for polap v0.2.4. b13 --------- Co-authored-by: Sang Chul Choi --- recipes/polap/LICENSE | 674 ++++++++++++++++++++++++++++++++++++++++ recipes/polap/build.sh | 24 ++ recipes/polap/meta.yaml | 66 ++++ 3 files changed, 764 insertions(+) create mode 100644 recipes/polap/LICENSE create mode 100644 recipes/polap/build.sh create mode 100644 recipes/polap/meta.yaml diff --git a/recipes/polap/LICENSE b/recipes/polap/LICENSE new file mode 100644 index 0000000000000..f288702d2fa16 --- /dev/null +++ b/recipes/polap/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/recipes/polap/build.sh b/recipes/polap/build.sh new file mode 100644 index 0000000000000..343b7d9d0f89f --- /dev/null +++ b/recipes/polap/build.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +mkdir -p $PREFIX/bin + +files=(polap + polap-conda-environment-fmlrc.yaml + polap-conda-environment.yaml + polap-mt.1.c70.3.faa + polap-parsing.sh + polap-pt.2.c70.3.faa + polap.sh + run-polap-genes.R + run-polap-jellyfish.R + run-polap-mtcontig.R + run-polap-ncbitools + run-polap-pairs.R) + +for i in "${files[@]}"; do + cp src/$i $PREFIX/bin +done + +chmod +x $PREFIX/bin/polap +chmod +x $PREFIX/bin/polap.sh +chmod +x $PREFIX/bin/run-polap-* diff --git a/recipes/polap/meta.yaml b/recipes/polap/meta.yaml new file mode 100644 index 0000000000000..06b2d5a6b38c4 --- /dev/null +++ b/recipes/polap/meta.yaml @@ -0,0 +1,66 @@ +{% set name = "polap" %} +{% set version = "0.2.4" %} +{% set sha256 = "4463d4a71a8a3273108a0ab2dff0a4c37a565c05af6ee17ee83dc62404294caf" %} + +package: + name: "{{ name }}" + version: "{{ version }}" + +source: + url: https://github.com/goshng/{{ name }}/archive/refs/tags/{{ version }}.tar.gz + sha256: "{{ sha256 }}" + +build: + noarch: generic + number: 0 + run_exports: + - {{ pin_subpackage('polap', max_pin="x.x") }} + +requirements: + run: + - python + - flye >=2.9.2 + - seqkit + - minimap2 >=2.24 + - blast + - bedtools + - seqtk + - bioawk + - entrez-direct + - sra-tools + - csvtk + - gfastats + - jellyfish + - clustalw + - samtools + - assembly-stats + - orthofinder + - bioconductor-ggtree + - perl-xml-libxml + - icu + - libxml2 + - perl + - r-base + - r-dplyr + - r-readr + - r-optparse + - r-stringr + - r-tidyr + - parallel + +test: + commands: + - polap + +about: + home: https://github.com/goshng/polap + license: GPL-3.0-or-later + license_family: GPL + license_file: LICENSE + summary: "POLAP: plant organelle long-read assembly pipeline" + dev_url: https://github.com/goshng/polap + doc_url: https://goshng.github.io/polap/polap.html + +extra: + recipe-maintainers: + - goshng From ea6558413da955a5b667d9036f3662c1c6790d09 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 06:45:47 -0400 Subject: [PATCH 1336/1514] Update snakemake-storage-plugin-gcs to 1.1.0 (#50150) --- recipes/snakemake-storage-plugin-gcs/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-gcs/meta.yaml b/recipes/snakemake-storage-plugin-gcs/meta.yaml index b269805339223..38445c97fee28 100644 --- a/recipes/snakemake-storage-plugin-gcs/meta.yaml +++ b/recipes/snakemake-storage-plugin-gcs/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-gcs" %} -{% set version = "1.0.0" %} +{% set version = "1.1.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_gcs-{{ version }}.tar.gz - sha256: a5ca15813a74ae18d41cc5dbde0792e2ec5bfc32e8615d458b41dded1b430e14 + sha256: 841ef25be8fa7c6f13b45fd2428c71281e05ef28ce8235f7775e19820fa4564c build: noarch: python From 28756ed89293cd717eefafe64f09c805f37f24ce Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 06:46:13 -0400 Subject: [PATCH 1337/1514] Update deeplc to 3.0.7 (#50149) --- recipes/deeplc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/deeplc/meta.yaml b/recipes/deeplc/meta.yaml index 149359954cb97..ba8400cb54ab6 100644 --- a/recipes/deeplc/meta.yaml +++ b/recipes/deeplc/meta.yaml @@ -1,6 +1,6 @@ {% set name = "DeepLC" %} -{% set version = "3.0.6" %} -{% set sha256 = "54ae9ec71cdddb6793c00b18ea72552e5cf5066c1759cd969b73a54f6b910bfa" %} +{% set version = "3.0.7" %} +{% set sha256 = "40bf8b3c2ef53b103ea5c004d5abc8643eacda83efdcdc7589276cdff9732261" %} package: name: {{ name|lower }} From 7f840df251b817afa712f2d6fc875f7c1356002b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 06:54:01 -0400 Subject: [PATCH 1338/1514] Update plasnet to 0.6.0 (#50153) --- recipes/plasnet/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/plasnet/meta.yaml b/recipes/plasnet/meta.yaml index 82a185e403c37..ebf787284fbee 100644 --- a/recipes/plasnet/meta.yaml +++ b/recipes/plasnet/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.5.1" %} +{% set version = "0.6.0" %} {% set name = "plasnet" %} package: @@ -7,7 +7,7 @@ package: source: url: https://github.com/leoisl/{{ name|lower }}/archive/v{{ version }}.tar.gz - sha256: ca8d17649d59dbf0b5ce20d8c687a9f3a17804007b0fdb59654156b665149285 + sha256: 2afc3e7c91265d3605860e70cffcbe366ba36e0dd5da08331b83fd20883af392 build: number: 0 From 8f329630d1d16e1ee3ffa29d3eab28e64cb683de Mon Sep 17 00:00:00 2001 From: Till Hartmann Date: Mon, 19 Aug 2024 12:54:55 +0200 Subject: [PATCH 1339/1514] Add recipe for cyrcular (#50151) * add recipe for cyrcular * fix copy and paste error of sha256 sum --- recipes/cyrcular/build.sh | 6 +++++ recipes/cyrcular/meta.yaml | 49 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 recipes/cyrcular/build.sh create mode 100644 recipes/cyrcular/meta.yaml diff --git a/recipes/cyrcular/build.sh b/recipes/cyrcular/build.sh new file mode 100644 index 0000000000000..4bbfddb620755 --- /dev/null +++ b/recipes/cyrcular/build.sh @@ -0,0 +1,6 @@ +#!/bin/bash -xeuo + +# Make sure bindgen passes on our compiler flags. +export BINDGEN_EXTRA_CLANG_ARGS="${CPPFLAGS} ${CFLAGS} ${LDFLAGS}" + +cargo install --no-track --locked --root "${PREFIX}" --path . diff --git a/recipes/cyrcular/meta.yaml b/recipes/cyrcular/meta.yaml new file mode 100644 index 0000000000000..26a83c54f2525 --- /dev/null +++ b/recipes/cyrcular/meta.yaml @@ -0,0 +1,49 @@ +{% set version = "0.3.0" %} +{% set sha256 = "eba1dea2e13601b5bc18183fff7d5bf3c07e9ed98f62272453a5473e7bbd36cb" %} + +package: + name: cyrcular + version: {{ version }} + +source: + url: https://github.com/tedil/cyrcular/archive/v{{ version }}.tar.gz + sha256: {{ sha256 }} + +build: + skip: True # [osx] + number: 0 + run_exports: + - {{ pin_subpackage("cyrcular", max_pin="x.x") }} + +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + - {{ compiler('rust') }} + - cmake + - make + - pkg-config + host: + - clangdev + - openssl + - zlib + - xz + - bzip2 + - gsl + - libcblas + - blis + +test: + commands: + - cyrcular -h + +about: + home: https://github.com/tedil/cyrcular + license: MIT + license_family: MIT + summary: Tool for calling circles from nanopore reads + dev_url: https://github.com/tedil/cyrcular + +extra: + additional-platforms: + - linux-aarch64 From 1e4cba384095276651e2c9b887fac05e889829d2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 07:31:13 -0400 Subject: [PATCH 1340/1514] Update earlgrey to 4.4.1 (#50152) --- recipes/earlgrey/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/earlgrey/meta.yaml b/recipes/earlgrey/meta.yaml index 6403cc72f9d2b..a122f3844e1a8 100644 --- a/recipes/earlgrey/meta.yaml +++ b/recipes/earlgrey/meta.yaml @@ -1,6 +1,6 @@ {% set name = "EarlGrey" %} -{% set version = "4.4.0" %} -{% set sha256 = "2557e79c112fdb2e9f1fd96d21394752db0a8004723fe35953d6619c887dcf97" %} +{% set version = "4.4.1" %} +{% set sha256 = "814020ba4967c5622b0b2c618463f350e6073004d3f40365ea03a46cd94d6e12" %} package: name: {{ name|lower }} From cb08fb61dda6ac8a6a3223d616b665d0ffe44c71 Mon Sep 17 00:00:00 2001 From: Alejandro Gonzales-Irribarren Date: Mon, 19 Aug 2024 06:32:21 -0500 Subject: [PATCH 1341/1514] add chromsize v.0.0.2 recipe (#50115) * feat: add chromsize v.0.0.2 recipe * Use compiler('rust') Jinja function. Add aarch64/arm64 builds Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Martin Tzvetanov Grigorov --- recipes/chromsize/build.sh | 6 ++++++ recipes/chromsize/meta.yaml | 40 +++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 recipes/chromsize/build.sh create mode 100644 recipes/chromsize/meta.yaml diff --git a/recipes/chromsize/build.sh b/recipes/chromsize/build.sh new file mode 100644 index 0000000000000..9543cf881c80c --- /dev/null +++ b/recipes/chromsize/build.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +set -xe + +# build statically linked binary with Rust +RUST_BACKTRACE=1 cargo install --verbose --path ./chromsize/ --root ${PREFIX} diff --git a/recipes/chromsize/meta.yaml b/recipes/chromsize/meta.yaml new file mode 100644 index 0000000000000..e28195bb187a3 --- /dev/null +++ b/recipes/chromsize/meta.yaml @@ -0,0 +1,40 @@ +{% set name = "chromsize" %} +{% set version = "0.0.2" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/alejandrogzi/{{ name }}/archive/refs/tags/v.{{ version }}.tar.gz + sha256: e0358a7a36a74b24b8cbb9034b8060de90d1af867baa66bc093192df9734bd40 + +build: + number: 0 + run_exports: + - {{ pin_subpackage('chromsize', max_pin="x.x") }} + +requirements: + build: + - {{ compiler("cxx") }} + - {{ compiler("rust") }} + - pkg-config + +test: + commands: + - chromsize --help + - chromsize --version + +about: + home: https://github.com/alejandrogzi/chromsize + license: MIT + license_family: MIT + license_file: LICENSE + summary: "just get your chrom sizes" + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 + recipe-maintainers: + - alejandrogzi From ca2c4194c1f026edc51a375d315a27e09c3ec282 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 07:58:50 -0400 Subject: [PATCH 1342/1514] Update snakemake-interface-storage-plugins to 3.3.0 (#50157) --- recipes/snakemake-interface-storage-plugins/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-interface-storage-plugins/meta.yaml b/recipes/snakemake-interface-storage-plugins/meta.yaml index 6703b8f0f17f5..57fe560c93036 100644 --- a/recipes/snakemake-interface-storage-plugins/meta.yaml +++ b/recipes/snakemake-interface-storage-plugins/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-interface-storage-plugins" %} -{% set version = "3.2.4" %} +{% set version = "3.3.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_interface_storage_plugins-{{ version }}.tar.gz - sha256: a44b99339f369703e3cfa5f21f3f513ca2000c8790c364be0e5df7d03fb264d3 + sha256: 203d8f794dfb37d568ad01a6c375fa8beac36df8e488c0f9b9f75984769c362a build: noarch: python From 7bfdaf76ca57a6354246f80b0595a510f666504a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 07:59:33 -0400 Subject: [PATCH 1343/1514] Update mehari to 0.28.0 (#50156) --- recipes/mehari/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mehari/meta.yaml b/recipes/mehari/meta.yaml index 2c733259448fa..a94f64f1be1ae 100644 --- a/recipes/mehari/meta.yaml +++ b/recipes/mehari/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.27.0" %} -{% set sha256 = "f29f2af3cbf0f8e94887dfbd8518ed3be693f85637aca6f2617ce42ee0cd7621" %} +{% set version = "0.28.0" %} +{% set sha256 = "9ace8661cfa769dc2b1ec1ce47af329b92cb63a27453fb2cc23a385e6009b0b5" %} package: name: mehari From 468d49ab8480ff1a8d3caa539fdf42035b0322f5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 10:39:23 -0400 Subject: [PATCH 1344/1514] Update wfmash to 0.19.0 (#50161) --- recipes/wfmash/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/wfmash/meta.yaml b/recipes/wfmash/meta.yaml index cc440afd74bf9..92d3eb3b21ec8 100644 --- a/recipes/wfmash/meta.yaml +++ b/recipes/wfmash/meta.yaml @@ -1,5 +1,5 @@ {% set name = "wfmash" %} -{% set version = "0.18.0" %} +{% set version = "0.19.0" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: https://github.com/waveygang/{{ name }}/releases/download/v{{ version }}/{{ name }}-v{{ version }}.tar.gz - sha256: 8a86254dec1fa972cf4f15aa8eb2a21a8c241c1d28df4bcc8c6b10cce77cd510 + sha256: db6eefc7296739c6276daa8ed413c171487eceed1a62588c1d2fdb40011b011f build: skip: True # [osx] From 410cc0cd7de486a1858b52b3d53fa32d7b26598e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 12:11:20 -0400 Subject: [PATCH 1345/1514] Update snakemake to 8.18.1 (#50159) --- recipes/snakemake/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake/meta.yaml b/recipes/snakemake/meta.yaml index 2e94fb3adf2c7..db7a22c4b8c4a 100644 --- a/recipes/snakemake/meta.yaml +++ b/recipes/snakemake/meta.yaml @@ -1,7 +1,7 @@ # Attention: when upgrading the version, please compare below dependencies with # https://github.com/snakemake/snakemake/blob/{version}/setup.cfg {% set name = "snakemake" %} -{% set version = "8.18.0" %} +{% set version = "8.18.1" %} package: name: {{ name }} @@ -9,7 +9,7 @@ package: source: url: https://pypi.io/packages/source/s/{{ name }}/snakemake-{{ version }}.tar.gz - sha256: d9e7e44caa5218ee8fb3248e6642366fd69bcf3d56bcb2596c1ceb5437d7c5c4 + sha256: aac92b567d7783bb1be7854f0393254c7219be97961c77750e6463af181c1de1 build: number: 0 From 959add1f44483a8dee2d10399b717e75af66d1cf Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 14:22:00 -0400 Subject: [PATCH 1346/1514] Update pybiolib to 1.2.71 (#50168) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index 204fd3707d32c..f9ad5ee41554e 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.2.50" %} +{% set version = "1.2.71" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 126ad5392df11a3f7cb4e3def931b0d8900472c251f56e1b58ff6d74cc4726e5 + sha256: 9b81929a07564f0c5309ea20b37d963baa703ca508ddda53dd085526e5659c8f build: number: 0 From 3ce2eeb8d44bd175e5d38d783805e81d59e6520d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 14:22:19 -0400 Subject: [PATCH 1347/1514] Update multiqc to 1.24 (#50167) --- recipes/multiqc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/multiqc/meta.yaml b/recipes/multiqc/meta.yaml index 05c07f9b53a31..2d92bfac620bc 100644 --- a/recipes/multiqc/meta.yaml +++ b/recipes/multiqc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "multiqc" %} -{% set version = "1.23" %} +{% set version = "1.24" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/MultiQC/MultiQC/archive/v{{ version }}.tar.gz - sha256: 1f874e3bdaf3f183ff474126e76791e420732764c2988d8074b826d92aa7282a + sha256: 9293f130c3f9ad5ead7b8a1aca96c56f261809bdb7d3a5790892b5f74c862a37 build: number: 0 From a0c4881a7a2e3063151f21f15771c9138eaf77da Mon Sep 17 00:00:00 2001 From: Thanh Lee Date: Mon, 19 Aug 2024 19:36:44 +0100 Subject: [PATCH 1348/1514] noarch: generic to python (#50170) --- recipes/plasnet/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/plasnet/meta.yaml b/recipes/plasnet/meta.yaml index ebf787284fbee..c210d46bcaf0e 100644 --- a/recipes/plasnet/meta.yaml +++ b/recipes/plasnet/meta.yaml @@ -10,8 +10,8 @@ source: sha256: 2afc3e7c91265d3605860e70cffcbe366ba36e0dd5da08331b83fd20883af392 build: - number: 0 - noarch: generic + number: 1 + noarch: python script: python -m pip install . --no-deps --ignore-installed -vvv entry_points: - plasnet = plasnet.plasnet_main:main From bdcbc3d35d097828c175f1f38fb651fddd0b42c0 Mon Sep 17 00:00:00 2001 From: richard-burhans Date: Mon, 19 Aug 2024 14:38:51 -0400 Subject: [PATCH 1349/1514] update source for segalign (#50166) --- recipes/segalign-full/meta.yaml | 10 +++++----- recipes/segalign-galaxy/meta.yaml | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/recipes/segalign-full/meta.yaml b/recipes/segalign-full/meta.yaml index 84bf15404adf9..9116ff7dd08a4 100644 --- a/recipes/segalign-full/meta.yaml +++ b/recipes/segalign-full/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 0 + number: 1 noarch: generic run_exports: - {{ pin_compatible('segalign-full', max_pin='x.x') }} @@ -24,16 +24,16 @@ test: - which faToTwoBit about: - home: https://github.com/gsneha26/SegAlign + home: https://github.com/galaxyproject/SegAlign summary: 'SegAlign: A Scalable GPU-Based Whole Genome Aligner' description: | SegAlign is a Scalable GPU System for Pairwise Whole Genome Alignments based on LASTZ's seed-filter-extend paradigm. license: MIT license_family: MIT - license_url: https://github.com/gsneha26/SegAlign/blob/main/LICENSE - doc_url: https://github.com/gsneha26/SegAlign/blob/main/README.md - dev_url: https://github.com/richard-burhans/SegAlign/blob/scoring/README.md + license_url: https://github.com/galaxyproject/SegAlign/blob/main/LICENSE + doc_url: https://github.com/galaxyproject/SegAlign/blob/main/README.md + dev_url: https://github.com/galaxyproject/SegAlign extra: identifiers: diff --git a/recipes/segalign-galaxy/meta.yaml b/recipes/segalign-galaxy/meta.yaml index 587bf1cacd24e..0912fc87c1272 100644 --- a/recipes/segalign-galaxy/meta.yaml +++ b/recipes/segalign-galaxy/meta.yaml @@ -5,7 +5,7 @@ package: version: {{ version }} build: - number: 1 + number: 2 noarch: generic run_exports: - {{ pin_compatible('segalign-galaxy', max_pin='x.x') }} @@ -25,16 +25,16 @@ test: - which faToTwoBit about: - home: https://github.com/gsneha26/SegAlign + home: https://github.com/galaxyproject/SegAlign summary: 'SegAlign: A Scalable GPU-Based Whole Genome Aligner' description: | SegAlign is a Scalable GPU System for Pairwise Whole Genome Alignments based on LASTZ's seed-filter-extend paradigm. license: MIT license_family: MIT - license_url: https://github.com/gsneha26/SegAlign/blob/main/LICENSE - doc_url: https://github.com/gsneha26/SegAlign/blob/main/README.md - dev_url: https://github.com/richard-burhans/SegAlign/blob/scoring/README.md + license_url: https://github.com/galaxyproject/SegAlign/blob/main/LICENSE + doc_url: https://github.com/galaxyproject/SegAlign/blob/main/README.md + dev_url: https://github.com/galaxyproject/SegAlign extra: identifiers: From 4b62c3ddcc6710b14a942964654b0efc1fb6d695 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 14:39:11 -0400 Subject: [PATCH 1350/1514] Update pasty to 2.1.0 (#50171) --- recipes/pasty/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pasty/meta.yaml b/recipes/pasty/meta.yaml index eb3c86b19ff16..6bf522de760df 100644 --- a/recipes/pasty/meta.yaml +++ b/recipes/pasty/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pasty" %} -{% set version = "2.0.2" %} +{% set version = "2.1.0" %} package: name: {{ name | lower }} @@ -7,10 +7,10 @@ package: source: url: https://github.com/rpetit3/pasty/archive/v{{ version }}.tar.gz - sha256: 4c1a099dd2fd7a0a190f1e13c0df98aeb744ca068619a89055a8a2e505213df6 + sha256: 408bfe89cd33be1f532d4a280ede1d4f1e17e1ffa8283d8746fc36c5d2d27564 build: - number: 1 + number: 0 noarch: generic run_exports: - {{ pin_subpackage(name, max_pin='x.x') }} From 534c70d55a659fa75a3adaf9f2dfb0f93dc624ce Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 14:40:06 -0400 Subject: [PATCH 1351/1514] Update snakemake-storage-plugin-fs to 1.0.6 (#50165) --- recipes/snakemake-storage-plugin-fs/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-fs/meta.yaml b/recipes/snakemake-storage-plugin-fs/meta.yaml index 579a4f5664acd..571c12e62ff7b 100644 --- a/recipes/snakemake-storage-plugin-fs/meta.yaml +++ b/recipes/snakemake-storage-plugin-fs/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-fs" %} -{% set version = "1.0.5" %} +{% set version = "1.0.6" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_fs-{{ version }}.tar.gz - sha256: 4f7ce1bf16d10510f8f4a2fde2ae22d047131020bd5efa603132dabfc85f444b + sha256: 8d8ead1883d7e670b1d34ea084f7c927bb4fab71fd8d221b7478680cc09a443e build: noarch: python From b2c56d9fbbafe62b46cf9e0596569b3d398a8bb9 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Mon, 19 Aug 2024 22:17:56 +0300 Subject: [PATCH 1352/1514] r-mspbwt: add aarch64 build (#50155) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/r-mspbwt/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/r-mspbwt/meta.yaml b/recipes/r-mspbwt/meta.yaml index afaf068870763..c4e12068526ed 100644 --- a/recipes/r-mspbwt/meta.yaml +++ b/recipes/r-mspbwt/meta.yaml @@ -10,7 +10,7 @@ source: sha256: '{{ sha256 }}' build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('r-mspbwt', max_pin="x.x") }} @@ -45,6 +45,8 @@ about: dev_url: https://github.com/rwdavies/mspbwt extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - Zilong-Li - rwdavies From fd5142f018372242634dfc914f3351593fa480ae Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 15:18:21 -0400 Subject: [PATCH 1353/1514] Update orthanq to 1.7.5 (#50160) --- recipes/orthanq/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/orthanq/meta.yaml b/recipes/orthanq/meta.yaml index 4beab70fbdc47..9d9e65247ca0d 100644 --- a/recipes/orthanq/meta.yaml +++ b/recipes/orthanq/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.7.4" %} +{% set version = "1.7.5" %} package: name: orthanq @@ -12,7 +12,7 @@ build: source: url: https://github.com/orthanq/orthanq/archive/v{{ version }}.tar.gz - sha256: b8cc21f9f39b5f7461b504df5a7b7201a6a6d19dba7bb849281302da21ce4772 + sha256: f116404548dd15641785177a39b272d91c43c5f66e0022266277e51811426e24 requirements: build: From 773dc3ae556bbae68d9f409b11dc688a3225e6c9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 15:18:35 -0400 Subject: [PATCH 1354/1514] Update cloci to 0.3.1 (#50164) --- recipes/cloci/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/cloci/meta.yaml b/recipes/cloci/meta.yaml index 99e3b7b279aee..5f1fcb2d0f3b9 100644 --- a/recipes/cloci/meta.yaml +++ b/recipes/cloci/meta.yaml @@ -1,5 +1,5 @@ {% set name = "cloci" %} -{% set version = "0.3.0" %} +{% set version = "0.3.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/cloci-{{ version }}.tar.gz - sha256: 46f5387ff625b79038a130f5d501e6dd18b3ccd8ec79d027e6ca78d97e8ad0c2 + sha256: 2bf3eff7a017174633337d72b1c221098aca161b6d55d362e34a4c5bcc62c17d build: entry_points: From cccc8949b7cb06942eb217c582a27ad6943ad88e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 15:18:58 -0400 Subject: [PATCH 1355/1514] Update parascopy to 1.17.0 (#50162) --- recipes/parascopy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/parascopy/meta.yaml b/recipes/parascopy/meta.yaml index d838dc1927051..1b1f041d3a225 100644 --- a/recipes/parascopy/meta.yaml +++ b/recipes/parascopy/meta.yaml @@ -1,5 +1,5 @@ {% set name = "parascopy" %} -{% set version = "1.16.3" %} +{% set version = "1.17.0" %} package: name: {{ name|lower }} @@ -14,7 +14,7 @@ build: source: url: https://github.com/tprodanov/{{ name }}/archive/v{{ version }}.tar.gz - sha256: 50054ef93d33d5ea17fa9fcd479db41811d10db3ca15950ebfb5ab451e0b6a35 + sha256: 42d2d32888a1c57ccee272d26015c96663c81cf36a747a3f5e1b1deea813c953 requirements: build: From c15ac5e3cc159d878a18208d53a083af0cb4a6df Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 15:19:43 -0400 Subject: [PATCH 1356/1514] Update mycotools to 0.32.1 (#50163) * Update mycotools to 0.31.49 * Update mycotools to 0.32.1 --- recipes/mycotools/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index 8fb5793d984bd..e2d89a1dcec9a 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mycotools" %} -{% set version = "0.31.48" %} +{% set version = "0.32.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/mycotools-{{ version }}.tar.gz - sha256: 0ab05973c50e363f6554bf15d8fa16f77765e0152acc35ba14ccca4cc054ce84 + sha256: 346fa5ea6e5efa4de4ddea342a125857351c9d24738be8284e83974cf0ffadb6 build: entry_points: From ade28bb3332865d2b040a2b7a3f93e5a5d664acc Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 20 Aug 2024 00:05:11 +0300 Subject: [PATCH 1357/1514] python-bioext: add aarch64/arm64 builds (#50154) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/python-bioext/meta.yaml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/recipes/python-bioext/meta.yaml b/recipes/python-bioext/meta.yaml index 339d178d3e7d6..2682dd9d0bccb 100644 --- a/recipes/python-bioext/meta.yaml +++ b/recipes/python-bioext/meta.yaml @@ -14,7 +14,7 @@ source: - osx-freetype.patch # [osx] build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage("python-bioext", max_pin="x.x") }} @@ -74,6 +74,11 @@ test: about: home: https://github.com/veg/BioExt.git - license: GPL-3 + license: GPL-3.0-only license_family: GPL3 summary: 'A few handy bioinformatics tools not already in BioPython' + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 \ No newline at end of file From 3795304f9a81b080887e5d4a01f930c31deee559 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 17:40:57 -0400 Subject: [PATCH 1358/1514] Update chopper to 0.9.0 (#50174) --- recipes/chopper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/chopper/meta.yaml b/recipes/chopper/meta.yaml index d3d1d006ac7f4..00dbb1806606e 100644 --- a/recipes/chopper/meta.yaml +++ b/recipes/chopper/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.8.0" %} +{% set version = "0.9.0" %} package: name: chopper @@ -11,7 +11,7 @@ build: source: url: https://github.com/wdecoster/chopper/archive/v{{ version }}.tar.gz - sha256: d79c3a3af8daf9e81f4a209061629e823a3cb0275ff13f9f7e800b9f62c19bab + sha256: ae5b6f8f5ffde45582998b63cb45b4221b25ee37a9fde7a256e653c7f3f12075 requirements: build: From 5894dcb33baeffe68851e5e449ab9b8cf1ecf850 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 21:44:53 -0400 Subject: [PATCH 1359/1514] Update ska2 to 0.3.10 (#50173) --- recipes/ska2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ska2/meta.yaml b/recipes/ska2/meta.yaml index f6a8f34b16558..146eac47fee64 100644 --- a/recipes/ska2/meta.yaml +++ b/recipes/ska2/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ska2" %} -{% set version = "0.3.9" %} +{% set version = "0.3.10" %} package: name: {{ name|lower}} @@ -7,7 +7,7 @@ package: source: url: https://github.com/bacpop/ska.rust/archive/v{{ version }}.tar.gz - sha256: e25a05c2c08a871feb5f9eca6993d9719a63a97323385353a58ba30fa829b5c1 + sha256: ca0bdec75d2e0f9d7936e423bb8e9b2984cd3e5c5ee73e843300d93df94f6ef5 build: number: 0 From 9262c36bbcaa2f2fb6d2ca30e567ff9912a7f7a1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 21:45:20 -0400 Subject: [PATCH 1360/1514] Update oakvar to 2.11.5 (#50175) --- recipes/oakvar/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/oakvar/meta.yaml b/recipes/oakvar/meta.yaml index 447b1ecb074e9..4121090865787 100644 --- a/recipes/oakvar/meta.yaml +++ b/recipes/oakvar/meta.yaml @@ -1,6 +1,6 @@ {% set name = "OakVar" %} -{% set version = "2.11.4" %} -{% set sha256 = "7cdb934152826f23b5d125e493e60c034c353f45ce566215020b43ba3eb1b4e7" %} +{% set version = "2.11.5" %} +{% set sha256 = "9967ff6751ea8141ccf5c879a128c47ab78b30035091209680b5d67fa8b88e6c" %} package: name: {{ name|lower }} From 0b7b663261dcf6c648d0aa1a756a104c80af8d97 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 21:45:42 -0400 Subject: [PATCH 1361/1514] Update ntjoin to 1.1.5 (#50176) --- recipes/ntjoin/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/ntjoin/meta.yaml b/recipes/ntjoin/meta.yaml index a369b9bf428cc..2e784d9954226 100644 --- a/recipes/ntjoin/meta.yaml +++ b/recipes/ntjoin/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.1.4" %} +{% set version = "1.1.5" %} package: name: ntjoin @@ -6,10 +6,10 @@ package: source: url: https://github.com/bcgsc/ntJoin/releases/download/v{{ version }}/ntJoin-{{ version }}.tar.gz - sha256: ec24330e11ea63948d1b124273dae79e80088d672f7e536e7d97787f0c2bb644 + sha256: 808260e3e8c25121f4b7b88a0dd1766c9da0b59d5ebf843a5ec84efb13944009 build: - number: 1 + number: 0 noarch: generic run_exports: - {{ pin_subpackage("ntjoin", max_pin="x") }} From 92d3c3a078fe59ea0dbceda6293077a888058919 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 21:46:46 -0400 Subject: [PATCH 1362/1514] Update pathogen-embed to 3.0.0 (#50177) --- recipes/pathogen-embed/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pathogen-embed/meta.yaml b/recipes/pathogen-embed/meta.yaml index 585b65b93e761..4ff89cddc19cf 100644 --- a/recipes/pathogen-embed/meta.yaml +++ b/recipes/pathogen-embed/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.3.0" %} +{% set version = "3.0.0" %} {% set name = "pathogen-embed" %} package: @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pathogen_embed-{{ version }}.tar.gz - sha256: 47ef737b7609593c6de143c17f54bc1e526aaa615773aad73bb6464de67cbff1 + sha256: 3315a03c7fda6bcb49d50cbd3f4c99ab1ca1f261623e95cdce7359aca184cdea build: number: 0 From e44055c31ef7ff52eab9d80d3d65adcbb18b8811 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 19 Aug 2024 21:47:52 -0400 Subject: [PATCH 1363/1514] Update abritamr to 1.0.19 (#50180) --- recipes/abritamr/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/abritamr/meta.yaml b/recipes/abritamr/meta.yaml index 62bda213a61cf..edcc501e5cbc0 100644 --- a/recipes/abritamr/meta.yaml +++ b/recipes/abritamr/meta.yaml @@ -1,6 +1,6 @@ {% set name = "abritamr" %} -{% set version = "1.0.18" %} -{% set sha256 = "d7ea14271302177a4402f0b73ecb36212595960cbc3b2ce46cd50ac2af5b46f3" %} +{% set version = "1.0.19" %} +{% set sha256 = "a0571b3428186295ec27343fa4b648105be81a7fd871462a501c4c2bec43c335" %} package: name: "{{ name|lower }}" From e65927852a8386240637cb6886f23894c99e6d21 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 20 Aug 2024 01:26:15 -0500 Subject: [PATCH 1364/1514] Add recipe for xclone v0.3.8 (#50181) --- recipes/xclone/meta.yaml | 50 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 recipes/xclone/meta.yaml diff --git a/recipes/xclone/meta.yaml b/recipes/xclone/meta.yaml new file mode 100644 index 0000000000000..9d503c1eb1603 --- /dev/null +++ b/recipes/xclone/meta.yaml @@ -0,0 +1,50 @@ +{% set name = "xclone" %} +{% set version = "0.3.8" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.org/packages/source/{{ name[0] }}/{{ name }}/xclone-{{ version }}.tar.gz + sha256: 67fbf73ece48f41e2ae4531f2554c80ff62472066cb18b11045f7f41307a9115 + +build: + number: 0 + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + run_exports: + - {{ pin_subpackage('xclone', max_pin="x.x") }} + +requirements: + host: + - python >=3.9 + - poetry-core + - pip + run: + - python >=3.9 + - numpy >=1.26.4,<2.0.0 + - pandas >=2.2.2,<3.0.0 + - scipy >=1.13.1,<2.0.0 + - matplotlib-base >=3.9.0,<4.0.0 + - anndata >=0.10.7,<0.11.0 + - statsmodels >=0.14.2,<0.15.0 + - scanpy >=1.10.1,<2.0.0 + - h5py >=3.11.0,<4.0.0 + - palettable >=3.3.3,<4.0.0 + - requests >=2.32.3,<3.0.0 + - importlib-metadata >=7.1.0,<8.0.0 + - squidpy >=1.5.0,<2.0.0 + +test: + imports: + - xclone + +about: + home: "https://github.com/single-cell-genetics/XClone" + summary: "Inference of clonal Copy Number Alterations in single cells." + license: "Apache-2.0" + license_family: APACHE + license_file: LICENSE + dev_url: "https://github.com/single-cell-genetics/XClone" + doc_url: "https://xclone-cnv.readthedocs.io/en/latest" From 93f99d8f44ad4d056fdee9fa5a3aaded5d2e7935 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 02:32:04 -0400 Subject: [PATCH 1365/1514] Update fqtk to 0.3.1 (#50178) * Update fqtk to 0.3.1 * add run_exports --------- Co-authored-by: mencian --- recipes/fqtk/build.sh | 8 ++------ recipes/fqtk/meta.yaml | 23 +++++++++++++---------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/recipes/fqtk/build.sh b/recipes/fqtk/build.sh index 403679dd60ea7..9a2b15637fd93 100644 --- a/recipes/fqtk/build.sh +++ b/recipes/fqtk/build.sh @@ -1,11 +1,7 @@ #!/bin/bash -e -# TODO: Remove the following export when pinning is updated and we use -# {{ compiler('rust') }} in the recipe. -export \ - CARGO_NET_GIT_FETCH_WITH_CLI=true \ - CARGO_HOME="${BUILD_PREFIX}/.cargo" - export BINDGEN_EXTRA_CLANG_ARGS="${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" +# build statically linked binary with Rust +RUST_BACKTRACE=1 cargo install --no-track --verbose --root "${PREFIX}" --path . diff --git a/recipes/fqtk/meta.yaml b/recipes/fqtk/meta.yaml index dce25b0d49c3e..119c717d3a0c1 100644 --- a/recipes/fqtk/meta.yaml +++ b/recipes/fqtk/meta.yaml @@ -1,36 +1,39 @@ {% set name = "fqtk" %} -{% set version = "0.3.0" %} +{% set version = "0.3.1" %} package: name: {{ name }} version: {{ version }} -build: - number: 0 - source: url: https://github.com/fulcrumgenomics/{{ name }}/archive/v{{ version }}.tar.gz - sha256: b03c993e5705d2e764ee696559ed31002b04f036ad103e64c18659aa309cbc6b + sha256: f64598b7493b2c87fe8b17330c137c98eb66e352f3648809e4128ea25f300a2e + +build: + number: 0 + run_exports: + - {{ pin_subpackage('fqtk', max_pin="x.x") }} requirements: build: - {{ compiler('cxx') }} - - rust >=1.60 + - {{ compiler('rust') }} - pkg-config - make - cmake - host: - run: test: commands: - fqtk --help about: - home: https://github.com/fulcrumgenomics/{{ name }} + home: "https://github.com/fulcrumgenomics/{{ name }}" license: MIT + license_family: MIT license_file: LICENSE - summary: A toolkit for working with FASTQ files. + summary: "A toolkit for working with FASTQ files." + dev_url: "https://github.com/fulcrumgenomics/{{ name }}" + doc_url: "https://github.com/fulcrumgenomics/fqtk/blob/v{{ version }}/README.md" extra: recipe-maintainers: From c8f6694613b6b8244306c12703786fd1346b4e66 Mon Sep 17 00:00:00 2001 From: Zilong-Li Date: Tue, 20 Aug 2024 09:08:15 +0200 Subject: [PATCH 1366/1514] Update r-quilt version to 2.0.0 (#50158) * bump stitch version 1.7.0 * clean up recipe * Update r-rcpp version * Update r-rcpp version * Update build.sh * Update libcxx version on osx * Update build.sh * Update build.sh * Update build.sh * Update meta.yaml * Delete recipes/r-stitch/conda_build_config.yaml * Update build.sh * Update build.sh * add r-mspbwt * Update mspbwt source * Update build.sh * add license * update r-quilt * Update meta.yaml * Update build.sh --------- Co-authored-by: mencian --- recipes/r-quilt/build.sh | 4 +++- recipes/r-quilt/meta.yaml | 42 +++++++++++++-------------------------- 2 files changed, 17 insertions(+), 29 deletions(-) diff --git a/recipes/r-quilt/build.sh b/recipes/r-quilt/build.sh index b0bb175fa394d..cc2b41e684b9d 100644 --- a/recipes/r-quilt/build.sh +++ b/recipes/r-quilt/build.sh @@ -1,10 +1,12 @@ #!/bin/bash +set -xe + export LC_ALL=C.UTF-8 export LANG=C.UTF-8 cp $SRC_DIR/QUILT.R $PREFIX/bin/ cd $SRC_DIR/QUILT -$R CMD INSTALL --build --install-tests . +${R} CMD INSTALL --build --install-tests . diff --git a/recipes/r-quilt/meta.yaml b/recipes/r-quilt/meta.yaml index 75db7688a7028..6b69360a3a7fc 100644 --- a/recipes/r-quilt/meta.yaml +++ b/recipes/r-quilt/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.0.5" %} -{% set sha256 = "88f46a0c0f54260b8df9f150b0cf9bdedba6f9408bb7da36318055f2a9036266" %} +{% set version = "2.0.0" %} +{% set sha256 = "723c52371fd8c495a54165b168db70d8c4ce001cd4dc902e63db0240318e8a6e" %} package: name: r-quilt @@ -12,7 +12,7 @@ source: build: number: 0 run_exports: - - {{ pin_subpackage('r-quilt', max_pin="1") }} + - {{ pin_subpackage('r-quilt', max_pin="x") }} requirements: build: @@ -20,34 +20,19 @@ requirements: - {{ compiler('cxx') }} host: - r-base - - r-rcpp >=0.12.18 - - r-rcpparmadillo >=0.8.600.0.0 - - r-data.table >=1.11.8 + - r-rcpp <=1.0.12 + - r-rcppeigen - r-rrbgen >=0.0.6 - - r-stitch >=1.6.6 - - xz - - gmp - - mpfr - - mpc >=1.1.0 - - libblas - - zlib + - r-stitch >=1.7.0 + - r-mspbwt >=0.1.0 run: - r-base - - r-rcpp >=0.12.18 - - r-rcpparmadillo >=0.8.600.0.0 - - r-data.table >=1.11.8 + - r-rcpp <=1.0.12 + - r-rcppeigen - r-rrbgen >=0.0.6 - - r-stitch >=1.6.6 - - r-optparse - - xz - - gmp - - mpfr - - mpc >=1.1.0 - - r-testthat >=2.0.0 - - htslib >=1.4 - - samtools >=1.4 - - rsync - - zlib + - r-stitch >=1.7.0 + - r-mspbwt >=0.1.0 + - r-optparse test: commands: @@ -58,10 +43,11 @@ about: license: GPL-3.0-only license_family: GPL3 license_file: LICENSE - summary: Read aware low coverage whole genome sequence imputation from a reference panel + summary: Rapid and accurate genotype imputation from low coverage short read, long read, and cell free DNA sequence doc_url: https://github.com/rwdavies/quilt dev_url: https://github.com/rwdavies/quilt extra: recipe-maintainers: + - Zilong-Li - rwdavies From 310096671e46f7fe511e0ce577d7c8b2b2afb4fb Mon Sep 17 00:00:00 2001 From: "Zachary Konkel, PhD" Date: Tue, 20 Aug 2024 00:18:12 -0700 Subject: [PATCH 1367/1514] Update mycotools (#50169) * init * add linting error fixes * update version * add cython to host section * add cython to run * remove clipkit, wont compile without cython and cython cant be in the run section * remove unnecessary pins * update mycotools * remove PYTHON variable * correct checksumg * Update meta.yaml * update mycotools * update mycotools * add cloci * need to add on its own branch * update mycotools * update mycotools * update mycotools * update mycotools * update mycotools * update mycotools * update mycotools * update mycotools * update mycotools * update mycotools * update mycotools * update mycotools * update mycotools * add cloci * include website * include all dependencies * Use SPDX value for the license * update cloci * update package and dependencies * clean up recipe * bump build number --------- Co-authored-by: Martin Grigorov Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Co-authored-by: mencian --- recipes/cloci/meta.yaml | 20 +++++++++++--------- recipes/mycotools/meta.yaml | 25 ++++++++++++++----------- 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/recipes/cloci/meta.yaml b/recipes/cloci/meta.yaml index 5f1fcb2d0f3b9..ca9f38a84593d 100644 --- a/recipes/cloci/meta.yaml +++ b/recipes/cloci/meta.yaml @@ -7,9 +7,11 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/cloci-{{ version }}.tar.gz - sha256: 2bf3eff7a017174633337d72b1c221098aca161b6d55d362e34a4c5bcc62c17d + sha256: 2bf3eff7a017174633337d72b1c221098aca161b6d55d362e34a4c5bcc62c17d build: + number: 1 + noarch: python entry_points: - cloci = cloci.main:cli - cloci2enrich = cloci.tools.cloci2enrich:cli @@ -17,18 +19,19 @@ build: - hg2hg_net = cloci.tools.hg2hg_net:cli - hlg2biofile = cloci.tools.hlg2biofile:cli - hlg2hlg_net = cloci.tools.hlg2hlg_net:cli - noarch: python - script: python -m pip install . -vv --no-deps --no-build-isolation - number: 0 + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + script_env: + - SETUPTOOLS_SCM_PRETEND_VERSION={{ version }} run_exports: - {{ pin_subpackage('cloci', max_pin="x.x") }} requirements: host: + - python >=3 - setuptools-scm - pip run: - - python >=3.0,<4.0 + - python >=3 - mycotools - cogent3 - tqdm @@ -39,17 +42,16 @@ test: imports: - cloci commands: - - pip check - cloci --help - update_mtdb --help - requires: - - pip about: home: https://github.com/xonq/cloci - summary: Co-occurrence Locus and Orthologous Cluster Identifier + summary: "Co-occurrence Locus and Orthologous Cluster Identifier." license: AGPL-3.0-only + license_family: AGPL license_file: LICENSE + dev_url: https://github.com/xonq/cloci extra: recipe-maintainers: diff --git a/recipes/mycotools/meta.yaml b/recipes/mycotools/meta.yaml index e2d89a1dcec9a..f9bf6feda90fb 100644 --- a/recipes/mycotools/meta.yaml +++ b/recipes/mycotools/meta.yaml @@ -10,6 +10,9 @@ source: sha256: 346fa5ea6e5efa4de4ddea342a125857351c9d24738be8284e83974cf0ffadb6 build: + number: 1 + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir entry_points: - mtdb = mycotools.mtdb:main - acc2fa = mycotools.acc2fa:cli @@ -42,19 +45,18 @@ build: - predb2mtdb = mycotools.predb2mtdb:cli - s2subs = mycotools.s2subs:cli - update_mtdb = mycotools.update_mtdb:cli - noarch: python - script: python -m pip install . -vv --no-deps --no-build-isolation - number: 0 + script_env: + - SETUPTOOLS_SCM_PRETEND_VERSION={{ version }} run_exports: - {{ pin_subpackage('mycotools', max_pin="x.x") }} requirements: host: + - python >=3 - setuptools-scm - pip - - cython run: - - python >=3.0,<4.0 + - python >=3 - biopython - pandas - requests @@ -70,23 +72,24 @@ requirements: - fasttree - diamond - ete3 + - ncbi-datasets-cli test: imports: - mycotools commands: - - pip check - mtdb --help - predb2mtdb --help - update_mtdb --help - requires: - - pip about: - home: https://github.com/xonq/mycotools - summary: Comparative genomics automation and standardization software - license: BSD-3-Clause + home: "https://github.com/xonq/mycotools" + summary: "Comparative genomics automation and standardization software." + license: "BSD-3-Clause" + license_family: BSD license_file: LICENSE + dev_url: "https://github.com/xonq/mycotools" + doc_url: "https://github.com/xonq/mycotools/wiki" extra: recipe-maintainers: From 076ed549740600b253977d98999f6e025774e9d7 Mon Sep 17 00:00:00 2001 From: Sang Chul Choi Date: Tue, 20 Aug 2024 16:58:49 +0900 Subject: [PATCH 1368/1514] Update polap to v0.2.6 Build1 (#50183) Co-authored-by: Sang Chul Choi --- recipes/polap/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/polap/meta.yaml b/recipes/polap/meta.yaml index 06b2d5a6b38c4..eacc9680c84a3 100644 --- a/recipes/polap/meta.yaml +++ b/recipes/polap/meta.yaml @@ -1,6 +1,6 @@ {% set name = "polap" %} -{% set version = "0.2.4" %} -{% set sha256 = "4463d4a71a8a3273108a0ab2dff0a4c37a565c05af6ee17ee83dc62404294caf" %} +{% set version = "0.2.6" %} +{% set sha256 = "6d9b5ffc26ce6feeaa6119d0dda57e07af9e9def55e5510b0ddf237699b15948" %} package: name: "{{ name }}" @@ -30,7 +30,7 @@ requirements: - sra-tools - csvtk - gfastats - - jellyfish + - kmer-jellyfish - clustalw - samtools - assembly-stats From ff20431b28cf01b1fd2e2c1e30882a7e73817802 Mon Sep 17 00:00:00 2001 From: Chris Saunders Date: Tue, 20 Aug 2024 01:00:02 -0700 Subject: [PATCH 1369/1514] Add new recipe for sawfish (#50179) * Add sawfish recipe * Limit install content --- recipes/sawfish/build.sh | 5 +++++ recipes/sawfish/meta.yaml | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 recipes/sawfish/build.sh create mode 100644 recipes/sawfish/meta.yaml diff --git a/recipes/sawfish/build.sh b/recipes/sawfish/build.sh new file mode 100644 index 0000000000000..f427f2b39fda7 --- /dev/null +++ b/recipes/sawfish/build.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +# Sawfish already auto-extracts to bin directory, so just need to move it to PREFIX +cp -r bin "${PREFIX}"/ + diff --git a/recipes/sawfish/meta.yaml b/recipes/sawfish/meta.yaml new file mode 100644 index 0000000000000..082d153819d1c --- /dev/null +++ b/recipes/sawfish/meta.yaml @@ -0,0 +1,32 @@ +{% set name = "sawfish" %} +{% set version = "0.12.1" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/PacificBiosciences/sawfish/releases/download/v{{ version }}/sawfish-v{{ version }}-x86_64-unknown-linux-gnu.tar.gz + sha256: 4ced0da34a90a0616d8df2db8888021a5b0e1e7dc5b0293e780425b75b958e20 + +build: + number: 0 + skip: True # [osx] + run_exports: + - {{ pin_subpackage('sawfish', max_pin="x.x") }} + +test: + commands: + - sawfish --version + +about: + home: https://github.com/PacificBiosciences/sawfish + license: Pacific Biosciences Software License Agreement + summary: Structural variant discovery and genotyping from mapped PacBio HiFi data + +extra: + recipe-maintainers: + - ctsa + skip-lints: + - should_use_compilers + - should_be_noarch_generic From 9946b5e77b4663737b6733fb2e0ec63b8b3e8c5e Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 20 Aug 2024 03:45:57 -0500 Subject: [PATCH 1370/1514] cellsnp-lite: add aarch64/arm64 build (#50189) * cellsnp-lite: add aarch64/arm64 build * remove patch * add m4 --- recipes/cellsnp-lite/LICENSE | 201 ------------------ recipes/cellsnp-lite/build.sh | 26 ++- .../cellsnp-lite/build_failure.osx-64.yaml | 104 --------- recipes/cellsnp-lite/meta.yaml | 30 ++- 4 files changed, 35 insertions(+), 326 deletions(-) delete mode 100644 recipes/cellsnp-lite/LICENSE delete mode 100644 recipes/cellsnp-lite/build_failure.osx-64.yaml diff --git a/recipes/cellsnp-lite/LICENSE b/recipes/cellsnp-lite/LICENSE deleted file mode 100644 index 261eeb9e9f8b2..0000000000000 --- a/recipes/cellsnp-lite/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/recipes/cellsnp-lite/build.sh b/recipes/cellsnp-lite/build.sh index dc3736b1c75a4..ce213a712a2cf 100755 --- a/recipes/cellsnp-lite/build.sh +++ b/recipes/cellsnp-lite/build.sh @@ -1,20 +1,18 @@ #!/bin/bash -export C_INCLUDE_PATH=${PREFIX}/include -export LIBRARY_PATH=${PREFIX}/lib -export LD_LIBRARY_PATH=${PREFIX}/lib - -./configure -make +mkdir -p ${PREFIX}/bin -#cflags="-g -Wall -O2 -Wno-unused-function -fgnu89-inline -I${PREFIX}/include" +export M4="$BUILD_PREFIX/bin/m4" +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -g -Wall -O3 -Wno-implicit-function-declaration" -#if [ "`uname`" == "Darwin" ]; then -# make CC=${CC} CFLAGS="-fgnu89-inline -fcommon ${CFLAGS}" LDFLAGS="${LDFLAGS}" -#else -# make CC=${CC} CFLAGS="${cflags}" htslib_lib_dir=${PREFIX}/lib -#fi +autoreconf -if +./configure --prefix="${PREFIX}" CC="${CC}" CFLAGS="${CFLAGS}" \ + LDFLAGS="${LDFLAGS}" CPPFLAGS="${CPPFLAGS} -I${PREFIX}/include" -mkdir -p ${PREFIX}/bin -cp -f cellsnp-lite ${PREFIX}/bin +make -j"${CPU_COUNT}" +make install +chmod 0755 ${PREFIX}/bin/cellsnp-lite diff --git a/recipes/cellsnp-lite/build_failure.osx-64.yaml b/recipes/cellsnp-lite/build_failure.osx-64.yaml deleted file mode 100644 index a7e45f3dd22d7..0000000000000 --- a/recipes/cellsnp-lite/build_failure.osx-64.yaml +++ /dev/null @@ -1,104 +0,0 @@ -recipe_sha: dd6a23ac00183a8e28b55aa29a5ede942ba044cd21b1bfb29d5e7425e0fd6d8c # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |- - SIZE=x86_64-apple-darwin13.4.0-size - STRINGS=x86_64-apple-darwin13.4.0-strings - STRIP=x86_64-apple-darwin13.4.0-strip - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 - ac_cv_func_malloc_0_nonnull=yes - ac_cv_func_realloc_0_nonnull=yes - build_alias=x86_64-apple-darwin13.4.0 - host_alias=x86_64-apple-darwin13.4.0 - checking for a BSD-compatible install... /usr/bin/install -c - checking whether build environment is sane... yes - checking for a thread-safe mkdir -p... ./install-sh -c -d - checking for gawk... no - checking for mawk... no - checking for nawk... no - checking for awk... awk - checking whether make sets $(MAKE)... yes - checking whether make supports nested variables... yes - checking for gawk... (cached) awk - checking for x86_64-apple-darwin13.4.0-gcc... x86_64-apple-darwin13.4.0-clang - checking whether the C compiler works... yes - checking for C compiler default output file name... a.out - checking for suffix of executables... - checking whether we are cross compiling... no - checking for suffix of object files... o - checking whether we are using the GNU C compiler... yes - checking whether x86_64-apple-darwin13.4.0-clang accepts -g... yes - checking for x86_64-apple-darwin13.4.0-clang option to accept ISO C89... none needed - checking for style of include used by make... GNU - checking dependency style of x86_64-apple-darwin13.4.0-clang... gcc3 - checking for math.h... yes - checking for log in -lm... yes - checking for zlib.h... yes - checking for inflate in -lz... yes - checking for bzlib.h... yes - checking for BZ2_bzBuffToBuffCompress in -lbz2... yes - checking for lzma.h... yes - checking for lzma_easy_buffer_encode in -llzma... yes - checking for curl_easy_pause in -lcurl... yes - checking for HMAC in -lcrypto... yes - checking location of HTSlib installation... none found - checking for htslib/sam.h... yes - checking for sam_hdr_init in -lhts... yes - checking how to run the C preprocessor... x86_64-apple-darwin13.4.0-clang -E - checking for grep that handles long lines and -e... /usr/bin/grep - checking for egrep... /usr/bin/grep -E - checking for ANSI C header files... yes - checking for sys/types.h... yes - checking for sys/stat.h... yes - checking for stdlib.h... yes - checking for string.h... yes - checking for memory.h... yes - checking for strings.h... yes - checking for inttypes.h... yes - checking for stdint.h... yes - checking for unistd.h... yes - checking for stdlib.h... (cached) yes - checking for string.h... (cached) yes - checking for unistd.h... (cached) yes - checking for inline... inline - checking for int32_t... yes - checking for int8_t... yes - checking for size_t... yes - checking for ssize_t... yes - checking for uint32_t... yes - checking for uint8_t... yes - checking for stdlib.h... (cached) yes - checking for GNU libc compatible malloc... (cached) yes - checking for stdlib.h... (cached) yes - checking for GNU libc compatible realloc... (cached) yes - checking for memset... yes - checking for mkdir... yes - checking for pow... yes - checking for strdup... yes - checking that generated files are newer than configure... done - configure: creating ./config.status - config.status: creating Makefile - config.status: creating conf.h - config.status: executing depfiles commands - make all-am - make[1]: Entering directory '$SRC_DIR' - x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-cellsnp.o -MD -MP -MF src/.deps/cellsnp_lite-cellsnp.Tpo -c -o src/cellsnp_lite-cellsnp.o test -f 'src/cellsnp.c' || echo './'src/cellsnp.c - mv -f src/.deps/cellsnp_lite-cellsnp.Tpo src/.deps/cellsnp_lite-cellsnp.Po - x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-csp.o -MD -MP -MF src/.deps/cellsnp_lite-csp.Tpo -c -o src/cellsnp_lite-csp.o test -f 'src/csp.c' || echo './'src/csp.c - mv -f src/.deps/cellsnp_lite-csp.Tpo src/.deps/cellsnp_lite-csp.Po - x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-csp_fetch.o -MD -MP -MF src/.deps/cellsnp_lite-csp_fetch.Tpo -c -o src/cellsnp_lite-csp_fetch.o test -f 'src/csp_fetch.c' || echo './'src/csp_fetch.c - mv -f src/.deps/cellsnp_lite-csp_fetch.Tpo src/.deps/cellsnp_lite-csp_fetch.Po - x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-csp_pileup.o -MD -MP -MF src/.deps/cellsnp_lite-csp_pileup.Tpo -c -o src/cellsnp_lite-csp_pileup.o test -f 'src/csp_pileup.c' || echo './'src/csp_pileup.c - mv -f src/.deps/cellsnp_lite-csp_pileup.Tpo src/.deps/cellsnp_lite-csp_pileup.Po - x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-jfile.o -MD -MP -MF src/.deps/cellsnp_lite-jfile.Tpo -c -o src/cellsnp_lite-jfile.o test -f 'src/jfile.c' || echo './'src/jfile.c - mv -f src/.deps/cellsnp_lite-jfile.Tpo src/.deps/cellsnp_lite-jfile.Po - x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-jsam.o -MD -MP -MF src/.deps/cellsnp_lite-jsam.Tpo -c -o src/cellsnp_lite-jsam.o test -f 'src/jsam.c' || echo './'src/jsam.c - mv -f src/.deps/cellsnp_lite-jsam.Tpo src/.deps/cellsnp_lite-jsam.Po - x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-jstring.o -MD -MP -MF src/.deps/cellsnp_lite-jstring.Tpo -c -o src/cellsnp_lite-jstring.o test -f 'src/jstring.c' || echo './'src/jstring.c - mv -f src/.deps/cellsnp_lite-jstring.Tpo src/.deps/cellsnp_lite-jstring.Po - x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-mplp.o -MD -MP -MF src/.deps/cellsnp_lite-mplp.Tpo -c -o src/cellsnp_lite-mplp.o test -f 'src/mplp.c' || echo './'src/mplp.c - mv -f src/.deps/cellsnp_lite-mplp.Tpo src/.deps/cellsnp_lite-mplp.Po - x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-snp.o -MD -MP -MF src/.deps/cellsnp_lite-snp.Tpo -c -o src/cellsnp_lite-snp.o test -f 'src/snp.c' || echo './'src/snp.c - mv -f src/.deps/cellsnp_lite-snp.Tpo src/.deps/cellsnp_lite-snp.Po - x86_64-apple-darwin13.4.0-clang -DHAVE_CONFIG_H -I. -Isrc -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.9 -g -Wall -O2 -Wno-unused-function -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/cellsnp-lite-1.2.3 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -MT src/cellsnp_lite-thpool.o -MD -MP -MF src/.deps/cellsnp_lite-thpool.Tpo -c -o src/cellsnp_lite-thpool.o test -f 'src/thpool.c' || echo './'src/thpool.c - make[1]: Leaving directory '$SRC_DIR' -# Last 100 lines of the build log. diff --git a/recipes/cellsnp-lite/meta.yaml b/recipes/cellsnp-lite/meta.yaml index 5a2d55ecac7cd..f44ac346eecc8 100644 --- a/recipes/cellsnp-lite/meta.yaml +++ b/recipes/cellsnp-lite/meta.yaml @@ -1,8 +1,9 @@ +{% set name = "cellsnp-lite" %} {% set version = "1.2.3" %} {% set sha256 = "baf84ee8fc80e5a11d31e266ed6087e7dcba65be6b8583b025c628a9ff9d9dd7" %} package: - name: cellsnp-lite + name: {{ name }} version: {{ version }} source: @@ -10,27 +11,42 @@ source: sha256: {{ sha256 }} build: - number: 3 - #skip: True # [osx] + number: 4 + run_exports: + - {{ pin_subpackage('cellsnp-lite', max_pin="x") }} requirements: build: - make - {{ compiler('c') }} + - autoconf + - automake + - libtool host: - htslib + - libcurl + - bzip2 - zlib run: - htslib - - zlib test: commands: - cellsnp-lite 2>&1 | grep -i 'options' about: - home: https://github.com/single-cell-genetics/cellsnp-lite - license: Apache-2.0 + home: "https://github.com/single-cell-genetics/cellsnp-lite" + license: "Apache-2.0" + license_family: APACHE license_file: LICENSE - summary: Efficient genotyping bi-allelic SNPs on single cells + summary: "Efficient genotyping bi-allelic SNPs on single cells." + dev_url: "https://github.com/single-cell-genetics/cellsnp-lite" + doc_url: "https://cellsnp-lite.readthedocs.io/en/latest" +extra: + identifiers: + - doi:10.1093/bioinformatics/btab358 + - biotools:cellsnp-lite + additional-platforms: + - linux-aarch64 + - osx-arm64 From e7adeacd9b74a3d0f14c81d085748e17b00ebe82 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 20 Aug 2024 12:00:22 +0300 Subject: [PATCH 1371/1514] fqtk: add aarch64/arm64 builds (#50186) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/fqtk/meta.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipes/fqtk/meta.yaml b/recipes/fqtk/meta.yaml index 119c717d3a0c1..575e3f00fb789 100644 --- a/recipes/fqtk/meta.yaml +++ b/recipes/fqtk/meta.yaml @@ -10,7 +10,7 @@ source: sha256: f64598b7493b2c87fe8b17330c137c98eb66e352f3648809e4128ea25f300a2e build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('fqtk', max_pin="x.x") }} @@ -36,6 +36,9 @@ about: doc_url: "https://github.com/fulcrumgenomics/fqtk/blob/v{{ version }}/README.md" extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - NatPRoach - nh13 From 4c3ae04506bbc9d10c7aaba06d5cf11ce7c78fcf Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 20 Aug 2024 12:00:38 +0300 Subject: [PATCH 1372/1514] r-quilt: add aarch64 build (#50187) * r-quilt: add aarch64/arm64 build Signed-off-by: Martin Tzvetanov Grigorov * Do not build osx-arm64 --------- Signed-off-by: Martin Tzvetanov Grigorov --- recipes/r-quilt/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/r-quilt/meta.yaml b/recipes/r-quilt/meta.yaml index 6b69360a3a7fc..743be5ba3c764 100644 --- a/recipes/r-quilt/meta.yaml +++ b/recipes/r-quilt/meta.yaml @@ -10,7 +10,7 @@ source: sha256: '{{ sha256 }}' build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('r-quilt', max_pin="x") }} @@ -48,6 +48,8 @@ about: dev_url: https://github.com/rwdavies/quilt extra: + additional-platforms: + - linux-aarch64 recipe-maintainers: - Zilong-Li - rwdavies From 443f1f4dba0ef31543843fd36537228e904a7994 Mon Sep 17 00:00:00 2001 From: Kez Cleal <42997789+kcleal@users.noreply.github.com> Date: Tue, 20 Aug 2024 10:03:54 +0100 Subject: [PATCH 1373/1514] GW update recipe (#49921) * Added gland to libs * Force cos7 * Update conda_build_config.yaml * Update build.sh * Update build.sh * Update build.sh * Update build.sh * Update build.sh * Update build.sh * Update build.sh * Update build.sh * Update build.sh * Update build.sh * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update build.sh * Update meta.yaml * Update conda_build_config.yaml * Update conda_build_config.yaml * trigger rebuild * Update build.sh * Update meta.yaml * Update build.sh * tidy up libs * Dropping all CDTs meta.yaml * Update conda_build_config.yaml * Update conda_build_config.yaml * Tidy up libs meta.yaml * Update meta.yaml * Update meta.yaml * Update recipes/gw/build.sh Co-authored-by: Martin Grigorov --------- Co-authored-by: Martin Grigorov --- recipes/gw/build.sh | 30 +++++++++++++++++++---- recipes/gw/meta.yaml | 57 +++++++++++++++++++++++++------------------- 2 files changed, 59 insertions(+), 28 deletions(-) diff --git a/recipes/gw/build.sh b/recipes/gw/build.sh index 7fddb127f886d..f1d5fc6f43bff 100644 --- a/recipes/gw/build.sh +++ b/recipes/gw/build.sh @@ -1,14 +1,36 @@ #!/usr/bin/bash set -e + export USE_GL=1 + +# Modify Makefile and source files if not on macOS if [[ "$OSTYPE" != "darwin"* ]]; then - sed -i 's/-lEGL -lGLESv2/-lGL/' Makefile + sed -i 's/-lEGL -lGLESv2/-lGL -lGLX/' Makefile + sed -i 's/GLFW_EGL_CONTEXT_API/GLFW_NATIVE_CONTEXT_API/' src/plot_manager.cpp fi -make prep -CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" LDFLAGS="${LDFLAGS} -L${PREFIX}" prefix="${PREFIX}" make -j ${CPU_COUNT} + +make prep > /dev/null 2>&1 + +# Set flags conditionally based on the OS type +if [[ "$OSTYPE" != "darwin"* ]]; then + SYSROOT_FLAGS="--sysroot=${BUILD_PREFIX}/${HOST}/sysroot" + CPPFLAGS="${CPPFLAGS} -I${BUILD_PREFIX}/${HOST}/sysroot/usr/include ${SYSROOT_FLAGS}" + LDFLAGS="${LDFLAGS} -L${PREFIX}/lib -L${BUILD_PREFIX}/${HOST}/sysroot/usr/lib -L${BUILD_PREFIX}/${HOST}/sysroot/usr/lib64 ${SYSROOT_FLAGS}" +else + # No sysroot settings for macOS + SYSROOT_FLAGS="" + CPPFLAGS="${CPPFLAGS}" + LDFLAGS="${LDFLAGS} -L${PREFIX}" +fi + +CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" \ +CPPFLAGS="${CPPFLAGS}" \ +LDFLAGS="${LDFLAGS}" \ +prefix="${PREFIX}" \ +make -j ${CPU_COUNT} + mkdir -p $PREFIX/bin cp gw $PREFIX/bin/gw cp -n .gw.ini $PREFIX/bin/.gw.ini chmod +x $PREFIX/bin/gw chmod +rw $PREFIX/bin/.gw.ini - diff --git a/recipes/gw/meta.yaml b/recipes/gw/meta.yaml index 914bd1e2fe317..d8d9aa904573c 100644 --- a/recipes/gw/meta.yaml +++ b/recipes/gw/meta.yaml @@ -12,22 +12,29 @@ source: - fix-linker-issues.patch # [linux] build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage('gw', max_pin="x") }} + ignore_run_exports: + - libglx # [linux] + - xorg-libsm # [linux] + - xorg-libice # [linux] + - xorg-libx11 # [linux] + - xorg-libxau # [linux] + - xorg-libxext # [linux] + - libegl # [linux] + - libxcb # [linux] + - freetype # [osx] + - fontconfig # [osx] + - zlib # [osx] + - libuuid + - libdeflate requirements: build: - make + - {{ compiler('c') }} - {{ compiler('cxx') }} - # - sysroot_linux-64 >=2.17 - - {{ cdt('mesa-libgl-devel') }} # [linux] - - {{ cdt('mesa-libegl-devel') }} # [linux] - - {{ cdt('mesa-dri-drivers') }} # [linux] - - {{ cdt('libselinux') }} # [linux] - - {{ cdt('libxdamage') }} # [linux] - - {{ cdt('libxxf86vm') }} # [linux] - - {{ cdt('libxext') }} # [linux] host: - fontconfig @@ -36,26 +43,26 @@ requirements: - libdeflate >=1.0 - htslib >=1.12 - glfw >=3.3 - - wget - unzip - freetype - - xorg-libxfixes # [linux] - - xorg-libx11 # [linux] - - xorg-libxcb # [linux] - - expat # [linux] + - zlib + - pthread-stubs # [linux] + - xorg-libsm # [linux] + - xorg-libice # [linux] + - xorg-libx11 # [linux] + - libxcb # [linux] + - libegl-devel # [linux] + - libgl-devel # [linux] + - libglx-devel # [linux] run: - - xorg-libxfixes # [linux] - - xorg-libx11 # [linux] - - xorg-libxcb # [linux] - - {{ cdt('mesa-libgl-devel') }} # [linux] - - {{ cdt('mesa-libegl-devel') }} # [linux] - - {{ cdt('mesa-dri-drivers') }} # [linux] - #- mesa-libgl # [linux] - #- mesa-libegl # [linux] - #- mesa-dri-drivers # [linux] - glfw >=3.3 - - htslib >=1.12 + - htslib >=1.12 + - xorg-libxt # [linux] + - xorg-libxau # [linux] + - xorg-libxfixes # [linux] + - xorg-libxxf86vm # [linux] + - xorg-libxdamage # [linux] test: commands: @@ -68,6 +75,8 @@ about: summary: 'View genomic sequencing data and vcf files' extra: + additional-platforms: + - osx-arm64 container: extended-base: True recipe-maintainers: From 76156f10ab882ddd79afcd09d0b08685f266d03f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sim=C3=B3n=20Villanueva=20Corrales?= <37163025+sivico26@users.noreply.github.com> Date: Tue, 20 Aug 2024 11:06:31 +0200 Subject: [PATCH 1374/1514] Add recipe for miniprot-boundary-scorer (#50172) * Add miniprot-boundary-scorer v1.0.0 * Fix bulid.sh and test * Add miniprot-boundary-scorer v1.0.0 * Fix bulid.sh and test * Update license following spdx identifiers * Try with LDFLAGS instead of LD_LIBRARY_PATH. Add aarch64/arm64 builds too Signed-off-by: Martin Tzvetanov Grigorov --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Corrales Simon Co-authored-by: Martin Tzvetanov Grigorov --- recipes/miniprot-boundary-scorer/build.sh | 8 +++++ recipes/miniprot-boundary-scorer/meta.yaml | 36 ++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 recipes/miniprot-boundary-scorer/build.sh create mode 100644 recipes/miniprot-boundary-scorer/meta.yaml diff --git a/recipes/miniprot-boundary-scorer/build.sh b/recipes/miniprot-boundary-scorer/build.sh new file mode 100644 index 0000000000000..91d45589b3f93 --- /dev/null +++ b/recipes/miniprot-boundary-scorer/build.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +set -xe + +make -j ${CPU_COUNT} CC="${CXX}" LDFLAGS="-L${PREFIX}/lib" + +mkdir -p ${PREFIX}/bin +cp miniprot_boundary_scorer ${PREFIX}/bin \ No newline at end of file diff --git a/recipes/miniprot-boundary-scorer/meta.yaml b/recipes/miniprot-boundary-scorer/meta.yaml new file mode 100644 index 0000000000000..cb7ef5acd15e7 --- /dev/null +++ b/recipes/miniprot-boundary-scorer/meta.yaml @@ -0,0 +1,36 @@ +{% set name = "miniprot-boundary-scorer" %} +{% set version = "1.0.0" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/tomasbruna/miniprot-boundary-scorer/releases/download/v{{ version }}/{{ name }}.tgz + sha256: 9a5f3babd6db07b673589f2bb8de9436fd9a9c844483ce893d27de0d79ed79e8 + +build: + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} + + +requirements: + build: + - make + - {{ compiler('cxx') }} + +test: + commands: + - miniprot_boundary_scorer 2>&1 | grep "^Usage:" > /dev/null + +about: + home: https://github.com/tomasbruna/miniprot-boundary-scorer + license: Artistic-1.0 + summary: Miniprot boundary scorer parses introns, starts, stops and exons from miniprot's alignment output and scores them + dev_url: https://github.com/tomasbruna/miniprot-boundary-scorer + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From 04b6acedcf5b19fbfd388597e2687d781578526d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 06:43:42 -0400 Subject: [PATCH 1375/1514] Update resistify to 0.3.0 (#50190) --- recipes/resistify/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/resistify/meta.yaml b/recipes/resistify/meta.yaml index 4cd79689492b0..36d96e8d1b98d 100644 --- a/recipes/resistify/meta.yaml +++ b/recipes/resistify/meta.yaml @@ -1,5 +1,5 @@ {% set name = "resistify" %} -{% set version = "0.2.2" %} +{% set version = "0.3.0" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 2fd3e8e8c45711d1a4a054727053fb284f8034ec921e7f14e7d5b8a16800c326 + sha256: 3a8f4ccedf38fb1a7cdb3522ad6497d054bd72164155bcdc03aa23133b030623 build: noarch: python From eca84e155f1de3de376e2244d3741c3ee889b4e6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 06:44:09 -0400 Subject: [PATCH 1376/1514] Update savana to 1.2.1 (#50192) --- recipes/savana/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/savana/meta.yaml b/recipes/savana/meta.yaml index 8ba9b74b466b6..8450c98cfbf55 100644 --- a/recipes/savana/meta.yaml +++ b/recipes/savana/meta.yaml @@ -1,5 +1,5 @@ {% set name = "savana" %} -{% set version = "1.2.0" %} +{% set version = "1.2.1" %} package: name: "{{ name }}" @@ -7,10 +7,10 @@ package: source: url: "https://github.com/cortes-ciriano-lab/{{ name }}/archive/{{ version }}.tar.gz" - sha256: 25025d73628e282c7cd5fd6204befe9152d0d695ebd027b87831aa1338b83914 + sha256: f43e83794c5cd18f15c4dddc8b660012d42b91d42f253274b921256f887aca72 build: - number: 1 + number: 0 noarch: python script: - "{{ PYTHON }} -m pip install . -vv" From 92c6e85c6f87c2d225ee969c7da81e241995909c Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 20 Aug 2024 19:08:49 +0300 Subject: [PATCH 1377/1514] ucsc-pslpairs: add linux-aarch64 build (#50197) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-pslpairs/build.sh | 24 ++++++++++++++++-------- recipes/ucsc-pslpairs/include.patch | 6 +++--- recipes/ucsc-pslpairs/meta.yaml | 22 +++++++++++++++------- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index e4d0d4dbe405b..0979be115ad99 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -916,7 +916,6 @@ recipes/ucsc-pslliftsubrangeblat recipes/ucsc-pslmap recipes/ucsc-pslmappostchain recipes/ucsc-pslmrnacover -recipes/ucsc-pslpairs recipes/ucsc-pslpartition recipes/ucsc-pslpretty recipes/ucsc-pslrc diff --git a/recipes/ucsc-pslpairs/build.sh b/recipes/ucsc-pslpairs/build.sh index e16513ef01203..a90d13ee108cb 100644 --- a/recipes/ucsc-pslpairs/build.sh +++ b/recipes/ucsc-pslpairs/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/pslPairs && make) -cp bin/pslPairs "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslPairs" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && USE_HIC=0 make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/pslPairs && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/pslPairs "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/pslPairs" diff --git a/recipes/ucsc-pslpairs/include.patch b/recipes/ucsc-pslpairs/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslpairs/include.patch +++ b/recipes/ucsc-pslpairs/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslpairs/meta.yaml b/recipes/ucsc-pslpairs/meta.yaml index 6f627277f1e4a..b581d5d417072 100644 --- a/recipes/ucsc-pslpairs/meta.yaml +++ b/recipes/ucsc-pslpairs/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslpairs" %} {% set program = "pslPairs" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "join paired ends in psl alignments" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 747ffaab38ca9aaddc26a39bf13e7cb5afd574cd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 13:18:05 -0400 Subject: [PATCH 1378/1514] Update lsabgc to 1.1.1 (#50208) --- recipes/lsabgc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/lsabgc/meta.yaml b/recipes/lsabgc/meta.yaml index c93ee7d7a5a1c..832584c1f03b4 100644 --- a/recipes/lsabgc/meta.yaml +++ b/recipes/lsabgc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "lsabgc" %} -{% set version = "1.1.0" %} +{% set version = "1.1.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Kalan-Lab/lsaBGC-Pan/archive/refs/tags/v{{ version }}.tar.gz - sha256: 93dc9fbd2d3eda70a50efeaa8a234ea2a4aa850ccccb0ed0f2f2a9dc2f9f7e1b + sha256: d926a662a19352c87c7a1c5085936a64b29d6318db2c037370797851eba71617 build: number: 0 From 47bdbe562f4a2945c71bd114494ecee8114202df Mon Sep 17 00:00:00 2001 From: Marcel Martin Date: Tue, 20 Aug 2024 19:26:46 +0200 Subject: [PATCH 1379/1514] Add osx-arm64 build for dnaio (#50207) --- recipes/dnaio/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/dnaio/meta.yaml b/recipes/dnaio/meta.yaml index 0d5e1798c520f..f6b7feb2ad7c2 100644 --- a/recipes/dnaio/meta.yaml +++ b/recipes/dnaio/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 4786dc63614b9f3011463d9ea9d981723dd38d1091a415a557f71d8c74400f38 build: - number: 1 + number: 2 script: "{{ PYTHON }} -m pip install . --no-deps -vv" run_exports: - {{ pin_subpackage('dnaio', max_pin="x") }} @@ -39,5 +39,6 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 recipe-maintainers: - marcelm From 7ef39af62c86eb3ddd3b6dcb8e3a08914a6c189e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 14:19:18 -0400 Subject: [PATCH 1380/1514] Update ms2query to 1.5.3 (#50201) --- recipes/ms2query/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ms2query/meta.yaml b/recipes/ms2query/meta.yaml index 85bdb718e29af..36e618ab5adb8 100644 --- a/recipes/ms2query/meta.yaml +++ b/recipes/ms2query/meta.yaml @@ -1,6 +1,6 @@ {% set name = "ms2query" %} -{% set version = "1.5.2" %} -{% set sha256 = "91ab116457aea8c3e7dd9486d41e78134edd5953941cf64cda327b22cb44a736" %} +{% set version = "1.5.3" %} +{% set sha256 = "d1e79994e2bdee9317d2dc87a8f9360a86ff406a103558024e1f93e0261cd535" %} package: name: {{ name|lower }} From d16a3a01d5da3da74910ff9a03a4eaf5c506d2ff Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 14:19:47 -0400 Subject: [PATCH 1381/1514] Update msweep to 2.1.2 (#50204) --- recipes/msweep/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/msweep/meta.yaml b/recipes/msweep/meta.yaml index 5e02c6d00cb3c..4837f75c902cf 100644 --- a/recipes/msweep/meta.yaml +++ b/recipes/msweep/meta.yaml @@ -1,6 +1,6 @@ {% set name = "mSWEEP" %} -{% set version = "2.1.1" %} -{% set sha256 = "aaa53c770e2881f6ccd89e3e075d8fcd7a500fee67fd5ecf3cda05cc4a547ecb" %} +{% set version = "2.1.2" %} +{% set sha256 = "fd6e384bed01e08a64463d40b7cfba79dc6ba7def60c69b31ca5fc5b55551a22" %} {% set user = "PROBIC" %} package: @@ -12,7 +12,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 skip: true # [osx] run_exports: - {{ pin_subpackage('msweep', max_pin='x') }} From 40b40bedea7fe1c8f4715c511cb761b24048e2c5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 14:20:08 -0400 Subject: [PATCH 1382/1514] Update snakemake-storage-plugin-gcs to 1.1.1 (#50206) --- recipes/snakemake-storage-plugin-gcs/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-storage-plugin-gcs/meta.yaml b/recipes/snakemake-storage-plugin-gcs/meta.yaml index 38445c97fee28..9228b2ed03517 100644 --- a/recipes/snakemake-storage-plugin-gcs/meta.yaml +++ b/recipes/snakemake-storage-plugin-gcs/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-storage-plugin-gcs" %} -{% set version = "1.1.0" %} +{% set version = "1.1.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_storage_plugin_gcs-{{ version }}.tar.gz - sha256: 841ef25be8fa7c6f13b45fd2428c71281e05ef28ce8235f7775e19820fa4564c + sha256: ac6fc6aaf63ec6ae7453e1cb080e07da346ad4497bd2a87947c352f0fb311d31 build: noarch: python From c254cfb1673a0b36ebc8873cdb7f8e2f8a3c9ee1 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 14:20:36 -0400 Subject: [PATCH 1383/1514] Update ena-webin-cli to 8.0.0 (#50199) --- recipes/ena-webin-cli/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ena-webin-cli/meta.yaml b/recipes/ena-webin-cli/meta.yaml index cd4dc94fffa01..8a4af45e09e1a 100644 --- a/recipes/ena-webin-cli/meta.yaml +++ b/recipes/ena-webin-cli/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "7.3.1" %} -{% set sha256 = "e6dbb93e8b39c81e53ef96afcba0e958869c95a2d1dda83e1a6077a73f9f4cfb" %} +{% set version = "8.0.0" %} +{% set sha256 = "a5f11f651420aac7b801f4ae611814e4e72f91b4ba25376000408675b3ba3050" %} package: name: ena-webin-cli From f6c21c50c7a227273553ba444dc25462ca2cb74e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 14:21:14 -0400 Subject: [PATCH 1384/1514] Update mgems to 1.3.3 (#50200) --- recipes/mgems/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/mgems/meta.yaml b/recipes/mgems/meta.yaml index f49f8b26161b7..1eed62d36b021 100644 --- a/recipes/mgems/meta.yaml +++ b/recipes/mgems/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mGEMS" %} -{% set version = "1.3.2" %} +{% set version = "1.3.3" %} package: name: {{ name|lower }} @@ -7,10 +7,10 @@ package: source: url: https://github.com/PROBIC/{{ name }}/archive/v{{ version }}.tar.gz - sha256: d655553643200754cbb5c76f1b8d161bece8cb45a8b6e86fea4da65d4f437f9e + sha256: c16db45f575d039ca5219b9bc7b7a4dc4bc3ceb3239b2a61085106d3d666b57a build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage('mgems', max_pin="x") }} From b5c2e624cdd4fcb6dd5d7a3fbe9ef7fadbaedace Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 14:22:15 -0400 Subject: [PATCH 1385/1514] Update earlgrey to 4.4.4 (#50194) --- recipes/earlgrey/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/earlgrey/meta.yaml b/recipes/earlgrey/meta.yaml index a122f3844e1a8..85537bedc2ed3 100644 --- a/recipes/earlgrey/meta.yaml +++ b/recipes/earlgrey/meta.yaml @@ -1,6 +1,6 @@ {% set name = "EarlGrey" %} -{% set version = "4.4.1" %} -{% set sha256 = "814020ba4967c5622b0b2c618463f350e6073004d3f40365ea03a46cd94d6e12" %} +{% set version = "4.4.4" %} +{% set sha256 = "53325316215f6e9c4bfbff7c1e404360d3fed32efe01ae2fef55398b5f60931e" %} package: name: {{ name|lower }} From 44097293e70e5e350302e0779fb29dfd572d27d6 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 14:22:41 -0400 Subject: [PATCH 1386/1514] Update ensembl-utils to 0.4.2 (#50195) --- recipes/ensembl-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ensembl-utils/meta.yaml b/recipes/ensembl-utils/meta.yaml index 6c5809c20dfae..c686e848afbdb 100644 --- a/recipes/ensembl-utils/meta.yaml +++ b/recipes/ensembl-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ensembl-utils" %} -{% set version = "0.4.1" %} +{% set version = "0.4.2" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/ensembl_utils-{{ version }}.tar.gz - sha256: 77ec8c4a100df2981f4fb63a9dc13c90c454a8521614c523bfb66f9a273c5d7f + sha256: 32dda9b5f7d95cdc98518e0a6d668b8a7c7c0908f150e4eb0c8efae6ced9956f build: entry_points: From 2760f0103488fba58deb21841d9cc4ea17c0f41b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 14:24:54 -0400 Subject: [PATCH 1387/1514] Update ropebwt3 to 3.4 (#50205) --- recipes/ropebwt3/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ropebwt3/meta.yaml b/recipes/ropebwt3/meta.yaml index 9dda7bde10d1a..0ed874533c07e 100644 --- a/recipes/ropebwt3/meta.yaml +++ b/recipes/ropebwt3/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ropebwt3" %} -{% set version = "3.3" %} +{% set version = "3.4" %} package: name: {{ name }} @@ -12,7 +12,7 @@ build: source: url: https://github.com/lh3/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz - sha256: c16bc6d26c6cdb10b3b1cfdb06f3734c6020e62d72f8c33454eb36520b6c02d3 + sha256: 76741e110e6e5519c16709ddc2ca556ae5ecbb72d8678998b6210a53f1e7c18f requirements: build: From 12ed0da83d832934525c53a0df234245f94b7839 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 15:05:30 -0400 Subject: [PATCH 1388/1514] Update synapseclient to 4.4.1 (#50210) --- recipes/synapseclient/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/synapseclient/meta.yaml b/recipes/synapseclient/meta.yaml index 28541bd233a37..cb72f378a9543 100644 --- a/recipes/synapseclient/meta.yaml +++ b/recipes/synapseclient/meta.yaml @@ -1,5 +1,5 @@ {% set name = "synapseclient" %} -{% set version = "4.4.0" %} +{% set version = "4.4.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/synapseclient-{{ version }}.tar.gz - sha256: 331d0740a8cebf29a231d5ead35cda164fc74d7d3a8470803e623f2c33e897b5 + sha256: fc6ec5a0fd49edf2b05ecd7f69316784a4b813dd0fd259785932c0786d480629 build: noarch: python From 993cc9d8d6030ad7c9023de43ce2df4c7104e808 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 20 Aug 2024 22:05:48 +0300 Subject: [PATCH 1389/1514] ucsc-bigwigmerge: add linux-aarch64 build (#50196) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-bigwigmerge/build.sh | 24 ++++++++++++++++-------- recipes/ucsc-bigwigmerge/include.patch | 6 +++--- recipes/ucsc-bigwigmerge/meta.yaml | 23 ++++++++++++++++------- 4 files changed, 35 insertions(+), 19 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index 0979be115ad99..a1d0a9225fc37 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -772,7 +772,6 @@ recipes/ucsc-bedpileups recipes/ucsc-bedrestricttopositions recipes/ucsc-bedtopsl recipes/ucsc-bedweedoverlapping -recipes/ucsc-bigwigmerge recipes/ucsc-blasttopsl recipes/ucsc-catdir recipes/ucsc-catuncomment diff --git a/recipes/ucsc-bigwigmerge/build.sh b/recipes/ucsc-bigwigmerge/build.sh index be5b9c0fd7dd6..370567ebeae32 100644 --- a/recipes/ucsc-bigwigmerge/build.sh +++ b/recipes/ucsc-bigwigmerge/build.sh @@ -1,13 +1,21 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export BINDIR=$(pwd)/bin export L="${LDFLAGS}" mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/bigWigMerge && make) -cp bin/bigWigMerge "$PREFIX/bin" -chmod +x "$PREFIX/bin/bigWigMerge" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/utils/bigWigMerge && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/bigWigMerge "$PREFIX/bin" +chmod 0755 "$PREFIX/bin/bigWigMerge" diff --git a/recipes/ucsc-bigwigmerge/include.patch b/recipes/ucsc-bigwigmerge/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-bigwigmerge/include.patch +++ b/recipes/ucsc-bigwigmerge/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-bigwigmerge/meta.yaml b/recipes/ucsc-bigwigmerge/meta.yaml index f88912eece11c..f640285ef59b8 100644 --- a/recipes/ucsc-bigwigmerge/meta.yaml +++ b/recipes/ucsc-bigwigmerge/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-bigwigmerge" %} {% set program = "bigWigMerge" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "466" %} +{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} package: name: "{{ package }}" @@ -15,7 +15,10 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} + requirements: build: @@ -25,22 +28,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "Merge together multiple bigWigs into a single output bedGraph." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From 417b85b8253df43a63c28fa39a56275720a43cd5 Mon Sep 17 00:00:00 2001 From: Isaac Overcast Date: Tue, 20 Aug 2024 15:27:09 -0400 Subject: [PATCH 1390/1514] muscle - enable osx-arm64 builds in meta.yaml (#50213) --- recipes/muscle/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/muscle/meta.yaml b/recipes/muscle/meta.yaml index 16e21de4c8ff2..9953f38bd5c3e 100644 --- a/recipes/muscle/meta.yaml +++ b/recipes/muscle/meta.yaml @@ -12,7 +12,7 @@ source: - support-linux-aarch64.patch build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} @@ -35,5 +35,6 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:muscle From 17e94a11fca507595d016b3dcbb8707e3052dcf0 Mon Sep 17 00:00:00 2001 From: Isaac Overcast Date: Tue, 20 Aug 2024 15:35:09 -0400 Subject: [PATCH 1391/1514] cutadapt - Update meta.yaml to add build support for osx-arm64 (#50212) --- recipes/cutadapt/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/cutadapt/meta.yaml b/recipes/cutadapt/meta.yaml index 6c35dd340e3da..b68dacf543faa 100644 --- a/recipes/cutadapt/meta.yaml +++ b/recipes/cutadapt/meta.yaml @@ -9,7 +9,7 @@ source: sha256: da3b45775b07334d2e2580a7b154d19ea7e872f0da813bb1ac2a4da712bfc223 build: - number: 0 + number: 1 script: "{{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vvv" skip: True # [py < 38] run_exports: @@ -45,6 +45,7 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 recipe-maintainers: - marcelm identifiers: From dab3736c62d67b7f96c488bd8e8a47b668a11d93 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 20 Aug 2024 15:37:34 -0500 Subject: [PATCH 1392/1514] Update last to 1571 (#50216) --- recipes/last/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/last/meta.yaml b/recipes/last/meta.yaml index 5e279008c7b8c..84605ee676679 100644 --- a/recipes/last/meta.yaml +++ b/recipes/last/meta.yaml @@ -1,5 +1,5 @@ {% set name = "LAST" %} -{% set version = "1565" %} +{% set version = "1571" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: "https://gitlab.com/mcfrith/last/-/archive/{{ version }}/last-{{ version }}.tar.gz" - sha256: 68c64fc1370a36a4af4c2ca0572906cf3c7e69c72acc08b5aec594ba15cd2b92 + sha256: c91e99aa98bcb72fe08dada48aa2d8952cf724f2b8beadaa3a35b6f32ce5717c build: number: 0 From ababf6ea0c9e36761479e0b25cc305199b759619 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 21:09:56 -0400 Subject: [PATCH 1393/1514] Update vcfsim to 1.0.16.alpha (#50222) --- recipes/vcfsim/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/vcfsim/meta.yaml b/recipes/vcfsim/meta.yaml index 8e4e84dec1e90..27dbb82d06a37 100644 --- a/recipes/vcfsim/meta.yaml +++ b/recipes/vcfsim/meta.yaml @@ -1,5 +1,5 @@ {% set name = "vcfsim" %} -{% set version = "1.0.15.alpha" %} +{% set version = "1.0.16.alpha" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/Pie115/VCFSimulator-SamukLab/archive/{{ version }}.tar.gz - sha256: b69df4b6eb7702a201220b524c3dc6a0caa7573682b74d82a0b31885965b13b4 + sha256: 385640fdee385c6710ba7bda68cedd28f665f3b0d950d400662f3d5aa374ccfa build: noarch: python From 1ccefa296ebd10e2b2bdc3908ceedd7dad8b8f8c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 20 Aug 2024 21:10:10 -0400 Subject: [PATCH 1394/1514] Update fgpyo to 0.7.1 (#50221) * Update fgpyo to 0.7.0 * Update fgpyo to 0.7.1 --- recipes/fgpyo/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/fgpyo/meta.yaml b/recipes/fgpyo/meta.yaml index 31d0d8e75cebd..69a4df4c53ebc 100644 --- a/recipes/fgpyo/meta.yaml +++ b/recipes/fgpyo/meta.yaml @@ -1,5 +1,5 @@ {% set name = "fgpyo" %} -{% set version = "0.6.0" %} +{% set version = "0.7.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/fulcrumgenomics/{{ name }}/archive/refs/tags/{{ version }}.tar.gz - sha256: d9fce324aac3c932cd9253ded6d91c95f09f68729b203cbf9c5dfc429d46cd3a + sha256: 0d0b0d6f2e365c136830e803e4a6d56fe20c6d615a4b857b423f19c51b700bab build: noarch: python From bfb944029a79b3f0e97aaa1d23036f3471f4ddc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Plaza=20O=C3=B1ate?= <4588656+fplazaonate@users.noreply.github.com> Date: Wed, 21 Aug 2024 03:10:32 +0200 Subject: [PATCH 1395/1514] Update bowtie2 to remove TBB dependencies (#50203) * Remove tbb dependencies * Update build number --- recipes/bowtie2/build.sh | 2 +- recipes/bowtie2/meta.yaml | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/recipes/bowtie2/build.sh b/recipes/bowtie2/build.sh index 9e5d8571f36a0..62175c7a09ec7 100644 --- a/recipes/bowtie2/build.sh +++ b/recipes/bowtie2/build.sh @@ -7,7 +7,7 @@ git clone https://github.com/ch4rr0/libsais third_party/libsais LDFLAGS="" make CXX="${CXX}" CXXFLAGS="${CXXFLAGS} -O3" CPP="${CXX} -I${PREFIX}/include" CC="${CC} -L${PREFIX}/lib" \ - CFLAGS="${CFLAGS} -O3" LDLIBS="-L$PREFIX/lib -lz -lzstd -ltbb -ltbbmalloc -lpthread" \ + CFLAGS="${CFLAGS} -O3" LDLIBS="-L$PREFIX/lib -lz -lzstd -lpthread" \ WITH_ZSTD=1 USE_SRA=1 USE_SAIS_OPENMP=1 binaries="\ diff --git a/recipes/bowtie2/meta.yaml b/recipes/bowtie2/meta.yaml index 2e1539e47b234..64a7124009d3a 100644 --- a/recipes/bowtie2/meta.yaml +++ b/recipes/bowtie2/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 841a6a60111b690c11d1e123cb5c11560b4cd1502b5cee7e394fd50f83e74e13 build: - number: 3 + number: 4 run_exports: - {{ pin_subpackage('bowtie2', max_pin="x") }} @@ -25,8 +25,6 @@ requirements: - libgomp # [linux] - zlib - zstd - - tbb-devel - - tbb run: - python - perl From d2cb904d2e4220065ac2297ef8adce50f0bfd5dd Mon Sep 17 00:00:00 2001 From: Arya Massarat <23412689+aryarm@users.noreply.github.com> Date: Tue, 20 Aug 2024 18:14:07 -0700 Subject: [PATCH 1396/1514] Update pgenlib to 0.91.0 (#50220) --- recipes/pgenlib/meta.yaml | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/recipes/pgenlib/meta.yaml b/recipes/pgenlib/meta.yaml index 6310a5f8d966f..a5786127871dc 100644 --- a/recipes/pgenlib/meta.yaml +++ b/recipes/pgenlib/meta.yaml @@ -1,16 +1,16 @@ {% set name = "pgenlib" %} -{% set version = "0.90.2" %} +{% set version = "0.91.0" %} package: name: "{{ name|lower }}" version: "{{ version }}" source: - url: "https://pypi.io/packages/source/P/Pgenlib/Pgenlib-{{ version }}.tar.gz" - sha256: 09825be43ffb25bc68b6e243b98989a5bc35a8aa22cd749fd9f602d778dd6bd0 + url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" + sha256: 32992274214d2e6735b721544abfd0ae0c76906c4193120f7091065b88f68dfa build: - number: 1 + number: 0 script: "{{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation" run_exports: - {{ pin_subpackage('pgenlib', max_pin="x.x") }} @@ -21,12 +21,13 @@ requirements: host: - python - pip - - cython - - numpy + - cython + - numpy >=2.0.0 # [py >= 39] + - numpy # [py < 39] - zlib run: - python - - {{ pin_compatible('numpy') }} + - numpy >=1.19.0 test: imports: @@ -46,3 +47,6 @@ extra: - chrchang identifiers: - doi:10.1186/s13742-015-0047-8 + additional-platforms: + - linux-aarch64 + - osx-arm64 From 92dec41d379f3f1a5ef73e74af5f9af149fa2991 Mon Sep 17 00:00:00 2001 From: Daniel Chang <58645390+danielchang2002@users.noreply.github.com> Date: Tue, 20 Aug 2024 20:14:29 -0500 Subject: [PATCH 1397/1514] Update GMWI2 package (#50218) * :hankey: update gmwi2 package * update gmwi2 package --- recipes/gmwi2/meta.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/recipes/gmwi2/meta.yaml b/recipes/gmwi2/meta.yaml index 1a93956e3f40b..f869ede61ffd9 100644 --- a/recipes/gmwi2/meta.yaml +++ b/recipes/gmwi2/meta.yaml @@ -1,5 +1,5 @@ {% set name = "gmwi2" %} -{% set version = "1.5" %} +{% set version = "1.6" %} package: name: "{{ name }}" @@ -14,7 +14,7 @@ build: source: url: https://github.com/danielchang2002/GMWI2/archive/{{version}}.tar.gz - sha256: de63741ecc88c3d13b4b259a495e938d9b026950e9ff100b6e465f8e0c38a419 + sha256: 0751b5030a8ce51cea924393872ff128d4c76444b980bc41b23b83a310c125b0 requirements: host: @@ -37,7 +37,6 @@ test: commands: - metaphlan --version - gmwi2 --version - - repair.sh --version - fastqc --version - bowtie2 --version - samtools --version From 3f4791205b66660d9dfa6cec62661f5db1e0ca1a Mon Sep 17 00:00:00 2001 From: Arya Massarat <23412689+aryarm@users.noreply.github.com> Date: Tue, 20 Aug 2024 18:26:45 -0700 Subject: [PATCH 1398/1514] cyvcf2: enable osx-arm64 build (#50219) * Build cyvcf2 on macOS ARM * fix m4 error using strategy from https://github.com/bioconda/bioconda-recipes/pull/49911/files#diff-a8287976d0d9721327d70d78d64b03af77911d5a4f6e7691c8d7aa85f2334959R10 --- recipes/cyvcf2/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/cyvcf2/meta.yaml b/recipes/cyvcf2/meta.yaml index 139cbd9408afd..a79b51679e3a0 100644 --- a/recipes/cyvcf2/meta.yaml +++ b/recipes/cyvcf2/meta.yaml @@ -14,11 +14,12 @@ source: - patches/setup.py.patch build: - number: 0 + number: 1 skip: True # [py < 37] script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv script_env: - CFLAGS=-Wno-implicit-function-declaration -Wno-int-conversion # [osx and py == 38] + - M4=$BUILD_PREFIX/bin/m4 # [osx and arm64] entry_points: - cyvcf2 = cyvcf2.__main__:cli run_exports: @@ -67,3 +68,4 @@ extra: - biotools:cyvcf2 additional-platforms: - linux-aarch64 + - osx-arm64 From 27b718f0ce40001093cb2f7f77fb01303555b0c3 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 20 Aug 2024 21:36:07 -0500 Subject: [PATCH 1399/1514] Add recipe for bbmix v0.2.2 (#50224) --- recipes/bbmix/meta.yaml | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 recipes/bbmix/meta.yaml diff --git a/recipes/bbmix/meta.yaml b/recipes/bbmix/meta.yaml new file mode 100644 index 0000000000000..300260eec6617 --- /dev/null +++ b/recipes/bbmix/meta.yaml @@ -0,0 +1,39 @@ +{% set name = "bbmix" %} +{% set version = "0.2.2" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.org/packages/source/{{ name[0] }}/{{ name }}/bbmix-{{ version }}.tar.gz + sha256: 33b8891b4e1f7f1c5059c755ad888af2412b79738ec0cfb2f194ba7329c9bce6 + +build: + number: 0 + noarch: python + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + run_exports: + - {{ pin_subpackage('bbmix', max_pin="x.x") }} + +requirements: + host: + - python >=3 + - pip + run: + - python >=3 + - numpy >=1.9.0 + - scipy >=1.4.0 + - matplotlib-base + +test: + imports: + - bbmix + +about: + home: "https://github.com/statbiomed/betabinmix" + summary: 'BBMix: inference of beta-binomial mixture model' + license: "Apache-2.0" + license_family: APACHE + license_file: LICENSE + dev_url: "https://github.com/statbiomed/betabinmix" From aac62371055acf4b87e2aa6480b1000509b5ef22 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 20 Aug 2024 21:36:16 -0500 Subject: [PATCH 1400/1514] fast-edit-distance: add aarch64/arm64 build (#50223) --- recipes/fast-edit-distance/meta.yaml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/recipes/fast-edit-distance/meta.yaml b/recipes/fast-edit-distance/meta.yaml index f21cf9685a5c5..b47cfdda7a5ee 100644 --- a/recipes/fast-edit-distance/meta.yaml +++ b/recipes/fast-edit-distance/meta.yaml @@ -10,8 +10,8 @@ source: sha256: c3f3913381d8a7a5eb96cef5b31bc69fb19c55b653a98525abc0c4922cd07247 build: - number: 1 - script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation + number: 2 + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir run_exports: - {{ pin_subpackage('fast-edit-distance', max_pin="x") }} @@ -30,9 +30,15 @@ test: - fast_edit_distance about: - home: https://github.com/youyupei/fast_edit_distance + home: "https://github.com/youyupei/fast_edit_distance" license: MIT license_family: MIT license_file: LICENSE - dev_url: https://github.com/youyupei/fast_edit_distance + dev_url: "https://github.com/youyupei/fast_edit_distance" summary: "A implementation of edit distance with improved runtime." + doc_url: "https://github.com/youyupei/fast_edit_distance/blob/v{{ version }}/README.md" + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From e0be58378b39034271bc96dca7071aec2fa8fa47 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 20 Aug 2024 23:00:03 -0500 Subject: [PATCH 1401/1514] Add recipe for mquad v0.1.8b (#50225) * Add recipe for mquad v0.1.8b * edit meta.yaml --- recipes/mquad/meta.yaml | 58 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 recipes/mquad/meta.yaml diff --git a/recipes/mquad/meta.yaml b/recipes/mquad/meta.yaml new file mode 100644 index 0000000000000..1e58632d7b083 --- /dev/null +++ b/recipes/mquad/meta.yaml @@ -0,0 +1,58 @@ +{% set name = "mquad" %} +{% set version = "0.1.8b" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + git_url: https://github.com/single-cell-genetics/MQuad.git + git_rev: c2d750c + sha256: unused + +build: + number: 0 + noarch: python + entry_points: + - mquad = mquad.mquad_CLI:main + script: {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + run_exports: + - {{ pin_subpackage('mquad', max_pin="x.x") }} + +requirements: + host: + - python >=3.8 + - pip + run: + - python >=3.8 + - numpy >=1.9.0 + - scipy >=1.4.0 + - matplotlib-base + - bbmix >=0.2.2 + - vireosnp + - kneed + - pandas + - seaborn-base + - scikit-learn + +test: + imports: + - mquad + commands: + - mquad --help + +about: + home: "https://github.com/aaronkwc/MQuad" + summary: "MQuad: Mixture Model for Mitochondrial Mutation detection in single-cell omics data." + license: "Apache-2.0" + license_family: APACHE + license_file: LICENSE + dev_url: "https://github.com/aaronkwc/MQuad" + doc_url: "https://github.com/single-cell-genetics/MQuad/blob/main/README.rst" + +extra: + identifiers: + - doi:10.1038/s41467-022-28845-0 + - biotools:mquad + skip-lints: + - uses_vcs_url From 527f4411b0fcc61017e12e8d037660b2ba4fd7d8 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 20 Aug 2024 23:26:44 -0500 Subject: [PATCH 1402/1514] update strdust to 0.8.2 (#50191) * update strdust to 0.8.2 * add arm64/aarch64 * update meta.yaml * edit meta.yaml --- recipes/strdust/build.sh | 9 ++++++--- recipes/strdust/meta.yaml | 21 ++++++++++++++------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/recipes/strdust/build.sh b/recipes/strdust/build.sh index 8c7b6970ffe7c..24fd00d92cbae 100644 --- a/recipes/strdust/build.sh +++ b/recipes/strdust/build.sh @@ -1,6 +1,9 @@ #!/bin/bash -euo -export CFLAGS="${CFLAGS} -fcommon" -export CXXFLAGS="${CFLAGS} -fcommon" + +export INCLUDE_PATH="${PREFIX}/include" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 -fcommon" +export CXXFLAGS="${CFLAGS} -O3 -fcommon -I${PREFIX}/include" # build statically linked binary with Rust -RUST_BACKTRACE=1 cargo install --verbose --root $PREFIX --path . +RUST_BACKTRACE=1 cargo install --verbose --root "${PREFIX}" --path . diff --git a/recipes/strdust/meta.yaml b/recipes/strdust/meta.yaml index 281601c6ed233..e4f6df68ce9c7 100644 --- a/recipes/strdust/meta.yaml +++ b/recipes/strdust/meta.yaml @@ -1,30 +1,32 @@ {% set name = "strdust" %} -{% set version = "0.8.0" %} +{% set version = "0.8.2" %} package: name: {{ name }} version: {{ version }} +source: + url: https://github.com/wdecoster/STRdust/archive/refs/tags/v{{ version }}.tar.gz + sha256: 4fd97b05b22870c70a9d41dbcb2f106836f009e3db39bce47921ab6aa9bff100 + build: number: 0 run_exports: - {{ pin_subpackage('strdust', max_pin="x.x") }} -source: - url: https://github.com/wdecoster/strdust/archive/refs/tags/v{{ version }}.tar.gz - sha256: 1b1e0ce34852961066f67020e44ed1716dfb1744488eb9b42b97f6516997cd38 - requirements: build: - - {{ compiler('rust') }} + - {{ compiler('rust') }} - autoconf + - automake + - libtool - make - {{ compiler('cxx') }} - pkg-config - cmake host: + - clangdev - zlib - - clang test: commands: @@ -37,3 +39,8 @@ about: license_file: LICENSE summary: "Tandem repeat genotyper for long reads." dev_url: "https://github.com/wdecoster/STRdust" + doc_url: "https://github.com/wdecoster/STRdust/blob/v{{ version }}/README.md" + +extra: + additional-platforms: + - osx-arm64 From aa0d88e7929e7227dfb17ee1712d4856fb51f952 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 21 Aug 2024 00:37:50 -0400 Subject: [PATCH 1403/1514] Update trackplot to 0.5.1 (#50227) --- recipes/trackplot/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/trackplot/meta.yaml b/recipes/trackplot/meta.yaml index 067aa001ae018..0be965226ae10 100644 --- a/recipes/trackplot/meta.yaml +++ b/recipes/trackplot/meta.yaml @@ -1,5 +1,5 @@ {% set name = "trackplot" %} -{% set version = "0.5.0" %} +{% set version = "0.5.1" %} package: name: trackplot @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 0fede14be97cc6a278d5c9f44a6e1bc51bea15af2aba432bd9654d93338d7015 + sha256: 686735f647e9ffdaab6dad02b56d483385142421928381b2c3d075d9a610ba52 build: noarch: python From 434ce33e9c85b34289e47c5a54c3f7bb4f01261e Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 21 Aug 2024 00:15:50 -0500 Subject: [PATCH 1404/1514] Update bbmap to 39.08 (#50228) * Update bbmap to 39.08 * edit meta.yaml --- recipes/bbmap/build.sh | 6 +++--- recipes/bbmap/meta.yaml | 16 +++++++++------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/recipes/bbmap/build.sh b/recipes/bbmap/build.sh index 3cad42d6b4a27..c7989d9fdf823 100755 --- a/recipes/bbmap/build.sh +++ b/recipes/bbmap/build.sh @@ -12,8 +12,8 @@ mkdir -p $DATA_HOME chmod a+x *.sh -cp -R * $BBMAP_HOME/ +cp -Rf * $BBMAP_HOME/ -find *.sh -type f -exec ln -s $BBMAP_HOME/{} $BINARY_HOME/{} \; +find *.sh -type f -exec ln -sf $BBMAP_HOME/{} $BINARY_HOME/{} \; -cp -R $BBMAP_HOME/resources $DATA_HOME +cp -Rf $BBMAP_HOME/resources $DATA_HOME diff --git a/recipes/bbmap/meta.yaml b/recipes/bbmap/meta.yaml index 7cc8eb01e781e..8a860966e3e3a 100644 --- a/recipes/bbmap/meta.yaml +++ b/recipes/bbmap/meta.yaml @@ -1,17 +1,17 @@ {% set name = "BBMap" %} -{% set version = "39.06" %} -{% set sha256 = "61d45bd59a543b90a143c5c7dbfec0ff6163dce54194b8c4b648fb6aac67d42e" %} +{% set version = "39.08" %} +{% set sha256 = "7250e170aabc6702fb5ea2724e9f9af03bb7085bef8b006a92309e44c3f32f22" %} package: name: {{ name|lower }} version: {{ version }} source: - url: http://downloads.sourceforge.net/project/{{ name|lower }}/{{ name }}_{{ version }}.tar.gz + url: https://downloads.sourceforge.net/project/{{ name|lower }}/{{ name }}_{{ version }}.tar.gz sha256: {{ sha256 }} build: - number: 1 + number: 0 run_exports: - {{ pin_subpackage(name|lower, max_pin="x") }} @@ -23,10 +23,9 @@ requirements: - pbzip2 - bzip2 - samtools + - patchelf # [osx] run: - openjdk >=7.0 - - pbzip2 - - bzip2 - samtools test: @@ -45,16 +44,19 @@ about: home: https://sourceforge.net/projects/bbmap doc_url: https://jgi.doe.gov/data-and-tools/bbtools/bb-tools-user-guide/ license: "UC-LBL license (see package)" - license_file: license.txt + license_file: "license.txt" summary: "BBMap is a short read aligner, as well as various other bioinformatic tools." + dev_url: https://sourceforge.net/projects/bbmap extra: additional-platforms: - linux-aarch64 + - osx-arm64 notes: | BBMap is a series of Java programs, but they come with a number of custom wrapper shell scripts. Each of these is symlinked to the conda bin directory during install. identifiers: - biotools:bbmap + - usegalaxy-eu:bbtools_bbmap - doi:10.1371/journal.pone.0185056 From c7e70a3c1a63bc090b7cf96a61aa012d96bec189 Mon Sep 17 00:00:00 2001 From: Mary Maranga <38289520+Marysteph@users.noreply.github.com> Date: Wed, 21 Aug 2024 06:45:17 +0100 Subject: [PATCH 1405/1514] Update kleborate to version 3.0.5 (#50229) * update kleborate to version 3.0.5 * clean up recipe --------- Co-authored-by: mencian --- recipes/kleborate/build.sh | 7 -- recipes/kleborate/fix_get_kaptive_path.patch | 41 ------------ recipes/kleborate/meta.yaml | 70 ++++++++++++-------- 3 files changed, 41 insertions(+), 77 deletions(-) delete mode 100644 recipes/kleborate/build.sh delete mode 100644 recipes/kleborate/fix_get_kaptive_path.patch diff --git a/recipes/kleborate/build.sh b/recipes/kleborate/build.sh deleted file mode 100644 index 2ce65676732d8..0000000000000 --- a/recipes/kleborate/build.sh +++ /dev/null @@ -1,7 +0,0 @@ -#! /bin/bash - -$PYTHON -m pip install . --ignore-installed --no-deps -vv - -# Make blastdbs of Kleborate data -# Allows containters to be usable - $PREFIX/bin/kleborate -a kleborate/data/Klebsiella_pneumoniae.fasta --all diff --git a/recipes/kleborate/fix_get_kaptive_path.patch b/recipes/kleborate/fix_get_kaptive_path.patch deleted file mode 100644 index 4b751f16ef396..0000000000000 --- a/recipes/kleborate/fix_get_kaptive_path.patch +++ /dev/null @@ -1,41 +0,0 @@ -From e897aa05e7981515ce4f34f46f1103c44c97844a Mon Sep 17 00:00:00 2001 -From: "Robert A. Petit III" -Date: Sat, 17 Jul 2021 01:44:51 -0600 -Subject: [PATCH] Update kaptive.py - ---- - kleborate/kaptive.py | 11 +++++------ - 1 file changed, 5 insertions(+), 6 deletions(-) - -diff --git a/kleborate/kaptive.py b/kleborate/kaptive.py -index 53c2fa8..729a84d 100644 ---- a/kleborate/kaptive.py -+++ b/kleborate/kaptive.py -@@ -15,22 +15,21 @@ - import os - import subprocess - import sys -+import shutil - import tempfile - - - def get_kaptive_paths(): -- this_file = os.path.realpath(__file__) -- kaptive_dir = os.path.join(os.path.dirname(os.path.dirname(this_file)), 'kaptive') -+ kaptive_py = shutil.which('kaptive.py') -+ kaptive_dir = os.path.join(os.path.dirname(os.path.dirname(kaptive_py)), 'opt/kaptive_reference_database') - if not os.path.isdir(kaptive_dir): - sys.exit('Error: could not find Kaptive directory. Did you git clone with --recursive?') -- kaptive_py = os.path.join(kaptive_dir, 'kaptive.py') - if not os.path.isfile(kaptive_py): - sys.exit('Error: could not find kaptive.py') -- db_dir = os.path.join(kaptive_dir, 'reference_database') -- kaptive_k_db = os.path.join(db_dir, 'Klebsiella_k_locus_primary_reference.gbk') -+ kaptive_k_db = os.path.join(kaptive_dir, 'Klebsiella_k_locus_primary_reference.gbk') - if not os.path.isfile(kaptive_k_db): - sys.exit('Error: could not find Klebsiella_k_locus_primary_reference.gbk') -- kaptive_o_db = os.path.join(db_dir, 'Klebsiella_o_locus_primary_reference.gbk') -+ kaptive_o_db = os.path.join(kaptive_dir, 'Klebsiella_o_locus_primary_reference.gbk') - if not os.path.isfile(kaptive_o_db): - sys.exit('Error: could not find Klebsiella_o_locus_primary_reference.gbk') - return kaptive_py, kaptive_k_db, kaptive_o_db diff --git a/recipes/kleborate/meta.yaml b/recipes/kleborate/meta.yaml index f245e9ce9cba7..27fb373a71952 100644 --- a/recipes/kleborate/meta.yaml +++ b/recipes/kleborate/meta.yaml @@ -1,47 +1,59 @@ -{% set name = "Kleborate" %} -{% set version = "2.3.2" %} +{% set name = "kleborate" %} +{% set version = "3.0.5" %} package: - name: {{ name|lower }} - version: {{ version }} + name: "{{ name|lower }}" + version: "{{ version }}" source: - url: https://github.com/katholt/{{ name }}/archive/v{{ version }}.tar.gz - sha256: da7cb9a27ddba4e5440063e2d4a0c4a9f9e668a65ae9f019db126dc5b10d7002 - patches: - - fix_get_kaptive_path.patch + url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/kleborate-{{ version }}.tar.gz" + sha256: 8f044b9422334912e4800003312ee112dca649a06533ad562681a2c162090a4e build: - noarch: python number: 0 + noarch: python + entry_points: + - kleborate = kleborate.__main__:main + script: + - {{ PYTHON }} -m pip install . -vvv --no-deps --no-build-isolation --no-cache-dir + run_exports: + - {{ pin_subpackage('kleborate', max_pin='x') }} requirements: host: - - python >=3.7 - - biopython >=1.73,<1.78 - - kaptive - - blast >=2.2.31 - - mash + - pip + - python >=3.9 run: - - python >=3.7 - - biopython >=1.73,<1.78 - - kaptive - - blast >=2.2.31 + - python >=3.9 + - biopython >=1.83 + - numpy >=1.22 + - dna_features_viewer + - minimap2 - mash + - kaptive test: + imports: + - kleborate commands: - - kaptive.py -h - - kleborate -h - - kleborate -a $(which kleborate | sed 's=bin/kleborate=opt/kaptive_reference_database/exact_match.fasta=') + - kaptive --help + - minimap2 --help + - kleborate --help about: - home: https://github.com/katholt/Kleborate - license: GNU General Public License v3 or later (GPLv3+) - license_file: LICENSE - summary: 'Screening Klebsiella genome assemblies for MLST, sub-species, and other Klebsiella related genes of interest' - long_summary: 'A tool to screen Klebsiella genome assembiles for: MLST sequence type, - species (e.g. K. pneumoniae, K. quasipneumoniae, K. variicola, etc.), - ICEKp associated virulence loci: yersiniabactin (ybt), colibactin (clb), virulence plasmid associated loci: salmochelin (iro), aerobactin (iuc), hypermucoidy (rmpA, rmpA2), antimicrobial resistance genes, including quinolone resistance SNPs and colistin resistance truncations, - and K (capsule) and O antigen (LPS) serotype prediction, via wzi alleles and Kaptive.' + home: "https://kleboratemodular.readthedocs.io" + dev_url: "https://github.com/klebgenomics/KleborateModular" + summary: "Kleborate: a tool for typing and screening pathogen genome assemblies" + license: "GPL-3.0-or-later" license_family: GPL3 + license_file: LICENSE + doc_url: "https://kleboratemodular.readthedocs.io" + +extra: + recipe-maintainers: + - Marysteph + identifiers: + - doi:10.1038/s41467-021-24448-3 + - doi:10.1099/mgen.0.000102 + - biotools:kleborate + - usegalaxy-eu:kleborate From f669c173797936767cac3cb24134a49b19a9b1a3 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 21 Aug 2024 02:57:47 -0500 Subject: [PATCH 1406/1514] python-hyphy-python: add aarch64/arm64 build (#50232) * python-hyphy-python: add aarch64/arm64 build * remove build_failure * edit meta.yaml * edit meta.yaml --- recipes/python-hyphy-python/build.sh | 11 +- .../build_failure.osx-64.yaml | 106 ------------------ recipes/python-hyphy-python/meta.yaml | 11 +- 3 files changed, 20 insertions(+), 108 deletions(-) delete mode 100644 recipes/python-hyphy-python/build_failure.osx-64.yaml diff --git a/recipes/python-hyphy-python/build.sh b/recipes/python-hyphy-python/build.sh index b730382f43da8..b94675ce4307c 100644 --- a/recipes/python-hyphy-python/build.sh +++ b/recipes/python-hyphy-python/build.sh @@ -1,4 +1,13 @@ #!/bin/bash +if [[ `uname` == "Darwin" ]]; then + export CFLAGS="${CFLAGS} -O3 -Wno-register ${LDFLAGS} -L${PREFIX}/lib" + export CXXFLAGS="${CXXFLAGS} -O3 -Wno-register -I${PREFIX}/include" +else + export CFLAGS="${CFLAGS} -O3 ${LDFLAGS} -L${PREFIX}/lib" + export CXXFLAGS="${CXXFLAGS} -O3 -I${PREFIX}/include" +fi + sed -i.bak "s#\['cc',#\['${CC}',#" setup.py -$PYTHON -m pip install --no-deps --no-build-isolation --no-cache-dir . -vvv +rm -rf *.bak +${PYTHON} -m pip install --no-deps --no-build-isolation --no-cache-dir . -vvv diff --git a/recipes/python-hyphy-python/build_failure.osx-64.yaml b/recipes/python-hyphy-python/build_failure.osx-64.yaml deleted file mode 100644 index c6c2a9fdf8ffb..0000000000000 --- a/recipes/python-hyphy-python/build_failure.osx-64.yaml +++ /dev/null @@ -1,106 +0,0 @@ -recipe_sha: 9b6d23eff98464edd992ec32bd7c3ff644959f5687e570ec142d21f5676ac7eb # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -log: |- - Key: - - R :: Reversible A :: Applicable - Y :: Build-prefix patch in use M :: Minimal, non-amalgamated - D :: Dry-runnable N :: Patch level (1 is preferred) - L :: Patch level not-ambiguous O :: Patch applies without offsets - V :: Patch applies without fuzz E :: Patch applies without emitting to stderr - - source tree in: /opt/mambaforge/envs/bioconda/conda-bld/python-hyphy-python_1717954358254/work - File "/opt/mambaforge/envs/bioconda/lib/python3.10/site-packages/conda_build/utils.py", line 381, in _func_defaulting_env_to_os_environ - raise subprocess.CalledProcessError(proc.returncode, _args) - subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/opt/mambaforge/envs/bioconda/conda-bld/python-hyphy-python_1717954358254/work/conda_build.sh']' returned non-zero exit status 1. - export PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/python-hyphy-python_1717954358254/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac - export BUILD_PREFIX=/opt/mambaforge/envs/bioconda/conda-bld/python-hyphy-python_1717954358254/_build_env - export SRC_DIR=/opt/mambaforge/envs/bioconda/conda-bld/python-hyphy-python_1717954358254/work - INFO: activate_clang_osx-64.sh made the following environmental changes: - AR=x86_64-apple-darwin13.4.0-ar - AS=x86_64-apple-darwin13.4.0-as - CC=x86_64-apple-darwin13.4.0-clang - CC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/python-hyphy-python-0.1.12 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CHECKSYMS=x86_64-apple-darwin13.4.0-checksyms - CLANG=x86_64-apple-darwin13.4.0-clang - CMAKE_ARGS=-DCMAKE_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_CXX_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_C_COMPILER_AR=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ar -DCMAKE_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_CXX_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_C_COMPILER_RANLIB=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ranlib -DCMAKE_LINKER=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-ld -DCMAKE_STRIP=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-strip -DCMAKE_INSTALL_NAME_TOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-install_name_tool -DCMAKE_LIBTOOL=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-libtool -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=LAST -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_PROGRAM_PATH=$BUILD_PREFIX/bin;$PREFIX/bin - CMAKE_PREFIX_PATH=:$PREFIX - CONDA_TOOLCHAIN_BUILD=x86_64-apple-darwin13.4.0 - CONDA_TOOLCHAIN_HOST=x86_64-apple-darwin13.4.0 - CPPFLAGS=-D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=10.13 - DEBUG_CFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/python-hyphy-python-0.1.12 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - HOST=x86_64-apple-darwin13.4.0 - INSTALL_NAME_TOOL=x86_64-apple-darwin13.4.0-install_name_tool - LD=x86_64-apple-darwin13.4.0-ld - LDFLAGS=-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib - LDFLAGS_LD=-headerpad_max_install_names -dead_strip_dylibs -rpath $PREFIX/lib -L$PREFIX/lib - LIBTOOL=x86_64-apple-darwin13.4.0-libtool - LIPO=x86_64-apple-darwin13.4.0-lipo - MESON_ARGS=--buildtype release --prefix=$PREFIX -Dlibdir=lib - NM=x86_64-apple-darwin13.4.0-nm - NMEDIT=x86_64-apple-darwin13.4.0-nmedit - OBJC=x86_64-apple-darwin13.4.0-clang - OBJC_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - OTOOL=x86_64-apple-darwin13.4.0-otool - PAGESTUFF=x86_64-apple-darwin13.4.0-pagestuff - RANLIB=x86_64-apple-darwin13.4.0-ranlib - REDO_PREBINDING=x86_64-apple-darwin13.4.0-redo_prebinding - SDKROOT=/Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk - SEGEDIT=x86_64-apple-darwin13.4.0-segedit - SEG_ADDR_TABLE=x86_64-apple-darwin13.4.0-seg_addr_table - SEG_HACK=x86_64-apple-darwin13.4.0-seg_hack - SIZE=x86_64-apple-darwin13.4.0-size - STRINGS=x86_64-apple-darwin13.4.0-strings - STRIP=x86_64-apple-darwin13.4.0-strip - _CONDA_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_x86_64_apple_darwin13_4_0 - ac_cv_func_malloc_0_nonnull=yes - ac_cv_func_realloc_0_nonnull=yes - build_alias=x86_64-apple-darwin13.4.0 - host_alias=x86_64-apple-darwin13.4.0 - INFO: activate_clangxx_osx-64.sh made the following environmental changes: - CLANGXX=x86_64-apple-darwin13.4.0-clang - CXX=x86_64-apple-darwin13.4.0-clang - CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/python-hyphy-python-0.1.12 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - CXX_FOR_BUILD=$BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang - DEBUG_CXXFLAGS=-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc -fvisibility-inlines-hidden -fmessage-length=0 -Og -g -Wall -Wextra -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/python-hyphy-python-0.1.12 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix - Using pip 24.0 from $PREFIX/lib/python3.11/site-packages/pip (python 3.11) - Non-user install because user site-packages disabled - Ignoring indexes: https://pypi.org/simple - Created temporary directory: /private/tmp/pip-build-tracker-tzf9rnlr - Initialized build tracking at /private/tmp/pip-build-tracker-tzf9rnlr - Created build tracker: /private/tmp/pip-build-tracker-tzf9rnlr - Entered build tracker: /private/tmp/pip-build-tracker-tzf9rnlr - Created temporary directory: /private/tmp/pip-install-p_4x3igj - Created temporary directory: /private/tmp/pip-ephem-wheel-cache-16ns09mm - Processing $SRC_DIR - Added file://$SRC_DIR to build tracker '/private/tmp/pip-build-tracker-tzf9rnlr' - Running setup.py (path:$SRC_DIR/setup.py) egg_info for package from file://$SRC_DIR - Created temporary directory: /private/tmp/pip-pip-egg-info-8h0kbd0v - Preparing metadata (setup.py): started - Preparing metadata (setup.py): finished with status 'done' - Source in $SRC_DIR has version 0.1.12, which satisfies requirement hyphy-python==0.1.12 from file://$SRC_DIR - Removed hyphy-python==0.1.12 from file://$SRC_DIR from build tracker '/private/tmp/pip-build-tracker-tzf9rnlr' - Created temporary directory: /private/tmp/pip-unpack-t7w8az6b - Building wheels for collected packages: hyphy-python - Created temporary directory: /private/tmp/pip-wheel-9pwlzrmu - Building wheel for hyphy-python (setup.py): started - Destination directory: /private/tmp/pip-wheel-9pwlzrmu - Building wheel for hyphy-python (setup.py): finished with status 'error' - Running setup.py clean for hyphy-python - Failed to build hyphy-python - Exception information: - Traceback (most recent call last): - File "$PREFIX/lib/python3.11/site-packages/pip/_internal/cli/base_command.py", line 180, in exc_logging_wrapper - status = run_func(*args) - ^^^^^^^^^^^^^^^ - File "$PREFIX/lib/python3.11/site-packages/pip/_internal/cli/req_command.py", line 245, in wrapper - return func(self, options, args) - ^^^^^^^^^^^^^^^^^^^^^^^^^ - File "$PREFIX/lib/python3.11/site-packages/pip/_internal/commands/install.py", line 429, in run - raise InstallationError( - pip._internal.exceptions.InstallationError: Could not build wheels for hyphy-python, which is required to install pyproject.toml-based projects - Removed build tracker: '/private/tmp/pip-build-tracker-tzf9rnlr' -# Last 100 lines of the build log. -category: |- - compiler error diff --git a/recipes/python-hyphy-python/meta.yaml b/recipes/python-hyphy-python/meta.yaml index 363041fc44b05..6d17c7fcfe6e9 100644 --- a/recipes/python-hyphy-python/meta.yaml +++ b/recipes/python-hyphy-python/meta.yaml @@ -12,7 +12,7 @@ source: - 0001-importlib.patch build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('python-hyphy-python', max_pin="x.x") }} @@ -28,6 +28,8 @@ requirements: - libcurl run: - python + - llvm-openmp # [osx] + - libgomp # [linux] test: imports: @@ -40,3 +42,10 @@ about: license_file: LICENSE summary: 'HyPhy package interface library' dev_url: "https://github.com/veg/hyphy-python" + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 + identifiers: + - biotools:HyPhy From 4bfaefca3f8c26ddfc29fc8a68588b28e7997ccf Mon Sep 17 00:00:00 2001 From: Zilong-Li Date: Wed, 21 Aug 2024 10:35:15 +0200 Subject: [PATCH 1407/1514] Update build.sh of quilt 2.0.0 (#50230) * Update build.sh of quilt 2.0.0 * update meta.yaml * minor edits to retrigger CI --------- Co-authored-by: mencian Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/r-quilt/build.sh | 13 +++++++++---- recipes/r-quilt/meta.yaml | 10 ++++++---- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/recipes/r-quilt/build.sh b/recipes/r-quilt/build.sh index cc2b41e684b9d..b40cab9ea78ae 100644 --- a/recipes/r-quilt/build.sh +++ b/recipes/r-quilt/build.sh @@ -2,11 +2,16 @@ set -xe +mkdir -p $PREFIX/bin + export LC_ALL=C.UTF-8 export LANG=C.UTF-8 -cp $SRC_DIR/QUILT.R $PREFIX/bin/ -cd $SRC_DIR/QUILT - -${R} CMD INSTALL --build --install-tests . +cp -rf $SRC_DIR/QUILT.R $PREFIX/bin/ +cp -rf $SRC_DIR/QUILT_prepare_reference.R $PREFIX/bin/ +cp -rf $SRC_DIR/QUILT_HLA_prepare_reference.R $PREFIX/bin/ +cp -rf $SRC_DIR/QUILT2.R $PREFIX/bin/ +cp -rf $SRC_DIR/QUILT2_prepare_reference.R $PREFIX/bin/ +cd $SRC_DIR/QUILT +${R} CMD INSTALL --build --install-tests . ${R_ARGS} diff --git a/recipes/r-quilt/meta.yaml b/recipes/r-quilt/meta.yaml index 743be5ba3c764..b18e2ef0e20cd 100644 --- a/recipes/r-quilt/meta.yaml +++ b/recipes/r-quilt/meta.yaml @@ -1,8 +1,9 @@ +{% set name = "r-quilt" %} {% set version = "2.0.0" %} {% set sha256 = "723c52371fd8c495a54165b168db70d8c4ce001cd4dc902e63db0240318e8a6e" %} package: - name: r-quilt + name: '{{ name }}' version: '{{ version }}' source: @@ -10,7 +11,7 @@ source: sha256: '{{ sha256 }}' build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage('r-quilt', max_pin="x") }} @@ -38,12 +39,13 @@ test: commands: - $R -e "library('QUILT'); testthat::test_package('QUILT', stop_on_failure = TRUE, stop_on_warning = TRUE, filter = 'acceptance-one', reporter = 'summary')" - 'QUILT.R --help' + about: home: https://github.com/rwdavies/quilt - license: GPL-3.0-only + license: "GPL-3.0-only" license_family: GPL3 license_file: LICENSE - summary: Rapid and accurate genotype imputation from low coverage short read, long read, and cell free DNA sequence + summary: "Rapid and accurate genotype imputation from low coverage short read, long read, and cell free DNA sequence." doc_url: https://github.com/rwdavies/quilt dev_url: https://github.com/rwdavies/quilt From 38ecc959fe6112ac9eaa23a903cc0fc8be310536 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 21 Aug 2024 03:38:12 -0500 Subject: [PATCH 1408/1514] whatshap: add arm64 build (#50231) * whatshap: add arm64 build * minor edits to retrigger CI --- recipes/whatshap/build_failure.linux-64.yaml | 105 ------------------ .../whatshap/build_failure.linux-aarch64.yaml | 105 ------------------ recipes/whatshap/meta.yaml | 31 ++++-- 3 files changed, 19 insertions(+), 222 deletions(-) delete mode 100644 recipes/whatshap/build_failure.linux-64.yaml delete mode 100644 recipes/whatshap/build_failure.linux-aarch64.yaml diff --git a/recipes/whatshap/build_failure.linux-64.yaml b/recipes/whatshap/build_failure.linux-64.yaml deleted file mode 100644 index 0c20579f0ddd7..0000000000000 --- a/recipes/whatshap/build_failure.linux-64.yaml +++ /dev/null @@ -1,105 +0,0 @@ -recipe_sha: 9b572de4ff8373a2d807ddec40dc17bf503ae9bc41ed9e9afa694c1b3fc643d8 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -category: dependency issue -log: |2- - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions - precs = _install_actions(prefix, index, specs)["LINK"] - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions - txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction - unlink_precs, link_precs = self.solve_for_diff( - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff - final_precs = self.solve_final_state( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state - out_state = self._solving_loop(in_state, out_state, index) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop - solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-64: {MatchSpec("zstandard"), MatchSpec("xopen==1.7.0=py312h7900ff3_3")} - Encountered problems while solving: - - package xopen-1.7.0-py312h7900ff3_3 requires zstandard, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - [32mpysam >=0.18 [0m is installable with the potential options - [32mpysam 0.22.1[0m would require - [32mlibcurl >=8.8.0,<9.0a0 [0m, which requires - [32mzstd >=1.5.6,<1.6.0a0 [0m, which can be installed; - [32mpysam [0.18.0|0.19.0|0.19.1|0.20.0][0m would require - [32mpython_abi 2.7.* *_cp27mu[0m, which can be installed; - [32mpysam [0.18.0|0.19.0|0.19.1|0.20.0|0.21.0][0m would require - [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; - [32mpysam [0.18.0|0.19.0|0.19.1|0.20.0|0.21.0][0m would require - [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; - [32mpysam [0.18.0|0.19.0|...|0.22.1][0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mpysam [0.18.0|0.19.0|...|0.22.1][0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [32mpysam [0.19.1|0.20.0|0.21.0|0.22.0|0.22.1][0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [32mpysam 0.22.1[0m would require - [32mpython_abi 3.11.* *_cp311[0m, which can be installed; - [31mpython_abi 3.12.* *_cp312[0m is not installable because it conflicts with any installable versions previously reported; - [32mxopen >=1.2.0 [0m is installable with the potential options - [32mxopen 1.2.0[0m would require - [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; - [32mxopen [1.2.0|1.2.1|...|1.6.0][0m would require - [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; - [32mxopen [1.2.0|1.2.1|...|1.6.0][0m would require - [32mpython_abi 3.7 *_pypy37_pp73[0m, which can be installed; - [32mxopen [1.2.0|1.2.1|...|2.0.1][0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mxopen [1.2.0|1.2.1|...|2.0.1][0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [32mxopen [1.2.1|1.3.0|...|2.0.1][0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [32mxopen [1.6.0|1.7.0|1.8.0|1.9.0|2.0.1][0m would require - [32mpython_abi 3.11.* *_cp311[0m, which can be installed; - [32mxopen [1.7.0|1.8.0|1.9.0|2.0.1][0m would require - [32mzstandard[0m with the potential options - [32mzstandard [0.10.2|0.11.0|...|0.8.1][0m would require - [32mpython_abi * *_cp27mu[0m, which can be installed; - [32mzstandard [0.10.2|0.11.0|...|0.8.1][0m would require - [32mpython_abi * *_cp36m[0m, which can be installed; - [32mzstandard [0.10.2|0.11.0|0.11.1|0.12.0|0.13.0][0m would require - [32mpython_abi * *_cp37m[0m, which can be installed; - [32mzstandard [0.12.0|0.13.0][0m would require - [32mpython_abi * *_cp38[0m, which can be installed; - [32mzstandard [0.14.0|0.14.1|0.15.1|0.15.2][0m would require - [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; - [32mzstandard [0.14.0|0.14.1|0.15.1|0.15.2][0m would require - [32mpython_abi 3.6 *_pypy36_pp73[0m, which can be installed; - [32mzstandard [0.14.0|0.14.1|...|0.18.0][0m would require - [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; - [32mzstandard [0.14.0|0.14.1|...|0.22.0][0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mzstandard [0.14.0|0.14.1|...|0.22.0][0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [32mzstandard [0.14.1|0.15.1|0.15.2|0.16.0|0.17.0][0m would require - [32mpython_abi 3.7 *_pypy37_pp73[0m, which can be installed; - [32mzstandard [0.16.0|0.17.0|...|0.22.0][0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [32mzstandard [0.17.0|0.18.0|0.19.0][0m would require - [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; - [32mzstandard [0.17.0|0.18.0|0.19.0|0.21.0|0.22.0][0m would require - [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; - [32mzstandard [0.18.0|0.19.0|0.21.0|0.22.0][0m would require - [32mpython_abi 3.11.* *_cp311[0m, which can be installed; - [32mzstandard 0.8.1[0m would require - [32mpython_abi * *_cp35m[0m, which can be installed; - [31mzstandard [0.21.0|0.22.0][0m would require - [31mzstd >=1.5.5,<1.5.6.0a0 [0m, which conflicts with any installable versions previously reported; - [32mxopen 1.7.0[0m would require - [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; - [32mxopen [1.7.0|1.8.0|1.9.0|2.0.1][0m would require - [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed. -# Last 100 lines of the build log. diff --git a/recipes/whatshap/build_failure.linux-aarch64.yaml b/recipes/whatshap/build_failure.linux-aarch64.yaml deleted file mode 100644 index 286d834638539..0000000000000 --- a/recipes/whatshap/build_failure.linux-aarch64.yaml +++ /dev/null @@ -1,105 +0,0 @@ -recipe_sha: 9b572de4ff8373a2d807ddec40dc17bf503ae9bc41ed9e9afa694c1b3fc643d8 # The hash of the recipe's meta.yaml at which this recipe failed to build. -skiplist: true # Set to true to skiplist this recipe so that it will be ignored as long as its latest commit is the one given above. -category: dependency issue -log: |2- - - Traceback (most recent call last): - File "/opt/conda/bin/conda-build", line 11, in - sys.exit(execute()) - File "/opt/conda/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute - api.build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 250, in build - return build_tree( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree - packages_from_this = build( - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2409, in build - create_build_envs(top_level_pkg, notest) - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2247, in create_build_envs - raise e - File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2220, in create_build_envs - environ.get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 937, in get_install_actions - precs = get_package_records( - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 891, in get_install_actions - precs = _install_actions(prefix, index, specs)["LINK"] - File "/opt/conda/lib/python3.10/site-packages/conda_build/environ.py", line 1301, in install_actions - txn = solver.solve_for_transaction(prune=False, ignore_pinned=False) - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 153, in solve_for_transaction - unlink_precs, link_precs = self.solve_for_diff( - File "/opt/conda/lib/python3.10/site-packages/conda/core/solve.py", line 222, in solve_for_diff - final_precs = self.solve_final_state( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 223, in solve_final_state - out_state = self._solving_loop(in_state, out_state, index) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 303, in _solving_loop - solved = self._solve_attempt(in_state, out_state, index, attempt=attempt) - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 414, in _solve_attempt - new_conflicts = self._maybe_raise_for_problems( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 712, in _maybe_raise_for_problems - self._maybe_raise_for_conda_build( - File "/opt/conda/lib/python3.10/site-packages/conda_libmamba_solver/solver.py", line 805, in _maybe_raise_for_conda_build - raise exc - conda_libmamba_solver.conda_build_exceptions.ExplainedDependencyNeedsBuildingError: Unsatisfiable dependencies for platform linux-aarch64: {MatchSpec("xopen==1.7.0=py312h8025657_3"), MatchSpec("zstandard")} - Encountered problems while solving: - - package xopen-1.7.0-py312h8025657_3 requires zstandard, but none of the providers can be installed - - Could not solve for environment specs - The following packages are incompatible - [32mpysam >=0.18 [0m is installable with the potential options - [32mpysam 0.22.1[0m would require - [32mlibcurl >=8.8.0,<9.0a0 [0m, which requires - [32mzstd >=1.5.6,<1.6.0a0 [0m, which can be installed; - [32mpysam [0.22.0|0.22.1][0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [32mpysam [0.22.0|0.22.1][0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mpysam [0.22.0|0.22.1][0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [32mpysam 0.22.1[0m would require - [32mpython_abi 3.11.* *_cp311[0m, which can be installed; - [31mpython_abi 3.12.* *_cp312[0m is not installable because it conflicts with any installable versions previously reported; - [32mxopen >=1.2.0 [0m is installable with the potential options - [32mxopen [1.7.0|1.8.0|1.9.0|2.0.1][0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [32mxopen [1.7.0|1.8.0|1.9.0|2.0.1][0m would require - [32mpython_abi 3.11.* *_cp311[0m, which can be installed; - [32mxopen [1.7.0|1.8.0|1.9.0|2.0.1][0m would require - [32mzstandard[0m with the potential options - [32mzstandard [0.12.0|0.13.0][0m would require - [32mpython_abi * *_cp36m[0m, which can be installed; - [32mzstandard [0.12.0|0.13.0][0m would require - [32mpython_abi * *_cp37m[0m, which can be installed; - [32mzstandard [0.12.0|0.13.0][0m would require - [32mpython_abi * *_cp38[0m, which can be installed; - [32mzstandard [0.14.0|0.14.1|0.15.1|0.15.2][0m would require - [32mpython_abi 3.6.* *_cp36m[0m, which can be installed; - [32mzstandard [0.14.0|0.14.1|0.15.1|0.15.2][0m would require - [32mpython_abi 3.6 *_pypy36_pp73[0m, which can be installed; - [32mzstandard [0.14.0|0.14.1|...|0.18.0][0m would require - [32mpython_abi 3.7.* *_cp37m[0m, which can be installed; - [32mzstandard [0.14.0|0.14.1|...|0.22.0][0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mzstandard [0.14.0|0.14.1|...|0.22.0][0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [32mzstandard [0.14.1|0.15.1|0.15.2|0.16.0|0.17.0][0m would require - [32mpython_abi 3.7 *_pypy37_pp73[0m, which can be installed; - [32mzstandard [0.16.0|0.17.0|...|0.22.0][0m would require - [32mpython_abi 3.10.* *_cp310[0m, which can be installed; - [32mzstandard [0.17.0|0.18.0|0.19.0][0m would require - [32mpython_abi 3.8 *_pypy38_pp73[0m, which can be installed; - [32mzstandard [0.17.0|0.18.0|0.19.0|0.21.0|0.22.0][0m would require - [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed; - [32mzstandard [0.18.0|0.19.0|0.21.0|0.22.0][0m would require - [32mpython_abi 3.11.* *_cp311[0m, which can be installed; - [31mzstandard [0.21.0|0.22.0][0m would require - [31mzstd >=1.5.5,<1.5.6.0a0 [0m, which conflicts with any installable versions previously reported; - [32mxopen [1.7.0|1.8.0|1.9.0|2.0.1][0m would require - [32mpython_abi 3.8.* *_cp38[0m, which can be installed; - [32mxopen [1.7.0|1.8.0|1.9.0][0m would require - [32mpython_abi 3.9.* *_cp39[0m, which can be installed; - [32mxopen [1.7.0|1.8.0|1.9.0][0m would require - [32mpython_abi 3.9 *_pypy39_pp73[0m, which can be installed. -# Last 100 lines of the build log. diff --git a/recipes/whatshap/meta.yaml b/recipes/whatshap/meta.yaml index bf85a3c4c3e1f..60ae860a8702e 100644 --- a/recipes/whatshap/meta.yaml +++ b/recipes/whatshap/meta.yaml @@ -1,16 +1,19 @@ +{% set name = "whatshap" %} +{% set version = "2.3" %} + package: - name: whatshap - version: "2.3" + name: {{ name }} + version: {{ version }} source: url: https://files.pythonhosted.org/packages/37/99/7f156642064fe65aabbe6fa044a485e2aae6437dd545a9d539c06c1535dd/whatshap-2.3.tar.gz sha256: 1f7ac47b18784b213492e4b92dddc63132d371b2f353660462536bcadc15e62e build: - number: 1 - # Unexplicable CI failure, feel free to try to make this work again - skip: true # [osx] - script: python -m pip install --no-deps --ignore-installed . + number: 2 + script_env: + - SETUPTOOLS_SCM_PRETEND_VERSION={{ version }} + script: {{ PYTHON }} -m pip install --no-deps --no-build-isolation --no-cache-dir . -vvv run_exports: - {{ pin_subpackage('whatshap', max_pin="x") }} @@ -21,13 +24,12 @@ requirements: - python - pip - cython - - setuptools - setuptools-scm run: - python - pysam >=0.18 - pyfaidx >=0.5.5.2 - - networkx >=2.4 + - networkx - biopython >=1.73 - scipy - xopen >=1.2.0 @@ -40,16 +42,21 @@ test: imports: - whatshap commands: - - whatshap --help > /dev/null + - "whatshap --help > /dev/null" about: - home: https://whatshap.readthedocs.io/ - license: MIT License - summary: 'phase genomic variants using DNA sequencing reads (haplotype assembly)' + home: "https://whatshap.readthedocs.io" + license: MIT + license_family: MIT + license_file: LICENSE + summary: "Phase genomic variants using DNA sequencing reads (haplotype assembly)." + dev_url: "https://github.com/whatshap/whatshap" + doc_url: "https://whatshap.readthedocs.io" extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:whatshap - doi:10.1089/cmb.2014.0157 From 1119fd943b3ad56308176acbd96872326822153c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 21 Aug 2024 05:02:45 -0400 Subject: [PATCH 1409/1514] Update r-signac to 1.14.0 (#50233) * Update r-signac to 1.14.0 * edit meta.yaml --------- Co-authored-by: mencian --- recipes/r-signac/build.sh | 2 +- recipes/r-signac/meta.yaml | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/recipes/r-signac/build.sh b/recipes/r-signac/build.sh index fa2264035f2b0..d1df318472b53 100644 --- a/recipes/r-signac/build.sh +++ b/recipes/r-signac/build.sh @@ -6,7 +6,7 @@ if [[ ${target_platform} =~ linux.* ]] || [[ ${target_platform} == win-32 ]] || export DISABLE_AUTOBREW=1 mv DESCRIPTION DESCRIPTION.old grep -va '^Priority: ' DESCRIPTION.old > DESCRIPTION - ${R} CMD INSTALL --build . + ${R} CMD INSTALL --build . ${R_ARGS} else mkdir -p "${PREFIX}"/lib/R/library/Signac mv ./* "${PREFIX}"/lib/R/library/Signac diff --git a/recipes/r-signac/meta.yaml b/recipes/r-signac/meta.yaml index ed619910d09f3..6bc0eb3d6e0cb 100644 --- a/recipes/r-signac/meta.yaml +++ b/recipes/r-signac/meta.yaml @@ -1,14 +1,15 @@ -{% set version = '1.13.0' %} +{% set name = "r-signac" %} +{% set version = '1.14.0' %} package: - name: r-signac + name: {{ name }} version: {{ version|replace("-", "_") }} source: url: - {{ cran_mirror }}/src/contrib/Signac_{{ version }}.tar.gz - {{ cran_mirror }}/src/contrib/Archive/Signac/Signac_{{ version }}.tar.gz - sha256: d9b4103c6437391834b2d9e2aab8829f186b6e09d070dfe2a66cc12583241b2a + sha256: e0aad9e2c27c148fdd376081c2de1e3db46b1835eac83ef41fe562e08363c59e build: number: 0 @@ -34,7 +35,7 @@ requirements: - r-rcpproll - bioconductor-rsamtools - bioconductor-s4vectors - - r-seuratobject >=4.0.0 + - r-seuratobject >=5.0.2 - r-data.table - r-dplyr >=1.0.0 - r-fastmatch @@ -61,7 +62,7 @@ requirements: - r-rcpproll - bioconductor-rsamtools - bioconductor-s4vectors - - r-seuratobject >=4.0.0 + - r-seuratobject >=5.0.2 - r-data.table - r-dplyr >=1.0.0 - r-fastmatch @@ -83,7 +84,7 @@ test: - $R -e "library('Signac')" about: - home: https://github.com/timoast/signac, https://satijalab.org/signac + home: "https://github.com/timoast/signac" license: MIT summary: 'A framework for the analysis and exploration of single-cell chromatin data. The ''Signac'' package contains functions for quantifying single-cell chromatin data, computing @@ -93,3 +94,5 @@ about: license_file: - {{ environ["PREFIX"] }}/lib/R/share/licenses/MIT - LICENSE + doc_url: "https://satijalab.org/signac" + dev_url: "https://github.com/timoast/signac" From 5390e3ac88cdb84e2b9f1db07605019be54e1362 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Wed, 21 Aug 2024 04:26:32 -0500 Subject: [PATCH 1410/1514] Update gmap to 2024-08-14 (#48888) * Update gmap to 2024-06-24 * revert gmst.pl line * edit sha256 * edit build.sh * edit build.sh * edit build.sh * update to 2024-08-14 * try arm64 * edit build.sh * edit build.sh * edit meta.yaml * edit meta.yaml --- recipes/gmap/build.sh | 6 +++++- recipes/gmap/meta.yaml | 5 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/recipes/gmap/build.sh b/recipes/gmap/build.sh index 759a24c161362..511ba6f6917ca 100644 --- a/recipes/gmap/build.sh +++ b/recipes/gmap/build.sh @@ -1,5 +1,6 @@ #!/bin/bash -euo +export M4="${BUILD_PREFIX}/bin/m4" export INCLUDE_PATH="${PREFIX}/include" export LIBRARY_PATH="${PREFIX}/lib" export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" @@ -11,7 +12,7 @@ export LC_ALL=en_US.UTF-8 if [ "$(uname)" == "Darwin" ]; then # for Mac OSX export LDFLAGS="${LDFLAGS} -headerpad_max_install_names" - export CFLAGS="${CFLAGS} -m64" + export CFLAGS="${CFLAGS} -m64 -Wno-implicit-function-declaration -Wdeprecated-non-prototype" export LC_ALL=C fi @@ -22,6 +23,9 @@ case $(uname -m) in aarch64) SIMD_LEVEL="arm" ;; + arm64) + SIMD_LEVEL="arm" + ;; *) SIMD_LEVEL="none" ;; diff --git a/recipes/gmap/meta.yaml b/recipes/gmap/meta.yaml index e8c298171af19..6d429fbd0cae6 100644 --- a/recipes/gmap/meta.yaml +++ b/recipes/gmap/meta.yaml @@ -1,6 +1,6 @@ {% set name = "GMAP" %} -{% set version = "2024.05.20" %} -{% set sha256 = "a3e434ace5943595be983ad213a4d05d5c86287f13ca50d938e8bcb1b17f4087" %} +{% set version = "2024.08.14" %} +{% set sha256 = "45580a7fbfa5422836e27b13df1e5eba148141db27e7fb9b05fc308df101f97a" %} package: name: {{ name|lower }} @@ -14,6 +14,7 @@ source: build: number: 0 + skip: True # [osx and x86_64] run_exports: - {{ pin_subpackage('gmap', max_pin=None) }} From 13b6889523b648ad13bba72dae8e69420368e056 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 21 Aug 2024 08:19:34 -0400 Subject: [PATCH 1411/1514] Update snakemake to 8.18.2 (#50236) --- recipes/snakemake/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake/meta.yaml b/recipes/snakemake/meta.yaml index db7a22c4b8c4a..d14b6c0f29e59 100644 --- a/recipes/snakemake/meta.yaml +++ b/recipes/snakemake/meta.yaml @@ -1,7 +1,7 @@ # Attention: when upgrading the version, please compare below dependencies with # https://github.com/snakemake/snakemake/blob/{version}/setup.cfg {% set name = "snakemake" %} -{% set version = "8.18.1" %} +{% set version = "8.18.2" %} package: name: {{ name }} @@ -9,7 +9,7 @@ package: source: url: https://pypi.io/packages/source/s/{{ name }}/snakemake-{{ version }}.tar.gz - sha256: aac92b567d7783bb1be7854f0393254c7219be97961c77750e6463af181c1de1 + sha256: 7dc8cdc3c836444c2bc3d67a4a7f4d703557c1bf96a90da18f312f4df9daefc4 build: number: 0 From 74351fab6ccea227c28f3125a2b346c8684028b2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 21 Aug 2024 08:20:34 -0400 Subject: [PATCH 1412/1514] Update cami-opal to 1.0.13 (#50237) --- recipes/cami-opal/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/cami-opal/meta.yaml b/recipes/cami-opal/meta.yaml index 8e9d6ea40ba94..099c010d085a0 100644 --- a/recipes/cami-opal/meta.yaml +++ b/recipes/cami-opal/meta.yaml @@ -1,6 +1,6 @@ {% set name = "cami-opal" %} -{% set version = "1.0.12" %} -{% set sha256 = "f8ed286472106332d309ced2504b8fa729c03f6b9d72d8db4faabe726f033f87" %} +{% set version = "1.0.13" %} +{% set sha256 = "bbb869b739c555fbbfc26d2771fa1b501f671b620bcbf743c15327a51debd408" %} package: name: {{ name|lower }} @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 1 + number: 0 noarch: python script: {{ PYTHON }} -m pip install . --no-deps -vvv run_exports: From 086e8df370af91f10823f92c81faba51455c19f3 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 21 Aug 2024 08:20:54 -0400 Subject: [PATCH 1413/1514] Update assembly_finder to 0.7.6 (#50234) --- recipes/assembly_finder/meta.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/assembly_finder/meta.yaml b/recipes/assembly_finder/meta.yaml index 9a56c6d52fdef..1752e16a42cc1 100644 --- a/recipes/assembly_finder/meta.yaml +++ b/recipes/assembly_finder/meta.yaml @@ -1,5 +1,5 @@ {% set name = "assembly_finder" %} -{% set version = "0.7.5" %} +{% set version = "0.7.6" %} package: name: "{{ name|lower }}" @@ -7,10 +7,10 @@ package: source: url: https://github.com/metagenlab/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz - sha256: 5b5d6ec619775e419c6875215c71a3a1e8c4e745c4a7ddb6847a2c03313a1470 + sha256: aa77170404109f6efcc52aef3bab98d6a24a0c380c18aaba9afba9a6fea7c0ed build: - number: 1 + number: 0 noarch: python entry_points: - assembly_finder=assembly_finder.__main__:main @@ -53,4 +53,4 @@ extra: - farchaab - tpillone identifiers: - - biotools:assembly_finder \ No newline at end of file + - biotools:assembly_finder From 6a824dede4747ad99efc3139fec3ac3b9be5ee24 Mon Sep 17 00:00:00 2001 From: Alexander Peltzer Date: Wed, 21 Aug 2024 14:42:25 +0200 Subject: [PATCH 1414/1514] Update MultiQC to 1.24.1 Patch Release (#50238) --- recipes/multiqc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/multiqc/meta.yaml b/recipes/multiqc/meta.yaml index 2d92bfac620bc..13a32a383c730 100644 --- a/recipes/multiqc/meta.yaml +++ b/recipes/multiqc/meta.yaml @@ -1,5 +1,5 @@ {% set name = "multiqc" %} -{% set version = "1.24" %} +{% set version = "1.24.1" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/MultiQC/MultiQC/archive/v{{ version }}.tar.gz - sha256: 9293f130c3f9ad5ead7b8a1aca96c56f261809bdb7d3a5790892b5f74c862a37 + sha256: 88794a38a2b62635a44ba8af596959e0b2f530b21fa294ff3c6aa68780e9e166 build: number: 0 From 544147784d594d6671e30552ca3c8e48d7fa8a64 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 21 Aug 2024 13:02:11 -0400 Subject: [PATCH 1415/1514] Update cami-amber to 2.0.5 (#50235) * Update cami-amber to 2.0.5 * clean up recipe --------- Co-authored-by: mencian --- recipes/cami-amber/meta.yaml | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/recipes/cami-amber/meta.yaml b/recipes/cami-amber/meta.yaml index 0c4f04ed2f084..47deb58707c78 100644 --- a/recipes/cami-amber/meta.yaml +++ b/recipes/cami-amber/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.0.4" %} +{% set version = "2.0.5" %} package: name: cami-amber @@ -6,18 +6,18 @@ package: source: url: https://pypi.io/packages/source/c/cami-amber/cami-amber-{{ version }}.tar.gz - sha256: a671517d1ea2d43b74f0bd1934621b59b9d6e160f64ef485c03f612c9de21e3a + sha256: 59ccbb4447904b337a7979782fef3f68ee0addac37e4173f826de369c1a3e697 build: noarch: python - number: 1 + number: 0 run_exports: - - {{ pin_subpackage("cami-amber", max_pin="x.x") }} + - {{ pin_subpackage("cami-amber", max_pin="x") }} script: - - python -m pip install --no-deps --ignore-installed . - - cp ./src/utils/add_length_column.py $PREFIX/bin - - cp ./src/utils/convert_fasta_bins_to_biobox_format.py $PREFIX/bin - - cp ./src/utils/argparse_parents.py $PREFIX/bin + - {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv + - cp -rf ./cami_amber/utils/add_length_column.py $PREFIX/bin + - cp -rf ./cami_amber/utils/convert_fasta_bins_to_biobox_format.py $PREFIX/bin + - cp -rf ./cami_amber/utils/argparse_parents.py $PREFIX/bin requirements: host: @@ -25,14 +25,14 @@ requirements: - pip run: - python >=3.6 - - numpy >=1.24.2 - - biopython >=1.81 - - matplotlib-base >=3.7.1 - - pandas >=1.5.3 - - bokeh >=3.1.0 - - seaborn >=0.12.2 - - jinja2 >=3.1.2 - - pyarrow >=11.0.0 + - numpy >=2.0.1 + - biopython >=1.84 + - matplotlib-base >=3.8.4 + - pandas >=2.2.2 + - bokeh >=3.5.1 + - seaborn-base >=0.13.2 + - jinja2 >=3.1.4 + - pyarrow >=17.0.0 test: commands: @@ -42,6 +42,8 @@ test: about: home: https://github.com/CAMI-challenge/AMBER - license: GPL v3 + license: GPL-3.0-or-later + license_family: GPL3 license_file: LICENSE summary: 'AMBER: Assessment of Metagenome BinnERs' + dev_url: https://github.com/CAMI-challenge/AMBER From d3b737e88b99d96214af98371a7b81ee47ac9cdc Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 21 Aug 2024 13:02:54 -0400 Subject: [PATCH 1416/1514] Update pysradb to 2.2.1 (#50242) * Update pysradb to 2.2.1 * clean up recipe --------- Co-authored-by: mencian --- recipes/pysradb/meta.yaml | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/recipes/pysradb/meta.yaml b/recipes/pysradb/meta.yaml index 2fb096f1026c1..243922798a2e8 100644 --- a/recipes/pysradb/meta.yaml +++ b/recipes/pysradb/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pysradb" %} -{% set version = "2.2.0" %} +{% set version = "2.2.1" %} package: name: '{{ name|lower }}' @@ -7,14 +7,14 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: be7c451b590045683cb8b10786fedcd622f5da76e74284e70a4b2ee65faf43e9 + sha256: 038318b70bdf6b9ff0e1c5b67a38c5832d37ed142bbeeb3c5b55eec2d51371f4 build: number: 0 noarch: python entry_points: - pysradb=pysradb.cli:parse_args - script: {{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv + script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv run_exports: - {{ pin_subpackage('pysradb', max_pin="x") }} @@ -22,12 +22,7 @@ requirements: host: - python >=3.7 - pip - - lxml >=4.6.3 - - pandas >=1.3.2 - - requests >=2.26.0 - - requests-ftp >=0.3.1 - - tqdm >=4.62.1 - - xmltodict >=0.12.0 + - hatchling run: - python >=3.7 - lxml >=4.6.3 @@ -52,6 +47,7 @@ about: summary: 'Python package for retrieving metadata and downloading datasets from SRA/ENA/GEO' description: 'Python package for retrieving metadata and downloading datasets from SRA/ENA/GEO' doc_url: 'https://saketkc.github.io/pysradb' + dev_url: https://github.com/saketkc/pysradb extra: recipe-maintainers: From a29ce88f6ce11fa1b104e1b1e893b3137817c447 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 21 Aug 2024 14:00:42 -0400 Subject: [PATCH 1417/1514] Update gw to 1.0.2 (#50245) --- recipes/gw/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/gw/meta.yaml b/recipes/gw/meta.yaml index d8d9aa904573c..4645b40c73b2c 100644 --- a/recipes/gw/meta.yaml +++ b/recipes/gw/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.0.1" %} -{% set sha256 = "aacd161bb7131d7874a75b2ed409ee22109be3f87dd062c5590c6d30d1503e68" %} +{% set version = "1.0.2" %} +{% set sha256 = "1f9b17702a073e255a87e5e273c0dd0ddafbc25c02b19aa143b3d744ce5d359d" %} package: name: gw @@ -12,7 +12,7 @@ source: - fix-linker-issues.patch # [linux] build: - number: 3 + number: 0 run_exports: - {{ pin_subpackage('gw', max_pin="x") }} ignore_run_exports: From 43aeddf1571d1987f2a92c42d47b7bc85f359ce2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Wed, 21 Aug 2024 15:07:13 -0400 Subject: [PATCH 1418/1514] Update pbstarphase to 0.14.0 (#50248) --- recipes/pbstarphase/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pbstarphase/meta.yaml b/recipes/pbstarphase/meta.yaml index 116b3b5737bea..829520935dfff 100644 --- a/recipes/pbstarphase/meta.yaml +++ b/recipes/pbstarphase/meta.yaml @@ -1,6 +1,6 @@ {% set name = "pbstarphase" %} -{% set version = "0.13.3" %} -{% set sha256 = "3169cc00ef5a5a26d877893550e662bd0f9f817edbd113943178fd20f0a8d2b8" %} +{% set version = "0.14.0" %} +{% set sha256 = "5397c43338d006d65aa36c07d6299bf8c60c071138f0325760d32e65957d236d" %} package: name: {{ name }} From 6018f9975a2efcecbf6a56af02dc991f2a118f63 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 01:31:00 -0400 Subject: [PATCH 1419/1514] Update pyseer to 1.3.12 (#50243) * Update pyseer to 1.3.12 * pyseer: fix missing_run_exports linting error --------- Co-authored-by: Marco Galardini --- recipes/pyseer/meta.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/pyseer/meta.yaml b/recipes/pyseer/meta.yaml index 1b761f3f07687..de56804f70d60 100644 --- a/recipes/pyseer/meta.yaml +++ b/recipes/pyseer/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.3.11" %} +{% set version = "1.3.12" %} package: name: pyseer @@ -6,10 +6,12 @@ package: source: url: https://github.com/mgalardini/pyseer/releases/download/{{ version }}/pyseer-{{ version }}.tar.gz - sha256: 384313a3a14b92f873eaad53f77a319d90b584b9253785a7ca1dfc7d9220c91e + sha256: 31a9a528f0cc6409ddb1556b533dd9631c805b1b83bce0fcc6ad85f1126c9fbe build: + run_exports: + - {{ pin_subpackage('pyseer', max_pin="x") }} number: 0 noarch: python script: python -m pip install --no-deps --ignore-installed . From dcc95cb218705f7707f9ca72c26fa9ea36628f5b Mon Sep 17 00:00:00 2001 From: Mervin Fansler Date: Thu, 22 Aug 2024 10:21:59 +0200 Subject: [PATCH 1420/1514] Adds r-buencolors (#50240) * add r-buencolors * Create build.sh * subpackage --- recipes/r-buencolors/build.sh | 3 +++ recipes/r-buencolors/meta.yaml | 48 ++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 recipes/r-buencolors/build.sh create mode 100644 recipes/r-buencolors/meta.yaml diff --git a/recipes/r-buencolors/build.sh b/recipes/r-buencolors/build.sh new file mode 100644 index 0000000000000..b8d2635525637 --- /dev/null +++ b/recipes/r-buencolors/build.sh @@ -0,0 +1,3 @@ +#!/bin/bash +export DISABLE_AUTOBREW=1 +${R} CMD INSTALL --build . ${R_ARGS} diff --git a/recipes/r-buencolors/meta.yaml b/recipes/r-buencolors/meta.yaml new file mode 100644 index 0000000000000..51fca6e5f9c0a --- /dev/null +++ b/recipes/r-buencolors/meta.yaml @@ -0,0 +1,48 @@ +{% set version = "0.5.6" %} +{% set github = "https://github.com/caleblareau/BuenColors" %} +{% set commit = "f1bc8e640d129ef319a0db49b169a64b00026e00" %} + +package: + name: r-buencolors + version: "{{ version }}" + +source: + url: "{{ github }}/archive/{{ commit }}.zip" + sha256: 6caa14acafd81c9619d795e5dd56ef9fa7a37280d35fe9afe9b4bd9ff3cd776f + +build: + noarch: generic + number: 0 + rpaths: + - lib/R/lib/ + - lib/ + run_exports: + - {{ pin_subpackage("r-buencolors", max_pin="x.x") }} + +requirements: + host: + - r-base + - r-ggplot2 + - r-mass + run: + - r-base + - r-ggplot2 + - r-mass + +test: + commands: + - $R -e "library(BuenColors)" + +about: + home: {{ github }} + dev_url: {{ github }} + license: MIT + license_family: MIT + license_file: + - {{ environ["PREFIX"] }}/lib/R/share/licenses/MIT + - LICENSE + summary: R utility package for color mapping and plot aesthetics. + +extra: + recipe-maintainers: + - mfansler From c9369e84cbb0834a7bbc75a2096ecc637cb20883 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 04:22:55 -0400 Subject: [PATCH 1421/1514] Update sawfish to 0.12.2 (#50255) --- recipes/sawfish/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sawfish/meta.yaml b/recipes/sawfish/meta.yaml index 082d153819d1c..eb47681f4f5f8 100644 --- a/recipes/sawfish/meta.yaml +++ b/recipes/sawfish/meta.yaml @@ -1,5 +1,5 @@ {% set name = "sawfish" %} -{% set version = "0.12.1" %} +{% set version = "0.12.2" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/PacificBiosciences/sawfish/releases/download/v{{ version }}/sawfish-v{{ version }}-x86_64-unknown-linux-gnu.tar.gz - sha256: 4ced0da34a90a0616d8df2db8888021a5b0e1e7dc5b0293e780425b75b958e20 + sha256: 8ece74a9c288a19e3093f65199ab5d7d6511fd4f2a4f4556eedcc9673c5783cd build: number: 0 From 4b3f6608074b9c9f9c9448a35e38f752b21addcf Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 04:23:57 -0400 Subject: [PATCH 1422/1514] Update perl-mce-shared to 1.892 (#50251) --- recipes/perl-mce-shared/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/perl-mce-shared/meta.yaml b/recipes/perl-mce-shared/meta.yaml index c37471eabc40c..a84539cbb15e9 100644 --- a/recipes/perl-mce-shared/meta.yaml +++ b/recipes/perl-mce-shared/meta.yaml @@ -1,14 +1,14 @@ {% set name = "perl-mce-shared" %} -{% set version = "1.891" %} -{% set sha256 = "f65459bd04f5e41bbf3ba82d74af3e0fc6c992cfc245dc403b6ce4cc24904cb5" %} +{% set version = "1.892" %} +{% set sha256 = "f241ea83fbcb916ede5ff0017c0f0c8c1898fe9b40434df91488bfe21ba161a4" %} package: name: {{ name }} version: {{ version }} source: - url: https://cpan.metacpan.org/authors/id/M/MA/MARIOROY/MCE-Shared-1.891.tar.gz + url: https://cpan.metacpan.org/authors/id/M/MA/MARIOROY/MCE-Shared-1.892.tar.gz sha256: {{ sha256 }} build: From 4f654546ff06c7e70c04e7274695eaeff894c8c8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 04:24:22 -0400 Subject: [PATCH 1423/1514] Update perl-mce to 1.898 (#50250) --- recipes/perl-mce/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/perl-mce/meta.yaml b/recipes/perl-mce/meta.yaml index 724ef988ccc24..2d8a8a3f6cd5b 100644 --- a/recipes/perl-mce/meta.yaml +++ b/recipes/perl-mce/meta.yaml @@ -1,13 +1,13 @@ {% set name = "perl-mce" %} -{% set version = "1.897" %} -{% set sha256 = "673d337d14fc2d7a12576ca6615c729821dc616ee76e0ecc9c0f32de8a9f9c39" %} +{% set version = "1.898" %} +{% set sha256 = "c3e9c35dfdbb96073285c450ae10f747e46a4d0416f7d30a1b659dcc3e78a668" %} package: name: {{ name }} version: {{ version }} source: - url: https://cpan.metacpan.org/authors/id/M/MA/MARIOROY/MCE-1.897.tar.gz + url: https://cpan.metacpan.org/authors/id/M/MA/MARIOROY/MCE-1.898.tar.gz sha256: {{ sha256 }} build: From ae57b0c9f119db7096aaafe16a84e0d03ecc1777 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 04:24:48 -0400 Subject: [PATCH 1424/1514] Update sigprofilerassignment to 0.1.8 (#50247) --- recipes/sigprofilerassignment/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/sigprofilerassignment/meta.yaml b/recipes/sigprofilerassignment/meta.yaml index 63705800193c8..d67c7198b9b00 100644 --- a/recipes/sigprofilerassignment/meta.yaml +++ b/recipes/sigprofilerassignment/meta.yaml @@ -1,5 +1,5 @@ {% set name = "SigProfilerAssignment" %} -{% set version = "0.1.7" %} +{% set version = "0.1.8" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/SigProfilerAssignment-{{ version }}.tar.gz - sha256: f4522dccecb3a39792d4199aa730134c7cb9efa2f49e54d3d4b58915600fad02 + sha256: dc0deaf3d37570ed5557f829a2708d93c0c0d2feef99ae680c4222bb9e491f5f build: noarch: python From 886cb2715adeb854b9e830910ba7a0f5a1be7738 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 04:26:25 -0400 Subject: [PATCH 1425/1514] Update pathogen-embed to 3.1.0 (#50256) --- recipes/pathogen-embed/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pathogen-embed/meta.yaml b/recipes/pathogen-embed/meta.yaml index 4ff89cddc19cf..6686d0251dbaa 100644 --- a/recipes/pathogen-embed/meta.yaml +++ b/recipes/pathogen-embed/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "3.0.0" %} +{% set version = "3.1.0" %} {% set name = "pathogen-embed" %} package: @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pathogen_embed-{{ version }}.tar.gz - sha256: 3315a03c7fda6bcb49d50cbd3f4c99ab1ca1f261623e95cdce7359aca184cdea + sha256: 27c4a048c7e3c6bafc753ec297252f214a41d75a2c55ebb02542b8f37b19a897 build: number: 0 From 779f7205bd8b33d1f95600c99fbb20f2cf178c47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20K=C3=B6ster?= Date: Thu, 22 Aug 2024 10:37:27 +0200 Subject: [PATCH 1426/1514] add snakemake-executor-plugin-tes (#46363) * add snakemake-executor-plugin-tes * add sha * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update recipes/snakemake-executor-plugin-tes/meta.yaml Co-authored-by: David Laehnemann * Update recipes/snakemake-executor-plugin-tes/meta.yaml Co-authored-by: David Laehnemann * Update meta.yaml --------- Co-authored-by: David Laehnemann --- .../snakemake-executor-plugin-tes/meta.yaml | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 recipes/snakemake-executor-plugin-tes/meta.yaml diff --git a/recipes/snakemake-executor-plugin-tes/meta.yaml b/recipes/snakemake-executor-plugin-tes/meta.yaml new file mode 100644 index 0000000000000..2aaa1f6e115f1 --- /dev/null +++ b/recipes/snakemake-executor-plugin-tes/meta.yaml @@ -0,0 +1,46 @@ +{% set name = "snakemake-executor-plugin-tes" %} +{% set version = "0.1.3" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_executor_plugin_tes-{{ version }}.tar.gz + sha256: bbecd5c1e63a39e2ea84b752e8e4d68e64b16df686062f22e347cf97c7cd47b3 + +build: + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin='x.x') }} + +requirements: + host: + - python >=3.11,<3.13 + - poetry-core + - pip + run: + - python >=3.11.0,<3.13 + - snakemake-interface-common >=1.14.0,<2.0.0 + - snakemake-interface-executor-plugins >=9.0.0,<10.0.0 + - py-tes >=0.4.2,<0.5.0 + +test: + imports: + - snakemake_executor_plugin_tes + commands: + - pip check + requires: + - pip + +about: + home: https://github.com/snakemake/snakemake-executor-plugin-tes + summary: A Snakemake executor plugin for submitting jobs to a GA4GH TES cluster. + license: MIT + license_file: LICENSE + +extra: + recipe-maintainers: + - koesterlab From 8fcab49f557a1123b7956d3d5fba1f71c58afb85 Mon Sep 17 00:00:00 2001 From: Nils Homer Date: Thu, 22 Aug 2024 02:14:36 -0700 Subject: [PATCH 1427/1514] Add new recipe prymer (#50249) --- recipes/prymer/meta.yaml | 47 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 recipes/prymer/meta.yaml diff --git a/recipes/prymer/meta.yaml b/recipes/prymer/meta.yaml new file mode 100644 index 0000000000000..9c240473f7dd5 --- /dev/null +++ b/recipes/prymer/meta.yaml @@ -0,0 +1,47 @@ +{% set name = "prymer" %} +{% set version = "2.0.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/fulcrumgenomics/{{ name }}/archive/refs/tags/{{ version }}.tar.gz + sha256: c491a9a6af77784f911c16e692210b2d1795605b3628c42e80dffca82859d176 + +build: + noarch: python + number: 0 + script: {{ PYTHON }} -m pip install . -vvv --no-build-isolation --no-deps + run_exports: + - {{ pin_subpackage('prymer', max_pin="x.x") }} + +requirements: + host: + - pip + - python >=3.11 + - poetry + run: + - python >=3.11 + - pysam >=0.22.0 + - primer3 >=2.6.1 + +test: + imports: + - prymer + +about: + home: https://pypi.org/project/prymer/ + summary: Python Primer Design Library + license: MIT + license_family: MIT + license_file: LICENSE + dev_url: https://github.com/fulcrumgenomics/prymer + doc_url: https://prymer.readthedocs.io/en/latest/ + +extra: + recipe-maintainers: + - emmcauley + - geoffjentry + - nh13 + - tfenne From 0af39a9586d80c9ad228be0b6709995bf1e5dee2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 05:29:09 -0400 Subject: [PATCH 1428/1514] Update perl-graph to 0.9730 (#50259) --- recipes/perl-graph/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/perl-graph/meta.yaml b/recipes/perl-graph/meta.yaml index 951fae7d30fb1..9238ef88e30c4 100644 --- a/recipes/perl-graph/meta.yaml +++ b/recipes/perl-graph/meta.yaml @@ -1,10 +1,10 @@ package: name: perl-graph - version: "0.9729" + version: "0.9730" source: - url: https://cpan.metacpan.org/authors/id/E/ET/ETJ/Graph-0.9729.tar.gz - sha256: 3efbed46ca82f78f25253d034232b0cc9cfadfbd867437e63f9275850f85abb0 + url: https://cpan.metacpan.org/authors/id/E/ET/ETJ/Graph-0.9730.tar.gz + sha256: 28f4680ba879e079c93988ab092c8c1287f6efc63fb883da28e6e7fd3b947174 build: noarch: generic From 39a547d2f667641de524490114988c8a35408090 Mon Sep 17 00:00:00 2001 From: SantaMcCloud <100047964+SantaMcCloud@users.noreply.github.com> Date: Thu, 22 Aug 2024 13:12:07 +0200 Subject: [PATCH 1429/1514] Add biobox_add_taxid recipe (#50253) * Add biobox_add_taxid recipe * add run_export --- recipes/biobox_add_taxid/meta.yaml | 37 ++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 recipes/biobox_add_taxid/meta.yaml diff --git a/recipes/biobox_add_taxid/meta.yaml b/recipes/biobox_add_taxid/meta.yaml new file mode 100644 index 0000000000000..7cd3d1051365e --- /dev/null +++ b/recipes/biobox_add_taxid/meta.yaml @@ -0,0 +1,37 @@ +{% set name = "biobox_add_taxid" %} +{% set version = "0.3" %} +{% set sha256 = "f0bd555f1fc646e5a7f84d7f46914bcc06a5fa77ca251fd7303354987967208f" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/SantaMcCloud/{{ name }}/archive/refs/tags/release-{{ version }}.tar.gz + sha256: {{ sha256 }} + +build: + noarch: python + number: 0 + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + run_exports: + - {{ pin_subpackage("biobox_add_taxid", max_pin="x.x") }} + +requirements: + host: + - pip + - python + run: + - python + +test: + commands: + - biobox_add_taxid.py --help + - biobox_add_taxid.py --version + +about: + home: https://github.com/SantaMcCloud/biobox_add_taxid + license: MIT + license_family: MIT + license_file: LICENSE + summary: "CAMI amber utility script for adding the taxid output from GTDB and BAT" \ No newline at end of file From 7ce99054b5ec7e8006b1d0767cc6ab9c4ced3274 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 07:14:29 -0400 Subject: [PATCH 1430/1514] Update pybiolib to 1.2.108 (#50260) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index f9ad5ee41554e..2faad08dbd1da 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.2.71" %} +{% set version = "1.2.108" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: 9b81929a07564f0c5309ea20b37d963baa703ca508ddda53dd085526e5659c8f + sha256: f7bc951a8ec05f3282be0d935181648fc9aa38533c5adef509d05d346ca32bc4 build: number: 0 From efa68789652c72e9946d481f04cd65e93c504f2d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 08:39:20 -0400 Subject: [PATCH 1431/1514] Update panfeed to 1.6.2 (#50264) --- recipes/panfeed/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/panfeed/meta.yaml b/recipes/panfeed/meta.yaml index ecb21dbb39dd6..833ba2d123065 100644 --- a/recipes/panfeed/meta.yaml +++ b/recipes/panfeed/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.6.1" %} +{% set version = "1.6.2" %} {% set name = "panfeed" %} package: @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 427bf671c6edfb57e3671a83cd941f5ac894d2b9ed9e7df60f6615d6c911949c + sha256: 71e6e97b29784396421b59511dbca27103acfe31a3f392324d4d0419179340be build: entry_points: From c55af6a9a79bb995cf3f25456a336ab17e4cca9c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 11:12:55 -0400 Subject: [PATCH 1432/1514] Update pybiolib to 1.2.111 (#50265) --- recipes/pybiolib/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pybiolib/meta.yaml b/recipes/pybiolib/meta.yaml index 2faad08dbd1da..a01febe52c749 100644 --- a/recipes/pybiolib/meta.yaml +++ b/recipes/pybiolib/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pybiolib" %} -{% set version = "1.2.108" %} +{% set version = "1.2.111" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pybiolib-{{ version }}.tar.gz - sha256: f7bc951a8ec05f3282be0d935181648fc9aa38533c5adef509d05d346ca32bc4 + sha256: 28adeb22b1f56bc0e11d879f0a826dc4576b25e90fe3a5d4b624fd280f2f169d build: number: 0 From 80081ab4022a577c4b1bf01abb5257a77e7fde75 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 11:13:26 -0400 Subject: [PATCH 1433/1514] Update harpy to 1.7.0 (#50244) * Update harpy to 1.7.0 * Update harpy to 1.7.0 --- recipes/harpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/harpy/meta.yaml b/recipes/harpy/meta.yaml index f67de7a1c0b0c..9625e80c0fb41 100644 --- a/recipes/harpy/meta.yaml +++ b/recipes/harpy/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.6.1" %} -{% set sha256 = "a3b6a0ebfb51bcc17140a519b3c1df61211f333ba091392053a1637edec8aff7" %} +{% set version = "1.7.0" %} +{% set sha256 = "d9c7d2e36a358e2d13d7d0d5984a0cea2d7ae1224c3f11a4d01968a22efc07a6" %} package: name: harpy From 30e3d445ed8a6254cc1c50755e2fd51a181c67c3 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 15:34:03 -0400 Subject: [PATCH 1434/1514] Update augur to 25.3.0 (#50271) --- recipes/augur/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/augur/meta.yaml b/recipes/augur/meta.yaml index 582384a73f4d2..de58e8414ef84 100644 --- a/recipes/augur/meta.yaml +++ b/recipes/augur/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "25.2.0" %} +{% set version = "25.3.0" %} package: name: augur @@ -6,7 +6,7 @@ package: source: url: https://github.com/nextstrain/augur/releases/download/{{ version }}/nextstrain_augur-{{ version }}.tar.gz - sha256: 2869033bf551476859792e6fa442204dcd03c37e5a8a6239a19fe2da9e307248 + sha256: aff6de12fcbdb52f89da7cc6c8a7f1410b1b473882aa824fb3b40e8cea3d5d2a build: number: 0 From 65bba0b720b63a01eb44d467c955804083da3478 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 15:45:58 -0400 Subject: [PATCH 1435/1514] Update pytximport to 0.8.0 (#50268) --- recipes/pytximport/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pytximport/meta.yaml b/recipes/pytximport/meta.yaml index 698fc623fa95c..d7245d020c367 100644 --- a/recipes/pytximport/meta.yaml +++ b/recipes/pytximport/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pytximport" %} -{% set version = "0.7.0" %} +{% set version = "0.8.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/pytximport-{{ version }}.tar.gz - sha256: fa4992d4fe11246941b36eadc886d34d61d6682e5cf2ad266f9f96bb0da9290a + sha256: 18bdf4fbcd78092bba18f6941f5640a937b4f0230c30c2e8fca38ce207b3840b build: noarch: python From 60baecb3ef93bbbd1e0d8130077b673548225b64 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 16:00:38 -0400 Subject: [PATCH 1436/1514] Update ppanggolin to 2.1.1 (#50263) --- recipes/ppanggolin/meta.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/recipes/ppanggolin/meta.yaml b/recipes/ppanggolin/meta.yaml index 3a1b063442689..a1b7a55da9cf0 100644 --- a/recipes/ppanggolin/meta.yaml +++ b/recipes/ppanggolin/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.1.0" %} +{% set version = "2.1.1" %} package: name: ppanggolin @@ -6,7 +6,7 @@ package: source: url: https://github.com/labgem/PPanGGOLiN/archive/{{ version }}.tar.gz - sha256: f0f81d57e571619438a558895de750bb02f4728cfb2eb1928431dadb22fd49d1 + sha256: 2ad2a3a918a00a056323d368457d98252131ac1f75b040f2f351238a99f4ef54 build: number: 0 @@ -23,7 +23,7 @@ requirements: - pip - cython <3 run: - - python + - python >=3.8,<=3.12 - tqdm =4 - pytables =3 - pyrodigal =3 @@ -58,3 +58,4 @@ extra: recipe-maintainers: - axbazin - jpjarnoux + - JeanMainguy From 3228d8e19647db1027880aa363374a4542a8f89d Mon Sep 17 00:00:00 2001 From: stuber Date: Thu, 22 Aug 2024 14:02:58 -0600 Subject: [PATCH 1437/1514] vsnp3 version 3.24 (#50266) --- recipes/vsnp3/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/vsnp3/meta.yaml b/recipes/vsnp3/meta.yaml index 28ed73458bf68..eb92890af55bf 100644 --- a/recipes/vsnp3/meta.yaml +++ b/recipes/vsnp3/meta.yaml @@ -1,7 +1,7 @@ {% set user = "USDA-VS" %} {% set name = "vsnp3" %} -{% set version = "3.23" %} -{% set sha256 = "2ec038783ca43a3014dac3756efd460abea26d8c2edca8a41a65915c036388d9" %} +{% set version = "3.24" %} +{% set sha256 = "1a1013027a8112ba1e71e29a79e1cbdd92fee941738c24bddbee083b7d653788" %} package: From e0292e4fe32e96590baac323908c9b1e0204a038 Mon Sep 17 00:00:00 2001 From: Konstantinn Bonnet <50845450+qwx9@users.noreply.github.com> Date: Thu, 22 Aug 2024 21:05:02 +0100 Subject: [PATCH 1438/1514] update strangepg (#50262) --- recipes/strangepg/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/strangepg/meta.yaml b/recipes/strangepg/meta.yaml index 5305080d13612..5ad6f37944f03 100644 --- a/recipes/strangepg/meta.yaml +++ b/recipes/strangepg/meta.yaml @@ -1,6 +1,6 @@ {% set name = "strangepg" %} -{% set version = "0.8.0" %} -{% set ref = "55e8fba29e9e0259f5d950df477d1850eb4f3163" %} +{% set version = "0.8.1" %} +{% set ref = "aaa5f72ebd55b6562050239cce9a1f10077759bd" %} package: name: {{ name }} @@ -8,7 +8,7 @@ package: source: url: https://github.com/qwx9/{{ name }}/archive/{{ ref }}.tar.gz - sha256: a8210b50f6ceda7dc6edd05a771d8645523a05d43d01fc7d15bb36ad86d4ffc9 + sha256: 33acfe6ac4eb85ecaf41fc3a5990b466b7fccebe6fd6d5b002c085cd4d52cc0f build: number: 0 From ddef3d16288f8c4bf0b86419260dfa533103aebf Mon Sep 17 00:00:00 2001 From: Arya Massarat <23412689+aryarm@users.noreply.github.com> Date: Thu, 22 Aug 2024 13:06:40 -0700 Subject: [PATCH 1439/1514] art: enable osx-arm64 build (#50270) --- recipes/art/build.sh | 6 +++++- recipes/art/meta.yaml | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/recipes/art/build.sh b/recipes/art/build.sh index 0ed4c0e67646f..ee2131550a5ab 100644 --- a/recipes/art/build.sh +++ b/recipes/art/build.sh @@ -8,7 +8,11 @@ export CPATH=${PREFIX}/include mkdir -p $PREFIX/bin -./configure --prefix=$PREFIX +if [[ "$HOST" == "arm64-apple-"* ]]; then + ./configure --prefix=$PREFIX --host=arm +else + ./configure --prefix=$PREFIX +fi make -j ${CPU_COUNT} make install diff --git a/recipes/art/meta.yaml b/recipes/art/meta.yaml index cefbaaa1b2e1e..84123e4e38846 100644 --- a/recipes/art/meta.yaml +++ b/recipes/art/meta.yaml @@ -6,7 +6,7 @@ package: version: {{ version }} build: - number: 11 + number: 12 run_exports: - {{ pin_subpackage(name, max_pin=None) }} @@ -40,3 +40,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 From 79b7f8def6433e1ce31a974f635bac7819246f0d Mon Sep 17 00:00:00 2001 From: "Pavel V. Dimens" <19176506+pdimens@users.noreply.github.com> Date: Thu, 22 Aug 2024 16:08:55 -0400 Subject: [PATCH 1440/1514] Add popoolation2 recipe (from HCC) (#50211) --- recipes/popoolation2/build.sh | 21 +++++ recipes/popoolation2/meta.yaml | 55 ++++++++++++ recipes/popoolation2/mpileup2sync.py | 123 +++++++++++++++++++++++++++ 3 files changed, 199 insertions(+) create mode 100644 recipes/popoolation2/build.sh create mode 100644 recipes/popoolation2/meta.yaml create mode 100644 recipes/popoolation2/mpileup2sync.py diff --git a/recipes/popoolation2/build.sh b/recipes/popoolation2/build.sh new file mode 100644 index 0000000000000..0d2faf8de0be4 --- /dev/null +++ b/recipes/popoolation2/build.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +outdir=${PREFIX}/share/${PKG_NAME}-${PKG_VERSION}-${PKG_BUILDNUM} +mkdir -p ${PREFIX}/bin ${outdir} + +chmod +x *.pl export/*.pl indel_filtering/*.pl +cp -R *.pl export Modules indel_filtering ${PREFIX}/bin +cp mpileup2sync.jar ${outdir} +cp ${RECIPE_DIR}/mpileup2sync.py ${outdir}/mpileup2sync + +ln -s ${outdir}/mpileup2sync ${PREFIX}/bin + +for f in cmh2gwas.pl pwc2igv.pl subsample_sync2fasta.pl subsample_sync2GenePop.pl + do + ln -s ${PREFIX}/bin/export/${f} ${PREFIX}/bin +done + +for f in filter-sync-by-gtf.pl identify-indel-regions.pl + do + ln -s ${PREFIX}/bin/indel_filtering/${f} ${PREFIX}/bin +done diff --git a/recipes/popoolation2/meta.yaml b/recipes/popoolation2/meta.yaml new file mode 100644 index 0000000000000..6f33895b378fc --- /dev/null +++ b/recipes/popoolation2/meta.yaml @@ -0,0 +1,55 @@ +{% set name = "popoolation2" %} +{% set version = "1.201" %} +{% set sha256 = "7f45353a211ec88d36fd1beed1d128673f3ff911b731211eb5a39f8602bddd42" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://downloads.sourceforge.net/project/popoolation2/popoolation2_1201.zip + sha256: {{ sha256 }} + +build: + number: 0 + noarch: generic + run_exports: + - {{ pin_subpackage('popoolation2', max_pin="x") }} + +requirements: + host: + - perl + run: + - perl + - perl-text-nsp + - r-base + - bwa + - samtools + - igv + - openjdk + - python + +test: + commands: + - page -V 2>&1 | grep page + - snp-frequency-diff.pl --help 2>&1 | grep SNP-frequency-diff.pl + - fst-sliding.pl --help 2>&1 | grep fst-sliding.pl + - fisher-test.pl --help 2>&1 | grep fisher-test.pl + - pwc2igv.pl --help 2>&1 | grep pwc2igv + - cmh2gwas.pl --help 2>&1 | grep cmh2gwas + - identify-indel-regions.pl 2>&1 | grep identify-indel-regions + - filter-sync-by-gtf.pl 2>&1 | grep filter-sync-by-gtf + - mpileup2sync --help 2>&1 | grep mpileup2sync + - subsample_sync2fasta.pl 2>&1 | grep subsample_sync2fasta + - subsample_sync2GenePop.pl 2>&1 | grep subsample_sync2GenePop + - filter-sync-by-gtf.pl 2>&1 | grep filter-sync-by-gtf + +about: + home: "https://sourceforge.net/projects/popoolation2" + summary: "PoPoolation2 allows to compare allele frequencies for SNPs between two or more populations and to identify significant differences." + license: BSD-3 + license_family: BSD + +extra: + identifiers: + - doi:10.1093/bioinformatics/btr589 diff --git a/recipes/popoolation2/mpileup2sync.py b/recipes/popoolation2/mpileup2sync.py new file mode 100644 index 0000000000000..2629cf831876a --- /dev/null +++ b/recipes/popoolation2/mpileup2sync.py @@ -0,0 +1,123 @@ +#! /usr/bin/env python +# +# Wrapper script for Java Conda packages that ensures that the java runtime +# is invoked with the right options. Adapted from the bash script (http://stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in/246128#246128). + +# +# Program Parameters +# +import os +import subprocess +import sys +import shutil +from os import access +from os import getenv +from os import X_OK + +jar_file = 'mpileup2sync.jar' + + +default_jvm_mem_opts = ['-Xms2g', '-Xmx7g'] + +# !!! End of parameter section. No user-serviceable code below this line !!! + + +def real_dirname(path): + """Return the symlink-resolved, canonicalized directory-portion of path.""" + return os.path.dirname(os.path.realpath(path)) + + +def java_executable(): + """Return the executable name of the Java interpreter.""" + java_home = getenv('JAVA_HOME') + java_bin = os.path.join('bin', 'java') + + if java_home and access(os.path.join(java_home, java_bin), X_OK): + return os.path.join(java_home, java_bin) + else: + return 'java' + + +def jvm_opts(argv): + """Construct list of Java arguments based on our argument list. + + The argument list passed in argv must not include the script name. + The return value is a 3-tuple lists of strings of the form: + (memory_options, prop_options, passthrough_options) + """ + mem_opts = [] + prop_opts = [] + pass_args = [] + exec_dir = None + + for arg in argv: + if arg.startswith('-D'): + prop_opts.append(arg) + elif arg.startswith('-XX'): + prop_opts.append(arg) + elif arg.startswith('-Xm'): + mem_opts.append(arg) + elif arg.startswith('--exec_dir='): + exec_dir = arg.split('=')[1].strip('"').strip("'") + if not os.path.exists(exec_dir): + shutil.copytree(real_dirname(sys.argv[0]), exec_dir, symlinks=False, ignore=None) + else: + pass_args.append(arg) + + # In the original shell script the test coded below read: + # if [ "$jvm_mem_opts" == "" ] && [ -z ${_JAVA_OPTIONS+x} ] + # To reproduce the behaviour of the above shell code fragment + # it is important to explictly check for equality with None + # in the second condition, so a null envar value counts as True! + + if mem_opts == [] and getenv('_JAVA_OPTIONS') is None: + mem_opts = default_jvm_mem_opts + + return (mem_opts, prop_opts, pass_args, exec_dir) + + +def def_temp_log_opts(args): + """ + Establish default temporary and log folders. + """ + TEMP = os.getenv("TEMP") + + if TEMP is not None: + if '-log' not in args: + args.append('-log') + args.append(TEMP+'/logs') + + if '-temp_folder' not in args : + args.append('-temp_folder') + args.append(TEMP) + + return args + + +def main(): + java = java_executable() + """ + PeptideShaker updates files relative to the path of the jar file. + In a multiuser setting, the option --exec_dir="exec_dir" + can be used as the location for the peptide-shaker distribution. + If the exec_dir dies not exist, + we copy the jar file, lib, and resources to the exec_dir directory. + """ + (mem_opts, prop_opts, pass_args, exec_dir) = jvm_opts(sys.argv[1:]) + pass_args = def_temp_log_opts(pass_args) + jar_dir = exec_dir if exec_dir else real_dirname(sys.argv[0]) + + if pass_args != [] and pass_args[0].startswith('eu'): + jar_arg = '-cp' + else: + jar_arg = '-jar' + + jar_path = os.path.join(jar_dir, jar_file) + + java_args = [java] + mem_opts + prop_opts + [jar_arg] + [jar_path] + pass_args + + sys.exit(subprocess.call(java_args)) + + +if __name__ == '__main__': + main() From dda73253e4f3c8840e45ebee8b25e14ffd7f3c43 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 17:37:53 -0400 Subject: [PATCH 1441/1514] Update mimsi to 0.4.5 (#50246) * Update mimsi to 0.4.5 * Update mimsi to 0.4.5 * Add run_exports --------- Co-authored-by: Martin Grigorov --- recipes/mimsi/meta.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/mimsi/meta.yaml b/recipes/mimsi/meta.yaml index ff1db577f609a..afbe48b18ac7d 100755 --- a/recipes/mimsi/meta.yaml +++ b/recipes/mimsi/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.4.4" %} +{% set version = "0.4.5" %} package: @@ -7,10 +7,12 @@ package: source: url: https://github.com/mskcc/mimsi/archive/refs/tags/v{{ version }}.tar.gz - sha256: fcf866629615550f30ce63d065036370141a050ae5643c0bcd3751ae0f5696aa + sha256: 3bbca89b5592911c92f5e18c3d490f85914ccf64101b8dabb35c196668f6e3bd build: number: 0 + run_exports: + - {{ pin_subpackage('mimsi', max_pin='x.x') }} noarch: python script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed --no-cache-dir " From c6af63245016af367e1ec658639a23ed3f91e557 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 17:38:01 -0400 Subject: [PATCH 1442/1514] Update relion to 4.0.2 (#50257) * Update relion to 4.0.2 * Add run_exports * Fix Jinja2 syntax --------- Co-authored-by: Martin Grigorov --- recipes/relion/meta.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recipes/relion/meta.yaml b/recipes/relion/meta.yaml index b790782ac6bbb..dd09e484e2da1 100644 --- a/recipes/relion/meta.yaml +++ b/recipes/relion/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "4.0.1" %} +{% set version = "4.0.2" %} package: name: relion @@ -6,10 +6,12 @@ package: source: url: https://github.com/3dem/relion/archive/refs/tags/{{ version }}.tar.gz - sha256: 0ebbd94ad922d7f457e3f3b81f5660e2691a845d9a53f0f1c9fbeb4e54cd5c17 + sha256: 7ccc941a6a885bd850efa8867ea908254d8dc260cf72cc24c375bb9f1d56bf91 build: - number: 3 + number: 0 + run_exports: + - {{ pin_subpackage('relion', max_pin='x') }} requirements: build: From 40dc5300f247045de37e9e633060e6ee2ad9f477 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Thu, 22 Aug 2024 19:21:06 -0400 Subject: [PATCH 1443/1514] Update orthanq to 1.7.6 (#50273) --- recipes/orthanq/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/orthanq/meta.yaml b/recipes/orthanq/meta.yaml index 9d9e65247ca0d..94442d6f600ce 100644 --- a/recipes/orthanq/meta.yaml +++ b/recipes/orthanq/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.7.5" %} +{% set version = "1.7.6" %} package: name: orthanq @@ -12,7 +12,7 @@ build: source: url: https://github.com/orthanq/orthanq/archive/v{{ version }}.tar.gz - sha256: f116404548dd15641785177a39b272d91c43c5f66e0022266277e51811426e24 + sha256: 866dca2de2b8599ba70e6435ad5edd1d4945242a9f7e7edeabdaffc3a7037cc9 requirements: build: From 7ae9a51dd3138547a702e149c23f53a1a47de510 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 23 Aug 2024 12:42:34 -0400 Subject: [PATCH 1444/1514] Update bpipe to 0.9.13 (#50280) --- recipes/bpipe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/bpipe/meta.yaml b/recipes/bpipe/meta.yaml index 9bc00b7316519..68230c4b19867 100644 --- a/recipes/bpipe/meta.yaml +++ b/recipes/bpipe/meta.yaml @@ -1,5 +1,5 @@ {% set name = "bpipe" %} -{% set version = "0.9.12" %} +{% set version = "0.9.13" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/ssadedin/bpipe/releases/download/{{ version }}/bpipe-{{ version }}.tar.gz - sha256: '2c8b004e8bcc6bc85c14b699ee011af8a9f9e19f252260a14561492dadc5878b' + sha256: '206939fe11d47d3d5d93667317d6acfdf23fb0bdc3ffb0e7a891c3010d390339' build: number: 0 From 6df1f85b6384b9a134e7e37151dcf0085cb2ac8f Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 23 Aug 2024 12:42:49 -0400 Subject: [PATCH 1445/1514] Update mess to 0.9.0 (#50282) --- recipes/mess/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/mess/meta.yaml b/recipes/mess/meta.yaml index d6e0e7fbdce95..79e6e64a7263c 100644 --- a/recipes/mess/meta.yaml +++ b/recipes/mess/meta.yaml @@ -1,5 +1,5 @@ {% set name = "MeSS" %} -{% set version = "0.8.3" %} +{% set version = "0.9.0" %} package: name: "{{ name|lower }}" @@ -7,10 +7,10 @@ package: source: url: https://github.com/metagenlab/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz - sha256: 0f33dad4c2a90ed5e7d573c5cdb878150d63e99cfdbf83504f72c557eb075d74 + sha256: a0bb9d8dc81548cfad1cc45d43c82d41b28a399dd8f6bad4c5588a8201196f1a build: - number: 1 + number: 0 noarch: python entry_points: - mess=mess.__main__:main From 7fa05c7e0d470fb2a4aba022f3e201834c1ec7b2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 23 Aug 2024 12:43:01 -0400 Subject: [PATCH 1446/1514] Update gapseq to 1.3 (#50283) --- recipes/gapseq/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gapseq/meta.yaml b/recipes/gapseq/meta.yaml index b62b67d0b8755..44e964c9e8146 100644 --- a/recipes/gapseq/meta.yaml +++ b/recipes/gapseq/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.2" %} +{% set version = "1.3" %} package: name: gapseq @@ -6,7 +6,7 @@ package: source: url: https://github.com/jotech/gapseq/archive/refs/tags/v{{ version}}.tar.gz - sha256: 061799f8e0406662450dd3d8d61d824220670fb23231895deecd490a5cbdf7cf + sha256: 2ab2512813741593e1c69bf18e396edf9643e7dd7ab80afa59c4ba18c13f13ee build: number: 0 From 851d4d8b962079d969e7f73dfd04f9932cf9a74b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 23 Aug 2024 12:45:59 -0400 Subject: [PATCH 1447/1514] Update gxformat2 to 0.20.0 (#50285) --- recipes/gxformat2/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gxformat2/meta.yaml b/recipes/gxformat2/meta.yaml index 94eda22a18411..dac668815b47c 100644 --- a/recipes/gxformat2/meta.yaml +++ b/recipes/gxformat2/meta.yaml @@ -1,5 +1,5 @@ {% set name = "gxformat2" %} -{% set version = "0.19.0" %} +{% set version = "0.20.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 19cf7d4301ef3a7545c465e5daa7127042758bf4d9eba1f1dcc122eb47b99cfc + sha256: 9697b1548c7a016e211581831c48242718f2cbe8987c7db0dc75c20e65931df8 build: number: 0 From 2ac21793fac0f1d5564cd402282af7b516fa74ff Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 23 Aug 2024 12:46:18 -0400 Subject: [PATCH 1448/1514] Update orthanq to 1.7.7 (#50286) --- recipes/orthanq/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/orthanq/meta.yaml b/recipes/orthanq/meta.yaml index 94442d6f600ce..5547095f2a958 100644 --- a/recipes/orthanq/meta.yaml +++ b/recipes/orthanq/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.7.6" %} +{% set version = "1.7.7" %} package: name: orthanq @@ -12,7 +12,7 @@ build: source: url: https://github.com/orthanq/orthanq/archive/v{{ version }}.tar.gz - sha256: 866dca2de2b8599ba70e6435ad5edd1d4945242a9f7e7edeabdaffc3a7037cc9 + sha256: 1adbdb92ce2b47974603eacfec4907121ca701cf43e260780b3e018ba3767cfb requirements: build: From 0c0545cfa1a37a719446f1a17aa468f4841cb3fc Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 23 Aug 2024 12:58:11 -0400 Subject: [PATCH 1449/1514] Update snakemake-executor-plugin-slurm to 0.10.0 (#50284) --- recipes/snakemake-executor-plugin-slurm/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/snakemake-executor-plugin-slurm/meta.yaml b/recipes/snakemake-executor-plugin-slurm/meta.yaml index dcd161f2ac530..3c0bfb35d7ec2 100644 --- a/recipes/snakemake-executor-plugin-slurm/meta.yaml +++ b/recipes/snakemake-executor-plugin-slurm/meta.yaml @@ -1,5 +1,5 @@ {% set name = "snakemake-executor-plugin-slurm" %} -{% set version = "0.9.0" %} +{% set version = "0.10.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/snakemake_executor_plugin_slurm-{{ version }}.tar.gz - sha256: 1d527dc8d09daa194b4ced3360d06bce61001bfa78471ff35bd421c818fa4101 + sha256: d970bd08e00f1664adbd3c421c956b2ce926359ff10a4d7650c444c1179bec3f build: noarch: python From 7c0757ddf8304ef266b64d985184da13c8f13d68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20P=C5=99=C3=ADhoda?= Date: Fri, 23 Aug 2024 19:02:54 +0200 Subject: [PATCH 1450/1514] Bump up abnumber (#50278) --- recipes/abnumber/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/abnumber/meta.yaml b/recipes/abnumber/meta.yaml index e0f38f1c54682..e151ff0389261 100644 --- a/recipes/abnumber/meta.yaml +++ b/recipes/abnumber/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.3.7" %} # Remember to update sha256 below +{% set version = "0.3.8" %} # Remember to update sha256 below package: name: abnumber @@ -6,7 +6,7 @@ package: source: url: https://github.com/prihoda/abnumber/archive/v{{ version }}.tar.gz - sha256: '4c99804745202ddf7bdf3da1add8d043035aabb5064ee69c8ef7b734d925e2ae' + sha256: '9d811615800d479bb2ddd54996f1255806bd9ebc140407a54a0bc1790f9a8cee' build: noarch: python From b1234589fc68e154717ad327f529d2c009fff013 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 23 Aug 2024 13:03:28 -0400 Subject: [PATCH 1451/1514] Update dfast_qc to 1.0.4 (#50279) * Update dfast_qc to 1.0.3 * Update build.sh * Update dfast_qc to 1.0.4 --------- Co-authored-by: Yasuhiro Tanizawa <30499043+nigyta@users.noreply.github.com> --- recipes/dfast_qc/build.sh | 1 + recipes/dfast_qc/meta.yaml | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/dfast_qc/build.sh b/recipes/dfast_qc/build.sh index ffe64f11c0e4a..1a99a07fb5e4b 100755 --- a/recipes/dfast_qc/build.sh +++ b/recipes/dfast_qc/build.sh @@ -21,6 +21,7 @@ ln -s ${APPROOT}/dfast_qc ${PREFIX}/bin/ ln -s ${APPROOT}/dqc_admin_tools.py ${PREFIX}/bin/ ln -s ${APPROOT}/initial_setup.sh ${PREFIX}/bin/dqc_initial_setup.sh ln -s ${APPROOT}/dqc_ref_manager.py ${PREFIX}/bin/ +ln -s ${APPROOT}/dqc_multi ${PREFIX}/bin/ # ${PREFIX}/bin/dfast_qc --version dfast_qc --version diff --git a/recipes/dfast_qc/meta.yaml b/recipes/dfast_qc/meta.yaml index 5481d28e3c43b..e9867cd503264 100644 --- a/recipes/dfast_qc/meta.yaml +++ b/recipes/dfast_qc/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.0.2" %} +{% set version = "1.0.4" %} package: name: dfast_qc @@ -12,7 +12,7 @@ build: source: url: https://github.com/nigyta/dfast_qc/archive/{{ version }}.tar.gz - sha256: 60cc0badf7b2aa8a464b92db717b2853e343b09a18f2c4bf6eeced3c79b0ba7b + sha256: 3e501924c6f75d95a9528b026f2e40eec54147b5190dcf5d549f38fb57ba92ab requirements: From e3f73b7e00d695b7ef07cc6134df068ed5684644 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Fri, 23 Aug 2024 18:25:17 -0400 Subject: [PATCH 1452/1514] Update biobox_add_taxid to 0.4 (#50288) --- recipes/biobox_add_taxid/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/biobox_add_taxid/meta.yaml b/recipes/biobox_add_taxid/meta.yaml index 7cd3d1051365e..58b40f8d0412a 100644 --- a/recipes/biobox_add_taxid/meta.yaml +++ b/recipes/biobox_add_taxid/meta.yaml @@ -1,6 +1,6 @@ {% set name = "biobox_add_taxid" %} -{% set version = "0.3" %} -{% set sha256 = "f0bd555f1fc646e5a7f84d7f46914bcc06a5fa77ca251fd7303354987967208f" %} +{% set version = "0.4" %} +{% set sha256 = "2df4de457494ef85b8ca38326629f2705499564a360a7156871d5d2281df1086" %} package: name: {{ name|lower }} @@ -34,4 +34,4 @@ about: license: MIT license_family: MIT license_file: LICENSE - summary: "CAMI amber utility script for adding the taxid output from GTDB and BAT" \ No newline at end of file + summary: "CAMI amber utility script for adding the taxid output from GTDB and BAT" From bb377039d06bc57f7789d3077da01884fa2122cd Mon Sep 17 00:00:00 2001 From: lweber21 Date: Fri, 23 Aug 2024 23:01:15 -0500 Subject: [PATCH 1453/1514] Add tribal (#50252) --- recipes/tribal/meta.yaml | 55 ++++++++++++++++++++++++++++++++++++++ recipes/tribal/run_test.py | 21 +++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 recipes/tribal/meta.yaml create mode 100644 recipes/tribal/run_test.py diff --git a/recipes/tribal/meta.yaml b/recipes/tribal/meta.yaml new file mode 100644 index 0000000000000..fc988e2ff8264 --- /dev/null +++ b/recipes/tribal/meta.yaml @@ -0,0 +1,55 @@ +{% set name = "TRIBAL" %} +{% set version = "0.1.1" %} + +package: + name: '{{ name|lower }}' + version: '{{ version }}' + +source: + url: https://github.com/elkebir-group/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz + sha256: 3859295c1e615ce9ce5d34e73c9dea33a08a105a502096e7640e0feeda83756e + +build: + number: 0 + run_exports: + - {{ pin_subpackage('tribal', max_pin='x.x') }} + script: + - "{{ PYTHON }} -m pip install . --no-deps --ignore-installed -vvv" + - $CC -c tribal/dnapars/phylip.c -o tribal/dnapars/phylip.o -fcommon + - $CC -c tribal/dnapars/seq.c -o tribal/dnapars/seq.o -fcommon + - $CC -c tribal/dnapars/dnapars.c -o tribal/dnapars/dnapars.o -fcommon + - $CC tribal/dnapars/seq.o tribal/dnapars/phylip.o tribal/dnapars/dnapars.o -lm -o $PREFIX/bin/dnapars + +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + host: + - python >=3.9,<3.11 + - pip + - setuptools + run: + - python >=3.9,<3.11 + - numpy >=1.26,<2.0 + - pandas + - networkx >=3.1 + - pygraphviz >=1.10 + - ete3 >=3.1.2 + - mafft ==7.526 + - glpk >=5.0 + - pyomo >=6.7 + - biopython >=1.81 + +test: + imports: + - tribal + commands: + - tribal --help + - tribal preprocess -h + - tribal fit -h + +about: + home: "https://github.com/elkebir-group/TRIBAL" + doc_url: "https://elkebir-group.github.io/TRIBAL" + license: "BSD-3-Clause" + summary: "TRIBAL is a package to infer B cell lineage trees from single-cell RNA sequencing data." diff --git a/recipes/tribal/run_test.py b/recipes/tribal/run_test.py new file mode 100644 index 0000000000000..74c8489f92072 --- /dev/null +++ b/recipes/tribal/run_test.py @@ -0,0 +1,21 @@ +""" +Vignette to demonstrate the capabilities of the tribal package. +""" + +from tribal.preprocess import preprocess +from tribal import df, roots +from tribal import Tribal + + +if __name__ == "__main__": + + isotypes = ['IGHM', 'IGHG3', 'IGHG1', 'IGHA1','IGHG2','IGHG4','IGHE','IGHA2'] + + #test that dnapars installed correctly by running it during preprocessing + clonotypes, df_filt = preprocess(df, roots,isotypes, cores=3, verbose=True ) + + #test that the tribal package is working + tr = Tribal(n_isotypes=len(isotypes), verbose=True, restarts=1, niter=15) + + #run in refinement mode + shm_score, csr_likelihood, best_scores, transmat = tr.fit(clonotypes=clonotypes, mode="refinement", cores=6) \ No newline at end of file From 759aa530221efca9d17ab70a50a6ae0400388260 Mon Sep 17 00:00:00 2001 From: Nils Homer Date: Fri, 23 Aug 2024 21:04:03 -0700 Subject: [PATCH 1454/1514] Add new recipe for bwa-aln-interactive (#50269) --- recipes/bwa-aln-interactive/build.sh | 5 ++++ recipes/bwa-aln-interactive/meta.yaml | 38 +++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 recipes/bwa-aln-interactive/build.sh create mode 100644 recipes/bwa-aln-interactive/meta.yaml diff --git a/recipes/bwa-aln-interactive/build.sh b/recipes/bwa-aln-interactive/build.sh new file mode 100644 index 0000000000000..f7f3b28babaf1 --- /dev/null +++ b/recipes/bwa-aln-interactive/build.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +make CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" LDFLAGS="$LDFLAGS" -j "${CPU_COUNT}" +mkdir -p $PREFIX/bin +cp bwa $PREFIX/bin/bwa-aln-interactive diff --git a/recipes/bwa-aln-interactive/meta.yaml b/recipes/bwa-aln-interactive/meta.yaml new file mode 100644 index 0000000000000..ac90752afdf90 --- /dev/null +++ b/recipes/bwa-aln-interactive/meta.yaml @@ -0,0 +1,38 @@ +{% set version = "0.7.18" %} +{% set sha256 = "66645908adeeaa288177fd87f1878f83d6547dd37cdf999aff5b5ce9a9437c81" %} + + +package: + name: bwa-aln-interactive + version: {{ version }} + +source: + url: https://github.com/fulcrumgenomics/bwa-aln-interactive/archive/refs/tags/v{{ version }}.tar.gz + sha256: {{ sha256 }} + +build: + number: 0 + run_exports: + - {{ pin_subpackage("bwa-aln-interactive", max_pin="x.x") }} + +requirements: + build: + - make + - {{ compiler('c') }} + host: + - zlib + +test: + commands: + - bwa-aln-interactive 2>&1 | grep "index sequences in the" + +about: + home: https://github.com/fulcrumgenomics/bwa-aln-interactive + license: GPL-3.0-only + license_file: COPYING + summary: Version of the BWA aln read mapper for interactive alignment. + +extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 From 85e135c0e9429ec7414f7caa700e692c5fd89eda Mon Sep 17 00:00:00 2001 From: Daria Frolova <64833238+babayagaofficial@users.noreply.github.com> Date: Sat, 24 Aug 2024 05:05:56 +0100 Subject: [PATCH 1455/1514] add pling (#50267) --- recipes/pling/meta.yaml | 48 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 recipes/pling/meta.yaml diff --git a/recipes/pling/meta.yaml b/recipes/pling/meta.yaml new file mode 100644 index 0000000000000..61c2193346c7e --- /dev/null +++ b/recipes/pling/meta.yaml @@ -0,0 +1,48 @@ +{% set version = "2.0.0" %} +{% set name = "pling" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://github.com/iqbal-lab-org/{{ name|lower }}/archive/refs/tags/v{{ version }}.tar.gz + sha256: 9e00b70239dcefdcfbaf3089757f1d6505428d71e1ef612fa3e3a230b368ce44 + +build: + number: 0 + noarch: python + script: "pip install . --no-deps --ignore-installed --no-cache-dir -vvv" + entry_points: + - pling = pling.run_pling:main + run_exports: + - {{ pin_subpackage("pling", max_pin="x") }} + +requirements: + host: + - python >=3.9,<3.12 + - pip + run: + - python >=3.9,<3.12 + - sourmash >=4.4.0,<5.0.0 + - pandas >=1.5.3 + - numpy >=1.26.0 + - intervaltree >=3.0.2 + - mummer >=3.23 + - glpk >=5.0 + - snakemake >=7.25.4,<8.0.0 + - plasnet >=0.6.0 + - dingII +test: + imports: + - pling + + commands: + - pling --help + +about: + home: https://github.com/iqbal-lab-org/pling + license: LICENSE + license_family: MIT + summary: 'Pling computes the rearrangement distance between plasmids and clusters on their basis ' + From 28a408b31556c98f8a968f06fb51bd102c71f547 Mon Sep 17 00:00:00 2001 From: Peter Cock Date: Sat, 24 Aug 2024 05:07:39 +0100 Subject: [PATCH 1456/1514] Build hmmer for osx-arm64 (#50281) --- recipes/hmmer/build.sh | 4 +- recipes/hmmer/config.guess | 1700 ++++++++++++++++++++++++++++++++ recipes/hmmer/config.sub | 1885 ++++++++++++++++++++++++++++++++++++ recipes/hmmer/meta.yaml | 3 +- 4 files changed, 3590 insertions(+), 2 deletions(-) create mode 100644 recipes/hmmer/config.guess create mode 100644 recipes/hmmer/config.sub diff --git a/recipes/hmmer/build.sh b/recipes/hmmer/build.sh index 9bedf04f9819a..00abe00649fa1 100755 --- a/recipes/hmmer/build.sh +++ b/recipes/hmmer/build.sh @@ -2,6 +2,9 @@ set -e -u -x +# use newer config.guess and config.sub that support osx-arm64 +cp ${RECIPE_DIR}/config.* . + ./configure --prefix=$PREFIX make -j4 make install @@ -11,4 +14,3 @@ make install mkdir -p $PREFIX/share rm -rf ${SRC_DIR}/easel/miniapps cp -r ${SRC_DIR}/easel $PREFIX/share/ - diff --git a/recipes/hmmer/config.guess b/recipes/hmmer/config.guess new file mode 100644 index 0000000000000..1972fda8eb05d --- /dev/null +++ b/recipes/hmmer/config.guess @@ -0,0 +1,1700 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2021 Free Software Foundation, Inc. + +timestamp='2021-01-25' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. +# +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess +# +# Please send patches to . + + +me=$(echo "$0" | sed -e 's,.*/,,') + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2021 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +tmp= +# shellcheck disable=SC2172 +trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 + +set_cc_for_build() { + # prevent multiple calls if $tmp is already set + test "$tmp" && return 0 + : "${TMPDIR=/tmp}" + # shellcheck disable=SC2039 + { tmp=$( (umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null) && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } + dummy=$tmp/dummy + case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" + for driver in cc gcc c89 c99 ; do + if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD="$driver" + break + fi + done + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; + esac +} + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if test -f /.attbin/uname ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=$( (uname -m) 2>/dev/null) || UNAME_MACHINE=unknown +UNAME_RELEASE=$( (uname -r) 2>/dev/null) || UNAME_RELEASE=unknown +UNAME_SYSTEM=$( (uname -s) 2>/dev/null) || UNAME_SYSTEM=unknown +UNAME_VERSION=$( (uname -v) 2>/dev/null) || UNAME_VERSION=unknown + +case "$UNAME_SYSTEM" in +Linux|GNU|GNU/*) + LIBC=unknown + + set_cc_for_build + cat <<-EOF > "$dummy.c" + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #elif defined(__GLIBC__) + LIBC=gnu + #else + #include + /* First heuristic to detect musl libc. */ + #ifdef __DEFINED_va_list + LIBC=musl + #endif + #endif + EOF + eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g')" + + # Second heuristic to detect musl libc. + if [ "$LIBC" = unknown ] && + command -v ldd >/dev/null && + ldd --version 2>&1 | grep -q ^musl; then + LIBC=musl + fi + + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + if [ "$LIBC" = unknown ]; then + LIBC=gnu + fi + ;; +esac + +# Note: order is significant - the case branches are not exclusive. + +case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + UNAME_MACHINE_ARCH=$( (uname -p 2>/dev/null || \ + /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + echo unknown)) + case "$UNAME_MACHINE_ARCH" in + aarch64eb) machine=aarch64_be-unknown ;; + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + earmv*) + arch=$(echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,') + endian=$(echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p') + machine="${arch}${endian}"-unknown + ;; + *) machine="$UNAME_MACHINE_ARCH"-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently (or will in the future) and ABI. + case "$UNAME_MACHINE_ARCH" in + earm*) + os=netbsdelf + ;; + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # Determine ABI tags. + case "$UNAME_MACHINE_ARCH" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=$(echo "$UNAME_MACHINE_ARCH" | sed -e "$expr") + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "$UNAME_VERSION" in + Debian*) + release='-gnu' + ;; + *) + release=$(echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2) + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "$machine-${os}${release}${abi-}" + exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=$(arch | sed 's/Bitrig.//') + echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=$(arch | sed 's/OpenBSD.//') + echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" + exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=$(arch | sed 's/^.*BSD\.//') + echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" + exit ;; + *:MidnightBSD:*:*) + echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" + exit ;; + *:ekkoBSD:*:*) + echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" + exit ;; + *:SolidBSD:*:*) + echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" + exit ;; + *:OS108:*:*) + echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE" + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd"$UNAME_RELEASE" + exit ;; + *:MirBSD:*:*) + echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" + exit ;; + *:Sortix:*:*) + echo "$UNAME_MACHINE"-unknown-sortix + exit ;; + *:Twizzler:*:*) + echo "$UNAME_MACHINE"-unknown-twizzler + exit ;; + *:Redox:*:*) + echo "$UNAME_MACHINE"-unknown-redox + exit ;; + mips:OSF1:*.*) + echo mips-dec-osf1 + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $3}') + ;; + *5.*) + UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $4}') + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=$(/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1) + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE=alpha ;; + "EV4.5 (21064)") + UNAME_MACHINE=alpha ;; + "LCA4 (21066/21068)") + UNAME_MACHINE=alpha ;; + "EV5 (21164)") + UNAME_MACHINE=alphaev5 ;; + "EV5.6 (21164A)") + UNAME_MACHINE=alphaev56 ;; + "EV5.6 (21164PC)") + UNAME_MACHINE=alphapca56 ;; + "EV5.7 (21164PC)") + UNAME_MACHINE=alphapca57 ;; + "EV6 (21264)") + UNAME_MACHINE=alphaev6 ;; + "EV6.7 (21264A)") + UNAME_MACHINE=alphaev67 ;; + "EV6.8CB (21264C)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8AL (21264B)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8CX (21264D)") + UNAME_MACHINE=alphaev68 ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE=alphaev69 ;; + "EV7 (21364)") + UNAME_MACHINE=alphaev7 ;; + "EV7.9 (21364A)") + UNAME_MACHINE=alphaev79 ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo "$UNAME_MACHINE"-dec-osf"$(echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz)" + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo "$UNAME_MACHINE"-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo "$UNAME_MACHINE"-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix"$UNAME_RELEASE" + exit ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "$( (/bin/universe) 2>/dev/null)" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case $(/usr/bin/uname -p) in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo "$UNAME_MACHINE"-ibm-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')" + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')" + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux"$UNAME_RELEASE" + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + set_cc_for_build + SUN_ARCH=i386 + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH=x86_64 + fi + fi + echo "$SUN_ARCH"-pc-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" + exit ;; + sun4*:SunOS:*:*) + case "$(/usr/bin/arch -k)" in + Series*|S4*) + UNAME_RELEASE=$(uname -v) + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/')" + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos"$UNAME_RELEASE" + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=$( (sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null) + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 + case "$(/bin/arch)" in + sun3) + echo m68k-sun-sunos"$UNAME_RELEASE" + ;; + sun4) + echo sparc-sun-sunos"$UNAME_RELEASE" + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos"$UNAME_RELEASE" + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint"$UNAME_RELEASE" + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint"$UNAME_RELEASE" + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint"$UNAME_RELEASE" + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten"$UNAME_RELEASE" + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten"$UNAME_RELEASE" + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix"$UNAME_RELEASE" + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix"$UNAME_RELEASE" + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix"$UNAME_RELEASE" + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=$(echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p') && + SYSTEM_NAME=$("$dummy" "$dummyarg") && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos"$UNAME_RELEASE" + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=$(/usr/bin/uname -p) + if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 + then + if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ + test "$TARGET_BINARY_INTERFACE"x = x + then + echo m88k-dg-dgux"$UNAME_RELEASE" + else + echo m88k-dg-dguxbcs"$UNAME_RELEASE" + fi + else + echo i586-dg-dgux"$UNAME_RELEASE" + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/g')" + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'$(uname -s)'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if test -x /usr/bin/oslevel ; then + IBM_REV=$(/usr/bin/oslevel) + else + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + fi + echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy") + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[4567]) + IBM_CPU_ID=$(/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }') + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if test -x /usr/bin/lslpp ; then + IBM_REV=$(/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/) + else + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + fi + echo "$IBM_ARCH"-ibm-aix"$IBM_REV" + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//') + case "$UNAME_MACHINE" in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if test -x /usr/bin/getconf; then + sc_cpu_version=$(/usr/bin/getconf SC_CPU_VERSION 2>/dev/null) + sc_kernel_bits=$(/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null) + case "$sc_cpu_version" in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "$sc_kernel_bits" in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 + esac ;; + esac + fi + if test "$HP_ARCH" = ""; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=$("$dummy") + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if test "$HP_ARCH" = hppa2.0w + then + set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH=hppa2.0w + else + HP_ARCH=hppa64 + fi + fi + echo "$HP_ARCH"-hp-hpux"$HPUX_REV" + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//') + echo ia64-hp-hpux"$HPUX_REV" + exit ;; + 3050*:HI-UX:*:*) + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy") && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if test -x /usr/sbin/sysversion ; then + echo "$UNAME_MACHINE"-unknown-osf1mk + else + echo "$UNAME_MACHINE"-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=$(uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz) + FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///') + FUJITSU_REL=$(echo "$UNAME_RELEASE" | sed -e 's/ /_/') + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///') + FUJITSU_REL=$(echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/') + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi"$UNAME_RELEASE" + exit ;; + *:BSD/OS:*:*) + echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" + exit ;; + arm:FreeBSD:*:*) + UNAME_PROCESSOR=$(uname -p) + set_cc_for_build + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabi + else + echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabihf + fi + exit ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=$(/usr/bin/uname -p) + case "$UNAME_PROCESSOR" in + amd64) + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; + esac + echo "$UNAME_PROCESSOR"-unknown-freebsd"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')" + exit ;; + i*:CYGWIN*:*) + echo "$UNAME_MACHINE"-pc-cygwin + exit ;; + *:MINGW64*:*) + echo "$UNAME_MACHINE"-pc-mingw64 + exit ;; + *:MINGW*:*) + echo "$UNAME_MACHINE"-pc-mingw32 + exit ;; + *:MSYS*:*) + echo "$UNAME_MACHINE"-pc-msys + exit ;; + i*:PW*:*) + echo "$UNAME_MACHINE"-pc-pw32 + exit ;; + *:Interix*:*) + case "$UNAME_MACHINE" in + x86) + echo i586-pc-interix"$UNAME_RELEASE" + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix"$UNAME_RELEASE" + exit ;; + IA64) + echo ia64-unknown-interix"$UNAME_RELEASE" + exit ;; + esac ;; + i*:UWIN*:*) + echo "$UNAME_MACHINE"-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-pc-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" + exit ;; + *:GNU:*:*) + # the GNU system + echo "$(echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,')-unknown-$LIBC$(echo "$UNAME_RELEASE"|sed -e 's,/.*$,,')" + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo "$UNAME_MACHINE-unknown-$(echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]")$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')-$LIBC" + exit ;; + *:Minix:*:*) + echo "$UNAME_MACHINE"-unknown-minix + exit ;; + aarch64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + alpha:Linux:*:*) + case $(sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null) in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + arm*:Linux:*:*) + set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi + else + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + cris:Linux:*:*) + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" + exit ;; + crisv32:Linux:*:*) + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" + exit ;; + e2k:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + frv:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + hexagon:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + i*86:Linux:*:*) + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" + exit ;; + ia64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + k1om:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + m32r*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + m68*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + set_cc_for_build + IS_GLIBC=0 + test x"${LIBC}" = xgnu && IS_GLIBC=1 + sed 's/^ //' << EOF > "$dummy.c" + #undef CPU + #undef mips + #undef mipsel + #undef mips64 + #undef mips64el + #if ${IS_GLIBC} && defined(_ABI64) + LIBCABI=gnuabi64 + #else + #if ${IS_GLIBC} && defined(_ABIN32) + LIBCABI=gnuabin32 + #else + LIBCABI=${LIBC} + #endif + #endif + + #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa64r6 + #else + #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa32r6 + #else + #if defined(__mips64) + CPU=mips64 + #else + CPU=mips + #endif + #endif + #endif + + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + MIPS_ENDIAN=el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + MIPS_ENDIAN= + #else + MIPS_ENDIAN= + #endif + #endif +EOF + eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI')" + test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } + ;; + mips64el:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + openrisc*:Linux:*:*) + echo or1k-unknown-linux-"$LIBC" + exit ;; + or32:Linux:*:* | or1k*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-"$LIBC" + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-"$LIBC" + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case $(grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2) in + PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; + PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; + *) echo hppa-unknown-linux-"$LIBC" ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-"$LIBC" + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-"$LIBC" + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-"$LIBC" + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-"$LIBC" + exit ;; + riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" + exit ;; + sh64*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + sh*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + tile*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + vax:Linux:*:*) + echo "$UNAME_MACHINE"-dec-linux-"$LIBC" + exit ;; + x86_64:Linux:*:*) + set_cc_for_build + LIBCABI=$LIBC + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_X32 >/dev/null + then + LIBCABI="$LIBC"x32 + fi + fi + echo "$UNAME_MACHINE"-pc-linux-"$LIBCABI" + exit ;; + xtensa*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo "$UNAME_MACHINE"-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo "$UNAME_MACHINE"-unknown-stop + exit ;; + i*86:atheos:*:*) + echo "$UNAME_MACHINE"-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo "$UNAME_MACHINE"-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos"$UNAME_RELEASE" + exit ;; + i*86:*DOS:*:*) + echo "$UNAME_MACHINE"-pc-msdosdjgpp + exit ;; + i*86:*:4.*:*) + UNAME_REL=$(echo "$UNAME_RELEASE" | sed 's/\/MP$//') + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" + else + echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case $(/bin/uname -X | grep "^Machine") in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}" + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=$(sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=$( (/bin/uname -X|grep Release|sed -e 's/.*= //')) + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" + else + echo "$UNAME_MACHINE"-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configure will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos"$UNAME_RELEASE" + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos"$UNAME_RELEASE" + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos"$UNAME_RELEASE" + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos"$UNAME_RELEASE" + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv"$UNAME_RELEASE" + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=$( (uname -p) 2>/dev/null) + echo "$UNAME_MACHINE"-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo "$UNAME_MACHINE"-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux"$UNAME_RELEASE" + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if test -d /usr/nec; then + echo mips-nec-sysv"$UNAME_RELEASE" + else + echo mips-unknown-sysv"$UNAME_RELEASE" + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux"$UNAME_RELEASE" + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux"$UNAME_RELEASE" + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux"$UNAME_RELEASE" + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux"$UNAME_RELEASE" + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux"$UNAME_RELEASE" + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux"$UNAME_RELEASE" + exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux"$UNAME_RELEASE" + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody"$UNAME_RELEASE" + exit ;; + *:Rhapsody:*:*) + echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" + exit ;; + arm64:Darwin:*:*) + echo aarch64-apple-darwin"$UNAME_RELEASE" + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=$(uname -p) + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + if command -v xcode-select > /dev/null 2> /dev/null && \ + ! xcode-select --print-path > /dev/null 2> /dev/null ; then + # Avoid executing cc if there is no toolchain installed as + # cc will be a stub that puts up a graphical alert + # prompting the user to install developer tools. + CC_FOR_BUILD=no_compiler_found + else + set_cc_for_build + fi + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # uname -m returns i386 or x86_64 + UNAME_PROCESSOR=$UNAME_MACHINE + fi + echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=$(uname -p) + if test "$UNAME_PROCESSOR" = x86; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NEO-*:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSR-*:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSV-*:NONSTOP_KERNEL:*:*) + echo nsv-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSX-*:NONSTOP_KERNEL:*:*) + echo nsx-tandem-nsk"$UNAME_RELEASE" + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + # shellcheck disable=SC2154 + if test "$cputype" = 386; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo "$UNAME_MACHINE"-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux"$UNAME_RELEASE" + exit ;; + *:DragonFly:*:*) + echo "$UNAME_MACHINE"-unknown-dragonfly"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')" + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=$( (uname -p) 2>/dev/null) + case "$UNAME_MACHINE" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo "$UNAME_MACHINE"-pc-skyos"$(echo "$UNAME_RELEASE" | sed -e 's/ .*$//')" + exit ;; + i*86:rdos:*:*) + echo "$UNAME_MACHINE"-pc-rdos + exit ;; + *:AROS:*:*) + echo "$UNAME_MACHINE"-unknown-aros + exit ;; + x86_64:VMkernel:*:*) + echo "$UNAME_MACHINE"-unknown-esx + exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; + *:Unleashed:*:*) + echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE" + exit ;; +esac + +# No uname command or uname output not recognized. +set_cc_for_build +cat > "$dummy.c" < +#include +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#include +#if defined(_SIZE_T_) || defined(SIGLOST) +#include +#endif +#endif +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=$( (hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null); + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); +#endif + +#if defined (vax) +#if !defined (ultrix) +#include +#if defined (BSD) +#if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +#else +#if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#endif +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#else +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname un; + uname (&un); + printf ("vax-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname *un; + uname (&un); + printf ("mips-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("mips-dec-ultrix\n"); exit (0); +#endif +#endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=$($dummy) && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. +test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } + +echo "$0: unable to guess system type" >&2 + +case "$UNAME_MACHINE:$UNAME_SYSTEM" in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&2 <&2 </dev/null || echo unknown) +uname -r = $( (uname -r) 2>/dev/null || echo unknown) +uname -s = $( (uname -s) 2>/dev/null || echo unknown) +uname -v = $( (uname -v) 2>/dev/null || echo unknown) + +/usr/bin/uname -p = $( (/usr/bin/uname -p) 2>/dev/null) +/bin/uname -X = $( (/bin/uname -X) 2>/dev/null) + +hostinfo = $( (hostinfo) 2>/dev/null) +/bin/universe = $( (/bin/universe) 2>/dev/null) +/usr/bin/arch -k = $( (/usr/bin/arch -k) 2>/dev/null) +/bin/arch = $( (/bin/arch) 2>/dev/null) +/usr/bin/oslevel = $( (/usr/bin/oslevel) 2>/dev/null) +/usr/convex/getsysinfo = $( (/usr/convex/getsysinfo) 2>/dev/null) + +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" +EOF +fi + +exit 1 + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/recipes/hmmer/config.sub b/recipes/hmmer/config.sub new file mode 100644 index 0000000000000..38f3d037a785f --- /dev/null +++ b/recipes/hmmer/config.sub @@ -0,0 +1,1885 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2021 Free Software Foundation, Inc. + +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2021-10-27' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + +Canonicalize a configuration name. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2021 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo "$1" + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Split fields of configuration type +# shellcheck disable=SC2162 +saved_IFS=$IFS +IFS="-" read field1 field2 field3 field4 <&2 + exit 1 + ;; + *-*-*-*) + basic_machine=$field1-$field2 + basic_os=$field3-$field4 + ;; + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + basic_os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + basic_os=linux-android + ;; + *) + basic_machine=$field1-$field2 + basic_os=$field3 + ;; + esac + ;; + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + basic_os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + basic_os=$field2 + ;; + zephyr*) + basic_machine=$field1-unknown + basic_os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | convergent* | ncr* | news | 32* | 3600* | 3100* \ + | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ + | ultra | tti* | harris | dolphin | highlevel | gould \ + | cbm | ns | masscomp | apple | axis | knuth | cray \ + | microblaze* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + basic_os= + ;; + *) + basic_machine=$field1 + basic_os=$field2 + ;; + esac + ;; + esac + ;; + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + basic_os=bsd + ;; + a29khif) + basic_machine=a29k-amd + basic_os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + basic_os=scout + ;; + alliant) + basic_machine=fx80-alliant + basic_os= + ;; + altos | altos3068) + basic_machine=m68k-altos + basic_os= + ;; + am29k) + basic_machine=a29k-none + basic_os=bsd + ;; + amdahl) + basic_machine=580-amdahl + basic_os=sysv + ;; + amiga) + basic_machine=m68k-unknown + basic_os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + basic_os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + basic_os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + basic_os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + basic_os=bsd + ;; + aros) + basic_machine=i386-pc + basic_os=aros + ;; + aux) + basic_machine=m68k-apple + basic_os=aux + ;; + balance) + basic_machine=ns32k-sequent + basic_os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + basic_os=linux + ;; + cegcc) + basic_machine=arm-unknown + basic_os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + basic_os=bsd + ;; + convex-c2) + basic_machine=c2-convex + basic_os=bsd + ;; + convex-c32) + basic_machine=c32-convex + basic_os=bsd + ;; + convex-c34) + basic_machine=c34-convex + basic_os=bsd + ;; + convex-c38) + basic_machine=c38-convex + basic_os=bsd + ;; + cray) + basic_machine=j90-cray + basic_os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + basic_os= + ;; + da30) + basic_machine=m68k-da30 + basic_os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + basic_os= + ;; + delta88) + basic_machine=m88k-motorola + basic_os=sysv3 + ;; + dicos) + basic_machine=i686-pc + basic_os=dicos + ;; + djgpp) + basic_machine=i586-pc + basic_os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + basic_os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + basic_os=ose + ;; + gmicro) + basic_machine=tron-gmicro + basic_os=sysv + ;; + go32) + basic_machine=i386-pc + basic_os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + basic_os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + basic_os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + basic_os=hms + ;; + harris) + basic_machine=m88k-harris + basic_os=sysv3 + ;; + hp300 | hp300hpux) + basic_machine=m68k-hp + basic_os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp + basic_os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp + basic_os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + basic_os=proelf + ;; + i386mach) + basic_machine=i386-mach + basic_os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi + basic_os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + basic_os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + basic_os=sysv + ;; + merlin) + basic_machine=ns32k-utek + basic_os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + basic_os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + basic_os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + basic_os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + basic_os=coff + ;; + morphos) + basic_machine=powerpc-unknown + basic_os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + basic_os=moxiebox + ;; + msdos) + basic_machine=i386-pc + basic_os=msdos + ;; + msys) + basic_machine=i686-pc + basic_os=msys + ;; + mvs) + basic_machine=i370-ibm + basic_os=mvs + ;; + nacl) + basic_machine=le32-unknown + basic_os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + basic_os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + basic_os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + basic_os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + basic_os=newsos + ;; + news1000) + basic_machine=m68030-sony + basic_os=newsos + ;; + necv70) + basic_machine=v70-nec + basic_os=sysv + ;; + nh3000) + basic_machine=m68k-harris + basic_os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + basic_os=cxux + ;; + nindy960) + basic_machine=i960-intel + basic_os=nindy + ;; + mon960) + basic_machine=i960-intel + basic_os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + basic_os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + basic_os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + basic_os=ose + ;; + os68k) + basic_machine=m68k-none + basic_os=os68k + ;; + paragon) + basic_machine=i860-intel + basic_os=osf + ;; + parisc) + basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp + ;; + pw32) + basic_machine=i586-unknown + basic_os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + basic_os=rdos + ;; + rdos32) + basic_machine=i386-pc + basic_os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + basic_os=coff + ;; + sa29200) + basic_machine=a29k-amd + basic_os=udi + ;; + sei) + basic_machine=mips-sei + basic_os=seiux + ;; + sequent) + basic_machine=i386-sequent + basic_os= + ;; + sps7) + basic_machine=m68k-bull + basic_os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + basic_os= + ;; + stratus) + basic_machine=i860-stratus + basic_os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + basic_os= + ;; + sun2os3) + basic_machine=m68000-sun + basic_os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + basic_os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + basic_os= + ;; + sun3os3) + basic_machine=m68k-sun + basic_os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + basic_os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + basic_os= + ;; + sun4os3) + basic_machine=sparc-sun + basic_os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + basic_os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + basic_os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + basic_os= + ;; + sv1) + basic_machine=sv1-cray + basic_os=unicos + ;; + symmetry) + basic_machine=i386-sequent + basic_os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + basic_os=unicos + ;; + t90) + basic_machine=t90-cray + basic_os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + basic_os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + basic_os=tpf + ;; + udi29k) + basic_machine=a29k-amd + basic_os=udi + ;; + ultra3) + basic_machine=a29k-nyu + basic_os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + basic_os=none + ;; + vaxv) + basic_machine=vax-dec + basic_os=sysv + ;; + vms) + basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta + ;; + vxworks960) + basic_machine=i960-wrs + basic_os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + basic_os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + basic_os=vxworks + ;; + xbox) + basic_machine=i686-pc + basic_os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + basic_os=unicos + ;; + *) + basic_machine=$1 + basic_os= + ;; + esac + ;; +esac + +# Decode 1-component or ad-hoc basic machines +case $basic_machine in + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond + ;; + op50n) + cpu=hppa1.1 + vendor=oki + ;; + op60c) + cpu=hppa1.1 + vendor=oki + ;; + ibm*) + cpu=i370 + vendor=ibm + ;; + orion105) + cpu=clipper + vendor=highlevel + ;; + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple + ;; + pmac | pmac-mpw) + cpu=powerpc + vendor=apple + ;; + + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + cpu=m68000 + vendor=att + ;; + 3b*) + cpu=we32k + vendor=att + ;; + bluegene*) + cpu=powerpc + vendor=ibm + basic_os=cnk + ;; + decsystem10* | dec10*) + cpu=pdp10 + vendor=dec + basic_os=tops10 + ;; + decsystem20* | dec20*) + cpu=pdp10 + vendor=dec + basic_os=tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + cpu=m68k + vendor=motorola + ;; + dpx2*) + cpu=m68k + vendor=bull + basic_os=sysv3 + ;; + encore | umax | mmax) + cpu=ns32k + vendor=encore + ;; + elxsi) + cpu=elxsi + vendor=elxsi + basic_os=${basic_os:-bsd} + ;; + fx2800) + cpu=i860 + vendor=alliant + ;; + genix) + cpu=ns32k + vendor=ns + ;; + h3050r* | hiux*) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + cpu=m68000 + vendor=hp + ;; + hp9k3[2-9][0-9]) + cpu=m68k + vendor=hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + i*86v32) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv32 + ;; + i*86v4*) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv4 + ;; + i*86v) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv + ;; + i*86sol2) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=solaris2 + ;; + j90 | j90-cray) + cpu=j90 + vendor=cray + basic_os=${basic_os:-unicos} + ;; + iris | iris4d) + cpu=mips + vendor=sgi + case $basic_os in + irix*) + ;; + *) + basic_os=irix4 + ;; + esac + ;; + miniframe) + cpu=m68000 + vendor=convergent + ;; + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + basic_os=mint + ;; + news-3600 | risc-news) + cpu=mips + vendor=sony + basic_os=newsos + ;; + next | m*-next) + cpu=m68k + vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) + ;; + ns2*) + basic_os=nextstep2 + ;; + *) + basic_os=nextstep3 + ;; + esac + ;; + np1) + cpu=np1 + vendor=gould + ;; + op50n-* | op60c-*) + cpu=hppa1.1 + vendor=oki + basic_os=proelf + ;; + pa-hitachi) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + pbd) + cpu=sparc + vendor=tti + ;; + pbb) + cpu=m68k + vendor=tti + ;; + pc532) + cpu=ns32k + vendor=pc532 + ;; + pn) + cpu=pn + vendor=gould + ;; + power) + cpu=power + vendor=ibm + ;; + ps2) + cpu=i386 + vendor=ibm + ;; + rm[46]00) + cpu=mips + vendor=siemens + ;; + rtpc | rtpc-*) + cpu=romp + vendor=ibm + ;; + sde) + cpu=mipsisa32 + vendor=sde + basic_os=${basic_os:-elf} + ;; + simso-wrs) + cpu=sparclite + vendor=wrs + basic_os=vxworks + ;; + tower | tower-32) + cpu=m68k + vendor=ncr + ;; + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu + ;; + w65) + cpu=w65 + vendor=wdc + ;; + w89k-*) + cpu=hppa1.1 + vendor=winbond + basic_os=proelf + ;; + none) + cpu=none + vendor=none + ;; + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine + ;; + leon-*|leon[3-9]-*) + cpu=sparc + vendor=`echo "$basic_machine" | sed 's/-.*//'` + ;; + + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read cpu vendor <&2 + exit 1 + ;; + esac + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $vendor in + digital*) + vendor=dec + ;; + commodore*) + vendor=cbm + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if test x$basic_os != x +then + +# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just +# set os. +case $basic_os in + gnu/linux*) + kernel=linux + os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` + ;; + os2-emx) + kernel=os2 + os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` + ;; + nto-qnx*) + kernel=nto + os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` + ;; + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read kernel os <&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ + | linux-musl* | linux-relibc* | linux-uclibc* ) + ;; + uclinux-uclibc* ) + ;; + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + vxworks-simlinux | vxworks-simwindows | vxworks-spe) + ;; + nto-qnx*) + ;; + os2-emx) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + exit 1 + ;; +esac + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +case $vendor in + unknown) + case $cpu-$os in + *-riscix*) + vendor=acorn + ;; + *-sunos*) + vendor=sun + ;; + *-cnk* | *-aix*) + vendor=ibm + ;; + *-beos*) + vendor=be + ;; + *-hpux*) + vendor=hp + ;; + *-mpeix*) + vendor=hp + ;; + *-hiux*) + vendor=hitachi + ;; + *-unos*) + vendor=crds + ;; + *-dgux*) + vendor=dg + ;; + *-luna*) + vendor=omron + ;; + *-genix*) + vendor=ns + ;; + *-clix*) + vendor=intergraph + ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) + vendor=ibm + ;; + s390-* | s390x-*) + vendor=ibm + ;; + *-ptx*) + vendor=sequent + ;; + *-tpf*) + vendor=ibm + ;; + *-vxsim* | *-vxworks* | *-windiss*) + vendor=wrs + ;; + *-aux*) + vendor=apple + ;; + *-hms*) + vendor=hitachi + ;; + *-mpw* | *-macos*) + vendor=apple + ;; + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) + vendor=atari + ;; + *-vos*) + vendor=stratus + ;; + esac + ;; +esac + +echo "$cpu-$vendor-${kernel:+$kernel-}$os" +exit + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/recipes/hmmer/meta.yaml b/recipes/hmmer/meta.yaml index a5b3120a4bd0d..fdd92c051b30e 100644 --- a/recipes/hmmer/meta.yaml +++ b/recipes/hmmer/meta.yaml @@ -7,7 +7,7 @@ source: sha256: ca70d94fd0cf271bd7063423aabb116d42de533117343a9b27a65c17ff06fbf3 build: - number: 1 + number: 2 run_exports: # commands/options have been removed or replaced between minor versions - {{ pin_subpackage('hmmer', max_pin="x.x") }} @@ -47,3 +47,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 From 150c58af59b7400e0b304712bf20387f8196ed34 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 24 Aug 2024 00:09:56 -0400 Subject: [PATCH 1457/1514] Update mvip to 1.1.3 (#50289) --- recipes/mvip/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mvip/meta.yaml b/recipes/mvip/meta.yaml index 48a731822a9fd..0705dd9549b86 100644 --- a/recipes/mvip/meta.yaml +++ b/recipes/mvip/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mvip" %} -{% set version = "1.1.2" %} +{% set version = "1.1.3" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: c76dabb1383556692f7a43efb32365a1e9ef5e4159fe10d994a49a5f4b2408af + sha256: e8d96300ed3371048ecf27c61b269871d0c3c5f52789ba5726c958f565af8800 build: number: 0 From 7b22b08c2d838116f11af03775dd37ee114a3813 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 24 Aug 2024 00:11:07 -0400 Subject: [PATCH 1458/1514] Update perl-graph to 0.9731 (#50291) --- recipes/perl-graph/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/perl-graph/meta.yaml b/recipes/perl-graph/meta.yaml index 9238ef88e30c4..d8205c4edc8a4 100644 --- a/recipes/perl-graph/meta.yaml +++ b/recipes/perl-graph/meta.yaml @@ -1,10 +1,10 @@ package: name: perl-graph - version: "0.9730" + version: "0.9731" source: - url: https://cpan.metacpan.org/authors/id/E/ET/ETJ/Graph-0.9730.tar.gz - sha256: 28f4680ba879e079c93988ab092c8c1287f6efc63fb883da28e6e7fd3b947174 + url: https://cpan.metacpan.org/authors/id/E/ET/ETJ/Graph-0.9731.tar.gz + sha256: 0714ade6e6caf4681ed5cf0e746ae1e2a71b65e822fd7a0ea39591a96a66fe50 build: noarch: generic From 26346b4dc7ffdc6f5c848fa2a90a420bd9a61b51 Mon Sep 17 00:00:00 2001 From: Nils Homer Date: Fri, 23 Aug 2024 21:14:57 -0700 Subject: [PATCH 1459/1514] Update minimap2 to install the man page (#41052) --- recipes/minimap2/build.sh | 3 ++- recipes/minimap2/meta.yaml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/minimap2/build.sh b/recipes/minimap2/build.sh index b6f518c35e81b..7dc49651a2b3b 100644 --- a/recipes/minimap2/build.sh +++ b/recipes/minimap2/build.sh @@ -2,7 +2,7 @@ set -xe -mkdir -p ${PREFIX}/bin ${PREFIX}/lib ${PREFIX}/include +mkdir -p ${PREFIX}/bin ${PREFIX}/lib ${PREFIX}/include $PREFIX/share/man/man1 case $(uname -m) in aarch64) @@ -22,3 +22,4 @@ cp minimap2 misc/paftools.js ${PREFIX}/bin cp sdust ${PREFIX}/bin cp libminimap2.a ${PREFIX}/lib cp *.h ${PREFIX}/include +cp minimap2.1 $PREFIX/share/man/man1 diff --git a/recipes/minimap2/meta.yaml b/recipes/minimap2/meta.yaml index 7c2bc89fb1520..fff2923d41783 100644 --- a/recipes/minimap2/meta.yaml +++ b/recipes/minimap2/meta.yaml @@ -12,7 +12,7 @@ source: - override-makefile.patch build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage(name, max_pin="x") }} From e7e10f7c13946b13f98a95a880e199ebd2fb42b0 Mon Sep 17 00:00:00 2001 From: Chunyu Ma Date: Fri, 23 Aug 2024 23:16:30 -0500 Subject: [PATCH 1460/1514] Update yacht package version to v1.2.3 (#50275) --- recipes/yacht/meta.yaml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/recipes/yacht/meta.yaml b/recipes/yacht/meta.yaml index 660b5f47c822d..c38a49f2cc743 100644 --- a/recipes/yacht/meta.yaml +++ b/recipes/yacht/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.2.2" %} +{% set version = "1.2.3" %} package: name: yacht @@ -6,7 +6,7 @@ package: source: url: https://github.com/KoslickiLab/YACHT/releases/download/v{{ version }}/yacht-{{ version }}.tar.gz - sha256: a5c97eecac7aee24e5850f29537cfe5f0b3647ac2766b7876321d369e8bdf514 + sha256: 93adb23ad4f143d48c9f0ea661fe2283ff42e9c51e073a05460596ecabc65214 build: number: 0 @@ -28,10 +28,14 @@ requirements: - tqdm - biom-format - numpy + - setuptools + - requests run: - python >3.6 - sourmash >=4.8.3,<5 + - rust - scipy + - requests - numpy - pandas - scikit-learn @@ -39,12 +43,15 @@ requirements: - pytest - pytest-cov - loguru + - maturin >=1,<2 - tqdm - biom-format - pytaxonkit - openpyxl + - ruff - sourmash_plugin_branchwater + test: commands: - yacht --help @@ -75,3 +82,4 @@ extra: - ShaopengLiu1 - raquellewei - mohsenht + From 05c0d16d77b01e85dec0326088d3f89dc672aba5 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 24 Aug 2024 05:53:19 -0400 Subject: [PATCH 1461/1514] Update r-mutsigextractor to 1.29 (#50294) --- recipes/r-mutsigextractor/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/r-mutsigextractor/meta.yaml b/recipes/r-mutsigextractor/meta.yaml index 43ca06abbf2c8..f37f235e466e4 100644 --- a/recipes/r-mutsigextractor/meta.yaml +++ b/recipes/r-mutsigextractor/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.28" %} -{% set sha256 = "395d89050444f87babf22e3341d4898e3b0d283462ffb1f161da3b8bdc975aee" %} +{% set version = "1.29" %} +{% set sha256 = "7edea78713d59166c8a03c374288e3f72ddcb9b69b0ce06def7c76f27ce49f45" %} package: name: r-mutsigextractor From 69fc599743106b1902350203fa159a5cb200601a Mon Sep 17 00:00:00 2001 From: "Alicia A. Evans" <108547992+aliciaaevans@users.noreply.github.com> Date: Sat, 24 Aug 2024 07:45:19 -0400 Subject: [PATCH 1462/1514] feat: Prereqs for Bioconductor script (#50209) * feat: report conda-forge packages stuck in migration * use dag to find ancestors of dependencies * format * only show stuck ancestors * format * include .conda packages * ticks around package names --- scripts/bioconductor/missingCranPackages.py | 155 +++++++++++++++++--- 1 file changed, 132 insertions(+), 23 deletions(-) diff --git a/scripts/bioconductor/missingCranPackages.py b/scripts/bioconductor/missingCranPackages.py index e0bd60d6bdde0..28bcd2317a01d 100755 --- a/scripts/bioconductor/missingCranPackages.py +++ b/scripts/bioconductor/missingCranPackages.py @@ -1,55 +1,164 @@ #!/usr/bin/env python import argparse +from itertools import chain import networkx as nx -from datetime import datetime, timedelta import requests -from bioconda_utils import utils, graph +from bioconda_utils import utils def getRepoData(): res = set() - for subdir in ["linux-64", "noarch", "osx-64"]: + for subdir in ["linux-64", "noarch", "osx-64", "linux-aarch64", "osx-arm64"]: for channel in ["conda-forge", "bioconda"]: r = requests.get(f"https://conda.anaconda.org/{channel}/{subdir}/repodata.json") - js = r.json()['packages'] - for k, v in r.json()['packages'].items(): - if k.startswith('r-'): - res.add(v['name']) + for k, v in chain(r.json()["packages"].items(), r.json()["packages.conda"].items()): + if k.startswith("r-"): + res.add(v["name"]) return res -def printMissingCRAN(config_path, recipe_folder): - config = utils.load_config(config_path) - recipes = utils.get_recipes(recipe_folder) +def getDag(js): + dag = nx.DiGraph() + for k, v in js["_feedstock_status"].items(): + dag.add_node(k) + children = v["immediate_children"] + dag.add_edges_from((k, dep) for dep in set(children)) + return dag + + +def getCondaForgeMigrationStatus(migration_id): + r = requests.get(f"https://raw.githubusercontent.com/regro/cf-graph-countyfair/master/status/migration_json/{migration_id}.json") + js = r.json() + depDag = getDag(js) + res = { + "in-pr": dict(), + "bot-error": dict(), + "not-solvable": dict(), + "awaiting-parents": dict(), + "dag": depDag, + } + for recipe in js["in-pr"]: + res["in-pr"][recipe] = f"`{recipe}`: In PR {js['_feedstock_status'][recipe]['pr_url']}" + for recipe in js["bot-error"]: + status = js["_feedstock_status"][recipe]["pre_pr_migrator_status"] + segment = status.split("\n") + res["bot-error"][recipe] = f"`{recipe}`: {segment[0] + ' ' + segment[1]}" + for recipe in js["not-solvable"]: + status = js["_feedstock_status"][recipe]["pre_pr_migrator_status"] + segment1 = status.split("\n")[0] + segment2 = status.split(":")[3].split("\n")[0] + res["not-solvable"][recipe] = f"`{recipe}`: {segment1 + ' ' + segment2}" + for recipe in js["awaiting-parents"]: + res["awaiting-parents"][recipe] = f"`{recipe}`: Awaiting parents" + return res - repo = getRepoData() +def printMissingCRAN(recipe_folder, migration_id, format): # Construct a set of all dependencies (ignoring versions) + recipes = utils.get_recipes(recipe_folder) dependencies = set() for r in recipes: if "bioconductor" not in r: continue d = utils.load_meta_fast(r)[0] # a dictionary with keys requirements, build, etc. - if d['requirements']['run'] is None: + if d["requirements"]["run"] is None: continue - for dep in d['requirements']['run']: - if dep.startswith('r-'): - dependencies.add(dep.split(' ')[0]) + for dep in d["requirements"]["run"]: + if dep.startswith("r-"): + dependencies.add(dep.split(" ")[0]) + + CHECKBOX = "- [ ]" + # Find packages waiting for a migration + if migration_id: + cf = getCondaForgeMigrationStatus(migration_id) + dag = cf["dag"] + # Update dependencies based on DAG from conda-forge migration data + awaiting_parents = set.intersection(dependencies, set(cf["awaiting-parents"].keys())) + for recipe in awaiting_parents: + dependencies = set.union(dependencies, nx.algorithms.ancestors(dag, recipe)) + # Now that we expanded dependencies, get the new list of awaiting parents + awaiting_parents = set.intersection(dependencies, set(cf["awaiting-parents"].keys())) + in_pr = set.intersection(dependencies, set(cf["in-pr"].keys())) + bot_error = set.intersection(dependencies, set(cf["bot-error"].keys())) + not_solvable = set.intersection(dependencies, set(cf["not-solvable"].keys())) + if format == "markdown": + print( + "## Awaiting migration of {} packages ##".format( + len(in_pr) + len(bot_error) + len(not_solvable) + len(awaiting_parents) + ) + ) + print("### In PR ({} packages) ###".format(len(in_pr))) + for recipe in in_pr: + print(CHECKBOX, cf["in-pr"][recipe]) + print("### Bot Error ({} packages) ###".format(len(bot_error))) + for recipe in bot_error: + print(CHECKBOX, cf["bot-error"][recipe]) + print("### Not Solvable ({} packages) ###".format(len(not_solvable))) + for recipe in not_solvable: + print(CHECKBOX, cf["not-solvable"][recipe]) + print("### Awaiting Parents ({} packages) ###".format(len(awaiting_parents))) + for recipe in awaiting_parents: + print( + CHECKBOX, + cf["awaiting-parents"][recipe], + "(", + ", ".join([r for r in nx.algorithms.ancestors(dag, recipe) if r in set.union(in_pr, bot_error, not_solvable, awaiting_parents)]), + ")", + ) + else: + print("In PR:") + for recipe in in_pr: + print(recipe) + print("Bot Error:") + for recipe in bot_error: + print(recipe) + print("Not Solvable:") + for recipe in not_solvable: + print(recipe) + print("Awaiting Parents:") + for recipe in awaiting_parents: + print(recipe) + + # Find missing packages + repo = getRepoData() missing = dependencies - repo - print("Missing {} packages!".format(len(missing))) - for m in missing: - print(m) + if format == "markdown": + print("## Missing {} packages ##".format(len(missing))) + for recipe in missing: + print(CHECKBOX, recipe) + else: + print("Missing:") + for recipe in missing: + print(recipe) def main(): - parser = argparse.ArgumentParser(description="""Print a list of missing CRAN dependencies for Bioconductor packages.""") - parser.add_argument("config_path", default="config.yml", help="Location of config.yml (default: %(default)s", nargs='?') - parser.add_argument("recipe_folder", default="recipes", help="Location of the recipes folder (default: %(default)s)", nargs='?') + parser = argparse.ArgumentParser( + description="""Print a list of missing CRAN dependencies for Bioconductor packages.""" + ) + parser.add_argument( + "recipe_folder", + default="recipes", + help="Location of the recipes folder (default: %(default)s)", + nargs="?", + ) + parser.add_argument( + "--migration_id", + help="See conda-forge status page. If populated, will report packages held up in a conda-forge migration (default: None)", + nargs="?", + ) + parser.add_argument( + "--format", + dest="format", + default="plain", + help="Format of results: ['plain', 'markdown'] (default: %(default)s)", + nargs="?", + ) args = parser.parse_args() - printMissingCRAN(args.config_path, args.recipe_folder) + printMissingCRAN(args.recipe_folder, args.migration_id, args.format) -if __name__ == '__main__': +if __name__ == "__main__": main() From e6147b0ef6e82cfb20d9fbcfb2a7b41905714dcd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 24 Aug 2024 10:02:46 -0400 Subject: [PATCH 1463/1514] Update orthanq to 1.7.8 (#50296) --- recipes/orthanq/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/orthanq/meta.yaml b/recipes/orthanq/meta.yaml index 5547095f2a958..4b7782c61727f 100644 --- a/recipes/orthanq/meta.yaml +++ b/recipes/orthanq/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.7.7" %} +{% set version = "1.7.8" %} package: name: orthanq @@ -12,7 +12,7 @@ build: source: url: https://github.com/orthanq/orthanq/archive/v{{ version }}.tar.gz - sha256: 1adbdb92ce2b47974603eacfec4907121ca701cf43e260780b3e018ba3767cfb + sha256: bc4036a3d058263c8a49319573d1ef926e807a1d6b4bf845d09d686556c0d893 requirements: build: From 6af0fb08e2d6fa162e0b34c65f9171fc327ed3b3 Mon Sep 17 00:00:00 2001 From: niklasmueboe <42138117+niklasmueboe@users.noreply.github.com> Date: Sat, 24 Aug 2024 14:04:46 +0000 Subject: [PATCH 1464/1514] Add spatialleiden recipe (#50295) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add spatialleiden recipe * add doc_url * pin_subpackage * add homepage --------- Co-authored-by: Müller-Bötticher --- recipes/spatialleiden/meta.yaml | 53 +++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 recipes/spatialleiden/meta.yaml diff --git a/recipes/spatialleiden/meta.yaml b/recipes/spatialleiden/meta.yaml new file mode 100644 index 0000000000000..b269d97634ff7 --- /dev/null +++ b/recipes/spatialleiden/meta.yaml @@ -0,0 +1,53 @@ +{% set name = "spatialleiden" %} +{% set version = "0.1.1" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/spatialleiden-{{ version }}.tar.gz + sha256: 9f2c9781a347423ba45d14a3e21eaeec1b9ca24bc26edf207fafa41fab71139b + +build: + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} + +requirements: + host: + - python >=3.10 + - setuptools >=61.0.0 + - setuptools-scm >=6.2 + - pip + run: + - python >=3.10 + - anndata + - igraph + - leidenalg >=0.10.2,<0.11.dev0 + - numpy >=1.21 + - scanpy + - scipy >=1.9 + +test: + imports: + - spatialleiden + commands: + - pip check + requires: + - pip + +about: + home: https://github.com/HiDiHlabs/SpatialLeiden + summary: Implementation of multiplex Leiden for analysis of spatial omics data. + license: MIT + license_family: MIT + license_file: LICENSE + doc_url: https://spatialleiden.readthedocs.io/ + +extra: + recipe-maintainers: + - niklasmueboe + - shashwatsahay From bd349d9380fdbee25060b1b87fef5f797d81819b Mon Sep 17 00:00:00 2001 From: Jose Figueroa Date: Sat, 24 Aug 2024 10:05:58 -0400 Subject: [PATCH 1465/1514] Update metacerberus (#50292) --- recipes/metacerberus/meta.yaml | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/recipes/metacerberus/meta.yaml b/recipes/metacerberus/meta.yaml index 8ecc533811481..10e9b5464d1ae 100644 --- a/recipes/metacerberus/meta.yaml +++ b/recipes/metacerberus/meta.yaml @@ -1,13 +1,13 @@ {% set name = "MetaCerberus" %} -{% set version = "1.3.1" %} +{% set version = "1.4.0" %} package: name: "{{ name|lower }}" version: "{{ version }}" source: - url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 725be35a0e9b2a3867791e1cb8284ec95a09d3479516e9b265e3751659ce7935 + url: "https://github.com/raw-lab/MetaCerberus/archive/refs/tags/v{{version}}.tar.gz" + sha256: 0651000d6b9a3ed4fb8301ccc2508befdd32e39be6bbeb3bb29bdc0142816be3 build: number: 0 @@ -24,7 +24,6 @@ requirements: run: - python >=3.8 - setuptools <70.0.0 - - grpcio =1.43 - pandas - fastqc - flash2 @@ -36,10 +35,6 @@ requirements: - phanotate - trnascan-se - pyhmmer - - ray-default <=2.6.3 - - ray-core <=2.6.3 - - ray-tune <=2.6.3 - - ray-dashboard <=2.6.3 - plotly - scikit-learn - dominate @@ -47,6 +42,7 @@ requirements: - configargparse - metaomestats - psutil + - hydrampp test: From e884bec7839ebd01dfb482d109f78cc23fe2025f Mon Sep 17 00:00:00 2001 From: Jose Figueroa Date: Sat, 24 Aug 2024 11:47:54 -0400 Subject: [PATCH 1466/1514] Update metacerberus-lite (#50298) --- recipes/metacerberus-lite/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipes/metacerberus-lite/meta.yaml b/recipes/metacerberus-lite/meta.yaml index 3888274b58bec..1ac5cf12771ec 100644 --- a/recipes/metacerberus-lite/meta.yaml +++ b/recipes/metacerberus-lite/meta.yaml @@ -1,5 +1,5 @@ {% set name = "MetaCerberus-lite" %} -{% set version = "1.3.2" %} +{% set version = "1.4.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://github.com/raw-lab/MetaCerberus/archive/refs/tags/v{{version}}.tar.gz" - sha256: 678929f58b38fafc635dfb35e248b5c76b4cd682b9e2d3499fe953ee3b974d68 + sha256: 0651000d6b9a3ed4fb8301ccc2508befdd32e39be6bbeb3bb29bdc0142816be3 build: number: 0 @@ -36,6 +36,7 @@ requirements: - configargparse - metaomestats - psutil + - hydrampp test: From c34f4af33ab2c1947df2780304262cf65abd81a7 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sat, 24 Aug 2024 23:20:44 -0400 Subject: [PATCH 1467/1514] Update adapterremoval to 2.3.4 (#50299) --- recipes/adapterremoval/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/adapterremoval/meta.yaml b/recipes/adapterremoval/meta.yaml index e916bf3a3bd45..7f369ac53924a 100644 --- a/recipes/adapterremoval/meta.yaml +++ b/recipes/adapterremoval/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "2.3.3" %} -{% set sha256 = "a1bdc054319ede085fc8a4e9867c23ffed7df5e97b99d52221b7c587d19418fc" %} +{% set version = "2.3.4" %} +{% set sha256 = "a4433a45b73ead907aede22ed0c7ea6fbc080f6de6ed7bc00f52173dfb309aa1" %} package: name: adapterremoval @@ -10,7 +10,7 @@ source: sha256: {{ sha256 }} build: - number: 3 + number: 0 run_exports: - {{ pin_subpackage("adapterremoval", max_pin="x") }} From 92a2ef6b942c75809747c52317770266a08668a2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 25 Aug 2024 12:47:30 -0400 Subject: [PATCH 1468/1514] Update camlhmp to 1.0.1 (#50307) --- recipes/camlhmp/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/camlhmp/meta.yaml b/recipes/camlhmp/meta.yaml index 307261630f3d6..895ec2af53c5b 100644 --- a/recipes/camlhmp/meta.yaml +++ b/recipes/camlhmp/meta.yaml @@ -1,5 +1,5 @@ {% set name = "camlhmp" %} -{% set version = "1.0.0" %} +{% set version = "1.0.1" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/camlhmp/camlhmp-{{ version }}.tar.gz - sha256: 91bb81e2c7e548a3e6acdd01f2276e54e4a82df491a61864aff647bd8b327c3d + sha256: 6d4b4375af6306a13c026014fa54465459a9d5115d0d7d15497a87f11bf1868d build: noarch: python From 46817a1e97a45358299cea2c1fa4b38e9bd5b3df Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 25 Aug 2024 13:50:56 -0400 Subject: [PATCH 1469/1514] Update camlhmp to 1.1.0 (#50308) --- recipes/camlhmp/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/camlhmp/meta.yaml b/recipes/camlhmp/meta.yaml index 895ec2af53c5b..ff176d7dbb452 100644 --- a/recipes/camlhmp/meta.yaml +++ b/recipes/camlhmp/meta.yaml @@ -1,5 +1,5 @@ {% set name = "camlhmp" %} -{% set version = "1.0.1" %} +{% set version = "1.1.0" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/camlhmp/camlhmp-{{ version }}.tar.gz - sha256: 6d4b4375af6306a13c026014fa54465459a9d5115d0d7d15497a87f11bf1868d + sha256: 0f20b94fc0bd469299bd9bec6fe384013bd7043cb4dd97e9df827895f2d06fb2 build: noarch: python From c6e6dc2047635739238c7f505782fb7ccf63ebfd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 25 Aug 2024 13:56:09 -0400 Subject: [PATCH 1470/1514] Update jvarkit to 2024.08.25 (#50306) --- recipes/jvarkit/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/jvarkit/meta.yaml b/recipes/jvarkit/meta.yaml index b6f52cdbf9b3d..be7fae1b83d12 100644 --- a/recipes/jvarkit/meta.yaml +++ b/recipes/jvarkit/meta.yaml @@ -1,6 +1,6 @@ {% set name = "jvarkit" %} -{% set version = "2024.08.01" %} -{% set sha256 = "5c35258898ef0c65e118e01db663489565989792d949e6a5d93965c9680250cd" %} +{% set version = "2024.08.25" %} +{% set sha256 = "1836eae5f27216a3df84d8dbb9282575955149452883d5f86ba1aebb57b59cbf" %} package: name: {{ name|lower }} From bb7364a16366755998283de2e3d1328de824621e Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 25 Aug 2024 15:05:51 -0400 Subject: [PATCH 1471/1514] Update quantms-utils to 0.0.10 (#50304) --- recipes/quantms-utils/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/quantms-utils/meta.yaml b/recipes/quantms-utils/meta.yaml index cccce41a9db28..a0db34e2b81b2 100644 --- a/recipes/quantms-utils/meta.yaml +++ b/recipes/quantms-utils/meta.yaml @@ -1,5 +1,5 @@ {% set name = "quantms-utils" %} -{% set version = "0.0.9" %} +{% set version = "0.0.10" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/quantms_utils-{{ version }}.tar.gz - sha256: 72f86706f6dc10e7e332317b2b78e22acb33b63cff37d8c897871934ac60c2af + sha256: 95e6a7e29f3053fe37071b180d4ac6f3a3da9a3f3cb1e9bcbd682fd65b8fd217 build: entry_points: From 98eec65f1cb12cef96ecb6815c2ebd7d0943fccf Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 25 Aug 2024 15:37:04 -0400 Subject: [PATCH 1472/1514] Update pasty to 2.2.0 (#50312) * Update pasty to 2.2.0 * Update meta.yaml --------- Co-authored-by: Robert A. Petit III --- recipes/pasty/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/pasty/meta.yaml b/recipes/pasty/meta.yaml index 6bf522de760df..ba6de3e3380fe 100644 --- a/recipes/pasty/meta.yaml +++ b/recipes/pasty/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pasty" %} -{% set version = "2.1.0" %} +{% set version = "2.2.0" %} package: name: {{ name | lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/rpetit3/pasty/archive/v{{ version }}.tar.gz - sha256: 408bfe89cd33be1f532d4a280ede1d4f1e17e1ffa8283d8746fc36c5d2d27564 + sha256: b6728abde78c0d91d89ac9dc92731285eb10b15a297af1ecf971915c3037b9f3 build: number: 0 @@ -17,7 +17,7 @@ build: requirements: run: - - camlhmp >=0.3.1 + - camlhmp >=1.1.0 test: commands: From 76077066697e2981399ad99ac21b642f41e41c3a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 25 Aug 2024 15:52:48 -0400 Subject: [PATCH 1473/1514] Update sccmec to 1.2.0 (#50311) * Update sccmec to 1.2.0 * update depends * Update build.sh * Update meta.yaml * Update build.sh * Update build.sh --------- Co-authored-by: Robert A. Petit III --- recipes/sccmec/build.sh | 15 ++++++++++++--- recipes/sccmec/meta.yaml | 10 +++++++--- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/recipes/sccmec/build.sh b/recipes/sccmec/build.sh index aa318ca945110..5ca6a640acbd0 100644 --- a/recipes/sccmec/build.sh +++ b/recipes/sccmec/build.sh @@ -3,9 +3,18 @@ mkdir -p $PREFIX/bin ${PREFIX}/share/sccmec # Copy wrapper -chmod 755 bin/sccmec-bioconda +chmod 755 bin/sccmec-targets-bioconda +cp -f bin/sccmec-targets-bioconda $PREFIX/bin/sccmec-targets + +chmod 755 bin/sccmec-regions-bioconda +cp -f bin/sccmec-regions-bioconda $PREFIX/bin/sccmec-regions + +chmod 755 bin/sccmec bin/sccmec-bioconda +cp -f bin/sccmec $PREFIX/bin/sccmec-main cp -f bin/sccmec-bioconda $PREFIX/bin/sccmec # Copy schema (~100kb) -cp -f data/sccmec.yaml ${PREFIX}/share/sccmec -cp -f data/sccmec.fasta ${PREFIX}/share/sccmec +cp -f data/sccmec-targets.yaml ${PREFIX}/share/sccmec +cp -f data/sccmec-targets.fasta ${PREFIX}/share/sccmec +cp -f data/sccmec-regions.yaml ${PREFIX}/share/sccmec +cp -f data/sccmec-regions.fasta ${PREFIX}/share/sccmec diff --git a/recipes/sccmec/meta.yaml b/recipes/sccmec/meta.yaml index a71583506a783..02c1875f8ecb1 100644 --- a/recipes/sccmec/meta.yaml +++ b/recipes/sccmec/meta.yaml @@ -1,6 +1,6 @@ {% set name="sccmec" %} -{% set version = "1.1.0" %} -{% set sha256 = "176e0103a6e683583ed5caf1980781ec09ca315a0aa2cfe8d2a3d72321ce7488" %} +{% set version = "1.2.0" %} +{% set sha256 = "b8ff1fb5f6d5d4c2bbfd3a5b95711ecd152638417558ecc98dc5e22724f06d8f" %} package: name: {{ name }} @@ -18,12 +18,16 @@ build: requirements: run: - - camlhmp >=1.0.0 + - camlhmp >=1.1.0 test: commands: - sccmec --version - sccmec --help + - sccmec-targets --version + - sccmec-targets --help + - sccmec-regions --version + - sccmec-regions --help about: home: https://github.com/rpetit3/sccmec From c380359075020b62aba905506959aaf439aedcd3 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 25 Aug 2024 21:26:02 -0400 Subject: [PATCH 1474/1514] Update oakvar to 2.11.8 (#50301) --- recipes/oakvar/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/oakvar/meta.yaml b/recipes/oakvar/meta.yaml index 4121090865787..55b4d4c0bad61 100644 --- a/recipes/oakvar/meta.yaml +++ b/recipes/oakvar/meta.yaml @@ -1,6 +1,6 @@ {% set name = "OakVar" %} -{% set version = "2.11.5" %} -{% set sha256 = "9967ff6751ea8141ccf5c879a128c47ab78b30035091209680b5d67fa8b88e6c" %} +{% set version = "2.11.8" %} +{% set sha256 = "c863dd431b4fd2f754e226d1519914ff698a88ea1dd766cb267902219f5947c8" %} package: name: {{ name|lower }} From d19c9d9f5ca5b456acbfb18272b75e5b50ea1e84 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 25 Aug 2024 21:26:31 -0400 Subject: [PATCH 1475/1514] Update itolapi to 4.1.5 (#50302) --- recipes/itolapi/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/itolapi/meta.yaml b/recipes/itolapi/meta.yaml index 0e664d28481a5..806c0a9213404 100644 --- a/recipes/itolapi/meta.yaml +++ b/recipes/itolapi/meta.yaml @@ -1,5 +1,5 @@ {% set name = "itolapi" %} -{% set version = "4.1.4" %} +{% set version = "4.1.5" %} package: name: '{{ name|lower }}' @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 68e87ba51d209da556b0e373b3b0456b644a1a732c193fedbd7785ff37b6a2cb + sha256: 8ce2f6c0560b4b3898913a61a821667ea62aca330aad008e4c71fe98ec26c874 build: noarch: python From 2256920d99b23e8e27adf6cbb80c5199043ef2c9 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 25 Aug 2024 21:26:57 -0400 Subject: [PATCH 1476/1514] Update deeplc to 3.0.8 (#50303) --- recipes/deeplc/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/deeplc/meta.yaml b/recipes/deeplc/meta.yaml index ba8400cb54ab6..a06a3a30d25e1 100644 --- a/recipes/deeplc/meta.yaml +++ b/recipes/deeplc/meta.yaml @@ -1,6 +1,6 @@ {% set name = "DeepLC" %} -{% set version = "3.0.7" %} -{% set sha256 = "40bf8b3c2ef53b103ea5c004d5abc8643eacda83efdcdc7589276cdff9732261" %} +{% set version = "3.0.8" %} +{% set sha256 = "49f579fd96d937f7c62b99044b8bf12085ccc9b6d123b93ab2c4417189106ca0" %} package: name: {{ name|lower }} From 895e403a04caf48730d6578b1fca283465f2309b Mon Sep 17 00:00:00 2001 From: Pierre Lindenbaum <33838+lindenb@users.noreply.github.com> Date: Mon, 26 Aug 2024 03:28:01 +0200 Subject: [PATCH 1477/1514] Update : adding samtools and bcftools to jvarkit/meta.yaml (#50305) --- recipes/jvarkit/meta.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/recipes/jvarkit/meta.yaml b/recipes/jvarkit/meta.yaml index be7fae1b83d12..2aab4804abf41 100644 --- a/recipes/jvarkit/meta.yaml +++ b/recipes/jvarkit/meta.yaml @@ -26,6 +26,8 @@ requirements: - gawk run: - openjdk >=11 + - samtools >=1.20 + - bcftools >=1.20 test: commands: From ed93777d43a224e8a691c2272c04ef8d8f4e213c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Sun, 25 Aug 2024 21:30:47 -0400 Subject: [PATCH 1478/1514] Update psims to 1.3.4 (#50310) --- recipes/psims/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/psims/meta.yaml b/recipes/psims/meta.yaml index fbab7ed9f4c18..64e6ca723d030 100644 --- a/recipes/psims/meta.yaml +++ b/recipes/psims/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "1.3.3" %} -{% set sha256 = "d956fb6d2a42087fe35595ad452802fe115a7952c8bcb63951d19b99530b1358" %} +{% set version = "1.3.4" %} +{% set sha256 = "4cac9368616118186fe12dc137adcd12d934df5013956816615b5eaa95cb0573" %} package: name: "psims" From 81bb3d0149fa021f6cdfed898acb313e3679976d Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 03:56:34 -0400 Subject: [PATCH 1479/1514] Update pasty to 2.2.1 (#50316) --- recipes/pasty/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/pasty/meta.yaml b/recipes/pasty/meta.yaml index ba6de3e3380fe..69cec8609056a 100644 --- a/recipes/pasty/meta.yaml +++ b/recipes/pasty/meta.yaml @@ -1,5 +1,5 @@ {% set name = "pasty" %} -{% set version = "2.2.0" %} +{% set version = "2.2.1" %} package: name: {{ name | lower }} @@ -7,7 +7,7 @@ package: source: url: https://github.com/rpetit3/pasty/archive/v{{ version }}.tar.gz - sha256: b6728abde78c0d91d89ac9dc92731285eb10b15a297af1ecf971915c3037b9f3 + sha256: e407107082aadbbbc4d650dfbe965b6b9421c9fd384ee7e2ab380e7eca8991cc build: number: 0 From 770c547b8aa026be633858d794f95b6779a76685 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 03:56:59 -0400 Subject: [PATCH 1480/1514] Update cogent3 to 2024.7.19a5 (#50315) --- recipes/cogent3/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/cogent3/meta.yaml b/recipes/cogent3/meta.yaml index d32a78fc20af4..e92074697c06d 100644 --- a/recipes/cogent3/meta.yaml +++ b/recipes/cogent3/meta.yaml @@ -1,5 +1,5 @@ {% set name = "cogent3" %} -{% set version = "2024.7.19a4" %} +{% set version = "2024.7.19a5" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 3ff157aa3a778d4b2f473d18619d674073d5b61ad864daca3ee5283a9cdc50bb + sha256: 6bd7c16b7662a09f65295a4256b1aa7034c9f872e1359cfd7047b22c86bc8d5a build: noarch: python From a21d40486b60413f45e43a999df5c7b02bc90ea2 Mon Sep 17 00:00:00 2001 From: pvanheus Date: Mon, 26 Aug 2024 10:28:58 +0200 Subject: [PATCH 1481/1514] Add recipe for jclusterfunk (#50309) * Add recipe for jclusterfunk * Add build.sh for jclusterfunk * Resolve license naming as per suggestion from martin-g --- recipes/jclusterfunk/build.sh | 11 +++++++++++ recipes/jclusterfunk/meta.yaml | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100755 recipes/jclusterfunk/build.sh create mode 100644 recipes/jclusterfunk/meta.yaml diff --git a/recipes/jclusterfunk/build.sh b/recipes/jclusterfunk/build.sh new file mode 100755 index 0000000000000..8750eb03bcab7 --- /dev/null +++ b/recipes/jclusterfunk/build.sh @@ -0,0 +1,11 @@ +#!/bin/bash +set -eu -o pipefail + +outdir=$PREFIX/share/$PKG_NAME-$PKG_VERSION-$PKG_BUILDNUM +mkdir -p $outdir +mkdir -p $PREFIX/bin + +cp jclusterfunk jclusterfunk.jar $outdir/ + +ln -s $outdir/jclusterfunk $PREFIX/bin +chmod 0755 "${PREFIX}/bin/jclusterfunk" diff --git a/recipes/jclusterfunk/meta.yaml b/recipes/jclusterfunk/meta.yaml new file mode 100644 index 0000000000000..1e468afe4134c --- /dev/null +++ b/recipes/jclusterfunk/meta.yaml @@ -0,0 +1,33 @@ +{% set version = "0.0.25" %} +{% set name = "jclusterfunk" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/snake-flu/jclusterfunk/releases/download/v{{ version }}/jclusterfunk_v{{ version }}.tgz + sha256: 333029dfcfe5d08ecb96bd31f2fed1b732547d45a1f892b9515ae28b528beee8 + +build: + noarch: generic + number: 0 + run_exports: + - {{ pin_subpackage(name, max_pin="x.x") }} + +requirements: + host: + - openjdk + run: + - openjdk + +test: + commands: + - jclusterfunk --help + +about: + home: https://github.com/snake-flu/jclusterfunk + license: GPL-3.0-only + license_family: GPL3 + license_url: https://github.com/snake-flu/jclusterfunk/blob/master/LICENSE + summary: A command line tool with a bunch of functions for trees From 23fe8cc0729ff70883819a8d2b2fdfc4d1da1443 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 04:29:15 -0400 Subject: [PATCH 1482/1514] Update perl-parallel-forkmanager to 2.03 (#50300) * Update perl-parallel-forkmanager to 2.03 * Add run_exports --------- Co-authored-by: Martin Grigorov --- recipes/perl-parallel-forkmanager/meta.yaml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/recipes/perl-parallel-forkmanager/meta.yaml b/recipes/perl-parallel-forkmanager/meta.yaml index 538bd3c4c8a96..bba5e7ed46bfe 100644 --- a/recipes/perl-parallel-forkmanager/meta.yaml +++ b/recipes/perl-parallel-forkmanager/meta.yaml @@ -1,14 +1,16 @@ package: name: perl-parallel-forkmanager - version: "2.02" + version: "2.03" source: - url: https://cpan.metacpan.org/authors/id/Y/YA/YANICK/Parallel-ForkManager-2.02.tar.gz - sha256: c1b2970a8bb666c3de7caac4a8f4dbcc043ab819bbc337692ec7bf27adae4404 + url: https://cpan.metacpan.org/authors/id/Y/YA/YANICK/Parallel-ForkManager-2.03.tar.gz + sha256: c0e0bead458224b9ac5bb32ed2b1fa088963b565521c1bb1a6a3566d522c2e35 build: noarch: generic - number: 1 + number: 0 + run_exports: + - {{ pin_subpackage('perl-parallel-forkmanager', max_pin='x') }} requirements: build: From e21cb22daac86ef5491f02f44a0a2106b284d512 Mon Sep 17 00:00:00 2001 From: pvanheus Date: Mon, 26 Aug 2024 12:51:52 +0200 Subject: [PATCH 1483/1514] Add recipe for squirrel (#50297) * Add recipe for squirrel * Define name variable * Correct typo - make to mako * Use matplotlib-base * Change source for jclusterfunk * Adjust license description --- recipes/squirrel/meta.yaml | 47 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 recipes/squirrel/meta.yaml diff --git a/recipes/squirrel/meta.yaml b/recipes/squirrel/meta.yaml new file mode 100644 index 0000000000000..9ced95e59b168 --- /dev/null +++ b/recipes/squirrel/meta.yaml @@ -0,0 +1,47 @@ +{% set version = "1.0.7" %} +{% set name = "squirrel" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + url: https://github.com/aineniamh/squirrel/archive/refs/tags/{{ version }}.tar.gz + sha256: 308fa2625b9c414bd939825c03168bd04616886b8ebb1eea269b17d6b5be9c6b + +build: + number: 0 + noarch: python + script: python -m pip install --no-deps --ignore-installed . + run_exports: + - {{ pin_subpackage(name, max_pin="x") }} + +requirements: + host: + - python ==3.10 + - pip + run: + - python ==3.10 + - biopython >=1.74 + - minimap2 >=2.16 + - snakemake-minimal ==7.32 + - matplotlib-base >=3.3.1 + - seaborn + - gofasta + - baltic + - mako ==1.2 + - pandas + - iqtree >=2.1 + - jclusterfunk >=0.0.25 + +test: + commands: + - squirrel --help + +about: + home: https://github.com/aineniamh/squirrel + license: GPL-3.0-only + license_family: GPL3 + license_file: LICENSE + summary: Some QUIck Reconstruction to Resolve Evolutionary Links + From b4fd84339708d4f6d7bdaba7828901ea058a9f4a Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 06:52:31 -0400 Subject: [PATCH 1484/1514] Update dfast to 1.3.2 (#50317) --- recipes/dfast/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/dfast/meta.yaml b/recipes/dfast/meta.yaml index 36eb6d765c65d..63eb3ed37c582 100644 --- a/recipes/dfast/meta.yaml +++ b/recipes/dfast/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.3.1" %} +{% set version = "1.3.2" %} package: name: dfast @@ -6,7 +6,7 @@ package: source: url: https://github.com/nigyta/dfast_core/archive/{{ version }}.tar.gz - sha256: afee0c4e13482b519203c2bedbf48375788aa17ef7f340f0c52165d10931efcb + sha256: d889e00c6870cdb7229cc91fe8f52b6dafc95535948669b91f0a0b276501adb7 build: number: 0 From 49e2570e978071a95da740ab363512ba1947d6dd Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 07:01:34 -0400 Subject: [PATCH 1485/1514] Update gapseq to 1.3.1 (#50318) --- recipes/gapseq/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gapseq/meta.yaml b/recipes/gapseq/meta.yaml index 44e964c9e8146..c1275e49f6191 100644 --- a/recipes/gapseq/meta.yaml +++ b/recipes/gapseq/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.3" %} +{% set version = "1.3.1" %} package: name: gapseq @@ -6,7 +6,7 @@ package: source: url: https://github.com/jotech/gapseq/archive/refs/tags/v{{ version}}.tar.gz - sha256: 2ab2512813741593e1c69bf18e396edf9643e7dd7ab80afa59c4ba18c13f13ee + sha256: 8702d9bc844c04aa06fba083bd81bdf4585bfbb581b890052ba5af378a85a2c6 build: number: 0 From 565e610ee64e6ef9b60dc3276532eddee24badcf Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 11:55:18 -0400 Subject: [PATCH 1486/1514] Update lambda to 3.1.0 (#50328) --- recipes/lambda/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/lambda/meta.yaml b/recipes/lambda/meta.yaml index e87ddb3cc388c..882b493ea719d 100644 --- a/recipes/lambda/meta.yaml +++ b/recipes/lambda/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "3.0.0" %} +{% set version = "3.1.0" %} package: name: lambda @@ -6,7 +6,7 @@ package: source: url: https://github.com/seqan/lambda/releases/download/lambda-v{{ version }}/lambda3-{{ version }}-SourceWithSubmodules.tar.xz - sha256: 48b4b72007ffc86c4aad59634721e89a990fb42cb90f2cd17f52edc60d0c6482 + sha256: fb3388e8b5a9f33f7423699803eaef4e6b9838c11017bd5b0d2b07f66491f191 build: number: 0 From b00456c470a1ac9f14af83dc7af847c9afb0d080 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 11:55:29 -0400 Subject: [PATCH 1487/1514] Update dxpy to 0.381.0 (#50329) --- recipes/dxpy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/dxpy/meta.yaml b/recipes/dxpy/meta.yaml index 11e66e5ca8a77..d9db812fe9085 100644 --- a/recipes/dxpy/meta.yaml +++ b/recipes/dxpy/meta.yaml @@ -1,5 +1,5 @@ {% set name = "dxpy" %} -{% set version = "0.380.0" %} +{% set version = "0.381.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: e3fb70b283a9eda2f861d6b85322841d78b2655cd7de11f1e946643b58de3d4f + sha256: 84fea9b33be93b97ce2d92ff0f5b0eaa63920c43776df3cdf0abb099c117c6cc build: number: 0 From b9b55417409c07056abb2920e3f36fe86377bb0b Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 11:55:54 -0400 Subject: [PATCH 1488/1514] Update metav to 1.0.6 (#50321) --- recipes/metav/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/metav/meta.yaml b/recipes/metav/meta.yaml index 3423876580db3..5c61f129ddc50 100644 --- a/recipes/metav/meta.yaml +++ b/recipes/metav/meta.yaml @@ -1,5 +1,5 @@ {% set name = "metav" %} -{% set version = "1.0.5" %} +{% set version = "1.0.6" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: f1cbf33630a26e9c34276244e08e2d56fa7128aca2553347700065f6536cdd65 + sha256: 54c59f9d72aff1a2129a7e02c1cb10a1f14196d87242c8fd6ea18de30a771612 build: number: 0 From 3ee8f70c6a3d3b514df7acf6149d481520855b54 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 11:56:02 -0400 Subject: [PATCH 1489/1514] Update squirrel to 1.0.8 (#50320) --- recipes/squirrel/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/squirrel/meta.yaml b/recipes/squirrel/meta.yaml index 9ced95e59b168..7fb2286ec8471 100644 --- a/recipes/squirrel/meta.yaml +++ b/recipes/squirrel/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.0.7" %} +{% set version = "1.0.8" %} {% set name = "squirrel" %} package: @@ -7,7 +7,7 @@ package: source: url: https://github.com/aineniamh/squirrel/archive/refs/tags/{{ version }}.tar.gz - sha256: 308fa2625b9c414bd939825c03168bd04616886b8ebb1eea269b17d6b5be9c6b + sha256: 9e89d062f849c0b947a1d469f3864936164ea912645131e5120f86a5e12dc00d build: number: 0 From 79fd662faf6520845f81d204a320d4721746ac02 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 12:32:14 -0400 Subject: [PATCH 1490/1514] Update cami-amber to 2.0.6 (#50330) --- recipes/cami-amber/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/cami-amber/meta.yaml b/recipes/cami-amber/meta.yaml index 47deb58707c78..4326d2805dc2c 100644 --- a/recipes/cami-amber/meta.yaml +++ b/recipes/cami-amber/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.0.5" %} +{% set version = "2.0.6" %} package: name: cami-amber @@ -6,7 +6,7 @@ package: source: url: https://pypi.io/packages/source/c/cami-amber/cami-amber-{{ version }}.tar.gz - sha256: 59ccbb4447904b337a7979782fef3f68ee0addac37e4173f826de369c1a3e697 + sha256: d2d3d13a135f7ce4dff6bc1aab014945b0e5249b02f9afff3e6df1d82ef45d5a build: noarch: python From 1ce02d1d9d340cbf624bd2f4866be53de8306dd4 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 12:40:10 -0400 Subject: [PATCH 1491/1514] Update argnorm to 0.6.0 (#50331) --- recipes/argnorm/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/argnorm/meta.yaml b/recipes/argnorm/meta.yaml index 3eaff5920960f..2349661f642da 100644 --- a/recipes/argnorm/meta.yaml +++ b/recipes/argnorm/meta.yaml @@ -1,5 +1,5 @@ {% set name = "argnorm" %} -{% set version = "0.5.0" %} +{% set version = "0.6.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: 60589492f01c000a5b8b4c2608cd607d8bc922786b2b3fc0cfbc5a4575cb9baf + sha256: 85b54bff237943af418a4f6fedd83c1c67c14522f9ef81e1b750bbd5aec2051b build: noarch: python From 1e57c1d5b498ee96d3e66735e405223462b6f27d Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Mon, 26 Aug 2024 12:00:28 -0500 Subject: [PATCH 1492/1514] Update last to 1574 (#50332) --- recipes/last/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/last/meta.yaml b/recipes/last/meta.yaml index 84605ee676679..6ebfe4a978db5 100644 --- a/recipes/last/meta.yaml +++ b/recipes/last/meta.yaml @@ -1,5 +1,5 @@ {% set name = "LAST" %} -{% set version = "1571" %} +{% set version = "1574" %} package: name: {{ name|lower }} @@ -7,7 +7,7 @@ package: source: url: "https://gitlab.com/mcfrith/last/-/archive/{{ version }}/last-{{ version }}.tar.gz" - sha256: c91e99aa98bcb72fe08dada48aa2d8952cf724f2b8beadaa3a35b6f32ce5717c + sha256: adcec227328ec74e47ca1851920d796807a530d2bb25be5d912e0abdd9694d5f build: number: 0 From 1b6b5b24748c85cba72b2c78157adf946c15d82c Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 16:14:49 -0400 Subject: [PATCH 1493/1514] Update open-cravat to 2.8.0 (#50335) --- recipes/open-cravat/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/open-cravat/meta.yaml b/recipes/open-cravat/meta.yaml index 4575700fc40ea..25f02e804c642 100644 --- a/recipes/open-cravat/meta.yaml +++ b/recipes/open-cravat/meta.yaml @@ -1,5 +1,5 @@ {% set name = "open-cravat" %} -{% set version = "2.7.3" %} +{% set version = "2.8.0" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: e052ab00c04c1db9f45cd1ec2d7d774279fb1fe4d5763ab13d6fcb7e6d1d7df9 + sha256: 14759157660f2c46fd235947489cf73952a82e2340c9f588eb112190b415e18d build: number: 0 From 6ce049ba36eb3bd95fd2812d53bb90bfd04a7e06 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 16:16:46 -0400 Subject: [PATCH 1494/1514] Update wfmash to 0.20.0 (#50336) --- recipes/wfmash/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/wfmash/meta.yaml b/recipes/wfmash/meta.yaml index 92d3eb3b21ec8..f73b34171c1cf 100644 --- a/recipes/wfmash/meta.yaml +++ b/recipes/wfmash/meta.yaml @@ -1,5 +1,5 @@ {% set name = "wfmash" %} -{% set version = "0.19.0" %} +{% set version = "0.20.0" %} package: name: "{{ name }}" @@ -7,7 +7,7 @@ package: source: url: https://github.com/waveygang/{{ name }}/releases/download/v{{ version }}/{{ name }}-v{{ version }}.tar.gz - sha256: db6eefc7296739c6276daa8ed413c171487eceed1a62588c1d2fdb40011b011f + sha256: 10e96f454bce8aa6dd3ec579f41c2bfc62667499005016071da19ab1c3754173 build: skip: True # [osx] From 3abd5b8ef4f2c745a9fd5d24da9861d0c1922269 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 17:04:37 -0400 Subject: [PATCH 1495/1514] Update oarfish to 0.6.1 (#50337) * Update oarfish to 0.6.0 * Update oarfish to 0.6.1 * Update meta.yaml include zlib * Update meta.yaml Add c compiler b/c of minimap2 --------- Co-authored-by: Rob Patro --- recipes/oarfish/meta.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/recipes/oarfish/meta.yaml b/recipes/oarfish/meta.yaml index ad46a7b90f03d..e7735d01488bd 100644 --- a/recipes/oarfish/meta.yaml +++ b/recipes/oarfish/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.5.1" %} +{% set version = "0.6.1" %} package: name: oarfish @@ -11,13 +11,17 @@ build: source: url: https://github.com/COMBINE-lab/oarfish/archive/v{{ version }}.tar.gz - sha256: 83fe964065c1068be8085eaf36ce436d8199577d2647fa52138046ccc253d62b + sha256: 43d123010c1abb813ffea785715b2fba39d730a708e7f8d7ea966422834e503d requirements: build: + - make - {{ compiler('rust') }} + - {{ compiler('c') }} host: + - zlib run: + - zlib test: commands: From b3334cd26cdb32ff4accd16c4457a0ba77a4dea1 Mon Sep 17 00:00:00 2001 From: John Huddleston Date: Mon, 26 Aug 2024 16:00:41 -0700 Subject: [PATCH 1496/1514] Update Auspice to 2.56.1 (#50340) --- recipes/auspice/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/auspice/meta.yaml b/recipes/auspice/meta.yaml index 3d686e8bf8ffe..074f6de8fabf9 100644 --- a/recipes/auspice/meta.yaml +++ b/recipes/auspice/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.56.0" %} +{% set version = "2.56.1" %} {% set name = "auspice" %} package: @@ -7,10 +7,10 @@ package: source: url: https://registry.npmjs.org/{{ name }}/-/{{ name }}-{{ version }}.tgz - sha256: 89c620bc790c5e3f28969a253f41e36bf35a13346cb8c6ab55868d9c6ee08714 + sha256: d100c0f6cc13ba1f9fe2b7bde5983b0383f523320dcc69a19cf9c86570febf03 build: - number: 3 + number: 0 run_exports: - {{ pin_subpackage(name, max_pin="x.x") }} From f52fd52e9396dc3178557f955df4f048b46921f8 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 19:00:50 -0400 Subject: [PATCH 1497/1514] Update thapbi-pict to 1.0.14 (#50339) * Update thapbi-pict to 1.0.14 * Avoid pydot v3 (until networkx updated) See https://github.com/peterjc/thapbi-pict/issues/638 where I used "pydot <3" as an interim measure to avoid an incompatibility with the current and recent releases of networkx. The first release of networkx after 3.3 _should_ fix this (allowing pydot v2 or v3). --------- Co-authored-by: Peter Cock --- recipes/thapbi-pict/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/thapbi-pict/meta.yaml b/recipes/thapbi-pict/meta.yaml index 6a3ccb82537e6..47d868ee8633a 100644 --- a/recipes/thapbi-pict/meta.yaml +++ b/recipes/thapbi-pict/meta.yaml @@ -1,5 +1,5 @@ {% set name = "thapbi-pict" %} -{% set version = "1.0.13" %} +{% set version = "1.0.14" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: https://pypi.io/packages/source/{{ name[0] }}/{{ name | replace("-", "_") }}/{{ name | replace("-", "_") }}-{{ version }}.tar.gz - sha256: 772b10381901f9bbebc63588ae67c16676462393b8c9a5f886eab32ad13aa7ea + sha256: 6c1b397d608b8aa7999445de09977e727698adbdb2d8b7fe43db7e8b19b748ed build: noarch: python @@ -29,7 +29,7 @@ requirements: - cutadapt >=4.0 - matplotlib-base >=3.7 - networkx >=2.4,!=2.8.3,!=2.8.4 - - pydot + - pydot <3 - python >=3.8 - rapidfuzz >=2.4.0 - sqlalchemy >=2.0 From 10049f2d556c486bf0ace23b25e5883427a37c82 Mon Sep 17 00:00:00 2001 From: Peter Cock Date: Tue, 27 Aug 2024 00:05:54 +0100 Subject: [PATCH 1498/1514] Build k8 on osx-arm64 (#49946) * Build k8 on osx-arm64 Needed to build minimap2 * Use node-18.20.4 for macOS * Fix Darwin specific version of node * Avoid hybrid sh/python configure script This was failing when tried to build osx-arm64, somehow trying to use the system Python not the conda provided one. * Python is used (at least for the configure stage) * Revert explicit python build dependency (times out) This reverts commit 3ebb480605c3141df7d5f4870d50b7688ab166fb. * skip x86_64 for now --------- Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Co-authored-by: mencian --- recipes/k8/build.sh | 13 +++++++++++-- recipes/k8/meta.yaml | 4 +++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/recipes/k8/build.sh b/recipes/k8/build.sh index 3b3aeda6a195d..164078d31402a 100644 --- a/recipes/k8/build.sh +++ b/recipes/k8/build.sh @@ -3,7 +3,15 @@ set -x DEFAULT_LINUX_VERSION="cos7" -NODE_VERSION="18.19.1" +# * k8 is only compatible with Node.js v18.x, not more recent node versions +# * node-18.19.x can be compiled on CentOS 7, but not on macOS with clang +# * node-18.20.x can be compiled on MacOS but not on CentOS 7 because it +# includes an updated c-ares library which is incompatible with glibc on CentOS 7 +if [ "$(uname)" == "Darwin" ]; then + NODE_VERSION="18.20.4" +else + NODE_VERSION="18.19.1" +fi wget -O- https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}.tar.gz | tar -zxf - pushd node-v${NODE_VERSION} @@ -15,7 +23,8 @@ pushd node-v${NODE_VERSION} # 2024-03-19T13:32:27.9241412Z 13:32:27 BIOCONDA INFO (OUT) cc1plus: some warnings being treated as errors patch -p0 < ${RECIPE_DIR}/nodejs-x86_64.patch -./configure --without-node-snapshot --without-etw --without-npm --without-inspector --without-dtrace +# The provided configure script is a sh/python hybrid which boils down to one line of Python +python -c "import configure" --without-node-snapshot --without-etw --without-npm --without-inspector --without-dtrace make -j3 popd diff --git a/recipes/k8/meta.yaml b/recipes/k8/meta.yaml index bd8884f37dc2f..690b3631745dd 100644 --- a/recipes/k8/meta.yaml +++ b/recipes/k8/meta.yaml @@ -10,7 +10,8 @@ source: sha256: 4157aa86066eb0a7874de194893c4544ac772d009cc1148377c9c346f9fc6d07 build: - number: 1 + number: 2 + skip: True # [x86_64] run_exports: - {{ pin_subpackage('k8', max_pin="x") }} @@ -44,3 +45,4 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 From b82a4fe6896ae83999ee7c153d458ffa62952a1a Mon Sep 17 00:00:00 2001 From: Vijini Mallawaarachchi Date: Tue, 27 Aug 2024 08:36:09 +0930 Subject: [PATCH 1499/1514] Update kmertools to v0.1.2 (#50319) * Update kmertools to v0.1.1 * Update meta.yaml * Update meta.yaml * Update meta.yaml * Update build.sh * Update build.sh * clean up recipe * add python back to build --------- Co-authored-by: mencian --- recipes/kmertools/build.sh | 32 +++++++++++++++++++++++++++++++- recipes/kmertools/meta.yaml | 12 ++++++++++-- 2 files changed, 41 insertions(+), 3 deletions(-) diff --git a/recipes/kmertools/build.sh b/recipes/kmertools/build.sh index 9a40edcacf2d1..1f86b1f9190de 100644 --- a/recipes/kmertools/build.sh +++ b/recipes/kmertools/build.sh @@ -4,4 +4,34 @@ cargo build --release # Install the binaries -cargo install --path kmertools --root $PREFIX +cargo install --verbose --path kmertools --root "${PREFIX}" + +# Check if the system is macOS +if [[ "$(uname)" == "Darwin" ]]; then + # Get the architecture + arch=$(uname -m) + + # Set MACOSX_DEPLOYMENT_TARGET based on architecture + if [[ "$arch" == "x86_64" ]]; then + # For Intel Macs + export MACOSX_DEPLOYMENT_TARGET=10.12 + elif [[ "$arch" == "arm64" ]]; then + # For Apple Silicon Macs + export MACOSX_DEPLOYMENT_TARGET=11.0 + else + echo "Unknown architecture: $arch" + exit 1 + fi + + echo "Set MACOSX_DEPLOYMENT_TARGET to $MACOSX_DEPLOYMENT_TARGET for $arch" +else + echo "Not running on macOS, skipping MACOSX_DEPLOYMENT_TARGET" +fi + +# Build statically linked binary with Rust +RUST_BACKTRACE=1 +# Build with maturin +maturin build -m ./pykmertools/Cargo.toml -b pyo3 --interpreter "${PYTHON}" --release --strip + +# Install the wheel file +${PYTHON} -m pip install ./target/wheels/*.whl --no-deps --no-build-isolation --no-cache-dir -vvv diff --git a/recipes/kmertools/meta.yaml b/recipes/kmertools/meta.yaml index 0e97b0c0e1d13..603fb2102a2d2 100644 --- a/recipes/kmertools/meta.yaml +++ b/recipes/kmertools/meta.yaml @@ -1,6 +1,6 @@ -{% set version = "0.1.0" %} +{% set version = "0.1.2" %} {% set name = "kmertools" %} -{% set sha256 = "3c8cf78c95ab0baf0f69e7bc631ea52a54733bed0122b9d20e76d49df5639a4c" %} +{% set sha256 = "0dfade580e1fbf6ba2bc1665792ae74b918bbe0cd5272c5f52bf553eee285a71" %} package: name: {{ name }} @@ -18,6 +18,11 @@ source: requirements: build: - {{ compiler("rust") }} + - python >=3.9 + host: + - maturin >=1.7,<2.0 + - python >=3.9 + - pip test: commands: @@ -33,6 +38,9 @@ about: dev_url: https://github.com/anuradhawick/kmertools extra: + additional-platforms: + - linux-aarch64 + - osx-arm64 recipe-maintainers: - anuradhawick - Vini2 From 997db1a95107da7d24493709d21ace9d928b842e Mon Sep 17 00:00:00 2001 From: Peter Cock Date: Tue, 27 Aug 2024 02:11:49 +0100 Subject: [PATCH 1500/1514] Build minimap2 on osx-arm64 (#49945) * Build minimap2 on osx-arm64 Closes #49565 * minimap2: add arm64 build * add osx-arm64 --------- Co-authored-by: mencian Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/minimap2/build.sh | 16 +++++++++------- recipes/minimap2/meta.yaml | 6 +++--- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/recipes/minimap2/build.sh b/recipes/minimap2/build.sh index 7dc49651a2b3b..8cb728cd50339 100644 --- a/recipes/minimap2/build.sh +++ b/recipes/minimap2/build.sh @@ -8,18 +8,20 @@ case $(uname -m) in aarch64) ARCH_OPTS="aarch64=1" ;; + arm64) + ARCH_OPTS="aarch64=1" + ;; *) ARCH_OPTS="" ;; esac -make CFLAGS="-g -Wall -O2 -Wc++-compat -I${PREFIX}/include -L${PREFIX}/lib" \ - ${ARCH_OPTS} -j${CPU_COUNT} minimap2 sdust +make CFLAGS="${CFLAGS} -g -Wall -O3 -Wc++-compat -I${PREFIX}/include -L${PREFIX}/lib" \ + "${ARCH_OPTS}" -j"${CPU_COUNT}" minimap2 sdust chmod 755 minimap2 && chmod 755 sdust -cp minimap2 misc/paftools.js ${PREFIX}/bin -cp sdust ${PREFIX}/bin -cp libminimap2.a ${PREFIX}/lib -cp *.h ${PREFIX}/include -cp minimap2.1 $PREFIX/share/man/man1 +cp -rf minimap2 misc/paftools.js ${PREFIX}/bin +cp -rf sdust ${PREFIX}/bin +cp -rf libminimap2.a ${PREFIX}/lib +cp -rf *.h ${PREFIX}/include diff --git a/recipes/minimap2/meta.yaml b/recipes/minimap2/meta.yaml index fff2923d41783..bcfd16f66dfac 100644 --- a/recipes/minimap2/meta.yaml +++ b/recipes/minimap2/meta.yaml @@ -12,7 +12,7 @@ source: - override-makefile.patch build: - number: 2 + number: 3 run_exports: - {{ pin_subpackage(name, max_pin="x") }} @@ -24,7 +24,6 @@ requirements: - zlib run: - k8 - - zlib test: commands: @@ -46,7 +45,8 @@ about: extra: additional-platforms: - linux-aarch64 + - osx-arm64 identifiers: - biotools:{{ name| lower }} - usegalaxy-eu:{{ name| lower }} - - doi:10.1093/bioinformatics/bty191 \ No newline at end of file + - doi:10.1093/bioinformatics/bty191 From 80b16ed83d9717ad88166ab2beb058c9b055a8da Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Mon, 26 Aug 2024 22:17:26 -0400 Subject: [PATCH 1501/1514] Update mvip to 1.1.4 (#50342) --- recipes/mvip/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mvip/meta.yaml b/recipes/mvip/meta.yaml index 0705dd9549b86..613e0bbbd9bb8 100644 --- a/recipes/mvip/meta.yaml +++ b/recipes/mvip/meta.yaml @@ -1,5 +1,5 @@ {% set name = "mvip" %} -{% set version = "1.1.3" %} +{% set version = "1.1.4" %} package: name: "{{ name|lower }}" @@ -7,7 +7,7 @@ package: source: url: "https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz" - sha256: e8d96300ed3371048ecf27c61b269871d0c3c5f52789ba5726c958f565af8800 + sha256: ca056513e45714c5988aba02572aa179055b17100a0c4192a274324a02e8cc46 build: number: 0 From 43e264abce3f22d6618629c9159006987c0be87e Mon Sep 17 00:00:00 2001 From: Zechen Chong <1734434+czc@users.noreply.github.com> Date: Mon, 26 Aug 2024 21:50:04 -0500 Subject: [PATCH 1502/1514] Update Inspector to v1.3 (#50314) --- recipes/inspector/meta.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/inspector/meta.yaml b/recipes/inspector/meta.yaml index 25408db41b8b1..096917931b33d 100644 --- a/recipes/inspector/meta.yaml +++ b/recipes/inspector/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.2" %} +{% set version = "1.3" %} package: name: inspector @@ -6,11 +6,13 @@ package: source: url: https://github.com/ChongLab/Inspector/archive/refs/tags/inspector-v{{ version }}.tar.gz - sha256: 6d7ca6b22053d06105a549a064cf9a26efaf5c4a2a1a4502f2f36a4eb248ec4a + sha256: 6e1278de333990005a720a85048581783040ed4473b2247d0aa0eeaa8cb9ffda build: number: 0 noarch: generic + run_exports: + - {{ pin_subpackage('inspector', max_pin="x") }} requirements: run: From 7a7487cd3c301e095ca025124b8bb994f3ff2e9c Mon Sep 17 00:00:00 2001 From: Konstantinn Bonnet <50845450+qwx9@users.noreply.github.com> Date: Tue, 27 Aug 2024 03:54:41 +0100 Subject: [PATCH 1503/1514] update strangepg and fix runtime dependency spec (#50333) --- recipes/strangepg/build.sh | 2 +- recipes/strangepg/meta.yaml | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/recipes/strangepg/build.sh b/recipes/strangepg/build.sh index 08e12b16862ae..b2d6d2c62ccc8 100644 --- a/recipes/strangepg/build.sh +++ b/recipes/strangepg/build.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -eu export CFLAGS="$CFLAGS -I${PREFIX}/include" export LDFLAGS="$LDFLAGS -ldl -lpthread" make -j install diff --git a/recipes/strangepg/meta.yaml b/recipes/strangepg/meta.yaml index 5ad6f37944f03..6889a4d933a92 100644 --- a/recipes/strangepg/meta.yaml +++ b/recipes/strangepg/meta.yaml @@ -1,6 +1,6 @@ {% set name = "strangepg" %} -{% set version = "0.8.1" %} -{% set ref = "aaa5f72ebd55b6562050239cce9a1f10077759bd" %} +{% set version = "0.8.2" %} +{% set ref = "7fbd2957cf1bf0295b6c4bd95fcfc9f1970ecb13" %} package: name: {{ name }} @@ -8,7 +8,7 @@ package: source: url: https://github.com/qwx9/{{ name }}/archive/{{ ref }}.tar.gz - sha256: 33acfe6ac4eb85ecaf41fc3a5990b466b7fccebe6fd6d5b002c085cd4d52cc0f + sha256: bac0f9bbce7fdee6a555cca37536ed7f41b8c594aa16ff92212345e2664b7f67 build: number: 0 @@ -36,6 +36,15 @@ requirements: - xorg-libxi - xorg-libxrandr run: + - xorg-libx11 + - xorg-libxau + - xorg-libxcb + - xorg-libxcursor + - xorg-libxdmcp + - xorg-libxext + - xorg-libxfixes + - xorg-libxi + - xorg-libxrandr test: commands: From 2bf55abbaa1e69cbb307b816bf4dd62a9520663d Mon Sep 17 00:00:00 2001 From: Matty Allan <31744230+matthewfallan@users.noreply.github.com> Date: Mon, 26 Aug 2024 23:38:42 -0400 Subject: [PATCH 1504/1514] Update seismic-rna to 0.20.1 (#50344) * Initial commit of recipe for seismic-rna * Add run_exports to meta.yaml build section * Fix the problems causing linting errors * Apply suggestions from code review Co-authored-by: Martin Grigorov * Update meta.yaml Add Conda package brotli-python (equivalent of PyPI package brotli) to runtime dependencies * Update recipe generator; rebuild recipe files * seismic-rna v0.20.0 * bump build numer * Update seismic-rna to 0.20.1 --------- Co-authored-by: Martin Grigorov Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/seismic-rna/meta.yaml | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/recipes/seismic-rna/meta.yaml b/recipes/seismic-rna/meta.yaml index 408e717537b7e..0ea99cde077e3 100644 --- a/recipes/seismic-rna/meta.yaml +++ b/recipes/seismic-rna/meta.yaml @@ -2,8 +2,8 @@ package: name: seismic-rna - version: 0.20.0 - + version: 0.20.1 + about: home: https://github.com/rouskinlab/seismic-rna license: GPL-3.0-only @@ -13,12 +13,12 @@ about: summary: SEISMIC-RNA software by the Rouskin Lab source: - url: https://github.com/rouskinlab/seismic-rna/archive/refs/tags/v0.20.0.tar.gz - sha256: 91ea9c7d23a85a0d9d035e41ee0782f892ea7e4f0df5af96317b7302a58c8de4 + url: https://github.com/rouskinlab/seismic-rna/archive/refs/tags/v0.20.1.tar.gz + sha256: b6d159119d394a9a92f74a886dc398a8479e4d890438bf2e19e2eee3eefaee24 build: noarch: python - number: 1 + number: 0 run_exports: - {{ pin_subpackage("seismic-rna", max_pin="x.x") }} @@ -29,22 +29,23 @@ requirements: - hatch >=1.12 run: - python >=3.10 - - bowtie2 >=2.5.1 + - bowtie2 >=2.5.4 - fastqc >=0.12.1 - - rnastructure >=6.3 - - samtools >=1.17 - - matplotlib-base >=3.6 + - rnastructure >=6.4 + - samtools >=1.20 + - matplotlib-base >=3.9 - brotli-python >=1.0 + - python-kaleido >=0.2.1 - click >=8.1 - - cutadapt >=4.4 + - cutadapt >=4.8 - fastqsplitter >=1.2 - - numpy >=1.23,<1.27 - - numba >=0.59 - - pandas >=1.5 - - plotly >=5.11 + - numpy >=1.26,<1.27 + - numba >=0.60 + - pandas >=2.2 + - plotly >=5.23 - pyyaml >=6.0 - - scipy >=1.9 - + - scipy >=1.13 + test: imports: - - seismicrna + - seismicrna \ No newline at end of file From 125830ff71c95b3531b087564a229fbaced69690 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 27 Aug 2024 00:15:16 -0500 Subject: [PATCH 1505/1514] Update kmertools recipe (#50345) --- recipes/kmertools/meta.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/recipes/kmertools/meta.yaml b/recipes/kmertools/meta.yaml index 603fb2102a2d2..18f8c00e7dcd2 100644 --- a/recipes/kmertools/meta.yaml +++ b/recipes/kmertools/meta.yaml @@ -7,7 +7,8 @@ package: version: {{ version }} build: - number: 0 + number: 1 + skip: True # [py < 39] run_exports: - {{ pin_subpackage('kmertools', max_pin="x.x") }} @@ -18,10 +19,10 @@ source: requirements: build: - {{ compiler("rust") }} - - python >=3.9 + - python host: - maturin >=1.7,<2.0 - - python >=3.9 + - python - pip test: From 87796db043817d98215e012f5f31775808860e80 Mon Sep 17 00:00:00 2001 From: Joshua Zhuang <71105179+mencian@users.noreply.github.com> Date: Tue, 27 Aug 2024 01:23:01 -0500 Subject: [PATCH 1506/1514] maegatk: update build (#50346) --- recipes/maegatk/meta.yaml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/recipes/maegatk/meta.yaml b/recipes/maegatk/meta.yaml index a7a26ecda678c..f0101130ca332 100644 --- a/recipes/maegatk/meta.yaml +++ b/recipes/maegatk/meta.yaml @@ -10,7 +10,7 @@ source: sha256: fce1ec287914e03ce2b317a4f6a338f1806cd82e5c77f4e4cb1efbd48c87bdda build: - number: 1 + number: 2 noarch: python entry_points: - maegatk = maegatk.cli:main @@ -32,9 +32,9 @@ requirements: - biopython - optparse-pretty - regex - - ruamel.yaml + - ruamel.yaml 0.16.12 - openjdk - - fgbio + - fgbio-minimal - bwa - samtools - freebayes @@ -52,13 +52,17 @@ test: - maegatk --help about: - home: https://github.com/caleblareau/maegatk - summary: Mitochondrial Alteration Enrichment and Genome Analysis Toolkit + home: "https://github.com/caleblareau/maegatk" + summary: "Mitochondrial Alteration Enrichment and Genome Analysis Toolkit." license: MIT license_family: MIT license_file: LICENSE.txt description: Processing and quality control of mitochondrial genome variants from MAESTER data. + dev_url: "https://github.com/caleblareau/maegatk" + doc_url: "https://github.com/caleblareau/maegatk/wiki" extra: recipe-maintainers: - mencian + identifiers: + - doi:10.1038/s41587-022-01210-8 From 0040ecf688846771e0aeb0813d0a9f06bb959ca2 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 27 Aug 2024 03:18:12 -0400 Subject: [PATCH 1507/1514] Update cagee to 1.1.1 (#43439) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update cagee to 1.1 * add run_exports * Update cagee to 1.1.1 * clean up recipe * clean up recipe * add linux-aarch64 * update meta.yaml * update meta.yaml --------- Co-authored-by: joshuazhuang7 Co-authored-by: Andreas Sjödin Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com> --- recipes/cagee/build.sh | 40 ++++++++++++++++++++-------------------- recipes/cagee/meta.yaml | 16 +++++++++------- 2 files changed, 29 insertions(+), 27 deletions(-) diff --git a/recipes/cagee/build.sh b/recipes/cagee/build.sh index 5d921656c8975..79aff1ef6a196 100755 --- a/recipes/cagee/build.sh +++ b/recipes/cagee/build.sh @@ -1,28 +1,28 @@ #!/bin/bash -set -e -set -x +set -ex -if [ "$(uname)" = "Darwin" ]; then - # LDFLAGS fix: https://github.com/AnacondaRecipes/intel_repack-feedstock/issues/8 - export LDFLAGS="-Wl,-pie -Wl,-headerpad_max_install_names -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib" +export INCLUDES="-I{PREFIX}/include" +export LIBPATH="-L${PREFIX}/lib" +export CXXFLAGS="${CXXFLAGS} -O3 -I{PREFIX}/include" + +if [[ "$(uname)" == "Darwin" ]]; then + # LDFLAGS fix: https://github.com/AnacondaRecipes/intel_repack-feedstock/issues/8 + export LDFLAGS="${LDFLAGS} -Wl,-pie -Wl,-headerpad_max_install_names -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib" + export CONFIG_ARGS="-DCMAKE_FIND_FRAMEWORK=NEVER -DCMAKE_FIND_APPBUNDLE=NEVER" else - export LDFLAGS="-L$PREFIX/lib" - export MKL_THREADING_LAYER="GNU" + export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" + export MKL_THREADING_LAYER="GNU" + export CONFIG_ARGS="" fi -# https://bioconda.github.io/contributor/troubleshooting.html#zlib-errors -export CFLAGS="-I$PREFIX/include" -export CPATH=${PREFIX}/include - -mkdir -p build -cd build - -cmake -DCMAKE_PREFIX_PATH:PATH=${PREFIX} \ - -DCMAKE_INSTALL_PREFIX:PATH=${PREFIX} \ - -DCMAKE_BUILD_TYPE="Release" \ - .. +# https://bioconda.github.io/contributor/troubleshooting.html#zlib-errors +export CFLAGS="${CFLAGS} -O3 -I$PREFIX/include" +export INCLUDE_PATH="${PREFIX}/include" -make -make install +cmake -S . -B build \ + -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DCMAKE_BUILD_TYPE="Release" \ + -DCMAKE_CXX_COMPILER="${CXX}" -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ + "${CONFIG_ARGS}" +cmake --build build --target install -j "${CPU_COUNT}" -v diff --git a/recipes/cagee/meta.yaml b/recipes/cagee/meta.yaml index ff080b956e86b..df3e506dd1ad6 100755 --- a/recipes/cagee/meta.yaml +++ b/recipes/cagee/meta.yaml @@ -1,6 +1,6 @@ {% set name = "CAGEE" %} -{% set version = "1.0" %} -{% set sha256 = "3aec98af3552ef86df03d42a068925e2becd69daac3720ea9fd136b084198f57" %} +{% set version = "1.1.1" %} +{% set sha256 = "b282b954249491f5379c27e36ad0c7b7d5cd120c798e11e6e355b13b5849dfc3" %} package: name: {{ name|lower }} @@ -11,27 +11,30 @@ source: sha256: {{ sha256 }} build: - number: 2 + number: 0 + skip: True # [osx] + run_exports: + - {{ pin_subpackage('cagee', max_pin="x") }} requirements: build: - - {{ compiler('c') }} - {{ compiler('cxx') }} - binutils >=2.33.1 # [linux] + - binutils_impl_linux-aarch64 # [osx] - cmake >=3.13 - make - - llvm-openmp # [osx] host: - eigen >=3.4.0 - boost-cpp - mkl >=2020.4 - mkl-include + - libgomp # [linux] + - llvm-openmp # [osx] - zlib - zstd run: - boost-cpp - mkl >=2020.4 - - zlib test: commands: @@ -49,4 +52,3 @@ about: extra: recipe-maintainers: - benfulton - From 745c02283091f8376751fc651b3593b71bdcaa65 Mon Sep 17 00:00:00 2001 From: Pedro Madrigal <8195212+pmb59@users.noreply.github.com> Date: Tue, 27 Aug 2024 09:18:06 +0100 Subject: [PATCH 1508/1514] add r-mams (#50341) * Create meta.yaml * Create build.sh * Create build.sh * Delete r-mams/build.sh * fix typo * fix anndata dependency * fix r-anndata in run: & add license_file * clean up recipe --------- Co-authored-by: mencian --- recipes/r-mams/meta.yaml | 66 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 recipes/r-mams/meta.yaml diff --git a/recipes/r-mams/meta.yaml b/recipes/r-mams/meta.yaml new file mode 100644 index 0000000000000..673fe63a605e3 --- /dev/null +++ b/recipes/r-mams/meta.yaml @@ -0,0 +1,66 @@ +{% set version = "1.0.1" %} +{% set sha256 = "90b4658c20f8420d3e158522d5e94ada026ff8bc9a71f644f6bd5c78c9539bfd" %} + +package: + name: r-mams + version: '{{ version }}' + +source: + url: https://github.com/single-cell-mams/rmams/archive/refs/tags/{{ version }}.tar.gz + sha256: '{{ sha256 }}' + +build: + noarch: generic + number: 0 + script: ${R} CMD INSTALL --build . ${R_ARGS} + rpaths: + - lib/R/lib/ + - lib/ + run_exports: + - {{ pin_subpackage("r-mams", max_pin="x") }} + +requirements: + host: + - r-base + - r-seurat + - r-jsonlite + - r-rmdformats + - r-r.methodss3 + - r-anndata + - bioconductor-scran + - bioconductor-scater + - bioconductor-singlecellexperiment + - bioconductor-dropletutils + - bioconductor-annotationdbi + - bioconductor-org.hs.eg.db + run: + - r-base + - r-seurat + - r-jsonlite + - r-rmdformats + - r-r.methodss3 + - r-anndata + - bioconductor-scran + - bioconductor-scater + - bioconductor-singlecellexperiment + - bioconductor-dropletutils + - bioconductor-annotationdbi + - bioconductor-org.hs.eg.db + +test: + commands: + - $R -e "library('rmams')" + +about: + home: "https://github.com/single-cell-mams/rmams" + license: MIT + license_family: MIT + license_file: LICENSE + summary: "R package for Matrix and Analysis Metadata Standards." + dev_url: "https://github.com/single-cell-mams/rmams" + doc_url: "https://single-cell-mams.github.io/rmams" + +extra: + recipe-maintainers: + - pmb59 + - irzamsarfraz From 00922cc558f8729e8e08dc7e05d117afb3e1fd6e Mon Sep 17 00:00:00 2001 From: Marc Sturm Date: Tue, 27 Aug 2024 10:18:17 +0200 Subject: [PATCH 1509/1514] Updated ngs-bits to version 2024_08 (#50347) * Updated ngs-bits to version 2018_10 * bla * Updated ngs-bits to version 2024_08 --- recipes/ngs-bits/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/ngs-bits/meta.yaml b/recipes/ngs-bits/meta.yaml index a0cfd0e03364c..5a2b865428cdb 100644 --- a/recipes/ngs-bits/meta.yaml +++ b/recipes/ngs-bits/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2024_07" %} +{% set version = "2024_08" %} package: name: ngs-bits @@ -12,7 +12,7 @@ build: source: url: https://github.com/imgag/ngs-bits/releases/download/{{ version }}/ngs-bits-{{ version }}.tgz - sha256: c1f78b59d87516c5fba44a1375da561b8b1577b4ef949ce63b9a042bbf7f1853 + sha256: 615e61360eafdfdb923336e7c985e7a599c80ad56e534b30bbe97e4b524bc55d # Note: pinning of sysroot_linux-64 =2.17 enforces cos7 and is currently needed to prevent an memcpy@GLIBC2.14 error requirements: From 71a78b058cc6cad4accb4deb40ccf6c25e39d7d5 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 27 Aug 2024 17:31:39 +0300 Subject: [PATCH 1510/1514] ucsc-pslmrnacover: add linux-aarch64 build (#50324) Signed-off-by: Martin Tzvetanov Grigorov --- build-fail-blacklist | 1 - recipes/ucsc-pslmrnacover/build.sh | 28 ++++++++++++++++--------- recipes/ucsc-pslmrnacover/include.patch | 6 +++--- recipes/ucsc-pslmrnacover/meta.yaml | 26 +++++++++++++++-------- 4 files changed, 38 insertions(+), 23 deletions(-) diff --git a/build-fail-blacklist b/build-fail-blacklist index a1d0a9225fc37..da85474fca2cb 100644 --- a/build-fail-blacklist +++ b/build-fail-blacklist @@ -914,7 +914,6 @@ recipes/ucsc-pslfilter recipes/ucsc-pslliftsubrangeblat recipes/ucsc-pslmap recipes/ucsc-pslmappostchain -recipes/ucsc-pslmrnacover recipes/ucsc-pslpartition recipes/ucsc-pslpretty recipes/ucsc-pslrc diff --git a/recipes/ucsc-pslmrnacover/build.sh b/recipes/ucsc-pslmrnacover/build.sh index 356e0e2e3bc36..a7c9804cb5f4a 100644 --- a/recipes/ucsc-pslmrnacover/build.sh +++ b/recipes/ucsc-pslmrnacover/build.sh @@ -1,13 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${PREFIX}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin +export INCLUDE_PATH="${PREFIX}/include" +export LIBRARY_PATH="${PREFIX}/lib" +export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" +export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" +export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/hg/mouseStuff/pslMrnaCover && make) -cp bin/pslMrnaCover "$PREFIX/bin" -chmod +x "$PREFIX/bin/pslMrnaCover" +mkdir -p "${BINDIR}" +(cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +(cd kent/src/hg/mouseStuff/pslMrnaCover && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") +cp -f bin/pslMrnaCover "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/pslMrnaCover" diff --git a/recipes/ucsc-pslmrnacover/include.patch b/recipes/ucsc-pslmrnacover/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/recipes/ucsc-pslmrnacover/include.patch +++ b/recipes/ucsc-pslmrnacover/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/recipes/ucsc-pslmrnacover/meta.yaml b/recipes/ucsc-pslmrnacover/meta.yaml index 8a19d625c6e28..3b0628781bcd1 100644 --- a/recipes/ucsc-pslmrnacover/meta.yaml +++ b/recipes/ucsc-pslmrnacover/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-pslmrnacover" %} {% set program = "pslMrnaCover" %} -{% set version = "377" %} -{% set sha256 = "932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" @@ -15,7 +15,9 @@ source: build: skip: True # [osx] - number: 4 + number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -25,22 +27,28 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{ program }} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${PREFIX}/bin/{{ program }} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "Make histogram of coverage percentage of mRNA in psl." + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + additional-platforms: + - linux-aarch64 \ No newline at end of file From f5257d504d7cc52b865cceae57d87bcc30a5461a Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 27 Aug 2024 17:32:19 +0300 Subject: [PATCH 1511/1514] Update the scripts used to generate the ucsc-XYZ recipes (#50325) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update the scripts used to generate the ucsc-XYZ recipes Signed-off-by: Martin Tzvetanov Grigorov * Do not render linux-aarch64 as an additional platform for recipes with known build issues on aarch64 Signed-off-by: Martin Tzvetanov Grigorov * Add identifiers Co-authored-by: Björn Grüning * Do not use `-f` (force) when copying the binaries to $PREFIX/bin https://github.com/bioconda/bioconda-recipes/pull/50325#pullrequestreview-2262253967 Signed-off-by: Martin Tzvetanov Grigorov * Move extra > identifiers above the additional-platforms Signed-off-by: Martin Tzvetanov Grigorov * Update doi identifier Co-authored-by: Björn Grüning * Ignore template-meta.yaml when checking for additional_platforms Set -x for easier debugging Signed-off-by: Martin Tzvetanov Grigorov * Rename NO_AARCH64 list to SKIP_AARCH64 To be consistent with the SKIP list Signed-off-by: Martin Tzvetanov Grigorov * Apply suggestions from code review --------- Signed-off-by: Martin Tzvetanov Grigorov Co-authored-by: Björn Grüning --- scripts/check-for-additional-platforms.sh | 9 +++++- scripts/ucsc/create-ucsc-packages.py | 12 +++++-- scripts/ucsc/include.patch | 6 ++-- scripts/ucsc/template-build-cp-short.sh | 9 ++++-- scripts/ucsc/template-build-cp.sh | 7 +++-- .../ucsc/template-build-fetchChromSizes.sh | 6 ++-- scripts/ucsc/template-build-no-bin.sh | 29 +++++++++++------ scripts/ucsc/template-build-parasol.sh | 29 +++++++++++------ scripts/ucsc/template-build-with-stringify.sh | 31 ++++++++++++------- scripts/ucsc/template-build.sh | 29 +++++++++++------ scripts/ucsc/template-meta-with-python.yaml | 18 +++++++++-- scripts/ucsc/template-meta.yaml | 27 +++++++++++----- scripts/ucsc/ucsc_config.yaml | 4 +-- 13 files changed, 149 insertions(+), 67 deletions(-) diff --git a/scripts/check-for-additional-platforms.sh b/scripts/check-for-additional-platforms.sh index d088794f14422..3c4e17a0d7c88 100755 --- a/scripts/check-for-additional-platforms.sh +++ b/scripts/check-for-additional-platforms.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -x + # Check to see if any changed recipes have specified the key # extra:additional-platforms, and if so, if they match the platform of the # currently-running machine. @@ -18,10 +20,12 @@ wget https://github.com/mikefarah/yq/releases/latest/download/yq_${yq_platform}_ chmod +x ${HOME}/bin/yq # Find recipes changed from this merge -files=`git diff --name-only --diff-filter AMR ${git_range} | grep -E 'meta.yaml$' ` +files=`git diff --name-only --diff-filter AMR ${git_range} | grep -v 'template' | grep -E 'meta.yaml$' ` build=0 for file in $files; do + echo "Going to check '${file}' for additional-platforms." + # To create a properly-formatted yaml that yq can parse, comment out jinja2 # variable setting with {% %} and remove variable use with {{ }}. additional_platforms=$(cat $file \ @@ -32,6 +36,9 @@ for file in $files; do parsing_status=$? if [ $parsing_status -gt 0 ]; then echo "An error occurred while reading/parsing ${file}" + echo "==================== ${file} START ===========================" + cat $file + echo "==================== ${file} END =============================" exit $parsing_status fi diff --git a/scripts/ucsc/create-ucsc-packages.py b/scripts/ucsc/create-ucsc-packages.py index f07ea3be2f92e..6785e01f7cd8c 100755 --- a/scripts/ucsc/create-ucsc-packages.py +++ b/scripts/ucsc/create-ucsc-packages.py @@ -13,7 +13,6 @@ # e.g.,# "addCols - Sum columns in a text file." re_summary = re.compile(r'^(?P\w.*?) - (?P.*)$') - def parse_footer(fn): """ Parse the downloaded FOOTER file, which contains a header for each program @@ -54,13 +53,13 @@ def parse_footer(fn): # # version: 332 # sha256: 8c2663c7bd302a77cdf52b2e9e85e2cd -ucsc_config = yaml.load(open('ucsc_config.yaml')) +ucsc_config = yaml.safe_load(open('ucsc_config.yaml')) VERSION = ucsc_config['version'] SHA256 = ucsc_config['sha256'] # Download tarball if it doesn't exist. Always download FOOTER. tarball = ( - 'http://hgdownload.cse.ucsc.edu/admin/exe/userApps.v{0}.src.tgz' + 'http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{0}.src.tgz' .format(VERSION)) if not os.path.exists(os.path.basename(tarball)): f = urllib.request.urlopen(tarball) @@ -198,6 +197,12 @@ def program_subdir(program, names): 'gfServer', ] +# A list of programs which have problems to build on linux-aarch64 +SKIP_AARCH64 = [ + 'pslCDnaFilter', # https://github.com/bioconda/bioconda-recipes/pull/49297 + 'pslCheck', # https://github.com/bioconda/bioconda-recipes/pull/50193 +] + # Some programs need to be built differently. It seems that a subset of # programs need the "stringify" binary build as well. Or, in the case of # fetchChromSizes, it's simply a script that needs to be copied. @@ -294,6 +299,7 @@ def program_subdir(program, names): summary=description, version=VERSION, sha256=SHA256, + linux_aarch64='' if program in SKIP_AARCH64 else 'additional-platforms:\n - linux-aarch64\n', ) ) diff --git a/scripts/ucsc/include.patch b/scripts/ucsc/include.patch index eb32b88d8f358..edc04d0dc2f64 100644 --- a/scripts/ucsc/include.patch +++ b/scripts/ucsc/include.patch @@ -5,12 +5,12 @@ HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} -HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -+HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib -I ${PREFIX}/include ++HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I${kentSrc}/htslib -I${PREFIX}/include -I${BUILD_PREFIX}/include # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) ---- kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 -+++ kent/src/utils/bedJoinTabOffset 2018-06-06 02:23:56.000000000 +0200 +--- kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 ++++ kent/src/utils/bedJoinTabOffset.py 2018-06-06 02:23:56.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.7 +#!/usr/bin/env python diff --git a/scripts/ucsc/template-build-cp-short.sh b/scripts/ucsc/template-build-cp-short.sh index d47bb19e9f7d9..f51f7ee2c9c55 100644 --- a/scripts/ucsc/template-build-cp-short.sh +++ b/scripts/ucsc/template-build-cp-short.sh @@ -1,4 +1,7 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -cp kent/src/utils/{program} "$PREFIX/bin" -chmod +x "$PREFIX/bin/{program}" + +set -xe + +mkdir -p "${{PREFIX}}/bin" +cp kent/src/utils/{program} "${{PREFIX}}/bin" +chmod 0755 "${{PREFIX}}/bin/{program}" diff --git a/scripts/ucsc/template-build-cp.sh b/scripts/ucsc/template-build-cp.sh index 73f3a75e23add..937159593f973 100644 --- a/scripts/ucsc/template-build-cp.sh +++ b/scripts/ucsc/template-build-cp.sh @@ -1,4 +1,7 @@ #!/bin/bash + +set -xe + mkdir -p "$PREFIX/bin" -cp {program_source_dir}/{program} "$PREFIX/bin" -chmod +x "$PREFIX/bin/{program}" +cp {program_source_dir}/{program} "${{PREFIX}}/bin" +chmod 0755 "${{PREFIX}}/bin/{program}" diff --git a/scripts/ucsc/template-build-fetchChromSizes.sh b/scripts/ucsc/template-build-fetchChromSizes.sh index 502e537cac181..487e643544ef8 100644 --- a/scripts/ucsc/template-build-fetchChromSizes.sh +++ b/scripts/ucsc/template-build-fetchChromSizes.sh @@ -1,4 +1,6 @@ #!/bin/bash -cp kent/src/utils/userApps/fetchChromSizes $PREFIX/bin -chmod +x $PREFIX/bin/fetchChromSizes +set -xe + +cp kent/src/utils/userApps/fetchChromSizes ${{PREFIX}}/bin +chmod 0755 ${{PREFIX}}/bin/fetchChromSizes diff --git a/scripts/ucsc/template-build-no-bin.sh b/scripts/ucsc/template-build-no-bin.sh index 24469788935d2..9e597e406cf4d 100644 --- a/scripts/ucsc/template-build-no-bin.sh +++ b/scripts/ucsc/template-build-no-bin.sh @@ -1,12 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${{PREFIX}}/bin" +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${{PREFIX}}/include" +export LIBRARY_PATH="${{PREFIX}}/lib" +export LDFLAGS="${{LDFLAGS} -L${{PREFIX}}/lib" +export CFLAGS="${{CFLAGS}} -O3 ${{LDFLAGS}}" +export CXXFLAGS="${{CXXFLAGS}} -I${{PREFIX}}/include ${{LDFLAGS}}" export BINDIR=$(pwd)/bin -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd {program_source_dir} && make) -cp {program_source_dir}/{program} "$PREFIX/bin" -chmod +x "$PREFIX/bin/{program}" +export L="${{LDFLAGS}}" +mkdir -p "${{BINDIR}}" +(cd kent/src/lib && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/htslib && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/jkOwnLib && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd {program_source_dir} && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +cp {program_source_dir}/{program} "${{PREFIX}}/bin" +chmod 0755 "${{PREFIX}}/bin/{program}" diff --git a/scripts/ucsc/template-build-parasol.sh b/scripts/ucsc/template-build-parasol.sh index 5614488afa6a1..253f747ebad66 100644 --- a/scripts/ucsc/template-build-parasol.sh +++ b/scripts/ucsc/template-build-parasol.sh @@ -1,12 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${{PREFIX}}/bin" +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${{PREFIX}}/include" +export LIBRARY_PATH="${{PREFIX}}/lib" +export LDFLAGS="${{LDFLAGS}} -L${{PREFIX}}/lib" +export CFLAGS="${{CFLAGS}} -O3 ${{LDFLAGS}}" +export CXXFLAGS="${{CXXFLAGS}} -I${{PREFIX}}/include ${{LDFLAGS}}" export BINDIR=$(pwd)/bin -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/parasol && make) -cp kent/src/parasol/bin/{program} "$PREFIX/bin" -chmod +x "$PREFIX/bin/{program}" +export L="${{LDFLAGS}}" +mkdir -p "${{BINDIR}}" +(cd kent/src/lib && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/htslib && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/jkOwnLib && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/parasol && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +cp kent/src/parasol/bin/{program} "${{PREFIX}}/bin" +chmod 0755 "${{PREFIX}}/bin/{program}" diff --git a/scripts/ucsc/template-build-with-stringify.sh b/scripts/ucsc/template-build-with-stringify.sh index 225c22fe8fda1..c61d710eaa8f1 100644 --- a/scripts/ucsc/template-build-with-stringify.sh +++ b/scripts/ucsc/template-build-with-stringify.sh @@ -1,13 +1,22 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${{PREFIX}}/bin" +export MACHTYPE=$(uname -m) +export INCLUDE_PATH="${{PREFIX}}/include" +export LIBRARY_PATH="${{PREFIX}}/lib" +export LDFLAGS="${{LDFLAGS}} -L${{PREFIX}}/lib" +export CFLAGS="${{CFLAGS}} -O3 ${{LDFLAGS}}" +export CXXFLAGS="${{CXXFLAGS}} -I${{PREFIX}}/include ${{LDFLAGS}}" export BINDIR=$(pwd)/bin -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd kent/src/utils/stringify && make) -(cd {program_source_dir} && make) -cp bin/{program} "$PREFIX/bin" -chmod +x "$PREFIX/bin/{program}" +export L="${{LDFLAGS}}" +mkdir -p "${{BINDIR}}" +(cd kent/src/lib && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/htslib && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/jkOwnLib && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/utils/stringify && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd {program_source_dir} && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +cp bin/{program} "${{PREFIX}}/bin" +chmod 0755 "${{PREFIX}}/bin/{program}" diff --git a/scripts/ucsc/template-build.sh b/scripts/ucsc/template-build.sh index e5f98c64a3a1c..f2f5d27f6e621 100644 --- a/scripts/ucsc/template-build.sh +++ b/scripts/ucsc/template-build.sh @@ -1,12 +1,21 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" -export MACHTYPE=x86_64 + +set -xe + +mkdir -p "${{PREFIX}}/bin" +export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin -mkdir -p "$BINDIR" -(cd kent/src/lib && make) -(cd kent/src/htslib && make) -(cd kent/src/jkOwnLib && make) -(cd kent/src/hg/lib && make) -(cd {program_source_dir} && make) -cp bin/{program} "$PREFIX/bin" -chmod +x "$PREFIX/bin/{program}" +export INCLUDE_PATH="${{PREFIX}}/include" +export LIBRARY_PATH="${{PREFIX}}/lib" +export LDFLAGS="${{LDFLAGS}} -L${{PREFIX}}/lib" +export CFLAGS="${{CFLAGS}} -O3 ${{LDFLAGS}}" +export CXXFLAGS="${{CXXFLAGS}} -I${{PREFIX}}/include ${{LDFLAGS}}" +export L="${{LDFLAGS}}" +mkdir -p "${{BINDIR}}" +(cd kent/src/lib && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/htslib && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/jkOwnLib && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd kent/src/hg/lib && make USE_HIC=0 CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +(cd {program_source_dir} && make CC="${{CC}}" CXX="${{CXX}}" CFLAGS="${{CFLAGS}}" CXXFLAGS="${{CXXFLAGS}}" -j "${{CPU_COUNT}}") +cp bin/{program} "${{PREFIX}}/bin" +chmod 0755 "${{PREFIX}}/bin/{program}" diff --git a/scripts/ucsc/template-meta-with-python.yaml b/scripts/ucsc/template-meta-with-python.yaml index e232fd400c642..d904f30099bda 100644 --- a/scripts/ucsc/template-meta-with-python.yaml +++ b/scripts/ucsc/template-meta-with-python.yaml @@ -8,13 +8,16 @@ package: version: "{{{{ version }}}}" source: - url: "http://hgdownload.cse.ucsc.edu/admin/exe/userApps.v{{{{ version }}}}.src.tgz" + url: "http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{ version }}.src.tgz" sha256: "{{{{ sha256 }}}}" patches: - "include.patch" build: + skip: True # [osx] number: 0 + run_exports: + - {{ pin_subpackage(package, max_pin=None) }} requirements: build: @@ -23,14 +26,14 @@ requirements: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - python - zlib @@ -43,3 +46,12 @@ about: home: "http://hgdownload.cse.ucsc.edu/admin/exe/" license: "varies; see http://genome.ucsc.edu/license" summary: "{summary}" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + {linux_aarch64} + \ No newline at end of file diff --git a/scripts/ucsc/template-meta.yaml b/scripts/ucsc/template-meta.yaml index 74498a6983ed3..a063435a2380a 100644 --- a/scripts/ucsc/template-meta.yaml +++ b/scripts/ucsc/template-meta.yaml @@ -8,37 +8,50 @@ package: version: "{{{{ version }}}}" source: - url: "http://hgdownload.cse.ucsc.edu/admin/exe/userApps.v{{{{ version }}}}.src.tgz" + url: "http://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/userApps.v{{{{ version }}}}.src.tgz" sha256: "{{{{ sha256 }}}}" patches: - "include.patch" build: + skip: True # [osx] number: 0 + run_exports: + - {{{{ pin_subpackage(package, max_pin=None) }}}} requirements: build: + - make - {{{{ compiler('c') }}}} host: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib run: - libpng - libuuid - mysql-connector-c - - openssl + - libopenssl-static - zlib test: commands: - # just check for existence, because the individual packages have no unified behavior - - which {{{{ program }}}} + # just check for existence and exec bit, because the individual packages have no unified behavior + - test -x ${{PREFIX}}/bin/{{{{ program }}}} about: - home: "http://hgdownload.cse.ucsc.edu/admin/exe/" - license: "varies; see http://genome.ucsc.edu/license" + home: "https://hgdownload.cse.ucsc.edu/admin/exe/" + license: "Varies; see http://genome.ucsc.edu/license" summary: "{summary}" + dev_url: "https://github.com/ucscGenomeBrowser/kent" + doc_url: "https://github.com/ucscGenomeBrowser/kent/blob/master/README" + +extra: + identifiers: + - biotools:UCSC_Genome_Browser_Utilities + - doi:10.1093/bib/bbs038 + {linux_aarch64} + \ No newline at end of file diff --git a/scripts/ucsc/ucsc_config.yaml b/scripts/ucsc/ucsc_config.yaml index 0111932c1c44f..96df218c9e5ca 100644 --- a/scripts/ucsc/ucsc_config.yaml +++ b/scripts/ucsc/ucsc_config.yaml @@ -1,2 +1,2 @@ -version: 377 -sha256: 932f149c19641064a9cd3f2382cbb54b45a9292b8444792872d531346925d676 +version: 469 +sha256: 3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963 From f0fc09043954d4d61617cc70b48030688b41c5f3 Mon Sep 17 00:00:00 2001 From: Martin Grigorov Date: Tue, 27 Aug 2024 18:00:44 +0300 Subject: [PATCH 1512/1514] Update ucsc-addCols to v469 (#50323) Signed-off-by: Martin Tzvetanov Grigorov --- recipes/ucsc-addcols/build.sh | 11 +++++++---- recipes/ucsc-addcols/meta.yaml | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/recipes/ucsc-addcols/build.sh b/recipes/ucsc-addcols/build.sh index 8a3ac9a9447cd..1acf16c4e77af 100644 --- a/recipes/ucsc-addcols/build.sh +++ b/recipes/ucsc-addcols/build.sh @@ -1,5 +1,8 @@ #!/bin/bash -mkdir -p "$PREFIX/bin" + +set -xe + +mkdir -p "${PREFIX}/bin" export MACHTYPE=$(uname -m) export BINDIR=$(pwd)/bin export INCLUDE_PATH="${PREFIX}/include" @@ -8,11 +11,11 @@ export LDFLAGS="${LDFLAGS} -L${PREFIX}/lib" export CFLAGS="${CFLAGS} -O3 ${LDFLAGS}" export CXXFLAGS="${CXXFLAGS} -I${PREFIX}/include ${LDFLAGS}" export L="${LDFLAGS}" -mkdir -p "$BINDIR" +mkdir -p "${BINDIR}" (cd kent/src/lib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/htslib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/jkOwnLib && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/hg/lib && make USE_HIC=0 CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") (cd kent/src/utils/addCols && make CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" -j "${CPU_COUNT}") -cp -f bin/addCols "$PREFIX/bin" -chmod 0755 "$PREFIX/bin/addCols" +cp -f bin/addCols "${PREFIX}/bin" +chmod 0755 "${PREFIX}/bin/addCols" diff --git a/recipes/ucsc-addcols/meta.yaml b/recipes/ucsc-addcols/meta.yaml index e75b5b93e7d1d..b192a7574045a 100644 --- a/recipes/ucsc-addcols/meta.yaml +++ b/recipes/ucsc-addcols/meta.yaml @@ -1,7 +1,7 @@ {% set package = "ucsc-addcols" %} {% set program = "addCols" %} -{% set version = "466" %} -{% set sha256 = "5ed312771de13b18a72f3f3f615ef1bc0b8be9dcd647b8dde05dc60d4630e9fb" %} +{% set version = "469" %} +{% set sha256 = "3f95b26ccca854c965c05773481c269f2a0e6fb1906ae8a7fe2437c6ad543963" %} package: name: "{{ package }}" From 3ed8bf61f484278f81b78f44295b147e58fe3605 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 27 Aug 2024 11:09:37 -0400 Subject: [PATCH 1513/1514] Update isoquant to 3.5.1 (#50351) --- recipes/isoquant/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/isoquant/meta.yaml b/recipes/isoquant/meta.yaml index bbc7fbd26d950..3909056b93f8d 100644 --- a/recipes/isoquant/meta.yaml +++ b/recipes/isoquant/meta.yaml @@ -1,6 +1,6 @@ {% set name = "IsoQuant" %} -{% set version = "3.5.0" %} -{% set sha256 = "80771cc4fbe8d222b5dfa45be392942b2fdd356ebbb1d99e26d251c37bba085d" %} +{% set version = "3.5.1" %} +{% set sha256 = "3153389594062618012ec946512b81147af0ac4529466c46d79524cabeda6313" %} package: name: {{ name | lower }} From 90bc105b8316b6bc2622788b1750a546b190b358 Mon Sep 17 00:00:00 2001 From: Bioconda Bot <47040946+BiocondaBot@users.noreply.github.com> Date: Tue, 27 Aug 2024 11:10:02 -0400 Subject: [PATCH 1514/1514] Update parascopy to 1.17.1 (#50352) --- recipes/parascopy/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/parascopy/meta.yaml b/recipes/parascopy/meta.yaml index 1b1f041d3a225..2befb97a039a4 100644 --- a/recipes/parascopy/meta.yaml +++ b/recipes/parascopy/meta.yaml @@ -1,5 +1,5 @@ {% set name = "parascopy" %} -{% set version = "1.17.0" %} +{% set version = "1.17.1" %} package: name: {{ name|lower }} @@ -14,7 +14,7 @@ build: source: url: https://github.com/tprodanov/{{ name }}/archive/v{{ version }}.tar.gz - sha256: 42d2d32888a1c57ccee272d26015c96663c81cf36a747a3f5e1b1deea813c953 + sha256: 3b6871a198e60b76a0d1f94dd219134c8662547d3a98fb20786443916e964a5b requirements: build: